This first post will include a large-ish number of Erlang links that’s I’m aggregating mostly consisting of existing web frameworks.
These are servers commonly used for deployment, similar to Ngnix, Lighttpd, Apache and so on.
- Mochiweb is a very lightweight HTTP server written in Erlang.
- Yaws is a HTTP high perfomance 1.1 webserver particularly well suited for dynamic-content web applications.
- Inets is a container for Internet clients and servers. Currently, an HTTP client and server, a TFPT client and server, and a FTP client has been incorporated into Inets. The HTTP server and client is HTTP 1.1 compliant as defined in RFC 2616.
These are actual web frameworks which make developer’s lives easier, similar to Ruby, Merb, Sinatra and so on.
- Nitrogen uses an event-driven model built on top of Erlang pattern matching. Nitrogen allows you to tag elements with any Erlang term, and then act on the tag in server-side code when the user clicks on, hovers over, or otherwise interacts with the element. Catching the event is as simple as writing an Erlang function.
- Webmachine is not much like the Web frameworks you’re used to. It is an application layer that adds HTTP semantic awareness on top of the excellent bit-pushing and HTTP syntax-management provided by mochiweb, and provides a simple and clean way to connect that to your application’s behavior.
- ErlyWeb is a component-oriented web development framework written in Erlang and designed to work with Yaws, a high-performance Erlang web server. ErlyWeb simplifies building database-driven webapps that follow the tried and true MVC pattern using a great language with many outstanding strengths.
- The Erlang Web is an open source framework for applications based on HTTP protocols, giving the developer better control of content management. With Erlang Web’s simple but extensible concept of including dynamic content in pages, libraries of reusable components can be built. Currently it supports INETS and Yaws webservers, but others are planned in the future.
- Chicago Boss is fully asynchronous, using one single process to handle hundreds or thousands of simultaneous requests, and thus it solves the classic c10k problem. All other web frameworks will break down and cry if you ask them to process more than a few dozen simultaneous requests on a single machine. Chicago Boss is built with Erlang, the same platform used by banks and telecoms to achieve unprecendented scalability and (no exaggeration) 99.9999999% reliability.
Other Erlang Projects
This is a list of interesting Erlang projects that i’ve found on the web so far.
- Fuzed is an Erlang-based clustering system designed to let several single-threaded processes (which may or may not be reliable) form
into a pool which can serve requests to remote hosts. These resources need not be homogeneous, Fuzed breaks them up into homogeneous pools
internally and serves out requests without “crossing the streams” of different software/versions of software.
- ErlyDTL is an Erlang implementation of the Django Template Language. The erlydtl module compiles Django Template source code into Erlang bytecode. The compiled template has a “render” function that takes a list of variables and returns a fully rendered document.
- EUnit is a unit testing framework for Erlang. It is very powerful and flexible, is easy to use, and has small syntactical overhead.
- Erlang-AMF is an AMF0 and AMF3 library (ActionScript data exchange).
Trying to get a windows rails environment going this morning I stumbled upon something interesting – all ‘a’ characters were missing from cucumber and rspec output.
Everything comes down to having change encoding in the current cmd window. This is achieved via a simple call to
chcp 1252, but nobody want’s to do this every time, right?
To get this executed automaticaly and without resorting to serious registry editing, simply add this line to your
cucmber.bat and any other batch files that are exhibiting this problem. You can find
cucumber.bat in your
Here’s what it looks like:
chcp 1252 @ECHO OFF IF NOT "%~f0" == "~f0" GOTO :WinNT @"ruby.exe" "c:/ruby/bin/cucumber" %1 %2 %3 %4 %5 %6 %7 %8 %9 GOTO :EOF :WinNT @"ruby.exe" "%~dpn0" %*
This was my first more or less serious attempt at creating a new theme for WordPress and it turned out to be a pretty trivial task, or at least as far as WordPress itself is concerned. I love the fact that it doesn’t get in the way and there’s very little PHP required to create a brand new theme. I took out most of the typical blog stuff like linkrolls, calendar, pages, etc and just left what it is – just a blog.
Overall this took about a day and a half, from design to launch, so a weekend well spent. And yes, I do love damask.
This is my set up when building CSS layouts. I save a layout copy in Photoshop or Fireworks as a 50% transparent PNG which is then displayed on the page with a high z-index. This overlays my actual HTML layout and allows me to test for pixel precision. On the screenshot I’m testing a layout simultaneously in all browsers required by the project – IE6, IE7 and Firefox.
I just finished my first Facebook application called My Facts. Basically, it allows you to post a quick fact on your profile page and find out who of your friends knew it and who didn’t.
The hardest part was simply learning the FBML and figuring out what works and what doesn’t.