Monthly Archives: January 2013

Phil 1.8.13

8:00 – 4:00 ESSO

FP

  • The video of Paul’s interview with me about my work.

Dong Shin 01.09.2013

  • Reported Outlay is now hidden from both PPM and PA
  • adjusted rowCount and height of the datagrids accordingly
  • reworked auto copy of PM Actuals to Reported Outlay in PPM and PA
  • disabled tooltips on list of projects in PA
  • working on adding “DUE” status to PA

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

Dong Shin 01.04.2013

  • PA Status bug not fixed
    • getting Current for incomplete projects
    • got ************* should not reach here !!!!! ******************** message, may be related?
  • Metting with Chris, Lenny, Tangie, Carla
    • Proposed changes ( added to Req’s)
      • Contract # should be a blank text field in Enter Invoice Diaglog
      • Delete “Reported Outlay” from all views (PPM and PA)
      • Fix DB so that the greater amount of PM Actuals or Reported Outlay is copied into the lower field. Also copy FMP.
      • Default to “Reporting Month”
      • For any row that is less than 100% use only those rows to calculate “incomplete” and “due”. When all rows are 100%, the item is current forever.
      • “Planned Outlay” becomes “Spend Plan Baseline”
      • For any row that equals 100%, auto-fill through the end of the contracts in PA (same rule as PPM)
      • No tool tip in PA list view
  • finished up Security Briefing and sent in the Acknowledge form

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.