From their testimonial page:
We needed a portable cross-platform, architecture compiler system that would allow us to develop code on one OS or architecture and deploy it on another with out recompiling. The problem with using gcc was that for every target OS or architecture we would need a separate cross compiler. Additionally maintaining and developing this toolset would be a large task.
Initially Python was selected as our cross platform language. Python was great but we were always concerned with its speed, especially in real-time applications.
We discovered Mono while we were evaluating 3D engines. Mono was successfully being used to develop video games and it was extremely fast. We performed a small test and compared the speed between Python and C# mono and were shocked at how fast mono was compared to python. In addition to the speed increase and portability, we now had the ability to allow our users to write scripts in any .Net language.
Switching to Mono has given us the ability to write very fast cross platform applications and has provided us with a multi-language scripting interface, and the integration of Mono within our application suite has proved to be a huge success.
From the product description:
robotFoundry is a powerful graphical coding environment for robotics. Use drag and drop modules to add functionality to your code, quickly linking them to create program flow and robot controls. Generate code with a click, and transfer your code to your robot or robotSim with another click.
Code for a physical robot or simulated robot at the same time - switch between them at any time to generate code for the robot or robotSim to run identical code. Choose from pre-existing robotFoundry robot templates, or add components to create your own. Many modules are available, ranging from simple controllers such as line trackers and wall followers to basic building blocks like variables, mathematics and logical operators. Choose your own level of programming, and allow robotFoundry to take the coding out of your coding.
RobotSim: Simulated Packbot with ARM
You can use robotFoundry and robotSim to write code for your Roomba or your iRobot Create without burning the batteries:
RobotSiming a Roomba
Posted on 03 Feb 2008
Dave Winer has a couple of great posts on the campaign:
Here he points out:
Most of what Chris Matthews says is mindless trash, but today he pulled out a great analogy immediately after Ted Kennedy's stirring endorsement of Obama.
He compared Hillary Clinton to the character Salieri in the movie Amadeus. Until Mozart came along he was the leading composer in Vienna, but he was just a workman, a technician. Mozart had inspiration, feeling, the spirit. Salieri, even though he lived a long life and Mozart died young, is a footnote to Mozart's lasting greatness.
Matthews nailed it.
This is a great nugget that encapsulates perfectly how I feel about Hillary.
Dave also wrote: Bill Clinton as Trent Lott 2.0, some parts that I liked:
It was an interesting election until the Clintons started calling Obama the nice young African-American candidate.
The problem for Clinton is actually much worse, we now saw how she'd govern. Let's say a young African-American Senator from Illiinois got in the way. Would she argue the issues with him in a respectful way? Why bother when you can smear him into silence.
What a fantastic way to recover from Bush, who so completely represented the greed and arrogance and uglyness of America, to reinvent ourselves in the image of our best, in the image of hope.
Posted on 01 Feb 2008
My SecondLife dude walks around the Mono Simulator in SecondLife, am running this with the Linux client:
Mig Tamale Explores the Space.
The work that we are doing on Mono's runtime to support Silverlight (the sandbox system and the hardening of the runtime) is going to enable the use of other programming languages to script components on Second Life.
Go SecondLife! Go!
Posted on 31 Jan 2008
Today Jim announced the beta launch of their Mono integration into SecondLife.
We’re very pleased to announce the beta testing of Mono in Second Life. Mono is a technology which will increase the speed of scripts running in Second Life. The goal is that everyone will experience reduced lag and improved stability and that it will be possible to script complex behaviours that were not previously feasible in Second Life.
With a mono viewer on a Mono region, normal LSL scripts can optionally be compiled and run on Mono. If you are a scripter we would love you to download the Mono viewer, connect to the beta grid, teleport to a Mono-enabled region and test your scripts on both the Mono and LSL virtual machines side by side
Currently the focus of this beta is to focus on identifying any problems with the Mono integration, so the language use is currently still limited to LSL. Linden has plans to allow any .NET language that will run on Mono to be used to write scripts for SecondLife.
Congratulations to the Jim and the Lindens for their beta launch and for seeing this project through.
I strongly recommend Cory's and Jim's video from the Lang.NET 2006 conference which explains some of the formidable things they did to bring Mono into their simulators.
I can not stress enough how interesting this talk was. It is a great introduction to SecondLife and it is a great talk on software engineering and the wonderful hacks that they came up with.
Brady, this is your chance to start hacking on it!
Posted on 29 Jan 2008
In December, someone asked me about how many Mono downloads we had per month to estimate the size of Mono users. With software like Mono the download numbers do not mean much, because most of our users get their software through their distribution, package channels or as a bundled executable.
Since we are short on space on the machine hosting the files, we do not keep logs for too long, they are rotated and discarded pretty quickly, but we could at least do some guesswork based on a week worth of downloads. The data would not have been very useful, as this story takes place on December 27th, but I was still curious.
What I discovered with horror as I looked through the logs was that people using Windows and MacOS were downloading software that was two years old. Mono 1.1.7 (released sometime in May of 2005) was the most popular download.
Only 5% of the Mac downloads were actually getting the latest version, 95% was downloading this two year old version. I don't have my notes handy for Windows, but they were similarly abysmal [Update: found the notes, they were 95% as well].
The Linux downloads for RPMs were mostly fine (probably because they had to select the architecture from a separate list). But a whole 1/3rd of the people downloading the Mono "Universal Installer" were getting the wrong Mono as well (Update: clarified).
Using the referrer logs, we tracked down a few problems to people that had linked for their software directly to a particular version of Mono, but this could not explain the popularity of this aging Mono 1.1.7 release, and the logs were very odd, people apparently were selecting this from our list of options.
This made no sense.
Can you spot the problem?
I clicked on our links, they were fine. They downloaded the proper software, the logs matched the download. I was puzzled.
Only after a while I realized what was going on:
Since we are using MediaWiki for our web site and we were adding cute little icons for each platform, clicking on the image actually took users to the page for the image. In the Windows case, this was the page:
Which happens to contain the image, and some automatically generated content for the image. Some of the generated content lists all of pages that *link* to the image:
Now, that looks like a messy page, but most users were picking the largest number they found listed there, which happened to be an old legacy page of ours for the release "1.1.7". Going to this page, would be a very similar download page to the main one, and people at this point figured out "do not click on the image, click on the text". Except now they were clicking on the downloader for this ancient release.
I have no idea for how long this has been going on, but this is a colossal disaster.
We came up with a quick fix, luckily, you can replace the markup [[Image:Blah.png]] in MediaWiki with [url] and if the url points to an image, it will insert an unclickable image into the page.
But the quick fix could not address another problem: we probably had the worst download page in the history of human kind. It was incredibly bad, and you can still see it on the archives.
In the past few weeks, we wrote the beginnings of a new download page. Users will now be directed to this page, you can see it here. Thanks to the whole team in Provo that put together this new system and the folks in x-m-l that provided feedback on it.
There is still some work left to do on it, but the entry page is no longer the disaster that it was. Luckily since the correctly on December 27th or so, people have finally been downloading our latest Mono.
We of course feel terrible to all of the 95% of the users that wanted to try Mono on Windows and the Mac and ended up using a two year old version of Mono.
Posted on 24 Jan 2008
Am looking forward to what looks like a fantastic program. Marek Safar, one of Mono's C# compiler developers, will be there as well.
Since am not really a language designer myself, my talk will focus on discussing a few interesting solutions to a number of problems that we have faced while developing Moonlight and Mono and show a few creative applications that have been built with Mono.
Posted on 24 Jan 2008
For people in the Windows world, Bruce Byfields' A Field Guide to Free Software Supporters will help them understand the various groups that make up the free software/open source software movement:
When you look, there are at least seven different types of FOSS supporters.
To outsiders, these schools of thought are more similar than different. In the same way that many Europeans see few real differences between a New Englander and a Californian, outsiders may see little to distinguish a Softcore Advocate from an Activist.
It is a great piece.
This is a great starting point for anyone that is getting involved in FOSS. Understanding that these groups exist and their positions will make it much easier to understand the dynamics of development and advocacy that you will run into while working with the FOSS community.
I feel that this article could be expanded on in a few areas, but eventually this could become a great taxonomy of the FOSS movement.
For instance, I think that there is room to dissect the editorialist advocate. This is the do-as-I-say-not-as-I-do advocate which will praise and preach open source, freedom, open systems, open standards but yet always ends up using the latest-and-greatest proprietary, DRM-enabled, crypto-locked gadgets and software.
Posted on 23 Jan 2008
Last year we ported various ASP.NET Starter Kits and we also started an effort to package popular Mono and .NET-based software in easy to install RPM packages using the OpenSUSE build service.
The OpenSUSE build service allowed us to submit source packages with a specification on how to build it, and get RPM packages for various Linux distributions and various versions of those distributions. Currently we support Fedora, OpenSUSE and SUSE Enterprise.
The starter kits were a useful test of Mono's ASP.NET implementation, and we routinely use these for QA before we make a release.
When we did the port of these applications, this is what we did:
RPMs of the Starter Kits are available from the Mono:Community directory from the build service, we have packages for various distributions there (OpenSUSE, Fedora and SUSE Enterprise).
The OpenSUSE 10.3/noarch (platform independent, that means, they do not contain any x86 code) packages can be downloaded from here:
There are of course many new starter kits published at www.asp.net, and someone (hint, hint) should look at porting them as well ;-)
Also, over the past few months we have been packaging some other popular Mono-based applications. Packages can be found from the community page as well, some favorites include:
Libraries and Tools:
Desktop Apps and Libraries:
You can either download the individual RPMs from your distribution and have your browser install the software, or you can subscribe your package management software to the repositories.
OpenSUSE users for example, have to type this command:
$ zypper ar -r http://download.opensuse.org/repositories/Mono:/Community/openSUSE_10.3/Mono:Community.repo
Or add it from the GUI Yast tool.
After you have done that, the software collection will be ready to use, and you will be able to search for the new packages and install or upgrade software that we put in the Mono:Community group.
YUM users just need to grab the above .repo file and save it in /etc/yum.repos.d.
Although the OpenSUSE build system supports both of these platforms, it requires us to create new "descriptions" on how to build the software for those platforms.
So far, we lack the experience and the time to maintain the Debian based packages ourselves.
We would love if someone with Debian/Ubuntu experience wants to co-maintain the packages here (maybe a script to transform the .spec + sources into a debian package can be written?).
We have a long list of things that we want to package for Mono. The only thing that is limiting us at this point is the lack of time (some software needs to be massaged a bit to make it conform to our ASP.NET deployment guidelines, or our Application Deployment Guidelines.
The Build Service is an open service (and its also open source, if you want to host your own build service in the comfort of your own living room).
Hopefully some folks in the community can help us package some of the other pieces of software that we have listed there.
Thanks to our QA team, Marek and everyone else that has contributed to package this software for Mono.
Posted on 23 Jan 2008
As seen on JWZ's blog:
Posted on 18 Jan 2008
My friend Nat Friedman is raising funds for the Obama Campaign. If you are an American Citizen or a permanent US resident, please consider donating to Obama's campaign through Nat's fundraiser page (all the money goes to Obama, and you help Nat with his personal fund raising goal).
Although am myself a Kucinichista myself, I also supported Obama's campaign by donating to Nat's fundraising effort.
As readers of this blog know, am not a fan of the policies of the last seven years, and as an extension, not really a fan of the republicans.
On the democratic side, I just can not agree with Hillary on anything.
I have been personally bothered by Hillary Clinton since this March 2003 incident in which she walked out on the Code Pink girls and was parroting the administration party line.
These days those that voted for that disastrous war claim that they were "tricked" into voting for it. But like some comedian said recently, "All these democratic candidates claim that they were tricked into War by President Bush. [...] but if you are a person that can be tricked by President Bush you are not presidential material".
This Flash animation from November 2002 turned out to be prophetic and right on the spot.
Chomsky turned out to be right: September 2002 interview.
Fisk turned out to be right: September 2002 interview.
The French and the Germans turned out to be right as well.
The facts were there for anyone to see.
Nat recently pointed out that Obama did not rush to "support the President" like every other drone did. He made a conscious decision at a time when it was not popular to oppose the crooks and liars at the White House.
Posted on 17 Jan 2008