Monthly Archives: July 2011

Dong Shin 07.11.11

  • created script based on the query below – managers_under_budget.py
  • find managers/projects with under budget query
  • SELECT p.* FROM project_portfolio.projects p, project_portfolio.budget_centers b, project_portfolio.budget_amounts a, project_portfolio.obligations_outlays o, project_portfolio.obligations_outlays_goals g WHERE p.uid = b.project_id AND b.uid = a.budget_center_id AND b.uid = o.funding_id AND b.appropriation = g.appropriation AND g.year = year_count AND a.year = g.year AND (o.month_1 < IF (o.type like ‘%Outlay%’, (g.outlay_month_1 * a.amount / 100), (g.obligation_month_1 * a.amount) / 100) OR o.month_2 < IF (o.type like ‘%Outlay%’, (g.outlay_month_2 * a.amount / 100), (g.obligation_month_2 * a.amount) / 100) OR o.month_3 < IF (o.type like ‘%Outlay%’, (g.outlay_month_3 * a.amount / 100), (g.obligation_month_3 * a.amount) / 100) OR o.month_4 < IF (o.type like ‘%Outlay%’, (g.outlay_month_4 * a.amount / 100), (g.obligation_month_4 * a.amount) / 100) OR o.month_5 < IF (o.type like ‘%Outlay%’, (g.outlay_month_5 * a.amount / 100), (g.obligation_month_5 * a.amount) / 100) OR o.month_6 < IF (o.type like ‘%Outlay%’, (g.outlay_month_6 * a.amount / 100), (g.obligation_month_6 * a.amount) / 100) OR o.month_7 < IF (o.type like ‘%Outlay%’, (g.outlay_month_7 * a.amount / 100), (g.obligation_month_7 * a.amount) / 100) OR o.month_8 < IF (o.type like ‘%Outlay%’, (g.outlay_month_8 * a.amount / 100), (g.obligation_month_8 * a.amount) / 100) OR o.month_9 < IF (o.type like ‘%Outlay%’, (g.outlay_month_9 * a.amount / 100), (g.obligation_month_9 * a.amount) / 100) OR o.month_10 < IF (o.type like ‘%Outlay%’, (g.outlay_month_10 * a.amount / 100), (g.obligation_month_10 * a.amount) / 100) OR o.month_11 < IF (o.type like ‘%Outlay%’, (g.outlay_month_11 * a.amount / 100), (g.obligation_month_11 * a.amount) / 100) OR o.month_12 < IF (o.type like ‘%Outlay%’, (g.outlay_month_12 * a.amount / 100), (g.obligation_month_12 * a.amount) / 100)) GROUP BY p.uid ORDER BY b.uid, a.year, o.year

Mike 7.8.2011

  • Redid the way the Visibility Suite loads information from configuration files using Phil’s ConfigLoader and SingletonDataDictionary
    • Added the concept of namespace to the SingletonDataDictionary, all methods that used the data items name as reference now also have an optional argument called namespace that is a string and is used to distinguish similar named attributes
    • Gave namespaces to all the separate projects in Visibility and they now load configuration information based on those namespace.  Now all projects can share a single configuration file without overwriting eachother’s values.
    • Built, deployed and tested AccountManagers, IngestManager, and Visibility DataNavigator on FGMDev.com all three seem to be working fine

Kristi 07.08.2011

Continuing Visibility 2 documentation

Running into the following error – not consistent – but frequent:

Projects – Projects – Enter Monthly Status Data – After selecting contract –

Gets hung up on message (highlighted in blue wave pattern – as if it is processing) – “Project selected… creating data panels”

Showed to Dong – Thanks!

Thomas DeVito 7.7.2011

Start 10:15

  • Found out why the send and receive methods were not working.  At some point I changed the char* to the buffer to a pointer to the pointer.
  • Send was not syncing properly with the PC side. moved it so it sent once for testing purpose on reset.
  • Sending is working but the echo back is incomplete
  • Added a state for standby where the arduino sends nothing til the first command is recieved.  This is to make sure it syncs properly
  • Decided to send a struct with the data instead of sending the data as an object.  Struct contains the name, size, and data.
  • Add method getStruct(name) and importStruct(name) to the DataDictionary.

End: 6:15

Tom DeVito 7.6.2011

Start: 10:15

  • Found one of the major problems.  The arduino serial buffer can only handle 128 bytes.  Was using 256 which was causing an overflow.
  • Adjusted all send/receive buffers down to 128.  Lowered the max number of character for the data entry name to 16 characters down from 64.
  • Seems that the runtime errors I was having are resolved.  The arduino seems fine with a call to the getName() function but I cannot save the returned value to a char array for some reason.

End: 6:15

Phil 7.7.11

8:00 – 4:00 VISIBILITY

  • Remembered my SF-86 stuff, so more paperwork today
  • And when I’m done with that, work on the web IDE paper
  • OK, I brought in the wrong (well, incomplete) forms. Working on the paper instead.
  • According to Vernon, The firewall request I had submitted was never going to get processed because it was associated with the wrong type of ticket. He created a new ticket, which I have now associated the request with. This is the most fun ever!

Phil 7.6.11

8:00 – 4:00

  • It looks like the webIDE concept is going to require a server that supports VMs in hardware. At this point, it’s no longer something that I can do on my own, so I’m going to write a whitepaper for FGM specifying what’s needed and punt.
  • Prepping the hand for a demo. Have forgotten how to calibrate the sensors, which have drifted. Oh. No power supply == no sensors. That’s whatr those two wires were for…
  • Well this is cool: http://tv.adobe.com/watch/adc-presents/control-the-desktop-with-your-mobile-device/
  • Also good: http://www.paultrani.com/blog/index.php/category/flashactionscript/
  • In the ongoing saga of our problem child server, Vernon sent out an email that he had addressed all concerns. I responded that port 443 was still closed and attached screenshots of everything working fine inside the firewall and blocked outside. Gee, I wonder if there will be any progress tomorrow?
  • Made some progress on my SF86, but forgot to bring in my old form.

Tom DeVito 7.5.2011

Start: 10:15

  • Thought I had figured out the looping problem before but it turns out I was skipping over some important steps.
  • Added the steps that were missing.  Most have to do with the DataDictionary.
  • The Arduino keeps choking.  I assume this is because of runtime errors
  • Started debugging line by line using a continuous send to light an led to tell me if the arduino hit an error. If it does the light turns off.
  • The arduino seems to be very picky about initializing variables before assigning them.  Things like DataElement* ptr = getItem(name); seem to cause errors
  • I was able to fix a lot of the runtime errors but am still having a problem with importData.  The line that seems to have the problem is where it gets the name from the DataElement.
  • I took out the size bytes in the send receive to make sure this wasn’t causing problems.  It is now set to send or receive the full 256 byte buffer.

End: 6:30

Dong Shin 07.05.11

  • projects under budget – https://localhost/VisibilityScriptingServer/Publisher/projectsUnderBudget.xml
  • query to find projects and data that doesn’t meet the goal
    • SELECT p.uid as ‘project_id’, p.project_number, b.uid as ‘budget_center_id’, b.center_number, b.appropriation, a.year as ‘budget_year’,
      REPLACE (FORMAT(a.amount,2),’,’,”) as amount, o.uid as ‘obligation_outlay_id’, o.year_count, o.year as ‘obligation_outlay_year’, o.type,
      REPLACE (FORMAT(o.month_1, 2),’,’,”) as month_1,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_1 * a.amount / 100), (g.obligation_month_1 * a.amount) / 100), 2),’,’,”) as goal_month_1,
      IF (o.month_1 < IF (o.type like ‘%Outlay%’, (g.outlay_month_1 * a.amount / 100), (g.obligation_month_1 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_1,
      REPLACE (FORMAT(o.month_2, 2),’,’,”) as month_2,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_2 * a.amount / 100), (g.obligation_month_2 * a.amount) / 100), 2),’,’,”) as goal_month_2,
      IF (o.month_2 < IF (o.type like ‘%Outlay%’, (g.outlay_month_2 * a.amount / 100), (g.obligation_month_2 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_2,
      REPLACE (FORMAT(o.month_3, 2),’,’,”) as month_3,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_3 * a.amount / 100), (g.obligation_month_3 * a.amount) / 100), 2),’,’,”) as goal_month_3,
      IF (o.month_3 < IF (o.type like ‘%Outlay%’, (g.outlay_month_3 * a.amount / 100), (g.obligation_month_3 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_3,
      REPLACE (FORMAT(o.month_4, 2),’,’,”) as month_4,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_4 * a.amount / 100), (g.obligation_month_4 * a.amount) / 100), 2),’,’,”) as goal_month_4,
      IF (o.month_4 < IF (o.type like ‘%Outlay%’, (g.outlay_month_4 * a.amount / 100), (g.obligation_month_4 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_4,
      REPLACE (FORMAT(o.month_5, 2),’,’,”) as month_5,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_5 * a.amount / 100), (g.obligation_month_5 * a.amount) / 100), 2),’,’,”) as goal_month_1,
      IF (o.month_5 < IF (o.type like ‘%Outlay%’, (g.outlay_month_5 * a.amount / 100), (g.obligation_month_5 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_5,
      REPLACE (FORMAT(o.month_6, 2),’,’,”) as month_6,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_6 * a.amount / 100), (g.obligation_month_6 * a.amount) / 100), 2),’,’,”) as goal_month_6,
      IF (o.month_6 < IF (o.type like ‘%Outlay%’, (g.outlay_month_6 * a.amount / 100), (g.obligation_month_6 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_6,
      REPLACE (FORMAT(o.month_7, 2),’,’,”) as month_7,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_7 * a.amount / 100), (g.obligation_month_7 * a.amount) / 100), 2),’,’,”) as goal_month_7,
      IF (o.month_7 < IF (o.type like ‘%Outlay%’, (g.outlay_month_7 * a.amount / 100), (g.obligation_month_7 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_7,
      REPLACE (FORMAT(o.month_8, 2),’,’,”) as month_8,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_8 * a.amount / 100), (g.obligation_month_8 * a.amount) / 100), 2),’,’,”) as goal_month_8,
      IF (o.month_8 < IF (o.type like ‘%Outlay%’, (g.outlay_month_8 * a.amount / 100), (g.obligation_month_8 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_8,
      REPLACE (FORMAT(o.month_9, 2),’,’,”) as month_9,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_9 * a.amount / 100), (g.obligation_month_9 * a.amount) / 100), 2),’,’,”) as goal_month_9,
      IF (o.month_9 < IF (o.type like ‘%Outlay%’, (g.outlay_month_9 * a.amount / 100), (g.obligation_month_9 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_9,
      REPLACE (FORMAT(o.month_10, 2),’,’,”) as month_10,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_10 * a.amount / 100), (g.obligation_month_10 * a.amount) / 100), 2),’,’,”) as goal_month_10,
      IF (o.month_10 < IF (o.type like ‘%Outlay%’, (g.outlay_month_10 * a.amount / 100), (g.obligation_month_10 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_10,
      REPLACE (FORMAT(o.month_11, 2),’,’,”) as month_11,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_11 * a.amount / 100), (g.obligation_month_11 * a.amount) / 100), 2),’,’,”) as goal_month_11,
      IF (o.month_11 < IF (o.type like ‘%Outlay%’, (g.outlay_month_11 * a.amount / 100), (g.obligation_month_11 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_11,
      REPLACE (FORMAT(o.month_12, 2),’,’,”) as month_12,
      REPLACE (FORMAT(IF (o.type like ‘%Outlay%’, (g.outlay_month_12 * a.amount / 100), (g.obligation_month_12 * a.amount) / 100), 2),’,’,”) as goal_month_12,
      IF (o.month_12 < IF (o.type like ‘%Outlay%’, (g.outlay_month_12 * a.amount / 100), (g.obligation_month_12 * a.amount) / 100), ‘FLAG’, ‘OK’) as flag_month_12
      FROM project_portfolio.projects p, project_portfolio.budget_centers b, project_portfolio.budget_amounts a, project_portfolio.obligations_outlays o, project_portfolio.obligations_outlays_goals g
      WHERE p.uid = b.project_id AND b.uid = a.budget_center_id AND b.uid = o.funding_id AND b.appropriation = g.appropriation
      AND g.year = year_count AND a.year = g.year
      AND (
      o.month_1 < IF (o.type like ‘%Outlay%’, (g.outlay_month_1 * a.amount / 100), (g.obligation_month_1 * a.amount) / 100) OR
      o.month_2 < IF (o.type like ‘%Outlay%’, (g.outlay_month_2 * a.amount / 100), (g.obligation_month_2 * a.amount) / 100) OR
      o.month_3 < IF (o.type like ‘%Outlay%’, (g.outlay_month_3 * a.amount / 100), (g.obligation_month_3 * a.amount) / 100) OR
      o.month_4 < IF (o.type like ‘%Outlay%’, (g.outlay_month_4 * a.amount / 100), (g.obligation_month_4 * a.amount) / 100) OR
      o.month_5 < IF (o.type like ‘%Outlay%’, (g.outlay_month_5 * a.amount / 100), (g.obligation_month_5 * a.amount) / 100) OR
      o.month_6 < IF (o.type like ‘%Outlay%’, (g.outlay_month_6 * a.amount / 100), (g.obligation_month_6 * a.amount) / 100) OR
      o.month_7 < IF (o.type like ‘%Outlay%’, (g.outlay_month_7 * a.amount / 100), (g.obligation_month_7 * a.amount) / 100) OR
      o.month_8 < IF (o.type like ‘%Outlay%’, (g.outlay_month_8 * a.amount / 100), (g.obligation_month_8 * a.amount) / 100) OR
      o.month_9 < IF (o.type like ‘%Outlay%’, (g.outlay_month_9 * a.amount / 100), (g.obligation_month_9 * a.amount) / 100) OR
      o.month_10 < IF (o.type like ‘%Outlay%’, (g.outlay_month_10 * a.amount / 100), (g.obligation_month_10 * a.amount) / 100) OR
      o.month_11 < IF (o.type like ‘%Outlay%’, (g.outlay_month_11 * a.amount / 100), (g.obligation_month_11 * a.amount) / 100) OR
      o.month_12 < IF (o.type like ‘%Outlay%’, (g.outlay_month_12 * a.amount / 100), (g.obligation_month_12 * a.amount) / 100)
      )
      ORDER BY b.uid, a.year, o.year

Phil 7.5.11

7:30 – 3:30VISIBILITY

  • OK, where was I? Let’s see – the server is still up and the compiler is still working. The choice is either to a) see how it runs on the actual Internet or b) start working on virtualization.
  • Looking at virtualization first.
    • Ubuntu has a script-driven system called vm-builder, but it’s at version 0.12. Here is some documentation.
    • IBM paper describing the process. It’s for Red Hat, but a good start
    • Hmmm. You need hardware support for VMs. If you run “grep -E ‘vmx|svm’ /proc/cpuinfo” and get a non-null result, you’ve got it. My server does not. fgmedev does, but it’s a vm already, so what does that mean?
  • Gave Jeff all the information I think he needs to get the paperwerk approved for his server. I gave him a followup call to verify that the information was what he needed and he seemed to think so. That being said, he was going to give the info to someone else to enter, so thay may have questions later as they get into the details
  • Started on my SF86 update

Mike 7.1.2011

  • It works!  I was able to load Visibility from fgmdev.com into WebDesk running on my local machine.  A few weird errors occur such as the minimize and maximize on the panel containing the swf loader throw security errors?  Will look at them next week.
  • Upgraded to Flex 4.5.1 and tried installing the plugin in to Eclipse 3.7.  It’s not officially supported and I got a few errors trying to make a java / flex combined project.
  • Installed Eclipse 3.6 and added the Flex plugin, no errors.  Working on migrating my workspace to the new installation and finalizing some of the server code for WebDesk.

Tom DeVito 7.1.2011

Start: 10:15

  • Found out the hard way that the arduino IDE doesn’t save automatically and, if you shutdown your computer, it will close automatically without asking if you want to save.
  • Spent most of the day getting the sketch back to where it was at the end of yesterday.  Will remember to save manually more.
  • Renamed and moved the PC side desrialization method to datadictionary::importData(char* buffer).  gets the name from the buffer, checks if the item exists,  then imports data from buffer to the local memory location.

End: 6:15