Today I finally got around to going through and testing the RC for version 0.3 of Open Server Platform. Everything seemed to work as planned, except for a few known issues that will be fixed in the next release, which should be coming down the pipe soon.
- Added replication nodes to increase fail-safe reliability
- Added commands to the administration console to stop and live migrate applications
- Can use configuration files to assist in the start up of OSP
- Many bug fixes and documentation updates
- The HTTPd servlet example now supports large files and the HEAD command
So, please check it out and let me know what you think!
Peace and chow,
After taking off the afternoon due to a migraine, and napping for a few hours until it passed, I was looking over some old projects, and decided to get motivated to work on my various Erlang hackery projects. I checked out a fresh copy of Open Server Platform on my new computer, and decided to hack on it some more. There are a number of loose ends I’d like to tie up before the 0.3 release, but, before I could get down to coding, SVN get my so frustrated that I could no longer deal with it and switched to git, creating a new repository on Github. I will keep the Google Code repository the ‘defacto’ repository, where the safer code gets committed, but use Github for the more bleeding edge development due to it’s simplified branching and merging (among other things).
In the new git setup, I have two branches (aside from master, which follows the SVN repository): otp and no-otp. The no-otp version is currently the stable code that runs just fine, but doesn’t take advantage of Erlang’s OTP framework. The otp branch is the more cutting edge OTP aware version, which I hope to fully migrate to soon. With full support for OTP, I should be able to use an already existing distribution platform, and more battle tested redundancy.
This evening, I fixed a long standing bug in the example HTTPd where the server would crash when opening large files due to a shortcut I took with first implementing the server. Originally, the server would read the entire file into a string and then send that to the client, as you can probably see, there is a problem when the server tries to read in a 3.9 GB file (my test file). Now, my servlet takes a much more sane approach, read in the file 1 kilobyte at time, sending that to the client before reading more. This new approach works perfectly, though I had to add some messiness for handling CGI/PHP files and different MIME types. I also added support for the HTTP HEAD command.
Peace and chow,
I just made the discovery the other day that I’ve been on co-op for over a month, and time shows no sign of slowing down! For those of you who haven’t had the delight of hearing me expound on how much I love my co-op, I have really found a place where I fit in, am challenged everyday, and don’t have to do any tedious work, just cutting edge security research!
Anyways, now that I’ve gotten that over with, I was up at Clarkson the other week for the career fair, and I went up the night before for the COSI meeting. That evening a new member introduced a new project to add easy to use AI libraries to the Processing language. I thought that is might be a good idea to take a look at AI stuff before I take the class when I return, so I’m excited to dive in and learn what I can! Also, after learning how little I really know about virtualization, and seeing how popular it is, I thought I’d like to jump on the bandwagon and learn about it. Last night I bought Running Xen and its sister book The Definitive Guide to Xen and I proposed (through Zach) that to learn more about it, I’d like to form a rag tag groups of hackers and write our own, open-source virtualization application, whatever that entails. I hope to post soon as I start learning what I’m in for.
Peace and chow,
Seeing as I’m going to have no homework for the next semester (!!) I’m hoping to get some more projects underway in my down time. I’m going to use this post as a dump of my current interests and as a road-map for where I want to go in the next few months. I’m sure this will change as time goes on, but I need to start somewhere!
Projects in progress:
- FANG – I’d like to polish the multi-processing system, add namespaces, and tie it into the Erlang stdlib. Also add macros (real macros!) to FANG.
- OSP – I’m going to be using OSP as a basis for LadieBug (mentioned below). This will hopefully give me perspective into what I should work on in OSP to make it more friendly for development.
- I’d like to take advantage of LaunchPad’s ‘Personal Package Archive’ system to host a few of my own Ubuntu packages, namely a more up-to-date version of Erlang’s OTP system.
- LadieBug – To take advantage of OSP’s distributed data store, I’d like to implement my own caching, recursive DNS server that would be both DNSSEC and DNSCurve compliant and would share the cache over the entire cluster, making it more scalable and reduce the number of needless queries.
That’s about all I can think of at the moment, if anyone would like to help me on any of these, feel free to comment below and we can get in touch.
Peace and chow,