Saturday, October 22, 2005

Tropical Storm Alpha (we ran out of names)


I knew our dominican experience would not be complete without a little tropical storm. If it has to be, I am happy its name is a greek letter.

See that line? I goes straight over my home.

Monday, October 03, 2005

One Laptop per Child

The MIT Media Lab has launched a new research initiative to develop a $100 laptop—a technology that could revolutionize how we educate the world's children. To achieve this goal, a new, non-profit association, One Laptop per Child (OLPC), has been created. The initiative was first announced by Nicholas Negroponte, Lab chairman and co-founder, at the World Economic Forum at Davos, Switzerland in January 2005.

I think this is an amazing concept. You can read about it here and even see some pictures here.

I have been a fan of the Media Lab since I was 12 years old, and I am happy they are coming with such an ambitious project. I see this is the realization of a dream for Nicholas Negroponte, Seymour Papert and for Alan Kay. I hope they will have a great success.

What Negroponte says about taking the fat out of the system is right: "Two-thirds of their software is used to manage the other third, which mostly does the same functions nine different ways." I hope the project will get massive support and will trigger a race for sleekness across the software industry.

Probably because of the lack of deep technical detail in the announcements I have read so far, there a few concerns in my mind:

  • Hardware expandability: They say the laptop is not going to have much storage space. I hope it will be easy to expand storage with off-the-shelf hardware. The USB ports are a good start.
  • Software extensibility: They speak about a P2P mesh developed by the Media Lab. They also say the computer is not going to be available to individuals. They will run Linux, and while Linux is widely available, there is a binary compatibility problem among different versions of Linux. I wonder how easy it will be to target the computer for software writers.
  • Software platform lock-in: You can easily see what the commercial companies sponsoring the initiative, including Red Hat and Google, are looking for with this project: A big PR campaign, and a huge captive user base. I wish the software story were more open. Don’t take me wrong. I want this project to be feasible. I just don’t like the idea of any government paying hundreds of million of dollars to force those brands through children throats all around the world. It smells as something either fascist or corrupt or both things at the same time. It would be the same if Bill Gates funded the program. This concern gets addressed if there is choice.
  • One-way globalization: I happen not to fully understand the globalization phenomena, although I have heard assertions from many people that think they do. The fact is globalization sometimes seems to be a one-way path. In poor countries, it usually takes more from people than what it gives to them, most likely because they are less prepared for the exposition. A computer, even if it is the most powerful thinking tool of all times, can also be used as a broadcast, one-way device. What originated as one of the most massive empowerment initiatives of all times could end up being the final stab for local cultures and become a powerful tool of oppression. Anyway, I know the minds behind the project would rather cut their hands than do that damage.

Sparkle performance

John Gossman answered my silly comment to his previous post about Expression Interactive Designer (aka Sparkle):

In my history of Sparkle I mentioned I had worked on ToolBook. That solicited this comment:


Asymetrix's ToolBook? Wow, that was so ahead of its time! Just make sure Sparkle runs faster! :P Sorry, could not resist. I am sure Sparkle will rock.

We are currently in a performance milestone on Sparkle, dealing with our obvious perf problems and reporting real and potential Avalon perf problems to that team. The good news is overall perf is good. Startup is fine, working set is fine, but as these things go we have individual areas that don't scale well or just are awful. In Avalon you build your UI compositionally by creating Templates that generate elements for the structure. For example, rather than a Button having a Render() method that draws a bunch of rounded rectangles and text, you create a Template of primitive Shape and Text Elements, include a layout container like a Grid or Canvas and every time the system sees a Button it stamps out a copy of all those elements. Elements are not free however, and if you aren't careful with your Templates they can explode into huge structures without you noticing. This is a working set hit and layout and render takes longer. We added commands to our diagnostic menu that let us count the number of elements in different parts of the tree and dump them for further study. When we started perf work before the PDC Sparkle would startup with over 8000 elements in its UI. Today that is down to 3000 with no difference in the look and feel. I expect this number to improve considerably this week and more next as more changes come in. We virtualized some things and just got more careful in a bunch of places.

Now, let me tell you, I am trully ashamed. Did you see Sparkle running? If not, go to see the Channel9 video? It is one of those things that make me drool.

This is my answer to John, I wrote originally in his blog comments:

John, all this made me blush a great deal, however I am happy my comment led you to speak about Sparkle’s performance characteristics. I am also glad you are making so much progress. I saw in the videos on Channel9, and I think Sparkle already looked VERY impressive before the PDC.

Now, I have one concern: Not that we are all going to write such a complex UIs, but it appears that making a sophisticated Avalon application reach good performance takes much tuning.

Now, I am a newbie, but I assume that by virtualization you mean that you create and dispose (perhaps reuse?) UI elements whenever they become visible or hidden. Wouldn’t it be nice that this kind of optimization were performed by Avalon itself? This could be especially useful, since I think there is a balance to be kept among working set (number of elements) and creation-destruction rate.

And thanks for the inside story of ToolBook. I didn't use the product a lot, but I have a friend that did, and I always had a great respect for the technology.

Tuesday, September 27, 2005

Sophisticated SPAM

Yesterday I received an email saying something like "What is this about? Stop sending me email". The almost obvious intent was that I answered so they could validate my email account is active and I am silly enough to buy from spammers.

Today I received what seems to be a "reply to all" to the first email saying something like "Why did you accuse me of sending that email?"

So now the intent is to make the first email credible, so if I feel smart enough to help everybody else understand SMTP, but I am actually fool enough not to detect this is a scam, I would then send an answer.

No way!

But, I must say I haven't seen a scheme like this before. So, congratulations spammers! Cockroaches do not take evolutionary leaps this often.

Sunday, September 25, 2005

The WSJ Story on Microsoft's Overhaul

A very interesting read, even if not technically deep, Battling Google, MicrosoftChanges How It Builds Software, tells us everything we wanted to know about the Longhorn delays.

By late October, Mr. Srivastava's team was beginning to automate the testing that had historically been done by hand. If a feature had too many bugs, software "gates" rejected it from being used in Longhorn. If engineers had too many outstanding bugs they were tossed in "bug jail" and banned from writing new code. The goal, he says, was to get engineers to "do it right the first time."

Recognizing Mr. Gates's concerns over the impact on programmers, Mr. Srivastava hit on a plan to win their hearts and minds. On Nov. 5, he visited the computer-filled office of Dave Cutler, a revered elder statesman among Windows engineers and a stickler for good code writing. Would he publicly throw his weight behind the new approach? Mr. Srivastava asked.

On Dec. 1, Mr. Srivastava escorted Mr. Cutler to Microsoft's auditorium where the software guru told 1,000 engineers that he had used the tools to build Windows code that was nearly bug-free. That Mr. Cutler -- famous for never attending meetings -- would emerge to back Mr. Allchin's revolution helped persuade some engineers to drop their objections.

I have to say I didn't know there was such a level of dissent about Longhorn, but I see it as something very natural and healthy.

Over anything else, I am glad that Amitabh Srivastava was onboard to help solve this crisis at Microsoft.

With all those press stories reporting the "millions of lines of code" in Windows and the heroic lives of the build team members, I have been convinced for some years that Microsoft was inexorably going to hit a hard boundary. Of course, I am not a genius, so for sure many engineers inside Microsoft knew about the problem better. It is amazing, however, that things got to become that ugly before somebody changed the process.

If you also feel that the WSJ article lacks the technical detail you need, look at the Center for Software Excellence page for an idea of what this people used to streamline the Windows Vista continuous integration process.

By the way, do you remember TracePoint? That was Amitabh old job. I do remember downloading it and testing it against my Visual Basic code of that time. It was a wonderful piece of code, incredibly easy to use and useful for optimizing your code. Never again I saw something like that.

I guess next week I will pay more attention to the code analysis tools in Visual Studio 2005… Yes I hope whatever Microsoft is using will eventually get integrated into Visual Studio Team System. After all, developing a mid-sized system with just thirteen assemblies at the office, has proven a nightmare at times.

UPDATE: After thinking a little bit more about this, I am now convinced that the measure of letting lower level executives take more decisions about products by themselves makes a lot of sense.

This means higher level executives accept some things are not in their radar and they may be wrong, so let the people that are more in contact with product development should have the last word.

In this case, the hard boundary I mentioned, that Windows was getting too difficult to integrate, wasn’t probably in Bill Gates radar.

Go Live License for Visual Studio 2005 Release Candidate

I am happy to report that this has changed, or maybe previous reports that Go-Live was only for Beta 2 were wrong:

Visual Studio 2005 / .NET Framework 2.0 Go-Live License
Microsoft’s Beta EULA does not permit production deployments of customer applications. In response to strong customer demand, Microsoft will provide an addendum to the EULA for some of the pre-release products listed below. If you are interested in deploying an application built with Visual Studio 2005 Beta 2 or Visual Studio 2005 Release Candidate in a live production environment, please see the Visual Studio 2005 / .NET Framework 2.0 Go-Live License.

Visual Studio 2005 Team Foundation Server Beta 3 Go-Live License
Visual Studio 2005 Team Foundation Server Beta 3 can now be used in a production environment. Microsoft is committed to supporting a complete migration from Beta 3 to the final RTM version of Team Foundation Server. Details of the Visual Studio 2005 Team Foundation Server Beta 3 Go-Live license will be forthcoming.

I think I asked about this in the comments of some Microsoft blogger, before. I wish there were an easy way to find my comments and add the good news.

UPDATE: I found the comments I placed in Soma's blog. He responded himself to the question about the Go-Live License here. Thanks!

Thursday, September 22, 2005

Finally, someone I seem to agree completely with

Following, there is some kind of mini-easay a man called Joshua Ellis wrote. I don't know him , although this seems to be his worst photography, wow! ;). In his esay he seems to write a nice synthesis of my own political position, just written in "good" English:


I think the problem is that the future, maybe for the first time since WWII, lies on the far side of an event horizon for us, because there are so many futures possible. There’s the wetware future, the hardware future, the transhumanist future, the post-rationalist (aka fundamentalist) future.

And then there’s the future where everything just sort of keeps going on the way it has, with incremental changes, and technology is no longer the deciding factor in things. You don’t need high tech to change the world; you need Semtex and guns that were designed by a Russian soldier fifty-odd years ago.

Meanwhile, most of the people with any genuine opportunity or ability to effect global change are too busy patting each other on the back at conventions and blue-skying goofy social networking tools that are essentially useless to 95% of the world’s population, who live within fifteen feet of everyone they’ve ever known and have no need to track their fuck buddies with GPS systems. (This, by the way, includes most Americans, quite honestly.)

You can’t blame them for this, because it’s fun and it’s a great way to travel and get paid, but it doesn’t actually help solve any real problems, except the problem of media theory grad students, which the rest of the world isn’t really interested in solving.

Feeding poor people is useful tech, but it’s not very sexy and it won’t get you on the cover of Wired. Talk about it too much and you sound like an earnest hippie. So nobody wants to do that.

They want to make cell phones that can scan your personal measurements and send them real-time to potential sex partners. Because, you know, the fucking Japanese teenagers love it, and Japanese teenagers are clearly the smartest people on the planet.

The upshot of all of this is that the Future gets divided; the cute, insulated future that Joi Ito and Cory Doctorow and you and I inhabit, and the grim meathook future that most of the world is facing, in which they watch their squats and under-developed fields get turned into a giant game of Counterstrike between crazy faith-ridden jihadist motherfuckers and crazy faith-ridden American redneck motherfuckers, each doing their best to turn the entire world into one type of fascist nightmare or another.

Of course, nobody really wants to talk about that future, because it’s depressing and not fun and doesn’t have Fischerspooner doing the soundtrack. So everybody pretends they don’t know what the future holds, when the unfortunate fact is that — unless we start paying very serious attention — it holds what the past holds: a great deal of extreme boredom punctuated by occasional horror and the odd moment of grace.

I don't know you, but all I see lately is facists everywhere.

Thanks go to Dare Obasanjo for the link.

Monday, September 19, 2005

The horrible state of empathy

First, there is this article in CRN that states Microsoft Opens Security Service Beta To All in the title, but then says it is only open to U.S. residents. Gregg Keizer signs as the author. His last name doesn't seem to be very American, does it?

Reminded me of the video clubs here in the Dominican Republic. They all have a small section called "Foreign Cinema". There you will find all non American movies, including the few Dominican movies that they have... I figure globalization didn't work both ways here!

Now, for a really crude sample on how bad is the state of empathy in this world, you can read this Russell Beatie's post:

Now we know why they didn't walk out of New Orleans

Darn, I am so disappointed!

Saturday, September 17, 2005

Happy to be in the .NET side of the fence

Dave Wheeler is concerned because C# is becoming more complex in 3.0:
C# 3.0 is reaching a point where a developer with only a few months experience will be unable to read what an "advanced developer" will be writing for, say, data access. This has an impact, particular on businesses that are looking to hire developers to work on their applications. If you like, the total cost of ownership of a developer is going to go up, because they will need more training and more experience before they can get into the code to maintain it.

This is an important point of view, but only one part of the puzzle.

Even if Microsoft is trying to differentiate the languages and make VB more RAD like than C#, Visual Basic is generally taking the same route with LINQ.

I think Microsoft expects the increase in productivity will more than compensate for the increase in complexity. And given what I have seen about LINQ (and all the LINQ supporting features that are being added to the languages), I think this is how things will be.

But there are ingredients in the mix:
  1. You can expect more good designers (graphical RAD tools) from Microsoft, that will help encapsulate complex components, the way the Typed DataSet designer does in Whidbey. So let those designers come to the rescue both for pros and beginners.
  2. With DLINQ most of the magic is under the hood. You don't need to touch the mapping of the database tables with the data types in your code. Less code to mantain, fewer bugs.
  3. Using queries, lambda expressions, comprehensionsons, class extensions, projections or whatever, is not something you will do to obscure your code. All those features, when used in the right context, have the power to simplify code. They take less lines of code, are more natural, and just make more sense than the existing practices. Compare a query expression with tens of lines of spaghetti concatenated SQL, field accessors data type conversions and null checks. That is expresiveness.
  4. If the names of these features seem frightening, just use friendlier names.
  5. There is nobody more conservative about adding features to C# than Anders. You can be sure for every feature added, there are thousands that never left the whiteboard.

As a developer I am today very happy with the investment I have made in .NET. Let's see how long it takes now for Java to catch up.

Thursday, September 15, 2005

Shock and awe (TM)

It has been a great PDC. I was able to follow the news trough the blogsphere, mostly for free (connection fees may apply) but still think it would have been wonderful to be there.

There are some employees that say this is the best of 30 years of Microsoft history. Other observers think that Microsoft's overhaul is complete. Truth or not, I think Microsoft has distilled and leveraged a massive amount of kool aid on all Microsoft based developers around the world.

The coolness factor is so high tonight for Microsoft, that they could take the chance to announce something really controversial tomorrow morning. Think of something in the lines of Microsoft Linux (Did you notice they never wanted anybody else to hold the Lin - D O W S name? ;)), Mono funding or at least new versions of .NET, Avalon, Office 12 and Expression application support for the Mac...

Why would they do something like that? Two guiding ideas: "we want those to be our customers, again, or at last" and "we just do software" (not necessarily Windows software).

If they did that, the coolness wave they would "sparkle" around the world would instantly make them more famous (and relevant) that Jesus... Or the Beatles... Or Oasis... Or whatever.

After all, when it comes to the Web, they already play nicely: They support Firefox along with Internet Explorer.

UPDATE: Brad Feld in a recent post seems to agree with my perception. Interestingly, he also mentions openness in his last paragraph:

Now - if we can only get them to say "Open Source" instead of "Shared Software Services" life would be a little easier.

It is not that I am an Open Source zealot, but time has come that we need more openess in the development tools we use everyday.

LINQ

Atlas is one of my favorite technologies announced in the PDC, with Windows Workflow Foundation comming close. Of course, I hope to get a chance to play with the Expression tools and with Office 12 soon.

But in my opinion, the most important announcement from the PDC is LINQ.

C# and VB become mixed functional/object oriented/imperative languages.

The data impedance mismatch is over. Rumors about this being ripped from Foxpro and 4GLs are largely wrong. This is much more elegant and powerful. As a developer, this is a happy day.

I have read some people concerned the idea that LINQ, specially DLINQ will push .NET develiopers to mess up the layered architecture.

You don't only isolate concatenated SQL in a DAL component for aestetic reasons.

You do it, for instance, for the abstraction and the scalability provided by a special execution environment.

But with LINQ the "functional power" of the query language is not anymore limited to data that is on the database. You can now use the same language constructs to query any data, regardless of location.

Thanks to all the teams that made this happen. You can count on me giving you feedback.

First two pieces of feedback:
  • I want to see transactions to become a first class citizen in the CLR.
  • I hope to see many legacy database 4GLs (includding FoxPro) to adopt the CLR as a runtime. Now that the CLR comes with queries, it can be a true life saver, both for the products and for the developers that mantain those billions of lines of code.

Moving to MSDN

I haven't decided yet, but it is very likely that I will stop blogging here for some time. For some background, I have moved to the sate...