Category Archives: Flex Client

Phil 7.22.13

8:00 – 4:00 SR

  • Viztool meeting. See Dong’s notes for details
  • Deployed new FA and RA. Next week we’ll change the links on the VizTool webpage so that the primary links are to the new tools
  • Discussed how to handle the column width issue with Dong. It’ll be a method like ‘width = getColumnWidth(minWidth, numColumns, parentWidth);’ that’s called on resize().
  • Looking into the issue where large tables appear not to be inserted into the vis2 database. And of course, everything is working fine here. Need to add some more logging, I guess.

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.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.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.

Phil 6.12.13

8:30 – 2:30 SR

  • Deploying new FA. Missing RA.
  • VSS scripting broke: “unable to open jython script manager – ScriptRunner.java:76”. 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:

FltkFramework

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

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.

Phil 6.6.13

7:30 – 12:30 SR

  • PIT Crew meeting
    • Not quite ready for the demo
    • Req Amt -> “Amount”
    • MIPR Desc -> Funding Description
    • Fix “#” tab title
    • Remove Sub-budget Center name and number from project and move to Req Line
    • Test search/auto claim (add sub-budget ctr) add debug statements so we can see what’s going on in production environment
    • Add columns for sub budget center and executing budget ctr
    • Project management screen in doubling
    • Search functions (still!) need to be query driven
    • When searching for sub-budget centers, the default should be to cull based on the budget center prefix. There should be an additional search box which overrides the default search (* lists everything)
    • Use alert SQL to produce charts (There needs to be date information, so this may mean that we have to edit the source for text panels)
    • Fix Lenny’s email problem (may be the DB misbehaving. Bounced MySQL)
      • Date field tries to save empty string.
      • Look MySqlIf for clean up after a sql error.
    • Funding status should default to current month
    • Column names
      • Budget Center
      • Budget Center Name
      • Sub-Budget Center
      • Sub-Budget Center Name
      • Executing Budget Center
      • EBC Name
      • Appropriation Year
      • Requisition ID
      • PO Reference
      • ACR
      • Vendor Name
      • Address Line 1
      • City
      • Postal Code
      • Comitted Date
      • Comitted Amount
      • Obligation Date Obligated Amount
      • Expensed Date
      • Expensed Amount
      • Vendor ID
      • Vendor Abbr.
      • PO Start Date PO End Date
      • Contract Type
      • PO Type Code
      • Contract No.
  • Took FA offline until null date error is resolved
  • Demo is now scheduled for June 14
  • Interview for Dong’s paperwork.

FP 12:30 – 4:00

Phil 6.3.13

8:00 – 11:00 SR

  • Backups
  • Got the paperwork to start on getting client sites hooked up to the main system
  • Bugs
    • Lenny did the following and got some kind of NULL sql error. It may have happened to Carla as well
      • Created a project
      • Added service PM on the project tab
      • saved
      • Deleted the PM from the project (first tab)
      • Added a Req on the second tab
      • Added the same (now deleted) service PM to the Req.
      • Clicked ‘update’, which threw the SQL error
      • clicked close
      • Checked the record, and everything appeared to be saved properly
      • Other req updates using the same sequence did not cause the error
    • The goal is thenter one EA line item and then link multiple req’s out of unclaimed to it. Is this possible?
    • Unclaimed needs to roll up and subtotal all lines (just with matching req’s? Not sure what to do about blanks, unless there is a way to find other matching sequences)
    • There are a heck of a lot of “UPDATE budget_center_contracts SET budget_center_id= NULL where uid = xx”. It’s probably a good 70% of the logs.

11:00 – 4:30 FP

  • Well, after two days of not being able to work on this due to Comps prep and trouble with a significant fraction of my vehicles, maybe I can get some 3D audio working today.
  • Added everything from How to: Integrate X3DAudio with XAudio2, and definitely got a result – when the emitter position moved off of center, the sound cut out. Now you might think that’s a bad thing, but my guess is that I have some variable that either being set with zero or junk, which is messing up the sound matrix calculations.
  • Using the XAudio2Sound3D project as a source of code to mine, I pulled over the (much more extensive) emitter setup and now have things working, although not as clearly as I’d like. Next is to clean up and package the code into the SampleSound-derived classes.
  • And by the way, this might be a good hard hat to try the rig on: http://www.amazon.com/ERB-19224-Americana-Full-Ratchet/dp/B001LYB7JW
  • Cleared a lot of nonessential (i.e. listening cone)code out of the emitter
  • Realized that I could probably use voice->SetOutputMatrix() to set the channels directly. I added a method that cleans out the dspSettings.matrixCoefficients and then sets a single value in the matrix. Whadaya know – it worked :-)
  • Need to do some packaging of the code, but I now have enough to do tests for the situational awareness system and to get rid of the MIDI boards for the vibrotactile controller.

Phil 5.31.13

7:30 – 10:30 SR

  • Backups – I wonder if I can have the output go through a script that counts the number of “copied” and “moved” to report if the entire script executed correctly? Have to look into that.
  • Took the projportfolio debug login out of setup.xml
  • Took care of various paperwork, including resume stuff

10:30 – 3:30 TIMEOFF

  • Arranged to get the Porsche towed. Well no, that was an adventure in itself, and basically killed the rest of the day.
  • Scheduled service for motorcycle
  • Handed in tuition paperwork

Phil 5.30.13

7:30 – 10:30 SR

  • Direct Cite/Reimbursable – separate lines
  • Comitted date changes to latest
  • Set date(s) nullable
  • Reports on Committed and Obligated dates (future)
  • Total in Proj Mgmt incorrect
  • Add “Create Project” to sub project line
  • Add “View Financial Data” to sub project line
  • Double clicking should bring up subproject
  • FACTS PE resetting to null?
  • Reset login on logout
  • Verify that “Add” subproject moves a root-level project and that Remove does the same
    • Add -> “link”
    • Remove -> “unlink”
  • Double-clicking on a subproject shouold switch the project view to the subproject
  • Add a check for no budget data so that “view data” does not hang
  • “view data” contract info should come from COGNOS pull.
  • In “Funding Status” have a TOTALS line above the main grid that totals up the columns with numbers
    • Be able to add/remove columns created by the query
    • Be able to have public/private queries

10:30 – 5:30 TIMEOFF

  • Prepping for comps meeting this evening. If I get done early, I’ll go back to XAudio