Been a bit, no? Anyway, for the past 2 ish year, I’ve worked for Walgreens, as part of the department that develops the pharmacy system, Intercom Plus. BUT! As of tomorrow, Monday January 18 2010, I’ll be moving to the Execution Architecture Group. This is sort of the rock star group of the Pharmacy development groups. I’m also something like half the age of the average person on that team. So, yeah, I’m awesome.
Build Systems: Make vs. SCons
In the process of recent work on an upcoming project, I decided that I wanted a build system that would do things that GNU Make either doesn’t do or at least doesn’t do readily. Doing a bit of investigation, I discovered that there really aren’t a whole lot of options out there. In fact, the four major systems I found were:
- GNU Make
- Perforce Jam/Boost.Build (based on Boost.Jam which is in turn based on Perforce Jam.)
- Apache Ant
- SCons
litesql Review
I’ve been working a bit with litesql the past few days, so I thought I’d review it.
litesql is an object persistence library that uses sqlite as it’s storage backend (although it now also supports MySQL and PostgreSQL). There are two separate components to the system, the library which handles the actual storage mechanism, and the code generator which takes as input an XML specification of your data objects and generates the appropriate C++ classes.
Software Engineering Best Practices as a Student
Expanding on a problem I touched on in a previous entry, I want to explore the problem of using software engineering best practices as a student.
As a computer science student, we get told that there are certain things that we should do when developing code. Some are simple, little things, like documenting code as we write it. Some are a bit more complicated but still readily feasible, such as using version control, or writing test cases. However, other things are much more difficult to do.
Read the rest of this entry »
Trust in Compilers
Talking with one of my professors, the subject of trust in computing came up. The professor related a story about a paper discussing a theoretical vulnerability in the entire computing infrastructure. (Unfortunately, I can’t find the paper. I think it was somebody’s PhD dissertation, but I’m not positive.) The issue, in essence is that compilers are themselves compiled.
Read the rest of this entry »
The Hunt for an SCM System
Balancing software engineering best practices with the realities of being a student (and thus often working alone or in very small groups) is a bit tricky, particularly when it comes to source code management. I know that it’s a very good idea to use some sort of version system, I’ve been told this by my professors time and again, and I’ve learned it the hard way myself.
Read the rest of this entry »
Nifty little python program
Create a python script with the following contents, and call it, say, quine.py:
1 2 3 | a = """a = %c%c%c%s%c%c%c print a %% (34, 34, 34, a, 34, 34, 34)""" print a % (34, 34, 34, a, 34, 34, 34) |
Now run it. The output is the program itself!
For double the fun, try this at a command prompt:
python quine.py | python - | python - | python -
(ad nauseum)
Super Cool!
Newvow
I just stumbled across what looks to be one of the most promising Python based web frameworks I’ve seen to date: Newvow. While I haven’t had a chance to look at it much yet, it seems to be more along the lines of the “code behind” type of framework, a la ASP.NET, rather than the ModelViewController framework. I like this, as I’ve never really seen the need for the MVC pattern on the web (yes, I’m sure it makes sense for certain applications, but generally speaking…). When I’ve had a chance to poke at it some more I may write more.
Legos! Robots!
I’m taking a course on robotics this semester, using Lego Mindstorms NXT. As a part of the course we need to keep a journal of our progress. Mine is here.
VMWare Server
I’ve recently been playing around with the VMWare Server, which the folks at VMWare recently made released as a free download. First up, it rocks, but thats a given; VMWare has always been a solid product (and yes, I actually do have an honest to goodness legal license for VMWare Workstation. Alas, I doubt I’ll ever use it again now.) That being said, I encountered a few problems.
- On my laptop I recieved messages about failure to create COM objects (eg “Unable to create VmdbCore object: Class not registered”). Trying to register the appropriate DLL, vmdbCOM.dll, by hand only resulted in failure and an error code of 0×8007007e. After much searching the net, I found that I needed to register atl.dll. Here’s what I did:
- regsvr32 c:\windows\system32\atl.dll
- regsvr32 “c:\Program Files\VMWare\VMWare Server\vmdbCOM.dll”
- regsvr32 “c:\Program Files\VMWare\VMWare Server\vmappsdk.dll”
After that, it worked wonderfully.
- If you want to use the web interface, you’ll need to have IIS installed before you install VMWare Server. If you’re like me and only realize that you don’t actually have IIS installed until after you install VMWare, no worries. Simply install IIS and then use the Repair functionality of the VMWare Server installer.
- Using IIS 5 on Windows XP Pro, I was informed that the VMWare IIS site was setup correctly, but was unable to start. The solution I found was to stop the Default Site using the IIS manager snap-in and then start the VMWare Management Interface site. My guess is that IIS on XP is crippled to allow only one site running at a time.
- To access VMWare Server from another machine you’ll need (by default) the following ports open on the server system:
- 8222 (For the VMWare Management Interface website)
- 8333 (For the SSL encrypted version of the VMWare Management Interface website)
- 902 (To connect with the VMWare Virtual Machine Console application)
Aside from those issues, it’s been wonderfully smooth sailing thus far.