a blog by Marius Gedminas

EuroPython 2008 sprints, day 2

Hacked on XDot, which uses PyGtk/Cairo and the xdot intermediate format and thus sidesteps the limitations I encoutered working on dotviewer. My changes are in a Git branch created with git-svn. Get it here:

git clone https://mg.pov.lt/xdot-mg.git

Try it out

cd xdot-mg
./xdot.py sample2.dot

See the changes

gitk --all

Overview:

  • Supports more .dot features.
  • Nicer node rendering.
  • Animated jumping between nodes.
  • Highlights node/edge under mouse.
  • Ctrl-drag zooms.
  • Shift-drag zooms an area.
  • File open dialog.
  • Zoom-to-fit reacts to window resize.

I must admit that git is nicer than bzr to work with, but a bit of a pain when you want to publish or share your changes.

I will not be sprinting tomorrow.

EuroPython 2008 sprints, day 1

Hacked on dotviewer that was developed for PyPy but is now a standalone tool. My changes are in a Bazaar branch created with bzr-svn. Get it here:

bzr get https://mg.pov.lt/dotviewer-mg/

Try it out

cd dotviewer-mg
./dotviewer.py sample2.dot

See the changes

bzr vis

Overview:

  • Supports more .dot features.
  • Nicer node highlighting.
  • Easier panning for one-mouse-button users (Shift+drag).
  • Better edge navigation close to the borders of the graph.
  • Renders small fonts too.

Then I hit some limitations: it's either impossible or very hard to get pretty anti-aliased output or smooth text scaling with Pygame. It's impossible to support all dot features using the plain intermediate format.

EuroPython 2008 highlights

Highlights from EuroPython 2008:

  • Nice badges! Large, readable font, nice design, pretty logo, no clutter.
  • Wifi worked great most of the time.
  • Reportlab paragraph hyphenation is in a sorry state (nothing in the core, several extensions that sort of support it but are incomplete or hard to integrate); I should take a closer look at Dinu Gherman's work.
  • I should take a closer look at Vudo.
  • Phatch is cool.
  • Capistrano is interesting (and the slides were very pretty); shame I missed most of the talk. It was recorded, so hopefully I'll get a chance to see it.
  • Eggs and zc.buildout are getting traction despite their rough edges.
  • The Asus EeePC is convenient at conferences, if there are enough power sockets around, or if you're careful and suspend it often.

Won a Wing IDE licence in the raffle. Not going to use it myself (vim is the best, and I should publish my plugins). Also, I avoid closed-source software when I can.

Testing Mango Lassi on Hardy

Mango Lassi is a GNOME program that lets you painlessly share keyboard & mouse (& clipboard too!) between computers. It's not packaged for Ubuntu yet so you have to build it from sources.

Big fat warning: Mango Lassi has no authentication and does no encryption, so use it with extreme care. Don't type any passwords over your unsecured WiFi network!

Here's how to get it working on Ubuntu Hardy:

$ sudo apt-get install git-core curl build-essential intltool \
    automake-1.9 libdbus-glib-1-dev libgtk2.0-dev libxtst-dev \
    libavahi-glib-dev libavahi-client-dev libavahi-ui-dev \
    libnotify-dev libglade2-dev
$ git clone http://git.0pointer.de/repos/mango-lassi.git/
$ cd mango-lassi
$ ./bootstrap.sh

Press Enter once at the prompt.

$ make
$ sudo make install

Now you can run it with

$ mango-lassi

When you're tired of it, go back to the source tree and type $ sudo make uninstall

If it only used an SSH tunnel for encryption & authentication, it would be perfect.

Porting it to Maemo would be an interesting project. Imagine copying and pasting URLs from your laptop browser to your N8x0 tablet browser. Is Avahi available for Maemo?

Asus EeePC 900

I unexpectedly acquired an Asus EeePC 900 last weekend. Lovely piece of hardware.

The Xandros distro was okay at first (IceWM brought me fond memories of the year 2000, when I used it). Then I started longing for Firefox 3 and the aesthetics of GNOME applications. Finally, when apt-cache search told me there was no SSH server package available, I gave up and installed Ubuntu Eee from a SD card. The software selection is incomparable (Asus/Xandros: 870 packages available, according to apt-cache stats. Ubuntu: over 30,000 packages.) Also, yay rotating cube desktop!

Things I like about the Eee:

  • Small! Lightweight! Beautiful white colour!
  • Small pixels are pretty! 1024x600 at 8.9" is 133 dpi. Not quite the 225 dpi of a Nokia N810, but nicer than the 100 dpi of my T61W or the 85 dpi of my 19" external LCD.
  • The keyboard is much better than I expected. I hate those laptops that squeeze Home/End/PgUp/PgDn in an extra column on the right. Asus didn't.
  • Web browsing is much more pleasant than on a N810. It's faster for AJAXy sites such as Google Reader. Also, Firefox 3.
  • Video watching is much more pleasant than on a N810: no need to convert anything.

Things that are bad:

  • It gets hot. Either the hardware is not power-efficient, or the software isn't doing a good job.
  • Only 2 hours of battery life (plus an extra 40 minute safety warning with the blinking red battery low light). This is during normal usage (WiFi on, Compiz, Firefox, no CPU-intensive Flash plugins).
  • No integrated Bluetooth. Therefore you have to lug a dongle around if you want to use GPRS/EDGE/3G when there are no WiFi access points around. I hate dongles.
  • Doesn't come with Ubuntu preinstalled.
  • Not all hardware works in Ubuntu:
    • Even after using the Eee version of Ubuntu I had to manually tweak config files and compile kernel modules to get volume hot keys working.
    • No webcam or mic for me, though others report those working.
    • Touchpad is not configurable and doesn't do wheel emulation on the right edge, although most other gestures work.
    • Sound needs a module reload after suspend/resume, which causes an irritating error dialog from the volume control applet).
    • Video playback sometimes shows a blank black screen until you move a window to overlap part of the picture.
    • Firefox scrolling/redrawing under Compiz is noticeably slow sometimes (I don't know if it's because I enabled CPU frequency scaling, or if this is a problem with the Intel graphics driver problem.).
    • When I unplug a Bluetooth USB dongle, a btdelconn process starts eating 100% CPU time in the kernel and cannot be killed. Did I mention my hate for dongles?

My workhorse, a 14" Lenovo T61W, now seems huge by comparison:

Nokia N810 on top of Asus EeePC 900 on top of Lenovo ThinkPad T61W

I'm not going to stop using my N810 (which fits in a pocket, has a much longer battery life, and is more convenient for e-books or NumptyPhysics). I'll stop lugging my T61W around instead and start leaving it at work. The EeePC is an almost-perfect travelling laptop.

The upcoming Asus EeePC 901 is going to fix the lack of internal Bluetooth and the battery life. I wonder when it will become available in Lithuania. (The 900 is displayed in almost every electronics shop here. Yay Asus. Boo Nokia for not doing this with its Internet Tablets.)