Month: February 2006

  • Happy Monday

    Usually I wouldn't be so excited about a monday, but I'm on vacation this week, so monday means I have a while before I have to go back to school! I finished the very basic HTTP functionality for LibNAT. It is able to perform simple Get and Post requests, which is pretty cool. It is always fun calling a few functions and retrieving the contents of web pages. One thing I didn't implement, though I'm debating whether I should, is chunked encoding. For the purposes of performing UPnP requests over HTTP, encoding will never be chunked, but most dynamic web pages are served under chunked encoding. It wouldn't take much more code, and I would have a pretty cool, very small, very basic HTTP client. For now I think I'll move on to coding the SSDP client functionality.

    The road map for the rest of this project is pretty straightforward. After the SSDP client is complete, I will tackle the actual UPnP protocol. The protocol itself is composed of very basic xml requests over HTTP, so it shouldn't be too much longer before I have a working library. To make matters even better, I spent most of the past summer pulling my hair out over non standard conforming routers, so I'm already familiar with exactly how I should be formatting the messages to make everybody happy.

    I've been mulling over how I should be parsing the XML requests. It wouldn't be very secure to do it with standard string functions, so I've decided to use the expat xml parser. This library will work great because it has been tested extensively over the past few years and it is licensed under the MIT license, which won't limit the library to be used by a variety of other applications, proprietary or open source.

  • Daily LibNAT Update

    I'm in the process of working on a simple HTTP and SSDP client for the purposes of UPnP today. Should be pretty easy and straight-forward. Parsing messages off sockets always poses a security threat though, so I have my trusty security book by my side to make sure I'm not introducing any threats into code that will use my library. Anyone want to volunteer to do some code evaluation on what I write?

    -Adam

  • What is wrong with people?

    Sometimes things happen that cause you to ask the simple question"Why?" I was watching my daily dose of one of the cable news stations last week when I heard a blurb about a couple slain in their homes close to where my parents live. I didn't think much of it other than the fact that it's a very safe area.This was their first murder in the area in years. A couple of days later I received a phone call from my mother, and she went on to ask if I heard about the murders. She then proceeded to tell me who it was. It turns out that the guy was an old childhood friend who used to live in my subdivision. We used to play basketball together among other childhood things. When I heard this news my first reaction was shock, then sadness.

    This guy was one of the nicest people you could meet. It was a long time since I last saw him, but my father still used to run into him at a grocery market in our area, and would chat. He would ask about me and my brother, and how we are doing. Supposedly, the alleged murderers tortured him, and to make matters even worse, his wife was pregnant. I stay away from reading any news articles about the specifics, because I know it will sadden me more. I'll post a link to some news articles that google news brings up about it in case anyone is interested:

    News Articles

    I just want to send out my condolences to the family and friends of Scott and Melissa Berels. You will be greatly missed by all those whose life you touched. Senseless murder like this that hits close to home really causes one to think a lot about him/herself and the world we live in.

    -Adam

  • Sourceforge Approval

    Well it appears that sourceforge has approved LibNAT for hosting. I'm excited to get an alpha released uploaded to there, but I'm going to refrain from putting the initial socket code I already have done on CVS until I have a working alpha release. The link to the project page is http://www.sourceforge.net/projects/libnat.

    -Adam

  • Recent Happenings

    Well I think it is time to start blogging more here on Xanga, so here is my first real post. Right now I'm in mid swing of my final semester here at the University of Michigan. I can't wait to graduate. There is so much I want to get started before I graduate, so I'm rushing to get it all done. Here is a compiled list of the things I'm attempting to start:

    1. First and foremost, I have midterms starting. I actually just got back from my first midterm, which was for my italian class. I think I did fairly well, but I always seems to get caught on stupid mistakes on those exams. We'll see just how well I did later in the week.
    2. I've started to port my NAT Traversal code to be a standalone cross platform library. The library will be called libnat. I'll post a blog entry for this later on, but as of right now, I'm waiting for verification from sourceforge.net to host the project. I've completed the cross platform socket code, which is half the step towards completing this. I also already have a couple of people waiting on the completion of this library to use in their own projects, so I'm hoping to finish the majority of it over Spring Break.
    3. I've started design on developing a library for adding remote procedure calls to the popular SQLite library. Luckily, I can use the socket code that I've already developed for libnat. I also need to develop some cross platform threading functionality, which will be quite a challenge. This will also be useful in libnat for asynchronous calls to the library, which I plan to support in future releases.

    On top of all this stuff, I'm trying to get ready for the move to New York for my job at Xanga. The plan right now is to fly out there on April 26th to do some apartment hunting. I need to find a broker for this. If all goes well, a few weeks later, around May 20th, I'll be making the permanent move.

    Stay tuned for more formal posts on my new projects!

    -Adam