Split prelude.ml into small bits. Took hours and yielded very little in the way of benefits. Everything's still interlocked to all hell and back, except that now there's more code duplication and it's harder to load. I think I'll port the new things (uniform collection interfaces) from the split into the single file version and get rid of the split version.
Wrote tests for Filezoo Helpers utility class yesterday. Uncovered a bunch of bugs, as expected. Could move to something fancy for handling filesystem ops, which'd net me smb:// and sftp:// and whatnot. The problem is that Gnome.VFS is deprecated, GVFS doesn't work and KDE is doing their "we're rewriting the world from scratch!!"-madness. So I don't have any good options.
While the white theme was nice, my FVWM desktop is gray20. And I can't use a gray20 background for GTK as their widget themes aren't built for that. Not to mention that I can't trust GTK's default widget style colors, they're always white for bg and black for fg. So screw respecting the GTK theme, I'll just hardcode the colors.
Compiz is nice and fast and mplayer works right with it, but you can only use metacity with it, which means that it's useless to me. Options? I want drop shadows that don't break mplayer (as xcompmgr does.)
Also, played with my ages-old (circa 2003) OpenGL filesystem browser a bit and it really underlined the slowness of the current Cairo+Pango-renderer. 10-20 FPS feels okay when your comparison is other slow desktop apps, but compared to an app that runs at 60 FPS, the difference is painful.
Less bitching, more coding. Features I'd like to implement over the next weeks:
- scale thumbnails to screen width when zoomed close
- read (text/pdf/ps) documents inline
- UI optimization tools
- UI profiling ("it took you n seconds between zooms", "it took you m seconds to change directory")
- A UI benchmarking game ("find [some file definition], select it", "select [some pattern] files", etc.)
- browsing SFTP
- port the renderer over to OpenGL
- test the app on a netbook
- make the panel work as a Gnome panel applet
- use a config file for the menus, icons and colors
- make it prettier