New iOS/OSX blog

by Miguel de Icaza

I have started a new blog on my iOS/OSX experiences with MonoTouch and MonoMac over at

Posted on 30 Nov 2010

David Reveman lands GPU acceleration for MoonlightÂ…

by Miguel de Icaza

David Reveman had a great birhtday present for me today. He just completed the hardware accelerated support for Moonlight.

You can watch two quick videos I made today with David: Hardware acceleration with Moonlight and Moonlight 3D Perspective Support.

In Moonlight hardware acceleration is used for a number of features:

  • Applying 3D transforms to any Silverlight objects (drawings, images, videos).
  • Accelerating rendering of surfaces by pre-caching the contents on hardware textures.
  • Pixel shaders.

Although Silverlight is able to accelerate some pixel shaders, Moonlight is able to accelerate all custom pixel shaders.

The code currently lives on GitHub and we are doing daily builds of Moonlight for users interested in trying it out.

Posted on 23 Nov 2010

MonoDevelop 2.4.1 is out

by Miguel de Icaza

MonoDevelop 2.4.1 has been released. This release is focused mostly on bug fixes, but we still managed to add a few nice features:

  • we now support .NET 4.0 projects;
  • the Gtk# designer now works on OSX;
  • better native OS integration on Mac and Windows.
  • Improved support for XBuild projects

Check out our release notes for the details about our changes.

Posted on 22 Nov 2010

Fund Raising 2.0

by Miguel de Icaza

It occurs to me that in this whole debate over angels and VCs, there is an important third option that is missing from the table and I have been referring to it colloquially as "Social Network Offering", or SNO.

The idea is that instead of raising money directly from an angel investor or a professional venture capitalist, you raise money through a network of friends, acquaintances and contacts in the industry.

The startup to-be creates a prospectus with some basic information like the business they are in, the execution plan, and the capital requirements to go from startup to profitability, acquisition or another exit strategy.

So far, that is not any different than any other financing option available for a startup. The difference is how the share holders are invited into this process. Instead of being a closed door event where the angel or the vc sets the terms, the founders of the company set the terms for the investment as well as the initial round of capital that they are trying to raise and offer this to the social network.

The Social Network Offering round would be setup through an escrow system that would give different investors a chance to participate in the first round of finacing, and if enough startup capital is raised in this phase, the money is given to the company and shares are distributed to the investors. If the startup fails to raise enough capital, the money is returned to the investors.

Social Network Offerings are transparent in nature. They would not work well if you are trying to create something in secret, something that nobody has ever heard of, since you would need a level of secrecy for this to work. But it would work great for business built around open-core, or business where the strategy is to do it better than existing offerings.


If you have a social network of friends that can help you raise this kind of cash, the advantages are:

  • Your social network knows you better than a new VC firm or an angel.
  • Individuals that have historically not had a channel to invest in startups, get a chance to participate. This is fairly unique.
  • Easier to keep the company vision intact.

There are also some downsides to go with Social Funding: VCs can help you get a seasoned executive team in place, they assist you by filling the gaps during the early stages of the company, they let you tap into their network of companies and resources and they will not hesitate to course-correct any ideological problems that do not necessarily blend well with becoming profitable.

What is your take?

If you had a chance to invest on a high-tech startup, how much of your own money would you be willing to put up-front for something like this?

Fill my survey here.

Update: On twitter, @eoinh pointed out that one company already did something like this. They used Linked-In to raise 350,000 dollars through their contacts, and found matching funds from the government raising the total to 700,000.

Posted on 17 Nov 2010

GitHub Organizations for IronLanguages and F#

by Miguel de Icaza

The IronPython and IronRuby languages are now under the "IronLanguages" umbrella and are being maintained using GitHub's Organization support.

Tomas has also created an organization for F#, it currently hosts the MonoDevelop F# Add-In, and we are going to maintain there F#'s changes that we make in the open source world to get it tuned for Linux and OSX.

Posted on 17 Nov 2010

F# MonoDevelop Add-In Available

by Miguel de Icaza

Tomas Petricek has announced the availability of the F# MonoDevelop Add-In.

The add-in provides intellisense for MonoDevelop, inline documentation and access to the F# interactive shell. Most of the heavy lifting is done by the F# compiler itself which is used directly by the Add-In as a service:

His blog also has screencasts on getting F# and the F# add-in installed on Linux and also shows how to create Gtk# applications with F#:

Check his blog for more details.

Posted on 16 Nov 2010

Mono Developer Room at FOSDEM

by Miguel de Icaza

Ruben has announced that FOSDEM 2011 was kind enough to host a Mono Developer Room at next year's conference.

Ruben is organizing the talks, if you want to present, please submit a proposal for a presentation.

There are plenty of topics to discuss: Gtk# and the Gnome desktop; MonoDevelop and MonoDevelop add-ins; Mono Runtime; Languages: Iron*, UnityScript, C# 4, F#; Server programming with Manos or ASP.NET.

Posted on 15 Nov 2010

New Mono Log Profiler

by Miguel de Icaza

Paolo has checked into Mono's GIT repository our brand-new profiler for Mono applications.

The new profiler is documented in detail here, and is available with Mono 2.9+ (this means: it is available if you build Mono from GIT, and will be part of the upcoming 2.10 release).

We would love to hear your feedback on it, and we hope to have a UI integrated into MonoDevelop soon.

Update: This is what one of the reports of the new profiler can produce, this is taken from running an ASP.NET application (a question that came up a few days ago on IRC):

       Heap shot 5 at 14.518 secs: size: 43684432, object count: 562907, class count: 543
            Bytes      Count  Average Class name
         10506984      87373      120 System.Collections.Hashtable.Slot[] (bytes: +1939272, count: +16161)
               87346 references from: System.Collections.Hashtable
          8130304      87486       92 System.Int32[] (bytes: +1706912, count: +16164)
               87346 references from: System.Collections.Hashtable
               40 references from: System.Collections.Generic.Dictionary
               30 references from: System.Globalization.NumberFormatInfo
          6846000      57050      120 System.Web.Caching.CacheItem (bytes: +1232880, count: +10274)
          4891432      87347       56 System.Collections.Hashtable (bytes: +904176, count: +16146)
               28526 references from: System.Web.HttpStaticObjectsCollection
               28525 references from: System.Threading.ReaderWriterLock
               28524 references from: System.Web.SessionState.SessionStateItemCollection
          1597344      28524       56 System.Web.SessionState.InProcSessionItem (bytes: +287672, count: +5137)
               28524 references from: System.Web.Caching.CacheItem
          1597344      28524       56 System.Web.SessionState.SessionStateItemCollection (bytes: +287616, count: +5136)
               28524 references from: System.Web.SessionState.InProcSessionItem

	This heapshot was taken 14.518 seconds after application startup, at the
	time there were 562907 objects in the heap, of 543 different types,
	using about 43 MB of memory.

Posted on 11 Nov 2010

F# Goes Open Source

by Miguel de Icaza

Last week, Don Syme announced that Microsoft has open sourced the F# compiler and the F# core libraries under the Apache 2 license.

In addition, on Tuesday, Don also announced a new release that fixes a handful of bugs specifically for users targeting Mono.

F# is a fascinating language, but I had not really spent much time with it as we could not really distribute it as an open source compiler limiting its usefulness in the Linux and Mac worlds. Now F# can become just another language that developers can use.

F# supports asynchronous programming today, and it was the inspiration for C# 5.0's async support. There is no need to wait for C# 5 to come out, you can start using async workflows today with F# everywhere.

MonoDevelop plugin

At the F# in Education workshop Tomas Petricek announced his MonoDevelop add-in for F#. Although he has not released a binary add-in, the source code to his plugin is available here. It provides intellisense, parameter documentation, on-the-flight error underlying and support for the F# interactive shell from the IDE.

Distributing F#

Our plan is to distribute F# as part of Mono for both OSX and Linux. This will take some time, in the meantime, check for instructions on how to get started with F# on MacOS and Linux.

It will likely run out of the box on Mono/Android and Mono/Wii. Since F# uses generics extensively, we do not know if it can be used to target the iPhone or the PS3 as both require Mono's full static compiler. We will be evaluating this in the coming weeks.

Don, minutes after open sourcing F# enjoying a tasty meal.

F# Resources

These resources are straight from Don's blog:

Posted on 11 Nov 2010