Thursday, April 10, 2008
Thursday, March 20, 2008
CRC algorithm
I've written a CRC checksum generator in Haskell to complement my error detection/correction article.
Wednesday, March 19, 2008
My graph plotter
I've finally got around to upgrading my graph plotter to work online.
You can play with the live demo at http://graph.ryanlothian.com/.
You can play with the live demo at http://graph.ryanlothian.com/.
Labels: maths, programming
Tiger and duck problem
A duck floats at the centre of a circular lake.
A hungry tiger waits a the edge of the lake, watching the duck.
The tiger can run four times the speed at which the duck can swim, but it can only go over land (i.e. around the circumference of the circle).
How can the duck reach the edge of the lake before the tiger and hence escape?
Need a hint?
Friday, September 21, 2007
A first look at Ubuntu Gutsy
I've been trying out Ubuntu's latest alpha-release: Gutsy Gibbon (7.10). You can find screenshots and a log of my experiences with Gutsy on my website.
Labels: ubuntu
Friday, November 03, 2006
Ubuntu Edgy
Ubuntu Edgy is now out. Release highlights include:
- Firefox 2.0... which isn't really a huge improvement over 1.5.
- a splash screen that doesn't work (at least for me)
- Xorg 7.1
- ATI drivers that are too old to work with Xorg 7.1 properly
- a compile of MPlayer that complains about its compilation options every time your run it
- more shades of brown and orange
- etc.
Labels: ubuntu
Saturday, September 30, 2006
Kamaelia 0.5.0 Released!
Kamaelia is an intuitive way to structure applications -- as a network of components which message each other. Much like Unix pipes implemented in Python. It was originally designed by BBC Research for rapid development of server software.
Here's a taster of what a Kamaelia application looks like: (built with the GUI)
Those 5 lines of Python give you a console-based HTTP downloading program (like wget or curl but with less options) using existing components.
Version 0.5.0 is a major release - lots of functionality has been added from Google Summer of Code 2006. Key highlights of this release:
For more information see the Kamaelia website. You can get a copy of Kamaelia and Axon from Sourceforge, together with most of the dependencies in the mega bundle. If you have any problems or questions, just pop along to #kamaelia on irc.freenode.net. No Python experience is needed to get started!
Here's a taster of what a Kamaelia application looks like: (built with the GUI)
And here's some equivalent Python code:
Pipeline(
ConsoleReader(eol=""),
SimpleHTTPClient(),
SimpleFileWriter("downloadedfile.txt"),
).run()
Those 5 lines of Python give you a console-based HTTP downloading program (like wget or curl but with less options) using existing components.
- the console reader sends lines of text (URLs) the user enters to...
- the HTTP client, which fetches the associated page. It then forwards on the page data to...
- the file writer, which appends all messages it's sent to a file on disk.
Version 0.5.0 is a major release - lots of functionality has been added from Google Summer of Code 2006. Key highlights of this release:
- BitTorrent support (using the official BitTorrent client) - includes preliminary 'streaming over BitTorrent' support. Lets you integrate P2P in your own Kamaelia applications.
- HTTP client and nascent seaside-style pure-python webserver
- OpenGL (e.g. the checkers/draughts board on the right)
- Strong DVB (freeview TV) support on Linux - including the foundations of a PVR
- Collaborative whiteboarding with audio (speex encoded) - draw and talk together over the internet
- Visual composition of Kamaelia systems - create and link components on screen, see the code produced (the screenshot near the top of the article)
For more information see the Kamaelia website. You can get a copy of Kamaelia and Axon from Sourceforge, together with most of the dependencies in the mega bundle. If you have any problems or questions, just pop along to #kamaelia on irc.freenode.net. No Python experience is needed to get started!
Labels: kamaelia
Monday, September 25, 2006
Curse of BitTorrent strikes again
Some oddness was noticed with my Torrent components after they were moved into the Kamaelia main tree - they no longer worked. TorrentTkGUI just sat there when started - it didn't even get as far as popping up a window. It turned out that BitTorrent expects a locale directory in ./ - a 'feature' added to the code base recently. We're now including the required English locale file where it is expected (as it is only 409 bytes) and considering removing the need for locale files as we only use BitTorrent for the backend.
Labels: bittorrent, kamaelia