Author Archives: pgfeldman

Phil 11.20.12

7:30 – 2:30 ESSO

  • Deployed new PPM and IM
  • Discussions with Don about progress
  • Said hello to Chris
  • Discussions with Lenny, Carla and Tangie about progress
  • Discovered that the IM was broken on fgmdev, and I had forgotton how the system was set up. After a bit of help from Dong, fixed and updated the Vis2 and IM SWFs.

2:30 – 3:30 FP

  • Interview with Allison Y

Dong Shin 11.19.2012

Phil 11.19.12

7:30 – 10:00, 12:00 – 3:30 ESSO

  • Updated the truststore file on the server
  • Backups
  • Some discussions with Don about progress
  • Cleaning up the login screen on Vis2
  • Cleaning up the version info on Ingest Manager
  • Due to some different configuration data between Dong’s environment and mine, spent a few hours fishing for red herrings. Done now thoug, with a new build for tomorrow.

10:00 – 12:00 – FP

  • Contextual user interface design and metaphors

Dong Shin 11.16.2012

Phil 11.16.12

7:30 – 9:30, 11:30 – 3:30 ESSO

  • Backups
  • Working on new password
  • Looking onto Oracle ADF
    • Downloaded the Eclipse version, but it doesn’t seem as nice as JDeveloper that Dong’s using. Going to pull that one down next
    • Very nice! Need to see how to integrate with subversion

9:30- 11:30 FP

  • AV scheduling meeting

Phil 11.15.12

8:00 – 2:00 ESSO

  • Backups and meetings, oh my.
  • Working on getting Don and Lenny to focus on “report wishlists”. Meeting in two weeks to discuss?
  • Found a “duplicate project” bug(?) for Dong. He says that there are a set of criteria that Trish layed out that might be getting triggered. Need to look into that.
  • Need to clear out old password when changing password.

2:00 – 4:00 FP

  • Qualitative methods. Need to look into developing data dictionary-based mechanism for that which is able to point into AV stream.

Phil 11.14.12

8:00 – 4:00 ESSO

  • Deployed new versions of PPM, PA (new view only permissions), and Vis2 (bug fixes). Checked the fact that the bug fixes in fact do work by having Dan, my favorite bug-finding user try out this system.
  • Cleaned out old backups to free up disk space. All teh backups are still on the network drive, so this was redundant. Still keeping the most recent backups on the server in case everything goes down and I lose connectivity with the network drive, since that’s happened before.
  • Back to GWT. Rather than the book, I’m going to try something quicker. We’ll see if Google keeps up on its own technology well.
    • Made a GWT_HOME environment variable so that I can run webAppCreator.
    • That seems to be working well. Even ran everything from the command line.
    • Importing it into the IDE didn’t result in a project that was recognized as a GWT project. Had to re-create it in the IDE.
    • Stockwatcher (again)

Dong Shin 11.13.2012

  • continue working on Alerts
    • alerts that are not closed and older than 7 days query
      • SELECT *, DATEDIFF(NOW(), timestamp) AS days
        FROM ppm_alerts.alerts
        WHERE status <> ‘CLOSED’
        AND DATEDIFF(NOW(), timestamp) > 7
    • Alert_8_notResolvedIn7Days.py – not saving into alerts table, report only
    • saved table_queries – visibility_scripting.table_queries.sql

Dong Shin 11.12.2012

  • reorganizing Alerts to use new stored queries interface
    • Alert_1_30DaysOverdue.py query
      • CALL visibility_scripting.get_date_variables (@current_fy, @current_month, @previous_moth, @curruent_month_str);
        SET @previous_month_str := ‘month_’ + @previous_month;INSERT INTO ppm_alerts.alerts (uid, portfolio_admins, portfolio_mgrs, service_finance_pocs,
        service_project_mgrs, program, MIPR, alert, status)
        SELECT NULL,GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        ’30 days overdue on Year:  + getYear() +  Month:  + getMonthStr(prevMonth) + ‘ as alert,
        ‘OPEN’ as status
        FROM projects p,
        budget_centers c,
        budget_amounts a,
        obligations_outlays o,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE p.uid  = c.project_id
        AND a.budget_center_id = c.uid
        ANd a.year  =  @current_fy  – p.begin_year + 1
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND o.year + o.year_count – 1 =  @current_fy
        AND o.year_count = 1
        AND ISNULL(@previous_month_str)
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        GROUP BY o.uid;SELECT
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        ’30 days overdue on Year:  + getYear() +  Month:  + getMonthStr(prevMonth) + ‘ as alert,
        ‘OPEN’ as status
        FROM projects p,
        budget_centers c,
        budget_amounts a,
        obligations_outlays o,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE p.uid  = c.project_id
        AND a.budget_center_id = c.uid
        ANd a.year  =  @current_fy  – p.begin_year + 1
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND o.year + o.year_count – 1 =  @current_fy
        AND o.year_count = 1
        AND ISNULL(@previous_month_str)
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        GROUP BY o.uid;
    • Alert_2_planned_values.py
      • CALL visibility_scripting.get_date_variables (@current_fy, @current_month, @previous_moth, @curruent_month_str);
        SET @previous_month_str := ‘month_’ + @previous_month;
        SET @obligation_month_str := ‘g.obligation_month_’ + @previous_month;
        SET @outlay_month_str := ‘g.outlay_month_’ + @previous_month;INSERT INTO ppm_alerts.alerts (uid, portfolio_admins, portfolio_mgrs, service_finance_pocs,
        service_project_mgrs, program, MIPR, alert, status)
        SELECT NULL,
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        ‘Planned values are out of acceptable range on Year:  + getYear() +  Month:  + getMonthStr(getPrevMonthNum()) + ‘ as alert,
        ‘OPEN’ as status
        FROM projects p,
        budget_centers c,
        budget_amounts a,
        obligations_outlays o,
        obligations_outlays_goals g,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE p.uid  = c.project_id
        AND a.budget_center_id = c.uid
        ANd a.year = @current_fy – p.begin_year + 1
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND o.year + o.year_count – 1 = @current_fy
        AND o.year_count = 1
        AND g.appropriation = c.appropriation
        AND g.year = o.year_count
        AND (ISNULL(@previous_month_str) OR
        (@previous_month_str > TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 1.05
        AND @previous_month_str <  TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 0.95))
        AND o.type = ‘Planned Obligated $:’
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        GROUP BY o.uidSELECT
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        ‘Planned values are out of acceptable range on Year:  + getYear() +  Month:  + getMonthStr(getPrevMonthNum()) + ‘ as alert,
        ‘OPEN’ as status
        FROM projects p,
        budget_centers c,
        budget_amounts a,
        obligations_outlays o,
        obligations_outlays_goals g,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE p.uid  = c.project_id
        AND a.budget_center_id = c.uid
        ANd a.year = @current_fy – p.begin_year + 1
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND o.year + o.year_count – 1 = @current_fy
        AND o.year_count = 1
        AND g.appropriation = c.appropriation
        AND g.year = o.year_count
        AND (ISNULL(@previous_month_str) OR
        (@previous_month_str > TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 1.05
        AND @previous_month_str <  TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 0.95))
        AND o.type = ‘Planned Obligated $:’
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        GROUP BY o.uid
    • Alert_3_FMPs.py
      • CALL visibility_scripting.get_date_variables (@current_fy, @current_month, @previous_moth, @current_month_str);
        SET @previous_month_str := ‘month_’ + @previous_month;
        SET @obligation_month_str := ‘g.obligation_month_’ + @previous_month;
        SET @outlay_month_str := ‘g.outlay_month_’ + @previous_month;INSERT INTO ppm_alerts.alerts (uid, portfolio_admins, portfolio_mgrs, service_finance_pocs,
        service_project_mgrs, program, MIPR, alert, status)
        SELECT NULL,
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        CONCAT(‘Financial Mitigation Strategy has not changed from previous month for ‘, @current_fy, ‘ ‘, @current_month_str) as alerts,
        ‘OPEN’ as status
        FROM `financial_mitigation_plans` fmp1, financial_mitigation_plans fmp2,
        projects p, obligations_outlays o, budget_centers c,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE fmp1.obligation_outlay_uid = fmp2.obligation_outlay_uid
        AND fmp1.financial_mitigation_plan = fmp2.financial_mitigation_plan
        AND fmp1.explanation1 = fmp2.explanation1
        AND fmp1.explanation2 = fmp2.explanation2
        AND fmp1.explanation3 = fmp2.explanation3
        AND fmp1.explanation4 = fmp2.explanation4
        AND fmp1.explanation5 = fmp2.explanation5
        AND fmp1.month + 1 = fmp2.month
        AND fmp2.month = @current_month
        AND p.uid = o.project_id
        AND c.uid = o.funding_id
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        AND fmp1.obligation_outlay_uid IN
        (SELECT o.uid
        FROM projects p, budget_centers c, budget_amounts a, obligations_outlays o, obligations_outlays_goals g
        WHERE
        p.uid = c.project_id
        AND a.budget_center_id = c.uid
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND g.appropriation = c.appropriation
        AND g.year = o.year_count
        AND o.year + o.year_count = @current_fy
        AND (ISNULL(@previous_month_str) OR (@previous_month_str > TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 1.05
        AND @previous_month_str <  TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 0.95)))
        GROUP BY o.uid;SELECT
        GROUP_CONCAT(distinct(ppa.login)) as porfolio_admins,
        GROUP_CONCAT(distinct(ppm.login)) as portfolio_mgrs,
        GROUP_CONCAT(distinct(psf.login)) as service_finance_pocs,
        GROUP_CONCAT(distinct(m.login)) as service_project_managers,
        p.project_number as program,
        c.center_number as MIPR,
        CONCAT(‘Financial Mitigation Strategy has not changed from previous month for ‘, @current_fy, ‘ ‘, @current_month_str) as alerts,
        ‘OPEN’ as status
        FROM `financial_mitigation_plans` fmp1, financial_mitigation_plans fmp2,
        projects p, obligations_outlays o, budget_centers c,
        _projects_service_project_mgrs m,
        _projects_portfolio_admins ppa,
        _projects_portfolio_mgrs ppm,
        _projects_service_finance_pocs psf
        WHERE fmp1.obligation_outlay_uid = fmp2.obligation_outlay_uid
        AND fmp1.financial_mitigation_plan = fmp2.financial_mitigation_plan
        AND fmp1.explanation1 = fmp2.explanation1
        AND fmp1.explanation2 = fmp2.explanation2
        AND fmp1.explanation3 = fmp2.explanation3
        AND fmp1.explanation4 = fmp2.explanation4
        AND fmp1.explanation5 = fmp2.explanation5
        AND fmp1.month + 1 = fmp2.month
        AND fmp2.month = @current_month
        AND p.uid = o.project_id
        AND c.uid = o.funding_id
        AND p.uid = m.project_id
        AND p.uid = ppa.project_id
        AND p.uid = ppm.project_id
        AND p.uid = psf.project_id
        AND fmp1.obligation_outlay_uid IN
        (SELECT o.uid
        FROM projects p, budget_centers c, budget_amounts a, obligations_outlays o, obligations_outlays_goals g
        WHERE
        p.uid = c.project_id
        AND a.budget_center_id = c.uid
        AND o.project_id = p.uid
        AND o.funding_id = c.uid
        AND g.appropriation = c.appropriation
        AND g.year = o.year_count
        AND o.year + o.year_count = @current_fy
        AND (ISNULL(@previous_month_str) OR (@previous_month_str > TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 1.05
        AND @previous_month_str <  TRUNCATE(a.amount *  IF(o.type LIKE ‘%Obligate%’,@obligation_month_str, @outlay_month_str) / 100, 2) * 0.95)))
        GROUP BY o.uid;
    • Alert_7_UsesNotLoggedIn30Day.py
      • INSERT INTO ppm_alerts.alerts (uid, portfolio_admins, portfolio_mgrs, service_finance_pocs,
        service_project_mgrs, program, MIPR, alert, status)
        SELECT NULL, NULL as porfolio_admins, NULL as portfolio_mgrs, NULL as service_finance_pocs, NULL as service_project_managers,
        ” as program, ” as MIPR, CONCAT(login, ‘ has not been logged in for more than 30 days ‘) as alert, ‘OPEN’ as status
        FROM `users` WHERE DATEDIFF(now(), last_login) > 30;SELECT NULL as porfolio_admins, NULL as portfolio_mgrs, NULL as service_finance_pocs, NULL as service_project_managers,
        ” as program, ” as MIPR, CONCAT(login, ‘ has not been logged in for more than 30 days ‘) as alert, ‘OPEN’ as status
        FROM `users` WHERE DATEDIFF(now(), last_login) > 30;

Phil 11.8,9.12

8:00 – 4:00

  • Meeting with Lenny and Don about VisTool. After a lot of going around, they want more (as yet unspecified) scripts. After having now interacted with Ray (An actual user!), I want to have fewer Financial Mitigation pages popped up at people who have no money to spend yet.
  • Was able to replicate the freeze problem. If the user has not set up any “desktop” styles, the objects that define the panel borders are null, which freaks the color calculations out. I added traps for that, and also experimented with what the best change in the ‘per wedge’ hue rotation in a pie chart is. It looks like it’s 23 degrees, and I took out the code that varies it as a function of the hue difference between the panel bg and border.
  • Committed all changes and burned the new vis2, PPM and PA to disk.

Dong Shin 11.09.2012

  • added Change Log to VSS4
  • working on skipping FMPs with $0 committed
    • added configuration check box to Role Management in PPM
    • database update – DBUpdateSQLs11092012.sql
    • added a flag to check for commit amount and use it for FMP requirement
    • built release version of PPM and PA

Dong Shin 11.08.2012

  • deployed new PPM and PA with demo/guest capability – everything looks good
  • discussed about the projects with no budgets allocated
    • when there is no committed amount available in funding request, FMPs can be skipped?
  • reorganizing alert scripts and storing queries in the database

Phil 11.7.12

7:30 – 3:30 ESSO

  • Backups
  • Meeting with Ray(?) to go over how to use Project Assistant. Some issues, particularly when there is no allocated budget. We really need to essentially replicate the FRP until the funds are allocated.
  • Need to write up my status report for Jim G. Done
  • Still looking for the freeze problem. Can’t replicate today regardless of what machine or what browser I try it on.
  • Finished testing of using Google Drive as an ‘interim backup’. Works well enough that I’m now trying it with a copy of my actual workspace
  • Burned disk of PPM and PA, along with status report.