.NET at 9.400 ft above sea level

Programming in Quito, 2.860 m above sea level

  • Sysinternals, Web searching, and Win Fx February CTP (or January CTP or something else)

    This morning I installed WinFx February CTP in the recommended order (Runtime, Win SDK, VS Extensions) and everything went smoothly. This afternoon, I used VS 2005 in a customer project (you know, the ones you're actually paid for doing) and something funny happened: when I tried to add a web reference in a pretty standard project I got this message Some of the files required for Web references are not installed. I blinked, tried again (I know, I know, totally silly but old habits die hard), and again... as usual, no miracle happened so I started to mumble something about idiots installing CTPs in their development machines but then I remembered the Web, I searched for "Some of the files required for Web references are not installed." and I got a few pointers, one of them gave a list of files that should exist and I was about checking when I read another pearl:

  • Programming .NET Components

    I guess this blog is kind of late, indeed I've been meaning to write about it ever since I got my copy of Programming .NET Components, 2nd Edition by Juval Löwy some weeks ago. Let me tell you that Juval has a deep understanding of the .NET Framework, he's also an accomplished teacher and this shows in his writing: detailed yet readable. One pearl: it's easy to say you never have to (actually you can't) destroy an object instance, you just loose all references to it and wait until the garbage collector does its thing, the truth of course is darker and more convoluted, you have to understand things like finalizers, IDispose, the Dispose pattern, the GC passes, etc. Fear not, in Section 4.5 Deterministic Finalization, Juval masterly explains the why's and how's of a bullet-proof object dispose implementation (by the way, do yourself a favor and read the whole Chapter 4. Life Cycle Management). This book will especially appeal to people creating a business layer but have information valuable for programmers working in any other layer. I think that it will be especially illuminating for Java experts trying to understand the inner guts (as they very much like doing) of .NET Framework. Highly recommended.

  • Turing, Eliza and IM agents

    Many people think Alan Turing is the father of Informatics because this English mathematician proposed the model in which almost every digital computer is based (they're all Turing machines). In the 50's, Turing proposed a  test to find out whether a computer was intelligent: make a human talk to several "people", if the human can't tell whether she's talking to a human or a machine then the computer is intelligent (or at least silly in a convincingly human way). In the 60's, several programs were written so they could interact with a human through a screen and a keyboard (a chat, basically), one of the most popular implementations was Eliza which played the role of a psychologist asking you questions, although it was a very simple program (in fact, it didn't have any intelligence -artificial or natural- whatsoever), it was very good at deceiving people at least during the first interactions. Fast forward to 2006: most people chat like crazy with other people through Instant Messenger, what almost nobody knows is that you can write a chat robot, that is, a program that has an e-mail address which you can reach and talk to with IM. To test the idea add this guy encarta@converseagent.com as a contact in IM and make him some questions (in English only, unfortunately):

  • Windows Communications Foundation goes live (and WFW too)

    I just received an e-mail and then read at the MSDN blogs about the Jan'06 CTP of WCF and WFW. Two big surprises for me: first, they've both got a Go Live! License. It so happens that a couple of months ago I convinced a friend to ride the wave and use Indigo in a big project, we both knew Indigo could slip its schedule but he took the risk anyway, now that we have a GLL far before the project is finished I feel relieved. The second surprise for me is how fast Workflow Foundation is maturing, I had decided to concentrate on WCF for the time being, in spite of the immediate usefulness of WWF in our current projects: I guess now I'll have to reconsider some decisions.

  • Java at schools considered dangerous

    Joel Spolsky caused quite a stir (as he likes so much doing) with his article about schools that use Java mostly/exclusively in their curricula. At TheServerSide it created one of the longest threads I've seen there: Joel was called everything from a modern day dinosaur to right on the mark. A lot of paranoia and hate messaging, as one could expect from a Java only site, but several posters maintained that O-O is just one of the programming paradigms (albeit the most popular one right now) and in that sense Java (or C# or VB.NET) should be used only in part of the curriculum, generous space was claimed for functional programming (Scheme was mentioned a lot, but personally I like Haskell better) and also for C++ (more for the pointers and low-level programming than for the O-O aspects of it). Down here in Ecuador, most schools have adopted C++ as the main programming language and a migration to Java was getting momentum when .NET hit the market, after ignoring C# for a couple of years, academia is starting to adopt it with good, although very few, results so far. How is it in your region?

  • SQL Server: very popular for new projects

    According to  this article, 51% of new projects chose SQL Server, fairly ahead Oracle (36.4%) that in turn is way ahead of the rest. Moreover, at least that what it seems like anyway, decision making was done without taking into account SQL Server 2005 which bring even more to the table.