Monthly Archives: September 2011

Mike 9.13.2011

  • Finished a java library for authenticating to and pulling from google’s spreadsheets, the methods for querying are:
    • listSpreadsheets
    • listColumns
    • executeQuery
  • Now I’ll use these 3 methods to create methods that will be called by the client such as:
    • getUniqueCounts
    • or a paginated table query
  • The library is mavenized but I don’t want to mavenize the actual google app engine project since it works so well with the GAE Eclipse Plugin, so I simply added a pom to the project which copies the dependencies to the correct folder.  Whenever there’s a dependency change, we just have to run ‘mvn package’ and all the dependencies should be updated but it won’t actually build anything.
  • Now I’m trying to bridge the gap between the 3 simple methods and the client

Phil 9.13.11

8:00 – 4:30 VISIBILITY

  • Finishing up commenting the ScrollingChoosers package, then I’m going to start working on getting drilldown to work in the charting
  • Need to add some logic to allow for multiple selections without the control key
    • Done for bar chart, working on the others
    • Pie and Column are done, working on DataGrid
    • DataGrid mostly working.
  • Talked to Bill D. He needs Dong’s info. I reminded him that the 4 month timeline assumed one month to get development environments up and running, and three months to write, test and document the new code. In other words, three months to write the code. If getting the desks takes three months, then the effort will be for six. This was surprisingly hard to explain.

Tom DeVito 9.12.2011

Start: 2:00

  • Edited test sketch to use the Midi class for midi functions.  It worked.
  • I don’t think individual channels can be panned across stereo so we may need 2 more musical instrument shields.
  • Tested the Controller class.  Its having problems and needs to be fixed.

End: 6:00

Phil 9.12.11

7:30 – 4:30 VISIBILITY,


  • I expect the final draft on the patent from Stewart today. Hopefully not too much proofing. It goes in tomorrow, I think. Maybe today!
  • One year’s worth of work (props to Tom for all the electronics!):
  • The patent is reviewed and all paperwork is reviewed. Should go in today.

Mike 9.9.2011

  • After lots of flailing I was able to query the spreadsheet service using the HTTP method detailed here and got some JSON back.  Now I need to be able to convert this to objects.
  • I keep thinking some google library somewhere will tie in to this query service but as far as I can tell, the only reference is on the page I just linked.    I think I’m stuck writing my own http query library and result parser (obiously I’ll take advantage of some JSON library but they aren’t are easy to use as the Flex one).

Dong Shin 09.09.11

  • started working on PPM Widgets
  • created DraggableTablesContainer, TableInfoPanel, TableInfoList
  • working on getting table information for TableInfoPanel
    • got Tables, Primary Keys and Foreign Keys to display…

    Phil 9.9.11

    8:00 – 2:30 VISIBILITY

    • On the way into work this morning I realized that I should add multiple selection to the GenericScroller – done
    • Re-rigged events so that they work well as an mxml component
    • A sizable amount of testing and debugging.
    • Interview with Alex Perry

    Tom DeVito 9.8.2011

    Start: 10:20 (Had to detour around a road closure due to flooding)

    • Added aftertouch and pitch bend functions in case we need them to the midi class.
    • Added a internal test simulation function to the Controller class so it can work without a computer simulation
    • Worked on decision process of the controller.  Reads data from a source that can either be manipulated by the internal simulation or external sensors/computer simulation.
    • Cleaned my desk before I start adding more wires.  tried to remove the shelf inside the cabinet so I can have more desk space with out having to raise the monitor.  This was harder then I thought it would be and I need a power drill.  Probably should have asked Dong how he did it first.
    • I should be able to start test and debug tomorrow.

    End: 6:20

    Mike 9.8.11

    • I was able to create and deploy a flex webapp on the google app engine and access it both from the web and from my phone.  This will hopefully work as a back end for our mobile application.
    • Now I need to figure out how to do what I was doing in Flex:
      • Authenticate:
        • The suggested method is OAuth 2.0 which is a pain for the user.  You construct a URL to a google authentication site specifying your application and what services you want access to.  You then open that URL for the user who enters their username and password in to googles site.  The site then displays a token string for the user to copy back in to your application which you use to make calls.
        • The oldest, easiest method is ClientLogin which is what I was using in Flex.  The user enters their information in to you application and you use it to make requests.  However, in Flex I was doing their through HTTP Requests which is much different in java.
        • I implemented an OAuth 2.0 version in about 20 minutes.  There were several good examples of how to do this in java.
        • After many hours of trying different things I was able to implement a ClientLogin version as well.  All the existing examples of ClientLogin appear to be outdated as the gdata library has under gone major changes (multiple times) since the original release.
      • List Spreadsheets
        • Once authenticated, this was (relatively) easy.  I used the gdata spreadsheet api to connect to the spreadsheet service and list the available spreadsheets for a user.  No where does it list what other jars are required dependencies so I figured it out through trial and error.  However, we can only execute very limited queries from API.
      • Queries
        • To run any kind of decent query we need another API.
        • The one I was using in Flex was the Google Query Language in the Google Visualization API but this is only available in JavaScript or via HTTP Requests.  So I will probably have to write some function that make HTTP Requests like I did in Flex.
      • gdata-java-client vs google-api-java-client
        • gdata-java-client is the “old” version of the java implementation I have been using and will probably do everything we need and won’t be deprecated for several years.  It is not mavenized, most examples are out dated and no longer work, and development has been halted.
        • google-api-java-client is the brand new version.  It is mavenized, has examples, and more APIs, and has plans for adding more but is in beta.

    Phil 9.8.11

    8:00 – 5:30 (90 min off) VISIBILITY

    • Talked to Dong about the “Help” app. He’s going to add in wizards and write up a few scenarios.
    • Working out a generic scrolling widget that you pass an ArrayCollection to and that creates the appropriate scrollers – Done
    • Also added a GenericScrollerEvent that takes a data (*) object to pass the results of said scroller around
    • Customer flash player is currently Need to retest WebDesk.


    • Brought in the new hand for Tom to play with
    • Reviewed the patent application. Looks like it will be submitted on Monday.

    Tom DeVito 9.6.2011

    Start: 10:00

    • Worked on Controller class for the finger
    • Determined that when we use a computer based simulation the only thing that needs to be passed is if there is contact and how much force is applied
    • Pc side will recieve a string with the status of each finger module
    • I think a solution to the problem where you cannot have anything in the constructor on the arduino side can be fixed by wrapping the class in a #ifdef statement

    End: 6:00

    Phil 9.7.11

    8:00 – 4:30 VISIBILITY

    • My 1987 Porsche passed emissions with 30% of the limit on Co2 and 15% of the limit on HC. What were they driving back then? Tanks?
    • More scroller work.
      • Added ScrollingDateChooserEvent
      • Added all the edge conditions to handle 12 and 24 hour time
      • Added military and civilian date and time formats
      • Moved code to a separate library and checked into SVN – Mobile/ScrollingChoosers
    • Mike’s gotten the Google App Engine talking to web and phone with GraniteDS. Next will be to write some methods that assemble table meta information such as unique counts that the Google Data API doesn’t cover.
    • Talked with Bill D. about getting our desks. We sent a *memo* about it!

    Mike 9.6.2011

    • Continued working on library to access and query google spreadsheets
    • Methods working to list tables, list columns, and execute a simple generic query
    • Due to some limits of the google query language, we can’t execute what we need in a single query, such as list how many distinct values are in each column
    • Going to investigate Google App Engine as a possible solution