Posts

gmcs in Visual Studio

Image
I was trying to learn a bit about MSBuild today and how things get built in Visual Studio, and I came across a cute little hack. I may be the last person in the world to discover it, but I still thought it was neat. If you go to: C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.CSharp.targets around line 145, and delete these two lines: ErrorReport="$(ErrorReport)" FileAlignment="$(FileAlignment)" and around line 166, change these two lines: ToolExe="$(CscToolExe)" ToolPath="$(CscToolPath)" to this: ToolExe="gmcs.bat" ToolPath="C:\Program Files (x86)\Mono-2.2\bin" (your ToolPath may vary) when you build your C# projects in VS2k8, it will build them with Mono's C# compiler "gmcs" instead of Microsoft's "csc" compiler. (If you try this, you should of course backup your Microsoft.CSharp.targets file.)

Lemons and Lemonade

Image
What started as criticism that Linuxers couldn't watch the official Inauguration stream due to the use of Silverlight: - OSNews - Inauguration on Silverlight: Some Linux Fans Upset - ZDNet - Some Linux backers upset about selection of Silverlight to stream Obama inauguration events Ended not only with Linux users being able to watch the stream, but with Linux being advertised to the tens of millions (?) of people watching the official stream on the official website on their Windows and Mac PCs: That is advertising money can't buy, even if we included Linux with every commemorative plate sold! One small step for Silverlight, one giant leap for Linux!

Motivation

Image
How could anyone not be motivated after seeing such a dynamic and exciting book cover like this!

A Little Bit of Style

Image
Previously , I had mentioned that there were two SoC projects for Mono this year that I was particularly interested in. The second project was the one I mentored: George Giolfan's work to bring native rendering to Winforms. Currently, our Winforms implementation mimics the "Win32 Classic" look, also known as looking like "ass". It has been important to support this default .Net look, and has provided us with a consistent target, but now George has provided us with something better. Winforms has the System.Windows.Forms.VisualStyles namespace, that provides access to native rendering on Windows. George has implemented a theme that uses this namespace, to achieve much better looking applications. His work initially focused on writing this for Windows, as the VisualStyles namespace is already implemented for Windows. Although this currently doesn't work on Linux/OSX, the massive amounts of refactoring that George had to do will make it much, much easier to...

Smart Client Software Factory on Mono

Image
Recently, Miguel posted that Microsoft's Enterprise Library 4.0 is now available under the Ms-PL, a Mono compatible open source license. This week, I downloaded the Smart Client Software Factory (SCSF) to see if it would run under Mono. It comes with a QuickStart tutorial called BankShell that I used to test with. I hit two bugs in Mono: 430932 - IsolatedStorageFile.GetStore throws exception 431001 - Exception using XmlTextReader after stream is disposed I also hit one bug in the SCSF: 18740 - ModuleInfo constructor not cross-platform safe After commenting out or working around the offending lines, the BankShell application popped up and seemed to work nicely. The sample application looks simple, but it's actually pretty complex. Each UI element is in a different assembly. The "composite application" dynamically loads each one and places them. The theory is that the application can be broken down into smaller pieces that can be distributed to different teams t...

Hack Week 3

Image
As part of this year's Google Summer of Code, there were two projects that got chosen that were on my personal 'to-do' list. I was happy these projects got chosen because frankly, my to-do list is not getting shorter nor are the days getting longer. One of these is Ed Ropple's "Cloverleaf", which is an add-in to Visual Studio designed to facilitate writing and testing applications in Mono. We decided on the following features: - Test in Mono: Clicking this would run the current solution/project on the Mono runtime on Windows. - Scan with MoMA/Gendarme: Clicking this would run MoMA or Gendarme (which can run MoMA) on the solution/project. - Test on Linux: Clicking this would take the solution/project output and copy it to a Linux machine or virtual machine, and automatically start it. Ed did some great work over the summer, so for my Hack Week project I started polishing and packaging his code so we could get it into people's hands. Unfortunately, I ...

On Bug Triaging

I thought this was a very interesting article on triaging bugs. It uses 3 metrics: * Type : What type of bug is this? For example is it a crashing issue, a problem with localization or a matter of visual polish? * Likelihood : How likely are users to experience the bug? For example, does everyone run into the issue or do only a few users run into it? * Priority : Of the people who experience the bug, how badly does it affect their experience with the product? Each metric is assigned a number, which when multiplied together produces a number representing "user pain", that is, how much pain it causes users. Bugs can then be sorted by this number, and you fix bugs from the top. It's a shame bugzilla doesn't really offer much flexibility for stuff like this. I'm not saying this is the best way to prioritize bugs, but it would be nice to have some ability to try out different methodologies.