On killer apps and Erlang
Tue, 22 Jul 2008 - permalink
I'm sorry to say this, but some people in the Erlang community are wrong. Neither CouchDB, nor
Ejabberd, nor SimpleDB, and not even Facebook Chat are killer apps for Erlang. Great examples of
how powerful Erlang is? Yes. Need more of them? Yes, definitely. Killer apps in the way that Rails was for Ruby?
No way.
Yes, apps like CouchDB and Ejabberd will increase the install base of Erlang as they gain in
popularity. They'll drive a handful of curious programmers to give Erlang a close look. But it's
very unlikely that they'll lead to the kind of massive uptake of Erlang like Rails did for
Ruby.
Right now, the “killer apps” for Erlang would be more books. More documentation, especially tutorials
aimed at newbies (to OTP/Erlang, not programming). Erlware is an
extremely important project for Erlang's uptake – programmers have been “spoiled”
by CPAN and RubyGems. The ultimate killer app for Erlang though, is something that'll give people
a solid framework to quickly build something cool & sexy, in Erlang. I don't know what that is, although I
do know that “concurrency” or “multicore programming” are not the killer apps either. Counting on
those is a cop-out.
Perhaps, all that's needed is to rename OTP to Erlang On Rails, and to appoint an arrogant, brilliant
Dane to take care of everything.
Starling Update
Mon, 21 Jul 2008 - permalink
I've had a couple of emails recently with people wondering about Starling and what's happening to it. The project is very much alive, although it's taken me much longer than I thought it would to get to the current stage.
Version 0.2 will be out real soon, with a few big changes: Starling is now a linked-in driver, Unicode regular expressions are supported, and the distribution will include Autoconf scripts to build on Windows/Cygwin, Ubuntu and OSX. I'll probably switch it to MIT License as well.
The Unicode support EEP to go along with it has already been written, and will be published as soon as Starling 0.2 is ready.
Yojimbo, oh so close
Sun, 20 Jul 2008 - permalink
My Yojimbo trial expired today, so I bought a license.
I've tried several “stuff organizers” for the Mac in the last couple of weeks. Yojimbo comes closest to what I need – close enough to buy a license, although it's not quite there.
These would make Yojimbo perfect for me:
- Finer grained search, e.g. tag:iphone or image:lolcat.
- Proper smart collections instead of tag collections. At the very least I'd like the option to match any of the specified tags.
- Nested collections.
- When I drag a webpage from Safari to Yojimbo, save what's already loaded in Safari. Reason: not all webpages have a "for print" version, and I'd like to be able to use Aardvark to delete banners, Flash and other annoying crap.
- Remember zoom level I set for PDFs and images.
- Better control over default note formatting. More specifically I'd like to be able to set linespacing and page width. Writeroom does this nicely (in Preferences), and so does VoodooPad (with a NewPageTemplate page).
- Easier way to link to other items from notes.
- Let me remove default collections from the sidebar. (I don't use Bookmarks.)
I'll wrap up with something positive. Yojimbo is impressively fast. Start up, importing, searching, the whole lot – on this old Powerbook G4 with a library of over 200 web archives and PDFs. Nice.
Starling, Unicode strings for Erlang.
Tue, 11 Mar 2008 - permalink
http://12monkeys.co.uk/starling/
svn co http://starling.googlecode.com/svn/trunk/ starling
Get the source and get hacking! I welcome any help, in the form of code, tests, documentation,
suggestions, or comments.
Fun with function names in Erlang
Wed, 30 Jan 2008 - permalink
(From the department of “cool, but useless”)
This is valid Erlang code:
-module(aoeui).
-compile(export_all).
'___'() ->
io:format("___~n").
'<<@@>>'() ->
io:format("<<@@>>~n").
'!@#$%^&*(){}'() ->
io:format("!@#$%^&*(){}~n").
'_абвгд_'() ->
io:format("_абвгд_~n").
This is of course due to the fact that functions in Erlang are identified by atom and arity pairs, which means that any valid atom is a valid function name.
Sadly, the only opportunity to use these with clear conscience is the next Obfuscated Erlang Competition. :(