After weeks of hard work, I’m finally happy to report that the Simple HTTP Server project is complete! I think it actually turned out pretty well.
In other news I’ve started working on the second 4760 Project. The good thing is that I’ve got both sides of the program talking to each other, although not transmitting files. The receiver program is in the habit of always answering a transfer request with a NAK packet… but I think it’s good progress so far! All of my prototype code is written, so with luck testing will go by pretty fast.
It is time again for my weekly project update for 4760!
The good news is that I have my project works at 100% on my local machine. Of course, as soon as I throw it on Zion, things start going wrong. I have had difficulty accurately retrieving the correct exit values from the system exec calls. I’m getting some weird results too. It either always returns an exit code of 0 (meaning that the program was executing successfully) but without giving any output, or always returning 255 (meaning that the program couldn’t run – and probably wasn’t found in the path). It’s really odd…
I think I might be taking advantage of Office Hours on Monday to get Dr. Dan to take a look at my code. I’m thinking a second set of eyes might help see something I don’t. Since I tried deploying to Zion, I’ve been attempting to develop on Zion, without the use of my usual development and debugging tools. In the worst case scenario, I’m going to have to use gdb and figure out why it’s not working… but let’s hope strategically placing couts will make due…
So, this is another one of my weekly updates for my CSCI networking class. I’m happy to report that I’ve made a lot of progress since last week. It’s probable that this week I’ll be finishing up the server and begin testing it on the Zion CS server. Essentially, I’ve got the project listening on the socket and spawning child processes to handle the incoming connections. As per Dr. Dan’s note, we’re not required to be able to handle concurrent connections – although that is possible in theory.
I’ve mainly avoided it because from what I understand, how different systems handle shared memory between multiple threads differs based on implementation. I figured since I was doing my original development on Mac OS X and then deploying my production copy to Zion it would be wise to keep it simple, even though they are both Unix derivatives when you get down to the bare metal.
My to do list at this point is to get the server executing files using the XBitHack (but Dr. Dan says he needs to tweak that part of the assignment, so I’m holding off on implementation) and then to get the server running as a daemon process. After that I should be done. Hip hip hooray!
So as I mentioned before, I’m expected to make periodical updates on project status for one of my Computer Science classes. Although the class that requires blog updates is Computer Networking, I find that I’ve been spending most of time recently working on a Java Applet for my Web Programming class (Java, JSP, etc) since that has an earlier due date.
However, I can report that I have made some progress working on the first project. I have the server listening on a socket, accepting a connection, and having an exchange with a client. Now, the project is to write a basic HTTP server, which I could probably accomplish fairly easy using straight C, but to be honest I’ve been so immersed in Object Oriented Programming that I truly think in those terms – so I’ve decided to implement using C++.
The plan is to have the main function manage the connection, then take incoming data and parse them into HTTPRequest objects then use the HTTPRequest objects to generate HTTPResponse objects that can be serialized to strings and sent back over the connection. So, while I haven’t implemented the objects yet, I have defined all of their headers and class members – so I’ve already got a pretty detailed specification of what each method will do.
I’m optimistic that once I get all the socket management stuff down in the main function then the rest of the code will be a cakewalk, because it will almost entirely be string manipulation from that point forward. Gotta love OOP.
So, I have successfully finished the first week of classes (even though it was only two days). I’m optimistic about this semester. As a part of my networking class, I’m expected to blog weekly about progress on assignments and stuff like that, so I’ve created a networking category for those blog entries. We have a special server that the content is supposed to be on, but I’m thinking a link to the blog category here won’t be a problem… at least Dr. Dan doesn’t think it will be.
The primary purpose of this post is to initialize the Networking category so that something exists. Expect some more exciting content later!
I always get a little bit nostalgic this time of year. It always seems to be the perfect time to reflect because this particular season of the year is so unique in different ways. Individuals from many different backgrounds and beliefs unite on the belief that this is a season defined by joy, charity, and love. It penetrates wherever you are, and whatever you’re doing. If it hasn’t done that for you yet, I certainly hope it does soon.
So Monday my Computer Architecture class got a guest lecture from a guy by the name of Brantley Coile, who was there to talk about the development and history of the hard disk drive. Now, I’m not making note of this because Mr. Coile was a particularly amazing speaker or anything of the sort, but rather because it was a lecture from someone who works in the industry. Mr. Coile is Founter and CTO of Coraid, an Athens, Georgia, based company specializing in network based large-scale storage.
I feel as those academia often suffers from something I’ve labeled the “PhD Delima.” To elaborate: there is a group of in every class of students that absolutely love school. I feel that these are the people who usually end up getting their Masters or PhD’s, and I feel as though there are a great many of them who have never worked in the industry and never want to work in the industry for one reason or anther. So they become teachers.
Now, I have all the respect in the world for teachers and professors because their job is more often than not a thankless task. However, it is validating, in a sense, to hear some of the same material we’ve been reading/hearing about in our architecture class reinforced by someone who makes his living working in the business world, which is where I’d like to end up myself.
Yes, you're seeing that correctly. That's an old school car with a jet engine mounted in the trunk, dubbed the "Hemi Jet" (WIRED)
Someone once asked me, “Why do we bother driving hybrids?” My answer today would be, “So we don’t have to feel so guilty about enjoying this guy offset all the gas savings over the last 10 years in 10 seconds.” See the full story at WIRED.
For anyone who is interested the hard-hitting variety of rock, I am personally recommending this band: The Dirty Guv’nahs. I first heard about them when a friend of mine recommended them to me on Facebook. Excellent band. Don’t believe me? Then take a listen for yourself:
So, I came across an excellent gem of a WordPress Plugin today. It’s called RPX. I discovered it in the course of trying to get my OpenID authentication to work (with no luck). The OpenID plugin seems to be jacked up, but NOW I have RPX that is pure awesomeness because people can now authenticate into my site using Facebook, Google, Yahoo, OR OpenID.
Now, I have required since the inception of this blog that individuals who wish to comment are required to have an account of some sort. The good news is that now you are not required to create on with a new password. Facebook, Google, Yahoo, or OpenID can verify your identity for me and allow you to comment on what I write.