Category Archives: Phil

Phil 7.8.13

8:30 – 12:00

  • Backed up
  • Moved to my new temporary desk. Remarkably, I was able to login and get to the servers.
  • Adminsitrivia.

12:00 – 5:30 FP

  • Adding multiple sound playback
    • Rework the output to handle multiple sounds. This means one TestResult per sound. However, the result cannon be associated with a sound, so for each release, all the emitter sources will have to be included. Later analysis can be used to determine the best fit. Note also that the number of attempts may be greater or lesser than the number of emitters.
  • Need to use the XML to write out and read in just the configuration values
  • Need to save multiple source positions in TestResult. Added bad code at the point to continue.
  • Looks like there is going to be a meeting to show what I’ve been working on Friday at 1:00.

Phil 7.3.13

8:00 – 11:00 SR

  • PIT crew meeting
    • Everytime Cognos data is uploaded, it seems to be adding the amount to claimed items
    • GUI defaults to COFUND even if an existing req is PRIME
    • Add a button to copy the contents of a req to a new req
  • Deployed new FA
    • Numerous bugs in query builder
      • Column width appears to be fixed, so that a one column query results in a narrow column at the left of the screen
      • Adding “where” clause in Advanced seems to delete the column being “where’d” from the query
      • No way to search through the extensive list of columns
      • If the query is going to be shown on the main screen, then it should probably be editable. I’d just hide the thing and have the query builder come up with the current query.

11:00 – 5:30 FP

  • Meeting with Rd. Kuber.
    • Add a “distance” component to the test and a multiple emitter test
    • Got a bunch of items to add actuators to: Hardhat, noise-blocking headphones, and a push-to-talk mic.
  • Added name and gender fields to the GUI and cleaned up the menus
  • Working on adding multiple sounds
    • Added a ‘next’ button
    • I think the test should have options for how the sounds are added
      • Permutations (A, then B, then C, then AB, AC, BC, ABC)
      • All (Going to start with this)
      • Random?
  • Added variable distance

Phil 7.2.13

8:00 – 10:30

  • Backups
  • Got kicked off of my machine before being able to deploy. Come back this afternoon?
  • Spent some time with Dong getting our contact info available again.

FP 10:30 – 5:00

  • Writing out files – done with CSV, not sure if we need the xml yet. Here’s what a session result looks like:

    Data!

    Data!

  • Trying to copy the executable over to another machine. First, the app failed to launch until I installed the end-user directX package. Now, it fails to start the XAudio2 engine. Trying the full install.
  • Built a release version. That may be better?
  • Well, it was either the full SDK install or the release build, but it works. I’m betting that it was the release build, since the debug dlls aren’t included in the DirectX end user package and I may have been referencing those.

Phil 7.1.13

SR 8:00 – 11:30

  • Installed JRE 7 u25 on the server, and Tomcat didn’t like that at all. Spent some time putting things back together. Currently running JDK u21.
  • Mike’s filter code isn’t working righ. Sent him a note.
  • The office is getting ready to move! Everything needs to be packed by Friday. I think we’ll need a box
  • VizTool meeting was rescheduled for Wednesday morning.

And the Gas Company called, looks like I need to be home for the rest of the day.

Phil 6.28.13

Dentist this morning. I appear to still have all my teeth.

Much running around to pick up the car.

FP 10:00 – 2:00

  • Continuing with saving test data. Classes are up and printing correct text to the console. The last step is to add file write and navigation for saving output. Each test should probably write out an XML and CSV file with the same name. A default name could be calculated from teh researcher, subject, sound and timestamp.

Phil 6.27.13

7:30 – 11:30, 4:00 – 5:00SR

  • The table information is not showing up in the new query screen
  • PIT crew meeting
    • Be able to load documents and associate with a req. and scan for meta info
    • There are Total Allocated problems if there are no req’s
    • Project refresh needs to happen as req’s are added in Total Project Budget
    • Upload data button needs to turn green (or blue) after the upload
    • MA – Mission Assistant
    • Query export to excel
  • Generated a full output of all projects using the scripting system and attempted to export directly to visibility_dev2, which failed (need to add error messages!). After eliminating redundant column names, we were able to publish XML that was then ingested. We then used that to export the XML.
  • A user is having PKI problems. Need to find the test servlet.
  • Export Meeing with Brad

11:30 – 3:00FP

  • Creating a TestResult class with the following information
    • session number
    • test number
    • test type (speed or accuracy)
    • time to lift
    • source position
    • cursor position
    • angle difference
    • speaker volume matrix
    • Also, there will be a toString() and toXmlString() method for output;
  • The TestManager will instance and store TestResults in a container (vector?), which will have the additional fields
    • Researcher name
    • Subject name
    • Sound file
    • Total sessions
    • Speed tests per session
    • Accuracy tests per session

Phil 6.25.13

8:00 – 11:30 SR

  • Backups,
  • Deployed Dong’s latest FA. The ingest works. Yay!
  • More soul sucking training
  • There are some SA issues that are coming up that I’m getting concerned about. I wonder if it’s possible to get a real SA (part time?) to take up some of the load and to do the tasks I’m pretty much guessing at.
  • Got on the wait list for two computer security seminars that might help with the above.

11:30 – 5:00 FP

  • Continuing with the test exec. I’m also going to need a class that records the data associated with each test segment.
  • Ran into a… Well, I don’t want to call it a bug. Let’s say that C++ is showing its age. FLTK uses char*. Most of Windows uses wchar_t. They don’t play well together, so I spent about half of my time working out the best way to convert between them. It’s this:
  • void setSoundFileString(LPCWSTR wps){
    	soundFileString = new wstring(wps);
    	string str(soundFileString->begin(), soundFileString->end());
    	sprintf_s(soundFile, "%s", str.c_str());
    }
  • I mean really!? Good grief.
  • Got a lot of the exec built and running. Clicking on the center button fires the sound, and you can drag to where you think the sound is. I am not all that accurate. It could be a frequency thing though. I’m running a low 10-20 HZ signal. The test should definitely try different frequencies.

Phil 6.24.13

8:30 – 12:30 SR

  • Backups
  • Training
  • Other houskeeping
  • Lenny’s having a problem where some subtraction is not accurate to the penny. Rounding error?

12:30 – 4:30

  • Starting to put together the actual test framework. Found a good open source synthesizer (ZynAddSubFX) that I used to create a pure tone that I then cut down to one second with Audacity. It’s important to note that this app only works with MONO sounds.
  • Building up the class that will handle running multiple sessions.
  • Just a quick shout out to FLTK. I have been adding and adjusting the GUI all day long as I figure out how to run the tests. To add fields, adjust positions and just generally futz around, all I have to do is use the FLUID gui IDE, export the layout as C++ code, add in stdafx.h and compile. It all just works. A great piece of code. FLTK_rocks

Phil 6.21.13

8:00 – 1030 SR

  • First day of summer, and it. Is. Gorgeous.
  • Backups
  • Deployed Dong’s Prime/Cofund fix. He’s still working on the ingest bug.
  • Talked to Chris a bit about the kind of demo we want to give to Scott. We are very much on the same sheet.

10:30 – 5:00 FP

  • Put all the projects into SVN, checked them out and did a clean build. Everything still works.
  • Starting on capturing mouse events. Done. Capturing Left, Middle, Right, Wheel and Drag. I think I want to have it so that the user presses (holds down?) a “button” in the middle of the GL window, signifying that he’s ready for the next sound queue. Once the sound plays, he drags toward the source. This is indicated by a line indicating the vector (and a cursor?). Releasing the mouse is the event that marks and records the choice, vector, elapsed time and position (vector?) of the emitter.
  • Making a button class for OGL. Done
  • Making a line segment class so we can point to where the sound is. Done
  • Progress for today:
  • vth

Phil 6.20.13

8:00 – 11:00 SR

  • Backups,
  • Meeting with PIT crew
    • Need to move Prime/Cofund designation to Req’s
    • Loading a new Cognos pull is deleting FA (and other?) relationships
  • Deployed the new VSS. This included:
    • Stopping the server.
    • Deleting the current VSS webapp folder
    • Creating a new war file with the updates
    • Starting the server
  • And that seems to have done the trick. I’ve looked online for a possible reason that an old jar may be maintained between sessions and couldn’t find anything. I did find a useful discussion on how Tomcat handles Jars and classpaths though: http://www.mulesoft.com/tomcat-classpath

11:00 – 4:30 FP

  • Spent a good deal of time trying to figure out the best way for the GUI and the Exec to communicate. Originally, I wanted to be able to pass a pointer to the GUI from teh exec so that user actions in the GUI could be executed in a more reasonable place. Due to header conflicts, I couldn’t manage to get that to work, so I put together a UI_cmd class that is set in the UI and read in the Exec. That seems to be working pretty well, though I may want to put a queue in there and turn it more into a message bus/event pump. That level of sophistication isn’t needed yet though.
  • I integrated the sound library that I wrote. I still have to reference the D3D audio library in the main application which I think is a bit odd, but I think it may be because I’m incorrectly exporting the symbol table from the static library. Again, that’s a refinement for later.
  • At this point, the 3D position of my OGL shape and the 3D postion of my continuous sound (2D actually, Y = 0) are running in an infinite circle. It’s pretty cool to hear the audio track to the image. I’m uploading a video of the running system, and although it won’t be in surround, you can hear the flanging effects from the sound moving around the helmet.

Phil 6.19.13

8:00 – 4:00 SR

  • Backups
  • All Hands SR meeting. Monthly status reports are now supposed to be “high level”. Not exactly sure what that means…
  • Need to add version info to ScriptEngine, VSS and ScriptObject. For some reason, the new jar files are not getting accessed. Should be able to roll this out tomorrow.
  • Done. Added the static version call to the Publisher and Script runner servlets. And fixed up the publisher servlet so that the list of REST interfaces is now html.
  • Burned a new disk.

Phil 6.18.13

7:30 – 1:30 SR

  • Big demo today. Went well.
  • Deployed the new RA with the fix for Version Tracker
  • Found the problem with the AS3 version of VT. Bad namespace…
  • Backups.
  • Looked into the issue with the production server where the first line is the header. Couldn’t make it occur in the dev system, so I’m thinking that the deployment may not be complete. Burned a new version for tomorrow.

1:30 – 3:30 FP

  • Added a fine-grained timer callback to the main app
  • Added an OpenGL window, set to Ortho2, and with pixel-accurate dimensions
  • Connected the timer to the OpenGL, and set the position of what will be the emitter. We won’t see this during the actual test, but it will be good for debugging.
  • I need to track mouse clicks and motion in the GL window. That will come tomorrow, and then I’ll work on integrating the audio library. That’s the basics for running the experiments. After that, I’ll work on reading and writing the input and result files.
  • Pix for today: AppProgress6.18.13

Phil 6.17.13

FA 7:30 – 12:00

  • The version checker is confused between FA and PA. Do we need a better way to determine the program name?
  • Uploading new VSS and FA
  • Need to put in a script that resets the PA milliseconds periodically until the FA fix is in.
  • Got the Flex45 utils detecting if the object is null and putting in the parent application name if that’s the case. Having issues debugging the AS3 version. Maybe namespace issues.

Phil 6.14.13

8:00 – 3:00 SR

  • Ran the scripts to update the accept/obligate table
  • Backups
  • Deployed new VSS (only jar files and swfs + restart!)
  • When building a viz table, the column names are coming across as column elements. I think the copy needs to start at row 1, not zero.
  • Trying to chase down a bug in how the cognos data is ingested and summarized.
  • Wrong field name(s) in the funding_status data grids
  • My thought on the “Master Mapping Table” for FA
    • Database name (optional?)
    • Table name
    • Table alias
    • Column name
    • Column alias
    • The client app uses this to provide the list of available columns to query from . Users see and use the “Column Alias” only, which has to be unique within the table. Normal SQL is allowed, though any word that could be used to modify data is not allowed. Joins are set using the table names and aliases. Column aliases are mapped to “Table alias”.”Column name” . The UI matches to VizTool Builder as much as possible, with tabs leading from basic (pick the columns to make the query) to advanced (restricted – read only – sql)
    • Queries can be published for general use within FA, or published to the VizTool. Publishing to the VizTool creates or updates a named table in the visibility_dev2 database. There probably needs to be some update frequency as well.
  • Fixed the NULL bug in VSS
  • Fixed the header row bug in VSS
  • burned a new disk containing FA and VSS

FP 3:00 – 4:00

  • Here’s hoping that we can get back to real development next week
  • Wrapped the FL_FileChooser in a class just to make it a bit easier to deal with in multiple instances.

Phil 6.13.13

7:30 – 4:30 SR

  • Meeting with PIT crew to go over demo
  • FA – Maybe wire up FA to VizTool to create up-to-date queries based on queries on status page (publish to viz tool?)
  • VSS – result on createVizTable is false for the accept/commit/obligate table. Need to look into that
  • VSS – Unable to set the script schedule. Changing the time in the db works though. Not sure if the scriptrunner is catching that?
  • FA – the status query page needs to be more general, probably with free-form queries based that produce ad-hoc thables
  • FA – May need an easy “point and click” basic query interface too?
  • Working on getting the VSSTestbed server up and configured. The jython jar file isn’t getting exported
  • Getting some Tomcat errors:
    • SEVERE: The web application [/VSSTestbed] appears to have started a thread named [RedeployManager] but has failed to stop it. This is very likely to create a memory leak.
    • SEVERE: The web application [/VSSTestbed] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
    • SEVERE: The web application [/VSSTestbed] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@47f36a24]) and a value of type [flex.messaging.client.FlexClient] (value [flex.messaging.client.FlexClient@65c1ed3f]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
      Jun 13, 2013 2:37:34 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
    • SEVERE: The web application [/VSSTestbed] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@1ebef74a]) and a value of type [org.python.core.ThreadState] (value [org.python.core.ThreadState@b5d2b0b]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
    • Searching for related messages implies that we need a servletContextListener. Need to look into this later.
  • Think I fixed the query store. The if the macro object was required and could be null.
  • The problem with storing the viz table may be in redundant column names. Pulling out the insertion of uid and timestamp. That, plus testing in the table_roles where there was no matching id seems to have fixed the problem. Burning a new full VSS to disk.