- Usual back ups this morning
- No reply back from Gina about the connection issues at site
- Taking a break from PKI integration to create a better cars demo
- Cars are now sales from one of 3 dealerships
- The map locations of each buyer and the dealerships are in the table
- Also there is connection info for the network map
- Network map is not displaying anything, need to figure out why
- Also need to get colors and or icons
Monthly Archives: March 2012
Phil 3.15.12
8:00 – 4:00 FP
- Back to commenting the shader library. Done. Now I need to create the standalone documents and fix the commenting as needed.
- Downloaded and installed Doxygen from here
- Here’s the documentation!
Tom DeVito 3.14.2012
Start: 10:00
- Tested using the power adapter as a power supply. This test worked well and I believe the 2 amp ceiling is high enough to power the amplifiers and midi boards.
- Need to try the test with an audio signal.
- Looking at the most recent sketch which utilizes the recent communication and controller code, I noticed that it was missing some components which were essential to making sounds.
- Added in the various classes can changed their parameters to all be 0-100 for easy use with simulation variables.
- The code is working. I need to do a longer test to make sure the current doesn’t over heat anything.
End: 6:00
Mike 3.14.2012
- Usual back ups this morning
- Got an email from Gina, a woman at a remote site, who can’t connect to our credentials test
- I’m guessing it is because the URL is incorrect for the network she is on
- Just in case I sent her a URL that does not do PKI verification to see if she can see it
- Brian and I ingested some map / network data in to Visibility for testing purposes
- Back at savage, working on the PKI integration
Phil 3.14.12
8:00 – 4:30 FP
- Happy PI day! I wonder if there will be bigger celebrations in 2015?
- There is some planning for this: https://www.facebook.com/events/328804572620/
- Back to building libraries.
- Release Library is done.
- Adding test project to solution that tests the library
- Discovered that a dll was probably not the way to go, so changed the project settings so that it now generated a static library. For once, that was pretty straightforward – Properties->Configuration Properties->General->Configuration Type and select from the dropdown.
- Everything is compiling and linking, adding some actual content now.
- Well I’ll be damned – everything works (In debug and release mode!).
- Same old picture, but with much better foundations:

- Installed AtomineerUtils, a nifty plugin if Visual Studio that generates documentation frameworks
Tom DeVito 3.13.2012
Start: 10:15
- Fixed a problem with the mounting holes being to small. I forgot that the size only effects the size of the pad not the hole through the borad.
- Moved the Midi and Reset pins and rerouted their traces
- Moved the audio traces between amplifiers.
- I have checked the circuit and it looks good. Once I check that the power supply will work, I’ll be ready to order.
End 6:15
Mike 3.13.2012
- Usual backups this morning
- Read some CASPORT documentation at site looking how to integrate more with it
- Back at the mill making a PKI test project and new security library jar
- Demo moved up to 1:30, we’ll first be giving a general demo of Visibility to a new group of people, then one to the planned group followed by some training on everything
My thoughts on PKI/CASPORT integration, step by step:
- A users connects to a flex application via HTTPS
- A servlet filter intercepts the requests
- The filter gets the X509Cert and retrieves users details from CASPORT, if a cert is not found the session is rejected: the end
- The filter places the cert and user information on the session for later access
- Upon creation complete of the flex app, the application asks the user service for the user
- The user service checks for information on the session:
- If not there, null is returned and a log in screen is displayed as it is now
- If it is found, the user service checks the database for a matching users
- User not found in DB: log in screen is displayed, upon successful log in the userDN is stored in the databases for future use and no log in screen will be displayed again for that user
- User found in DB: user service returns the UserInfoObject and the log in screen is skipped
We will have to add a new unique column to the user table called ‘userDN’ which uniquely identifies each user. The value is provided by CASPORT when looking them up via their cert.
This scheme will allow us to continue using our existing user management schemes, not require wiping the user base, and, a logging in 1 time, the system will use PKI certs to log in from that point on.
Phil 3.13.12
8:00 – 1:00 FP
- Working on turning the base classes of ShaderLearning2 into a library
- Creating DLL and static libraries in Visual Studio 2010: http://msdn.microsoft.com/en-us/library/bb384835.aspx
- Adding copies of headers and libs to the dll project. Trying to make this self-contained.
- Added include directories to properties
- Added lib directories to properties
- Added the following additional dependencies under Linker->Input->Additional Dependencies:
- opengl32.lib
glu32.lib
fltkgl.lib
FLTKD.LIB
WSOCK32.LIB
gltools.lib - Yay! My test (Dprintf) is compiling and linking. Onward!
- Added the following to the “Ignore Specific Libraries”
- msvcrt.lib
LIBCMT.lib - Done with the debug version of the library, need to verify that it works, then do the release version.
1:00 – 4:00 VISIBILITY
- Demo – 2, actually. It went well, though we do need to add a ‘loading’ screen to the main project screen. It hung for an awkwardly long time.
Tom DeVito 3.12.2012
Start 9:30
- I was missing the decoupling capacitors between the two amps.
- I forgot that the SVR line needs to be grounded with a capacitor.
- Reoriented the chips to be vertical. Its much easier to tell if they are wired right.
- Traced the connection. It looks like everything is in there now.
End 5:30
Mike 3.12.2012
- Did one final proof read of my quickstart guide before burning it to CD
- Watched an interesting video on software development concepts
- Looking in to fully integrating Visibility with PKI to remove the log in screens
- Technically it is pretty straightforward to grab the user’s cert and get their SID and userDN
- The hard part is the migration from the current user tables (one for PPM and one for Visibility) to using userDNs and linking permissions, etc.
- The easiest thing may be to add a new column to the database, userDN, and when they log in, if userDN is null, set it and use it for look ups in the future. All users would be created the same way as they are now then log in once and use PKI forever after.
- Loaded Dong’s updates on my CD as well
- I will head to fort this afternoon and deploy the following:
- Quickstart HTML
- Update to PPA HTML
- Update to PPA help button
- Update to VisibilityScripting script engine which will resolve some issues regarding packet too large errors
- I will also do the normal backups
- Will create the final table and view for the demo tomorrow: the historic look at project statuses
- Hopefully will be able to meet with Sherri and show her the view
Phil 3.12.12
8:00 – 1:00 FP
- DST == sleeeeeeepy
- Class from 10:00 – 12:00
- Going to start converting the hand to the new framework. I need to put some of these parts in a library.
- Cool thing for the day: http://vimeo.com/36579366
1:00 – 4:00 VISIBILITY
- Demo prep. Need to build a spreadsheet that has projects and timelines on them. Have a “most recent issue” column. Maybe a “number of times underbudget” and “number of times late” columns as well
- The demo is now tomorrow at 2:00, though Dukes will not be there. So it looks like we will have an additional meeting/demo.
- Spent some time walking Sherry P through VISIBILITY and created an account for her on fgmdev Viztool
Tom DeVito 3.9.2012
Start 11:00
- Fixed a problem with the pre-amp circuits where I had the pins connected backwards.
- Fixed some minor errors. There were some spots that the bottom traces were inadvertently attached to the top by a through hole.
- wiring up the test to make sure the power supply will work.
End: 6:00
Dong Shin 03.09.2012
- Created ProjectDataGen java project to generate Finacial Data in timeline format
- Created ProjectDataGen Flex client project
- Mavenized both and created as webapps
Mike 3.9.2012
- Usual backups this morning. The databases suddenly became a lot smaller, I’m not sure why. It is 60% the size it was 2 days ago but the project list seemed the right length and neither Tangie or Chrinstina mentioned anything.
- Dong stopped by and we fixed the packet size issue and tested it.
- Testing our trending capabilities with some fake data.
- Finished the PPA quick start guide and exported it to HTML and DOC to bring inside
Phil 3.9.12
8:00 – FP
- Chasing down why the refresh rate drops after using glGetQueryObjectiv(drawQuery, GL_QUERY_RESULT, &result);
- Adding a check to test that the result is available before pulling it.
- Changed the code so that the hit test is only called once per mouse click. Not sure why that would fix it, but I’m not complaining.
- Cleaned up and working. Example code for how to do non-fixed pipeline picking in OpenGL shown below:
// Code to show how to use object queries to get picking behavior. For this code to work,
// You'll need to add your preferred rendering framework. This code was pulled from an
// FLTK framework I've been building for data visualization
// Class-wide global variables here for the sake of a compact file
// Classes that are not part of the OpenGl library are from the OpenGl SuperBible,
// which I highly reccomend: http://www.starstonesoftware.com/OpenGL/
GLMatrixStack modelViewMatrix;
GLMatrixStack projectionMatrix;
GLFrustum viewFrustum;
bool isPicking;
// Constructor. Set up picking and the projection and model matrices
PickingExample::PickingExample(int x,int y,int w,int h,const char *l)
: Fl_Gl_Window(x,y,w,h,l)
{
isPicking = false;
pickQueryResult = READY;
glGenQueries(1, &pickQueryID);
if(pickQueryID == 0){
pickQueryResult = PICK_ERROR;
}
viewFrustum.SetPerspective(45.0f, (float)screenWidth/(float)screenHeight, 0.5f, 1000.0f);
projectionMatrix.LoadMatrix(viewFrustum.GetProjectionMatrix());
modelViewMatrix.LoadIdentity();
}
// A slightly modified version of the original gluPickMatrix, taken from:
// http://oss.sgi.com/cgi-bin/cvsweb.cgi/projects/ogl-sample/main/gfx/lib/glu/libutil/project.c?rev=1.4;content-type=text%2Fplain
void PickingExample::setPickMatrix(GLdouble x, GLdouble y, GLdouble deltax, GLdouble deltay, GLint viewport[4])
{
if (deltax <= 0 || deltay <= 0) {
return;
}
projectionMatrix.LoadIdentity();
/* Translate and scale the picked region to the entire window */
GLfloat dx = (float)((viewport[2] - 2 * (x - viewport[0])) / deltax);
GLfloat dy = (float)((viewport[3] - 2 * (y - viewport[1])) / deltay);
projectionMatrix.Translate(dx, dy, 0);
projectionMatrix.Scale((float)(viewport[2] / deltax), (float)(viewport[3] / deltay), 1.0);
projectionMatrix.MultMatrix(viewFrustum.GetProjectionMatrix());
}
// the main drawing method. In this case, only drawing for picking is done, though it would
// be easy enough to glClear() afther the picking code, and draw everything over again with
// a normal perspective
void PickingExample::draw() {
GLint result;
GLint viewport[4];
glGetIntegerv(GL_VIEWPORT,viewport);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
modelViewMatrix.PushMatrix();
// Have some Euler angle rotations and translations just to show how
// setPickMatrix() doesn't care about eye or model position
// global eye transformations
modelViewMatrix.Rotate(eyeOrient[1], 0, 1, 0);
modelViewMatrix.Rotate(eyeOrient[0], 1, 0, 0);
modelViewMatrix.Translate(eyePos[0], eyePos[1], eyePos[2]);
// global world transformations
modelViewMatrix.Translate(worldPos[0], worldPos[1], worldPos[2]);
modelViewMatrix.Rotate(worldOrient[0], 1, 0, 0);
modelViewMatrix.Rotate(worldOrient[1], 0, 1, 0);
// set up picking
if(isPicking && (pickQueryResult != PICK_ERROR))
projectionMatrix.PushMatrix();
// set the projection matrix so that it's just looking at a (in this case) 10x10 pixel area
// near the cursor. This method (shown above)
setPickMatrix(mouseX,viewport[3]-mouseY,10,10,viewport);
// for each item that you want to test, bracket it with a glBeginQuery()/glEndQuery()
// You'll need a unique pickQueryID for each model
glBeginQuery(GL_ANY_SAMPLES_PASSED, pickQueryID);
// render your model associated with pickQueryID here. It is assumed that
// the projection matrix and the model matrix will be handled by your shader(s)
// finish the query for this particular model
glEndQuery(GL_ANY_SAMPLES_PASSED);
projectionMatrix.PopMatrix();
// For each item that you queried above, see if at least one pixel was drawn
// Again, you'll need a unique pickQueryID for each model
glGetQueryObjectiv(pickQueryID, GL_QUERY_RESULT, &result);
if(result)
printf("hitn");
else
printf("missn");
isPicking = false;
}
modelViewMatrix.PopMatrix();
}

You must be logged in to post a comment.