Programming

Shoes

I love the Internet.

Where else can you jump from a site written by the inventor of XML to a monumentally huge 5000 word rant on why Ruby on Rails sucks (and a glimpse of a whole world of geekery out there which I will never be part of) to a nifty new Ruby framework for writing light cross-platform apps, Shoes.

Yes, I know that sounds super geeky. But it's this happy accident of stumbling across something new and exciting which I love. Millions of times a day, people learn something new from someone they will never meet, who probably won't even know they visited their now-public journal.

JoCaml: concurrent programming

Another programming language I hear you say?

Well, yes. But as Tim Bray rightly points out, the way of the future will be distributed and parallel computing over lots of CPUs. Hence any way of easily splitting a big job into lots of small jobs is A Good Thing (TM).

Enter JoCaml. Currently leading the board in terms of speed for the Wide Finder project, its syntax is a little obscure, but at a quick glance appears more readable than Erlang's.

Getting started with Bazaar Version Control

Bazaar VCS is a really useful way of keeping and updating snapshots of any project.

While it's designed primarily for programming development, there's no real reason why it can't be applied as version control for any project -- say a collection of Word files.

The chief advantage of Bazaar is that while it can easily be scaled up to use with a whole team of people, it's lightweight enough to be used by a single person. More in the main article...

Abakt - not just for backups

Abakt is a thoroughly competent, free backup manager, but it can also be used to manipulate file and directory structures through it's very flexible filtering mechanisms.

For example, one useful trick I've found is to add this filter over a development directory if I want a copy of my code without all the '.svn' directories. Excluding a directory matching a mask isn't specifically mentioned in the documentation, so I'll reproduce the pattern here:

  FilterSet:

  Action:    Exclude
  Path Mask: *\.svn\*|*
Syndicate content