The new version of Gaia Ajax Widgets now is shipping with full support for Mono ASP.NET 2.0.
If you were considering an ASP.NET control library for use in a cross-platform fashion, these guys offer a very nice suite of controls, and they will support you in Mono and Linux.
In addition to the controls, they provide MonoDevelop solution files and ready-to-run components. In addition to supporting the "big browsers", AjaxWidgets works just fine with Opera.
If you are an open source project, you can use those controls for free. For commercial projects they offer a commercial version that is very reasonably priced.
Posted on 02 Jul 2007
A couple of weeks ago, I was reading reddit.com when I found a link to the Michael Moore new movie Sicko playing at video.google.com. Moore had made some comments at the time about his position on the leaked movie. When I saw this on reddit I thought it was a joke, but there it was in video.google.com.
So I watched the entire thing at the time, I was up until 4am in the morning watching it.
Tonight am going with Laura and some friends that did not see it to watch it again at the theater.
For years I have been incredibly annoyed at the power that special interest groups have over policy making in the United States. It all begun by reading Howard Zinn, Noam Chomsky and the progressive sites.
Around that time there were a series of events happening, but I was too busy with the Moonlight hack-a-thon.
Luis Villa posted a link to Larry Lessig post where he has decided to move his work and activism in a different direction, a much needed one: . You should read the whole thing, but here are some bits that I found interesting:
If you've been reading these pages recently, you'll know my allergy to that word. But this friend's use of the term not to condemn me, but rather as play, made me recognize just how general this corruption is. Of course he would expect I was in the pay of those whose interests I advanced. Why else would I advance them? Both he and I were in a business in which such shilling was the norm. It was totally reasonable to thus expect that money explained my desire to argue with him about public policy.
I don't want to be a part of that business. And more importantly, I don't want this kind of business to be a part of public policy making. We've all been whining about the "corruption" of government forever. We all should be whining about the corruption of professions too. But rather than whining, I want to work on this problem that I've come to believe is the most important problem in making government work.
And so as I said at the top (in my "bottom line"), I have decided to shift my academic work, and soon, my activism, away from the issues that have consumed me for the last 10 years, towards a new set of issues: Namely, these. "Corruption" as I've defined it elsewhere will be the focus of my work. For at least the next 10 years, it is the problem I will try to help solve.
The other thing that bothered me at the time was that one of the Supreme Court Justices in the United States became an apologist for torture:
The conservative jurist stuck up for Agent Bauer, arguing that fictional or not, federal agents require latitude in times of great crisis. "Jack Bauer saved Los Angeles. ... He saved hundreds of thousands of lives," Judge Scalia said. Then, recalling Season 2, where the agent's rough interrogation tactics saved California from a terrorist nuke, the Supreme Court judge etched a line in the sand. [...]
So there you have it, America making sound legal decisions based on the hit-show 24.
The US is a country that has grown to believe that two differing points of view should be given "equal time" to portray their position regardless of the value of the arguments.
Except things are not fair and not equal in a country where you get the best democracy that money can buy.
So Michael Moore presents a film in 2007 after 30 years of HMO propaganda and will be up against a multi-billion dollar industry that will use every tool at their disposal to keep the profits rolling, and the health service at the lowest possible level.
Many of our clients face these issues; companies come to us hoping we can help them better manage their reputations through "Get the Facts" or issue management campaigns. Your brand or corporate site may already have these informational assets, but can users easily find them?
We can place text ads, video ads, and rich media ads in paid search results or in relevant websites within our ever-expanding content network. Whatever the problem, Google can act as a platform for educating the public and promoting your message. We help you connect your company’s assets while helping users find the information they seek.
If you're interested in learning more about issue management campaigns or about how we can help your company better connect its assets online, email us. We'd love to hear from you! Setting up these campaigns is easy and we're happy to share best practices.
Ah, "Get The Facts" campaigns to better manager company reputations. Where have I heard that one before?.
Sure, Google could keep selling their ads and do Get the Facts campaigns out, but actively reaching out to this rotten industry saddens me.
Update: An official response from Google.
Posted on 30 Jun 2007
Check Everaldo's blog for more details.
Posted on 29 Jun 2007
For Hack Week, Jonathan Pobst did a pretty cool hack: he added support for Banshee to work with the Nike+ Accessory on iPods.
From his blog:
I decided that part of my Hack Week would be to venture from my "happy place" of Winforms in Visual Studio and write something in GTK# using MonoDevelop. I chose to write a plugin for Banshee that allows it to sync with and display files generated by taking your iPod for a run with the Nike+ accessory. Oh, and using Moonlight, just because it seemed fashionable.
Posted on 29 Jun 2007
During hack week, I took an afternoon to add Valgrind support for Mono symbols. It was kind of a hackternoon thing.
Mono works great with Valgrind, but when there is an error in unmanaged code stack traces only contain symbols from the native libraries and do not contain information from the JITed code. During the Moonlight hacking sprint we used Valgrind extensively for finding errors in our code and it was becoming annoying to manually lookup addresses from stack traces and match them up with Mono's -v output. Today the output looks like this:
==22441== Mismatched free() / delete / delete  ==22441== at 0x4020E26: operator delete(void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==22441== by 0x5EB49FA: Value::FreeValue() (value.cpp:261) ==22441== by 0x5EB4AAC: value_free_value (value.cpp:275) ==22441== by 0x66E5E60: ??? ==22441== by 0x66E4587: ??? ==22441== by 0x66E3FF1: ??? ==22441== by 0x66E3DE5: ??? ==22441== by 0x66E3D35: ??? ==22441== by 0x809D294: mono_runtime_class_init (object.c:329) ==22441== by 0x815920C: mono_jit_compile_method (mini.c:10905) ==22441== by 0x81595C4: mono_jit_runtime_invoke (mini.c:11081) ==22441== by 0x809FD34: mono_runtime_invoke_array (object.c:2616)
This app is the culrpit for the above stacktrace. A
developer first reaction to the "???" text is to panic.
Today we lower the panic alert level.
At the beginning of the hackternoon, I did not know it, but Nat had written a script that achieved similar results:
I added a new client API to Valgrind that JIT compilers can use to register generated code with Valgrind so that the actual method name is displayed on the stack traces, the new output looks like this for the same error:
==22478== Mismatched free() / delete / delete  ==22478== at 0x4020E26: operator delete(void*) (vg_replace_malloc.c:244) ==22478== by 0x5EB49FA: Value::FreeValue() (value.cpp:261) ==22478== by 0x5EB4AAC: value_free_value (value.cpp:275) ==22478== by 0x66E5E60: (wrapper managed-to-native) Mono.NativeMethods:value_free_value (Mono.Value&) ==22478== by 0x66E4587: System.Windows.DependencyObject:SetValue (System.Windows.DependencyProperty,System.Windows.Media.Color) ==22478== by 0x66E3FF1: System.Windows.Media.SolidColorBrush:.ctor (System.Windows.Media.Color) ==22478== by 0x66E3DE5: Desklets.Monitor:.cctor () ==22478== by 0x66E3D35: (wrapper runtime-invoke) Desklets.Monitor:runtime_invoke_void (object,intptr,intptr,intptr) ==22478== by 0x809D294: mono_runtime_class_init (object.c:329) ==22478== by 0x815920C: mono_jit_compile_method (mini.c:10905) ==22478== by 0x81595C4: mono_jit_runtime_invoke (mini.c:11081) ==22478== by 0x809FD34: mono_runtime_invoke_array (object.c:2616)
The patch is here.
Support your Valgrind/Mono addiction by voting my idea up.
Posted on 29 Jun 2007
Ankit from the Mono/MonoDevelop team had a fantastic idea: embedding VIM into MonoDevelop.
Posted on 29 Jun 2007
The folks over at #desklets have been making some progress on their hack for week.
Andreia wrote an SVG to XAML conversion tool that is very handy to import artwork from tools like Inkscape into XAML.
Everaldo did a screencast of a few desklets that the folks have been working on during Hack Week:
Gtk#/Moonlight Desklets in action
Some screenshots, because they look nicer than the YouTube video:
These are of course not as advanced as other desklets systems, this was written only in a couple of days, but we have a few interesting things in them that we think are interesting concepts in general:
$ mopen --host desklets clock $ mopen --host desklets calendar $ mopen --host desklets flickr $ mopen --host desklets picasa
$ mopen --host devel stockapplet
Desklets are of course not a new thing, Google and Yahoo both ship desklet systems. OSX and Vista have widgets and gadgets as well. Gnome has gDesklets, KDE has SuperKaramba.
This is merely our take on the challenge as part of Novell's hack week and it is also a good way of exercising our Moonlight engine, the Gtk# binding, Mono and try to learn something new in the process.
Marek's weather applet
If you have not seen them, you should check out what other folks at Novell are doing during their hack week. There are some videos here. Today it seems to be strongly slanted towards Evolution and panel applets.
Posted on 28 Jun 2007
Jackson has written a fantastic tutorial on his blog (and I think it should be moved to the Mono web site as a Guide). check it out: A Mono Developers Guide To Writing XAML.
For those of you participating in the #desklets effort, the above is a good getting started guide on XAML.
Posted on 26 Jun 2007
I have yet to choose what I will do for Hackweek (likely do tech support for those trying to use Moonlight to spice up their desktop apps), but I helped a little bit on the Desklets project that Everaldo initiated:
As you can see, although the clock is transparent it is still showing the title bar, am not sure what is the right way these days of removing it. I do not think its using a POPUP window, is it?
Some folks from the Moonlight group (and other Mono hackers) are building a new desklet infrastructure for the desktop. The idea is here: Implement Desklets Using Moonlight and some sample code is available already in moon/desklets/lameclock as a reference in our Anonymous SVN repository.
You will need to install Moonlight to get it going.
You can watch a video of the new tool "mopen" launching the clock desklet that I hacked in a few minutes. The animation does a double fade: fade from clock to config and from config to clock. We could use more complex animations, using the Storyboard and Animation features, but this is what I cooked in 10 minutes:
Posted on 25 Jun 2007
The next week is Hack Week at Novell, where all engineers in the Open Source group get to work on their own pet ideas during their work hours.
There is an idea database here: http://idea.opensuse.org.
Posted on 25 Jun 2007