Tag: Software


OpenGL Development on Windows XP

February 5th, 2010 — 6:19pm

Needed an OpenGL development environment for my Computer Graphics class. These are my notes on how to prepare a clean install of Windows XP for doing OpenGL development using Microsoft Visual Studio Express C++ Edition.

1. Installed Visual Studio Express 2008 C++ Edition.
2. Verified that video driver had installed opengl32.dll in %WinDir%\System.
3. Downloaded GLUT zip file (dll, lib and header files) from http://www.xmission.com/~nate/glut.html.
4. Copied glut32.dll to %WinDir%\System.
5. Copied glut32.lib to $(MSDevDir)\..\..\VC98\lib (C:\Program Files\Microsoft Visual Studio 9.0\VC\lib).
6. Copied glut.h to $(MSDevDir)\..\..\VC98\include\GL.
7. Downloaded glext.h, glxext.h, and wglext.h from http://www.opengl.org/registry.
8. Copied glext.h, glxext.h, and wglext.h into C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL\.
9. Created new Visual C++ Win32 Console Application (unchecked Precompiled headers).
a. Delete all the generated files.
10. Added HelloOpenGL sample .c file and compile.

#include <windows.h>
#include <GL/gl.h>
#include <GL/glext.h>
#include <GL/glut.h>
#include <stdio.h>
#include <windows.h>#include <GL/gl.h>#include <GL/glext.h>#include <GL/glut.h>
#include <stdio.h>
void drawPolygons() {
glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0);
glVertex2f(1.0, 0.0);
glVertex2f(1.0, 1.0);
glVertex2f(0.0, 1.0);
glEnd();
}
void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
drawPolygons();
glFlush();
}
void init() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-5.0, 5.0, -5.0, 5.0);
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(0, 0);
glutCreateWindow("simple");
glutDisplayFunc(display);
init();
glutMainLoop();
return 0;
}

Comment » | Software

Announcing the Red Dot Calendar

January 5th, 2010 — 8:29am

Over the Christmas holiday, I put together a free, web-based application called the Red Dot Calendar.  The idea behind the website is simple… send a reminder to girls or guys just prior to the start of a woman’s period.  This helps remind women that they may need to go shopping and helps remind guys that they may need to go camping (just kidding… sort of).

The actual coding took a bit more time than I anticipated.  As usual, almost daily I “discovered” new features the site would need.

The service is free and I will not be placing any ads on the site, unlike every other service I saw out there.  The reminders are short and to the point, again without ads.  In the future, I may include a short, text-only ad at the end of the email reminder.  Or I may not.  Time will tell.

The thing I like most about the site is its simplicity.  I deliberately designed a site with minimal use of graphics to save on bandwidth.  This results in lower costs for me which makes it easier to keep it free to the users.

Regardless of how “profitable” this site may or may not be, I plan to keep it running for a long time.  My wife is it’s first subscriber (I’m the second) and it’s currently running off the excess bandwidth of my server anyway, so it’s costing me virtually nothing.

Check out the site and if you have any suggestions on how to improve the service, leave a comment below.

1 comment » | Software

Software Capital

August 21st, 2009 — 7:57am

In his book Software as Capital, Howard Baetjer comments…

Because software, like all capital, is embodied knowledge, and because that knowledge is initially dispersed, tacit, latent, and incomplete in large measure, software development is a social learning process.  The process is a dialogue in which the knowledge that must become the software is brought together and embodied in the software.”

Baetjer goes on to describe how software evolves, through iterations, as more and more useful knowledge is added.

This process has a great deal in common with hiring and cultivating a new employee in a large organization.  Initially, the new employee can be seen as an empty vessel to be filled with knowledge.  On the first day of work, we add fundamental knowledge, such as where the break room and bathrooms are located.  In the weeks that follow, the new employee learns about culture and how we, as a company, do things.  As weeks turn into months, the new employee learns our business processes, becomes “functional” and can begin to provide some small return on the investment we have made.  Finally, as months turn into years, our employee transforms into a valuable resources that more recent hires turn to as a mentor.

The larger the organization, the more specialized our employee will become.  If fact, many employees of just a few years will quickly surpass in knowledge employees with decades of experience, due to a tendency towards specialization.

Now, back to software…

Software behaves in the same way.  In the first days (or weeks) or development, we define its scope and requirements.  In the months (or years) that follow, we construct, test, and deploy the software, entering a cycle of continual enhancement and improvement.  Eventually, the software embodies the sum of knowledge in its area of specialization, surpassing the masters that taught it.

Herein, lies a problem very similar to one faced by Human Resources.  What to do when the software (employee) falls from favor and must be replaced.  How do we extract that body of knowledge?  Where do we put it?  How much knowledge will be lost?

Software, like most long term employees, cannot simply hand you the sum of their knowledge and experiences.  Many times an employee simply knows the answer without understanding the how they know it.  And anyone who has worked on a rewrite of software understands that, although the code embodies the knowledge, the knowledge cannot be obtained by reading the code.

How do you think the knowledge capital of software can be extracted and retained for future generations?

Comment » | Software

Back to top