glxgears is not a benchmark

| No Comments

Donations

| No Comments
If your appreciate my work on open source software, and would like to buy me a beer to say thank you, you can do so by clicking this button ;-)


GBP
USD

Cygwin/X bug list

| No Comments

In no particular order, some reported bugs:

  • Various clipboard problems, either not working or only working intermittently for some people
  • Some Solaris clients die with a BadAlloc on a XkbSetNamedIndicator request
  • Some XView toolkit clients don't close with [x]
  • Rebuilt xkdvi crashes in XtGetApplicationResources
  • IRC report that -multimonitor -rooted with primary on right seems to misclculate the screen height somehow so some of the bottom of the X screen is invisible
  • XWarpCursor() doesn't in rootless modes (not a regression!)
Some cosmetic issues that I notice:

  • Minimized windows are moved to (0,0) not unmapped: this causes the irritating punch through of menus and tooltips when the frame of the active window overlaps the (apparently) minimized window in the X screen
  • Resizing a window frame doesn't move the X focus, so an open pop-up window which is a child of the resized window gets left behind
  • Mouse isn't captured when click dragging; this makes it very hard to work with X windows which draw their own decorations

Cygwin/X X server todo list

| No Comments
The thing I'd like to see working which is the reason I started looking at it in the first place

  • RANDR extension support integrated with the native Windows WM_DISPLAYCHANGE message so X knows and does the right thing when the native Windows virtual desktop changes size due to a resolution change or monitor addition/removal
Other things

  • Composite does strange things at the moment
  • More investigation of why the 'smart scheduler' causes cygwin problems: SIGALRM every 20ms causes 'sporadic accept() failed' and deadlocks in multiwindow mode. Fixed/better with Cygwin 1.7.x?
  • Fix building with multwindow with external window manager mode.  This depends on the rootless extension, which depends on Apple's Xplugin.h :D
  • Icon conversion could use a bit more work, scaling overlarge NET_WM_ICON icons down to the right size, improving icon conversion if we could find a simple way to use a bilinear filter  Some windows still have no icon found by us, although native WMs can find them.
  • Probably should change explicit use of GetTickCount() in event generation in xwin/ to use GetTimeInMillis(). This should make things consistent if we ever wanted to use the gettimeofday() clock
  • Maybe get some patches folded back into upstream

Updating the Cygwin/X X server

| No Comments
I've been spending a bit of time recently trying to get an up to date version of the Cygwin/X X server building and working (the current version in Cygwin is a R6.9 vintage monolithic X :()

Patch-set to build X.org server 1.5.2 for cygwin
Patch-set for the current X.org git

A couple of resource were very useful: The Xming server is the same server built for mingw, and some patches for the 1.4 X server

A built version is now in cygwin ports



Graphical merge for subversion

| No Comments

Being used to doing graphical merge using ClearCase , I didn't want to have to fiddle around resolving a subversion merge by opening a bunch of files. Bizarrely I couldn't find a clear description of how to set this up, perhaps because the specifics have changed between subversion versions, so for subversion 1.5:

add in ~/.subversion/config
merge-tool-cmd = svndiffwrapper

and create svndiffwraper, somewhere on your path, a shell script which contains:

#!/bin/sh
kdiff3 -m $1 $2 $3 -o $4 1>&2

Subsequent svn merge will offer you the option to (l)aunch the external program do to the merge, which will fire up kdiff3

(Obviously you can use a different tool to kdiff3, but that was the best 3-way graphical merge tool I found in a quick search)

Too many passwords...

| No Comments

musictracker 0.4.7 changes

| No Comments
  • Correct the way we retrieve track artist info from WMP (#16)
  • Fix a problem where tune status could sometimes get left with stale data (e.g. if player was closed whilst pidgin was closed)
  • Apply patch from hyperair adding a timeout to dbus calls, so they cannot block indefinitely (hanging pidgin) if something has gone wrong in the target application (#13)
  • Fix restoring saved status so it correctly restores account-specific saved status (#11)
  • Attempt to avoid being told "MSN: Friendly name changes too rapidly" when player is stopped
  • Some more tidying up
  • Update libmpdclient to latest svn (revision 7402) (this fixes a file descriptor leak when an IPv6-enabled MPD is running) (#137, maybe #12?)
  • Enable MPD client in windows build
  • Fix type conversion warnings when building for x64 (#18)
  • Use dopen/dlsym to access XMMS2 client library, so it doesn't become a run-time dependency if we build with XMM2 support enabled

x86_64 crosscompilation

| No Comments

I don't actually have an x86_64 machine to build or test stuff on, but since I had some issues reported with x86_64 compilation, I was wondering if I could cross-compile to x86_64 on my x86 machine to reproduce them.

Generating the toolchain on gentoo is pretty easy thanks to crossdev

USE="-*" crossdev -S --target x86_64-pc-linux-gnu

The gentoo cross-compilation guide explains how to cross-compile arbitrary packages

ROOT=/usr/x86_64-pc-linux-gnu/ CBUILD="i686-pc-linux-gnu" CHOST="x86_64-pc-linux-gnu" emerge libpcre

Obviously can't test any of it works, though :S

Japanese text in mp3 tags to musictracker

| 1 Comment

Since my friend Kacey gave me a nice J-Pop mp3 with some japanese text in the tag, I've been able to do some testing to see if these characters can get passed from the player into musictracker and hence to the status message....

jon@clairmont $ mid3v2 10\ 世界はこの手の中に.mp3
IDv2 tag info for 10 世界はこの手の中に.mp3:
TPE1=相川七瀬
APIC= (PNG, 105828 bytes)
TYER=2000
TIT2=世界はこの手の中に
TENC=iTunes v7.7.1
TRCK=10/13
TPOS=1/1
TALB=FOXTROT
TCON=Pop

This all seems to work swimmingly on various players under Linux, but under Windows it's more complex...

  • GetWindowText() on the foobar2000 window just returns a load of "?" characters, presumably because they don't exist in the local codepage (unlike accented characters like ö which survive this translation intact). Using GetWindowTextW() to retrieve the title in wide-character form then converting it to UTF-8 seems to work fine.
  • Winamp makes an utter hash of returning these characters via the (legacy) IPC_GET_EXTENDED_FILE_INFO interface we are using. Updating to use IPC_GET_EXTENDED_FILE_INFOW fixes this. We also need to use GetWindowTextW() as above for looking at the window title (which we use for stream information)
  • The mysterious wmp9.dll seems incapable of returning these correctly from Windows Media Player.... yet another reason to replace this code with something else....
  • This all works fine with iTunes, but it doesn't seem possible to actually display the song title correctly in iTunes, since it uses a fixed font (Lucida Grande?) which you can't seem to change and which doesn't have the glyphs. Later: turning on East Asian language support in Windows XP fixes this, presumably as it lets Windows do it's font linking thing to find the glyphs in another font...

So now I know more about this windows wide character nonsense than I ever wanted to. Oh, and I'm now one of the top listeners to Nanase Aikawa on last.fm :-)

Recent Comments

  • FoeHammer: Thanks SO much for this! read more
  • net_random(): Yay! the plugin is back alive now@!! well done. read more
  • Peterpan: Hey, great job. Thanks read more
  • Jon: @previous 2 commenters I've created a fork of musictracker at read more
  • brian: Thanks for the mod. Any chance you could post the read more
  • Alfero: Thanx a LOT!!! I finally got WMP11 working. Been waiting read more
  • bachterman: yeah, works like a charm! thanks for the dll. maybe read more
  • Thomas: I just wish the fork would have been higher in read more
  • Jonathan: thank you SO MUCH FOR THE DLL. I was about read more
  • isti_and_sartek: hi i tried your .so and compiled myself but crashes read more

Find recent content on the main index or look in the archives to find all content.