Related link: http://www.mono-live.org
Recently I shared my vision for the value of Live Linux distributions that minimize the obstacles for learning open source software development. This came as an epiphany for us at the SNAP Development Center after we released SNAPPIX version 0.7. In the beginning, we only wanted to build a showcase for SNAP Platform, but once we had a working copy, the possibilities became instantly obvious. This was also true when I heard about a new Live Linux CD featuring Mono. This article expands on this premise, reviews Mono Live and shares an interview I conducted with the originator of the CD, Joseph Hill. It is my hope that this Live Linux CD plays an important role in the adoption and spread of the Mono project (as I have previously written here).
Mono Live was released on May 24, 2005. Although there are several Live Linux CDs with Mono, they are all based on Knoppix and use KDE as the default Linux desktop. This distribution is based on the Ubuntu Live Linux CD. In many ways, the outstanding experience available from the Mono Live CD is made possible from Ubuntu. Since Ubuntu features GNOME as the default desktop, it only follows that due to Mono’s heavy reliance on Gtk+, Mono Live would provide superior functionality. The current version of Mono Live includes Mono, version 1.1.7 and all of the key platform components, including a broad assortment of Mono Gtk-sharp based GUI applications, ASP.NET applications, and the software infrastructure to run the application. In addition to the core mono-based tools MonoDevelop, MonoDoc, and xsp, the Live CD also includes Postgres, pgAdmin III, and Glade.
Mono Live also has a major bonus. When the Mono Live CD is inserted into a MS Windows machine, it automatically provides the ability to install the complete Mono for Windows installation package. Thus, Mono Live serves a dual purpose, first as a complete Live Linux distribution, and second as a complete Mono Windows distribution.
According to Joseph Hill, the founder of the Mono Live project, the idea first came from seeing Knoppix about a year and a half ago, and realizing that a live CD might be the perfect vehicle to expose .NET developers to Mono and Linux. I would definitely agree with Joseph. I believe that this is a much needed and important step for the Mono project. Building bridges between the Windows .Net community and the possibilities and choices gained by new deployment alternatives is mandatory for Mono. For although the Windows installation experience is far superior to the Linux installation, the Windows version of Mono still lacks key pieces. Currently MonoDevelop and many of the marque Mono applications are still only available on Linux. I know that the Mono community is working hard to balance these disparities, they are slow in coming. Early this year, there were rumors within the community that MonoDevelop would be available by the O’Reilly Open Source Convention, but unfortunately that has not happened.
Review - Sample Applications Galore
For me, the stability and tight integration and implementation in Mono Live is superb. For one who has struggled with configuring Mono in the past, using the CD was a huge relief. With just a simple boot from CD, I had a rich Mono platform to explore and use. For that reason, I believe that Mono Live accomplishes what Joseph set out to provide. It especially excels in demonstrating the capabilities of the Mono platform. The CD comes with a rich collection of sample applications, both Gtk-Sharp GUI-based and ASP.NET. From the Mono community of applications, the CD includes the following Gtk-Sharp applications:
- Tomboy - Tomboy is a desktop note-taking application for Linux and Unix. Simple and easy to use, but with potential to help you organize the ideas and information you deal with every day.
- Muine - Muine is a music player for GNOME.
- Blam - Blam is a tool that helps you keep track of the growing number of news feeds distributed as RSS. Blam lets you subscribe to any number of feeds and provides an easy to use and clean interface to stay up to date.
- F-Spot - F-Spot is an application designed to provide personal photo management to the GNOME desktop. Features include import, export, printing and advanced sorting of digital images.
- Beagle - Beagle is a search tool that ransacks your personal information space to find whatever you’re looking for. Beagle can search in many different domains.
These applications are currently available in binary form, but a future release of Mono Live will include source code as well. As mentioned, the CD also provides the leading sample ASP.NET applications for Mono. The sample ASP.NET application included are:
- IBuySpy Portal - his project is a port of the original IBuySpy Portal Solution Starter kit from http://www.asp.net. The principal features of this version of the portal are that it adds support for Mono, and uses PostgreSQL for the database.
- BlogX - Mono Blog is a Mono-compatible version of the BlogX weblog engine originally developed by Chris Anderson. Because BlogX is written in C# and uses XML to store content, it is one of the easiest complete, open-source .NET applications to get running on Mono. This project will attempt to make it even more simple by correcting all Mono incompatibilities in the source, and by maintaining all Makefiles needed to build the project.
- nGallery - nGallery is a FREEWARE, OPEN SOURCE implementation of a image gallery written purely in managed .NET and C#. nGallery provides a solution to store and display your image galleries on your own Web site, as well as providing means for customizing and extending nGallery to your own personal likings.
- ASP.NET Forums - The Mono Forums power the new GotMono forums at http://forums.gotmono.net and are a port of the original ASP.NET Forums from http://www.asp.net/Forums/. The principal features of this version of the Forums are that it adds support for Mono, and uses PostgreSQL for the database, so that it can be run entirely on Linux.
- mojoPortal - MojoPortal is an Object Oriented web site framework written in C# that runs under ASP.NET on Windows or under mono on GNU/Linux or Mac OS X.
These sample applications run using the xsp server included with Mono. With desktop and menu links to each, running these sample applications is only a simple click away. In addition, in order to support these sample applications, Mono Live features the Postgres relational database management server. The CD comes pre-installed with all of the configuration necessary to access the pre-created databases. All of the ASP.NET applications include the full source code.
As with all Live Linux distributions, Mono Live features USB Flash compatibility allowing for creating and saving work. As with many other specialized Live Linux distributions, Mono Live inherents a broad level of functionality from the base Linux distribution. The Ubuntu Live CD provides complete network, file system, and device functionality.
Reaction from the Mono and .Net community has been strong. After two months of availability, Mono Live has been downloaded more than 15,000 times. Novell Corporation, the host for the Mono project, has also demonstrated their support of the concept of a Live CD with Mono. During July of this year, they requested Joseph to assist in creating Mono Live DVD, a Live Linux DVD version based on the Novell Linux Desktop. This distribution should be available soon. Finally, interest in Mono Live continues to grow. Various user groups from the Dallas area, where Joseph resides, have invited him for demonstrations of the features of the Live CD and Joseph and i will host a Birds of a Feather session to discuss and demonstrate Mono Live. For those interested, the session will be Thursday August 4, 2005 in room E142. The session will begin at 8:30pm.
Building on the initial success, the Mono Live CD will naturally mature as the core Mono functionality matures. One challenge going forward, Joseph admitted,is resisting the temptation of the community to believe that the Mono Live is a “new” Linux distribution. Instead, Joseph believes that the future developments of the Mono Live CD should focus on providing an inviting experience from learning and using the Mono platform. However, as I have wrote previously I believe that special purpose distributions, like Mono Live, will serve an important role in the future of open source software development. The complexities of installing a stable working environment from an ever changing base of components and packages can be a huge obstacle for neophytes. I believe that having the luxury to install a well integrated and stable Mono platform is critical. For me, the moment I booted the Mono Live CD, I immediately wanted to replicate it onto a machine. I believe that many others will want the exact same thing.
What follows is an interview I did with Joseph Hill. His answers provide a clear picture of the origins, the obstacles over come, and the future of Mono Live. I originally intended on just including several quotes from the interview, but I decided that the entire interview would be of interest to everyone. I want to thank Joseph for his time and passion for bringing this project to fruition.
Kevin: Where did the idea come from?
Joseph: When I first saw Knoppix about a year and a half ago, the value of the CD as a tool to expose .NET developers to Mono was immediately apparent to me; however, when I researched the idea, I found that there were already a few flavors of Monoppix in the works, so I went to work on other things. I returned to the idea this spring when I was discussing with a friend how none of the existing projects seemed to be headed in the direction I had originally envisioned, and he pointed out to me how easy it was to customize the Ubuntu LiveCD.
Kevin: What were the objectives heading into the project?
Joseph: The primary objective of the project was to show developers what they can do with Mono. That means that not only did we need to make it as easy as possible for developers to get their feet wet with Mono development, but we also wanted to show off the many applications that already run on Mono.
Aside from that, we realized that a lot of our target audience would be coming from Windows, and that their impression of Mono would be closely tied to their impression of the Linux desktop, so we needed to make sure that the overall of experience of the CD from start to finish would leave them feeling good about the whole platform in general. We’ve tried to accomplish that by making the user experience something more like working on somebody’s active Linux installation, where they already have photos in F-Spot, music in Muine, notes in Tomboy, etc., rather than the typical LiveCD experience, which seems to be a little more like starting from scratch on a fresh Linux install.
Kevin: What were some of the biggest challenges?
Joseph: It seems like each major feature on the CD was a big challenge at the time. First, just proving the concept would work at all was daunting task “Can we get Mono on the CD? Can we get PostgreSQL to run right?” Then it was “Does MonoDevelop work? Will it run Beagle? Can all of this possibly work at the same time?”
Luckily, I was able to get a lot of help along the way. I sent Ben Maurer an early build when I thought I was getting close to done with it, and he had a lot of great ideas that really helped complete the experience. He also helped me get Brandon Hale to help us out by contributing custom Ubuntu packages of Mono and all of the applications built just for the CD.
Our most recent challenge has been that we were running out of space, but luckily someone put instructions for taking care of that on the Ubuntu wiki, so now we have plenty of spare room.
Kevin: Are any other application going to be included?
Joseph: Definitely. Now that we have the size issue addressed, we’re really searching for new content. We’re going to need some cool new apps to keep the content fresh, and to justify new releases beyond just getting the latest version of Mono. We already have a few Windows Forms examples picked out for the next release.
What we really need, though, is more documentation. Since we want to make experiencing Mono as easy as possible, and we know that we probably only have the users attention for a short while, it would be really nice to get some tutorials collected on there that will help developers hit the ground running.
Kevin: How has the reception been? Many comments? Like what?
Joseph: The reception has been far better than anything I could have imagined. Mono Live has appeared in a few news blurbs out there, and in the few months we’ve been out, we’ve seen at least 15,000 downloads (which seems phenomenal to me, considering the size of the CD).
Everyone I’ve talked to has been pleased with the CD, but there have been a lot of feature requests, too. That’s great news, though, because it shows that people have really been working with it, and it tells us where we need to go. The most popular requests have been for Samba support, Windows Forms support, and, of course, an installable version of the CD.
Kevin: What can you do with the CD, that would surprise people?
Joseph: I hope there aren’t that many surprises in there, because we really want it to be easy for users to use the CD to its fullest potential.
One thing that hopefully won’t come as a surprise, but seems to be often overlooked: If you put the CD in a machine that is already booted into Windows, you’ll be given the option to install Mono for windows, along with several other handy development tools. In upcoming releases, I want to focus on growing the experience on the Windows side of the CD so that we can really highlight the cross-platform capabilities of Mono.
Kevin: How goes the work to make the CD installable?
Joseph: Honestly, this is really a low priority to me, because I don’t think that’s where our efforts can be best focused. I don’t really want to build a new distribution. I just want to provide users with an inviting experience of the platform.
The real answer to the installation problem is that Mono and (all of the Mono applications) need to be just this easy to get going on any Linux distribution you pick up as they are on the CD. I think Mono is getting there.
Have you tried Mono Live? What do you think?