Mono Hackweek Summary

by Miguel de Icaza

Some of the Mono folks have blogged about their work for last week hack-week:

Paolo and Zoltan rearchitected the Regular expression library in Mono and got a 9x performance improvement in regular expression matching. The work had two components: redesign of the opcodes in the regular expression engine, and generating native code using Reflection.Emit. At least for the Language Shootout case, the new regular expression code is the second best (Tcl is faster, but apparently Tcl does not cope with Unicode regexes).

Wade worked on MythTV under XGL and making Tomboy Scale.

Andrew added Zeroconf/Bonjour support to Giver (a tool used to easily share files with friends or nearby users). And he also worked on Tasky a simple task management tool that integrates with Remember the Milk. He also wrote a command line tool to remotely control Tomboy. screencast.

Mike added support to importing data to his Exert Project (fitness/workout log software) that he started last Hack Week.

Sebastien revamped and added various new rules to Gendarme, our analyzer for CLI assemblies to spot errors and common programming mistakes.

He also improved its APIs and performance. He also started to fix some bugs in our class libraries based on the analysis done by Gendarme.

Jonathan ported his XMPP/VB.NET client to Mono:

And also got MonoDevelop running natively on Windows:

Jonathan Pryor spent the week polishing various loose ends. Including the release of his fantastic NDesk.GetOptions command-line parsing library and providing documentation to various components in Mono.

Atsushi worked on the implementation of WebHttpBinding (part of 3.5 WCF) and various other parts. See his blog for details.

Mark polished his MathMap composer tool.

Marek did some work towards replacing System.Reflection.Emit with Cecil. After some discussion we believe we can keep both backends, one to keep things as usual, and another to be used with MonoDevelop (so MCS provides the actual parsing for the editor intellisense and compile-as-you-type support).

Jackson worked on a couple of interesting demonstrations with Aaron, which hopefully they will be able to demo soon.

Carlos spent his time improving System.IO.Serial, there were a handful of events not implemented that he worked on.

Andreia and Marek worked on a Gtk# native client for Bugzilla.

Stephane created a new Gtk.Print/Cairo dialog for F-Spot and worked on support for TimeZones in F-Spot (code has not been commited yet).

Everaldo worked on packaging Mono for Maemo4. He has promised a number of blog posts detailing the work on GarMono, and the new packages that will be included on it.

Rolf continued to replace SRE with Cecil in the VB.NET compiler.

Lluis worked on improving Mono.Addins and creating an add-in for authoring add-ins in MonoDevelop.

Paolo early on also extended C# to allow inline-IL assembly language code (similar to __asm__ in C or C++ in some compilers). See the blog post for the various samples of C# with embedded IL.

Chris worked on a scheme compiler.

Jeff learned more about Regular Expressions than he wanted to. Update: Jeff wrote an add-in for MonoDevelop to do Evolution plugins in C#.

Update: I had not finished reading all the status reports on the mailing list. Dick Porter wrote bluetooth support for F-Spot. There is a bug in the system underlying bluetooth C libraries that prevents it from working correctly out of the box, but hopefully that will get fixed.

Update: Mike Krueger improved extensively the search functionality in MonoDevelop, it now implements Emacs/Mozilla-like searching and he also wrote an assembly browser/decompiler that is plugged right into the solution browser.

As for me, I spent the week going insane over the incredibly frustrating T61p problems with performance. Inspired by Marek's encouragement to learn LINQ and functional-style programming, I started a project that I abandoned quickly to implement a managed spreadsheet.

At least I learned two lessons: am more comfortable writing tokenizers using the regular call-back system than the automatically generated state machine from generators. I also learned that OOXML is very easy to parse, but it would be nice for PDF files to have hyperlinks in the spec.

I am probably missing a few things, but I did not catch all the blog posts this week.

Posted on 23 Feb 2008

Game Developer's Conference

by Miguel de Icaza

Some of us in the Mono team are in San Francisco for the Game Developers Conference at the Moscone Center.

For more details see Joseph's post Mono at the Game Developers Conference.

Posted on 20 Feb 2008

Politics as Theater

by Miguel de Icaza

My friend Jon Perr (he was Ximian's Marketing VP) did a fun presentation at Ignite Portland.

The presentation uses an unusual format: you talk for 5 minutes, and 20 slides are displayed, each for 15 seconds (they advance automatically).

Watch his presentation here. The slides contain more data than the 15 seconds allowed, so you can read that here (also check the notes).

Posted on 18 Feb 2008

ThinkPad T61P Speed Problems

by Miguel de Icaza

I recently upgraded to a ThinkPad T61p. I did not reinstally my OS, but instead just moved the old hard drive into the new machine.

The new machine is supposed to run at 2.4Ghz when plugged to the AC power, but it keeps going down to 1.2Ghz when am trying to get some work done (start a build: cpu speed goes down; Start firefox, cpu speed goes down). When am idling, the CPU speed will happily go back to 2.4Ghz. It can get as bad as 800Mhz, and in fact, it tends to boot in that mode at 800Mhz so booting takes forever.

The machine is cool, unlike the last laptop it does not feel warm at all (perhaps because it never performs better than a PC/XT).

I have Googled and Googled and various people seem to be having this problem across some other machines and Linux distributions, but there does not seem to be any solution posted. This is also not a new problem.

gnome-power-manager shows that the speed policy is "Always Maximum Speed":

This is what cpufreq-info shows:

I have tried:

  • powersave -f, it sometimes makes the machine go to 2.4Ghz, but it will happily go back to 1.2 a few seconds later.
  • Setting the minimal frequency in /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq by writing 2401000 to it. This sometimes works, but sometimes I get:
    		root# echo 2401000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 
    		sh: echo: write error: Invalid argument
  • Calling: cpufreq-set -c 0 -d 2401000 -u 2401000 -g userspace this again works sometimes but when the CPU insists on sticking to 1.2Ghz it will just produce an error.
  • Variants on cpufreq-set's governor: I tried userspace, and performance. They both seem to fail sometimes, and work sometimes. When they work, the processor speeds only stays for a few seconds before it goes back to slow speed.
  • Tried disabling the speed stepping support in the BIOS. Although /proc/cpuinfo then reports that the CPU is running at 2.4Ghz, regular benchmark programs show that the machine is actually running at 1.2Ghz (building mcs goes from 2.7 seconds to 4.7).
  • Tried killing powesaved, gnome-power-manager to make sure they wre not interfering, they still do not work.

If you got some ideas, drop me an email, I will post any solutions

Posted on 13 Feb 2008

Updated Mono VM

by Miguel de Icaza

Joseph blogs about our updated Mono VM. This new release is based on OpenSUSE 10.3 (instead of what we had been using which was based on 10.2).

It includes various new .NET and Mono applications that we had not shipped before (and that you can find the Mono:Community section of the Build Service).

Posted on 07 Feb 2008

MonoDevelop goes to MacOS X

by Miguel de Icaza

We have released an updated Mono 1.2.6 package for MacOS X that contains Imendio's Native Gtk+ for OSX, Gtk# and MonoDevelop with Mac support. It is now available from our downloads page.

MonoDevelop on OSX.

MonoDevelop has pretty much the same feature parity than Linux does. There are a few missing features that we hope to resolve in the future, and there is plenty of room to improve.

Our recent efforts to better support the OSX stem from our belief that some Windows expats will want to continue building .NET applications using the Mac. And once they have updated their applications to run on the Mac, the code will run just as well on Linux.

Also, we believe that Unity3D developers will find auto-complete a useful tool when writing extension scripts for Unity. No templates or integration yet, but hopefully we will have those in the future.

This is only our first step.

MonoDevelop for Windows

Eventually, we would also like to bring MonoDevelop to Windows. Not to compete with SharpDevelop as they are focused on being a great IDE for Window developers. Our focus will be in bringing Stetic (our Gtk# GUI designer) to developers building cross platform applications.

Posted on 07 Feb 2008

Lenovo ThinkPads preloaded with Linux

by Miguel de Icaza

I was doing some shopping today for a Lenovo ThinkPad T series, and noticed that they are finally offering them with SUSE Linux Enterprise Desktop 10 preinstalled.

(At least in the US).

Posted on 07 Feb 2008

Election Results

by Miguel de Icaza

Larry Lessig has a fantastic presentation, in the very best Larry Lessig style, of why he supports Obama over Hillary. Chris has a transcript of the presentation for those reading blogs from work.

While reading CNN summary:

But the two-term senator from New York surpassed the one-term senator from Illinois when voters were asked about experience, with 91 percent of voters saying she "has the right experience," versus just 5 percent who said the same thing about Obama.

Both John F Kennedy and Bill Clinton were younger than Obama is today when they became presidents. It seems odd that this fact is not mentioned more often. (Update: Raphael pointed out that I used the wrong word here; Sorry, not a native speaker and all that).

And Wonkette goes through the checklist: Hillary Pre-Election Day Cry For Points: Check:

With Super Tuesday coming tomorrow, and polls showing Hillary Clinton in a dead heat with Barack Obama in states like, let’s see... Connecticut... it seemed like a good opportunity to CRY again. Not that this has anything to do with anything, but Hillary Clinton did cry in New Haven today while discussing children’s health care, one of the various things that she cares about. We’re ashamed at Hillary for this: If she had planned it around mid-afternoon, it might be a fresher topic for the evening news cycle.

Which is at odds with the speech I heard from her appearance in Massachusetts two nights ago when I jumped in a taxi. She was yelling repeatedly "am ready to lead" with a loud and strident voice. Which makes the perfect timing for the crying all too suspicious.

Larry Lessig's post underlines an important point about the way that Obama is conducting his campaign vs the way Hillary is. Hillary will have a debt with all the lobbyist, there will be favors to repay, concesions to make, special initiatives to pass through congress.

The video with Hillary's position on taking lobbyist's money is educational. Not only she is very happy taking their money, but she also twists facts when she says "They represent real Americans, they actually do". She should have added "The top 1% of Americans", you know, the Americans that actually count.

This is the complete context for the debate where the previous video was taken from. Edwards and Obama interventions are brilliant, "we do not have to start for the next election to start reforming, we need to start a grass roots movement to start reform today". Edwards and Obama went down this path: they did not take lobbyist money. Watch the full thing.

Obama as a president would not have those ties, he refuses to take money from the lobbyists.

Posted on 06 Feb 2008

Moonlight Talks (Paris Tech Days, Las Vegas Mix 08)

by Miguel de Icaza

Next week I will be in Paris for the Microsoft Tech Days talking about our work on Moonlight. JB Evain will be doing a tutorial on Moonlight on Monday as well. Sadly, due to all the work we have right now in Mono-land, I will only be in Paris for a very short time before I have to head back home. But hopefully Mono-ers and Opensourcers can have some dinner on Sunday night. Drop me an email.

I will also be speaking in depth at the Mix 08 about Moonlight. This will be a more detailed talk about Moonlight than the talk at Lang.NET which was more of a potpourri of Mono stories.

Posted on 04 Feb 2008


by Miguel de Icaza

Only recently I found out about Mark Probst's MathMap plugin for the GIMP. I ran into it when he posted about a new feature in it called the MathMap Composer.

Check out this video demostration of MathMap's Composer.

I would have put a good screen capture of it, but Google Video seems to have regressed and no longer lets user skip over parts of the video.

Posted on 04 Feb 2008

« Newer entries | Older entries »