Category Archives: Projects

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…

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 ;


Tom.DeVito 1.25.2011

Visual Studio Issues:

  • Tried to compile RCS System and I keep getting:  ERROR spawning ‘RC.exe’
  • I thought this might have been because my libraries were in the wrong spot but then I noticed that I could not compile any C++ programs.
  • Forums say to reinstall VS 2008 or install vc++ components
  • If you have this problem and need to look up you VS key, this post will tell you where to find it:  http://stackoverflow.com/questions/529064/visual-studio-2008-product-key-in-registry
  • Download for VS 2008 pro kept stopping.  Going to try to download it at home.
  • Installed VS2010 because we had it.  Using it for now but I still want to get 2008 back on so I don’t have to worry about the projects being compatible.
  • ctrl+j forces the auto-complete to pop-up when programing in VC++

Learning 3d opengl:

  • While waiting for the terminal pads and other components to come, I have decided that it would be good to take another look at openGL so I can be more useful on the software side of the project.
  • Previously, I only used opengl to make a 2d sliding box with friction, for testing our first prototype.  This was very simple because the camera could be straight on and there was only one object to worry about moving.
  • Phil recommended that I make a planetary system with 3 planets, moons around the planets, and moons around the moon to practice the basics.
  • I am going to read through the openGL book tonight and start trying to make the system tomorrow.  If the pads arrive, I will start attaching them first so we can get the hand working.

Dong Shin 01.25.2011

  • PPM changes
    • fixed DateFields not working properly – null out when editing is done
      • default parseFunction fails on labelFunction – set parseFunction to null
    • Server filters out SELECT SQL statements – too many statements
    • working on Project and Budget selection for FinancialStatus

Phil 1.25.2010

8:00 – 5:00 VISIBILITY

  • Tentative meeting to discuss + data with Anne and Matt on Wednesday afternoon
  • Looks like I’m going to be taking classes at UMBC from 10:00 – 11:00 Wed/Fri. No one schedule meetings then until May 13 🙂
  • Working on automatic table creation. Instead of using the describeType xml directly, I now use it to create a smaller table that gets size information from the data in the object. Next is automating that process and inserting some data.
  • I really want to see how  data comes to a remote object, so I’m attempting to connect the debugger to my Tomcat instance.
    • Downloading the server adapters from the Eclipse  Web tools package. Actually, it looks like you have to download the whole WTP. I did not download the SDK version
    • Got Eclipse to control the server instance in the installed directory.
      • Create a new server in the Eclipse “Server” view
      • Right-click on the server and select “Open F3”. This brings up a configuration page.
      • Set the “Server Location” to “Use Tomcat Installation (takes control of Tomcat installation)
      • Tried just connecting to the remote object, but no joy. Next thing will be to try to create a dynamic web project in the normal Tomcat location where I can see the logs. Also, general behavior should be easier to tease out.

Tom.DeVito 1.24.2011

Simulation Physics:

  • The Havok physics engine, commonly used in video games, is free for academic purposes.
  • Pretty sure we can use this but it might be overkill.
  • There is another popular one that is open source called bullet
  • Cannot find any inventory of what functions are in the libraries.  I don’t know if you can get impulse forces from this.

Integrated Circuits:

  • Reviewed the soldering techniques video from youtube.  The maker of the video has a website: http://store.curiousinventor.com/
  • Lots of good guides and projects there
  • Found a pcb board simulator with guides for how to use it on his site.
  • The AD5248 seem to be a good digital potentiometer.  It is 2-bit addressable, has 10k ohm resistance, 2 circuits per package,and 256 steps.

Dong Shin 01.24.2011

  • working at home
  • PPM Changes
    • setting up project_portfolio database for Financial Status Data
    • additional fields to Funding Requests
    • fixed data editing errors in CurrencyTextInput
    • send changed data back to FinancialStatusDataDataGrid from FinancialStatusDataFromWindow for update
  • need to look at why Financial Data Save Confirmation not working properly……

Thomas.DeVito 1.21.2011

MISC:

  • Spent most of the day switching and setting up the printer for people
  • I could not find the hp solution center software for windows 7.  This is needed to set a destination for easy scanning

KF:

  • Still looking for a good chip to control the gain on our amplifier chip
  • I2C needs to have a 1k resistor connecting each signal to 5v coming from the usb-i2c adapter.  This is called a pull-up resistor not sure why its needed.  Pull-up is when you connect something to the high side, pull down is when you connect something to the low-side or gnd.
  • So far I have found big chips with large resistances and tiny chip with good resistance range.  I am leaning towards a 14 pin tssop package which will need an adapter(tiny but at least proto advantage sells the adapters).  The optimal resistance of the i2c variable potentiometer is 5k ohm  which will be in series with another 5k ohm fixed resistor.  The reason 5k is the target rating is because the mechanical variable pot we have has a maximum for 1ok.  The max volume we want happens around 7680 which is approximately half of the maximum resistance of the variable pot in series with a 5k resistor.  Each step in a 7bit(128 step) 5k variable pot is each to about 40 ohm, which means we have roughly 36 steps of control over the volume range we want to use.  Most of the chips I am looking at have dual potentiometers which means we will only need 3 to control 5 fingers.
  • Tried putting a resistor between the + side of the amp output and the speaker to see if anything good would happen due to confusion of how one of the ICs worked.  Nope nothing good happened as expected so I must have been misreading tat ones documentation.

Phil 1.21.2011

7:30 – 3:30 VISIBILITY

  • Deployed Dong’s changes to PPM. All went well. I also ran TRUNCATE on the query_logs table and the size of the backup went from 78 megs to 4.5 megs. It was easily 90% SELECT statements. I asked Dong to only log DB access that affects the tables. That should keep things under control and make it more searchable.
  • Working on my Java db accessor classes. Decided that I’m going to work on building FLAILS to do this. it’s a good opportunity, and the other objects were just dissimilar to be annoying.
  • Took a detour into the javax xml parsing code and it still sucks. Dom4j has moved from dom4j.org to sourceforge. Had a bit of cognitive dissonance for a while at the website.
  • Added dom4j utilities from MavenAssist to JavaUtils, and found that we had commented out the part of MaveAssist that puts the deployment urls in the POM. That’s back in and we have a new Maven on the repo.
  • Created a SQL table from describeType xml!

Thomas.DeVito 1.20.2011

Computer controlled amplifier:

We need 5k ohm digital potentiometers, more of those amplifier kits, and an i2c multiplexer to route the signal.  The other chips will be useful when we want to make every thing smaller.  The steps are limited but with the right configuration of resistors, I should be able to get the range we want.

I am going to have to double check the sizes to make sure they are all workable.  There may also through pin versions of the circuits.  Surface mounting isn’t too hard but it does mean that you need a PCB.

Strain gauge durability:
The BTP-5 strips have best spacing between the terminals.

Things I need to buy:

  • Fine soldering tip
  • Fine solder
  • Flux

Dong Shin 01.20.2011

  • PPM Changes
    • continue working on Financial Status
      • added Summary to FinancialStatusDataGrid
      • added FinancialStatusData.as
      • added DateItemRenderer – use dateFormat string to format, currently DD-MMM-YY and MMM-YY
      • modified CurrencyItemRenderer to handle Summary Data
      • layout is almost finished

Phil 1.20.2011

7:30 – 4:00 VISIBILITY

  • Pinged Kristie C. about a followup demo. We’re trying to schedule something for next week either here or at S2F
  • Pinged Anne about scheduling a + meeting
  • Testing Dong’s update. If everything works, I’ll roll it in this afternoon. Looks good.
  • Working on Project Tracker
    • Added ProjectInfoObject
    • Added EntryInfoObject
    • Added HistoryInfoObject
    • Added StatusInfoObject
    • Added TypeInfoObject
    • Abstracted RemotObject DB creation into base class, cleverly named ‘BaseObject’