Mittwoch, 31. Dezember 2008

FUD and intellectual property 2009

"FUD", short for "Fear, Uncertainty, Doubt", is an acronym which is used to describe the practice of instilling exactly those feelings in customers or potential customers, by convincing them that a competitor's marketplace offering has flaws, defects, shortcomings etc. Nowhere has the acronym been as widely used as in the market for computer software - a market which has only recently come to acknowledge that international standards for things such as file formats is actually a good thing and provides more benefits to customers than the arcane "vendor lock in" practiced hitherto.

If we examine the market for computer software more closely, we can also see that much of the FUD has concentrated not only on shortcomings and flaws of the competitor's software itself, but also on instilling fear in the customer that the rival's product infringes on "intellectual property rights" - or better still, "may not respect intellectual property rights of third parties". Now, that's a bit of a mouthful and it isn't immediately clear what is meant by this statement. Nor is it meant to be clear what is meant. Let me use a little anecdote to try to convey the nonsensical mashup of concepts which is "intellectual property".

Sport is a fairly broad concept - Wictionary defines sport as "[a]ny athletic activity that uses physical skills, often competitive." Anyone remotely familiar with sport will know of football, basketball, baseball, rugby and probably many more. All of these individual games are collectively referred to as "sport/s". I am now going to use an analogy which is probably flawed in many respects, but nonetheless should serve to illustrate why the concept of "intellectual property rights" simply does not make sense.

Imagine a local basketball team has the "exclusive right" to play basketball in a local sports hall. This local basketball team therefore has the right to determine who they play against and when - more importantly, this basketball team has the right to exclude other basketball teams from playing in their sports hall. This is a fairly logical application of the concept of "property" - the "owner" has the right to exclude others (and also to allow others access, as well as to determine the conditions of access). Currently, nobody is complaining. The basketball team is doing nothing out of the ordinary.

Now imagine that there are other sports club in the locality. There is a football club, a baseball club and a swimming club. Each of these games fits under the collective term "sport", yet nobody would compare swimming with football except to state that both involve a degree of physical activity.

On a certain day, a number of families with children move into the locality. Each local club would love the families to sign up for membership. The manager of the local basketball team sends a letter to each of the families in which he states that the basketball club has "sports rights" in the locality, which may be infringed upon by the other clubs. Each family should thus only obtain membership of the basketball club - as you never know when the basketball club would "feel forced to defend its sports rights". This might be enough to instill enough FUD in a family to actually only sign up for the basketball club. On the other hand, it might also be enough to enrage one of the other clubs to write to the basketball club manager to ask him to specify what exactly he means with "sports rights" and to please state how he believes the other clubs to be infringing upon them.

It is probably already obvious, that the tactics of the basketball club manager will only work as long as the family who receives the letter actually believes the FUD. As soon as the basketball club is asked to put cards on the table and actually state for once and for all what these so-called "sports rights" are, any family would be able to judge for themselves, whether or not the "sports rights" were of any substance. Thus, from an objective standpoint, once these "sports rights" are actually in plain view for everyone to see, the "U" and "D" evaporate from FUD. Maybe even the "F", depending on how the "sports rights" are viewed. This is why it may be more profitable for the basketball club to obscure what property rights it actually has to the greatest extent possible, in order to scare as many of the new families as possible into only joining the basketball club.

So what property rights could conceivably be masked by the phrase "sports rights"? To take the analogy a little further, imagine that the basketball club has applied for and received exclusive rights to
  • a new method of connecting an air valve to a rubber ball allowing for much higher interior air pressure and better longevity
  • scoring a point by passing a spherical object through a predefined space
It may be obvious that neither of the above rights is actually limited in scope to basketball - both claims have been deliberately broadened to apply to as many different fields as possible. It is easily conceivable that the first of the above rights would apply to any sport using an inflatable ball. The second is broad enough to encompass pretty much any ball game where a score is made by shooting a ball through a hoop or goal.

Now imagine the locality is called "The Shire" and the traditional colours of "The Shire" are red and white. The basketball team also claims the right to the name "The Shire" and to the traditional colours as its sporting attire. To do otherwise would only cause confusion, the basketball team maintains.

Thus, we can now see the potential property rights which are hidden behind the phrase "sports rights" - we have two claims which are in some way related to sports in general and one claim which is related to the "dress" of the basketball team. To come full circle, the initial two claims could be seen as patent claims and the latter "sporting attire" issue could be seen as a trademark/trade dress issue. Patent law and trademark law are two unique bodies of law which do not have many similarities. Patent law and trademark law are also often lumped together with copyright law and are referred to as "intellectual property rights" in the same manner as the rights in the analogy are lumped together by the basketball team to form "sports rights". The point behind all of this? The basketball team seeks to cause Fear, Uncertainty and Doubt ("FUD") and to gain a competitive advantage from this.

Many people have already made it quite clear that the phrase "intellectual property" is way too broad and shouldn't be used as it lumps together bodies of law which should not be lumped together. RMS is probably the most foremost of these. For 2009, I, for one, will certainly be reducing my use of the phrase - hopefully to zero. More importantly, I will also make an effort to try to explain to others why the phrase is problematic and try to get them to be more precise about what it is they are trying to convey when they use the phrase. Oh, and by the way, I have nothing against basketball!

Dienstag, 30. Dezember 2008

jexec is evil

For the last week I had a number of really, really annoying problems with openSUSE 11.1 - ones which had me wondering why there weren't more bug reports, blog postings, rants etc. The most prominent of these problems were:
  • jexec service causing boot process to hang every so often
  • NetworkManager not started automatically - rcnetwork start necessary
  • not possible to mount usb sticks (even mount hangs indefinitely)
  • unmounting fuse during shutdown takes way too long
After some reading on the issue, I stumbled on this post in the openSUSE forum. After a lot of talk about HAL rules etc, the suggestion was made to disable jexec in the YaST runlevel editor. Once I disabled jexec and java.binfmt_misc and rebooted the system, all of the above problems disappeared.

For anyone wondering what it is about jexec that makes it such a fundamental system component, check out this issue on Sun's website. I can definitely do without it.

Freitag, 19. Dezember 2008

Freitag, 12. Dezember 2008

openSUSE 11.1 coming on December 18th



Get ready for it! Click on the image above to go straight to the openSUSE 11.1 landing page and learn about the cool new features.

My favourite feature? I don't know if you can call it a single feature, but a properly working KDE4 desktop is definitely a big plus for openSUSE 11.1. Working with KDE4 is really easy and quite natural.

Now, I am by no means a big fan of OpenOffice, but the version being delivered with openSUSE 11.1 is easier to use than any of the predecessors.

So point your browser to http://download.opensuse.org on the 18th and get your copy from your local mirror. Or, splash out and buy the box.

Montag, 8. Dezember 2008

Change the file browser in firefox

I didn't realise that so many people did not know how to change the default file browser in firefox. Admittedly, I had to do an amount of searching to find out how to do it as well. To prevent me from forgetting how to do it, I'm going to post it here.

  1. enter about:config in the URL bar
  2. enter platform in the search bar of the about:config page
  3. The only available result should be ui.allow_platform_file_picker
  4. Change the value of ui.allow_platform_file_picker to False
  5. Enjoy KDE file browsing if you are on KDE. No more sucky Gnome file picker
Update: on openSUSE 11.3 I just tried this and I found that the value for ui.allow_platform_file_picker was already False. Firefox was also using its own sucky file browser (or Gnome's). So what I did was change the value to True and it worked - I now have KDE's file browser. So just toggle the value and see if it works for you...

    Donnerstag, 4. Dezember 2008

    HTMLCalendar and HTMLTemplates fresh off the openSUSE Build Service

    Have you ever wanted to display a calendar on your webpage and seen how complicated this can be? Well, you probably missed HTMLCalendar, then. HTMLCalendar makes it extremely easy to just roll a simple HTML calendar without any overhead. You can even add events on certain days and link these to other pages.

    With this in mind, I decided to build packages for openSUSE to make it even easier to install the package. So, if you're on openSUSE, (make sure you have the devel:languages:python repository registered with zypper - but this goes without saying), just run a:
    zypper in python-htmlcalendar

    and you should be good to go.

    Once you've got the packages installed (python-htmlcalendar automatically pulls in python-htmltemplate which is required), try writing a small python script. Mine's called testcal.py:

    #!/usr/bin/python
    import HTMLCalendar

    month = 12
    year = 2008
    links = {1:'#day1', 2:'#day2', 3:'#day3', 12:'#day12', 27:'#day27'}

    print HTMLCalendar.MonthCal().render(year, month, links)


    Then call the script like this:
    python testcal.py > calendar.html

    Once you're done, call up calendar.html with your browser of choice and voila - there's your calendar. Now I have to go and read the documentation to see what cool options are supported. I'm thinking along the lines of CSS formatting, colours etc.

    Maybe it's even possible to combine some images with the outputted HTML so as to create a 12 month calendar with a picture for every month. This could then by exported to PDF for printing.

    Samstag, 4. Oktober 2008

    Getting rpm header information with python

    Once you have rpm-python installed (a quick zypper -i rpm-python does the trick on openSUSE), fire up a python console. The assumption is, that there is a rpm file in /tmp/mypackage.rpm. Import the module:
    import rpm
    Now try this:

    ts = rpm.ts()
    fdno = os.open("/tmp/mypackage.rpm", os.O_RDONLY)
    hdr = ts.hdrFromFdno(fdno)
    hdr is a dictionary containing all the header information in the rpm. Some typical values which you might want to get might be:
    print hdr['name'], hdr['version'], hdr['license']

    If these header values exist, you would get something like:
    mypackage 0.1 GPLv2 or later
    One thing which might jump up to bite is if the gpg key with which the rpm was signed is not available. Now, I'm ususally unterwegs with openSUSE, so obviously I have the SUSE Linux Products GmbH key installed. If you need to query rpms from another system, you might have to import the key (once you've downloaded it) with something like rpm --import key.txt. Otherwise you might get an error like:

    warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 37017186
    public key not available
    Error with rpm : public key not available

    Mittwoch, 24. September 2008

    Python via bluetooth console with Nokia S60 and openSUSE 11.0

    If you have a Nokia S60 smartphone, you can install python on it and mess about with it. There is quite a bit of documentation on the Nokia developers site on this and there are lots of applications already hosted on the python for S60 wiki. What I found was lacking, was a good description of how to get a bluetooth console set up so that you can type commands on your linux pc and have them executed on the phone and the results displayed on the PC (quasi ssh-like). The official wiki has a howto at http://wiki.opensource.nokia.com/projects/PyS60_Bluetooth_console but even that seems to lack self-confidence and points to a 'better description' at http://crschmidt.net/blog/11/bluetooth-console/ (it really is better).

    After trying out a number of tools and making tonnes of mistakes, here's what I did to finally get it working on openSUSE 11.0 (make sure that hcitool, sdptool, rfcomm, screen are installed - and I take it for granted that you have already installed and setup python on the phone itself - if not, go to http://sourceforge.net/projects/pys60/ )

    • hciconfig reset
    • hcitool dev
    • sdptool add --channel=2 SP
    • rfcomm listen rfcomm2 2
    The last command Waiting for connection on channel 2
    should output something like:
    Waiting for connection on channel 2
    Now open python on the phone. One of the options from the start 'options' is 'bluetooth console'. Choose the bluetooth console and follow the instructions (it will basically only ask you to select the bluetooth connection to use - typically your PC/Laptop. You can save the choice as 'default' if you like.) Once this is done, in the console where you typed the last command (rfcomm listen rfcomm2 2), you should now see:
    Connection from 00:14:A7:8B:6A:A0 to /dev/rfcomm2
    Press CTRL-C for hangup
    Now open up another console and type:
    screen /dev/rfcomm2
    If everything went right, you should now have a python console. This python console is actually running on your phone - anything you type in will be executed on the phone. This makes developing python for Nokia S60 a cinch.

    Montag, 22. September 2008

    SGI FreeB and FLOSS

    The FSF published a news flash about SGI's update to their FreeB license, to version 2.0. Whereas the FSF were aware of the issue since January 2008, our team here at Novell had pinpointed this issue numerous times back as far as 2005. The FSF wrote:
    In January of 2008, software code at the heart of GNU/Linux 3D applications was discovered to be non-free—a potential disaster for free software advocates hoping to see advanced graphical acceleration now common on modern operating systems.
    The new version of the license is in the style of the MIT license - one of the most liberal licenses available. As such, SGI has made their contributions to projects GPL compatible (the X11/MIT license is compatible with every version of the GPL). This is definitely good news. Thanks to SGI.

    Montag, 8. September 2008

    Gwenview for KDE4 is really impressive

    Up until today, I wasn't too impressed with the KDE's image viewers. Sure there are apps like digikam which serve as a kind of swiss army knife for messing abaht wiv photos. Then there was gwenview (which doesn't even have an obligatory k in the name and always runs the risk of being sorted in with the gnome apps). Gwenview under KDE3 was a bit of a strange beast. I could never really get the hang of it, but in the absence of anything else, used it to quickly open images.

    Today I messed about with the KDE4 version of Gwenview. Wicked!!!! They've thought up some really cool and really innovative stuff. Maybe nothing absolutely groundbreaking, but I found the user interface really self explanatory and best of all, it doesn't get in my way like so many other apps. Really well done to the Gwenview team!

    Sonntag, 24. August 2008

    Search and destroy zombies

    Apart from being able to see that there are zombies on a system, using the top command, you want to be able to kill zem all. I was wondering if there was a quick way of doing this and happened 'pon a post on the subject on linux forums. This command should search 'em:
    /bin/ps ax -eostate,pid,ppid --sort=state 2>/dev/null | grep ^Z

    In my case this turned up two processes. One was a shared library which seemed to have run amuck and the other was firefox. You don't want that a fat zombie hog running about your system, so a quick kill -9 fried firefox and the shared library in one fell swoop. Not bad. There are probably twenty thousand ways of kicking zombie ass, but this WORKSFORME.