- FMP’s still not loaded to FA, need to look at events closely…
- caused by missing entries in config file!!!! throws exception in the debug flash player, not in normal version. changed the code to show it in logger…..
- discussed few stuffs with Lenny. looked at Obligations not adding up, wrong data!
Category Archives: Projects
Phil 4.4.14
8:00 – 4:00 SR
- DB & Webapps backups
- Status reports!
- Deployed new FA and RA
- Three.js
- tween.js looks very nice and usable. Commented even.
- Blur effect in the framebuffer: http://tinyurl.com/mty5m76
Dong Shin 04.03.2014
- deployed new FA/RA/Reqonciler along with jar files. Still no FMP shown in FA, puzzled…..
- fixed Logger to filter the items correctly
- updating query to speed up RA… This would do it!
- SELECT * FROM
(SELECT ‘OVERDUE’ AS status, bc.*
FROM budget_centers bc
WHERE uid IN (
SELECT
oo.funding_id
FROM obligations_outlays oo
WHERE (oo.type LIKE ‘%PM%’ OR oo.type LIKE ‘Planned%’)
AND (year + year_count + 1) < 2014
AND (ISNULL(month_1) OR ISNULL(month_2) OR ISNULL(month_3) OR ISNULL(month_4) OR ISNULL(month_5) OR ISNULL(month_6)
OR ISNULL(month_7) OR ISNULL(month_8) OR ISNULL(month_9) OR ISNULL(month_10) OR ISNULL(month_11) OR ISNULL(month_12))
UNION
SELECT
oo.funding_id
FROM obligations_outlays oo
WHERE (oo.type LIKE ‘%PM%’ OR oo.type LIKE ‘Planned%’)
AND (year + year_count + 1) = 2014
AND (ISNULL(month_1) OR ISNULL(month_2) OR ISNULL(month_3) OR ISNULL(month_4) OR ISNULL(month_5) OR ISNULL(month_6)))
UNION
SELECT ‘CURRENT’ AS status, bc.*
FROM budget_centers bc WHERE uid NOT IN (
SELECT
oo.funding_id
FROM obligations_outlays oo
WHERE (oo.type LIKE ‘%PM%’ OR oo.type LIKE ‘Planned%’)
AND (year + year_count + 1) < 2014
AND (ISNULL(month_1) OR ISNULL(month_2) OR ISNULL(month_3) OR ISNULL(month_4) OR ISNULL(month_5) OR ISNULL(month_6)
OR ISNULL(month_7) OR ISNULL(month_8) OR ISNULL(month_9) OR ISNULL(month_10) OR ISNULL(month_11) OR ISNULL(month_12))
UNION
SELECT
oo.funding_id
FROM obligations_outlays oo
WHERE (oo.type LIKE ‘%PM%’ OR oo.type LIKE ‘Planned%’)
AND (year + year_count + 1) = 2014
AND (ISNULL(month_1) OR ISNULL(month_2) OR ISNULL(month_3) OR ISNULL(month_4) OR ISNULL(month_5) OR ISNULL(month_6)))
UNION
SELECT ‘DUE’ AS status, bc.*
FROM budget_centers bc WHERE uid NOT IN (
SELECT
oo.funding_id
FROM obligations_outlays oo
WHERE (oo.type LIKE ‘%PM%’ OR oo.type LIKE ‘Planned%’)
AND (year + year_count + 1) < 2014
AND (ISNULL(month_1) OR ISNULL(month_2) OR ISNULL(month_3) OR ISNULL(month_4) OR ISNULL(month_5) OR ISNULL(month_6)
OR ISNULL(month_7) OR ISNULL(month_8) OR ISNULL(month_9) OR ISNULL(month_10) OR ISNULL(month_11) OR ISNULL(month_12))
UNION
SELECT
oo.funding_id
FROM obligations_outlays oo
WHERE (oo.type LIKE ‘%PM%’ OR oo.type LIKE ‘Planned%’)
AND (year + year_count + 1) = 2014
AND (ISNULL(month_1) OR ISNULL(month_2) OR ISNULL(month_3) OR ISNULL(month_4) OR ISNULL(month_5) OR ISNULL(month_6)))
AND uid IN (
SELECT
oo.funding_id
FROM obligations_outlays oo
WHERE (oo.type LIKE ‘%PM%’ OR oo.type LIKE ‘Planned%’)
AND (year + year_count + 1) = 2014
AND (ISNULL(month_7)))) AS t
LEFT JOIN committed_amounts AS ca ON t.uid = ca.budget_center_id
LEFT JOIN projects AS p ON t.project_id = p.uid
- SELECT * FROM
Phil 4.3.14
8:00 – 4:00 SR
- DB backups
- Deployed new jars and swfs for FA. The FMP window and the debug statements is not working. And Dong still needs to add class and method info to logger for non-debug.
- Webapps backup.
- WebGL
- Got a response back from JetBrains. They basically said ‘don’t load large files’. Idiots.
- Got three.js from Git. Works fine. Yay!
- Need to drill down into the way that translations and rotations are handled.
Dong Shin 04.02.2014
- spent morning restoring FA and VSS that disappeared from Tomcat server…..
- packed everything up for re-deploy
- working on query to get Requisition status – __view_project_detailed_data2
Phil 4.2.14
8:00 – 4:00
- FinancialAssistant and VisibilityScriptingServer both disappeared from the server. No idea why. Maybe tied to the war file?
- FMP popup is working in RA but not FA
- Regex fix worked
- Working on WebGL up and Running, but the example code crashed WebStorm. It really is that kind of day. Finally found the problem: a 14MB javascript model file. WTF?
- Three.js is looking very nice…
- And there is a typescript descriptor file: https://github.com/borisyankov/DefinitelyTyped/blob/master/threejs/three.d.ts
Dong Shin 04.01.2014
- Oracle doubles the speed of MySQL query handling – found this while reading about MariaDB, upgrade soon?
- need to run 6 queries to update Obligations/Outlays data when claim/un-claim happens…
- update obligations (4), update outlays (5), update outlays for second year (6), update months in year 1 to 100% (101), update month 1 year 2 to 100% from month 12 year 1 (200), update months in year 2 to 100% (201)
- worked off most of the Action Items from 3/25/2014
All fields with $ should accept negative values– CurrencyTextInputget a list of budget values for FY13 and FY14 charts- create a query for Planned Obligated vs. FACTS
Outlay $ Reported row should not be editableinvoice dialog box should not show if the line item is not a MIPR or EAOtotal budget in slides should be project total, not requistiion totalReq Data Analysis should show Req Allocated, Req Funded (Committed)
Phil 4.1.14
8:00 – SR
- Nice, symmetric data today.
- Took my comprehensive exam again. Felt much better about it. We’ll know in a month, I guess.
- Backups.
- Need to retire some certs. And push Lenny on his training.
- Found the problem with the big vis query – the cell values are being single quoted, but one of thi strings contains a single quote : ‘Carla’ Demo’. So it looks like we need to strengthen the way that data is written out. Added a regex pattern that’s defined on DbTable instantiation : ^[a-zA-Z0-9 ]+
- JavaScript/WebGL
- Worked through my issues with my alpha “fogged” cube. A debugger would be very helpful. It looks like there is one here: http://www.gremedy.com/download.php Need to check that out. But in the meantime, here’s the better result that still doesn’t work in IE (WebGL error INVALID_ENUM in drawElements(Triangles, 36, UNSIGNED_BYTE, 0)).
- WebGL typescript definition file, automatically generated: https://github.com/RicoP/webgl.d.ts/blob/master/README.md.
- OBJViewer has code to read a Blender file and draw it. Nicely, this doesn’t freak out IE. The buffers must be better put together.
- Finished the book. It looks like three.js is a wrapper that has some legs. And it will run on IE if you’re careful. Ordered the book.
Dong Shin 03.31.2014
- deployed database updates for the big data table…. lot quicker than existing query!
- add FMP’s and invoices?
- tried to ingest to Visibility, but too may long fields to try….
- added more fields to format as Currency
- changed the colors of the chart items in Req Data Analysis panel to match the briefing charts
- working on queries to update data when claim/un-claim happens in Project Editor
Phil 3.28.14
8:00 – 4:00 SR
- Did not see snow today.
- Backups.
- Showed Tangie a screenshot of the roles page – some people want more access?
- JavaScript
- Chapter 8 and 9. Starting on 10.
- The HUD example should probably serve as the basis for the framework. It’s got picking, and 2D overlay. No lighting or reflection maps though. It’s a good start though. Will need to have a shape manager and then shapes. Also dprint.
- wow: http://glsl.heroku.com/
Dong Shin 03.28.2014
- reworking Req Data Analysis using the new view – __view_project_detailed_data
- done… lot faster than before!
- committed amounts not cumulative, working on it. fixed! using functions….
- created few support functions in mysql
- get_cumulative_committed_amount(budget_center_id, year_count, month_number)
- get_fiscal_month (Date)
- get_fiscal_year (Date)
- using MySQL Workbench instead of phpMyAdmin – more robust and convenient!
Dong Shin 03.27.2014
- working on generating big data table for FA. __view_project_detailed_data
- created sub views to work-around nested SELECT limitation in view
- __view_yearly_totals_by_project, __view_financial_analysts_by_project, __view_portfolio_mgrs_by_project, __view_total_committed_amount_by_budget_center, __view_service_pocs_by_budget_center
- remember not t use nested SELECTs in views!!!!
- adding monthly committed amounts take too long to process….. 3 sec compared to 1 sec…
- *THIS* is the join that produces a year data per row that has all obligations, outlays, and goals!
- SELECT SUM(IF(oo.type LIKE ‘%Planned%Oblig%’,1,0)) AS planned_obligated_count,
SUM(IF(oo.type LIKE ‘%Reported%Oblig%’,1,0)) AS reported_outlay_count,
SUM(IF(oo.type LIKE ‘%Planned%Outlay%’,1,0)) AS planned_outlay_count,
SUM(IF(oo.type LIKE ‘%Reported%Outlay%’,1,0)) AS reported_outlay_count,
SUM(IF(oo.type LIKE ‘%PM%Actuals%’,1,0)) AS pm_actuals_count,
SUM(IF(oo.type LIKE ‘%Outlay%FACTS%’,1,0)) AS outlay_facts_count,
p.*, bc.*
FROM projects p
LEFT JOIN budget_centers bc ON bc.project_id = p.uid
LEFT JOIN obligations_outlays oo ON oo.funding_id = bc.uid
LEFT JOIN obligations_outlays_goals oog ON oog.appropriation = p.appropriation AND oog.year = oo.year_count
LEFT JOIN committed_amounts ca ON ca.budget_center_id = bc.uid AND (bc.fiscal_year – YEAR(ca.committed_date) + 1) = oo.year_count
LEFT JOIN __view_yearly_totals_by_project AS yt ON yt.project_id = p.uid
LEFT JOIN __view_financial_analysts_by_project AS fa ON fa.project_id = p.uid
LEFT JOIN __view_portfolio_mgrs_by_project pm ON pm.project_id = p.uid
LEFT JOIN __view_service_pocs_by_budget_center AS spbc ON spbc.budget_center_id = bc.uid
LEFT JOIN __view_total_committed_amount_by_budget_center ca_totals ON ca_totals.budget_center_id = bc.uid
GROUP BY oo.funding_id, oo.year_count
- SELECT SUM(IF(oo.type LIKE ‘%Planned%Oblig%’,1,0)) AS planned_obligated_count,
- created sub views to work-around nested SELECT limitation in view
Phil 3.27.14
8:00 – 5:00 SR
- Backups
- Testing Dong’s theory that spaces are killing the VSS query. Well, it was either that or the wrong quoting of the table name in the python script.
- Broken Queries
- Projects_underbudget
- alert_1_30_days_overdue
- alert_2_planned_values
- alert_3_FMPs
- alert_4_not_obligated_within_30_days
- alert_5_not_accepted_within_30_days
- alert_6_no_outlays_within_60_days
- alert_7_UsersNotLoggedIn30days returns, but MIPR, portfolio_administrator, portfolio_manager, program, service_finance_pocs and service_project_managers all come up null
- JavaScript
- Installed WebStorm 8.0, as our support license expires on Monday.
- It turns out that you can get a glsl plugin. Very nice. http://plugins.jetbrains.com/plugin/6993?pr=
- Hmm. I’m starting to think that I could pass up the points in a Mass-Spring-Damper to the GPU and just update the clock if there is either (a) a way to save information between frames or (b) a way to write back into the array buffers. All the needed math functions are there. The problem is that GLSL appears to only do calculation on a per-vertex basis. Oh, wait, there’s this: http://webcl.nokiaresearch.com/
Dong Shin 03.26.2014
- deployed new views and presentation looks better!
- few bugs
- fix __view_financial_data – add sum and group by for year 2
- Planned Obligations/Outlay Update SQL errors when it reaches 100% – uid, project_id, year_count are null
- Recalculate Obligations/Outlays when Claimed/Unclaimed Contracts are updated
- rework Query Builder!
- bc.total_budget for Req Allocation and vct.committed_amount for Req Funded
- downloaded and played with JSPMyAdmin – JSP based MySQL Admin tool that can run on Tomcat…. a bit slow and looks like missing lots of features compared to phpMyAdmin, not sure if I want to use it.
- working on getting entire data for big table
- this may be good enough?
- SELECT *
FROM projects p
LEFT JOIN budget_centers bc ON bc.project_id = p.uid
LEFT JOIN obligations_outlays oo ON oo.funding_id = bc.uid
LEFT JOIN (SELECT project_id, GROUP_CONCAT(fiscal_year) AS fiscal_years,
SUM(budget_amount) AS budget_amount FROM yearly_totals GROUP BY project_id) AS yt ON yt.project_id = p.uid
LEFT JOIN (SELECT project_id, GROUP_CONCAT(login) AS financial_analysts FROM _projects_portfolio_mgrs GROUP BY project_id) AS fa ON fa.project_id = p.uid
LEFT JOIN (SELECT project_id, GROUP_CONCAT(login) AS portfolio_managers FROM _projects_portfolio_admins GROUP BY project_id) AS pm ON pm.project_id = p.uid
LEFT JOIN (SELECT budget_center_id, SUM(committed_amount) AS total_committed_amount, GROUP_CONCAT(committed_date) AS committed_dates
FROM committed_amounts GROUP BY budget_center_id) AS ca ON ca.budget_center_id = bc.uid
- SELECT *
- this may be good enough?
Phil 3.26.14
8:00 – 4:00 SR
- Backups
- Got my copy of the OpenGL ES programming guide
- Database updates
- The DbTable.writeToVizDb() Query: is not showing the query
- There is a ScriptFacades.dbStoredQuery saying that there is a syntax error at line 1 in listing of a ‘2013 Summary by Appropriation and Capability’. Turns out that it was spaces in the column names. We’ll fix that tomorrow.
- Javascript
- NURBS and such for way-cool charts. Trust me on this. http://verbnurbs.com/
- Firefox apparantly has some odd bug. When gl.getShaderInfoLog(shader) is called, it returns a string that breaks Strings. Assigning it to a string or sending it to the cosole causes JavaScript to become unresponsive. The results can be put into an alert, though about 50% of the time, the following error appears: TelemetryStopwatch: key “FX_PAGE_LOAD_MS” was already initialized resource://gre/modules/TelemetryStopwatch.jsm
NS_ERROR_NOT_AVAILABLE: prompt aborted by user resource://gre/components/nsPrompter.js - This appears to be a known FF bug?
- Nice online shader editor: http://shdr.bkcore.com/
- Damn – *Firefox* has built in shader editors!
- So now that we’ve had the opportunity to see some helpful error messages, here’s how you set up and use multiple array buffers in WebGL:
First, the shaders. Data comes into the vertex shader and is then copied over to the varying variable(s)
var VSHADER_SOURCE =
'attribute vec4 a_Position;\n' +
'attribute vec4 a_Color;\n' +
'varying vec4 v_Color;\n' +
'void main() {\n' +
' gl_Position = a_Position;\n' +
' gl_PointSize = 5.0;\n' +
' v_Color = a_Color;\n' +
'}\n';
// Fragment shader program
var FSHADER_SOURCE =
'#ifdef GL_ES\n' +
' precision mediump float;\n' +
'#endif\n' +
'varying vec4 v_Color;\n' + // Receive the data from the vertex shader
'void main() {\n' +
' gl_FragColor = v_Color;\n' +
'}\n';
Then we create the data:
// Create a buffer object
g_vertexBuffer = gl.createBuffer();
g_colorBuffer = gl.createBuffer();
if (!g_vertexBuffer || !g_colorBuffer) {
var msg = 'Failed to create the buffer object';
console.log(msg);
alert(msg);
return -1;
}
// Bind the buffer object to target
gl.bindBuffer(gl.ARRAY_BUFFER, g_vertexBuffer);
var a_Position = gl.getAttribLocation(gl.program, 'a_Position');
if (a_Position < 0) {
var msg = 'Failed to get the storage location of a_Position';
console.log(msg);
alert(msg);
return -1;
}
// Assign the buffer object to a_Position variable
gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, 0, 0);
// Enable the assignment to a_Position variable
gl.enableVertexAttribArray(a_Position);
// Bind the buffer object to target
gl.bindBuffer(gl.ARRAY_BUFFER, g_colorBuffer);
var a_Color = gl.getAttribLocation(gl.program, 'a_Color');
if (a_Position < 0) {
var msg = 'Failed to get the storage location of a_Color';
console.log(msg);
alert(msg);
return -1;
}
// Assign the buffer object to a_Color variable
gl.vertexAttribPointer(a_Color, 3, gl.FLOAT, false, 0, 0);
// Enable the assignment to a_Position variable
gl.enableVertexAttribArray(a_Color);
// clear everything at the end
gl.bindBuffer(gl.ARRAY_BUFFER, null);
Last, we enter the drawing loop. First, we get the handles to the attributes, then sequentially bind, enable and overwrite their data buffers
var a_Position = gl.getAttribLocation(gl.program, 'a_Position');
var a_Color = gl.getAttribLocation(gl.program, 'a_Color');
// Clear
gl.clear(gl.COLOR_BUFFER_BIT);
// make some new vertex data
for(var i = 0;i < (n*2); ++i){
vertexDataArray[i] = Math.random()*2.0 - 1.0; // make some new vertex positions
}
// Write date into the vertex buffer object
gl.bindBuffer(gl.ARRAY_BUFFER, g_vertexBuffer);
gl.enableVertexAttribArray(a_Position);
gl.bufferData(gl.ARRAY_BUFFER, vertexDataArray, gl.STATIC_DRAW); // use the new vertex positions
// Write date into the vertex buffer object
gl.bindBuffer(gl.ARRAY_BUFFER, g_colorBuffer);
gl.enableVertexAttribArray(a_Color);
gl.bufferData(gl.ARRAY_BUFFER, colorDataArray, gl.STATIC_DRAW); // write the same color values
gl.bindBuffer(gl.ARRAY_BUFFER, null);
// Draw the points
gl.drawArrays(gl.POINTS, 0, n);

You must be logged in to post a comment.