Sunday, February 29, 2004

More on free software economics and real life

I have been reading some other follow ups on Clemens Vasters' piece here, specially this one by Ryan Lowe here and then again Clemens replying here and here.

I know nobody cares about my opinion on free software, however I have one. I don't like confrontation, and I think many people that work in free software is really cool, so I will try to only use mild rhetoric.

If you want to work in "free" software or "open source" software or "proprietary" software, if you want to use GPL, BSD, X or MIT, Mozilla, ZPL or some kind of shared license for your source code, it is all ok for me. If you want to work for Microsoft, or if you hate Microsoft and want to work for a company that gets its money from Microsoft competitors, it is ok. If you are really making the world a better place through free software or just spending my tax money in your own education, it is still ok.

How could I disagree? As far as it is legal, it is your choice. Of course each choice you make have some implications, and as long as you know and understand those implications, it can only be ok.
But something I learned when I was studying Sociology (especially collectivists like Marx and Durkheim) is that you just can't know. You can fool yourself believing you have some level of precise knowledge about the reasons and implications of your choices and still there is a big piece of the iceberg you will never grasp.

If you love to write software for others to use for free, I don't expect you to change your mind and refuse writing more code until you get a paycheck. Would you expect the people that already get paid good money for coding to reject their paychecks?

We are all just trying to grasp as much as we can the meaning of that big piece of ice under the water that is the real meaning of our decisions.

So when Clemens expresses his opinion (which I happen to share in more than 90%) he is only giving out some information he believes you could use next time you have to decide. If it is useful for you, great. If you don't agree, you can even claim that Clemens is dumb, a lier or whatever. It will still be ok.

Free software is used today by ordinary people, but also by Big Iron and Big Consulting Companies. They have devised business models in which free software helps them charge more money and have lower costs. They sell software + services, or software + hardware so they ultimately charge for it. Then, if you can take this, tell me what is wrong if a company or an individual wants to charge for the software alone?

The only thing that really drives me mad is when people that have a deep understanding of this dialectic try to fool us on believing that the free software crowd are the good guys and everybody else is evil.

Religious manipulations of the facts like those are meant to divide people, to call people in arms, to cash more money in, or whatever, but it doesn't help anybody to understand their own personal choices.

And I am so tired of it!

My personal policy could be put as simply as this:
  • Open source, and free software is sometimes cool.
  • Proprietary software is sometimes cool.
  • I have zero tolerance to hypocrisy.

Windows User Experience Interview

Paul Thurrott's publishes a wonderful two-part interview to Hillel Cooperman, Tjeerd Hoek and others on Longhorn. Really cool guys, cool work and cool reader experience.

Saturday, February 28, 2004

Happy birthday!

Adriana, my beloved wife, is turning 30 today. We had a very nice party with half our friends (the other half live very far) on Thursday.

If you ever read this, you won't be surprised if I tell you that I love you, I love our lives, and I am crazy about our little wonderful Martincito. We are doing OK so far, don't you think? I guess this year is going to be even better. Kiss you!

Friday, February 27, 2004

Susan Dumais on My Favorites

I have been trying to improve my WinFS killer application article. In doing so, I found that one of my favorite Microsoft Researchers, Susan Dumais, knows the problem with My Favorites better than I expected. Look at the paper entitled Keeping found things found on the web.

Clemens Vasters on free software economics

In Where do you want to go, Aiden? Clemens Vasters goes deep in one of the dialectics many open source advocates work to hide everyday: the real war is being fought between commercial software companies and commercial non-software companies.

The whole thing about “free software” is a lie. It’s a dream created and made popular by people who have a keen interest in having cheap software so that they can drive down their own cost and profit more or by people who can easily demand it, because they make their money out of speaking at conferences or write books about how nice it is to have free software. At the bottom of the food chain are people like you, who are easily fooled by the “let’s make the world a better place” rhetoric and who are so enthusiastic about technology that writing open-source – or any source for that matter – is the absolutely best imaginable way to spend their time. It doesn’t matter whether you love what you are doing and consider this the hobby you want to spend 110% of your time on: It’s exploitation by companies who are not at all interested in creating stuff. They want to use your stuff for free. That’s why they trick you into doing it.

Actually, I have always felt ok with many of the notions of open source, for instance, the most basic: to have access to the source code can be seen as some kind of insurance in case your software provider cannot maintain a decent level of support. I am always willing to share my source code with my customer as far as there is a reasonable mean to enforce my right to continue selling my software, and to avoid my customer of becoming an illegitimate competitor.

Peoplesoft: And finally, the ring got to the fires it was made in...

Why Bill Gates is smiling today | CNET News.com

Wednesday, February 18, 2004

Another reason to go the .NET way

Mainsoft, once famous (to me) for their Visual Source Safe for UNIX and lately for supposedly leaking some Windows source code to the Internet, has achieved an incredible breakthrough... It is not April yet, or is it? Visual MainWin for J2EE, the company's new product, compiles MSIL to Java bytecode, allowing for .NET applications to run in almost any J2EE server. It also provides for very easy ways for referencing EJBs from any Visual Studio .NET language.

For those Microsofters that aren’t still sure Mainsoft is Microsoft's buddy, let me tell you there are many people out there that are convinced of the "Microsoft's OS just doesn't scale" thing. The sole existence of Mainsoft's Visual MainWin for J2EE means for those people that they can now feel better investing in .NET and even Windows.

Wednesday, February 11, 2004

My MCSD books are arriving tomorrow

Hooray!

More referrers frenzy

Today I see my blog has had a sustained traffic of - Wow! - 22 visitors. I guess Blogger is already planning for server expansion for the overwhelming popularity of "Blogging from Aquarium".

Most traffic today comes from my comments on this entry on The Scobleizer. It points to my previous essay on how to fix Favorites using WinFS. On one side, I see there are plenty of Mac OSX users reading Scoble. On the other side, I guess no one made it to the end of the article, and nobody took the time to write a comment. I would have been very pleased if I had found somebody telling me things like: "YES! (meaning Your English Sucks)" or "I don't get it" or perhaps "I know of a shareware product that does exactly this" or "I see you have no idea what WinFS is".

By the way, is there any way to add the ability to tag blog entries with emoticons from visitors? Something in the lines of a commenting system in which you don't have to type :)

My favorites: A killer application for WinFS?

Update 1:
I realize that some human readers tried to go through the following post but had to give up after a few paragraphs of my horrible English prose. I will be trying to improve it, but it will take time... It is three AM and I have drunk 3 different kinds of excellent white wine and one kind of red wine, So I better not touch it right now....

Update 2:
I see some people still try and fail to read this article. The only comment so far belongs to a guy that is working along the same lines on the Mozilla platform (it seems to be very interesting, so go check for the link in comments). So I am doing my best right now to improve the readability.

The original article:
I have been playing in my mind with the idea of a better Favorites feature for years, long before I heard about WinFS. The idea first came out of my own basic necessities, and I have been gradually enriching it with different concepts I have picked from everywhere.

When I saw the "Stuff I've Seen" demo I realized that this is is closer than ever of being implemented by Microsoft using WinFS.

Problem statement:

Everyday in my geek life, I have to do some research on different subjects. I usually start in Google typing some words and in a few minutes I have hundreds of Internet Explorer windows open. I try to discard the useless material as quickly as possible, but usually I find lots of interesting and lengthy articles that I mostly read only superficially. Very often I have to go home and I still have tens of windows opened with possibly promising content.

The spectrum of the subjects I keep track of is so diverse and is scattered on so many dimensions! Besides my current work, I usually keep and eye on technical subjects like operating systems, development platforms, hardware technologies, technology companies, certifications, etc. And I also like to read fresh news about some computer science subjects like evolutionary computation, neural networks, and other forms of machine learning. Moreover there are people I like that have their web pages and publish pictures of their families. I also read lots of different news pages and blogs (however I am aware of the alternative of using an aggregator for blogs).

So I am always trying to keep a collection of valuable links to the most diverse array of subjects for future reference. The problem is that there seem to be no effective way to keep this huge link collection sorted out in a way that makes it useful later.

The Favorites feature in Internet Explorer (and in other browsers) is for me, in many ways, the equivalent of the "filling forms of metadata" approach that provides such a poor experience for average users. It takes to much time and energy to keep an organized tree of all the things I am interested in! Whenever I try to clean up my Favorites, it can take a day, so I don't try anymore.

So what I do lately is the most ridiculous thing: I don't use favorites, but I right click on the page and use the "Create Shortcut" menu (sometimes I cannot do it this way because of frames, but this is another story).

So yes, that is true, Jim Allchin cleaned up my desktop so I could fill it with hundreds "e" icons.

The reason this is not an absolutely ugly solution for me is the same reason caches are such a successful mean to improve performance: temporal locality. The links in my desktop are usually the most recently created links, so they are a good sample of what I have been investigating in the last days and of what I will need to find in my close future.

From time to time I do my clean up by moving the links to a special folder (stupidly named "Stuff") I have on my desktop.

Currently the "Stuff" folder is the software incarnation of a black hole. There are more than two thousand links in there. There is no basic structure or taxonomic index for the links there. I only keep the page titles (which too often is "Cannot find server" because of a conspicuous bug in Internet Explorer), and the dates.

I am sure 10% of the links point to pages that are not online anymore. I also know some links are more important than others to me, some are more popular than others, some pages are interlinked among them, some must be child pages of others, some are updated often, and some I have visited again more than twice in the last month and some others I haven't. All this could be useful metadata if there were a simple way to gather it.

So why do I still feed this black hole? Well, all this shit it is waiting for the right killer application to sort it out, to make multiple graphical maps of it in multiple dimensions, to help me filter it out every time I am looking for something I know I have already seen.

As I said at the beginning of this entry, I have been playing with the idea of implementing such a tool for years now. Of course I haven't. Instead I have come to the conclusion I won't ever do it alone. So I am blogging it in case somebody already wrote the program, or in case somebody wants to pick the challenge up. Anyway, I would love to participate in a project like this.

Envisioning the solution:

I have seen many technologies I though I could use to build such an application. Here is a little list of those thechnologies:

Web services: Of course, some of the required processing is too heavy for a client computer with a thin pipe to the Internet. There is huge potential for the use of a smart client connected to set of heavy weight web services.

Latent Semantic Indexing: I found about this when researching for alternative ways to evaluate the semantic proximity of documents.

"Stuff I've Seen" (SIS): It is an application that Susan Dumais demoed at the Bill Gates speech in Comdex 2003. Actually Susan was a prominent researcher in the Latent Semantic Indexing camp before joining Microsoft. I am not very familiar with SIS, but when I saw it, I realized it provides most of what I have been thinking about and then some more. I would just add the ability to "flag" pages I see in internet explorer with different levels of importance, or with some different connotation. Not everything I have seen, I want to remember! The best think I could think of is that it should allow me to assign an emoticon to each entry, SIS could also have a chance to send down things I don't really care. That would eliminate completely the need for "favorites". OneNote like functionality should also be very tightly integrated to SIS. Of course SIS has also the potential of registering how much time I have spent with each piece of information, or even use some biometric to determine my level of interest. I would also like it to be more of a "launching pad" for all my days' activities. It could become some kind of mix of Outlook Today and Start Menu. It should be time aware in some other sense. For example, if I read the same group of blogs everyday at 9:00 am, it should automatically show those links on top.

Of course, at the core of "Stuff I've Seen" you will find WinFS.

WebSOM: An application of self-organizing maps to Internet Exploration. I have been fascinated with the potential of Kohonen's SOMs for a long time. I once implemented one in Visual Basic!

Buzan Centres: A powerful graphical representation technique that try to mirror the way we organize information "inside".

Hyperbolic trees: Looking for the original company on hyperbolic trees (it took half an hour because I couldn't find the link in my Favorites!) I found that they have already coupled their visualization technology with some advanced knowledge management tools. The only bad thing is that it has nothing to do with managing Favorites links, but I have to say wow!

PageRank: it would be great to be able to integrate some Google's web services. I would ask Google for the PageRank of each page and I would store it and use it for sorting search results.


Semantic Web: I don't consider myself either a believer or a detractor. I just think that the SW can provide an even cleverer heuristic than PageRank, and thus I see it as valuable.

MSDN Favorites Web Service: It was an attempt to build a Web Services version of the Windows Favorites feature. It was interesting. Unfortunately it seems to be no longer available.

What else would I do?
  • I would also like to use any taxonomic web service out there if it existed. You pass your URL and you get the ID of a node in a taxonomic tree.
  • I would cache versions of pages locally in case they get inaccessible or change over time.
  • I would flag the ones that aren't already online.
  • I would keep the name of the links updated with the current titles of pages.
  • I would make use of time data like creation time, last access time, and usage frequency as a way to sort things out in graphical representations.
  • Etc.

Tuesday, February 10, 2004

Something crazy about having a counter here

Now I can see where the last references to my blog come from. That helped me once discover Buttercup was reading my blog regularly.

I also see that every time I post I get tons of views from the "fresh blogs" links in the Blogger front page.

Something I find really crazy: I got lots of hits directly from Google. People looking for things like "dotnet specific design patterns" or other things you won't find authoritative information about inhere.

I understand that PageRank is not more than just a simple, quick, clever, great heuristic. But I couldn't have guessed it looked like this from the stand point of "the guy being searched".

Because Google apparently uses no metric of the "closeness" of the words in the text, when you type something like "dotnet specific design patterns" you will get pages that contain all these words, in PageRank order, but notwithstanding if they are one thousand sentences one of the other.

Whoever wants to really beat Google, will need to invent and even more clever, but still manageable heuristic.

Yet, on the embarrassing side, some hits I got come from misspelled searches on Google like "Lonhorn Avalon" and "Accident Esay". Shame on me and shame on you! :)

Monday, February 09, 2004

SOA is like scissors and glue

Udi Dahan sent me a link to one cool entry on his blog. He says that SOA is “Hooking Shit Together” but also “Ripping Shit Apart”. Now, it is an honor to participate in this conversation, but I must admit I feel a little naive answering you, because of my lack of authority in this subject.

Anyway, Udi, after reading your blog, I have to agree. SOA = HST + RSA.

But let me coin my own silly catch phrase: SOA is like scissors and glue, the scissors and the glue that allow you to both HST and RSA. Let’s just suppose, for god sake, that the interviewer misunderstood Pat Helland when he said “sheet”.

Neither RSA nor HST is a new thing. RSA has been a primary engineering task from day one, and HST from day two. They are actually two sides of a same coin.

I believe that what is really new is the set of enabling technologies under the SOA umbrella and the set of activities they enable. Those tools make both RSA and HST easier in software development. With SOA, some choices that used to be expensive are a lot cheaper.

For instance, re-implementing a perfectly functioning part of a system just for the sake of framework standardization makes less sense than before because of SOA glue that enables HST. But building a service facade for an existing subsystem is no trivial work either. You still have to balance.

On the other side, building new systems from autonomous services makes more sense than ever. Not only SOA scissors enable us to do it in elegant ways. Ripping it apart properly from day one will make hooking it together a lot cheaper on day two.

Now, as a side note, I have been involved in projects that could have made good use of HST, but they didn’t. I feel guilty today.

Sunday, February 08, 2004

Pat Helland's HST

I am so glad that Pat Helland, who is a Microsoft employee, can call things by their name. As with his renaming of SOA (Service Oriented Architecture) to HST (Hooking Shit Together) this man is always worth listening. I can say the same about all the other interviews in TheServerSide.NET.

Update: Pat Helland, who I think I found today (October 3, 2005) lurking in this blog (I saw something interesting in my referal stats), hasn't been a Microsoft employee for a while. I hope he is doing well in his new job at Amazon.com.

theSpoke

I think I haven't mentioned I have created a blog at theSpoke. It is an interesting site, somewhat more ambitious and in flux than other free blog hosts. But it stills looks like a proof of concept by Microsoft. I have no idea if it is going to evolve to something else or if it is going to die. Anyway, it doesn't really interests me to have a second blog. If I hadn't had this one, I would be willing to play a lot and even to participate in the devlopment of theSpoke. But given all the stuff I have already dumped here, it is difficult to feel passionate about it.

Wednesday, February 04, 2004

Priority International Shipping

When I bough my MCSD training kit from Books a Million I paid for Priority International Shipping . My order was completed and sent via UPS on January the 19th.

The delivery was supposed to take between 6 and 9 business days. But because I am really close to the United States, it took only 4 days for the books to get to this city.

Of course my books have gone from "WAREHOUSED, PENDING RELEASE BY CLR AGENCY" to "PACKAGE IN CLEARANCE PROCESS" and then to "HOLD FOR FUTURE DELIVERY" since then. After 16 days (or 12 business days) I am still waiting for them to arrive to my home.

According to the very polite UPS personnel, "HOLD FOR FUTURE DELIVERY" means the package is still being "processed" by customs, which could be true. So, maybe they are still deciding which rate is applicable to educational books. Of course, to me that is difficult to find out for me because the National Customs Administration site is all under heavy construction!

I am so used to living in the third world that it almost doesn't bother me anymore.

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...