The move to solar made sense for Google, and not just "hippie
Gaia-loving" sense. Ravitz said that Google will earn its
investment back in 7.5 years, after which it will continue to
enjoy inexpensive power for decades. With the company sprawled
across a large campus of many low buildings, roof space was
easily available. Solar also has the unique property of
pumping out more energy when power is the most
expensive --- peak afternoon hours. When air
conditioners across California kick into action on sunny days,
Google generates the most power.

Viacom is attempting to rewrite established copyright law
through a baseless lawsuit. In February, after negotiations
broke down, Viacom requested that YouTube take down more than
100,000 videos. We did so immediately, working through a
weekend. Viacom later withdrew some of those requests,
apparently realizing that those videos were not infringing,
after all. Though Viacom seems unable to determine what
constitutes infringing content, its lawyers believe that we
should have the responsibility and ability to do it for
them. Fortunately, the law is clear, and on our side.

A few years ago I met Andreas Proschofsky, a reporter that
knew a lot about Mono dynamics, group and technicalities. It
has ever since a pleasure to do interviews with Andreas as
they are typically interesting conversations.

This year I did not attend the Brainshare conference so we
did an email interview on the state of Mono. And this year
he published
it in English.

Re-reading my replies looks like they were answered by a
robot though, it certainly felt more human when I originally
replied to that email.

The crowd at OSNews got upset because I said advocate more
collaboration between Mono and Microosft. It is hardly news,
I advocated
the same thing in August during an interview that I did
with Sam Ramji from Microsoft, before I knew of any MS/Novell
collaboration.

This is the official blog entry for the spicy Lame
Blog an under-powered, static content, C# and rsync based
blog system.

LameBlog is powered by almost nothing, the idea is that you
edit text files with your favorite text editor on your
computer, and when you feel like publishing your blog entries
you type "make push".

Configuration of LameBlog is done through an XML file and
editing a Makefile. It contains enough so you can hook
reddit/digg and plug your Google Analytics, Google Reader
sharing and to do posts with Google groups.

Ismael Olea has
modified LameBlog for using Haloscan for comments and include
a bunch of "flag me as a cool cat" options.

To download LameBlog, click on "download as tarball" on the
link above, read the README file for details on how to install
this.

Update: folks, I need your help. Please link to
this blog entry, there are tons of Google matches for "Lame
Blog", but only a piece of software deserves to be at the top
spot, not some lame entry about blogging.

The other day Cody Russell
was asking on IRC what we could do in the Mono universe to
take advantage of some special instruction sets like SIMD or how to
use C# to generate code for pixel shaders or vertex shaders.

One idea that we discussed was the creation of a library
that would be able to expose this kind of functionality.

jeevan.james pointed out on the comments to that blog entry
that there is already a project that is working on precisely
this idea.

The project is called Brahma-FX
and is hosted at SourceForge. And its implemented in a
similar spirit that I described on that post.

They use C# as the language to express the shading
operations, they decompile the code at runtime and compile
that to the hardware specific shading system.

The other day Cody Russell
was asking on IRC what we could do in the Mono universe to
take advantage of some special instruction sets like SIMD or how to
use C# to generate code for pixel shaders or vertex shaders.

One idea that we discussed was the creation of a library
that would be able to expose this kind of functionality.
Take for example the following Cg
example:

The Compile method would use the Cecil library to
decompile the code, perform flow analysis and ensure that the
code in the method passed (in this case main) meets the
restrictions imposed by the target (in this case Cg's target).

In some cases (SSE instructions) you might want a delegate
back, or a method token that you could then Reflection.Emit
call. In some other cases you might want the code to give
you some handle back that you can pass to your graphics
hardware.

(Cecil has a very nice flowanalysis engine, the one used by
db4objects to provide the LINQ-like functionality with today's
C# compilers).

The above model can be extended to other operations, and in
some cases the return value from Compile could be just a
delegate to the original method (if the hardware is not
supported).

Today a student interested in doing something very similar
for the Summer of Code emailed me, so I decided to dump here
some of the ideas.

Other Apps: We are also interested in tasks
improving popular Mono-based applications for the desktop to
showcase how great building applications with Mono is. Make
sure you send your submission on time.

The book explores object oriented programming using the Eiffel language and one of the
things that I always loved about Eiffel was the defensive
programming techniques that it teaches and the strong focus on
contracts and preconditions (a technique that is used
extensively in Gnome).

Until very recently I had not noticed it, but the Eiffel
compiler and the Eiffel suite of libraries and even the
development IDE (EiffelStudio) were open sourced (Emmanuel
mentions this to me during the Lang.Net conference and I do
not remember any big news about it).

The problem is that the above is always known to be false
(dt can not be null), so CSC generates generates the
equivalent to "if (true)" every single time (it becomes a
no-op).

Adding support for this to the Mono compiler is simple
enough but this sounds wrong. Because those testing a value
type against null are doing a pointless test and they might be
under the mistaken impression that the test is guarding them
from an invalid state which it is not.

A few folks have reported this, but I can not find any
rationale for this in the ECMA spec, it sounds like a bug in
Microsoft's compiler related to the nullable-type support in
their compiler.

What: We are looking for someone that would be
interested in porting the Ahead-of-Time compilation engine in
Mono for ARM processors and look at improving Mono startup
performance on small devices.

You would work on both the virtual machine and the class
libraries to improve performance and reduce memory usage for
embedded systems.

Experience with assembly language, compilers, virtual
machines, performance and garbage collectors will be useful,
but it is not necessary. We are looking for a talented
individual that is not scared by hard tasks.

How: If you are interested, email me, you will later receive a challenging
interview to respond to.

Where: You can either work in the Boston office, or
from home.

Why: Because we got a fantastic logo, which is much
better than Microsoft's logo for .NET and working on Mono is a
blast.

If you thought that Europe was less than supportive towards
the Iraq war you have not seen Latin America. Unlike the US
population that has kind of grown tired of the Iraq war in the
last year, Latin America has been fuming over the retardedness
of it way before it started.

He is not going to meet a friendly audience, so unless he
throws money out of the windows, announces a withdrawal from
Iraq, agrees to pay reparations and announced an "open doors
policy" this trip is not going to win him any bonus points.

GUATEMALA CITY - Mayan priests will purify a sacred
archaeological site to eliminate "bad spirits" after President
Bush visits next week, an official with close ties to the
group said Thursday.

"That a person like (Bush), with the persecution of our
migrant brothers in the United States, with the wars he has
provoked, is going to walk in our sacred lands, is an offense
for the Mayan people and their culture," Juan Tiney, the
director of a Mayan nongovernmental organization with close
ties to Mayan religious and political leaders, said Thursday.

Jackson has a couple of blog entries where he discusses how
to use memcached for
doing output caching of ASP.NET pages. Memcached was
created to improve the performance of LiveJournal:

Danga Interactive developed memcached to enhance the speed of
LiveJournal.com, a site which was already doing 20 million+
dynamic page views per day for 1 million users with a bunch of
webservers and a bunch of database servers. memcached dropped
the database load to almost nothing, yielding faster page load
times for users, better resource utilization, and faster
access to the databases on a memcache miss.

His memcached module is described here
and an explanation on why and how to add caching to your
ASP.NET controls is here.

What is interesting about Jackson's approach is that it
hooks up to ASP.NET's caching system and allows caching to be
parameterized based on some values (for example, your login
name would update only the login-bound information, but
information that does not depend on this would be rendered
from the cache).

Hopefully Jackson's work will become a standard part of
Mono installations in the future.

Windows.Forms 2.0 Updates

Jonathan Pobst has posted some screenshots showing the
progress from Mono 1.2.3 released a few weeks ago and the
current SVN for some of the 2.0 Strip controls:

click for full image.

The Winforms team has been using our Paint.NET 2.72 port as
a test case, see Jonathan Pobst's blog for more screenshots.

Jackson is also running a screenshot
contest for Mono's Windows.Forms.

We have run into a number of small problems with our TDS
provider when porting applications that use MS-SQL stored
procedures. Luckily Andreia Gaita has a patch that should be
going into SVN in the next couple of days that resolves that.

Very soon we will be launching the The Race to Linux
2.0 together with Mainsoft and IBM. The goal of the
Race to Linux is to have ASP.NET developers port applications
from Windows to Linux.

Wii consoles will be given out as prizes. Guys, it is a
lot easier to port an application in ASP.NET from Windows to
Linux in a record time than it is to keep bidding on EBay for
the console and the controls. Been there, been outbidded time
and time again.

The contest will start on March 23rd, if you are interested
in participating, check the Race to
Linux 2.0 web page.

Also, Joe Audette has written a tutorial on how to he setup
a Mono Development machine here
for those that want to roll out your own installation instead
of using our VMware image, but also contains tips for those
who want the latest and greatest:

Folks, it has come to my attention the fact that my blog
uses Google Groups is not very Web 2.0-ish, or is not very
bloggy of me or something. Either that, or people have not
been flaming me in public as much as I hoped to.

Part of the challenge is that my blog system is based on
purely static HTML pages, and I would like to keep it that
way. I get it for free (Thanks Gonzalo!) and server side
solutions feel like cheating.

So I had a two-prong idea to address the issue:

Add some comment form at the bottom that would
post to the Google Group.

Add some Json Magic to load the comments that are
posted on the Google Group to be rendered on each blog
entry.

Now, it seems that posting to the Google Group requires to
be signed on to the group, am not sure if that is even
fixable, but I would love to hear your thoughts.

Now, the second issue must be solvable, there must be a
simple set of steps, an HTTP url I can query that would load
the content from Google Groups and then render it with some
magic jay-son love on the client (just like the cute "shared"
links thing on the right side of my blog).

Google probably already has some JSon generator for this,
but I have been unable to Google this information. If anyone
knows how to do this, please share your thoughts.

Again, the trick is that even if I could setup a
server-side thing in my hosting provider, it has no hack
value. So the trick is basically to do this without burning
any CPU cycles on the blog server, am fine with delegating the
cycle burning to third parties.

A combination of Yahoo Pipes, Google searches and clogging
the
series of tubes with tremendous amounts of material,
tremendous amounts of JSon material are all acceptable
solutions.

What is not appealing is going back to a technology which is
single sourced and controlled by a single vendor. If web
applications liberated us from the domination of a single
company on the desktop, why would we be eager to be dominated
by a different company on the web? Yet, this is what Adobe
would have us do, as would the many who are (understandably,
along some dimensions, anyway) excited about Flex? Read Anne
Zelenka’s post on Open Flash if you don’t think that Flash
has an openness problem. I’m not eager to go from being
beholden to Microsoft to being beholden to Adobe.

And later touches on OpenLaszlo, but OpenLaszlo is a
server-side engine used to generate Flash, so the runtime
remains the same (Yes, I know that Laszlo can now generate
DHTML, but Ted's point was that Javascript was too slow for
large apps running on a browser).

Dare wants to add WPF/E to the list of web development
technologies, and argues:

Ted Leung mentions two contenders for the throne; Flash/Flex
and OpenLaszlo. I'll add a third entry to that list, Windows
Presention Foundation/Everywhere (WPF/E). Before discussing
what it will take for one of these contenders to displace
AJAX, I should point out that being "open" has nothing to do
with it. Openness is not a recipe for success when it comes to
development platforms. According to TIOBE Java is the most
popular programming language today and it was a proprietary
language tightly controlled by Sun Microsystems. Before that,
it was commonly stated that Visual Basic was the most popular
programming language and it was a proprietary language
controlled by Microsoft. I believe these count as existence
proofs that a popular development platform can rise to the top
while being controlled by a single vendor.

WPF/E has a number of challenges ahead of it: Flash-based
development environments are very advanced both for designers
and developers and are going through their Nth iteration,
while WPF/E is not even officially launched.

WPF/E is currently limited to Windows and the Mac, which
you could argue makes up the majority of the platforms, but
Flash works today on Linux and various embedded systems and
portable systems.

But like Flash, it is another proprietary tool, and the
whole point of Anne
Zelenka's post and Ted's comment. He wanted something
that did not lock him into a vendor.

WPF/E best feature is probably the fact that generating
XAML files is trivial and requires no special tools or
compilers. echo, cat and perl will generate XAML output right
away. A bonus feature would be deserialization from a JSON
structure in addition to XML.

WPF/E feels more webby than Flash does.

Then again, Flash could add support for hydrating elements
from an xml or json sources as well.

Unlike its "big brother", WPF, the WPF/E is framework looks
fairly simple so far. The subset of WPF is reasonable, it is
sufficiently opaque that a developer with a lot of spare time
in its hands could implement it fairly rapidly.

A major drawback seems to be the use of WMV as a video
format. If there is one thing that the video industry has
learned is that WMV and MOV do not work. They barely work on
their native platforms, they are ridden with glitches,
upgrades sometimes break and of course they do not work on
Linux.

Ignoring the WMV file format support, WPF/E has so few
external dependencies today, that someone looking for a cool
use for Antigrain
could implement a prototype in a few weeks and get a community
going in no time to finish it up (Alp has been showing around
his record-time XPS renderer and viewer around).

Flash as an Open Platform?

Flash has really succeeded in the area of working out of
the box, even on the Linux desktop the experience is
outstanding (the proprietary Flash).

The best possible outcome for the world would be to follow
Sun's path in open sourcing Java and open source both
Flash and WPF/E.

Adobe is not making any money on the Flash player today on
the desktop. On the mobile space the story is different, they
could probably license Flash under terms that required mobile
vendors to get a proprietary license (I imagine they could
look into what Sun did with their mobile runtime, which would
be a similar situation).

Microsoft is not going to be making any money on the WPF/E
player either, and since they are limited to Windows and MacOS
X (today) they are not going to be making any money on that
one either.

If Microsoft is serious about WPF/E, open sourcing it would
eliminate the doubts about WPF/E's future and the fact that
some people perceive WPF/E to be a slippery slope to a full
blown WPF use and tie-in (in my opinion, it is more of a rocky
slope to move a WPF/E app to a WPF one).

Dare on Java

But I think that Dare gets this wrong:

Before discussing what it will take for one of these contenders
to displace AJAX, I should point out that being "open" has
nothing to do with it. Openness is not a recipe for success
when it comes to development platforms. According to TIOBE
Java is the most popular programming language today and it was
a proprietary language tightly controlled by Sun Microsystems.

Even if Java was tightly controlled by Sun in the past,
they did have a mechanism that was open enough to get third
party companies involved in the future of Java.

Anyone could argue that the JSR process has managed to mess
up key components like Generics and has inflicted humanity
with mistakes like the J2EE stack.

But the JSR process is still relatively open. And even
before Sun open sourced Java in November there were a number
of independent Java VM vendors, both open source and
proprietary (specially on the embedded market).

Java became successful because it filled a space that was
previously not properly serviced. At the time it hit a sweet
spot.

In the meantime, as far as Rich Internet Application
development goes, we will continue to use a mix of
technologies. It seems that the browser is becoming the
universal runtime and it has opened the doors for incredible
opportunities with the mashups. WPF/E is ready to enter the
mashup scene, something that am not sure WPF will ever do.

Ted's Update

So I got to Mexico and my 3G connection did not work, so I
repeated the European steps and called Cingular Tech Support
to complain that something was wrong with my 3G card in
Mexico.

Since neither the 2g or 3g lights turned on and this was
working in Boston and Washington, it must have been some
configuration issue on Cingular's side.

I explained to the tech guy my situation, and he walked me
through the usual "connection manager", "try a different
setting", "eject your card", and so forth and I pretended to
do the Windows steps with the equivalent Linux command as far
as I could.

My goal in this call was to avoid saying that I was using
Linux, I feared they would just say "Sorry, we dont support
that" and hang up.

There was the dangerous "What does the connection manager
say?", to which I replied "Mhm, no network". And "What
version of it you have?" to which I replied "Well, I use the
equivalent, its called yast".

But then the fatal, "Which version of Windows is this?" to
which I had to say "Linux".

Contrary to what I expected, he said "Can you configure the
AT commands or enter them?", I said I could, I launched
minicom and he walked me through the process of configuring
the Sierra card (probing for providers, selecting the
provider, reseting the card).

He determined during the call that there was a setup
problem with Mexico's provider, he was able to patch that
stuff on their end and got me going with a 2g connection after
a little while.

There is no blog entry that can make justice to how good
this was. The tiniest details were taken care of, like
having food and drinks all day (for those of us who could not
make it to our hotel breakfasts this was a life saver).

I think that part of the success of FOSDEM is that after
the conference adjourns, folks can go back to the hotels,
freshen up, go to dinner and then bar hoping and run into the
attendees until 3am in the morning.

FOSDEM deserves a full blog post in full detail, but for
now a big thank to everyone that made this possible. I have
not enjoyed a conference this much for years.