Category Archives: Phil

Phil 1.7.13

8:00 – 3:00 ESSO

  • Backups. The now “non-merged” overdue table makes things go much faster.
  • Verified that Tangie and Carla have accounts on the Data Visualization tool.
  • Accepted a meeting invitation for Friday at 7:30. Ow.
  • Looking into doing FA in JDeveloper
    • Oracle database still works. Yay. The only way to get to the admin page appears to be through the start menu. Looks like it’s time to read some Oracle DB documentation.
    • Per the help, getting SQL Developer. Documentation is here. And it’s running, and connecting to the 11_Express DB. Woohoo!
    • OK, now that everything is back together, figuring out where I was the last time I was here (Oracle JDeveloper 11g Release 2 (11.1.2) Tutorials).

3:00 – 4:00- Orientation

Phil 1.4.13

8:00 – 4:00 ESSO

  • Backups,
  • Fixed a bug in the ingest for overdue projects. It was merging rather than replacing. Huge! Files!
  • Deployed new version of PA. Still a bug with dates WRT incomplete projects.
  • Loooooooooong meeting with Tangie, Carla, Lenny, Chris, Dong and I. Dong is adding the action items to the req’s page.
    • May start with some new tools – a Financial Assistant (FA) app that will allow creation and editing of budget center information, and Program Manager Assistant (PMA) that will allow for streamlined management of projects.
    • I think we should do this in JDeveloper or GWT.
  • Some WCC getting acquainted emails and such.

4:00 – 5:00 FP.

  • Cleaned up code while figuring things out.
  • Added a new effect callback, which went in cleanly. Looking into how to have multiple effects.

Phil 1.3.13

8:00 – 4:00 ESSO

  • Viz Tool meeting
    • Found a date bug that we’re going to try to fix by Friday’s meeting
    • Reset all the alert states to acknowledged, to keep the users from going crazy
    • Need to add a way of acknowledging more than one alert. My thought is that we have a table that has the number of alerts that can show before an “acknowledge all” button is shown, and a MOTD list that can contain messages such as the state of the system. Maybe even something that has to be acknowledged.
    • Need to add a way to indicate that it’s time to enter data, but not an “overdue” flag.
  • Backups
  • Need to do a status report. Done
  • Worked out how to handle items in PA, when it is time to enter them, but they are not overdue. The states will now be as follows:
    • Current. Everything is filled in
    • Incomplete. Something is filled in, and the item is not overdue
    • Due. It is time to fill out the item (i.e. Between the 1st and 17th of the month is the “Due” period for the previous month
    • Overdue. An item that does not have all fields filled in that is past the “Due” date (i.e. the 17th)
  • Finished up my security briefings and emailed a scan of the signed form to Carrie.
  • Burned a disc containing PA and status for tomorrow.

4:00 – 5:00 FP

  • Got the callback working.
  • Pulled out setup(), run(), and terminate() methods. Next, I need to play around with the forces and make a moving object. Ideally, I’d like to have the rotating cube pair from the KF demo, but I’ll have to find some good cube code. I might start with spheres. Once I get the collisions behiving in a way that I like, I’ll start trying to add the code to (a copy of!) the KF demo

Header file:

class GravityWellClass
{
public:
	GravityWellClass(void);
	~GravityWellClass(void);

	bool setup();
	bool run();
	bool terminate();

protected: 
	HDErrorInfo error;
	HDSchedulerHandle hGravityWell;
	HHD hHD;

	static HDCallbackCode HDCALLBACK gravityWellCallback(void *data);
};

the callback method:

HDCallbackCode HDCALLBACK GravityWellClass::gravityWellCallback(void *data)
{
	const HDdouble kStiffness = 0.075; /* N/mm */
	const HDdouble kGravityWellInfluence = 40; /* mm */

	/* This is the position of the gravity well in cartesian
	   (i.e. x,y,z) space. */
	//static const hduVector3Dd wellPos = {0,0,0};
	hduVector3Dd wellPos;

	HDErrorInfo error;
	hduVector3Dd position;
	hduVector3Dd force;
	hduVector3Dd positionTwell;

	HHD hHD = hdGetCurrentDevice();

	/* Begin haptics frame.  ( In general, all state-related haptics calls
	   should be made within a frame. ) */
	hdBeginFrame(hHD);

	/* Get the current position of the device. */
	hdGetDoublev(HD_CURRENT_POSITION, position);

	memset(force, 0, sizeof(hduVector3Dd));

	/* >  positionTwell = wellPos-position  < 
	   Create a vector from the device position towards the gravity 
	   well's center. */
	wellPos[0] = 0;
	wellPos[1] = 0;
	wellPos[2] = 0;
	hduVecSubtract(positionTwell, wellPos, position);

	/* If the device position is within some distance of the gravity well's 
	   center, apply a spring force towards gravity well's center.  The force
	   calculation differs from a traditional gravitational body in that the
	   closer the device is to the center, the less force the well exerts;
	   the device behaves as if a spring were connected between itself and
	   the well's center. */
	if (hduVecMagnitude(positionTwell) < kGravityWellInfluence)
	{
		/* >  F = k * x  < 
		   F: Force in Newtons (N)
		   k: Stiffness of the well (N/mm)
		   x: Vector from the device endpoint position to the center 
		   of the well. */
		hduVecScale(force, positionTwell, kStiffness);
	}

	/* Send the force to the device. */
	hdSetDoublev(HD_CURRENT_FORCE, force);

	/* End haptics frame. */
	hdEndFrame(hHD);

	/* Check for errors and abort the callback if a scheduler error
	   is detected. */
	if (HD_DEVICE_ERROR(error = hdGetError()))
	{
		hduPrintError(stderr, &error, 
					  "Error detected while rendering gravity welln");

		if (hduIsSchedulerError(&error))
		{
			return HD_CALLBACK_DONE;
		}
	}

	/* Signify that the callback should continue running, i.e. that
	   it will be called again the next scheduler tick. */
	return HD_CALLBACK_CONTINUE;
}

Lastly, the setup method that establishes the callback:

HDSchedulerHandle hGravityWell = hdScheduleAsynchronous(gravityWellCallback, 0, HD_MAX_SCHEDULER_PRIORITY);

Phil 1.2.13

8:00 – 3:00

  • Backed up
  • Got admin privileges on my development box, so I can try a variety of flash players to see what gives with the old version of PPM
  • Working on figuring out what timesheet and what charge number to use.
  • Also working on getting the security videos to download. Done. Need to sign and send off the form
  • Worked on the design of the new Ingest Manager / Scripting IDE. Req’s here.
  • Long chat with Jessie about Novetta/FGM/White Cliffs.

3:00 – 4:00 FP

  • Changing HelloHapticDevice2 to classes. Need to figure out how to do C++ callbacks inside of classes again.
  • Ran into some odd problems that were fixed by moving all the shared .h files to stdafx.h and just including that. The static callback is set and compiling. Tomorrow we’ll try firing it.

Phil 12.31.12

8:00 – 12:00 ESSO

  • Deployed a new version of PPM that seems to be working much better than the old version
  • Backups. Slow, but at least I can get on the server
  • Security training.

12:00 – 4:00 FP

  • Switched over to the HD command-line examples to see what’s actually going on. Code is better commented, and seems to run better. There aren’t any peculiar error messages, at least, and no GLUT.
  • Looking through HelloHapticDevice.
  • Got a copy of the project built with MSVC working (i.e. with stdafx, etc.) I had to move a copy of msvcrtd.lib to the lib folder that was explicitly included. Otherwise, here are screenshots of the various properties (Note the Active(DebugAcademicEdition) configuration at the top of the dialog:

C++_General
C++_Optimization
C++_CodeGen

Link_General
Link_Input

  • And that’s it for 2012.

Phil 12.28.12

8:00 – 12:00 ESSO

  • Walked through some bugs with Lenny.
  • Attempted to back up but the connection with PuTTY was way slow. It seems to be a known problem, so I’ll wait until Monday to try again.
  • Helped Brian out with some JavaScript/HTML that handles collapsing tables. The code was not written well to educate.

12:00 – 4:00 FP

  • Got the HLAPI demonstration code compiled, though some things run and some things don’t. I get errors like “Haptics failed to initialize”. Still, “HelloSphere” works, which is enough to get the hang of things.
  • Hmm. Looks like it’s written for OGL 1.x?
  • Still, pretty cool. I’ve got a rotating cube with appropriate forces:

  • Also a teapot. So arbitrary geometry seems fine.
  • Still, I don’t like this:
	// Start a new haptic shape.  Use the feedback buffer to capture OpenGL 
	// geometry for haptic rendering.
	hlBeginShape(HL_SHAPE_FEEDBACK_BUFFER, gSphereShapeId);
  • That does mean OGL 1.x. No feedback buffer in OGL 3.0 or greater. That means this library probably won’t be all that useful.

Phil 12.26.12

8:00 – 4:00 ESSO

  • Backed up the databases on site.
  • Took some training that I didn’t think I needed, but I was on the email list, soooo…
  • Sent an email to Chris and Dave to renew Dong’s pass
  • Went home on account of the weather. So I’m setting up my work environment again. Hopefully it’s not that broken.
  • Huh. My Tomcat instance seems to be missing. Downloading. Installed.
  • Getting the config files and databases from fgmdev.
  • Am now able to compile and run Vis2
  • Can’t get the “new user / no column header” bug to happen.
  • Starting on adding font size to legend and panel titles.

Phil 12.14.12

8:00 – 4:00 ESSO

  • Backups. And everything is *still* working on the production server!
  • Worked some with alerts before going off to a GAO meeting and then a meeting with Jim G. The upshot is closer integration with GAO.
  • Submitted paperwork for school reimbursement before switch to White Cliffs.

Phil 12.12.12

8:00 – ESSO

  • Didn’t blog yesterday. Basically worked with Dong on getting VSS working on the production server
  • Spent this morning breaking everything on the production server. Somehow, instead of copying folders to the “Production Webapps” backup directory, I moved them. This cause old war files to recreate obsolete versions of everything. And somehow the copied items weren’t complete so *everything* had to be rebuilt from a combination of files on the integration server and files from the Updates directory. Most. Fun. Ever.
  • Got the first pass of alerts running though, which is a win.

Phil 12.10.12

8:00 – 4:00, ESSO

  • ADF
    • Finished this tutorial. The charts are pretty nice. Hooking up data is actually amazing. I fear debugging though.
    • Looks like audio and video are built in. Next time we build an app, we’re going to do this for the help.
  • Meeting from 11:00 – 1:00
  • Ok, back from that. Let’s do some more charting!
  • It looks like I need to download Oracle DB 11. Sigh. 99 MB of data in the pipe, 99 MB of data, take one down and send it along, 98 MB of data in the pipe…
  • And it didn’t install properly. This is now getting annoying. Oh, I see, there is no 64-bit version. This is an attempted fix. Didn’t work for me though. More tomorrow.

Phil 12.7.12

8:00 – 4:00 ESSO

  • Much running around yesterday, and I never got a chance to write things.
    • Backups
    • No meeting. Don had not set it up and was not there anyway.
    • Worked on getting VisibilityScripting alert scripts working, but the stored procedure that was needed didn’t store properly.
    • More ADF
    • Also, FP – in-process presentations
  • Backups
  • Got Dong’s stored procedure working
  • Ingested Lenny’s FY13 spreadsheet with minor tweaks. He’ll have everything ready for Tuesday
  • 11:00 – 1:00 meeting on Monday.
  • JDeveloper. Hooking up to data now, which is pretty cool. I have not seen how to duplicate a line like in Eclipse <CTRL-Shift-Arrow> I miss that. I am learning enough that I can stumble around and fix bugs that I cause.
  • Progress for the day:

Phil 12.5.12

8:30 – 2:30 ESSO

  • Backups
  • Deployed new versions of PPM and PA. The PA html file won’t load properly in IE, though it does in Firefox. Trued taking the PPM html file which does work fine, and replace all ocurrances of ProjPortfolioMgr with ProjectAssistant. Same problem. And also the same condition that it works in FF but not IE. Odd. Will show Dong tomorrow.
  • Discussions with Lenny about getting our data pulls either tomorrow or Friday. Was also directed to make sure that Lenny and I were present on any demo that Don gives.
  • Checked out what Dong is doing with his queries. We’ll also try to implement the Alert query so we can have a fun display for the presentation later this month.
  • Back to ADF and JDeveloper.

2:30 – 5:30 White Cliffs

Phil 12.4.12

8:30 – 2:20 ESSO

  • More ADF
  • Backups, and a non-demo. Will be rescheduled for later.
  • Got reamed for watching a YOuTube video. But did find that inspirational in the end.
  • Need to write up status report for Jim G.
  • Lenny found an odd bug where the text in one of the panels overwrites itself. Unable to print out. Will try tomorrow.

2:30 – 4:30 FP

  • Project review

Phil 12.3.12

8:00 – 10:00 ESSO

  • Backups.
  • Waited for Don a bit but no show. I guess we’ll figure out what kind of demo we’re going to do tomorrow when we get there.
  • Verified that Lenny had made a script for Carla. Yay, Lenny!

10:00 – 12:00 FP

  • Thermal interfaces and tangible interactions with multiple objects using Kinect. Cool stuff.

12:00 – 2:00 OH

  • FGM->White Cliff transition
  • Sent a note to Jim asking how we take our assets with us.

2:00 – 4:00 ESSO

Phil 11.29.12

8:00 – 4:00 ESSO