Apr 24

As the semester is coming to a close, I thought I’d list some of the things I was able to get done this semester and what I’d like to progress on in the future.

Accomplishments:

  1. Released the Open Server Platform version 0.2
  2. Managed COSI’s Zimbra server
  3. Took the following classes: Compilers, Operating Systems, Network Security, Intro. to Psych, E. Linear Algebra.

Goals:

  1. Polish off Wiki Wide Web
  2. Work on OSP
  3. Have a relaxing, fun summer
  4. Work on MOSS

That’s all that comes to mind at the moment, I’m sure I’ll think of more as time goes by.

Peace and chow,

Ranok

Apr 7

After less than a week OSP has reached another milestone in it’s development! Version 0.2 was just released with a few big fixes, performance improvments and added functionality. Also the documentation has been improved and made consistant with the code.

The most important bug fix was a performance issue that caused a slowdown over time, this has been fixed and along with it, the performance and scalability has increased! The biggest feature added was support for UDP (and soon SCTP, and SSL) which can be set without changing the code! Imagine writing a server and deploying it using TCP, UDP, SSL and SCTP, just by changing one line in the XML servlet.

Setup should be simple too, just download from Google Code, extract, make and then compile your servlet. Now on the first node, run ./start-osp.sh and then you can telnet to port 9876 and administer your cluster.

Links:

Enjoy,

Ranok

Apr 3

I’m happy to announce that my OSP version has gotten stable enough to release version 0.1! While still a very temperamental system, it is showing true promise. It’s gotten to the point where on the first node, you edit a configuration file and run start-osp.sh and on each of the other nodes, just copy join.sh and edit it on each machine. After it’s run on each, you can telnet into the first machine and start applications which all have shared state across the cluster.

For more information, check out the home page, the Google Code page and the Google Group.

Mar 28

Just a quick little PHP script I wrote for one of my professors to generate a RSS feed of files in a directory. It’s pretty simple to setup, and is mostly useful for either providing a RSS feed for updated files, or for a Podcast, just put this somewhere on your website and point it at your MP3 directory. Then, just upload your MP3 (or anyfile format) podcasts to that directory, and that’s it!

EasyRSS can be downloaded here

Peace and chow,

Ranok

Mar 25

Just writing a little status update for my Open Server Platform (OSP) project that I’ve been working on:

Progress:

  • Rewrote much of OSP to take in a XML servlet (meta-data and code) and act as a socket broker for that servlet.
  • Wrote a  number of  servlet libraries to make programming easier and safer.
  • Added a global shared state that can be spread redundantly across multiple nodes (using Mnesia)
  • Added the ability for applications to be atomic, either they complete and update the shared state, or they crash and don’t influence the shared state at all.

Todo:

  • Move the OSP broker under an OTP supervisor for auto-restart.
  • Make OSP more configurable and automatic
  • Make a nice administration and status system
  • Devise and implement a load balancing and fail-over system
  • Test and tweak as needed
  • Write more servlet libraries

Also, I have been approached by a CS senior from the west coast who has offered to help work on ERLFS! I’d love more help if you know/want to learn Erlang, and help develop a very powerful and useful product.

Mar 13

While working on OSP some more, (I got global data storage using Mnesia and transactional server instances working) I got frustrated with Erlang letting me compile code then late binding to non-existent functions (whoops, typos) thus blowing up when I tried to run it. I knew there must be tools to solve this problem, so, searching around, and reading through my Erlang book, I came across Dialyzer, or (”a DIscrepancy AnalYZer for ERlang programs”). Basically, it does a static source code (or compiled byte code) analysis of your program(s) and tells you when there are unknown function calls, or places in the code that can’t be reached, etc… It’s very handle, and lets work on coding and testing the functionality of my code, rather than the runnability of my code. This tool is a must-have for Erlang programmers.

Peace and chow,

Ranok

Feb 11

    For those of you who don’t know, I’ve been working on a project making a server environment that only requires the server logic to be coded, the rest (high availability, load balancing, etc…) is all taken care of by my project. However, before I can start on the server itself, I need to make a redundant file-system that lets distributed nodes keep synced up. It’s almost at a prototype stage where I can demo to the world. I put up a website and a Google code project with a SVN repository.

It’s written entirely in Erlang, and using the Mnesia database for the meta-data storage. It’s licensed under the MIT license so it’s business friendly and open-source.

Peace and chow,

Ranok