Jan 22, 2010

Misc Hacking

I had two days off while I moved offices, so I got a chance to catch up on my backlog of random hacking.

osm-gps-map

I released osm-gps-map v0.5.0 which adds a few new features (such as keyboard navigation) but also contains many bugfixes and performance improvements. Check the release notes for more information. The next item on the TODO is merging the OSD/layers branch.

Conduit

I released Conduit 0.3.17 which was long overdue. Mostly a bugfix release and updating to new API. The Conduit homepage has also moved to live.gnome.org. Progress on Conduit is a bit slow at the moment, it does everything I want it to (I have a budget cellphone so phone synce does not interest me), and is pretty stable. I have some SOC work I would like to merge, but basically I am looking for developers and inspiration...

PyGTK for Windows

I finished off the fixes to build correct PyGTK+ installers on windows, hopefully closing bug #589671. I uploaded new installers with the fixes people have reported. I expect these installers to become the 'final' installers at some point. Feedback welcome.

PyGTK Hacking

I wanted to play with the new client side windows work in Gtk+, so I ported the effects gtk-demo to Python. This required a bit of ctypes magic to access the new API (good), and some more ctypes magic to interact with new signals that appears to have unfriendly prototypes (not so good, bug filed here).

PyGTK example using client side windows

Jun 7, 2007

Misc Updates

Conduit

For all those that are interested I just released Conduit 0.3.1, the second development release in the series. The release includes a heap of bug fixes and some interesting new features including;

Goals for the next release include

  • Supporting box.net

  • Google notes support

  • 100% test coverage of the core sync engine

The thing that keeps me interested in conduit is the speed at which we are progressing. Each new dataprovider added has a benefit proportional to the number of already included dataproviders; for instance adding evolution support opened up the ability to do tomboy notes <--> evolution memos, as well as evolution memos <--> ipod notes, etc.

Gnome Link Drop

Here are some interesting things on the horizon that made me excited about GNOME and gtk. Delegated to people with more free time and ability than me!

Anyway, Im still on holiday, and loving it!

Nov 20, 2006

Mmmm now thats pythonic!

Is it just me or are all the cool apps written in python these days?

  • Conduit (hehe thats me!)

  • Listen (music management and playback)

  • Exaile! (amarok styly music app for GTK)

  • GPixPod (manage pictures for your ipod)

  • Specto (why procrastinate when you can have an application do it for you)

  • elisa and pigment (media center by the dudes at Fluendo)

  • Gimmie (desktop revisited)

  • Deskbar (the most useful app on my desktop)

For extra bonus points I can also freely borrow code from these projects because they are GPL licensed. Yay for FOSS!

Apr 1, 2008

More Conduit GSOC Ideas

I see that Google has extended the SOC application deadline. Here are some Conduit related SOC ideas for GNOME.

  • Port Tomboy sync to use Conduit (and get free support for $WEBSERVICES) Use Conduits DBus interface and our C# bindings to said interface to be able to configure and initiate synchronization from Tomboy. This means that peer-to-peer Tomboy sync will get easier (no more ssh fuse), and that support for additional websites/mobile devices will become available.

  • Port F-Spot photo export to use Conduit With the exception of mentaloo gallery, we support most/all of what F-spot can export to. I can count a number of times where F-spot has hung/crashed during photo export. Using Conduit to do the sync will help prevent this, and ensure that if something untoward does happen, when you restart the sync duplicate photos will not be uploaded.

  • Mobile phone support

    • Integration with gnome-phone-manager for phone discovery and/or pim data Get/Set

    • Use of python-gammu for fetching PIM data, and photos from those devices that do not support obex-ftp

  • Gstreamer based media transcoding We currently call FFMPEG or mencoder via command line to convert/scale video and audio files. I would like to use gstreamer. A possible solution to this would be to create a gstremer transcoding utility (GUI and command line), or the use of the python gstreamer bindings from within Conduit. While I prefer the latter, the former would be a useful addition to the GNOME desktop.

  • Port cheese to use Conduit for photo and video site upload This would be based upon out glib dbus bindings.

  • More GNOME plugins using out DBus interface

    • (finish) Eog plugin for photo site upload

    • Add video upload to Youtube and Vimeo from Totem

    • Better nautilus integration. Removable volume support has improved in Conduit. It would be good to expose this from nautilus, although I am not sure the role this would take, for example

  • Support windows mobile devices. We have preliminary support for SyncCE, but this was never completed. There are capable python bindings to SyncCE, so it would take a hacker with a WM5/WM6 device to finish this.

  • Support palm pilots. Once again, not something I can work on as I do not have a device. There are some python bindings for getting data from Palm devices, and there is also the possibility of wrapping the GNOME pilot code to enable it to be used from Python.

Nov 15, 2006

More pseudoscience..... debunked!

Like many people I am becoming incredibly frustrated with the way that science is twisted for political and religions means. It is good to see that this latest pseudoscience article wrongly dismissing climate change from the Sunday Telegraph has been debunked.

"[The Sunday Telegraph Article] is a dazzling debunking of climate change science. It is also wildly wrong... In keeping with most of the articles about climate change in [the Sunday Telegraph], it is a mixture of cherry-picking, downright misrepresentation, and pseudo-scientific gibberish. But it has the virtue of being incomprehensible to anyone who is not an atmospheric physicist... As for James Hansen, he did not tell the US Congress that temperatures would rise by 0.3C by the end of the past century. He presented three possible scenarios to the US Senate — high, medium, and low. Both the high and low scenarios, he explained, were unlikely to materialise. The middle one was 'the most plausible.' As it happens, the middle scenario was almost exactly right. He did not claim, under any scenario, that sea levels would rise by several feet by 2000."

It would be hypocritical to place absolute faith in this one debunking (though I am certain it is an order of magnitude more correct than the original rubbish article). However the lesson is; scientific journals are peer reviewed for a reason, it allows people to have faith that what is published has a certain level of accuracy.

The Sunday Telegraph (a newspaper), by publishing rubbish like this, illustrates the gaping divide between what the general public thinks of as science, and what is actually science. Furthurmore, it is not a leap to assume that if the readers of the newspaper are now so content with the false assumptions they will also lack the necessary critical thinking skills to compare the original Sunday Telegraoh article with the new article debunking the claims. After all, critical thought is hard work for people who believe science articles in newspapers on face value alone.

Apr 23, 2006

Motivation....

"Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way useful first, and then others will say "hey, that almost works for me", and they'll get involved in the project. "

Linus Torvalds

Feb 5, 2010

Nautilus + Coverflow part two

After two complete rewrites following my initial experiments, the other gloobus developers (badchoice and kitkat) have continued to work on integrating this coverflow view into nautilus.

The implementation of the coverflow widget this time is a little more sane. It is passed a GtkTreeModel of GFiles, and basically does everything in isolation. The coupling to nautilus is quite loose, so the idea is that the widget can be reused easily by others.

The code is available from the linked blog post, or from github.

Mar 29, 2008

New Conduit Features

Last week (or so..) I released Conduit 0.3.9, the notable features of this release were the addition of documentation, and dramatically improved support for removable devices, like USB keys and portable hard drives.

Conduit Documentation

Conduit has always supported removable disks, but the UI for working with them has been dramatically improved. In the screenshot below you will see Conduit automatically suggesting pre-configured dataproviders to sync with folders on the removable device. The use case for this is

  1. Joe synchronizes stuff from one PC to his USB key.

  2. When Joe plugs that USB key into another computer also running Conduit he is presented with a pre-configured method to synchronize information from the usb key to a location on his local machine. Preconfigured USB key and mobile phone discovery

The functionality is not all that different to before (it shares all the same code as the traditional folder <--> folder sync, meaning you get conflict detection etc) but the way it is now presented is more sensible and discoverable.

In the screenshot you will also see the first commit of mobile phone support in Conduit. Phone discovery is done using bluetooth. Picture sync is implemented atop gnomevfs-obex-ftp. Data is currently fetched from the phone using gammu, but discussion are underway on how this might tie into gnome-phone-manager (which uses gnokii).

This work is (mildly) separate, but necessary for a sensible SyncML (using libsyncml) implementation. In order to provide smart suggestions on what sync options to offer for a particular phone, phones in range (via bluetooth or USB connection) should be enumerated and their capabilities queried. Currently I am using bluez for the former, and gammu for the latter, however, at least in the bluetooth case, the latter could probbably be accomplished using pure AT commands over a serial socket to get the manufacturer and model number and them comparing this with a database of capabilities.

If its not clear, this is still in the experimental stage, but the current approach seems to demonstrate that Conduits architecture, and the approach to implementation are approximately correct.

There have also been a few other fixes go into SVN, including

  • The ability to create tags in F-spot from within the Conduit UI

  • Improved configuration for picasa web galleries

Finally I will finish with a dear lazyweb.....

Dear Lazyweb; The current implementation of network sync doesnt really scale to pushing large files around. Its using the python pickle module, which has a tendency to read everything into memory, base64 encode it, run out of memory, and then explode. I have considered may ways to solve this

  • Use sftp - but that requires the user setup a ssh keypair with the other computer. Seahorse, can you give me a dbus interface to make this happen, easily?

  • Re-implement (because the license is CPL), some of the ingenious performance optimizations in conary WRT decreasing XMLRPC memory usage.

  • Wait for the GNOME desktop to offer some sort of GiveFileToThisUser() dbus api call. Could perhaps be implemented atop Giver/Telepathy (if... it gets accepted to the desktop....)

  • _Custom python module written in C to do this.... _

  • Continue doing what I am doing, and wait for people to complain louder....

Apr 18, 2006

Nuclear Energy

It is good to see that some environmentalists are not as dogmatic in their anti-nuclear views as others. I think it is high time that New Zealand had a mature and open nuclear energy debate.

Oct 5, 2008

One Month In France

ENAC

Hi Everyone, Its been a long time between blogging but I have an excuse. I have moved from Christchurch New Zealand, to ENAC, Toulouse, France. I have now been here for a month, working with the UAV team here.

Screen Envy?

The work has been really challenging, and I have settled into my routine, working towards some things I would like to demonstrate before I leave. I have spent a few weeks doing a lot of electronics design,  updating the paparazzi autopilot board, the IMU, and the GPS boards. Nothing revolutionary, just some evolutionary improvements over the previous hardware.

  • Consolidation of the interfaces between the main board, and the IMU+GPS+Radio+Motors. IMU interface is now SPI only, GPS interface is I2C only / UART only.

  • Addition of a 24bit ADC on the main board to directly measure the pressure sensor, no more op-amp+calibrate the offset at startup.

  • Physically smaller stackable board design.

A lot of this work has been done with an eye towards moving some of the off-board vision processing I am currently doing onto the flying aircraft. I have been experimenting with the beagleboard, and one of the goals of the hardware refactoring above is to free up an interface to push data between the beagleboard and the flight controller. Probably I2C or UART, I am not sure yet.

Can anyone get hold of a Gumstix Overo for me?

I am hoping to be able to demonstrate some biomimetic control responses from my onboard vision system, using image motion information. I also hope to demonstrate hybrid external position estimation system using an off aircraft 3d vision system aided (kalman estimator) by on-board IMU .

Plenty of work for me ahead.

Ubuntu

I finally managed to upgrade to the Ubuntu Intrepid beta. I was pleased to see that it contained all sorts of productivity improvements;

  • I used to waste about an hour a day keeping up with the US election news on Youtube, watching Sarah Palin insult the intelligence of all mammals on the planet with her existence. Intrepid fixed this for me by removing the feature where sound embedded in flash videos was played through the soundcard of my computer. Phew, thats a relief. I guess I will just need to go and watch Fargo instead.

  • Keeping in contact with my family via Skype was also a PITA, luckily Intrepid removed the ability for me to do that too, no sound to hear my parents nag me, and no video which would let them see me all hung over and tired.

Im sure everyone reading this is aware of that feeling when you go and use a friends brand new $2000 Windows Vista computer. The way it runs so slowly with 2GHz of processing power at its disposal, crashes all the time and takes 6 minutes to turn on. It is brand new FFS. When I am in that situation it makes me feel like the entire engineering profession has failed me.

I got that feeling with Ubuntu this week.

Conduit

Unfortunately I have not been able to work on Conduit very much over the last month, and it appears that no one else seems to have had the time to either. This upgrade pain has destroyed my motivation, and I only just recovered from the previous month, where approximately 14,000 people reminded me that the Conduit GUI made them vomit in their mouth. Some positive re-inforcement (and some help hacking) would be a welcome change about now.

← Previous Next → Page 7 of 10