Monthly Archives: January 2011

Tom.DeVito 1.31.2011

Repairing the hand:

  • The top of the thumb, bottom of index, top of the pinky and bottom forward back rotation need repairs.
  • Attached new strain gauges to all but the bottom index.  This one will have to wait for the glue to dry on top.
  • left/right rotation, middle, and ring finger all work with good sensitivity.

Had to leave to get a check book from my house.  Will continue working on the articulated hand at home and call about the voice coil actuators.

Mike 1.31.2011

Continuing work on the data grid report item:

  • Moved the other 6 sample tables from the word doc in to the report prototype
  • Added the remainder of the text in aswell
  • Added word wrap to headers and cells
  • added column colors to cells only
  • Column header colors are possible but will require some work
  • cell specific colors are possible but will require much more work
  • HTML text in columns is possible but will require a fair amount of work
  • Added vertical and horizontal grid lines to the data grid

Phil 1.31.2010

8:00 – 5:30 VISIBILITY

  • Finally found out what was causing the “save problem” with PPM financial data. If a cell that has information has that info deleted, then when the window is closed, the save dialog appears.
  • Wrote up server requirements for Brian
  • Got most of the object transfer done. Need to get the typing on DbTable working better.

Dong Shin 01.31.2011

  • found a way to use the M2_REPO environment variable for Flex Projects so that the Build Path no longer requires the absolute path. Maven Assist should have this…. Updated MavenAssist, now V1.9.2.10
    • <configuration>
      <enableM2e>true</enableM2e>
      <useM2Repo>true</useM2Repo>
      </configuration>
    • cannot get to SourceForge FTP server – connection refused?
  • PPM Changes
    • fixed Financial Data saving problem
    • creating database upgrade scripts for Financial Status
      • DBUpdateSQLs01312011.sql

Tom.DeVito 1.28.2011

Noticed I never published my blog for yesterday

3D articulated hand with force feedback:

  • Noticed that the solar system is technically a joint so this is a good place to start from
  • Mapped out the measurements and angles of my hand in order to get an idea of scaling ratios and required degrees of motion
  • Going to start with the finger tips and work my way down the hand.
  • The palm and thumb are going to be tricky because its made up of oddly shaped polygons
  • Read up on 3d vector physics a bit

Repairing the hand

  • Wired up the hand.  Only broke one connection others seem good.  Flux helps a lot.  It seemed to protect the gold leads and lower the specific heat of the solder.
  • All connections are giving proper resistances but I have not tested them on the SG amps yet.

Mike 1.28.2011

Working on AdvDataGridReportItem:

  • Have it loading in right beside text and the roll up report item.
  • It reads a column configuration in and sets up the columns accordingly, even works with grouped columns
  • Copied some of the fake data over from the new report from Alan, seems to be working
  • It needs wordwrap in both the cells and headers since a lot of the headers are excessively long

Put eclipse, subclipse, and the programming test on the extra laptop.

Dong Shin 01.28.2011

  • PPM Changes
    • continue working on Funding Request work with new tables….
      • Direct Cites/Contracts working
    • Multiple Direct Cites results in many same entries in Financial Status….
    • funding_request table missing project ID!!!
      • ALTER TABLE `funding_requests` ADD `project_id` INT NULL AFTER `statement_of_work` , ADD INDEX ( `project_id` )
      • ALTER TABLE `funding_requests` CHANGE `project_number` `project_number` VARCHAR( 256 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
      • UPDATE funding_requests SET project_id = ( SELECT uid
        FROM projects
        WHERE funding_requests.project_number = projects.project_number )
      • ALTER TABLE `direct_cites` DROP `contract_number`
    • modified Funding Request to store Project ID
    • mapping Funding Request data fields to Financial Status

Phil 1.28.2011

7:30 – 5:30 VISIBILITY

  • Meeting with Matt and Anne from 3:00 – 4:00. Went very well. We’re going to try to get some more and better data into VISIBILITY
  • Class today – out between 9:30 and 11:30
  • working on  generic data handlers
    • Get insert working – Done, but I want to add precompiled queries as well
    • Get SELECT Query working
    • change User Info over to use new system
  • Spent some time improving the precompiled query code in DbHelper

Mike 1.27.2011

More work on the report widget

  • Connected the tree navigator to the report, so clicking an item in the tree now expands the appropriate node in the report
  • Created a SelfLabelingTextInput which when it is empty and not focused, it displays a label in itself such as ‘Search’.  I had to remember how to create and set custom styles in flex components.  Checked to make sure it is still the same method in Flex 4 as it was in Flex 3.  There’s decent sample code of how to do it in SelfLabelingTextInput.
  • Created a skin to the text input which has a space for an icon, added a standard magnifying glass icon, and called it SearchTextInputSkin, both the skin and the component are now in FGMUtils.
  • Added the ability to disable the transition animations in rollupcontaienrs so I can correctly calculate the verticalScrollPosition after expanding nodes

Phil 1.27.2011

10:30 – 4:30 VISIBILITY

  • It took about 90 minutes to dig out today. Heavy snow.
  • Working on InfoObjectManager.java/as
    • Remote objects are only typed when read by Java if the .as file is decorated properly. An actionscript object that inherits from a decorated class is read in as an ASObject.
    • I couldn’t cast data the way that I wanted to from the remote objects so I redid the approach so that data objects are wrapped in remote objects. There are now the following objects:
      • CreateTableObject: Wraps an actionscript object and sets the class name as the table name. Returns a status string that can be the error message from SQL
      • InsertObject: Wraps an actionscript object and attaches a table name. When received by the host, a statement is built to insert the data into an existing table
      • QueryObject: Passes a query and a table name top the host. The table name is created by passing the actionscript object into the QueryObject class
      • QueryResultObject: Contains the query string, any message string, the table name, and an ArrayList of Maps that are converted to a Bindable ArrayCollection on the Client side
    • Tomorrow I’ll try to refactor the user info to use the new mechanism and work out into projects and entries from there.
  • It is, by the way, very convenient to look at what’s going on with the server at times 🙂

Dong Shin 01.27.2011

  • Snow!
  • PPM Changes
    • Modifying Funding Request for Project Status
      • direct_citest table changes to set up relationship with contracts table, update existing data
        • ALTER TABLE `direct_cites` ADD `contract_id` INT NULL AFTER `funding_request_id` , ADD INDEX ( `contract_id` )
        • ALTER TABLE `direct_cites` ADD FOREIGN KEY ( `contract_id` ) REFERENCES `project_portfolio`.`contracts` (
          `uid`) ON DELETE SET NULL ON UPDATE CASCADE ;

        • UPDATE direct_cites SET contract_id = ( SELECT uid
          FROM contracts
          WHERE direct_cites.contract_number = contracts.contract_number )
    • working on Funding Request for the database changes…

Mike 1.26.2011

Continued working on the Report App / Widget thing.  I now have a singleton which creates and manages all ReportItems.  Report widgets and other ReportItems request ReportItems as defined in their configurations and a report is built hierarchically and the tree navigator displays the structure.   Using the concept of Flex UIComponent parents, when a user clicks on something in the tree, I can trace up the hierarchy to expand whatever nodes are in the path and scroll down to the correct vertical position.

Tom.DeVito 1.26.2011

Repairing the hand:

  • Bondable terminals came in today
  • Glued them on to the area next to the strain gauges
  • They seem pretty solid but I am going to wait for the glue to dry completely before wiring.
  • Hopefully these work as a good anchor point for the wiring.
  • Started repairing the connection wire

Learning OpenGL:

  • Got the solar system working today
  • I know how to do things but why they work I will have to look into.  The documentation for the functions shows how it affects the matrix but I haven’t really looked into this yet.

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

gluPerspective(60, (GLfloat)800 / (GLfloat)800, 1.0, 100.0);

glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);

  • The bold code above needed to be added in order to get the lighting to work.  I assume this is because lighting projects and is part of the projection matrix but I have no idea.
  • Translating before scaling allows you to make items smaller without affecting their position.
  • Pushing saves the current matrix and popping restores the current matrix.  After pushing the matrix, any actions before you pop the matrix will be isolated to only the object you are drawing within.

Phil 1.26.2011

8:30 – 4:30 VISIBILITY

  • First big(ish) snow of the year
  • Meeting with Matt and Anne still appears to me on for this afternoon – nope canceled. Maybe Friday.
  • Working on debugging remote objects
  • Got it all working. Here’s how you do it:
    1. You will need a workingversion of Tomcat. But it needs to be stopped. We’re going to be running it from within Eclipse
    2. Download and install the Eclipse Web Tools Package. You don’t need the SDK version. The update site for helios is here: http://download.eclipse.org/webtools/repository/helios/
    3. Open the Window->Show View->Other… then inside the view three find Sever->Servers view
    4. Inside the Servers view, create a new Server. You should be able to select the Tomcat version that you want. You will also need to point it at the version of Tomcat you have installed.
    5. Right-click on your Server and select Open to bring up the “Overview” configuration screen as a tab in your editor. Under Server Locations, select the “Use Tomcat Installation (takes control of Tomcat installation)
    6. Create a new project of type Web->Dynamic Web Project. I named mine RemoteObjectTestbed
    7. Set the properties->Java Build Path source tab to have the Default output folder to XXX/WEB-INF/classes, where XXX is the name of the directory you’re deploying to. Note that you have to type this in, you CAN”T point and click.
    8. Add the project to the server by right-clicking on the server in the server view. That brings up a dialog that allows you to select web projects and move them over to the server.
    9. Since I was debugging a project that I had already started using MavenAssist, I copied over a bunch of stuff. These files get placed in the WebContent folder. THis is the folder that you pointed to in step 7. :
      • The files that get deployed are under the Program Files folder in your web project.
        • Add a lib folder and fill it with all the jars you need to run flex (take from a working version)
        • Add a flex folder and put the flex xml files from a working project
        • Under web inf, copy a web.xml file
      • If you’ve copied everything over correctly, you should be able to start the server by right clicking on the Server in the Servers view and selecting “Start” or “Debug”. If you navigate to http://localhost/XXX/messagebroker/amf you should get a nice blank screen, not a 404 or some other crappy result. If everything works, turn off the server before continuing.
      • Create package(s) under the “Java Resources:src” folder for your code. These packages will need to be the same as what’s in the remoting-config.xml file. These are your remote objects.
      • To debug the remote object, place your breakpoints and start the server in debug mode. Starting the server appears to reload the entire project so if you have a Flex project dropping its output in the XXX folder, you’ll have to rebuild.
    10. At this point you should be able to debug both side of the application.
  • OK, back to actually making things.
  • The data is coming over the wire as an ASObject. Inside it is a hashmap. All types work correctly except for the uint, which comes over as an int. Based on this info, I’m going to add a String to the base class that defines the table name. Then the object contains everything it needs to create a table in its hashmap. No creation of XML is required.
  • Spent a while wondering why some items weren’t appearing in the variables view of the java hashmap. Wound up creating a Set and looking at the variables there. They all show up, so I guess I’m just blind…

Dong Shin 01.26.2011

  • PPM Changes
    • all necessary project data passed onto Financial Status Panel
    • added Program Element and FACTS PE to Create Project Panel
    • disabled changed check on Financial Data – wasn’t really needed because data save is automatic
    • new tables to support Financial Status
      • program_elements
        • CREATE TABLE `project_portfolio`.`program_elements` (
          `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,PRIMARY KEY ( `name` )) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;

      • facts_pe
        • CREATE TABLE `project_portfolio`.`facts_pe` (
          `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,PRIMARY KEY ( `name` )) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;

    • added program_elements and facts_pe fields to budget_centers and set relationships
      • ALTER TABLE `budget_centers` ADD `program_element` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
        ADD `facts_pe` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL
      • ALTER TABLE `budget_centers` ADD INDEX ( `program_element` )
      • ALTER TABLE `budget_centers` ADD INDEX ( `facts_pe` )
      • ALTER TABLE `budget_centers` ADD FOREIGN KEY ( `program_element` ) REFERENCES `project_portfolio`.`program_elements` (
        `name`) ON DELETE SET NULL ON UPDATE CASCADE ;

      • ALTER TABLE `budget_centers` ADD FOREIGN KEY ( `facts_pe` ) REFERENCES `project_portfolio`.`facts_pe` (
        `name`) ON DELETE SET NULL ON UPDATE CASCADE ;