December 30, 2008
filed around lunchtime by DrScofield in: hacking, linux
technorati tags:
QR code for this entry · average time to read 0:23 minutes

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 just get all confused by the missing page orientation that CUPS reports back and will take a runner.

luckily, pikopong has worked out a solution: edit /etc/cups/printers.conf and add

Option orientation-requested 3

before each closing </Printer> line, save, and restart your CUPS subsystem:

# /etc/init.d/cupsys restart

done.

all content posted on these pages is an expression of my own mind. my employer is welcome to share these opinions but then again he might not want to.
December 27, 2008
filed in the late evening by DrScofield in: hacking, linux, void
technorati tags:
QR code for this entry · average time to read 2:37 minutes

as part of my job i need reasonably good graphics to be able to run virtual world clients (reasonable, i’m not too greedy). when i recently got an upgrade from my “old” thinkpad x60 to a fairly new x200 with an intel GM45 inside, i was really looking forward to it improved graphics performance1. after a bit of research it seemed that only the latest kubuntu 08.10 would fully support the graphics card.

so, after downloading the ISO image of the kubuntu 08.10 alternate boot CD2 i installed it on the new x200 — after about 30min or so i had the base system installed and was ready to copy in my backed up home, project and source directories. a first glance and apt-get update; apt-get upgrade revealed: KDE4.1 was running. interesting…

…and it quickly transpired: KDE4.1, while all glamorous and flashy (lots of blink here, there, and there, there, and there) was not really on par with the powerful and versatile workhorse KDE 3.5, not at all:

  • no desktop icons
  • thinkpad keys (fn-f4 et al) not really working (fn returns XF86WakeUp for some strange reason)
  • trying to change screen setup via system settings was a complete failure: user interface utterly confusing and apparently itself confused about the available displays (i was just trying to enable the 1600×1200 TFT and place it “next” to the x200’s LCD)
  • trying to accomplish the desired display configuration via xrandr resulted in a nice and ugly crash of kwin

hmm…okaayyy. perhaps we can live with this as the intel 5100/5300 WLAN interface is working nicely…well, kind of: knetwork manager really didn’t like our company internal WLAN setup and just ignored it. not good. but then, nothing to really blame on kubuntu 08.10: knetwork manager never liked our WLAN, not in kubuntu 08.04 nor in kubuntu 07.04 — googling around once more for a possible replacement i stumble over wicd.

wicd turns out to be quite flexible and we can even add authentication schemes — it’s rather simple to add support for our internal WLAN.

next, i check whether on the secondlife client: it somehow seems a bit sluggish…well, sluggish seems to be a bit of and understatement: it’s downright jerky. running glxgears it turns out that i’m getting about 300fps — just 300fps! ouch. very ouch. turns out (k)ubuntu 8.10 has a problem with intel based GPUs.

the suggested workarounds just don’t cut it and actually result in a very unstable system: enabling the external monitor still crashes kwin; running the secondlife client sometimes works, sometimes it crashes the X server, sometimes it just causes a frozen system; suspending always kill the X server :-( — a final attempt at upgrading to KDE 4.2beta just results in keybindings not working across reboots. :-(

so, i decide to try running kubuntu 8.04.01 on the X200:

  • X performance: consistently over 1200fps, sweet :-)
  • intel 5100/5300 WLAN: not working at first, installing the drivers from the intel linux wireless at first works, but once i try a suspend i get an ugly kernel crash — worse: on booting it crashes as well

still, WLAN can be worked around by using a USB WLAN — so, i reboot, remove the WLAN driver from the system, apply a kernel update that just became available (2.6.26-23) and reboot…

…and am utterly and completely amazed when i call up wicd to connect to the office ethernet: apparently the latest kernel update brought with it support for the intel 5100/5300 :-)

so, the latest kubuntu 08.04.01 works like a charm on the x200.

  • kubuntu 08.10 on x200: keep away from it (in general even)
  • kubuntu 08.04.01 on X200: recommended.

  1. especially the fact that it could operate the large screen, 1600×1200 TFT display and still support openGL. 

  2. to have the installer encrypt all partitions. 

all content posted on these pages is an expression of my own mind. my employer is welcome to share these opinions but then again he might not want to.
December 19, 2008
filed around lunchtime by DrScofield in: from the grid, thinking...
technorati tags:
QR code for this entry · average time to read 2:44 minutes

i was just reading Mo Hax’s post “caveat creatores: second inventory?” and got tickled enough by what he wrote to start a reply — which got a bit long in the end, so i’m posting my thoughts here…

what got me tickled were the following sentences:

Full permissions or not, moving any content from SL outside of SL seems unethical and probably illegal. I was sure I would find a legal statement expressly forbidding the copying of content from SL into other systems, like OpenLife or any OpenSim grid. But after rereading the entire TOS and all the SI FAQ I could not find it.

[...]

Using Second Inventory might actually be hurting OpenSim development. SI is becoming something of a defacto content migration tool for use in OpenSim grids. There is no real system for content around OpenSim grids and when pressed SI consumers usually respond, “Well I don’t think there is anything wrong with it.”

There is something wrong with it. Second Inventory combines open source libraries (that do most of the heavy lifting) with its closed code and security encryption asking buyers to just trust its copyright policies, which, according to the FAQ are ‘coming soon’ and have already made LL leery. So while Second Inventory makes money for its closed and ethically questionable product, OpenSim misses the support, even pressure, to improve.

i think we have to distinguish two cases here:

  1. i create something entirely from scratch (my own textures, my own scripts, and so forht): according to the LL TOS i give LL a license to use what i upload/create (albeit a pretty broad license, agreed), but i still retain the IP

  2. i buy something with full copy permissions from a vendor in-LL-world, that is i acquire a license not the IP.

in the first case, i can do whatever i want to do with my content: i can take it with me to whatever place i want, i can sell it, i can give it away for free, i can do all of that at the same time since i own the copyright (which is the IP in this case).

with the latter case we do have a problem: what exactly is the license under which i obtained the content? what does it allow?

the answer: we don’t know for sure. did the content creator own all the rights to the content parts she used in making the content she sold to me? from a (perhaps naïve) user perspective all we have are the permissions.1 we assumed those were full copy permissions, so i can claim that i do have a license to copy the content in whatever way i want, including taking it with me to an OpenSim grid.

i can see that LL’s “permissions” system is basically a kindergarten version of a “license” system (it certainly is not a DRM system and was never intended to be that). it in no way addresses real “IP” licensing issues — and i seriously doubt that all of the content creators in SecondLife have thought about things like certificates of originality and about making sure that they do have the required licenses to actually sell (license) their content.

i argue that in the absence of a proper licensing system we cannot then complain about content being used in ways that we have not expected (i.e., full copy permission content being taken to other virtual world).

what i fail to see, however, is how this damages OpenSim. all it can do is give SecondInventory a bad name (perhaps deservedly, perhaps undeservedly) and it does point to (yet another) deficiency of SecondLife: no clear way of specifying licensing terms (how can you even express GPL licensing terms with the permissions system?).


  1. yes, as mo hax points out, the content creator might have included usage terms in the original package. in that case the buyer has the obligation to adhere to those terms, absolutely. i think we are debating the case where all we are left with are the permission setting in the object itself. 

all content posted on these pages is an expression of my own mind. my employer is welcome to share these opinions but then again he might not want to.
December 18, 2008
filed in the early evening by DrScofield in: hacking
technorati tags:
QR code for this entry · average time to read 1:24 minutes

while setting up a company internal trac wiki for a small project i wanted to include a link to a relevant youtube video and started looking for a YouTube trac macro — without finding one really.1 in typical top gear fashion i asked myself “how hard can it be” to write my own trac macro. turns out: not very.

so, here it is:

from datetime import datetime
# Note: since Trac 0.11, datetime objects are used internally

from genshi.builder import tag

from trac.util.datefmt import format_datetime, utc
from trac.wiki.macros import WikiMacroBase
from trac.util.html import Markup

import re

class YouTubeMacro(WikiMacroBase):
    '''Simple YouTube macro.

    Use as follows:

        [[YouTube(YOUTUBE-URL)]]
    '''

    revision = '0.2'
    url = 'http://xyzzyxyzzy.net'

    reYouTube = re.compile(r'http://.+/watch\?v=(?P&lt;id&gt;.+)$')

    def expand_macro(self, formatter, name, args):
        # parse: http://uk.youtube.com/watch?v=kJNDcurLP1w
        id = args
        match = YouTubeMacro.reYouTube.match(id)
        if match:
            id = match.group('id')

        return Markup('''&lt;div class=&quot;tracyoutube&quot;&gt;
   &lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;
       &lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/%(id)s&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;
       &lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;
       &lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;
       &lt;embed src=&quot;http://www.youtube.com/v/%(id)s&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot;
              allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;
   &lt;/object&gt;
&lt;/div&gt;''' % dict(id = id))

cook for 5min, stir constantly, download to your trac’s plugin directory as YouTube.py and enjoy.


  1. the MovieMacro plugin looked like a good way of doing it, but apparently you need to install a special, embedded, flash player which i had no success with… 

all content posted on these pages is an expression of my own mind. my employer is welcome to share these opinions but then again he might not want to.