Programmer’s Log Programmers Writing Stuff – Garry Bodsworth

17Feb/090

Pre Links

Overview of webOS
An in-depth look at the Palm Pre's OS.

Elisa is a Simple, Streamlined Media Center
A basic multi-platform media centre which is based on the Pigment toolkit (a bit like Clutter).

Half-Life 2 mini-series blows minds on a dime
Half Life 2 miniseries, on a budget, and still looks great.

Adobe ASL - 1.0.41 Release
The latest version of the very useful C++ library.

Kevin O'Neill: The Early Days
A look at the early years of the League Of Extraordinary Gentlemen artist. He's still the only artist who was banned by the Comics Code Authority.

Introversion's DefconAR: mutually destructive augmented reality
Introversion's great MAD game as an augmented reality globe.

The Caterer Comic
Read Jeff Lint's The Caterer online.

SLIDE SHOW part two
A look at what must be the most insane (and cool) comic shop not only in Paris, but the world. I wish I'd known about it when I was there.

Tagged as: No Comments
16Feb/090

Decapitation Is Sometimes Good For You

Lots of people out there are looking for headless web browsers to generate things like thumbnails. In the end most people either roll their own or cheat (use xvfb and grab the pixmap). You could use Qt and grab the image, but it still requires xvfb, even if you write your own rendering backend (I assume for font stuff). There are a number of ways to solve the headless rendering problem, unfortunately not all of them are ideal.

For me I am looking at EFL WebKit as the best solution but it is not near maturity and because I quite like the way Enlightenment Foundation Libraries seem to work.

The latest possible solution(s) are born from the Clutter Project which is now under the guidance of Intel. There is Clutter Webkit which provides a Clutter Actor for rendering webpages essentially to a Cairo surface on the 3D surface. I got it to compile last night and ran a test program but it was pretty slow.

The other one is mozilla-headless which looks really interesting by providing a Mozilla library that renders to a Cairo surface. Chris Lord the main developer on this made presentation to FOSDEM available here. There is also a video of it in action here (requires OGG codecs). The source is all available here and the embedding into Clutter is available here. The source code for testing it is here.

On a vaguely related note there is an interesting article about using gstreamer through Clutter's python bindings - awesome (gstreamer * clutter).

15Feb/093

Open-Source CAD/CAM

I spent over seven years working in the CAD/CAM industry. It's a very archaic industry with virtually no open-source building blocks available, and those that are tend be be extremely old or not even useful.

There are a few green shoots of open-source out there. First up there is wildcat-cad which is an attempt to create an open-source 3D solid modelling kernel and associated tools.

There is also heekscad which is a modelling program using the OpenCascade solid modelling kernel (GPL licensed I believe). There is also a CAM add-on for heekscad called heekscnc with a lot of associated libraries providing some good functionality.

An additional program is voxelcut which allows for a solid machining simulation to see what damage you'll do to your hardened steel.

One of the libraries is libarea which is for area-clearance algorithms in CAM. This is normally one of the most closely guarded secrets in commercial CAD/CAM so it is interesting to see an open implementation.

libactp is an adaptive clearance toolpath which originated from Freesteel. They've got it integrated into heekscnc so you can try it out for yourself.

You can keep track of a lot of this stuff through Dan Heek's blog.

Another unrelated program is monocam which uses C-sharp as a development language and has soem interesting algorithms like the drop cutter which provides the basis for most 3D machining algorithms.

15Feb/092

The Little Box That Almost Could

A few weeks back I was looking at some small low-powered computer units. One was really interesting, a passively cooled ultra low voltage tiny computer you could VESA mount to the back of monitors.

It goes under a number of different names, BVM's EPC-500, the eBox-4300 / 4310, and the MicroClient Sr. They all seem to be rebranded versions of the same platform, and I think the eBox is the original although I could be proved wrong.

Features
* 500MHz VIA Eden ULV CPU with 512Mbyte/1Gbyte DDR2 RAM
* Bootable from Compact Flash or USB
* Internal HDD option
* Linux port available on CF or USB Pendrive
* Low power consumption
* VESA mounting capability

Specifications
* CPU: VIA Eden ULV 500MHz.
* BIOS: AMI BIOS.
* System Chipset: VIA CX700M.
* I/O Chip: Winbond W83697.
* System Memory: Onboard 512MB/1GB DDR2.
* I/O: 1 x EIDE, 1 x PS/2 K/B/Mouse; 1 x Type I/II CF slot
* 2 x RS-232 Port (option); USB 3 x USB 2.0 Ports (two on front).
* Display Chipset: Integrated VIA UniChrome 2D/3D Graphics with MPEG4/WMV9 decoding accelerator.
* Display Memory: up to 128MBytes sharing system memory.
* Resolution: up to 1920 x 1440.
* Audio: AC97 2.2 (Codec); VIA Vinyl VT1708.
* Audio Interface: Line out, Mic in.
* Ethernet: Chipset Realtek 8100B 10/100 Base-T
* Remote Boot ROM built-in boot ROM function, supports PXE boot and Wake-up on LAN.
* Mechanical & Environment:
* Power Requirement: +5V @ 3.0A.
* Operating Temperature: 0 ~ 60°C.
* Operating Humidity: 0% - 90% relative humidity, non-condensing.
* Size (W x H x D): 115x 115 x 35mm.
* Weight: 505g

Also the motherboards are available on their own with much more power processors (up to 1.5GHz passively cooled and 2.0GHz with a fan using VIA Eden ULV processors). The spec sheet is available.

I was looking quite deeply into this platform to test its potential. I wanted to run Linux on this and it had an in-built video decoding co-processor as well as 3D support through the CX700M chipset. Anyway I eventually managed to get Xubuntu running with Compiz effects.

The problem I found with the system is that the drivers are thoroughly inadequate and that the open-source support is nowhere to be seen without VIA helping by supplying the documentation for the video decoding acceleration. The GPU is a CX700M and the binary drivers are available and the official drivers are available from VIA (Ubuntu 8.10 currently). With these the 3D support is okay apart from some font rendering issues when using Compiz.

Some of the older drivers supply the support for the video decoding co-processor. Unfortunately I could not get a version working with a current version of Ubuntu, which in turn even if it did work would not have supported the 3D graphics properly. Also in order to make use of it you have to jump through a number of extra hoops and also operate as root which is a good security risk(!)

There are two specialised version of the media players that VIA has customised to make use of the drivers that supply the MPEG-2/4/h.264 and WMV9 acceleration. These are VeXP (Via Xine Player) and VeMP (the VIA enhanced mPlayer). I did put them into Git repositories starting from the base they branched from so I could work out what the patches did. They rely on closed-source library called libddmpeg.so that is part of some of the older drivers which provides the interface to the video acceleration hardware. This in turn relies n linuxgate.so.1 which provides a direct interface into the kernel for interrupts and the suchlike. This probably explains why all these things if you can get them to work require root access. I did try grabbing the library from an older driver and using it on a newer driver, which would have been too good to be true if it worked (it didn't but at least I didn't kill the system).

The place to go for drivers and utilities is VIA Arena where they maintain all the older legacy downloads as only the bleeding edge are available on the official VIA website.

There is a special version of Puppy Linux that is optimised for the platform. The development website is here. Unfortunately the media player supplied is not the one that makes use of the co-processor functionality, well it didn't for me anyway. Maybe this s worth revisiting again at some point.

There is a blog covering the Microclient Sr here and a Google Group discussin it here. There is also a good comprehensive website (in French). Finally, a couple of reviews are here and here.

This is a really cool bit of it with nothing else in its price range/features. Unfortunately the Linux support is such a headache, if it worked I would be extremely happy and it would be very interesting to see how it functions with video and 3D. The tiny little box can even do insanely high resolutions of 1920x1440 which would be very useful.

Tagged as: , 2 Comments
14Feb/090

Technical Links

Lots of links to cool technical things....

Not tested in IE initiative
Developers are prematurely aged by having to bake in Internet Explorer compatibility, my anecdotal evidence proves this.

The Photo Marketplace That Never Launched: Flickr Stock
An interesting article about a photo marketplace by Flickr that never got off the ground.

Real World Haskell
The whole book online.

Linux tablet emerges from blogosphere
An open-source, openly developed internet tablet. It is a really nice idea to make an internet appliance like this, especially as commercial forces seem uninterested in the device.

s3fs - FUSE file system for Amazon S3
Use Amazon's distributed hosting service as a file system. This looks really cool for simplified off-site backup - I wonder if Time Machine on the Mac could use it...?

EA’s Prototyping Framework
EA have released the source to a rapid prototyping framework for games.

google.org - Energy Information
Use the Google service to monitor your energy consumption. What you need is a special type of meter fitted to your home, it seems the UK is currently trialling the smart meters.

Programming a 64-bit Operating System
Information about developing a 64-bit operating system.

v0.8 of Redmine released
The Ruby written bug tracking system with bult in wiki, repository integration, and much more has released a new stable version.

IDE in the cloud: Mozilla Labs' browser-based IDE prototype
I see a lot of potential in this idea if it can abstract away the boring mechanics of source control and everything else.

flashbake
Source control for writers using Git and Python.

Make your Ubuntu distro look like the Mini Mi
Make Ubuntu look like the new HP developed theme.

First Look: Elive E17 Compiz
Screenshots of Enlightenment e17 running ecomorph (Compiz).

get_iplayer - Download BBC iplayer, BBC Radio & ITV programmes
Command line tool for iPlayer on Linux.

Gnome-Do Docky: A New Dock On The Block
Dock type stuff on GNOME.

Hands on: Neuros LINK, an Ubuntu-based media extender
Linux based media centre. Looks quite good for hackers.

Make Ubiquity Your Ultimate Firefox Commander
A nice article covering some of the more interesting aspects of Mozilla's Ubiquity. Also more info about putting together a Ubiquity photo editor.

Tagged as: No Comments
14Feb/090

Cool Links

If they made a ‘Dark Knight’ NES game…
I bet this game would be better than the official game as well.

Sleeze Brothers Return!
I remember buying the Sleeze Brothers 20 years ago in Braintree - that's showing my age!

Dr Who Anime

New Dave Gibbons WATCHMEN Art?!?! You better bet we got it!
The world can never have too much Dave Gibbons artwork.

Also from Watchmen there is the trailer for the Tales Of The Black Freighter animated DVD:

Ubuntu - now found in the UK too
Ubuntu Cola.... bought just down the road from where I am sitting.

Jeff Lint’s THE CATERER - available for order!
Finally back in print - get more on the genius Jeff Lint here.

Tagged as: No Comments
14Feb/090

New Look

I decided it was time for a new look so I grabbed the iNove theme for WordPress. I've made a few minor hacks for it which I will publish in due course (although I've got no idea what license these themes are available under. The changes I've made are the code tag now using different formatting, different font for the title, and making the hover on the subscribe link show the number of subscribers on Feedburner.

The website for the guy that supplied this theme is here.

I've also now installed WP-Codebox to make posting code much easier and configurable.

Filed under: Uncategorized No Comments
14Feb/090

Getting Your Feedburner Statistics

For the CODA app Using CODA to track your website's performance with FeedBurner I knocked up some code which gets your Feedburner statistics through the Awareness API with a simple bit of PHP.

Since the migration of Feedburner to Google's Adwords for Feeds is in full swing I found I had to make sure I supported both methods. So the most interesting piece of information in this MIT Licensed piece of code is the retrieving of statistics from the API (which is still available after the Google migration). I'm not a PHP expert or anything (in fact it was my first bit of PHP I have ever written from scratch).

Here is the code which does the Feedburner API retrieval into some PHP variables:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
// Get the blog type because some are still hosted on Feedburner whilst others
// are migrated to Google.
// Options are: "google" and "feedburner"
$blogtype = $_GET["type"];
// Get the blog name for the Feeedburner API.
$blogname = $_GET["blogname"];
// We default to Feedburner if the "type" parameter does not exist.
$base_url = "http://api.feedburner.com/awareness/1.0/GetFeedData?uri=";
if ($blogtype == "google")
	$base_url = "https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=";
// Query the Feedburner API and parse the statistics.
$xml = simplexml_load_file($base_url . $blogname) or die ("Unable to load XML file!");
$subs = $xml->feed->entry['circulation'];
$hits = $xml->feed->entry['hits'];
$reach = $xml->feed->entry['reach'];
?>
14Feb/090

Feedbutcher – Because Feeds Need Dissecting

For the CODA application Follow Flickr tags on your CODA screen we have released some source code on GitHub for this. It's a full-on Django App in the repository.

But within there is a little bit of code we call FeedButcher which is a very simple piece of Python code which carves up feeds. We needed it to get pictures out of feeds for our Flickr app.

It's released under MIT license so if anyone else can find a use for it/improve it - have fun.

Tagged as: , , No Comments
14Feb/090

Month of Coda Applications – Half Way Through

The developers here at Camvine have held on to the Camvine Twitter Feed for two weeks now with ten examples of cool uses of the CODA digital signage system.

Here is a run-down of the ten so far:
#1 - Get live updates from your Twitter feed displayed on the wall!
#2 - Get up-to-date feeds from popular photo sharing sites on your wall by using photocasts!
#3 - Real time network monitoring at a glance using CODA to display Pingdom reports!
#4 - Get calendars out of the computer and to where they can be seen and matter.
#5 - For very busy people - put your inbox status on a display in your office!
#6 - Email your wall - a quick way for getting messages to all!
#7 - Keep abreast of what's going on with RSS feeds in CODA!
#8 - Make it easier to track software development projects with CODA!
#9 - Themed random photo mosaics using Flickr tags to generate art on your screens.
#10 - Monitor your website's readership stats in real time via Feedburner and CODA!

There are a number of interesting bits of source code to come out of this which I'll cover in my next post.

Tagged as: , No Comments