Monthly Archives: June 2013

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

Dong Shin 06.18.2013

  • VizTool demo – went well
  • continue working on FA
    • bit tricky to get the ItemRenderer to work with XML data – QueryBuilderCheckBoxItemRenderer.mxml
    • working on ColumnFilterWindow for Funding Status

Dong Shin 06.17.2013

  • deployed new FA
  • continue working on RA/FA
    • found that RA uses ProjectAssistant for VersionTracker – fixed
    • created XML definition for Query Builder
      • each entry has name, table, columnName, type
    • changed to put element.toString() instead of element.text().toString() so XML can be loaded properly

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.

Dong Shin 06.14.13

  • no demo today
  • continue working on FA
    • fixed Funding Status not showing Obligated/Committed values
    • added Column Prefs to the Funding Status
    • COGNOS pull must be grouped by Budget Center, Req ID, and Contract – done
    • fixed Select Button not working for Saved Query
    • working on Query Builder for Funding Status

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.

Dong Shin 06.12.2013

  • deployed new FA, few bugs
    • missing RA
    • Save Button in Review Contract (COGNOS) scrolls away
    • Claimed DG not refreshing properly, adding duplicates
    • Filter Unclaimed not working
    • VDividedBox not expanding Req datagrids
    • move Total to top of the list in Funding Status
    • SQL Save error on VSS
  • created a script to generate Accepted and Obligated status

Phil 6.12.13

8:30 – 2:30 SR

  • Deploying new FA. Missing RA.
  • VSS scripting broke: “unable to open jython script manager –”. Rolled back to the previous version from April 2013. Fixed! The jython jar file was missing. WTF!?
  • Need to know what script name is in create viz table. Nothing – it’s not used. If it returns true, the the table was created.

2:30 – 4:30 FP

  • Working on getting reacquainted with FLTK, callbacks, etc. Got some of the framework up:


Phil 6.11.13

8:00 – 11:30 SR

  • Backups
  • Still no CTO_Acoustic charge number
  • Possibly add a search to the top of the “updatable drop down” widget and have the “add new” at the bottom?
  • Security Refresher Briefing

11:30 – 4:30 FP

Alright, so I now have my audio library. Next on the agenda is a test program that tests reactions of users to vibroacoustic input. The test needs to present randomized stimuli to users, so that they can be tested for:

  • Time to respond with a direction
  • Accuracy of direction
  • Efficacy of stimuli

Since this is probably going to be within subjects (multiple stimuli) and also between subjects (same tests on multiple users) we’re going to want to be able to present the same sequence, so we’ll need to seed the random number generator so we get the same sequence.

  • Start with the default random number generator, but maybe run through a wrapper class in case we need something like a Mersenne Twister.
  • Xml file to specify the input and output of the experiment. This library looks reasonable.
    • Input
      • Sounds to use (random distribution of sound use)
      • Test type (Accuracy, Speed, or both)
      • Attempts per test
      • Number of tests (must be even)
      • Random seed
      • min/max delay between test segments
      • output filename
    • Output
      • Test UID
      • Date
      • Time
      • Subject
      • Researcher
      • Free form note field (1024 characters?)
      • Accuracy or Reaction time test
      • Audio configuration
      • Random seed
      • Calibration results
        • Time(s) to click in response to visual cue
        • Time(s) to click in response to audio cue
      • For each played sound
        • Sequence x of total
        • Audio file(s) used (WAV)
        • Audio source position (x, y) in screen coordinates from the origin, where the user’s head is
        • Audio playback matrix (actual speaker relative volume)
        • Time to click after play start
        • Duration of sound
        • Click position (x, y) in screen coordinates from the origin, where the sound is perceived to have come from
  • App
    • Text
      • File navigator for xml file
    • Calibrate
      • Runs a sequence of tests where the user has to click the mouse as quickly as possible in response to the canvas flashing white, and then all(?) speakers in the headpiece playing the calibration sound
      • Calibration cues are have a randomly determined timing between X and Y seconds
      • Test is disabled until calibration is run. Loading a new xml document effectively resets the system, requiring a new calibration sequence
    • Test
      • Shows a label that says either “Accuracy” or “Speed” based on which test is being run. We could change the background of the display as well?
      • The graphics screen shows a circular cursor that resets to the center of the graphics screen at the beginning of each section. Once the audio cue plays, the user can move the mouse away from the center towards the direction of the sound. The circle is clamped in its motion so that the result is always a valid angle, as long as the user moves the cursor far enough away from the center (TBD). Clicking the mouse causes the clock to stop and the cursor to reset.
      • If this is not the last test segment, then a random time period between X and Y seconds elapses before the next test is run.
      • Once the test completes, the system checks to see if that is the last one. If not, a stochastic choice is made to determine if the next test should be speed or accuracy. By the time all tests have run, the number of speed and accuracy runs will be equal.
    • Output file is appended throughout the test (open, write, close? Or read in the DOM, update and write out?)

Started the FLTK wrapper, and probably saved a good deal of time by going back to Erco’s FLTK page and associated videos

Dong Shin 06.10.2013

  • continue working on FA
    • added clear COGNOS data
    • added auto pre-select COGNOS data when Requisitions are added/edited
    • working on Funding Status…
      • added simple filter area, using SQL syntax
      • added total at the end

Phil 6.10.13

8:00 – 11:00 SR

  • Status report
  • Backups
  • Still have not submitted my time sheet, waiting for CTO_Acoustic to show up in Deltek
  • Paperwork! Resume’s submitted though.

11:00 – 4:00 FP

  • Making sure that the release version of the code runs as well – it does. And a massive 19kb of executable. Of course, it’s not statically linked…
    • C/C++
      • General
        • Additional Include Directories: $(DXSDK_DIR)\Include
      • Language
        • Treat WChar_t as Built in Type: Yes (/Zc:wchar_t)
    • Linker
      • General
        • Additional Library Directories: C:\Program Files %28×86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86
      • Input
        • Additional Dependencies:
          • winmm.lib
          • dxerr.lib
          • X3DAudio.lib (only needed for DLL compilation)
  • Making library
    • Following directions here:
    • For a DLL library, you *must* select “export variables” option. Still figuring out how to use this.
    • For my first attempt in accessing the DLL, I’ve created the following method (The #defines are generated, I’ve included them for all to marvel at):
        #define DXAUDIOINTERFACEDLL_API __declspec(dllexport)
        #define DXAUDIOINTERFACEDLL_API __declspec(dllimport)
        DXAUDIOINTERFACEDLL_API BasicAudio* getBasicAudio(void);
      • I think this produces an exported method that returns a pointer to the BasicAudio class. Not sure though. It may, though now I’m getting the following link errors:
        • 1>DynamicLibConsoleTest.obj : error LNK2019: unresolved external symbol “public: void __thiscall BasicAudio::destroy(void)” (?destroy@BasicAudio@@QAEXXZ) referenced in function _wmain
        • etc…
        • 1>C:\Phil\MSVC Dev\MultichannelOr3dAudio\DxAudioInterfaceLibrary\Debug\DynamicLibConsoleTest.exe : fatal error LNK1120: 6 unresolved externals
      • Which means the public inner methods are not available. Maybe the answer is to make a wrapper class for all the methods? Ugly, but something to try..
      • Building wrapper class DXAUDIOINTERFACEDLL_API CDxAudioInterfaceDLL
      • Done. Compiles and links now, but doesn’t run. Ah. I was declaring a local pointer to the internal BasicAudio class. Not pretty, but it does seem to work…
  • Testing against Static console app – check
  • Testing against Dynamic console app – check
  • Switching to Release build
  • Testing against Static console app – check
  • Testing against Dynamic console app – check
  • Checked everything into Subversion. Calling it a day.

Dong Shin 06.07.2013

  • deployed new FA – few bugs
    • upload/update COGNOS SQL bug – change center_name to center_number
    • Sub Budget Center Number cannot be added
    • add DividedBox for Requistions and Claimed/Unclaimed contracts
    • still couldn’t save the project – fixed by changing sub_center_number to sub_budget_center_number in budget_centers table
    • contracts filtering/mapping not working properly, especially for EA’s
  • continue working on FA
    • working through the list from today
    • fixed Server hanging on SQL error that causes server to be unresponsive…
    • moved Upload Data to Project Mgmt
    • changed all MIPR Description to Funding Description
    • reworking COGNOS data ingest to add more fields – done!
      • additional fields – Budget Center Name, Sub-Budget Center, Sub-Budget Center Name, Executing Budget Center, EBC Name

Phil 6.7.13

8:00 – 11:00 SR

  • Ugh.
  • rain
  • Traffic from hell. Took me over an hour to do my 20 minute commute
  • Backups
  • Query fixes.
  • All claimed items are showing up on the project page. There should be only claimed lines for that project. Unclaimed is correct though

11:00 – 4:00 FP

  • Adding comments and velocity accessors to audio code
    • Comments are done
    • Checked in project to Subversion repo, checked out and compiled. All seems to be working fine.
  • Cleaning up #includes
    • I had been getting the following annoying warning once I started including items like <unordered_map>: 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstring(21): warning C4995: ‘strcat’: name was marked as #pragma deprecated. In the cleanup, I finally got around to testing the need for includes and deleted <strsafe.h>, which seems to be the source of my grief. Yay!
  • Ready to make the audio code a library. Monday. Then time to design the experimental interface.