Weblog

Wanted: Printed music of Joy Division

September 7th, 2009

Some weeks ago I became addicted to Joy Division’s music. :-)

Now I am searching for sheets containing printed versions of their songs. Unfortunately all I can find are songbooks with only one song from them. There is a fan page mentioning a dedicated Joy Division songbook but I was not able to find references to it on any other site.

I know that there are sites offering chord tabs. These things are nice for playing the songs on the guitar but are rather unsuitable for singing lessons. :-)

So, dear Lazyweb. If there is any way that you can help me, just drop me a line: robertschuster - at - fsfe.org.

Thank you!

Lawrence Lessig on Fair-Use

May 2nd, 2009

I think that fair use is an important concept of traditional copyright law. Lawrence Lessig (”Free Culture”, Creative Commons) is a firm advocate of the fair use principle. Lately he held a talk about it and because his presentation contained some footage of copyrighted works a recording of the talk was removed from YouTube. Luckily you can watch the video at Blip.TV as well. Well, yes it is only available in this ugly flash-player format but Gnash 0.8.5 (as in Debian GNU/Linux) plays it very nice (Kudos to Rob Savoye and all developers of gnash).

Since this is another case where traditional media wanted to intervene in the spreading of some knowledge I thought it would be a good idea to talk about this here.

There is a nice thing about this presentation: At the end Larry talks about some extremists that want to abolish or radically change copyright law. It is very clear that those extremists are all the people that stand firmly behind Copyleft licensing. Cool, I am extremist! ;-)

PhoneME for Jalimo - continued

August 1st, 2008

We all love it: Screenshot time!

 

This is PhoneME running on an N800 with the Chinook/Maemo 4.0/OS 2008 distribution. Since the differences between Maemo’s Chinook and Diablo distribution releases are minimal you should be able to use the same packages on both. More on that later.


And here we have the same app (= jalimo-swt-example) running on OpenMoko’s Freerunner.

Needless to say that startup and runtime performance of PhoneME simply rock: The small SWT-based UI appears within 4 to 5 seconds on both devices.

If you have any of the two devices (or an N810) you can now install the JVM through Jalimo’s repositories. Get them while they are hot. ;-)

PhoneME Advanced Foundation (with JIT) at Jalimo

July 31st, 2008

This was a big pile of work but now it is a nice achievement for Jalimo: The most complicated issues have been sorted out and we can now build Sun’s PhoneME Advanced (Foundation profile) with the JIT compiler enabled for all our little ARM devices (And not only we can do this but everyone because the recipes are in the repository).

The first device for which I could build the runtime was the BeagleBoard. You can see the full log of the first bits of CVM-goodness on that device here. What is important to note is that the JIT compiler is enabled:

CVM_JIT=true 

When compiling the source with the JIT the build gets a bit more complicated: Some Java programs will be compiled and run on certain sources. What  is nice that these helper programs actually run on a GNU Classpath-powered VM. See, this code is still does usefull things for us. :-)

Buglabs recently did a comparison of Cacao, JamVM and PhoneME Advanced (interpreted only) on ARM systems. Surprisingly (or not :-) ) JamVM does a very good job!

While we are at it: JamVM seems to be the only (free!) Java virtual machine that can run on the AVR32 architecture. The port is not yet included in the upstream repository but is nevertheless quite interesting: The guys doing the port are making use of the Java hardware acceleration (whose specification can be obtained freely).

Finally the other day I wrote down everything about the Java support in OpenEmbedded to the shiny new OE wiki. I hope that with this information people will quickly be able to customize their OE-based distribution. Furthermore the pages describe the quite complex bootstrap process and each of the packages that belongs to it.

Next stop: OpenJDK ;-)

breiPott: Free (as in Freedom) music party in Berlin

July 24th, 2008

Now this is cool!

Yesterday I learned about a club in my city that exclusivly plays CreativeCommons-licensed music. According to their website they also make sure that only those variants of the CC-licenses are used that free software people would identify as ‘free’ :-)

Tommorrow there will be a party where they celebrate the adaption of the latest CC-BY-SA (version 3.0) to the German jurisdiction. They use a CC-BY-SA licensed excerpt from OpenStreetMap on their flyer:

Damn, I find it so cool when people combine all those free as in freedom things! In my opinion this is exactly the goal we wanted to achieve with the free software movement and which many of its naysayers and opponents did not get. :-)

And while talking about OpenStreetMap. Here are two examples from OSM which shows that this effort has so much potentiality in being vastly superior than existing proprietary map data.

The first screenshot is from the area around the city train station Ostkreuz (some 500m from my home):

Noticed those crossed quads connected by grey lines which start in the west of the Lenbachplatz? Those are overhead power lines. So imagine if you want to move within Berlin and want to avoid living besides those, just scan the area with OSM first. :-)

The next example is from the Teufelsberg (a hill) which lies within the Grunewald forest:

Some really hard-working people (perhaps its just one who knows) have mapped all the footways in the forest surrounding the hill. If you look up the same spot on the proprietary Google Maps you will only see a large green area with no ways drawn in.

Well done OpenStreetMap!

Now imagine every place on the planet would have such incredible accuracy and you do not need to sign a contract with anyone to use that data in any way you want: This is what we mean with “free as in freedom”.

Invasion of the low power devices

July 13th, 2008

Thanks to TI and the drawing they did at LinuxTag 2008 I got a BeagleBoard Rev. B4. When the package arrived I started getting the necessary serial cable.

This board is unbelievable small. You get in a small box together with a mini USB cable:

 

And now on to my favorite: The OMAP3 on the board runs at 500 MHz. As you see it is not dangerous to put a finger on the running CPU :-)

Some other CPU manufacturers should better work on being as efficient as this one instead of wasting money with delusive marketing campaigns.

Despite there are not many Beagleboards in the wild the community around it is quite active. Without doubt Koen Kooi is ahead of everyone else: He is fixing kernel, gcc and mplayer problems altogether. Thanks to this work, people will have it a lot easier when the board can finally be bought in shops.

Jalimo on the Beagleboard is currently blocked by libtool 2.2 and/or GNU Classpath issues. I have a workaround but am waiting for answers from the libtool developers about a real solution.

She got me again

June 28th, 2008

Looking carefully at the posts from GNU Classpath members you realize that a lot of them play an instrument. Years ago I took (acoustic) guitar lessons but did not continue this after moving.

One thing that bothered me over the years is that when I heard a nice song and started finding out how the (guitar) melody is played either I was not skilled enough or it just does not sound good on the acoustic guitar.

Three weeks ago I put and end to this situation and decided to take guitar lessons again. This time I will learn to play the electric guitar which I think is the instrument I like more. I am a big fan of indie rock and brit pop music. Listening to Johnossi and the Blood Red Shoes as well as visiting the Immergut festival (where both bands played) certainly had a great impact on my latest decision.

Just one note: If deep in your mind the idea that one day you start learning to play an instrument is buried, do not wait any longer and start learning today! I think the worst thing that can happen is that you realize that you have a little bit of talent since this means you wasted time and could have started earlier …

After a week of practicing the pick I got with OpenMoko’s Neo1973 broke :-)

Will try harder!

Offline days, online days

June 28th, 2008

Last week was critical. Due to some problems with our Freifunk mesh network I was offline for some days. Well, not really offline. If I urgently needed Internet connection I had to take my girlfriend’s laptop (mine is still unable to deal with ad-hoc mode), walk to the Traveplatz park and start the OLSR daemon. Still this does not really help updating the various SVN, Mercurial and Monotone repositories on my desktop computer. :-)

On the other hand I worked on the JIT Cache which is thanks to Twisti and Andreas Krall, now my diploma thesis topic. I wanted to fix the issues it had before LinuxTag and was successfull doing so: The JIT Cache is now working on ARM!

What massively helped me achieving this goal was the good old GNU Debugger. It cannot tell you when you forgot to flush the system’s instruction and data caches (this was the final issue) but for everything else GDB was just great. Being an (x86) assembler addict in my young years I really enjoyed single stepping through JIT compiled code and watching the codegenerator emiting machine instructions.

I find it interesting to see how working on the Cacao virtual machine brings two of my otherwise quite unrelated interests together: Namely playing around with assembler stuff and working with a high-level programming language like Java. :-)

On related news: I committed MIDPath 0.3RC1 recipes to OpenEmbedded. These provide a fully configured and correctly set up installation of MIDPath. That means if your repo contains the binaries (I hope OpenMoko adopts those quickly) you just need to tell your package manager to install ‘midpath’ and that will install all of the mandatory packages and provides a suitable configuration (screen size, button mapping, GUI/sound provider, …) that lets you start MIDlets right through MIDPath’s SuiteManager.

Hint: Install ‘midpath-demos’ instead and you get everything from above plus a bunch of demo midlets to try out the platform.

MIDPath 0.3RC1 still has some rough edges but it is definitely maturing well. I hope that with the recipes more people will get to know about it.

OpenMoko FreeRunner entered mass production

June 6th, 2008

Yeah, its true. The OpenMoko gals & guys finally fixed manufacturing issues and the first free (as in Freedom) mobile phone hardware is produced as you read this sentence. Great isn’t it?

Just in time for this I finished the first bit of work to get PhoneME Advanced compiled in OpenEmbedded. This means that soon no one wanting that runtime on their device needs to fumble with its intimidating build system. It will not be possible to provide recipes which allow setting all the countless configuration options but I will write the recipes in a way that you can easily derive the variant you want on your hardware.

If you look at the building instructions for PhoneME you will see that they contain a lot of annoying steps: Getting a GNU toolchain, patch some header files, set configuration options, point variables to a bunch of tools (javac, java, javah and so on). In contrast if you have a working OpenEmbedded environment all you need to do is enter:

bitbake phoneme-advanced-foundation

and this will not only give you that unhandy ZIP file the built produces. No, you get a package of any flavour (IPK, DEB and RPM) plus another one containing the unstripped ‘cvm’ executable. Sweet isn’t it?

Here kind of a proof that I really got this working (on OpenMoko Freerunner):

root@om-gta02:~# java-cdc -versionProduct: phoneME Advanced (phoneme_advanced_mr2-b73)Profile: Foundation Profile Specification 1.1JVM: CVM phoneme_advanced_mr2-b73 (interpreter loop)

BeanShell (I still like it!) runs out of the box:

java-cdc -cp bsh.jar bsh.InterpreterBeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net)bsh % print(System.getProperties());{java.library.builtin.net=yes,sun.boot.library.path=/usr/lib/jvm/phoneme-advanced-foundation/lib,java.vm.version=phoneme_advanced_mr2-b73,java.vm.vendor=Sun Microsystems Inc.,java.vendor.url=http://java.sun.com/,path.separator=:,java.vm.name=CVM,file.encoding.pkg=sun.io,java.vm.specification.name=Java Virtual Machine Specification,user.dir=/home/root,os.arch=armv4tl,microedition.encoding=ISO-8859-1,java.io.tmpdir=/tmp, line.separator=,java.vm.specification.vendor=Sun Microsystems Inc.,microedition.profiles=,java.awt.fonts=,os.name=Linux,java.library.builtin.zip=yes,java.library.path=/usr/lib/jvm/phoneme-advanced-foundation/lib,microedition.platform=j2me,java.specification.name=Foundation Profile Specification,java.class.version=47.0,sun.misc.product=phoneME Advanced,os.version=2.6.24,user.home=/home/root,user.timezone=,file.encoding=ISO8859_1,java.specification.version=1.1,java.class.path=bsh.jar,microedition.locale=en_US, user.name=root,java.vm.specification.version=1.0,java.home=/usr/lib/jvm/phoneme-advanced-foundation,user.language=en,java.specification.vendor=Sun Microsystems Inc.,java.vm.info=interpreter loop,java.version=phoneme_advanced_mr2-b73,java.ext.dirs=,sun.boot.class.path=/usr/lib/jvm/phoneme-advanced-foundation/lib/foundation.jar,java.library.builtin.math=yes, microedition.commports=/dev/ttyS0,java.vendor=Sun Microsystems Inc.,file.separator=/,microedition.configuration=CLDC-1.1,sun.io.unicode.encoding=UnicodeLittle,sun.cpu.endian=little,user.region=US,sun.cpu.isalist=}

It is running interpreted only and with the most basic class library (”foundation” profile) but still it is a start.

Fixing problems and working around them

June 6th, 2008

Like Roman I am very happy about where Wine is heading and welcome what I call the best Windows (implementation) ever. :-) I am wondering however how Wine will cope with the inherent disease that the proprietary software is suffering from: What I mean are API or even driver level workarounds for badly programmed software. Some weeks ago someone posted a mail to the Wine mailinglist where it is stated that the proprietary nvidia and ATI graphics drivers contain blacklists and workarounds for known application problems.

Granted, the free software world has its own black sheeps but I consider the situation in the proprietary world much more sick and I am happy to not have something to do with this. :-)

I am really more happy to work on stuff like GNU Classpath of which version 0.97.2 has just been released. This bugfix release contains among other remarkable things a patch that makes gjar and gjavah accept file arguments with a prepended @ sign. This undocumented behavior of the tools from OpenJDK makes it possible to build OpenJDK and PhoneME Advanced using the our tools.

Yay, another problem solved and not worked around! :-D