SQS Growl Link

April 10, 2008 16:09

So, in retrospect this seems very obvious, but there are two applications which have never really been linked. Yes, you guessed it, Amazon's SQS, and Mac OSX's wonderful little program called Growl.

SQS is Amazon's wonderful system to Queue up messages and allow access from anywhere, based on access levels and credentials. In a practical example, this could be used to send alerts to users about downed services, or just little comments about what's going on.

Growl is a great OSX program that allows other programs to send notifications to the user based on their own preferences. It allows you to even specify differences based on what "type" of message each program is sending.

Why before no one has ever thought to bring these together, I have no idea. I've done it in a simple python app which took me a total of about an hour (mostly trying to get the python bindings from growl).

Simple Web Framework

April 02, 2008 20:10

Although Django and Rails are both great frameworks for developing a GUI over Database, what do you do when you have a non-relational database, or something else entirely? Take, for example, SDB and the boto persistence layer.

The answer? mod_python, clearsilver, and a little bit of intelligent design. I came up with a very interesting framework that simply routes between special handlers which are mapped in a config file, and then generates HDFs to be sent to templates, all depending on what the user asked for. For example, if you go to /index.html, it renders templates/html/index.cs, where if you try /index.xml, it goes into templates/xml/index.cs.

Look for an upcoming new open-source framework from me in the near future. It has a lot of practical applications, and it neatly integrates with SDB.

iPhone heaven

February 25, 2008 16:09
Now that I have a new iPhone(thanks to my boss for buying it for me), I've been working a lot on making my existing web-apps more mobile-friendly. Looking at the standard wordpress feel (large amounts of wasted space on the sides) makes me realize just how bad our current thinking of web-based development is.

My boss pointed me to iui the other day and I started working on transferring some of my work over to that framework. After playing with it for a while I decided to see how it looks in a regular browser. When did the internet get so fast? It's amazing how bad programmers have become. We now consider that a memory leak in our browsers that leaks up to 1MB every hour to be ok.

Better computers are breeding worse programmers

Tabs v Spaces

February 15, 2008 08:20
I don't use tabs because it makes my lines go over my 80 character terminal size.

So, originally I thought tabs were evil. I couldn't understand why anyone would use tabs, considering that most editors could be set up to insert the appropriate number of spaces instead. Then I learned Python.

In Python, whitespace is an important part of the language. In this case, tabs can mean something entirely separate from spaces. Since you really do determine what block of code you're in simply by whitespace, using tabs says "I'm in the next code block" where using spaces along could just meant that it's a continuation from the previous line. Moreover, from a simple regex point of view, it's a lot easier to find the tabs, and recognize what they do (at the compiler level), then to decide if these set of spaces are meaning you're at the next code block, or if you're a continuation from the previous line.

So, why would anyone use spaces instead of tabs? Some people claim that it's so the code will "look right" on anyone's editor. If my editor didn't have the "$" character available, would you not use it in your code? How is it any different from a tab? Tabs can and should be a functional part of the language, just like any other comment would be. Tabs are one of the simplest forms of commenting code, they're saying "Hey, we've moved into a new block of code, and I know you can tell how far down we are because it's the exact number of tabs". With tabs, it's universal, one tab for each new block of code. How many spaces do you use instead? Well, that depends on the person doesn't it?

In conclusion, if you really can't stand tabs being so long, get a real editor, and then add this to your .vimrc:

set tabstop=3
set listchars=tab:>-,trail:-
set list
My work here is done.

py-s3fuse opensourced

January 24, 2008 22:07
Since Amazon announced SimpleDB (SDB) I've had thoughts of how you could make a S3 based File system. I've been working on S3FS for a while now for DocumentWorx, but recently we've decided to open source the project. It's currently still in the very alpha stage (as is SDB), but it's looking promising. I'm not planning on doing any caching at all so I won't have the integrity issues that other s3 based filesystems have, but it will be a lot slower. On the plus side, you can download it for free and start using S3 as you would a normal drive from any Mac or *nix based system.

XMPP, not just for IM?

January 24, 2008 21:16

Apparently there's been a lot of Hype for using XMPP for communication between services that are loosely coupled. There are a few benefits to this. First of all, it's very lightweight, the packet sizes are minimal compared to something like SOAP or even REST. Secondly, the system supports multiple clients registering as the same service on the server. This means that you could distribute out the workload, having the last client to respond being the one that will get the messages from the connecting client. Most importantly, XMPP clients exist for almost every device imaginable, including the iPhone and my Blackberry, which basically means you can control your servers from anywhere, on anything you carry.

This, to me, seems to be a lot of Hype for nothing. There are still a lot of side effects, such as security concerns and the single-point-of-failure issues that we don't encounter as much with other systems. If you recall, soon after IRC came out, many of the same claims were made about it, being as you could have IRC clients on any OS, and it was big news to be able to send commands directly to your servers over a third-party client.

So, with all this hype, will XMPP become the next big thing for distributed computing? It's doubtful. It may, however, bring in some new ideas for what direction we take. XMPP has a lot of good ideas that every programmer should heed when developing scalable flexible distributed systems.

Amazon Web Services

January 11, 2008 13:58
For those of you who haven't heard yet, I have a new job working for DocumentWorx. They do some pretty cool things with Amazon's Web Services; specifically, they run there entire operation off of them. Instead of managing our own data center, we simply use the robust environment AWS provides, and we can scale to any customers needs instantly.

It'll be nice never having to deal with hardware again. This is every SE major's dream.

Rails V. Django

November 15, 2007 10:08
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Although I'm still a fan of Ruby, I've always had a thing for Python. The only reason I haven't adopted it entirely into my own site is because of how it uses whitespace as a key part of the language. That being said, Python has a great web app framework called Django. Django, unlike rails, operates on a modular "app" format. Instead of designing the whole website as a single app, they allow you to incorporate multiple apps into a single website, and even have a lot of pre-built things to help you get started. Django allows you to package your apps separately from your site, so the two are entirely independent. More to come.

Semantic Web

November 01, 2007 20:50
The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries. It is a collaborative effort led by W3C with participation from a large number of researchers and industrial partners.
http://www.w3.org/2001/sw/
For those intereseted, I've written a research paper on the topic of the Semantic Web and Semantic Searching. I'm also working on incorporating RDFs into my current Rails system, including an RDF generator, and hopefully I'll eventually be able to scrape information from wikipedia and use it in my RDFs. I may also be opening up my RDF generator for anyone to add things. For now check out Disco, the simple RDF browser.

Blog goes Rails

November 01, 2007 19:47
Web development that doesn't hurt
www.rubyonrails.org
I've just pushed Rails to my main site. Please let me know if you find any bugs.
Next page