Archives
-
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:
-
ASP.NET, servlets and JSP
A dirty little secret: altough I'm firmly in the .NET development camp, I still do J2EE development and training for a handful of our customers and for good reasons too:
-
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):