Saturday, January 20, 2007

LCA 2007 My Day 3

Yesterday was the last day of linux conf au. As usual it was the mad rush from work to get to my first session, at least this time I wasn't late. The session was Robert McQueen's "Telepathy - Unifying IM, Voice and Video Communications". This was very interesting and after seeing the video demo using a Nokia N800, apart from wanting one, I will be keeping an eye of this project.

The next was Andre Pang's "Erlang and Concurrency" talk. Andre is an excellent and entertaining speaker. This talk investigated everyone's dislike or fear of threading, and then explained the advantages of Erlang's message passing distributed model. Every year I try to learn a new language, maybe it will be Erlang this year or maybe I should just look at Stackless Python.

After lunch, it was Rob Collins, Erik de Castro Lopo, and Peter Miller's "Do it our way" presentation. After attending their tutorial on Thursday, I was looking forward to this talk to hear about the other testing patterns they feel we should be using. Learnt a little bit more and looking forward to the release of the paper. They also intend to create a website to allow sharing of these testing patterns.

The last session I attended was Valerie Henson's "Choosing and Tuning Linux File Systems". Picked up a couple of interesting things, but the main take home of the talk was "use ext3 unless you know you need something else".

The day for me ended with the closing ceremony. Two of the conference attendee's went home with a olpc after being selected based on their submissions for a olpc software project proposal. Others who submitted a proposal were told not too cry as it was likely that a olpc was coming there way as well. I intend to have a play with the olpc emulation soon.

Thanks to the 7 team for a great conference and to all those who took the time to discuss OSS stuff with me.

IronPython and Traceback line numbers in Mono (workaround)

One of the reasons why I need to have access to a Windows dev environment when doing my IronPython/Mono development is the lack of line numbers in IronPython tracebacks under Mono. But via Seo Sanghyeon comes a workround. He has discovered that that Mono can't display line numbers from AssemblyBuilder built in memory, but only from Assembly loaded from disk. So you need run mono in debug mode and get IronPython to compile and save the assemblies to disk. So if we have a buggy script like:

a = 1
b = 0
c = a/b

Prior to the workround the traceback would have been:

Traceback (most recent call last):
File foo, line unknown, in Initialize
ZeroDivisionError: Division by zero

But if I start IronPython using:

mono --debug ipy.exe -X:SaveAssemblies

you get a more helpful traceback

Traceback (most recent call last):
File /u1/ip/IPCE/IPCE-svn/Lib/, line 33, in Initialize
File /u1/ip/IPCE/IPCE-svn/Lib/fepy/, line 7, in install
File /u1/ip/IPCE/IPCE-svn/Lib/fepy/, line 11, in install_option
File /u1/ip/IPCE/IPCE-svn/Lib/fepy/, line 17, in Initialize
SystemError: Object reference not set to an instance of an object
Traceback (most recent call last):
File /tmp/, line 3, in Initialize
ZeroDivisionError: Division by zero

Thanks again Sangyheon.

Thursday, January 18, 2007

LCA 2007 My Day 2

Today was day 4 of linux conf au, and my second day of attendance.

My first session today was Peter Miller, Erik de Castro Lopo, and Robert Collins tutorial "The Hao of testing". Since I have been to work before heading to the conference, I arrived at the tutorial a couple of minutes late to discover there had been homework. So a mad rush to get connected, gmp downloaded and built. Then I needed to write a unit test for C program, yuk, I was beginning to question my decision to attend. But once I started listening to what they had to say, I got over my initial horror and enjoyed the talk for it's lessions. And the last part of the tutorial was actually unit testing part of a python application. Looking forward to their session tomorrow where they will present a paper on what was discussed today and alot more.

After lunch I went to Malcolm Tredinnick's "Building Websites with Django" tutorial. Since I already have used Django, I attended this tutorial to see how non users picked up the framework and maybe learning some news things. Malcolm warned us that he was presenting something that normally took 3 hours but would try to condense it into the 1.5 hour timeslot. I feel he spent too much time explaining where Django came from and what people had done with it, rather than showing how to use the framework. There was no actual "Wow" factor until half way thru the session, but by then a third of the attendee's had left for other sessions. The last half of the tutorial was much better and I did learn a couple of new things. The slides and the example app for the tutorial can be found here.

The last session for my day was Ralph Giles "Screencasting Howto" tutorial. The aim of the tutorial was for all of us to have created a screencast and have it peer reviewed. Only a few of us managed to achieve this due to issues with getting the various tools working but there a good interaction between the attendee's and I learnt alot. One of the tools we used was Istanbul, a desktop session recorder for the Free Desktop which is written in Python and uses GStreamer. It's a little buggy and many of us didn't have much success until we dropped the recording frame rate to 1 fps.

Many of the sessions have been videoed by the LCA team and can be accessed from the Programme web page.

It was also the conference open day but I didn't get to see much as it was well attended (read as overcrowded), but this can only be good for OSS community.

Wednesday, January 17, 2007

LCA 2007 My Day 1

Today was day 3 of linux conf au, but it was the first day I attended and only got there just before 2pm. As I wanted to hear Michael Carden's talk on Digital Preservation, I headed to the lecture room where it was scheduled. As I was one session early, I listened to Rafael Espindola's talk - The ARM backend of LLVM.

Then it was Michael's talk - Digital Preservation - The National Archives of Australia, Open Standards and Open Source. He is a very entertaining speaker and gave a great overview of what they have developed at NAA. It was interesting to discover the actual physical setup of the NAA digital archive is 3 separate systems:
  • Quarantine - where the digital objects submitted are virius scanned, then stored for 28 days and scanned again.
  • Preservation - where the digital objects media type is identified, then object is preserved as the original is base 64 encoded with metadata and as an open document format with metadata. This is all done by Xena.
  • Digitial Archive - actually 2 systems, one running Windows Server OS and the other running Linux. Each system is connected to a RAID arrays from different vendors.
The most interesting thing about the physical setup is there is no network connection to the outside world and each system is protected by an "Air Gap Firewall". In other words, all data transfer between the system is via a data carrying device (USB Portable Disk Drive). I know it sounds strange but the reasons Michael gave were valid.

The final session I attended was Stewart Smith's - eat my data: how everybody gets file IO wrong
Again a very entertaining speaker, and there was alot of attendee participation. The gist of the talk was never assume the data you have just written has made it to the platter. The various issues were explained and solutions given. Maybe I should start using the XFS filesystem.

So looking forward to tomorrow.

Monday, January 15, 2007

Need to find time for LCA 2007

Linux conf 2007 is on this week and I have paid to attend. The only problem will be finding time to go, otherwise it will be the most expensive t-shirt I have ever purchased. The urge to attend LCA was induced while attending OSDC 2006 and meeting a number of interesting people who are speaking at LCA. So hopefully will be able to attend:

Digital Preservation - The National Archives of Australia, Open Standards and Open Source

Eat my data: how everybody gets file IO wrong

The Hao of testing

Concurrency and Erlang

Do it our way