Category Archives: Phil

Phil 5.21.13

8:00 – 1:00 SR

  • Backups
  • Deployed the new FA and RA for the first time. Had to make some changes to the DB to support. FA runs just fine, but there is a query problem in RA. Current bugs are:
    • When Update is clicked and not all fields are filledin, we might what to pop up a dialog box saying that they are not all filled in but allowing for a save.
    • Add tooltips to buttons. In particular, we need to be clear about what saves and what cnacels without saving.
    • Add a “Select All” to the SQL error dialog, now that we have QUERIES FROM HELL.
    • RA error string: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExceptio: Unknown column ‘c.appropriation’ in ‘where clause’.
  • Cleaned up the blog a bit to accommodate FA and RA.
  • Had an interesting talk with Dimitri about his Master’s program. Thought for the day. What if access to a system was based on an Eliza-like conversation with the computer. There would be an initial “get acquainted” session, and then the “login” conversation would be shorter.
    • Store key patterns as well as the words.
    • Use a plagerism test to look for cut-and-paste replies from recorded sessions
    • Login discussions could be like Capchas in that they could be half test, half learning.

2:00 – 4:00 FP

  • I thought this tutorial would be the best way to get positional information, but it appears to be stale. The New Way seems to be this.
  • Close, but it’s actually part of the Windows API now?
  • Nope that’s C#. Still looking. Since I have xact3.h working, trying to stay in this space…
  • Ok, for tomorrow, I start writing a 3D version of Audio.h and then try calling that from the ConsoleSoundApp.

8:00 – 10:30 SR

  • Backups
  • I got an email saying the current Tomcat server is out of date, but I can’t find an actual ticket. Maybe it will show up later?
  • While poking around throug codeproject, I came upon an article for JavaScript game development that used a library called “ease”. Looks interesting…

ease.js is a Classical Object-Oriented framework for JavaScript, intended to eliminate boilerplate code and “ease” the transition into JavaScript from other Object-Oriented languages. Features include:

Download v0.1.1

(Released: 19 Jan 2013)

ease.js is a framework, not a compiler. It may be used wherever JavaScript may be used, including with other compilers/parsers. ease.js also provides support for older, pre-ES5 environments by gracefully degrading features (such as visibility support), but remaining functionally consistent.

10:30 – 4:00 FP

Looks like everything is working in the proof of concept! Here’s the code:

#include "stdafx.h"
#include <Windows.h>
#include <conio.h>
#include "audio.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int keyIn;
	HRESULT hr;                 // standard return type
	LPTSTR buf;
	LPTSTR targetDir = "C:\\Programming 2D Games in DirectX 11\\Chapter 7 - Sound\\ConsoleSound\\ConsoleSound\\ConsoleSound";
	Audio *audio = new Audio();

	SetCurrentDirectory(targetDir);
	buf = (LPTSTR)calloc(256, sizeof(char));
	GetCurrentDirectory(256, buf);
	printf("Current dir: '%s'\n", buf);
	if (*WAVE_BANK != '' && *SOUND_BANK != '')  // if sound files defined
	{
		if( FAILED( hr = audio->initialize() ) )
		{
			if( hr == HRESULT_FROM_WIN32( ERROR_FILE_NOT_FOUND ) ){
				printf("Failed to initialize sound system because media file not found.\n");
				printf("hit return to exit\n");
				getchar();
				return -1;
			}
			else{
				printf("Failed to initialize sound system.\n");
				printf("hit return to exit\n");
				getchar();
				return -1;
			}
		}
	}

	printf("Type 'x' to quit, 1, 2, or 3 for sounds.\n");
	bool doit = true;
	while(doit){
		if(kbhit()){
			keyIn = getch();

			printf("key = %c\n", keyIn);
			switch(keyIn){
			case 'x' : doit = false; 
				break;
			case '1' : audio->playCue(BEEP1);                  // play sound
				break;
			case '2' : audio->playCue(BEEP2);                  // play sound
				break;
			case '3' : audio->playCue(BEEP3);                  // play sound
				break;
			}
		}
		audio->run();                       // perform periodic sound engine tasks
		Sleep(100);
	}
	SAFE_DELETE(audio);

	printf("hit return to exit");
	getchar();
	return 0;
	}

Tomorrow, we’ll try to add positional sound.

Phil 5.17.13

8:00 – 11:00 SR

  • It turns out that I had forgotten to change the conf/server.xml file in addition to the java startup arguments. The keystore.jks file needs to be referenced in the <Connector keystoreFile=””/> element.
  • Backups
  • Talked schedule with Dong. Maybe a deployment Tuesday?

11:00 – 4:00 FP

  • Imported the sound example code into MSVC and successfully compiled. 
  • And runs! With sound!
  •  withSound
  • Next we try to put the audio class into a console app (main as opposed to winmain) and see if that can be made to work.
  • That went pretty smoothly. I had to add the DirectX “include” directories, add stdafx.h to the audio.cpp file and cast some char* to LPWSTR. The next step is to fill out the main() so that the audio is initialized and then run a loop to send different audio commands. A good task for Monday.

Phil 5.16.13

8:00 – 11:00 SR

  • Well, the cert is right on the production box, but there is something wrong with the test box. And of course that’s a signal for everything else to break. My mouse went into “crawl” mode, and I had to log out of everything and restart my desktop box.
  • And the cert webpage is down, so I can’t see if they revoked the wrong cert. I guess I’ll try tomorrow. It’s accessible through Firefox, and it’s only the integration server, so no panic. Grumble.
  • Lenny’s list of bugs:
    • Projects created for the test were 209 with child projects 210 and 211
    • Req type does not have all the different requisition types. The list should be EA, EAO, MIPR, REQ and RTA.
    • Cannot save requisition unless all date fields are completed, which will not be known when requisitions are added
    • Tried to duplicate a project and received the following error message: Error occurred duplicating project – please check server logs
    • When a project was copied the Project Budget Info was only partially copied over. Budget Center Name, FACTS PE and Sub-budget Center Name were not copied over
    • When a project is saved the Budget is changed back to zero. After re-entering the budget and updating the project it is saved properly
    • When a Sub Project was added the Total Project Budget Information was replaced by the Sub Project Budget information and the Sub Projects Budget information for 2013 is blank but the total is correct.
    • When clicking on the Edit button under Project Budget Info after having selected the proper choices the fields are not defaulting to the previously selected choices.
    • After saving Project Budget Info the FACTS PE appears as undefined instead of the option that was selected. After adding a second Sub Project, the Sub Project’s Budget field is populated incorrectly. It should be the total of the Budgets from each of the Sub Projects.
      • Also, the Allocated, Funded, and Un-Funded fields are zero instead of the correct amounts.
      • The Total Line Budget appears as the Total Line Budget from the parent project
      • The Allocated, Funded and Un-Funded are zero instead of the correct amounts.
    • I was able to upload the COGNOS data pull but there are issues with it.
      • There are multiple entries for most Req IDs and these were supposed to be consolidated into one line (is that true? Phil).
      • The Committed amount is incorrect.
      • The Obligated Amount is missing.
      • The Expensed Amount is incorrect
      • The Committed Date is missing.
      • The Obligation Date is correct, but the Expensed date should pull the most recent Expensed Date but is picking the first.
    • On the Project Management screen the Total Budget and Total Allocated are not Correct.

FP

  • Copied the OpenAL SDK out of the ProgramFiles(x86) directory where the installer put it and put it in my menagerie of API test code
  • Converted the MSVC 2005 project to 2010
  • Tried to compile, but the target names didn’t match. Adjusted the output name in the Properties->Configuration Properties->Linker->General->Output File field from PlayMultiChannelWin32.exe to PlayMultiChannel.exe. 
  • Compiled and ran in debug mode, but got the same problem where the audio is going to the 3 front speakers.
  • Since all else has failed, I’m going to RTFM. In OpenAL 1.1 SDK/docs is a collection of documents. Going to start with the OpenAL Programmer’s Guide.
  • So this is really weird. I’m looking through the code to see how the channels are activated, and there doesn’t seem to be anything explicit. But I do find where the wav files are stored. Listening to these samples in windows media player, the correct Dolby channels are selected for 5.1 and 7.1. It seems as though OpenAl is flattening the information to the front three channels. Wile poking around on the OpenAL website, I came across the following regarding Vista:
    • With Microsoft’s decision to remove the audio hardware layer in Windows Vista, legacy DirectSound 3D games will no longer use hardware 3D algorithms for audio spatialization. Instead they will have to rely upon the new Microsoft software mixer that is built into Windows Vista. This new software mixer will give the users basic audio support for their old Direct Sound games but since it has no hardware layer, all EAX® effects will be lost, and no individual per-voice processing can be performed using dedicated hardware processing.
    • I think I’m getting “basic” audio support. This explains why the codebase has not been touched since 2008 or so. Looks like a dead end.
  • Moving along, it’s time to try DirectX. The samples I can find online don’t really thrill me, but looking at books on Amazon, I found Programming 2D Games (P2DG), which has a nice section on sound. It’s now sitting in my Kindle Library. Let’s see how that goes.
  • Downloading the DirectX SDK. All 572 MB of it. Last updated in 2010. Why is this making me nervous?
  • Ran the DirectX installer, which blew up, but seems to have installed all the components, and the demos run. The demo games do generate Dolby 7.1 as well, so that’s progress…
  • Following the steps in Chapter 7 (Sound) in P2DG. XACT opened up just fine. Importing wav files from the OpenAL media directory. Interestingly, some .wav files choked as “unrecognizable” Don’t know why…
    xactError
  • Got the sounds imported and playing in XACT and the Audio Console. And considering how much stuff didn’t work today, That’s enough progress to leave on a high note.

Phil 5.15.13

8:00 – 1:00 SR

  • Backups.
  • Some back and forth about revoking my old certs. It will turn off the annoying emails, so I confirmed the request as long as it doesn’t affect my new, shiny certs.

FP

  • Need to send iRevolution white paper to Shawn, and a link to this blog.
  • Need to put together a schedule for my “Summer of Code”
  • Still no extension cord (Whee! It came in after lunch!).
  • There is a multichannel test binary that you can run. (C:\Program Files (x86)\OpenAL 1.1 SDK\samples\bin\win64\PlayMultiChannelWin64.exe). It should run

    front left, center, front right, rear right, rear left, and subwoofer.

    Instead, it’s running

    front left, front right, and center.

    I’ve verified that all eight speakers are working in the test app that comes with the drivers. I’ve also verified that the sound is correctly sent using the Control Panel Sound->configure tool. So I’m not sure if it’s OpenAl or something else. Ah well. That’s for tomorrow.

Phil 9.10.13

8:00 – 4:30 SR

  • Backups
  • Downloaded WebStorm, and basically starting over. It’s been a while.
  • Had a long discussion with Dong about how to hendle the next phase of development (i.e. FA/RA). We think there may be three phases:
    1. Do the minimum changes to the current DB to support a req-based set of tools
    2. Change out the DB under the  flex tools to support a cleaner database schema
      1. IMG_2077
    3. Develop a new set of apps that allow for dynamic db configuration and template-based GUIs
      1. IMG_2078

Phil 5.9.13

7:30 – 11:00 SR

  • Deployed new FA and Javadoc for VSS
  • Updated main web page to add links
  • Added current users to FA db
  • backed up everything but enh. Need to start doing that.
  • Meeting with the PIT crew
    • Add the ability to build custom, named queries instead of the dropdowns in the Funding Status screen
      • Implies column config, or something like that
      • sortable columns
      • validator for matching parens, etc might be handy
    • Anywhere a budget is entered by had, a dialog should come up when it it changed. (who, why, when, more?)
    • Switch to Budget center based table structure. This may mean that the PIT crew will have to enter all the PA data over again with the new PA.
    • Change sub projects so that there is simply a “parent id” field. Recursively search to build trees.
    • Add individual tracability to req line items
    • Funding Status
      • Common elements are in top grid
      • Unique items are in main grid
      • Queries are stored in a dropdown
      • SQL might have macros in it that cause a dialog to pop up with fields?

Phil 5.9.13

8:00 – 4:00 SR

  • Both the integration and production servers are running smoothly.
  • Regular backups.
  • JUnit on ServerFacades. Almost done. Dong needs to add some comments to:
    • saveSQLs (String queryName, String databaseName, String SQLs, String xml)
    • saveMacros (String queryName, HashMap<String, String> valueMap)
  • Installed JAutodoc. I want to try to improve the visibility to comments in ScriptFacades.
  • Copied the VSS docs and a new FA to disk for tomorrow.
  • Got Junit up and running on ScriptFacades. YUI next.

Phil 5.7.13

8:00 – 4:00 SR

  • Pointed the server at the new cert on the production machine after verifying that the test machine was still happy. 
  • Rolled over to the new MySQL bd. A few hiccups getting the new db loaded, but after setting the max_packet_size in the conf file to 512M, everything worked when sourced from within mysql
  • Deployed the new FA beta
  • Deployed the new VSS. And it would have taken less time, except that winzip kept timing out when accessing a network folder. Copying everything to the local disk and compressing from there worked.
  • Back to JUnit
  • Review at 2:30, possibly 1:30.
  • Updating all the various Novetta and successfactors resumes.

Phil 5.6.13

8:00 – 4:00 SR

  • My fresh-out-of-the -shop car stalled three times getting out of the neighborhood this morning. Gave up, got it home and took the other car in. Grrr.
  • Backups
  • Status report.
  • Put the new server cert on the integration machine. Seems to be working.
  • In playing around with VSS on the integration server, I think that the SQL editor may be misbehaving…. It’s also doing the same thing on the production machine. Not sure if it matters, but the problem definately shows if I type ‘show tables’ as the first query after the webapp comes up.
  • Looks like the problem was a null pointer when no sql source was selected. Which means that the new db is ok. Looks like I can deploy the new certs and the new db tomorrow if the integration machines is still happy.
  • Updated my Novetta profile. That is what I’d call a “lowest bidder” interface.

Phil 5.3.13

7:30 – 4:00 SR

  • Backups
  • Deployed new FA
  • Customer meeting. Dong has the list of bugs. Actually, things went pretty well. I think we’re on track for alpha deployment next week.
  • Test of DB upgrade on Integration?
    • Error saving a script. Line 589 in ScriptFacades.
  • Status Report for April
  • More Junit.

Phil 5.2.13

8:00 – 4:00 SR

  • Normal backups
  • I tried making a full backup of the system using the following arguments:
    • mysqldump – u root -pxxxx –all-databases –max_allowed_packet=512M –routines > fullbackup.sql
  • That appeared to work fine, creating a file 148,338KB big
  • I tried to ingest the file in the new instance on the integration machine using:
    • mysql -u root -pxxxx < fullbackup.sql
  • That gave the following error:
    • ERROR 2006 (HY000) at line 4729: MySQL server has gone away
  • Line 4729 turns out to be “INSERT INTO `query_logs` VALUES(…), which is *huge*. Not sure what to do about that. I did check to see that the line isn’t truncated, so that’s not the problem. Just to make sure, I ran it again with the same message at the same line
  • This post at stackOverflow suggests that it’s a max_packet_size problem. Going to try that. Changed from 1M to 12M as per the suggestion.
  • Same error, but new line (6367). Going to try 24M
  • Same error, but new line (6373). Going to try 512M, same as the mysqldump command..?
  • Yay! That did it.
  • Finished generating C/C++ and Flex svn statisitics. Interestingly, in the “lines committed” charts, you can see the difference between mature development and ongoing development:
  • Mature profile of server codebase

     

  • Ongoing rapid development of GUI

     

  • Ok, back to unit tests.

     

Phil 5.1.13

8:00 – 4:00 SR

  • Wow. It’s May. AND IT’S NOT RAINING!
  • Copied over the new xampp to the integration machine and tried the “copy the  data directory” trick. No good. Tomorrow I’ll try doing it the right way. Need to make sure with Dong that the stored procedures are backed up along with everything else in a database.
  • More Junit.
  • Since reviews are coming up, I figured that I’d show what we’ve been doing. Using statsSVN, I generated a microsite for Java,  Flex and C/C++ development.
    • Note – currently only the Java folder is up. Everything else is still being processed. Apparently  StatsSVN is much faster with Java…

Phil 4.30.13

8:00 – 4:30 SR

  • Copied over the new xampp, but the data files didn’t track. It lloks like I need to set the root and user passwords, then restore from backups. There may be a way to do that in one fell swoop, so I’m going to research that a bit. Put the old version back up.
  • Got the code written in the junit code that should set up a test db for visibility_dev2 and visibility_scripting. Need to verify that it works and then start building up the tests.
  • It didn’t work, but I imported and modified Dong’s ScriptRunner. That works just fine.
  • Got completely derailed playing with LightTable (setup?). It is very cool, with the capability to run Java directly where it clojure can’t do the job :
    user=> (javax.swing.JOptionPane/showMessageDialog nil "Hello World")

    It also will act as a server to a web page by loading the following script:

Phil 4.29.13

8:00 – 12:00 OH

  • Class

12:00 – 4:00 SR

  • Test cases for ScriptFacades
  • Updating Java first.
  • I think I want to make the test cases create a “test” database and populate it in the setup, then destroy it at the end of the test. The .sql file can be in the assets. This does mean that the database access methods (_dbHelper? Others? have to know about this DB).