Joshua is a long time contributor to Mono and on his copious spare time he works maintaining the GovTrack.US web site. He has just completed his port from Perl to Mono.
Let me quote Joshua:
So now if you go to www.govtrack.us, you get my new and improved Mono-powered site. I probably said this last email, but using Mono has been unbelievably easy and helpful.
Congratulations to Joshua! And we will keep an eye on Monologue for his comments.
O'Reilly had a book stall at XML Open, and I was very glad to hear that Mono: A Developer's Notebook was the best-selling book during the conference. Very amusing, for an XML conference!
The way that people can help best is to ask for the book in their local stores and get them to order it. If lots of requests show up from stores, then it really helps make a case to the central buyers for ordering it.
Posted on 29 Sep 2004
In the last couple of years I attended a couple of talks from Noam at MIT and Harvard. Excellent talks, if you were not able to attend these, you might want to get the DVD.
It comes with the presentation at Harvard and a Q&A section from both events.
Duncan sent me a link to The Life of Joe Republican, very funny, excerpt:
All but $10 of his medications are paid for by his employer's medical plan because some liberal union workers fought their employers for paid medical insurance - now Joe gets it too.
Follow up: Bruce Springstein interview detailing why he had to take a position on this election.
Mikael is the founder of Imendio, there is an interview with him at OSnews on the subject of Gtk+/Gnome commercial support.
I read with alarm the discussion between the Solaris kernel engineer and some Linux dude. I have to say that it is a bit sad that the Linux dude did not understand the points of the Solaris kernel developer.
It was a bit embarassing to read the arguments from the Linux dude. And I found myself agreeing more with the Solaris engineer which clearly articulated the rationale for his decision. On the other hand or Linux friend just launched a long tirade of fanboyism and flames.
This is the wrong way of advocating Linux. I have always maintained that to effectively compete you should never compare the downsides of your competitor with your advantages, that just leads to the placebo effect you can see from the Linux guy: "everyting we do is fine, there is no need to improve". He got defensive. But this is exactly the wrong attitude to take because in this mode of operation you do not react and do not take steps to improve. What the Linux community should do is compare the strengths of Solaris and the weaknesses of Linux. Maybe there are things that can improve, maybe there are cultural changes that can take place but dissing someone else on these grounds is not going to improve our loved kernel.
When Sun decided to adopt Gnome as their desktop environment there was a big discussion about API stability, an issue that many of us although peripherally aware of, did not take as seriously as Sun did. We have to thank Sun for bringing that culture into Gnome, and I wish that the same culture spead further to other projects.
According to O'Reilly viewers of the Daily Show are stoned slackers, research apparently proved the opposite: the audience of the Daily Show is more likely to have completed four years of college as opposed to the O'Reilly audience. Me not having completed college probably puts me on the `stoned slacker' category.
In other news:
Posted on 28 Sep 2004
Jackson just posted an update on Mono's new managed implementation of Windows.Forms.
I own it now.
Mandatory link to Jon's blog. His software page has various C# programs.
Todo list getting shorter: parameters missing, fix iterators (which I broke), switch statement, write rationale and author ChangeLogs:
Test passes: a-call.cs Test passes: a-capture1.cs Test passes: a-capture2.cs Test passes: a-capture3.cs Test passes: a-capture4.cs Test passes: a-capture5.cs Test passes: a-capture6.cs Test passes: a-capture7.cs Test passes: a-capture8.cs Test passes: a-event.cs Test passes: a-instance.cs Test passes: a-nested-anon2.cs Test passes: a-nested-anon3.cs Test passes: a-nested-anon4.cs Test passes: a-nested-anon.cs Test passes: a-nested.cs Test passes: a-parameter2.cs Test passes: a-parameter3.cs Test fails: a-parameter4.cs Test passes: a-parameter.cs Test passes: a-simple.cs
Posted on 21 Sep 2004
I will be talking to some Novell customers in Mexico City about Novell Linux initiatives and some of the Novell offerings on Thursday September 20th, if you want to come, register here.
I found this link from Jon Udell's blog: Valdis Krebs has graphed the books purchased in online retailers and has come up with a pretty interesting view of the nation based on the book purchasing patterns.
Super-hacker Atsushi Enomoto is on the move. He will be at the XMLOpen conference in the UK representing the Mono team, and later will land in Boston for couple of weeks to do some local hacking and consume lobster sushi.
Evolution 2.0 has been released.
Shame about the shortcut bar being gone, I never use the folder list, I have my life organized using shortcut bars.
Posted on 20 Sep 2004
Sebastien has posted his thoughts on the MD5 vulnerability. Check it out!
Anyways, a couple of thoughts:
It is clear from Chris Anderson's last post that it is an ongoing strategy to come up with schemes that will lock Linux out (even if they are highly inadequate for the world where scams are the rule of the day).
Avalon's feature set is one of these creative things they come up with. I am convinced that they see Avalon as the tool that will replace the Web (the marketing folks will step in and claim that they `augment the user experience').
Maybe we are reaching a point where we need government regulations on the software industry or in some of its components. An explicit acknowledgment of Linux and open source players as an important player in consumer choice.
Ah, not only had I suggested that when Slashdot posts a link to the MS lobbying efforts.
Speaking of augmenting the user experience. It is clear that plenty of work can be done today to augment the user experience of the web: GMail and Google Local services is leading the pack in smooth user interfaces. Everyone is raving about the keyboard navigation, the clean look and the good interaction of GMail, while am delighted to see the clever hacks to explore maps without doing page reloads.
And finally there is A9 who also sports a great user interface on the Web.
Firefox reached one million downloads ahead of schedule. Congratulations to the Mozilla hackers!
Someone else also thinks that Java APIs got too academic: here
Posted on 19 Sep 2004
Alex has released into the world his tomboy software. Check it out. Am addicted to it.
Another reason to vote for Kerry: to avoid more de-regulation.
Posted on 18 Sep 2004
John list of reasons to vote for Kerry was zero, so I figured I could cook up a few interesting links:
I guess am biased being the son of a scientist and all that.
A new piece from Chomsky.
I also found his blog. Wonder if Chomsky uses Emacs being from MIT. I have always wondered how approachable Chomsky would be to have dinner with my friends. Anyone have his email address?
A new publication: Gnome Journal to keep up-to-date on interesting bits from the Gnome world.
Gnome 2.8 was released: fancier, simpler, cleaner and more hip than ever.
I had dinner with the Fluendo guys in Barcelona last week at Thomas' place days after they had released their Theora Java applet. The quality is very good, and the best thing is: you do not need to install any software on any machine to watch live video streams from Theora servers. They will be happy to sell you a streaming server.
The Gnome Summit announced its dates; this year in Boston will be held in the Stata Center in MIT, the new gorgeous buliding across the street from the Cambridge Novell offices where we work from: Mark your claendars.
Jeff's company launched their new distribution: Ubuntu. Not only they picked a great name for their company, but they are adding timed releases to Debian, I would say the major problem for Debian's adoption (please do not send me email saying `just use sid/whatever' or `Debian testing is great for me').
When I started using C# on the early preview days of .NET, one of the first things I noticed is that the compiler did quite a lot of work to produce helpful error messages.
While implementing MCS, we noticed that it went beyond the obvious internal checks of the compiler: the MS C# team actively had to add extra work to produce a more meaningful error. This is in addition to C#'s definite assignment requirements which by itself catch plenty of errors that are commonly introduced in C.
Recently Marek Safar has been on a quest to refine our error and warnings to produce as many as the MS compiler does and to fine tune our reports. We are not there yet: today we catch 617 errors/warnings, we fail to report 18, and we report differently in 136 cases.
The parsing errors are the most difficult to cope with our compiler as we used Yacc to build the parser and the parser recovery is a lot harder than if you do your own top-down parser (something that we might do in the future).
I did a presentation on Mono last week at the Universidad Oberta de Catalunya, here is the: video.
I was exhausted when I did the presentation, having slept only four hours for the past fourty-eight due to the jetlag, the dinner following up was excellent, I had a chance to talk to a few folks afterwards.
Posted on 17 Sep 2004
Noticed that Matthew MacLaurin from MS research weight in on Nat's work on the dashboard, WinFS and metadata.
Paco has posted a nice update for those who want to use Gtk# on Windows: simple installers and integration into Visual Studio as well as videos to see for yourself how to use it.
Nat's keynote presentation this morning was excellent: plenty of content packed in the fifteen minutes they had allocated, and they showed some Groupwise integration, F-Spot and collaboration features using iFolder.
The best feature of iFolder in my opinion? Being able to share the folder with myself in different computers: my laptop, my Windows box at work, my Mac at work and my two computers at home. The idea is simple: now all the data gets replicated and I no longer have to worry about which machine has the latest version of a draft.
Massimiliano explains his SSAPRE implementation for Mono. Massi has been working on implementing the large optimizations for the Mono JIT engine.
Gonzalo and Ben have been working on making Mono's ASP.NET implementation scale and perform better. The upcoming 1.1.1 release will contain all the goodies. Get ready to be impressed.
I will be in Mexico City on Tuesday. To reach me, call my US cell phone number, I doubt my local phone works anymore.
Posted on 16 Sep 2004
Hanging out at the Paris airport, it was about time they had wireless access. Waiting for my plane to Barcelona.
Posted on 11 Sep 2004
First, let me stress again that I think that the guys over at the Avalon team are doing some fantastic work and probably have had to make some hard decisions and have a lot on their plate.
Cris, As I said in my previous post, if Avalon really takes off, we might look into bringing that API to Mono as well.
My concerns stem from the fact that we do not want to waste our time with dead-end APIs as we are vastly under-resourced, so we must choose carefully. With that in mind, and keeping in mind my bias.
Bruce Schneier has a good introduction to attack trees. The core is that in any system that is to be secured an attacker only needs to choose the weakest link. In this case, Avalon's ClickOnce just seems like a disaster waiting to happen. Imagine Outlook viruses gone wild.
Solving this is extremely simple, the answer is well known: do not allow ClickOnce-like technologies.
My guess is that the problem is that this goes against the fundamental reason for the existence of Avalon.
Joel's latest piece has some good points on the role of software in societies. It seem that engineering organizations are too much in contact with the technical details of how to make things happen, without looking at where and how the software is going to be consumed.
Certain things in the Gnome world have been hard explicitly to avoid problems of this nature (the never-shipped and luckily-defunct executable-mime-type handler is one example).
Anyways, my problem is that it seems that Avalon is trying to do too much too soon. It seems to be following the over-designed footsteps of Java's Swing: it avoids the over model-view-controller-itis, but it introduces its own pains and has the elements of a second system
The surface area is just of gargantuan proportions, sure, if you are dealing with a `Button' you will be fine. But hey, it was relatively simple to build buttons with Motif and Swing too.
You are right that it is unfair to comment on a product that is not even beta, but if you guys are shipping in 2006, I do not see a lot of room to maneuver there. I can only hope I am wrong.
Tk and XView are nice examples toolkits that hide the complexity from the user each on their own ways. These toolkits encapsulated the complexity and exposed only the basics to the user: they provided fairly high-level building blocks and the rest was tucked-in behind the scenes. On the other side, we have things like Avalon where the implementation details transpire at every level: not only is the developer going to use the high-level building blocks, but he will be exposed and will face the internals.
Am not arguing that it is necessarily bad, but it is easier to expose as little as possible and add features on an as-needed-basis than it is to come up with a large framework and maintain every implementation decision made today.
By exposing as little as possible you have a choice when it comes to architecting the internals, and most importantly to re-architect the internals in the future if you must. A clean separate between the exposed API and its implementation. But Avalon does not have this luxury: the API is the implementation and the API transpires very much of the implementation (mind you, this is very convenient for people interested in re-implementing it, while tying their hands to an existing design).
It can only make sense in a world of only-Microsoft technologies, but even there, you are shooting yourself in the foot: collaboration with others might be initially difficult, but it has always paid off in nature.
Collaboration of Microsoft with competitors tends to be difficult. Maybe there are ways we can improve this.
As for missing features, there are ways of driving the standards forward. For example the whatwg group is finally moving the web forward again.
In any case, thanks for listening Chris, and lets hope that you guys can improve Avalon, but in the meantime some folks are considering the options, Joel has two good articles: API war and his call to arms to improve the Web with some followups. Update: Fixed a few typos.
Sebastien has posted an update on CAS.
Due to some other commitments it seems unwise to attend the TG2/TG3 ECMA meetings in Redmon on the week of the 20th.
Am wondering if I should fly in on Sunday to attend the Tuesday meeting. If there are people from Microsoft interested in meeting on Sunday for dinner and Monday (nothing formal, just chilling out and debating software things). That might make for two useful days: one ECMA and one of chilling out.
Thoughts? miguel at novell dot com is the address.
Have to make a decision on the next 48 hours.
Greg Palast on Choice Point and the DNA database of every citizen:
These guys are in the Fear Industry. Secret danger lurks everywhere. Al Qaeda's just the tip of the iceberg. What about the pizza delivery boy? ChoicePoint hunted through a sampling of them and announced that 25 percent had only recently come out of prison. "What pizza do you like?" asks CEO Smith. "At what price? Are you willing to take the risk?..."
Oh my god! Good thing I get my Pizza from the frozen section at the minimart. I feel safer now.
Some great animations.
Posted on 09 Sep 2004
I have been using a laptop with 1400x1050 for more than a year, probably two years. Recently I have been considering getting something more hip, to go with my hip nature. Something like the IBM X40.
The only problem I have is that anything below 1400x1050 now feels to me like this:
Posted on 08 Sep 2004
Associated Press: Beating the last year record of 375 billion dollars, this year the projected deficit is going to be 422 billion.
Taylor just sent this note:
Budget Deficit $442,000,000,000 divided by Workers 141,700,000 (Census Bureau) ---------------- Equals $3119 per worker I hope you all are ready to work extra hard next year. Flak Jackets don't grow on trees.
Economic girlie men with a twist.
Update 2: Am sorry for updating this so many times, but I could not help but make a reflection. The `do not be a girlie man' defense of economic and tax policies sounds as idiotic to me as the defense of the internet boom business models. I can not help but think back at how a few people warned of the coming catastrophe and people laughed at those who were wondering where the profits were and how those things would be sustained.
It seems that the current economic and tax policies are rooted not on careful economic research but in punch lines. That bubble is going to burst.
I will be going to Barcelona on Saturday for the Novell Brainshare conference.
Jordi has also organized a public Mono/Gnome presentation at the University Oberta de Catalunya on Tuesday (September 14th).
Update: The location is: UOC, Avgda. Drassanes, 3-5, Barcelona at 7pm. I will try to drag Nat Friedman along.
Nat in Barcelona last year.
Guardian: On Sunday, the military placed Ms Fahima in detention without trial using a law applied to thousands of Palestinians over the past four years of intifada but rarely to Israelis.
Posted on 07 Sep 2004
Last week's announcement of the changes in Longhorn were interesting: the backporting of Avalon and the removal of WinFS from the mix.
It was clear that the only way to get Avalon adopted was by backporting it in some capacity to older operating systems. By June 2004 XP had 51% of the market while 40% of the market was still held by Windows 95, 98, ME, 2000 and NT. This is after three years of XP having being available to the public.
If Longhorn was going to ship in 2006, developers could not target Avalon as their UI for at least another three years, Microsoft's recommendation was just as disheartening. Of course this is assuming that Longhorn would have the same adoption rate as Windows XP.
Incidentally, this was the reason why we decided to redo our Windows.Forms implementation: if Avalon was not going to be common platform for development until 2009 people would continue to target the Windows.Forms API. The announcement from last week closes the gap.
As I have discussed earlier, Avalon is the latest edition of developer lock-in to the Microsoft platforms and the decision making process is driven by this more than technically. If the need arises, it can be implemented in open source as an interop measure, but it is an effort that will take time.
Avalon has a few problems, the following is from my impressions from the latest code that has been made available to the public:
Security: Although Avalon and .NET address the high-tech problem of secure sandbox execution, it fails to provide a low-tech solution for impersonation, and other forms of tricking a user into providing personal information (credit card numbers, Social Security).
These scams are a serious problem today in the Web but we at least have the url bar. But rich clients make this harder for and end-user to distinguish. Of course some simple solutions exist, but nothing comprehensive enough to guarantee that novice users will not be tricked.
The issue at stake here is that the feature (in this case a large API, feature-full and hard to reproduce) is driving the project, with security being cooked as an after-thought. As I said: the high-tech solution has been dealt with (the sandboxed execution environment) but not the low-tech problems. And the low-tech problems are resposible for most of the viruses affecting the Windows world today.
As we have seen, education of the user base is not really a solution and leaving security as an after-thought has proved very dangerous so far.
Complexity: The Avalon API has a very large surface area. To get an idea, the Button class is number 11 on the inheritance chain with ButtonBase, ContentControl, Control, FrameworkElement, UIElement, RetainedVisual, Visual, DependencyObject, UIContextObject and Object as its base classes.
The implementation details transpire everywhere, and approach that I believe is a bad idea: there is little or no encapsulation of things.
Avalon is clearly not fully cooked, at least it was not a few months ago when simple things like keyboard manipulation were not fleshed out. My feeling is that large changes are still required.
Ignoring Standards: I understand why someone would invent their own version of SVG or their own version of CSS: those standards can be difficult to implement, and growing your own version is a lot simpler than having to adapt an existing model to a new model.
I would have probably done the same if I had been in their position: its easy. But I would think that Microsoft has a higher responsibility towards the developer base that must create tools that interop with third party components: creating a new standard for graphics just because its `easy' is not really a good answer.
Implementing SVG might have problems and limitations, but the advantages outweight these problems: there are plenty of tools today to produce and consume it and it fits better with the rest of the industry. A benefit that Avalon users will not have and will just partition the industry again for a fairly poor reason.
Canvas model: Avalon's canvas model suffers from the same problem every other retained system suffers: they are hard to scale in the general case. We know this because Gnome has such system and its the basis for a couple of widgets and controls in applications like Evolution, Gnumeric.
The model is fantastic until you have to scale it; And when you have to scale it, you have to fall back to the traditional programming model where you have to roll your own repaint and handle all the low-level details yourself.
In general, I think its a great idea, but it is a limitation on which the rest of the system is built on.
Lack of a GUI designer: Avalon today lacks a GUI designer, an effort that so far people have not noticed, because developers have been told that XAML is the new way of doing things and declarative programming is hip.
Declarative programming is a cute idea (not new: its just the XML version of the old Windows resource files; or Gnome's glade files or MacOS X NIB files). The reality is that XAML is a serialization format that could be manipulated by tools, but the tools so far have been missing.
My prediction is that Avalon v1 will be a throw-away: it is not really the foundation on which you will build applications: V2 will likely not be backwards compatible, they will have to re-architect bits of it: which means that people will end up with two frameworks running side-by-side: Avalon V1 and Avalon V2.
The above problem is compounded with the fact that the CLR has not really sorted out a good model for sharing components across versions of the framework: the GAC solution today is a bit of a hack to keep things separate and allow for multiple installations, but falls short.
This is like cooking, you can not rush a good steak, or a cake or an omelette by cranking the heat. Some things just take time.
In a way the .NET Framework was like this: it was slowly cooked and it reached a great point (it could still be improved) but some of the new code is just not ready.
In Gnome for example we ship immature APIs but we do not make them part of the developer platform: they have to simmer and marinate for a while before they make it into the official SDK.
When I read Dave Winer's comment on Avalon and the Death March, I realized that the Avalon folks now must do two products instead of one: they need to build an Avalon for Longhorn, and another Avalon that will run on XP. It seems that they just added a pile of work to a team that was not ready to release their software.
I watched Allchin's interview over at Channel9, and he looks nervous: he is addressing two audiences at once the winners and the losers: the external developers who get Avalon on XP, and the internal developers that have just been dumped a new set of tasks and challenges. He is walking a fine line.
I do not think I could have solved a problem of this magnitude, am sure the complexity is huge and the Microsoft folks are doing their best, but maybe a change in the way that features are interlocked and how those are delivered to users must be rethought.
When it comes to operating system releases, I believe that Apple has found the sweet spot: a combination of best practices from the industry and best practices from the open source world. In addition to this, the versioning setup that Apple ships for the Frameworks seems to be pretty good on the surface. Update: I fixed some embarassing typos.
Posted on 01 Sep 2004