We are having my long expected vacations in my old home, Mendoza. Our families are very happy of having our son Martin among them. Off course, it feels very weird to be here on vacation for the first time.
Everything seems to be right in the same place as a year before. Only my parents seem to have loose some weitght.
I am happy that everything is ok, but at the same time it feels so good to have gone to other country to have a fresh start. It feels so good to still have new oportunities every day!
Life, software, politics, arts, and naive future prediction (This blog is in suspended animation)
Saturday, December 27, 2003
Monday, December 15, 2003
Salam Pax Dixit
Where is Raed ?: "I want a fully functioning Saddam who will sit on a chair in front of a TV camera for 10 hours everyday and tells us what exactly happened the last 30 years. I do not care about the fair trial thing Amnesty Int. is worried about and I don'r really care much about the fact that the Iraqi judges might not be fullt qualified, we all know he should rot in hell. but what I do care about is that he gets a public trial because I want to hear all the untold stories "
Friday, December 12, 2003
I want my MCSD
I think I deserve to have a really big certification so I have decided I will dedicate some hours a day to prepare for the exams. I would prefer to have instructor lead classes, but right now that would mean too much money, so I am buying the complete hardcover MCSD .NET Self Paced Training Kit from Microsoft Press through BooksAMillion, and some more complementary titles. I think it will worth a lot to me. I need a change in my career for good. I am not very proud of what I am currently doing, and I am not very proud of the time it is taking to me to get in .NET at full speed. The MCSD is supposed to be my passport to a employability and to a new state of mind... I have to change my blog description again...
Right now I have doubts about my ability to keep on the right path to Certification without the help of an instructor. What should I do?
Any advice would be extremely appreciated.
Right now I have doubts about my ability to keep on the right path to Certification without the help of an instructor. What should I do?
Any advice would be extremely appreciated.
I changed blog description again
Another Microsoft Dittohead Blogger didn't make any sense anymore to me. Nothing makes any sense so... Now I am The Bored Blogger.
Thursday, December 11, 2003
Odette wasn't that bad
Unfortunatelly some people had an ugly time because of the storm, but it wasn't as bad as I expected. We spend two days preparing for it and waiting for it, and it finally passed while we were sleeping on satuday night. We had many hours without electricity, but here in Santo Domingo that could have had nothing to do with the storm.
Saturday, December 06, 2003
Weather Underground: Tropical Storm Odette Intermediate Advisory Number 7a
Weather Underground: Tropical Weather: "Tropical Storm Odette
Statement as of 1:00 am EST on December 06, 2003
...Odette strengthening slightly as it moves northeastward...
...Heavy rain bands moving over Hispaniola and Puerto Rico...
a Tropical Storm Warning is in effect for the Dominican Republic
from Isla Saona westward and for Haiti.
A tropical storm watch remains in effect for the southeastern
Bahamas...and the Turks and Caicos Islands.
At 1 am EST...0600z...the center of Tropical Storm Odette was
located near latitude 15.6 north...longitude 72.5 west or about
145 miles...235 km...south-southwest of the Isla beata on the south
coast of the Dominican Republic.
Odette is moving toward the northeast near 10 mph...17 km/hr...and
this motion is expected to continue for the next 24 hours. This
motion could bring the center of Odette over Hispaniola on
Saturday.
Maximum sustained winds indicated by reconnaissance aircraft are now
near 60 mph... 95 km/hr...with higher gusts. Some additional
slight strengthening is possible before Odette nears Hispaniola.
Tropical storm force winds extend outward up to 145 miles...230 km
from the center. These winds could reach the south coast of
Hispaniola by early afternoon.
The estimated minimum central pressure is 995 mb...29.38 inches.
Rainfall accumulations of 8 to 12 inches...with higher amounts in
the mountains...can be expected near the path of Odette. These
rains could cause life-threatening flash floods and mud slides...
particularly in the mountains of Haiti. Rainbands associated with
Odette are already spreading across portions of Hispaniola and
Puerto Rico.
Repeating the 1 am EST position...15.7 N... 72.5 W. Movement
toward...northeast near 10 mph. Maximum sustained
winds... 60 mph. Minimum central pressure... 995 mb.
For storm information specific to your area...please monitor
products issued by your local weather office.
The next advisory will be issued by the National Hurricane Center
at 4 am EST.
Forecaster Stewart
Statement as of 1:00 am EST on December 06, 2003
...Odette strengthening slightly as it moves northeastward...
...Heavy rain bands moving over Hispaniola and Puerto Rico...
a Tropical Storm Warning is in effect for the Dominican Republic
from Isla Saona westward and for Haiti.
A tropical storm watch remains in effect for the southeastern
Bahamas...and the Turks and Caicos Islands.
At 1 am EST...0600z...the center of Tropical Storm Odette was
located near latitude 15.6 north...longitude 72.5 west or about
145 miles...235 km...south-southwest of the Isla beata on the south
coast of the Dominican Republic.
Odette is moving toward the northeast near 10 mph...17 km/hr...and
this motion is expected to continue for the next 24 hours. This
motion could bring the center of Odette over Hispaniola on
Saturday.
Maximum sustained winds indicated by reconnaissance aircraft are now
near 60 mph... 95 km/hr...with higher gusts. Some additional
slight strengthening is possible before Odette nears Hispaniola.
Tropical storm force winds extend outward up to 145 miles...230 km
from the center. These winds could reach the south coast of
Hispaniola by early afternoon.
The estimated minimum central pressure is 995 mb...29.38 inches.
Rainfall accumulations of 8 to 12 inches...with higher amounts in
the mountains...can be expected near the path of Odette. These
rains could cause life-threatening flash floods and mud slides...
particularly in the mountains of Haiti. Rainbands associated with
Odette are already spreading across portions of Hispaniola and
Puerto Rico.
Repeating the 1 am EST position...15.7 N... 72.5 W. Movement
toward...northeast near 10 mph. Maximum sustained
winds... 60 mph. Minimum central pressure... 995 mb.
For storm information specific to your area...please monitor
products issued by your local weather office.
The next advisory will be issued by the National Hurricane Center
at 4 am EST.
Forecaster Stewart
Thursday, December 04, 2003
My English sucks
I can see many of my post are from not easy to understand to plain unreadable. I am not sure I can improve. Some are not that bad, I hope. Anyway, nobody is reading ;)
Little request for a little improvement in Internet Explorer
While thinking about the way I surf news sites, I remembered Opera has a feature that helps a lot: the ability to open a link in a new window in the background. From my recollection, you have to Ctrl+Right+Click and Opera will open the link in a new windows, but it wont call SetForegroundWindow on it, so you can keep searching for other links of interest. That makes my news surfing even easier because I don't need to Alt+Tab after the Ctrl+Click.
I guess it would be very easy for Microsoft to include this in next version of Internet explorer.
I guess it would be very easy for Microsoft to include this in next version of Internet explorer.
What is the problem with the new Hotmail?
My coworker Manuel came to my desk to complain that the new Hotmail layout was optimized for a resolution of 1024x768 pixels. I think at 800x600 it is still very usable, but I have to agree that I don't like some details about the new version.
First and most annoying of all: Message links are javascript links. I really hate every site on this planet that do this. I don't want to get in a REST vs. Javascript links debate. I see it is an usability problem.
Why is using javascript links broken? Because you cannot Shift+Click on them. I do this all the time, I think of it as the Scoblesque way of surfing the web. As I am a developer, there is too much information outhere that I wish I could grasp, but I cannot. I have no time to loop from searching a page for a link to reading its content, clicking on the back button, waiting for the page to reload (I think Hotmail reloads faster now), and searching for next link. So what I do is to open the main page, I get myself in "search mode", I Shift+Click+Alt+Tab on every item I think is relevant because of the subject. Then I switch to "read mode" and I read them one by one. I close them as quicly as I see they don't cut it. Hopefully, in a few minutes I have closed them all and I am ready to continue my work.
I am very used to do this with news sites (There is a news site from my country that I hate so much for this same reason. I guess I should give them my feedback in another post.) and in Hotmail which is actually the only web mail I use.
So, please guys... The Web may not be as a rich medium as Longhorn Avalon will be, but right now it has some productivity features. Don't blow it! Every time you take functionality like this out of it, you are hurting us. Now I remeber I saw something like this in the Microsoft Support Knowledgebase before. You could not Shift-Click on the items in the result pane, but you could Righ-Click and open the item in a new window (I have no idea how they did that). Fortunatelly it is working ok now.
Second, the big MSN star and logo on the right: The objective is us to love MSN, isn't it? Ok, it is not working. The GIF file is actually 22KB, which is not a lot, but it must take from 3 to 4 extra seconds on a dial up connection (I haven't tried). The real problem is the amount of screen real state it sucks. It takes around the 20% of the screen in 800x600 with.
You already took the banner upthere. We are used to it, we know we are using a free service. Why do you need to put such an annoying logo on the right side?
I feel I should email Hillel Cooperman and ask him his opinion, even when MSN is not his department.
Besides this I think I like the new layout more than the former. Good job guys!
My wish for the next version: Eat your own dog food. If you can build Hotmail completely in ASP.NET then ASP.NET is already the best web application platform. If you cannot, then help improve it.
First and most annoying of all: Message links are javascript links. I really hate every site on this planet that do this. I don't want to get in a REST vs. Javascript links debate. I see it is an usability problem.
Why is using javascript links broken? Because you cannot Shift+Click on them. I do this all the time, I think of it as the Scoblesque way of surfing the web. As I am a developer, there is too much information outhere that I wish I could grasp, but I cannot. I have no time to loop from searching a page for a link to reading its content, clicking on the back button, waiting for the page to reload (I think Hotmail reloads faster now), and searching for next link. So what I do is to open the main page, I get myself in "search mode", I Shift+Click+Alt+Tab on every item I think is relevant because of the subject. Then I switch to "read mode" and I read them one by one. I close them as quicly as I see they don't cut it. Hopefully, in a few minutes I have closed them all and I am ready to continue my work.
I am very used to do this with news sites (There is a news site from my country that I hate so much for this same reason. I guess I should give them my feedback in another post.) and in Hotmail which is actually the only web mail I use.
So, please guys... The Web may not be as a rich medium as Longhorn Avalon will be, but right now it has some productivity features. Don't blow it! Every time you take functionality like this out of it, you are hurting us. Now I remeber I saw something like this in the Microsoft Support Knowledgebase before. You could not Shift-Click on the items in the result pane, but you could Righ-Click and open the item in a new window (I have no idea how they did that). Fortunatelly it is working ok now.
Second, the big MSN star and logo on the right: The objective is us to love MSN, isn't it? Ok, it is not working. The GIF file is actually 22KB, which is not a lot, but it must take from 3 to 4 extra seconds on a dial up connection (I haven't tried). The real problem is the amount of screen real state it sucks. It takes around the 20% of the screen in 800x600 with.
You already took the banner upthere. We are used to it, we know we are using a free service. Why do you need to put such an annoying logo on the right side?
I feel I should email Hillel Cooperman and ask him his opinion, even when MSN is not his department.
Besides this I think I like the new layout more than the former. Good job guys!
My wish for the next version: Eat your own dog food. If you can build Hotmail completely in ASP.NET then ASP.NET is already the best web application platform. If you cannot, then help improve it.
Tuesday, December 02, 2003
Delphi, GC, and .NET
Chris Anderson points to this cool article by Allen Bauer about class helpers in Delphi 8 for .NET.
I read the article with much joy because I have been interested in this IDisposable thing since the beginning. Back then I was convinced that there was a lot of room for improvement in it. Slowly, I became convinced that the IDisposable pattern was as good as it could be.
Now I see Delphi .NET design seems to clash with some of the conceptions I have acquired about GC in .NET. Of course I don't remember a lot about my Turbo Pascal 5.5 days, and I am not a Delphi programmer, but I think my thoughts still apply. Here is my deconstruction:
- Objects without finalizers take one GC cycle to be freed, while objects with finalizers take more.
- Actually in .NET all objects have a Finalize method. It is only that System.Object has a No-Op Finalizer and any class that doesn't override Object.Finalize is considered not to be finalizable. On the other hand the automatically injected Free procedure in Delphi .NET seems to be a No-Op on objects that dosen't have a real Finalizer.
- In accordance with Microsoft guidelines only very few classes should have finalizers. We are advised against writing finalizers for objects that don't directly wrap unmanaged resources. Most classes with finalizers should also implement IDisposable to provide a mean of explicit control. This allows users to avoid the performance penalty of finalizers (for that Dispose calls GC.SuppressFinalize). In addition, objects that aggregate resource managers should also implement IDisposable even when they shouldn't have finalizers themselves.
- Since all Delphi objects seem to have a Free method, I think it makes a lot of sense for it to automatically implement IDisposabe for all objects having finalizers.
- While in the Dispose method you try to dismantle your object graph (you clean up your main object's unmanaged and managed resources, and you even cascade Dispose calls as necessary), in the Finalize method you should avoid touching other objects (you don't even know if they are still alive since you cannot make assumptions about collection order). That is what the IDisposable design pattern is about. That is supposed to be the role of de Disposing parameter: to make Dispose and Finalize slightly different methods.
- But Allen seems to be in favor of allways manually dismantling an object graph before feeding the parts to the Garbage Collector. By dismantling I mean calling foo. Free and cutting all owned references. I had the idea that the GC was clever enough to take care of the entire graph very efficiently and call only the registered finalizers.
- But in my recollection GC will wait on an object finalizer before freeing dependant objects. So pruning the graph early makes some sense.
- For what I read it seems Borland took the IDispose design pattern upside down and maybe solved the problem. They just let you write one Destroy method, then they take care of injecting the disposed flag.
- Since objects are always meant to be freed through a call to Free (even inside container object destructors), they check for the existence of a destructor, then the check for the disposed flag, and they do the right thing.
- This leaves the question of wheather they call SupressFinalize on the object when Free is called preventively.
- I also wonder if the Delphi compiler is intelligent enough not to add a real finalizer when all you need is a disposer. That is the right thing to do when the object aggregates resource managers but has no unmanaged resources to deal with directly. Maybe there should be a way to give the compiler a clue.
- In my understanding Free seems to be static. You can call it even on a nil instance. It will make the check for you.
- This reminds me of the idea some of us had in the DOTNET list about including a "delete" operator in C#. We all had different ideas about how to differentiate the disposing from the finalizing time, but I think none came with the idea of just injecting a "disposed" flag to test if it was the first time the call is made. I think we were afraid of the interactions of such a simple thing with the posiblity of objects being revived in their Finalizer (which I think it is used in pools for reusable objects).
- What if GC.ReRegisterForFinalize and GC.SupressFinalize worked with the "disposed" flag? SupressFinalize turns it off, and ReRegisterForFinalize turns it on. They could also make the "disposed" flag (or should we call it "finalized") accesible through something like bool GC.IsFinalized(object obj). IsFinalized should first check for null reference (in which case it always returns True) and then for the "disposed" flag.
- So "delete foo" coud do something like:
if !GC.IsFinalized(foo)
{
GC.SupressFinalize(foo);
foo.~foo(); //off course Finalize is not public but we have access to it.
foo = null;
}
That looks a lot like SafeDelete!
- All in all, I think Delphi design makes sense because it allows Borland to preserve compatibility and language consistency, but maybe if I were them I would be discouraging Delphi programmers of those practices for future development. For instance, if developers continue to write Destroy procedures for simple memory or references clean up, Delphi.NET applications will suffer a performance penalty because they will all be translated to finalizers. Or am I wrong?
- I wonder how much magic would it take for Microsoft to do something along the lines of what Borland did. I think they could even improve on it.
- Even when I know I forgot something critical (I always do) I go to sleep with the naive feeling that my delete operator for C# is a good thing. I love to think about those things, I always loved it. You can search for diego and dispose in the DOTNET list archives and you will see!
I read the article with much joy because I have been interested in this IDisposable thing since the beginning. Back then I was convinced that there was a lot of room for improvement in it. Slowly, I became convinced that the IDisposable pattern was as good as it could be.
Now I see Delphi .NET design seems to clash with some of the conceptions I have acquired about GC in .NET. Of course I don't remember a lot about my Turbo Pascal 5.5 days, and I am not a Delphi programmer, but I think my thoughts still apply. Here is my deconstruction:
- Objects without finalizers take one GC cycle to be freed, while objects with finalizers take more.
- Actually in .NET all objects have a Finalize method. It is only that System.Object has a No-Op Finalizer and any class that doesn't override Object.Finalize is considered not to be finalizable. On the other hand the automatically injected Free procedure in Delphi .NET seems to be a No-Op on objects that dosen't have a real Finalizer.
- In accordance with Microsoft guidelines only very few classes should have finalizers. We are advised against writing finalizers for objects that don't directly wrap unmanaged resources. Most classes with finalizers should also implement IDisposable to provide a mean of explicit control. This allows users to avoid the performance penalty of finalizers (for that Dispose calls GC.SuppressFinalize). In addition, objects that aggregate resource managers should also implement IDisposable even when they shouldn't have finalizers themselves.
- Since all Delphi objects seem to have a Free method, I think it makes a lot of sense for it to automatically implement IDisposabe for all objects having finalizers.
- While in the Dispose method you try to dismantle your object graph (you clean up your main object's unmanaged and managed resources, and you even cascade Dispose calls as necessary), in the Finalize method you should avoid touching other objects (you don't even know if they are still alive since you cannot make assumptions about collection order). That is what the IDisposable design pattern is about. That is supposed to be the role of de Disposing parameter: to make Dispose and Finalize slightly different methods.
- But Allen seems to be in favor of allways manually dismantling an object graph before feeding the parts to the Garbage Collector. By dismantling I mean calling foo. Free and cutting all owned references. I had the idea that the GC was clever enough to take care of the entire graph very efficiently and call only the registered finalizers.
- But in my recollection GC will wait on an object finalizer before freeing dependant objects. So pruning the graph early makes some sense.
- For what I read it seems Borland took the IDispose design pattern upside down and maybe solved the problem. They just let you write one Destroy method, then they take care of injecting the disposed flag.
- Since objects are always meant to be freed through a call to Free (even inside container object destructors), they check for the existence of a destructor, then the check for the disposed flag, and they do the right thing.
- This leaves the question of wheather they call SupressFinalize on the object when Free is called preventively.
- I also wonder if the Delphi compiler is intelligent enough not to add a real finalizer when all you need is a disposer. That is the right thing to do when the object aggregates resource managers but has no unmanaged resources to deal with directly. Maybe there should be a way to give the compiler a clue.
- In my understanding Free seems to be static. You can call it even on a nil instance. It will make the check for you.
- This reminds me of the idea some of us had in the DOTNET list about including a "delete" operator in C#. We all had different ideas about how to differentiate the disposing from the finalizing time, but I think none came with the idea of just injecting a "disposed" flag to test if it was the first time the call is made. I think we were afraid of the interactions of such a simple thing with the posiblity of objects being revived in their Finalizer (which I think it is used in pools for reusable objects).
- What if GC.ReRegisterForFinalize and GC.SupressFinalize worked with the "disposed" flag? SupressFinalize turns it off, and ReRegisterForFinalize turns it on. They could also make the "disposed" flag (or should we call it "finalized") accesible through something like bool GC.IsFinalized(object obj). IsFinalized should first check for null reference (in which case it always returns True) and then for the "disposed" flag.
- So "delete foo" coud do something like:
if !GC.IsFinalized(foo)
{
GC.SupressFinalize(foo);
foo.~foo(); //off course Finalize is not public but we have access to it.
foo = null;
}
That looks a lot like SafeDelete!
- All in all, I think Delphi design makes sense because it allows Borland to preserve compatibility and language consistency, but maybe if I were them I would be discouraging Delphi programmers of those practices for future development. For instance, if developers continue to write Destroy procedures for simple memory or references clean up, Delphi.NET applications will suffer a performance penalty because they will all be translated to finalizers. Or am I wrong?
- I wonder how much magic would it take for Microsoft to do something along the lines of what Borland did. I think they could even improve on it.
- Even when I know I forgot something critical (I always do) I go to sleep with the naive feeling that my delete operator for C# is a good thing. I love to think about those things, I always loved it. You can search for diego and dispose in the DOTNET list archives and you will see!
Monday, December 01, 2003
Goggle Search: Diego Vega
Look... Google Search: diego vega. Ok, I don't really know what I did well this time, but right now I am number one Diego Vega in Google.
Do I get that for complaining? Or just for using the world Google 20 times in a paragraph... LOL
Ok, in sign of appreciation I will tell you about all my silly ideas on what to do with Google, including the add-in for WinFS.
By the way, I think PageRank rocks! Should I switch to Google dittohead... Nah, that would be too much.
Do I get that for complaining? Or just for using the world Google 20 times in a paragraph... LOL
Ok, in sign of appreciation I will tell you about all my silly ideas on what to do with Google, including the add-in for WinFS.
By the way, I think PageRank rocks! Should I switch to Google dittohead... Nah, that would be too much.
Wednesday, November 26, 2003
What is wrong with Google
Of course I love to google and I google more times a day than I breathe. The Internet wouldn't be what it is without Google.
Even when I am a dittohead, I can swear I don't get rewarded for bashing Google in anyway, not in this world, nor in geeks heaven. I am not actually going to bash Google. I am about to voice a very personal complain.
Some posts ago I talked about Peter Golde accountring for his position in Google after searching for Golde. It occurred to me today to search for "Diego Vega". I cannot find my blog and I have passed position #600 in my search. Of course if I look for "Microsoft Dittohead" I come in position #18.
What is wrong about that is that I own my name. I am Diego Vega, or at least I am claiming to be Diego Vega. I also write a public blog using Blogger which is a company that "blongs" to Google. I assume this fact should give them enough metadata to know I am Diego Vega. It is ok for me if I see “DJ Diego Vega� before my blog entry. It is ok if I see Anthony Hopkins or even Douglas Fairbanks or Guy Williams before me (they all played "Don Diego de la Vega" in different versions of "Zorro"). But I think my blog should appear before something like "I love Suzanne Vega, and I live in San Diego".
Pagerank is a pretty clever and useful heuristic. It just has room for improvement I guess. I am aware of the semantic web and the very smart people that are both against and in favor of it. But I think I am asking about something simpler.
Of course I have a secret plan to get in the top 10!
Even when I am a dittohead, I can swear I don't get rewarded for bashing Google in anyway, not in this world, nor in geeks heaven. I am not actually going to bash Google. I am about to voice a very personal complain.
Some posts ago I talked about Peter Golde accountring for his position in Google after searching for Golde. It occurred to me today to search for "Diego Vega". I cannot find my blog and I have passed position #600 in my search. Of course if I look for "Microsoft Dittohead" I come in position #18.
What is wrong about that is that I own my name. I am Diego Vega, or at least I am claiming to be Diego Vega. I also write a public blog using Blogger which is a company that "blongs" to Google. I assume this fact should give them enough metadata to know I am Diego Vega. It is ok for me if I see “DJ Diego Vega� before my blog entry. It is ok if I see Anthony Hopkins or even Douglas Fairbanks or Guy Williams before me (they all played "Don Diego de la Vega" in different versions of "Zorro"). But I think my blog should appear before something like "I love Suzanne Vega, and I live in San Diego".
Pagerank is a pretty clever and useful heuristic. It just has room for improvement I guess. I am aware of the semantic web and the very smart people that are both against and in favor of it. But I think I am asking about something simpler.
Of course I have a secret plan to get in the top 10!
Tuesday, November 25, 2003
System.Collections.Generics
To keep up with the dittohead practice of writing down my comments to real Microsoft blogs as my own blog entries, I have to add this one:
So Brad Abrams said this about the new generic collections in Whidbey. And I wrote comment # 59!
Ok, with some luck this is going to be comment number 59 (I guess that means Brad Abrams won't ever see it!).
I though I had something new to say but after reading from the beginning trough Don Box comment, I just have to agree with Kenneth Brubaker.
In addition, I think I read once that for G<T> to be interpreted as G<System.Object> when no T was supplied there was no need for facades and was completely automatic (even compatible with the CLS). That could mean that you can forget creating the System.Collections.Generics namespace. You just dump the non generic collections and put the new generic collections in place. In the process, you help keeping the API clean and make everybody happy (including legacy code).
The alternative is to put Generics namespaces everywhere. Please, don't do it if you can avoid it. Let's make the framework look as if it was designed with generics in mind from the beginning!
Obviously I have been reading too much angle brackets, becacause Brad Abrams wouldn't be asking us for feedback on this if it was that simple. So why isn't it so simple Brad?
So Brad Abrams said this about the new generic collections in Whidbey. And I wrote comment # 59!
Ok, with some luck this is going to be comment number 59 (I guess that means Brad Abrams won't ever see it!).
I though I had something new to say but after reading from the beginning trough Don Box comment, I just have to agree with Kenneth Brubaker.
In addition, I think I read once that for G<T> to be interpreted as G<System.Object> when no T was supplied there was no need for facades and was completely automatic (even compatible with the CLS). That could mean that you can forget creating the System.Collections.Generics namespace. You just dump the non generic collections and put the new generic collections in place. In the process, you help keeping the API clean and make everybody happy (including legacy code).
The alternative is to put Generics namespaces everywhere. Please, don't do it if you can avoid it. Let's make the framework look as if it was designed with generics in mind from the beginning!
Obviously I have been reading too much angle brackets, becacause Brad Abrams wouldn't be asking us for feedback on this if it was that simple. So why isn't it so simple Brad?
Sunday, November 23, 2003
Gustavo Cerati
Tonight I missed the Santo Domingo concert of one of my favorite musicians. I have been listening to his music for more than 15 years. Life goes on. I just don't want to think it was the last chance so see him in a live concert. The reason we decided not to go was that the tickets were too expensive for us three to go. The fact that the prices was as high as half the monthly income of a typical Dominican family also got me in a rebel mood.
In the afternoon my wife got her wallet stolen in a big store. A credit card, some ID's, health insurance and driving licenses were taken.
Fortunately she and our son are ok.
Amazingly the amount of money in the wallet was just enough to pay a couple of tickets to the concert.
Should I take this like a message? ;) Yes, somebody wants me to be upset, but I am too tired.
In the afternoon my wife got her wallet stolen in a big store. A credit card, some ID's, health insurance and driving licenses were taken.
Fortunately she and our son are ok.
Amazingly the amount of money in the wallet was just enough to pay a couple of tickets to the concert.
Should I take this like a message? ;) Yes, somebody wants me to be upset, but I am too tired.
Thursday, November 20, 2003
Little thing I asked Paul Vick
Paul Vick has an "ask a language designer" feature in his blog. I've just used it:
Dear Paul,
I got the other into some sample code from Microsoft. It included things like:
Public Class Foo
...
Public Overloads Overrides Function Bar(...) As ...
...
End Function 'Bar
End Class 'Foo
I immediatelly noticed the commented function and class names along the End statements. I though it was nice. Somebody tought it was useful to document then End statements with labels. I think it would be also nice to be able to remove the comments, like in:
Public Class Foo
...
Public Overloads Overrides Function Bar(...) As ...
...
End Function Bar
End Class Foo
It would be nice that the compiler checked the names are correct as it does with For foo... Next foo.
What do you think? Do you see value in this?
Diego
Dear Paul,
I got the other into some sample code from Microsoft. It included things like:
Public Class Foo
...
Public Overloads Overrides Function Bar(...) As ...
...
End Function 'Bar
End Class 'Foo
I immediatelly noticed the commented function and class names along the End statements. I though it was nice. Somebody tought it was useful to document then End statements with labels. I think it would be also nice to be able to remove the comments, like in:
Public Class Foo
...
Public Overloads Overrides Function Bar(...) As ...
...
End Function Bar
End Class Foo
It would be nice that the compiler checked the names are correct as it does with For foo... Next foo.
What do you think? Do you see value in this?
Diego
Salam Pax is in London
I think I forgot to tell Salam Pax is one of my favorite bloggers. I don't go to read him every day, but everytime I do, I like it a lot.
Of course I began reading him a few weeks before the war like everybody else. Salam is famous for being an Iraqi blogger who was blogging from Baghdad during the war. His blog has plenty of hits those days.
I was one of the guys that was worried for Salam life when he stopedd blogging after the bombings.
I am reading it today. It is so good!
Of course I began reading him a few weeks before the war like everybody else. Salam is famous for being an Iraqi blogger who was blogging from Baghdad during the war. His blog has plenty of hits those days.
I was one of the guys that was worried for Salam life when he stopedd blogging after the bombings.
I am reading it today. It is so good!
My first time
Everybody in my side of blogsphere did it. And I am a dittohead, so how could I resist writing about my first programming experience in my blog?
Well, before I begin... Are you sure you want me to do this?
Ok then... My first programming experience was with my father programmable calculator. He bought a refurbished TI-59 for U$S 200 in 1980 during our visit to Miami. It had a PC100C thermal tape printer, an embedded magnetic card reader and a socket in which you could plug a microchip (mostly ROM I think) to add some library programs. I learned its programming language, which was some kind of assembler mixed with AOS (Algebraic Operating System) math. It had 960 (or was it 959?) programming steps (bytes) and 100 memory registers.
Writing programs in the calculator was one of those tasks that my son would never believe. You had to press the calculator keys in LRN (learn) mode. Usually you had to go back and change some codes, or even do some tricks to input some undocumented instructions. But the display was only numeric so you had to learn the codes.
The thermal printer was a lot of help in debugging because it was able to print the instruction mnemonic along the numeric code in program lists. I remember always having several meters of paper tape and a blue pen around when programming. I even remember writing really long programs on paper during long car trips so I could input them to the calculator when I got back home. If I just could remember what the programs were about! ;)
I really loved to program the TI-59. I was happy to answer that I was already a programmer when asked what I would like to do in the future. Jeez! I was only 11 years old!
While I was that young, I had had the word COMPUTER in my mouth (and in my mind) since several years before.
After that, my father bought a TRS-80 Pocket Computer 1. For me, it was a piece of art. With it I got versed in the ways of BASIC, which soon felt so second nature to me. This time the computer had a single line alphanumeric display and a cassette interface to save programs in tape. It was impossible to get any graphics from it. In my recollections I don't remember my father ever buying the printer (I will ask him for help). Maybe he bought it but it was stored at his office in the University. The little computer didn't belong to my father alone. He shared it with some other teachers so one day he had to take it to his office and I never saw it again.
Fortunately my brother began studying Electronics. So I had a change to visit the computing laboratory at his University. They had a few TRS-80s model II and model III. I got to touch one of them. For that occasion I wrote in paper a one page BASIC program that could play 0-X against a human player without ever loosing ;) I can't recall what happened with the program, but I think one visit to the computer wasn't enough to get it finished. I only remember how fun was to delete program characters in the BASIC editor!
I got access to a LOGO book by then. I was fascinated with recursiveness. I can tell that I never got to program in LOGO with a real computer but I digested every line of code in that book. I am looking foward for MonoLOGO progress. It is good to know what my son first programing experience will be :-)
After that I began to develop a nasty jealousy feeling for the guys that got their hands on more serious hardware, like the TI-99s, the Spectrums and the Commodores of the time.
Only seldom I had the chance to touch things like that. Of course the Mac and the IBM PC were already in the market, but almost nobody had them. I have some remembering of a friend of mine that had a Compaq clone with a really small CRT, and was able to run MS Windows 1.0. But I am not sure of the time being.
By that time my brother got some borrowed TK85 computer from his girlfriend for several months. It was a Brazilian version of a Timex TS1500. The alphabet soup of Z80 based computers those days was a real mess. We had the ZX made by SINCLAIR, the TS made by TIMEX, the CZ made by CZERWENY in Argentina and the TKs made by MICRODIGITAL in Brazil. Then there was the MSX!
I learned some more BASIC with the TK85, and enjoyed browsing the contents of the computer ROM in my TV, but I never got to master PEEK and POKE. I had to wait until the University to learn some Z80 Assembler language in an emulator program.
Then my father bought and IBM PC Convertible. I remember it was the first computer with 3½" floppy disk drives in town (it had two of them, but no hard disk), so we could not share anything with anybody. The first night we had the computer at home my brother Fernando learned how to use the format command by formatting our only PC DOS 3.30 disk! Of course we were clever enough to remove the physical write protection!!! :-) From there we could only boot on the tools disk for several days.
Then I got my first job. On my first week I got PC Tools to print the full HEX code for a 10KB chess game that was in one of the computers. Back in home I typed it using PC Tools again, on the PC Convertible. Remember I said nobody had 3½" disks? Well, it didn't work very well. The chessboard got drawn, and the first piece started flashing, but from then I made a typo, I guess.
At work, my office was full of IBM PCs and soon after that it was full of IBM PS/2s. We had the first really big PC network in town, and probably one of the biggest in the country. It was a 200+ (if I remember well) nodes Token Ring. We ran it on IBM PC LAN Program 1.3 first, and on OS/2 later.
I was supposedly there to be a data entry man, but soon I began convincing everybody that I was actually a Clipper programmer.
And that was just the beginning... (Insert 2001 Space Odyssey music here)
Well, before I begin... Are you sure you want me to do this?
Ok then... My first programming experience was with my father programmable calculator. He bought a refurbished TI-59 for U$S 200 in 1980 during our visit to Miami. It had a PC100C thermal tape printer, an embedded magnetic card reader and a socket in which you could plug a microchip (mostly ROM I think) to add some library programs. I learned its programming language, which was some kind of assembler mixed with AOS (Algebraic Operating System) math. It had 960 (or was it 959?) programming steps (bytes) and 100 memory registers.
Writing programs in the calculator was one of those tasks that my son would never believe. You had to press the calculator keys in LRN (learn) mode. Usually you had to go back and change some codes, or even do some tricks to input some undocumented instructions. But the display was only numeric so you had to learn the codes.
The thermal printer was a lot of help in debugging because it was able to print the instruction mnemonic along the numeric code in program lists. I remember always having several meters of paper tape and a blue pen around when programming. I even remember writing really long programs on paper during long car trips so I could input them to the calculator when I got back home. If I just could remember what the programs were about! ;)
I really loved to program the TI-59. I was happy to answer that I was already a programmer when asked what I would like to do in the future. Jeez! I was only 11 years old!
While I was that young, I had had the word COMPUTER in my mouth (and in my mind) since several years before.
After that, my father bought a TRS-80 Pocket Computer 1. For me, it was a piece of art. With it I got versed in the ways of BASIC, which soon felt so second nature to me. This time the computer had a single line alphanumeric display and a cassette interface to save programs in tape. It was impossible to get any graphics from it. In my recollections I don't remember my father ever buying the printer (I will ask him for help). Maybe he bought it but it was stored at his office in the University. The little computer didn't belong to my father alone. He shared it with some other teachers so one day he had to take it to his office and I never saw it again.
Fortunately my brother began studying Electronics. So I had a change to visit the computing laboratory at his University. They had a few TRS-80s model II and model III. I got to touch one of them. For that occasion I wrote in paper a one page BASIC program that could play 0-X against a human player without ever loosing ;) I can't recall what happened with the program, but I think one visit to the computer wasn't enough to get it finished. I only remember how fun was to delete program characters in the BASIC editor!
I got access to a LOGO book by then. I was fascinated with recursiveness. I can tell that I never got to program in LOGO with a real computer but I digested every line of code in that book. I am looking foward for MonoLOGO progress. It is good to know what my son first programing experience will be :-)
After that I began to develop a nasty jealousy feeling for the guys that got their hands on more serious hardware, like the TI-99s, the Spectrums and the Commodores of the time.
Only seldom I had the chance to touch things like that. Of course the Mac and the IBM PC were already in the market, but almost nobody had them. I have some remembering of a friend of mine that had a Compaq clone with a really small CRT, and was able to run MS Windows 1.0. But I am not sure of the time being.
By that time my brother got some borrowed TK85 computer from his girlfriend for several months. It was a Brazilian version of a Timex TS1500. The alphabet soup of Z80 based computers those days was a real mess. We had the ZX made by SINCLAIR, the TS made by TIMEX, the CZ made by CZERWENY in Argentina and the TKs made by MICRODIGITAL in Brazil. Then there was the MSX!
I learned some more BASIC with the TK85, and enjoyed browsing the contents of the computer ROM in my TV, but I never got to master PEEK and POKE. I had to wait until the University to learn some Z80 Assembler language in an emulator program.
Then my father bought and IBM PC Convertible. I remember it was the first computer with 3½" floppy disk drives in town (it had two of them, but no hard disk), so we could not share anything with anybody. The first night we had the computer at home my brother Fernando learned how to use the format command by formatting our only PC DOS 3.30 disk! Of course we were clever enough to remove the physical write protection!!! :-) From there we could only boot on the tools disk for several days.
Then I got my first job. On my first week I got PC Tools to print the full HEX code for a 10KB chess game that was in one of the computers. Back in home I typed it using PC Tools again, on the PC Convertible. Remember I said nobody had 3½" disks? Well, it didn't work very well. The chessboard got drawn, and the first piece started flashing, but from then I made a typo, I guess.
At work, my office was full of IBM PCs and soon after that it was full of IBM PS/2s. We had the first really big PC network in town, and probably one of the biggest in the country. It was a 200+ (if I remember well) nodes Token Ring. We ran it on IBM PC LAN Program 1.3 first, and on OS/2 later.
I was supposedly there to be a data entry man, but soon I began convincing everybody that I was actually a Clipper programmer.
And that was just the beginning... (Insert 2001 Space Odyssey music here)
What kind of programmer am I?
Again reading Brad Abrams blog, I got to read this classification for programming types. I am trying to comment his entry, but there is an error in his site.
I usually enjoy being systematic-pragmatic, so I can build the infrastructure well enough that I (that is me, along with others) can later use it like a brainless opportunistic.
I am comfortable being pragmatic-opportunistic while using components that really work (like 90% of protocol stacks, databases, etc.). Tinkering with them until I get the "principles" is usually enough to satisfy my curiosity.
On the other hand, programming for a life teaches you to be pragmatic-opportunistic unless you are brilliant enough to get to work on one of the relatively scarce places where you get paid for being systematic. But having to deal very often with ill built components (like 90% of ActiveX components in the wild) makes me so angry! I am used to go back reinventing the wheel when the third party wheel doesn’t work.
So I guess I am difficult to label. I think it is like being a car mechanic that loves to get his face under the hood, but also loves do drive a glitch free car. This makes me thing I would never try to build a whole car by myself.
What a joy it is when everything just works!
I usually enjoy being systematic-pragmatic, so I can build the infrastructure well enough that I (that is me, along with others) can later use it like a brainless opportunistic.
I am comfortable being pragmatic-opportunistic while using components that really work (like 90% of protocol stacks, databases, etc.). Tinkering with them until I get the "principles" is usually enough to satisfy my curiosity.
On the other hand, programming for a life teaches you to be pragmatic-opportunistic unless you are brilliant enough to get to work on one of the relatively scarce places where you get paid for being systematic. But having to deal very often with ill built components (like 90% of ActiveX components in the wild) makes me so angry! I am used to go back reinventing the wheel when the third party wheel doesn’t work.
So I guess I am difficult to label. I think it is like being a car mechanic that loves to get his face under the hood, but also loves do drive a glitch free car. This makes me thing I would never try to build a whole car by myself.
What a joy it is when everything just works!
Sunday, November 16, 2003
Properties vs. Methonds
Brad Abrams asks in his blog for some feedback on this. I wrote the 34th comment or something like this. I hope Brad will read them all ;) This is mine:
Brad, I remember when Omri Gazitt got me converted to ADO.NET design philosophy. In http://discuss.develop.com/archives/wa.exe?A2=ind0009B&L=DOTNET&P=R53999&I=-3 he explained that the ADO Recordset design was bad because in some scenarios it isolated the programmer from the knowledge that he was doing expensive cross machine operations.
The fact is that the changes introduced in ADO.NET had nothing to do with changing property syntax to function syntax. On the contrary they created a new object model in which the programmer had to explicitly program for the cross machine scenario. They also gave the programmer the dataset which allowed for saving networks round trips.
In your example I sincerely see no point in the function syntax helping code review. I have done code review and I know those parenthesis are lost in 10 thousand lines. You really have to know what you are doing and go line by line, or use case by use case to find the not so great coding.
In the end the get_ at the beginning and the parenthesis are just adding to code clutter, and they are no replacement for a good profiling tool that would put a red alert close to the expensive line.
Please, let’s stick to properties and consistence in this case.
Brad, I remember when Omri Gazitt got me converted to ADO.NET design philosophy. In http://discuss.develop.com/archives/wa.exe?A2=ind0009B&L=DOTNET&P=R53999&I=-3 he explained that the ADO Recordset design was bad because in some scenarios it isolated the programmer from the knowledge that he was doing expensive cross machine operations.
The fact is that the changes introduced in ADO.NET had nothing to do with changing property syntax to function syntax. On the contrary they created a new object model in which the programmer had to explicitly program for the cross machine scenario. They also gave the programmer the dataset which allowed for saving networks round trips.
In your example I sincerely see no point in the function syntax helping code review. I have done code review and I know those parenthesis are lost in 10 thousand lines. You really have to know what you are doing and go line by line, or use case by use case to find the not so great coding.
In the end the get_ at the beginning and the parenthesis are just adding to code clutter, and they are no replacement for a good profiling tool that would put a red alert close to the expensive line.
Please, let’s stick to properties and consistence in this case.
More on RSS feed
The feed is being generated. I has a couple of bugs with post tittles and non conforming date formats, but that I am greateful to BlogStreet.
I got my RSS but...
I got to publish my RSS feed trough BlogStreet. However, it is not working, yet. We will see tomorrow.
I think Rory is a lot like having Charles Bukowski blogging
It is not that he is completely like Charles Bukowski. Rory just reminds me of him. After all, I have only read some parts of "Erections, Ejaculations, Exhibitions and General Tales of Ordinary Madness", from "Love Is a Dog from Hell: Poems" and something else I don't remember. Everything translated to spanish. Go there, and have fun. Then go here and there too.
New blog description
Yesterday (or was it before yesterday?) I changed my blog description from "Just Diego B. Vega attempt to find out how blogging feels" wich was very silly to "Diego B. Vega is another Microsoft Dittohead Blogger" wich sounds even worse. Is it just an attempt to get infected by Rory coolness? Maybe, but also a way to say ditto to him. In many respects I have been there too, but I couldn't tell you about it like he does. Not even in spanish.
Friday, November 14, 2003
More on Lonhorn naming
I am still following the Longhorn naming thread at John's blog, which is still growing. I have just posted this comment:
I am only beginning to realize how difficult it will be to find good descriptive names for the new technology that won't clash with current naming schemes inside and outside Microsoft.
Regarding Avalon, Indigo and WinFS, maybe we can just keep the code names in the pre-Longhorn context. For instance we can keep calling Avalon the new presentation technology in Longhorn and expect everybody to use "presentation subsystem" (as appears in the Longhorn SDK now) or "System.Windows namespace" or just “System.Windows API” by 2010. We could also keep using Indigo in pre-Longhorn context and expect everybody to use “MessageBus subsystem "Microsoft.MessageBus" from there on. Also the same for using WinFs now and and “System.Storage” in the future.
My point is that those cool new technologies are supposed to blend together with the current .NET framework in WinFX or whatever the name of then new .NET based Windows API is. After that I see no good reason for call them anything special besides they actual identification inside the whole WinFX API. Actually I think the “Microsoft namespace” is getting too much populated. Developers coding against WinFX will need very good cartography.
XAML is something different as it is an ML. Maybe it won’t be so exclusively tied to GUI design as we think today. In my opinion, the name XAML is as good as OGIML (Object graph initialization ML) or OWML (Object Wiring ML) or perhaps X# :-)
I am only beginning to realize how difficult it will be to find good descriptive names for the new technology that won't clash with current naming schemes inside and outside Microsoft.
Regarding Avalon, Indigo and WinFS, maybe we can just keep the code names in the pre-Longhorn context. For instance we can keep calling Avalon the new presentation technology in Longhorn and expect everybody to use "presentation subsystem" (as appears in the Longhorn SDK now) or "System.Windows namespace" or just “System.Windows API” by 2010. We could also keep using Indigo in pre-Longhorn context and expect everybody to use “MessageBus subsystem "Microsoft.MessageBus" from there on. Also the same for using WinFs now and and “System.Storage” in the future.
My point is that those cool new technologies are supposed to blend together with the current .NET framework in WinFX or whatever the name of then new .NET based Windows API is. After that I see no good reason for call them anything special besides they actual identification inside the whole WinFX API. Actually I think the “Microsoft namespace” is getting too much populated. Developers coding against WinFX will need very good cartography.
XAML is something different as it is an ML. Maybe it won’t be so exclusively tied to GUI design as we think today. In my opinion, the name XAML is as good as OGIML (Object graph initialization ML) or OWML (Object Wiring ML) or perhaps X# :-)
John Montgomery was in BYTE magazine
BYTE was my second favorite magazine when I was a teenager. It was my first favorite until I found Computer Language during a trip to Buenos Aires. Now, when I see BYTE (in capital letters) I almost fall in tears. That is a name that after all those years still look so cool. Of course you can go to BYTE.com which is really good. I have just read John last entry in his blog, and I couldn't resist the temptation. Here is my comment:
John, I have been following your blog since that Longhorn technology naming thing and I was thrilled to learn you were part of the BYTE staff. I can remember your coworkers as you name them, even if I can only remember what Jon Udell and Martin Heller used to write about. I am curious about what was your work there. I wish I could find one of my "5 years of BYTE" CDs just to search for you.
About the BYTE name, I am amazed to see how intensely the name still lives in my mind. Looking at that capital letters sends me back to the day my mother first said that BYTE was really my holy bible.
By the way: somebody, i don't know who, still owes me a refund for the remaining issues of my BYTE magazine subscription.
John, I have been following your blog since that Longhorn technology naming thing and I was thrilled to learn you were part of the BYTE staff. I can remember your coworkers as you name them, even if I can only remember what Jon Udell and Martin Heller used to write about. I am curious about what was your work there. I wish I could find one of my "5 years of BYTE" CDs just to search for you.
About the BYTE name, I am amazed to see how intensely the name still lives in my mind. Looking at that capital letters sends me back to the day my mother first said that BYTE was really my holy bible.
By the way: somebody, i don't know who, still owes me a refund for the remaining issues of my BYTE magazine subscription.
Friday, November 07, 2003
Parallel blogs
I have just came from reading Peter Golde blog. When I saw his opinion about Miguel messy toughs about exceptions, I realized that this was my second visit to Peter.
I am amazed to see that this guy had not tell anybody about his blog a few weeks ago. He also does things like wondering why Internet Explorer wasn't mentioned at the PDC, searching for himself in Google, and stating things like "my last three blog entries where too much like complaining".
Amazing and fun! Chances are that Peter Golde is also an INTP ;)
I am amazed to see that this guy had not tell anybody about his blog a few weeks ago. He also does things like wondering why Internet Explorer wasn't mentioned at the PDC, searching for himself in Google, and stating things like "my last three blog entries where too much like complaining".
Amazing and fun! Chances are that Peter Golde is also an INTP ;)
Third places
I have never heard about those third places until I read about them in Chris Andersons blog. I immediately figured out that this city is full of them. Dominicans call them "Colmados" (col - mah - thoughs), and I think they fulfill each and every condition in the list. Basically a colmado is a convenience store. But they usually put some tables and chairs around. Many people meet there in the morning and in the night every day, to talk about sports, politics or whatever are the news of the day. Beer, which is very good, and food are inexpensive. Even tough I have never been socializing in a Colmado, I am sure it is easy to get into a conversation. Dominicans are specially friendly regarding this. I am sure I have never seen something like this anywhere else.
Thursday, November 06, 2003
Microsoft: Please don’t kill the baby
Dear John Montgomery,
Sorry for the title, but I am a little scared.
Maybe it is because I didn’t attend the PDC that I don’t completely understand what the new message is. Maybe I have the wrong idea that .NET is more tightly related to managed code and the CLR than it is to web services and XML (hence you can use the .NET framework for many things beyond web services and XML, but it is still the coolest platform to build web services on).
I am sure you know better than me. My point is that even if I am completely wrong, perhaps I am not the only one.
I agreed with Bill Gates when he admitted that Microsoft did a poor job communicating what .NET is. And I have spent some time during the last three years distilling myself what .NET is and isn’t.
For instance, I have perceived (or maybe just imagined) that Microsoft has a long term master plan which includes integrating the CLR in their operating systems, in their database manager, and in almost everything they do. I always though that .NET was a new platform. I remember when before Microsoft began using the .NET name they used to call it NGWS (which was a descriptive name, very attached to Windows but not as cool as .NET).
As a developer I tend to see .NET as a platform to build on. I never bought that .NET My Services were really part of that platform. I saw them as Microsoft .NET applications. I reluctantly accepted that Windows Server 2003 was going to be named Windows .NET Server for the sole reason that it had the CLR embedded in it. And I was happy when they dropped that plan.
On the other hand, I always perceived that even when Microsoft had no official cross platform story for .NET, they had a very strong “build on standards” story that encouraged them to send the CLR, core parts of the framework, and C# to ECMA for standardization (and ultimately for others to implement the standard on other operating systems). I felt in heaven when Microsoft shiped Rotor, and even beyond heaven when they announced Mac OSX support for it. I still have the hope that Microsoft will eventually send more chunks of the framework to ECMA for standardization (I see they are shipping C# 2.0).
I even remember that in the old days of the DOTNET mailing list, some envisioned how wonderful would have been that Microsoft built Windows Forms designers around an XML based persisting format. I had the hunch that it was just around the corner.
Because I see Microsoft realizing in Whidbey and Longhorn each and every piece of that master plan (which I will call the .NET master plan), I cannot see how at least some of those technologies should not be called .NET. And I cannot understand why you say "going back" (when did we come out?) to the .NET name would be retrograde.
So, maybe I am wrong, but let me illustrate my mistakes:
- I see WinFS as a Windows feature that builds on NTFS, SQL Server, XML and .NET. I am not sure how much of it makes sense to standarize.
- I understand Indigo as the new way to do web services in .NET. As a developer I want this to be standarized.
- I see Avalon as the Windows implementation of an API that should be considered part of the .NET standard.
- I think XAML will fulfill its full potential only if it is submitted to ECMA.
- I need to read more about ClickOnce , the secure execution environment and TrustManager to better understand what they mean.
- As for WinFX, the only compelling reason I see to give it a name is to reflect that we should stop using Win32 and in favor of a new Windows API based on the .NET framework.
I agree that Windows and Office are the two strongest brands Microsoft owns. That is, for end users, for IT managers, for journalists, for beta testers, etc. But we are developers. For us .NET and SQL Server are Microsoft strongest brands.
Most of those new technologies are for developers to use in the benefit of end users. Their names will probably be mentioned in text shown during Longhorn setup and also in some literature for IT Managers, end user magazines, etc. But besides this it is primarily developers who are going to use them.
I would like to call myself a .NET developer for the next 10 years as I used to call myself (being a little self indulgent) a Windows DNA architect three years ago.
I have seen “clueless people” out there asking things like why Microsoft failed in the .NET vs. Java war, or when is Microsoft going to kill .NET. Please, don’t give them reasons to be more confused.
I think Microsoft has already cleaned the .NET name enough to go ahead with it, and they have invested too much in it already to kill it.
Maybe it is that I have heard Bill Gates saying that they are focusing the company in this new platform that is .NET is too many times.
And John, thanks for asking for our feedback.
Yours truly,
Diego Vega
UPDATE: I could hardly believe what this article states. But I have to ask you John. Is this true? D*mn, I am suddenly feeling lightheaded...
Sorry for the title, but I am a little scared.
Maybe it is because I didn’t attend the PDC that I don’t completely understand what the new message is. Maybe I have the wrong idea that .NET is more tightly related to managed code and the CLR than it is to web services and XML (hence you can use the .NET framework for many things beyond web services and XML, but it is still the coolest platform to build web services on).
I am sure you know better than me. My point is that even if I am completely wrong, perhaps I am not the only one.
I agreed with Bill Gates when he admitted that Microsoft did a poor job communicating what .NET is. And I have spent some time during the last three years distilling myself what .NET is and isn’t.
For instance, I have perceived (or maybe just imagined) that Microsoft has a long term master plan which includes integrating the CLR in their operating systems, in their database manager, and in almost everything they do. I always though that .NET was a new platform. I remember when before Microsoft began using the .NET name they used to call it NGWS (which was a descriptive name, very attached to Windows but not as cool as .NET).
As a developer I tend to see .NET as a platform to build on. I never bought that .NET My Services were really part of that platform. I saw them as Microsoft .NET applications. I reluctantly accepted that Windows Server 2003 was going to be named Windows .NET Server for the sole reason that it had the CLR embedded in it. And I was happy when they dropped that plan.
On the other hand, I always perceived that even when Microsoft had no official cross platform story for .NET, they had a very strong “build on standards” story that encouraged them to send the CLR, core parts of the framework, and C# to ECMA for standardization (and ultimately for others to implement the standard on other operating systems). I felt in heaven when Microsoft shiped Rotor, and even beyond heaven when they announced Mac OSX support for it. I still have the hope that Microsoft will eventually send more chunks of the framework to ECMA for standardization (I see they are shipping C# 2.0).
I even remember that in the old days of the DOTNET mailing list, some envisioned how wonderful would have been that Microsoft built Windows Forms designers around an XML based persisting format. I had the hunch that it was just around the corner.
Because I see Microsoft realizing in Whidbey and Longhorn each and every piece of that master plan (which I will call the .NET master plan), I cannot see how at least some of those technologies should not be called .NET. And I cannot understand why you say "going back" (when did we come out?) to the .NET name would be retrograde.
So, maybe I am wrong, but let me illustrate my mistakes:
- I see WinFS as a Windows feature that builds on NTFS, SQL Server, XML and .NET. I am not sure how much of it makes sense to standarize.
- I understand Indigo as the new way to do web services in .NET. As a developer I want this to be standarized.
- I see Avalon as the Windows implementation of an API that should be considered part of the .NET standard.
- I think XAML will fulfill its full potential only if it is submitted to ECMA.
- I need to read more about ClickOnce , the secure execution environment and TrustManager to better understand what they mean.
- As for WinFX, the only compelling reason I see to give it a name is to reflect that we should stop using Win32 and in favor of a new Windows API based on the .NET framework.
I agree that Windows and Office are the two strongest brands Microsoft owns. That is, for end users, for IT managers, for journalists, for beta testers, etc. But we are developers. For us .NET and SQL Server are Microsoft strongest brands.
Most of those new technologies are for developers to use in the benefit of end users. Their names will probably be mentioned in text shown during Longhorn setup and also in some literature for IT Managers, end user magazines, etc. But besides this it is primarily developers who are going to use them.
I would like to call myself a .NET developer for the next 10 years as I used to call myself (being a little self indulgent) a Windows DNA architect three years ago.
I have seen “clueless people” out there asking things like why Microsoft failed in the .NET vs. Java war, or when is Microsoft going to kill .NET. Please, don’t give them reasons to be more confused.
I think Microsoft has already cleaned the .NET name enough to go ahead with it, and they have invested too much in it already to kill it.
Maybe it is that I have heard Bill Gates saying that they are focusing the company in this new platform that is .NET is too many times.
And John, thanks for asking for our feedback.
Yours truly,
Diego Vega
UPDATE: I could hardly believe what this article states. But I have to ask you John. Is this true? D*mn, I am suddenly feeling lightheaded...
Wednesday, November 05, 2003
My beloved Computer Language Magazine
I have been missing reading Larry O'Brien's since... I don't want to think since when. It is good to know he has a blog. And it is even better to see he is thinking in .NET. Computer Language was probably the magazine I most liked, but I only managed to buy a few issues, and they are gone. I remember the covers were so artistic, and the content, fascinating. Back then it was also an interesting time to be a programmer.
Tuesday, November 04, 2003
Naming products
Mr. John Montgomery himself asks What to Call "Avalon," "WinFS," etc?. I though it was my chance to be bave and pretend I know what I am talking about. Here are my comments:
Comment One:
Maybe the repented marketing guys at MS would be too scared to do this, but I think it is exactly the right time to start naming those things with the .NET suffix. Last time Microsoft got in the .NET naming frenzy it messed it up by calling .NET some things that had nothing to do with the CLR. But then you have VS.NET, ADO.NET and ASP.NET that are IMHO cool and very clear names. They have meaning too. Those names denote the .NET way to do things that are already familiar for experienced developers and informed newbies. I would probably call Avalon GDI.NET and WinFS NTFS.NET (or maybe WFS.NET). WinFx is probably something that doesn't really need to have a new name since it is, in my view, not much more than.NET Framework version 3. Going even further: Don't you think Yukon is the real SQL Server .NET and Longhorn the proverbial Windows .NET?
Comment two:
On the other hand, I also love the idea of naming those things exactly as their corresponding namespaces :)
Comment One:
Maybe the repented marketing guys at MS would be too scared to do this, but I think it is exactly the right time to start naming those things with the .NET suffix. Last time Microsoft got in the .NET naming frenzy it messed it up by calling .NET some things that had nothing to do with the CLR. But then you have VS.NET, ADO.NET and ASP.NET that are IMHO cool and very clear names. They have meaning too. Those names denote the .NET way to do things that are already familiar for experienced developers and informed newbies. I would probably call Avalon GDI.NET and WinFS NTFS.NET (or maybe WFS.NET). WinFx is probably something that doesn't really need to have a new name since it is, in my view, not much more than.NET Framework version 3. Going even further: Don't you think Yukon is the real SQL Server .NET and Longhorn the proverbial Windows .NET?
Comment two:
On the other hand, I also love the idea of naming those things exactly as their corresponding namespaces :)
Relief
This guy Rory isn't only fun to read. He also provides relief to my worries. So it is ok for a nerd to be a fan of other nerds.
Note to self: Avoid putting the word love along the name of some MS employee in the same sentence ;)
Note to self: Avoid putting the word love along the name of some MS employee in the same sentence ;)
Java is worried
I have just read the article ".NET Progress Worries Java" in the Integration Watch column (couldn't find a permalink to the article) of SDTimes. It says things that many developers (including me) have foreseen since the inception of .NET.
Unfortunately, I am worried that I will have to learn some Java for my next job position unless somebody comes to my rescue. Please! ;)
Unfortunately, I am worried that I will have to learn some Java for my next job position unless somebody comes to my rescue. Please! ;)
Monday, November 03, 2003
Introduction to blogging
Diego Doval has published an excelent introduction to blogging in two articles. Everybody in blogsphere is linking to them, for good reasons. I like Diego writing style, and the introduction is so straighforward it makes you wonder why nobody wrote it before like this. Or did somebody do it?
More on VB.NET refactoring
I have just read this in AddressOf which is G. Andrew Duthie blog. I sent this comment:
How old is the term blog? What about the verb google? I think "refactor" is a really cool term, and many know what it means already. They ones that don't know will learn, and will be able to discuss with Java, Smalltalk and even with C# developers about it in cofee breaks. However, I am open to hear what the VB.NET team comes with.
I also think that having some consistence in the IDE among different languages is a good thing. That is one of the principles behind Visual Studio. What if the VB.NET team decided to rename the file menu to something else? Maybe they come up with something better than File, but there is some value in sticking to File.
Besides, even if VB is a different language and it doesn't need to be consistent with C# or Java, it is not such a different programing model. That is the reason the wish list for refactoring tools is the same.
Regards.
How old is the term blog? What about the verb google? I think "refactor" is a really cool term, and many know what it means already. They ones that don't know will learn, and will be able to discuss with Java, Smalltalk and even with C# developers about it in cofee breaks. However, I am open to hear what the VB.NET team comes with.
I also think that having some consistence in the IDE among different languages is a good thing. That is one of the principles behind Visual Studio. What if the VB.NET team decided to rename the file menu to something else? Maybe they come up with something better than File, but there is some value in sticking to File.
Besides, even if VB is a different language and it doesn't need to be consistent with C# or Java, it is not such a different programing model. That is the reason the wish list for refactoring tools is the same.
Regards.
Sunday, November 02, 2003
I want my Trackback too
I am publishing my comments to other people twice. I need to do this cause it hurts to loose my comments only in their sites. But it would be nice to have more powerful tools to do the same.
Comments to an article in Paul Vick's blog
Mr. Paul Vick himself has a blog. He wrote about the possibility of introducing some automated refactoring tools for VB.NET in Whidbey, and he asked for feedback. I am feeling the same courage I used to feel during the glorious old days of the dotnet list:
Paul,
I am willing to know which name the team will chose for these tools. However, unless it is something really better, I see no reason not to stick to "refactor". Any well informed VB.NET developer should know what it means. Otherwise, well, we know with knowledge comes power. I think it is perfectly natural to expect that some will disregard this feature at first as many are disregarding things like inheritance right now.
In my opinion most refactoring concepts are language agnostic, and there exist some projects in which multiple languages are involved. So, maintaining some consistence among all the .NET languages could have some value.
Regarding the importance of each feature, I have zero knowledge of refactoring academics, but I have had experience doing refactoring of some ugly VB code, both mine, and other people’s code I had to take over.
I am listing the refactoring tasks I usually perform manually in order of importance for me. I know some things are too complex to automate but any help in those would be great:
0. A customizable code beautifier: I know this is not in the list, but I usually need it before I start any refactoring work, especially if it is other people code.
1. To infer a super class and maybe build a factory pattern from similar classes that were created by copying and pasting: This is probably one of the difficult tasks to automate, but it is one of the most time consuming and rewarding in my experience. In Visual Basic it is very common, probably because the lack of inheritance in previous versions forced developers to copy and paste a lot. The output of this operation is usually cleaner, more debuggable and more extensible code, hopefully less bugs and fewer places to look for them. The main risk of doing this without any help is that the littlest oversight can lead to introducing unexpected behavior. How could the IDE help? I think it could include a side by side source comparison tool. I usually work with Beyond Compare which is superb.
2. Move member to other class: Useful when you find that most of the members a method is accessing belong to a different class. I often end up realizing that the method also belongs "semantically" to the target class. When I finish moving all methods to the appropriate class, I evaluate the remaining public members for a chance to private scope. The expected output is better encapsulation, and probably shorter code. This works likewise with methods, properties and fields.
3. Changing ADO Recordsets opened for sequential access to ADO.NET DataReaders in the middle tier. I know this one qualifies as a migration task, but I wonder if you could come up with a simple tool that does this. I have found this to be very time consuming, too complex for a simple search and replace, but too stupid to waste programmer hours in it.
4. Switching from “On Error” to structured exception handling: I am not sure how easy it is to map those things, and I know “On Error” is still valid. But using try - catch blocks is so cleaner! I usually do this manually and it can be time consuming.
5. Wrap “this” with try – catch block. Well, this one is not strictly refactoring, but it is related to 4.
6. Encapsulate field.
7. Symbolic renaming: This is important, but I think a simple search & replace will cut it 70% of the time.
8. Change method signature.
9. Global type replace: This may sound stupid but this can be useful when you decide to replace all instances of class A with instances of class B. A tool could analyze which members of class A are being accessed and offer a screen to map them to members of object B. The rest could be accomplished manually.
10. Extract method.
11. Inline method: opposite of extract method, useful when you find the method is used many times but only from a few places and you can't find a good name for it ;)... I mean, you realize that having it separated is not clarifying but obfuscating the code.
12. Replace multiple calls to invariant function with temp.
By the way, I like the idea of having “Change to”.
(I had to correct some mistakes I made in the original comment to his weblog)
Paul,
I am willing to know which name the team will chose for these tools. However, unless it is something really better, I see no reason not to stick to "refactor". Any well informed VB.NET developer should know what it means. Otherwise, well, we know with knowledge comes power. I think it is perfectly natural to expect that some will disregard this feature at first as many are disregarding things like inheritance right now.
In my opinion most refactoring concepts are language agnostic, and there exist some projects in which multiple languages are involved. So, maintaining some consistence among all the .NET languages could have some value.
Regarding the importance of each feature, I have zero knowledge of refactoring academics, but I have had experience doing refactoring of some ugly VB code, both mine, and other people’s code I had to take over.
I am listing the refactoring tasks I usually perform manually in order of importance for me. I know some things are too complex to automate but any help in those would be great:
0. A customizable code beautifier: I know this is not in the list, but I usually need it before I start any refactoring work, especially if it is other people code.
1. To infer a super class and maybe build a factory pattern from similar classes that were created by copying and pasting: This is probably one of the difficult tasks to automate, but it is one of the most time consuming and rewarding in my experience. In Visual Basic it is very common, probably because the lack of inheritance in previous versions forced developers to copy and paste a lot. The output of this operation is usually cleaner, more debuggable and more extensible code, hopefully less bugs and fewer places to look for them. The main risk of doing this without any help is that the littlest oversight can lead to introducing unexpected behavior. How could the IDE help? I think it could include a side by side source comparison tool. I usually work with Beyond Compare which is superb.
2. Move member to other class: Useful when you find that most of the members a method is accessing belong to a different class. I often end up realizing that the method also belongs "semantically" to the target class. When I finish moving all methods to the appropriate class, I evaluate the remaining public members for a chance to private scope. The expected output is better encapsulation, and probably shorter code. This works likewise with methods, properties and fields.
3. Changing ADO Recordsets opened for sequential access to ADO.NET DataReaders in the middle tier. I know this one qualifies as a migration task, but I wonder if you could come up with a simple tool that does this. I have found this to be very time consuming, too complex for a simple search and replace, but too stupid to waste programmer hours in it.
4. Switching from “On Error” to structured exception handling: I am not sure how easy it is to map those things, and I know “On Error” is still valid. But using try - catch blocks is so cleaner! I usually do this manually and it can be time consuming.
5. Wrap “this” with try – catch block. Well, this one is not strictly refactoring, but it is related to 4.
6. Encapsulate field.
7. Symbolic renaming: This is important, but I think a simple search & replace will cut it 70% of the time.
8. Change method signature.
9. Global type replace: This may sound stupid but this can be useful when you decide to replace all instances of class A with instances of class B. A tool could analyze which members of class A are being accessed and offer a screen to map them to members of object B. The rest could be accomplished manually.
10. Extract method.
11. Inline method: opposite of extract method, useful when you find the method is used many times but only from a few places and you can't find a good name for it ;)... I mean, you realize that having it separated is not clarifying but obfuscating the code.
12. Replace multiple calls to invariant function with temp.
By the way, I like the idea of having “Change to”.
(I had to correct some mistakes I made in the original comment to his weblog)
Saturday, November 01, 2003
After PDC 2003: Information overload
I am reading all I can of the information that is coming out after the end of the PDC. Ok, I am not giving up, but I know I could use a good brain implant.
I want my RSS!
I want to implemente a RSS feed here and I want it now! I found some PHP tool called RSSify. But the guy that made it can't host it anymore. I will try to find a way to host it myself. I think I should also modify it to restrict the referer. At the same time I am interested in playing with some .NET based blogging tools. Or if somebody can invite me to participate in myWallop that would be the coolest thing.
Self
I have read my blog so far and I see in it a need to praise myself that scares me. And I think nobody besides me has ever read my blog. Feeling lonely today ;)
Friday, October 31, 2003
Extreme rhetoric
This is my comment to a very interesting blog piece by someone called Diego Dovall, that I found trough Scoble.
Diego,
I liked your little essay a lot. There are plenty of things to think about in it, and your writing style rocks.
I think you are right about Microsoft. I am among the ones that don’t hate them even when I don't like everything they do.
While my mother and my aunts are free not to care about Microsoft, I work in software, and I usually find reasons to care. I have been a developer working with Microsoft technologies for seven years, and I have sometimes been seen as a Microsoft zealot by my peers. I am not, I swear! As a friend of mine who programs in Java likes to say, I know that what I have with Microsoft is, to some degree, just a new form of Stockholm syndrome ;)
I am updating my resume right now, because I need to switch to another job. Sometimes, I must admit, I am a bit afraid to emphasize my specialization in Microsoft technologies. On one side, it is a great way to filter the best job proposals. But sometimes I feel that if I appear not to hate Microsoft enough, someone will paint an M$ sign in my forehead. On the other side, I know that if I say I hate Microsoft to the right people, I will get plenty of slaps in my back and the confirmation that I am among the good guys.
I have always made my best effort to keep a very balanced and sensible position about Microsoft and software technology in general. Every time I get to argue about these topics, I say: “Ok, let’s not talk about religious issues please; this is just technology after all”. But I usually get an overwhelming dose of extreme rhetoric anyway. It is so tiresome, and it makes it so impossible to talk about the facts!
This is Latin America here. Commercial software has always been too expensive for the average income, and hating Microsoft (or maybe just saying that you hate Microsoft) is just a matter of fashion among the IT staff in many companies. Many politicians are willing to sign laws to restrict the buying of Microsoft software in the Public Sector.
So, my point is: while ordinary people like us can still take whatever position about Microsoft, or not position at all, there is increasing pressure to narrow our choices.
Diego,
I liked your little essay a lot. There are plenty of things to think about in it, and your writing style rocks.
I think you are right about Microsoft. I am among the ones that don’t hate them even when I don't like everything they do.
While my mother and my aunts are free not to care about Microsoft, I work in software, and I usually find reasons to care. I have been a developer working with Microsoft technologies for seven years, and I have sometimes been seen as a Microsoft zealot by my peers. I am not, I swear! As a friend of mine who programs in Java likes to say, I know that what I have with Microsoft is, to some degree, just a new form of Stockholm syndrome ;)
I am updating my resume right now, because I need to switch to another job. Sometimes, I must admit, I am a bit afraid to emphasize my specialization in Microsoft technologies. On one side, it is a great way to filter the best job proposals. But sometimes I feel that if I appear not to hate Microsoft enough, someone will paint an M$ sign in my forehead. On the other side, I know that if I say I hate Microsoft to the right people, I will get plenty of slaps in my back and the confirmation that I am among the good guys.
I have always made my best effort to keep a very balanced and sensible position about Microsoft and software technology in general. Every time I get to argue about these topics, I say: “Ok, let’s not talk about religious issues please; this is just technology after all”. But I usually get an overwhelming dose of extreme rhetoric anyway. It is so tiresome, and it makes it so impossible to talk about the facts!
This is Latin America here. Commercial software has always been too expensive for the average income, and hating Microsoft (or maybe just saying that you hate Microsoft) is just a matter of fashion among the IT staff in many companies. Many politicians are willing to sign laws to restrict the buying of Microsoft software in the Public Sector.
So, my point is: while ordinary people like us can still take whatever position about Microsoft, or not position at all, there is increasing pressure to narrow our choices.
Tuesday, October 28, 2003
How many rectangle triangles do you know that have integer size sides?
When I was a child, some time after I have learned about Pythagoras theorem and a little trigonometry, I became completely fascinated by math. It is not to say I was brilliant in it. Even when I was probably above the average, the issue was that I was really fascinated. As expected, very soon I got the book "The Man Who Counted" in my hands. In the beginning it wasn't me, but my mother who read the short stories in loud voice.
I had of course some other people that influenced in my taste for math. Among them was my father, also one of his friends, Luis Fornero, and finally my first year math teacher in the secondary school, professor Nadal.
By the middle of that first year, my schoolmates already called me Pythagoras. As before, I think the issue wasn't that I was brilliant in anyway, but because I was fairly annoying. I got my fame for telling my fellows about some mathematical curiosities they didn't want to know about, like the golden section, the Fibonacci series, the Tartaglia's triangle, and some integer size rectangular triangles besides the classic 3-4-5.
During my years in the university my performance in math was also above the average (even when I didn't get above average scores in two of the exams I had). But by the time I already knew that I was just a computer programmer with a taste for math.
I had of course some other people that influenced in my taste for math. Among them was my father, also one of his friends, Luis Fornero, and finally my first year math teacher in the secondary school, professor Nadal.
By the middle of that first year, my schoolmates already called me Pythagoras. As before, I think the issue wasn't that I was brilliant in anyway, but because I was fairly annoying. I got my fame for telling my fellows about some mathematical curiosities they didn't want to know about, like the golden section, the Fibonacci series, the Tartaglia's triangle, and some integer size rectangular triangles besides the classic 3-4-5.
During my years in the university my performance in math was also above the average (even when I didn't get above average scores in two of the exams I had). But by the time I already knew that I was just a computer programmer with a taste for math.
Windows forms in angle brackets
XAML (pronounced zammel or something alike) seems to be related to what many (including me) had in mind in the old (and glorious) dotnet mailing list. I couldn't be more happy with it.
Finding my post about that idea in the list reminds me how enthusiastic I was in participating in the dotnet list. It was very exciting to be able to interact with people fully involved with .NET inception like Omri Gazitt, Brian Harry and Mr. Anders Hejlsberg himself!. However, now I regret almost everything I posted there, and I have the feeling that I was too naive and optimistic. Somehow I got the silly idea that I knew what I was talking about.
Finding my post about that idea in the list reminds me how enthusiastic I was in participating in the dotnet list. It was very exciting to be able to interact with people fully involved with .NET inception like Omri Gazitt, Brian Harry and Mr. Anders Hejlsberg himself!. However, now I regret almost everything I posted there, and I have the feeling that I was too naive and optimistic. Somehow I got the silly idea that I knew what I was talking about.
Monday, October 27, 2003
PDC 2003 on blogsphere
I am intensively following the PDC blogs since yesterday. Today Drew Marsh and Scott Hanselman blogs are very useful. It is amazing to attend the PDC through them. It is almost like being in the last row of seats inside the conference room.
Comments by Haloscan
Today I found about Haloscan blog comment system in The Scobelizer. What a nice thing! The fact that it is so easy to integrate in your blog makes me thing that everything else is going to be easy. It also makes want to (re)invent something useful to put in my template.
I think I have a long record of discovering cool things early and adopting them almost too late.
As with everything else, I hope I overcome my handicap with bloggin as I usually do with other things.
I think I have a long record of discovering cool things early and adopting them almost too late.
As with everything else, I hope I overcome my handicap with bloggin as I usually do with other things.
Sunday, October 26, 2003
Heh, I am back...
Looking at the left pane in blogger's main page the title of a blog catch my eye: Figuraciones. Immediately I guessed this guy likes some of the same musicians as me (like Luis Alberto Spinetta), and probably some of the same writers (like Julio Cortazar). I spent around 10 minutes reading his blog. I don't know his name, I only know he is Argentinean like me, he lives in Buenos Aires (I never did), he seems to be younger (I was too), he seems to be studying philosophy or sociology (as I did for two years) and he likes Jean Paul Sartre (I do). His blog is in Spanish. His blog is way cool! It makes me regret a little my decision to blog in English.
I am playing with this idea: Besides his originality, this guy is at some point not to different in his decision three as I was in 1989. So if he does things differently (in example, he succeeds in his sociology studies or whatever he is studying, and he writes his blog in Spanish), then nobody will miss if I didn't. It is a very difficult "thinking/feeling" to explain: It's as if the Universe has been in balance all the time even I when I made those decisions. Add the feeling that I am less alone to this.
I am playing with this idea: Besides his originality, this guy is at some point not to different in his decision three as I was in 1989. So if he does things differently (in example, he succeeds in his sociology studies or whatever he is studying, and he writes his blog in Spanish), then nobody will miss if I didn't. It is a very difficult "thinking/feeling" to explain: It's as if the Universe has been in balance all the time even I when I made those decisions. Add the feeling that I am less alone to this.
Matrix on IRC
Well, another post wont hurt. I found about the un-telligence test by googling on INTP and then going to Matthew Davey blog. He seems to be an INTP blogger too, and his blog is way cool. I have just found a reference to this "The Matrix on IRC" in his pages. LOL! I will finish tomorrow with it. I really need the sleep.
A different kind of intelligence
Here there is another, less serious test, The un-telligence test. And here are my results:
"You kick ass."
You have a knack for greatness. For the record,you are:
80% Un-telligent!
which is significantly higher than the current average of 60%
Here is the custom report of your personality that led our team of geeks to conclude (with confidence) that you are resourceful, sly, and guaranteed to get away with everything:
"The subject shows an astounding level of intelligence, and his sense of observation is one of his best qualities. Considering this, he shows a lot of potential, but that's only part of the equation.
"Finally, the subject displayed a great (and somewhat perverted!) sense of humor, a decent and respectable sense of morality, and a hot shot self-confidence. The balance of these three traits is important; high levels of confidence, medium levels of morality, and a good level of humor make for the strongest individuals."
Final Score: 80% Un-telligent
Now I really need to stop with this quiz madness. I have something better to do: sleep!
"You kick ass."
You have a knack for greatness. For the record,you are:
80% Un-telligent!
which is significantly higher than the current average of 60%
Here is the custom report of your personality that led our team of geeks to conclude (with confidence) that you are resourceful, sly, and guaranteed to get away with everything:
"The subject shows an astounding level of intelligence, and his sense of observation is one of his best qualities. Considering this, he shows a lot of potential, but that's only part of the equation.
"Finally, the subject displayed a great (and somewhat perverted!) sense of humor, a decent and respectable sense of morality, and a hot shot self-confidence. The balance of these three traits is important; high levels of confidence, medium levels of morality, and a good level of humor make for the strongest individuals."
Final Score: 80% Un-telligent
Now I really need to stop with this quiz madness. I have something better to do: sleep!
IQ
As expected the test was a lot of fun. I liked the unwrapped figures questions a lot. I haven't seen anything like that before. I made one very lame mistake, and I wasn't able to solve a couple of questions beacause of my lack of English mastership, but I still scored 127 which qualifies me to belong to the society. I wish I could ask Chris if the U$S 50 + that this costs really worth it. I guess his answer will be to invest the bucks in his book which is not a bad idea.
.NET Wonder
One of my favorite .NET bloggers lately is Chris Sells. He is so cool, just look at his face and you will see.
He seems to be so smart that Don Box's team only need to discuss with a natural size cardboard of Chris to help them find solutions for some very though software design problems ;) Those guys are all so much fun!
Mm... Do I look like I am flattering them too much?
Ok, here it says that Chris is actually a member of the International High IQ Society. Nice, I wanted and IQ test too... Did I tell you about this self-confirmation need? Already? Really? Oops, sorry man.
He seems to be so smart that Don Box's team only need to discuss with a natural size cardboard of Chris to help them find solutions for some very though software design problems ;) Those guys are all so much fun!
Mm... Do I look like I am flattering them too much?
Ok, here it says that Chris is actually a member of the International High IQ Society. Nice, I wanted and IQ test too... Did I tell you about this self-confirmation need? Already? Really? Oops, sorry man.
Last thing about this INTP thing, I promise...
The first time I head about this personality classification was a month or so ago when my wife Adriana met some human resource consultans that were working on her office. They took everybody in her office these and other tests and back at home, she tough me about it. My sister is a psychologist, one of my best friends of all life (sorry for not communicating very often with you, Ricardo) is a psychologist. I have been myself in therapy (for a short period of time, a long time ago, and I've never been crazy, ok I am not anymore, I swear ;) and I have read some texts that I would consider very "technical" in psychology. So, when I heard of this "too simplistic" classification I was completely suspicious of it. But after we arrived to the conclusion of what personality type I was, Adriana began to read some of the common characteristics of NTs. This one made me fall on my knees laughing: "When somebody express admiration for something you do routinely, you immediately get suspicious of his/her hidden agenda" (more or less). The descriptions went on and on, and we had a lot of fun. Of course I think there is a lot more in a personality than I, E, N, S, T, F, P, J, and I have seen some material online that looks too much like horoscopes based on the personality types. But I still think there is a lot of value in this classification. At least, since I learned I am an INTP I have discovered some things about my personal needs that seemed to be buried under meters and meters of extroversion disguise. Adriana and me have found our son to be introverted too and that has helped us a lot to set up the self-confirmation that he wasn't receiving from his extroverted teachers at the nursery school.
Next time I heard about it was next week in one (or many) of the .NET bloggers I usually read. They seemed to found about it almost at the same as me. And they found many of them to be ENTJs, which is supposedly also Bill Gates type. One of them suggested Microsoft should replace their current lengthily interview process with only the personality type. So if you are ENTJ, you can be a Microsoft employee. What a disappointment! ;)
Next time I heard about it was next week in one (or many) of the .NET bloggers I usually read. They seemed to found about it almost at the same as me. And they found many of them to be ENTJs, which is supposedly also Bill Gates type. One of them suggested Microsoft should replace their current lengthily interview process with only the personality type. So if you are ENTJ, you can be a Microsoft employee. What a disappointment! ;)
Saturday, October 25, 2003
I want comments!
If I give somebody the address I think I will want to do more advanced things here, like collecting comments. I wonder which is the best way to do it. I think there must be some way for other bloggers to know when they are being referenced. Wow, this is a large new world of things to learn. Nice!
Still top secret
Which reminds me that I never told anybody but my wife and one of may coworkers that I have a blog. And I have yet to give them the URL ;) I am so shy! Ah, did I tell you that I am INTP? ... Oops, oh yeah? How many times already?
About the way I read blogs
I spend more and more time reading blogs when I am online. I realize that I am not using RSS or any special blog reader. I usually start in Google, from there to Don Box's Spoutlet and from there I follow the links. Sometimes it is not Don Box, but some other .NET developer inside or outside Microsoft. A couple of years ago, when .NET didn't have a big presence in blog space, I used to start from Dave Winer's Scripting News. There I knew about Scoble, which I still love to read very often. By the way, I have lots of fun reading Don Box, Chris Sells, Chris Anderson, Miguel de Icaza, and many others. It is always refreshing and self confirming to sink in a world of geeks. That is something I unfortunately can't do very often (that is outside my family cause my wife is a geek, just not a computer geek, and my son happens to be also a geek, but he is only 2 years old now;). I am almost sure I am the only blogger in my block, I am the only blogger from in my original neighborhood, I am the only blogger in several square km, I am the only blogger among my friends, I am probably the only blogger I have ever met.
Friday, October 24, 2003
Office 2003 launch
I went to Office 2003, SBS 2003 and Exchange 2003 launch a couple of days ago. The event itself was rather flamboyant. They mounted it to look like some kind of military operation: "Operation Workplace Freedom". Almost every Microsoft employee was wearing uniforms, marching, shouting orders, obeying... Disgusting. Ok, maybe I am being too INTP ;) It was, after all, a marketing event to cheer up Microsoft partners. I like the products themselves a lot, and I really like what Microsoft does for their partners. I think the company often struggles not to betray their partners and developers, even when they are so fierce with competitors. But I hate it when they make difficult to tear up the marketing stuff and get to the real meat. I'd love to go to the PDC that's it, but I can't. Or maybe this guy is right and PDC doesn't worth it? Nahhh, no way.
Hey! So far blogging feels great
I have been in continuous brain dump for two hours and I have lost sense of time. And I still have something else to say! But I have some other goals to pursue today.
Out of luck with Debussy
Just checked some online bookstores and I cannot find "Claire de Lune" or for that matter, any other Pierre La Mure book. Are they considered good books? Do I care? I only found that Peggy Lee got the rights to produce a movie based on "Claire de Lune" in year nineteen seventy something and worked on the script for more than two years. I wonder if I had ever heard anything by Peggy Lee? Is she considered a good singer? Is there a biographic novel about her? Do I care? ;) I am sure she wanted to play Gaby in the movie. Looks like Peggy Lee didn't have Salma Hayek's luck (I know Salma doesn't consider herself lucky, but I think she is).
About my taste for artists biographies
I know, both movies are based on true lifes of outstanding artists. I realized that I liked this kind of stuff when beeing a teen I read "Claire de Lune" by Pierre La Mure. I can't remember who put that book on my hands. Was it my mother? All I know is once I declared I liked Claude Debussy music a lot, I got the book, and I loved it. I wonder if I would like to read it again. I haven't heard "La Cathédrale engloutie" in years and I don't remember when was the last time I finished a novel, only that it was Kundera's "The Unbearable Lightness of Being".
Frida
The next movie was "Frida". Lots of pain and fun. The movie was simply gorgeus for me. I can see why Salma Hayek worked so hard on the project and I am glad that she got it right with the director. Not only the story is great (a true love story between a toad and a pave), the acting is really good (Salma is great, Alfred Molina is credible, and also are Edward Norton, Ashley Judd, Geoffrey Rush, Valeria Golino), the movie even shows something new and significant (at least for me) with the 3D paiting effects.
The Pianist
I saw two very nice movies in the last days. First was Roman Polanski's "The Pianist" . Probably the saddest movie I've seen in my life. But also beautiful, very well acted, and in the end, a "hope booster". In 2003, hate, war and genocide are still matters of this world. I spent the next day thinking how would I feel if my son had to pass hard times like those. I know I would do ANYTHING to avoid it.
12 days without blogging
I knew it were going to be difficult for me to keep a blog when I began. But I am still here.
Sunday, October 12, 2003
Top ten reasons I started my own blog?
Well, I still need to think about it, but here are a few:
1. I want to practice my written English. I guess I could write my blog in Spanish, but that would take half my motivation away.
2. Lately I spend more and more time online reading blogs. I am beginning to feel the need of participating in the conversation. I am the kind of person that could never keep a blog. When I write email, even a quick reply, I usually review what I write at least five times. Many messages don't get sent at all, and sometimes I am left with the feeling that what I wrote should have been avoided. When I talk, it is the same, only that I have to decide faster. It is a refreshing challenge to do what I wouldn't normaly do.
3. I have heared that Microsoft is hiring every guy that has a blog, works with Web Services and knows .NET. The downside is that you need to be kind of super expert in those matters, and you need to be an ENTJ or at least an INTJ personality type. I am just a beginner with .NET and Web Services, and I am definitively an INTP type. I guess most INTPs in Microsoft triple my I.Q. and work in the Theory Group at Microsoft Research. Anyway, now I know that it is just a matter of kissing the right person to get in ;)
4. Once in a month or so I have an opinion about something that is not related to computer technology at all. It can be about some music I like or dislike, about a website that I found, about some political event that scares me, something I saw in the street or even more rarely, a book I want to read. I like the idea of keeping track of my thoughts, so I can remember who I am, moreless.
5. I live far from my parents, far from my brother and sister and their families, far from many relatives and friends I love. I live far from almost everything but my son, my wife and some new great friends. I thought that writing a blog could help me get more together with those people, but I am not sure this will work. At least they will have some fun reading it translated to Spanish by Google or Altavista.
Well, I cannot think right now of reasons 6 to 10. At least it is a start.
1. I want to practice my written English. I guess I could write my blog in Spanish, but that would take half my motivation away.
2. Lately I spend more and more time online reading blogs. I am beginning to feel the need of participating in the conversation. I am the kind of person that could never keep a blog. When I write email, even a quick reply, I usually review what I write at least five times. Many messages don't get sent at all, and sometimes I am left with the feeling that what I wrote should have been avoided. When I talk, it is the same, only that I have to decide faster. It is a refreshing challenge to do what I wouldn't normaly do.
3. I have heared that Microsoft is hiring every guy that has a blog, works with Web Services and knows .NET. The downside is that you need to be kind of super expert in those matters, and you need to be an ENTJ or at least an INTJ personality type. I am just a beginner with .NET and Web Services, and I am definitively an INTP type. I guess most INTPs in Microsoft triple my I.Q. and work in the Theory Group at Microsoft Research. Anyway, now I know that it is just a matter of kissing the right person to get in ;)
4. Once in a month or so I have an opinion about something that is not related to computer technology at all. It can be about some music I like or dislike, about a website that I found, about some political event that scares me, something I saw in the street or even more rarely, a book I want to read. I like the idea of keeping track of my thoughts, so I can remember who I am, moreless.
5. I live far from my parents, far from my brother and sister and their families, far from many relatives and friends I love. I live far from almost everything but my son, my wife and some new great friends. I thought that writing a blog could help me get more together with those people, but I am not sure this will work. At least they will have some fun reading it translated to Spanish by Google or Altavista.
Well, I cannot think right now of reasons 6 to 10. At least it is a start.
Subscribe to:
Posts (Atom)
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...
-
I apologize to everybody that has visited my blog lately... Sadly, I know it is too late for this. Today I found by accident that the Braven...
-
UPDATE 3/1/2006: The hotfix is officialy out for the Visual Basic background compiler crash. Thanks to Lisa, Margaret, and the VB Team. UP...