Category Archives: Moonlight

eRubyCon 2008 Day 3

I wrote a write up for eRubyCon 2008 Day 1 and eRubyCon 2008 Day 2.

Jerry Nummi's buddy icontheedgecase's buddy iconBTW – thank you to Jerry Nummi for all of the great pictures of eRubyCon. I haven’t had time to browse and put them in this post but I’ll do that tonight or tomorrow.

*Update – I added pictures…*

I’m sitting in the back of day 3 reflecting on the previous two days. It’s amazing the group of people that Joe has put together here to speak on Ruby in the enterprise.

Joe O'BrienJoe O’Brien started up the day with his DSL talk. I’ve heard the talk before but it’s still a fantastic talk. His sub-title on the talk “Why I love Ruby”. I like to add “(and Emacs chest thumping)” but that’s me… 🙂

I’m not going to explain DSLs here because I wrote about them after hearing this talk the first time at

Honestly, part of what is so great about the talk is that Joe is just infectious in his passion and delivery. He, like a lot of great speakers, is a story teller. He told stories that ranged from past work in tech to past work prepping food displays for a cruise liner.

One of the stories that he told was about a large company that he did some consulting work for. They realized that the core issues at the company really came down to two people being able to communicate – a DBA and an Accountant. The issue was that they weren’t speaking the same language. One was speaking in rows, columns, triggers, sprocs and so on. The other was speaking in points, rates, forecasts and so on. The solution was to write an ORM that the accountant could understand that the DBA could work with. This came in the form of a DSL.

The food story was that the great sculptures on the table displays are actually food – not really edible but food non-the-less. It’s made from refined beef fat. There are many different forms, some softer and more moldable and some closer to marble than clay, and depending on what was needed, the master sculpture would pick a different form. Similarly, Joe picks a language that he can shape and mold to his needs. That’s what Ruby is for him.

Back to Emacs, one of the reasons that Joe loves Emacs is that you can shape the commands and key-bindings and the whole environment to shape your way of working rather than the other way around. I’m still not convinced. My biggest problem with Emacs is that the learning curve before you can be even mildly productive is giant. I understand that once you climb that mountain that the view is nice. I’m just not convinced that the incremental jump over my current tools will be enough to be worth it.

Interested in the talk? You can watch it from when Joe did it at the Mountain West Ruby conference.

Chris WanstrathChris Wanstrath followed Joe with a talk about GitHub. They have taken the Git source control and given it a centralized source server. The reality, as he explained it, with Git is that every person has a full blown copy of the repository. The interesting part is that people can go client to server or they can go peer to peer or any combination that you can possibly imagine. When they want to make a change, they actually fork the project.
Especially with the Git peer to peer checkins, it’s actually not a checkin. Nobody actually has write access to anyone else’s Git repository. When they are ready, they let the other devs know that they should pull and merge. They way that it works all the way up the list is that there are devs that make changes who let the project managers know that they should pull. That project manager is the “blessed version”.
The simplest explanation of GitHub is that it gives the individual programmer an offsite repository so that they don’t have to be online when the other members want to make a pull.  

Jim WeirichJim Weirich did the lunch time keynote called “What the Enterprise Can Learn From Your Mom”. In the spirit of the previous talk, he told us that all of his slides were up on GitHub already. He started out talking about Moores law. The first thing that he points out is that the number of transistors on the chip doesn’t mean that the chips will be faster – it might, and does in current times, mean that we get more cores. There’s a possibility of 100 core processors in the near future. Similar to our moms, we will have to learn how to do more and more things at one time. The fun part is that most people don’t know how to write multi-threaded applications… Jim went on to do a fantastic explanation of race conditions and threading at large. Somewhere in here I missed part of the talk trying to track down why the air-conditioning was not on. As I walked back in Jim was telling war stories about collecting real time data off of a jet engine in a multi-threading system. They designed a system that would only fail one in a million times – except that it was collecting data about a million times a day – oops. They had designed the system to fail once a day. Back to the drawing board…
Then Jim shifted gears. He started talking about “Blub Programmers” and languages other than Ruby. Jim is definitely the guy to do this. Jim is always playing with some bizarre language that would twist a normal brain like a pretzel.
First language that he talked about was Erlang. It’s a bizarre language. For example, you loop by writing tail recursion functions and most of the communication is done by sending process messages. The next language that he talked about was Closure Clojure (thanks Stuart Halloway for the correction). The interesting part about it, especially in light of the rest of his talk, is that it’s got different types of variables that are aware of multi-threading inherently.

Michael LetterleMichael Letterle followed Jim’s session with a session on IronRuby. To be far, I was supposed to follow Jim. However, I convinced to sw
itch me and Michael because I thought his talk was more core IronRuby than mine and would free me up to concentrate on Silverlight more than spending my time talking strictly about IronRuby. I was right and I liked the order. But I do deserve the comment that Michael started with where he called me an “ass” for making him get up right after Jim Weirick who is a phenomenal speaker.

Michael is one of the community contributor to the IronRuby project and has done a lot of work. He started with a lot of discussion about how the culture at Microsoft is shifting to be more and more open. With projects like CodePlex and Port25, there’s a lot of great new things.
Michael ran a lot of the test that were run at the Ruby Shootout in 2007 to see the differences and where things are now. While the functionality was largely complete, the perf was not great. It was a little worse than twice as slow as Jruby and MRI. As it’s still in beta and heavily under development, I’m not dismayed by that at the moment. If that’s still the case in a year, I will be.
Michael’s take on the talk was that since IronRuby is Iron, we should look at it with battleship grey windows applications. 🙂 He was adamant that there be an IronRuby talk that wasn’t about web technologies. He wrote a small windows app that hits a database and does normal IO type work similar to any and every enterprise application out there in the world. The next thing he did is fire up ir.cmd which is the IronRuby’s interpreted runtime. Then he attached to the running windows application and modified the application’s GUI and business logic to include tax information. Some of the cool things that he did was opening up base class library items and started adding Ruby things to them. For example, he added method_missing to the base Windows.Forms.Form class.

It’s awesome that there are guys like Michael out there in the world that are passionate Microsoft, Open Source, Ruby, .NET, Enterprise and Community. He’s a great ambassador from one world to the next carrying those passions with him everywhere he goes.

Josh Holmes– I followed Michael talking about Ruby in the Browser through Silverlight. I started out by talking about what evangelists do. After that I talked about User Experience and what that means to software. Then I started talking about some companies where the user experience, and their use of Silverlight, are making a great difference. I showed off the Olympics and the Hard Rock Cafe live and online. Then I pulled up some of the great work that Jimmy Schementi has been doing with a project that he calls Silverline. It’s pretty fantastic – it’s a number of different IronRuby samples running in Silverlight. The one that I missed showing and discussing was the idea of moving the controller in a Rails app out to the browser with IronRuby. Oh well. Next year.

I think that my talk was well received but welcome any comments. 

– Lance Carlson followed my session and closed out eRubyCon with a talk about an open source project that he’s writing called Anvil. It’s a framework for creating desktop applications that’s platform agnostic. The goal is to wrap all of the possible desktop frameworks from Shoes to RubyCocoa in one common framework. It’s a very interesting idea.

– Closing thoughts. Joe O’Brien did a fantastic job putting together this whole conference. The quality of the program, the speakers, the logistics, the whole package is fantastic every year. This is one of the highlights of the year for me every year. The other absolutely non-negotiable item on my calendar is CodeMash. The ton and the maturity of the conference coupled with the passion that not only the speakers show but the attendees as well is unparalleled

It’s an honor to me that Joe has invited me to come and associate with this group of elite and influential speakers/friends/attendees/geeks/passionate people that makes up the Ruby community. I’ve really enjoyed getting to know everyone at the conference.

I was thrilled that Joe wanted to host the event at the Microsoft offices in Columbus. We’re not going to be able to do that next year because we’ll overflow the venue but this year is was the perfect size. We can fit about 120 in the bigger meeting room without having to sit on laps and we had right at 106 in there. It was full but not crazy.

Last year, Joe closed with question as to whether or not they were going to do it again. This year, Joe ended with a definitive – “We’ll be announcing dates soon for next year, keep an eye on or the mailing list”. Me… I’m very happy about that.

Miguel de Icaza on Mono and Moonlight

Very, very close (It was #1 Explore)         132 times Fav.!Moonlight is still continuing to progress. Moonlight is the open source implementation of Silverlight for Linux. It’s being run by Miguel de Icaza of Novell.

There are a couple of things that are interesting to me about this project.

First, as I talked about in Dancing in the Moonlight!, it’s unprecedented interop and openness on the part of Microsoft. Microsoft gave the project the specs and a ton of support. The Moonlight devs even have access to the Silverlight engineers as they are developing the open source compatible solution to help clarifying specs and ensuring compatibility. One of the things that’s tough from a legal perspective is all of the codecs and other video components. What’s going to happen is that there’s a “Media Pack” that users will download from Microsoft to play videos. This circumvents the legal issues and allows Moonlight users access to all the great VC1 video out there.

Second thing I find interesting is that they are finding interesting ways to innovate even in the constraints of being 100% compatible. For example, They built a Silverlight designer called Lunar Eclipse completely in Silverlight. That’s a really cool idea. They are looking at offline ideas around Moonlight and making their implementation a WPF light enabling them to revamp the GNOME’s desktop development paradigm. They’ve started with desklets, which are small Silverlight components that run in a desktop framwork. Again, really innovative idea.

Miguel did an interview with about the projects and how they are going at Miguel de Icaza on Mono

Dancing in the Moonlight!

Very, very close (It was #1 Explore)         132 times Fav.!When I was at MIX and walking down the hall, I ran into a rather excited group of people that included Miguel de Icaza at the center. I stopped and listened as Miguel was running through the Silverlight 1.0 and 1.1 collateral and saying things like “We’ve already got that”, “That’s a week’s worth or work”, “That won’t take too long” and so on. I realized that I was watching the formings of the Mono-Silverlight project later to be named Moonlight.

I didn’t foresee this news though!

Microsoft is going to officially endorse the Moonlight project from Novell!

Here’s what that means:

  • Microsoft is listening to it’s customers and is delivering that they need when they need it.
  • Moonlight, via Novell, is going to have feature parity and compatibility with Silverlight and Silverlight content will run on Moonlight with no changes. Woot! That’s going to be ensured because Microsoft is giving Novell access to the same test suites that they are running on Silverlight. That’s sweet.
  • One of the large pushes on Silverlight 1.0 is HD video but it’s WMV. Guess what – Microsoft is producing codecs for the Moonlight project that are going to run on all distributions of Linux and BSD that Moonlight runs on.
  • That last bullet point means that Moonlight can be distributed commercially because the video codec that they are currently using is not licensed for commercial distribution.
  • Very importantly for me – I am allowed to officially as a Microsoft employee to say that Moonlight is the answer for Silverlight on Linux.

What this does not mean:

  • Microsoft is not going to support Moonlight, that’s still up to Novell and the Open Source community.

Miguel de Icaza‘s post on the subject:

This is the official press release from Microsoft:
Microsoft Delivers Silverlight 1.0, Extends Support to Linux: “Entertainment Tonight” HSN and World Wrestling Entertainment showcase new online experiences; more than 35 partners commit to Silverlight Partner Initiative.

Technorati Tags: , , , ,