1. pump the PDF sidebar

    firefox’s PDF viewer is quite nice—particularly so if you consider that it’s all written in JavaScript. one thing that’s been bothering me was the size of the sidebar.

    in my day job i tend to both read and write a number of architecture and specification documents, all of them sooner or later as PDFs. those PDF documents tend to have a rather deep structure—too deep to really fit into the sidebar of firefox’s PDF viewer. once i realized that the PDF viewer is written in JavaScript, CSS and HTML, i also realized that i was dealing with an open webapp. so, it should be possible to add a piece of greasemonkey script to firefox to pump the sidebar—how hard could it be?

    “not very” is the answer, as you can see for yourself here:

    have fun ;-)

  2. one name to catch them all

    today we were trying to do a multipart/form-data POST to one of our webservices using the usually rather usable python requests. the spec of the webservice required that multiple files were to be POSTed as multiparts with the name files and individual filename attributes — a task that python request ...

  3. spamassassin: learning from inbox and junk folders

    while tweaking the spam filters on our mail server i finally took the step of adding a cron job to learn from the inbox and junk folders of each user. as we are using spamassassin as part of our spam defense this basically involves a couple of invocations of sa-learn ...

  4. ajax fun with jquery & python

    the other day i tried to come up with a minimalistic Ajax setup — minimalistic in the sense of minimal coding overhead. my ingredients of choice were jquery and JavaScript on the client side and python on the server side. the goal was to use both GET and POST REST calls ...

  5. emacs tip: getting lines numbered

    the other day i was coding a scala apply(array: Array[String}) method to instantiate an object from a CSV file. i ended up with something like this:

    apply(uuid = uuid,
    source = source,
    hostname = rewired(0),
    type = rewired(0),
    state = rewired(0),
    category = rewired(0),
    id = rewired(0),
    lifecycle = rewired ...
  6. sbt10, webplugin, jetty, run-in-place: once more...

    it turns out that the sbt/web-plugin configuration i described in my last post is not quite cutting it. what we observed is that while changes to the contents of the webapp subtree were indeed effective immediately1 sbt commands like prepare-webapp and jetty-reload would sometimes work and sometimes just ...

  7. adding a USB monitor

    i’ve long been using an external 22” monitor with my ubuntu linux powered X200 thinkpad. while ubuntu maverick (10.10) has some issues with attaching and detaching the second monitor and subsequent suspend–resume cycles (the second suspend after a detach would not resume, d’oh), ubuntu lucid (10 ...

  8. CSS selector transforms...

    we have been using scala and the lift framework for our project for over a year now. as we are starting on a new subcomponent of it, i thought i’d take a crack at using lift’s new CSS selector transforms.

    CSS transforms provide an alternative to the traditional ...

  9. fixing failing suspend on maverick system

    i recently got my first real desktop system — as in: not a thinkpad. it’s an 8 core, 8GB, 1 terabyte system with an nvidia graphics chipset allowing two large displays to be powered: really sweet. installing ubuntu maverick 10.10 from the alternate install CD1 was simple and ...

  10. using maven to generate your project's scala classpath

    one thing i quite like about scala is that ability to run it in “interpreted” mode via the scala command. that allows me — similiar to python or ipython — to experiment and quickly try things out or even test my classes and objects.

    what was a bit of a pain was ...

  11. deploy a maven package locally

    note to self: maven differentiates between installing and deploying a package (which might have been built via a mvn package):

    • install — just installs the JAR file and the POM file, if the -DcreateChecksum=true flag is provided it will create the SHA1 for the JAR only
    • deploy — install JAR and ...
  12. OpenSim Zurich Lunch (r6)

    for over a year we’ve been meeting more or less once a month or two over lunch to discuss and chat about all things OpenSim — very creatively volker gässler and i called them OpenSim Zurich Lunches back then when. for the past year we’ve been having lunch at ...

  13. debianized rezzme

    the latest rezzme now contains the necessary code to build debian/ubuntu dpkgs — making it as easy to install rezzme packages on the latest debian/ubuntu systems as it already is for windows and mac OSX machines as the dpkg format allows me to explicitly specify the prerequisites (such as ...

  14. using F19/F20 to switch tabs in thunderbird 3

    i just switched over from thunderbird 2 to the new sparkly thunderbird 3 — and i like it very much. particularly the tabbed user interface is quite nice but also lightning 1.0 seems to cope much better with those lotus notes generated calender invites :-)

    what did bother me was that ...

  15. fixing ugly {emacs, firefox} fonts on (x)ubuntu karmic

    i recently switched all my systems from running kubuntu hardy heron 08.04.02 to xubuntu karmic koala 09.101 — a rather pleasant switch over. the only thing that was bothering me was the really crappy fonts in firefox and emacs. in firefox, no matter what i configured in ...

  16. japanese language support for OpenSim

    a colleague of mine in japan contacted us asking whether our in-world collaboration tools could be extended to support japanese characters — he had tried our internal, public sametime 3d servers and had noticed that while in-world chat and instant messaging worked just fine, our flipcharts, brain storming boards, calendar, and ...

  17. vidcasts on htc hero

    for almost 10 days i’ve been the proud owner of a new mobile phone, the htc hero, an android and, thus, linux based mobile phone! over the past year or so i had become increasingly fed up with my apple ipod touch — yes, i had jail-broken it, yes, i ...

  18. full spatial voice for opensim

    this morning i finally could push our VivoxVoiceModule into opensim trunk. we had been using it internally for almost three month as part of the Sametime3D project but only now got the necessary legal “paperwork” done so that we could finally release it into the wild!

    VivoxVoiceModule works with the ...

  19. 21

    after our intoxicating stress test ten days ago we repeated the stress test today with a group of volunteers — thus, real SL clients instead of bots.

    the result: 21. :-(

    somewhere around the 21 avatar mark we are got stuck and the (single) region standalone system started becoming very laggy: avatars ...

  20. avatar machine

    for stress testing i needed to create 100 avatar accounts quickly. instead of going via opensim’s console i started ipython and entered the following python script:

    [python]
    import xmlrpclib
    os = xmlrpclib.Server('http://127.0.0.1:9000/')
    for i in range(100):
        os.admin_create_user(dict(password = 'SECRET', 
                                  user_firstname ...
  21. 81

    it was a dark and stormy night. lightning was ripping the heavens apart, thunder was rolling through the valley. no living soul dared venture outside…1

    …and i wasn’t. i sat in front of my screen, mesmerized by the numbers coming up: 20…27…34…38…40…43…48 ...

  22. OpenSim: sending inventory client side...and have the avatar take notice!

    recently i was in need of being able to send inventory items (well, a whole folder full of stuff) to the inventory of a logged-in avatar.

    just copying the the inventory items to the avatar inventory (for example, using Scene.GiveInventoryItem() or Scene.GiveInventoryFolder()) will not cause your avatar to ...

  23. using the regioninfo REST call

    a couple of weeks ago i added the regioninfo REST call to OpenSim. here is a little python script that shows you how to use it:

    [python]
    #!/usr/bin/python
    # -*- encoding: utf-8 -*-
    
    import sys
    import urllib2
    import xml.etree.ElementTree as ET
    
    def RegionInfo(url):
        if not url.endswith('/'):
            url ...
  24. threading opensim through mono needles

    our Sametime3D test server is running a number of regions, some of them are rather on the monster side of things with gazillion scripts (ah, those brainstorming boards). until recently our opensim startup scripts would just grap a copy of mono and let it loose on OpenSim.exe and things ...

  25. happy 2nd birthday OpenSim!

    guess what? today is OpenSim’s second birthday! that’s right it’s just two years old and already a pretty strong little (?) bugger. to quote the official OpenSim 2nd birthday page:

    The consensus is that OpenSim was ‘born’ on Jan 29 2007, when Darren Guard (MW) made his prototypical ...

  26. the mystery of the blank opengl window on screen 2

    the x200 i’m using has enough omph to power OpenGL on both the builtin display and the 1600x1200 external display. unfortunately whenever i moved that glxgears window on to the second screen it would just show…nothing. googling around for that showed that a number of people had the ...

  27. addressing places in virtual worlds...or: why SLURLs are bad

    we currently are using LindenLabs’s SecondLife clients (and derivatives thereof) to login to and render our OpenSim based virtual worlds. as the SecondLife client is produced by LindenLabs for their SecondLife grid, it should come as no suprise that their client by default only talks to their grid(s ...

  28. java printing & (k)ubuntu hardy

    as much as i like kubuntu 08.04.01, there is one issue that’s a pain in the netherregions: printing from java — it just doesn’t work with the sun6-java package :-( and CUPS 1.3 (which is the default version on 08.04.01): java’s printing subsystem will ...

  29. using /etc/crypttab to decrypt encrypted external disk

    for a couple of months now i’ve been running my notebook from an encrypted filesystem (which works really well, i’ve to say). my external backup disk has, of course, also been converted to an encrypted filesystem.

    what has been annoying me, though, is that everytime i plug the ...

  30. digitalk podcast on virtual worlds

    yesterday matthias schüssler and roger zedi from digitalk along with their technically well-versed dog visited us in rüschlikon to do a podcast about virtual worlds! having always been on the receiving end of podcasts (i just love listening to podcasts) it was a very interesting and exciting experience to be ...

  31. goodbye steve

    this morning i learnt that on monday afternoon my very good friend (and colleague) steve wright died after a motorbike accident in twyford.

    to say that i’m devastated and sad is an understatement.

    all day long pictures of steve keep coming up: our first project together for a UK ...

  32. happy birthday GNU!

    incredible as it is, GNU turns 25! unless you’ve been hibernating behind a big rock in a remote area almost off our world you must have heard about GNU — in fact, i think it’s fair to say that without GNU, without richard stallman and his vision we’d ...

  33. opensim: isolating virtual world data and code

    for our application testing we are most of our internal grids in stand-alone mode. until last week i had been using sqlite as the underlying databases for our grids. as we gathered more and more prims on some of our regions, i noticed that loading from the sqlite databases would ...

  34. GridInfo...or: client auto-configuration

    mana janus suggested last week on opensim-dev that it would be rather useful to have a grid info mechanism that would allow smart clients to obtain useful grid related parameters such as

    • login server (-loginuri parameter for the SecondLife® client)
    • grid welcome page (-loginpage)
    • URI of the economy subsystem (-helperuri ...
  35. splitting opensim's chat module

    similar to other virtual worlds opensim supports in-world chat (and instant messaging) so that two avatars can “talk” to one another. the code that implements that functionality is mostly contained in ChatModule, a region module.

    OpenSim also supports an IRC bridge: you can tie your OpenSim grid to an IRC ...

  36. we have buttons!

    since time immemorial (well, almost) i own a private epson 1260 scanner. a couple of weeks ago i — foolishly, as it turns out now — offered to my in-laws to copy all lake district articles out of our country walking collections. foolishly, because i realized that country walking must have their ...

  37. RESTful regions

    we are currently trying to figure out what the best approach for a REST “API” for regions is and would like to solicit comments :-)

    currently the idea is to have a scheme as follows:

    • http://opensim.foobar.org:9000/admin/regions —
      • GET returns an array of (UUID, name, x location ...
  38. which serialization format for OpenSim REST services?

    we are currently looking at adding REST support to the RemoteAdmin plugin (other stuff to follow) — the idea being that we can get information about (as well as change state of) a running OpenSim instance not only via XmlRpc but also via REST.

    looking at the way we currently deal ...

  39. fixing absurdly high wordpress CPU loads...

    ever since i switched to wordpress 2.5 (and 2.5.1) i was experiencing absurdly high CPU loads whenever i posted a new blog entry or changed a page — culminating in loads of 124+ yesterday, effectively bringing our server to a standstill! :-( not good. not good at all.

    a ...

  40. console-less opensim

    until a couple of days ago, opensim would only run in console mode: whenever you started OpenSim you would end up at a prompt inside OpenSim’s very own console — which is very convenient if you want to manage it that way. it is rather inconvenient if you want to ...

  41. proper footnote IDs for markdown-extra.php

    i realized the other day that the markdown-extra plugin i am using for text markup was generating non-unique footnote anchors, resulting in any footnote #1 in a blog entry on referring back to footnote #1’s anchor in the very first blog on a page with multiple blog entries. not ...

  42. installing mono 1.9

    to run the most recent libsecondlife release you need to have at least mono 1.9 installed. the following step-by-step recipe applies to a ubuntu 7.10 system and you should be root:

    installing pre-reqs

    apt-get install build-essential bison gawk
    apt-get install libglib2.0-dev
    apt-get install libpng12-dev libx11-dev libfontconfig1-dev 
    apt-get ...
  43. being slartibartfast...

    tonight i felt like being slartibartfast — yep, the urge to create some fjords, mountain ranges, and islands was just overwhelming. unfortunately, the previous routes to scratching that itch were blocked: using L3DT to generate a nice looking landscape (all by just twiddling a couple of sliders) and then loading the ...

  44. ubuntu 7.10: fixing emacs flyspell & transient mark mode bug

    while working on a lengthy LaTeX text in my favourite editor, emacs, i noticed that once i turn on flyspell-mode (spell check as you type), that transient-mark-mode (highlight marked regions) would become borked :-( not good.

    investigating the issue, it transpired that the flyspell.el and ispell.el files installed as ...

  45. debugging qrcode...

    as you hopefully have not noticed (well, there was some downtime, but not more than usually afflicted by cablecom) i switched xyzzyxyzzy.net from gentoo to running ubuntu server 7.10 on monday.2 along with that came a reorganization of the web server directory layout — and i took the ...

  46. installing OpenSim on PowerPC...or: of eggs and virtual worlds

    we noticed last week (well, actually a bit longer than that) that OpenSim would not really care to run on PowerPC platforms. the symptoms were that (a) it would die with an array index exception on restart, and (b) the SL client would crash horribly when connecting to the region ...

  47. patching pidgin to recognize F19/F20

    my X60 keyboard has those rather convenient “next page” and “previous page” keys (located just above and to the side of the cursor keys) which i’m using to switch to the next or previous tab in konsole and firefox:

    • adding support for that in konsole was rather easy: just ...
  48. OpenSim...or: your very own secondlife grid in 3 easy steps...

    want to run your own secondlife grid? not satisfied with that lousy 512m² plot in the middle of that sleazy, red-light district sim somewhere on a remote secondlife island on the LindenLab grid? ever dreamed of becoming a railway tycoon and running a railway company in secondlife — but couldn’t ...

  49. using python's xmlrpclib with OpenSim

    this morning ansi and i were wondering how we could do XmlRpc calls to OpenSim. well, this is what we found out:

    to have a reasonable XmlRpc experience™ you should enable the remote admin interface, to do so just add the following lines to your OpenSim.ini file:

            [RemoteAdmin]
            enabled ...
  50. hacking the geopress wordpress plugin

    yesterday i updated the wordpress plugins on our d2h.net and xyzzyxyzzy.net blogs. once done, both blogs would not work anymore…duh! the updated geopress plugin was borked :-( — or so it seemed…

    …it turned out that i had added code to the earlier version of geopress to do pretty ...

  51. retiring perl after almost 20 years...

    one of the projects i’m currently working on is the VU*gate system that allows us to write scripts or applications to control an avatar in virtual worlds. VU*gate consists of a gateway daemon “talking” on one side the virtual world network protocol towards the virtual world grid ...

  52. sleep talking...

    a bit tired today after a longer than usual train ride from .ch to .de: took the scenic route from einsiedeln to st. gallen to munich to erlangen because of the strike of the german train drivers…

    also, it seems, even though i thought i was sound asleep the last ...

  53. getting to grips with the WLAN troubles on my kubuntu'ed X60

    while i’ve been using knetworkmanager and its side-kick kicker applet rather successfully on our private laptops (all running kubuntu now), it’s never been an option for my IBM laptop (both meanings of the words apply here :-) as we are using the IEEE8021X variant (with X.509 certificates) for ...

@DrWhoZee