Archives
-
My first Vista Sidebar gadget
2006-01-28: A small but important correction on step 2 added.
-
Will Vista, Office 2007, and Sharepoint 2007 cure cancer?
Of course, I'm overdoing it -may be a lot-, but you need to drive readers to your blog, don't you? Anyways, it's worth reading this article about a very interesting project that uses Vista, Office 2007, Sharepoint 2007 and .NET 3.0 to help coordinate a cancer research team, you can also see a detailed presentation here. Some people may point out that previous platforms, notably Lotus Notes, proposed this kind of applications, so what's new here? For me, developer productivity: according to Tim Huckaby this project took just a few weeks. Unbelievable.
-
On my way to Team System Level 300 Training
From Monday to Thursday I'll be in Chicago getting some deep Team System training, courtesy of Microsoft and IMG, given the short notice and being August my trip will be long: Quito-Bogotá-Miami-Chicago but I'm sure the training will be well worth the effort (besides I'll get some miles...) I'll try to blog about the training as it goes.
-
Shocking: Microsoft pays open source supporters
Now this is a place I would really like to work at. First thing that came to my mind: PHP as a front-end to a WCF business backend, second thing: Mono 2.0. I really hope Port 25 thrives!
-
Summer of Python
is an object oriented dynamic language which has became popular of late (along with Ruby). Beta 2 of Python 2.5, the official implementation, has just been released. Further, beta 9 of IronPython, a .NET implementation, has also been released, on schedule with the plans of having a 1.0 release this summer. It seems like, more sooner than later, we'll have to learn a dynamic language so it's going to be a good idea to download IronPython and give it a try.
-
In five years, Java EE will be the CORBA of the 21st Century
Richard Monson-Haefel is a noted J2EE author, in this article he says:
-
Mono 1.1.16: Python, Windows Forms, ASP.NET 2.0
This is actually Beta 3 of Mono 1.2, some highlights (according to the official announcement):
-
From the Peculiar Ideas Departament: Compilr
Say you're away from home and just have to compile some lines of code to prove a theory, how do you do? Easy: browse to http://www.caller.me.uk/Compilr/, type or paste your lines and the code is compiled in a far and away server. It sounds like a strange proposition to me, but who knows, may be there are reams of programmers with Internet access that don't have a compiler at hand... Where's the money in the site? Advertising of course (Google is now generating some really weird spawn.) For the time being, they offer you C#, VB.NET, C, and Fortran compilers. Come to think of it, if they offer a few exotic languages like Lisp, Prolog, or APL, I may very well give it a try...
-
Kerberos, NTLM, PKI, SSL, roles, AzMan, DACL, impersonation, etc. in .NET
You would imagine that topics like authentication (who you are) and authorization (what you are allowed to do), should be by now: a) solved and easily explained; b) standardized. In truth, the latter is a little more truth than the former, but at any rate if you want to understand these subjects you face a real alphabet soup and an entangled concept diversity, with each such concept apparently entitled to a tome by itself. Being 2006, authentication and authorization are still complex and not well understood topics, and, as a consequence, more than a few systems re-invent (poorly and weakly) the wheel.
-
ADO.NET provider for Postgresql
This is not really news as the driver has been available since April: Npgsql is an ADO.NET data provider written in C# that enables any .NET application to work with Postgresql 7.x and 8.x. You can download the provider from here.
-
.NET in Linux (and something about numerical analysis)
Every few months news emerge about the Mono project: spearheaded by Miguel de Icaza in order to have a Linux .NET implementation that would allow to more easily create Windows like applications in Linux, Mono has managed to implement a good C# compiler, most of the BCL (ADO.NET included) and a pretty reasonable ASP.NET 1.1, but it has failed to have a production-level Windows Forms implementation (they are moving ahead, but Microsoft goes much faster.) A couple of years ago I got enthusiastic about Mono, but now I see (sadly) that it's stalling (even though it was acquired by Novell, or may be exactly because of that [;)]).
-
Beta version of Ruby.NET compiler just released
I just got an e-mail announcing the "preliminary Beta release of the Gardens Point Ruby.NET compiler" (what's that? an alpha? an untested beta?) One part of the announcement caught my eye, though:
-
Complete Visual Studio Team System shortcut keys listing
Reading this blog entry, I remembered of the times when my younger brother Alex was the capo of PowerBuilder 6: just to impress you, he would put the mouse in his shirt pocket and then banged through the IDE just with the keyboard with amazing speed and dexterity. Well, it so happens that you can do the same with Visual Studio, only that we are so spoiled by the mouse that we never learnt how to drive VS without one. Almost a year ago, Jeff Atwood wrote a VS macro that generates a nice Web page with all the keyboard shortcuts available, I installed the macro, run it, and uploaded the shortcuts page ready for you to download and check here (the link is in Spanish, don't worry, just press the Download button.) So, any unexpected and useful shortcut there?
-
What Every Dev Must Know About Multithreaded Apps
Pay attention to this few lines of code:
-
TechEd 2006 *live* presentations
TechEd 2006 started yesterday (and I finally didn't make it). Oh well, thanks to the Internet we can be up-to-date and much closer than not-being-there, for example we can watch the keynote delivered on Sunday afternoon and some other "home made" videos recorded in situ. We can also watch a webcasts series to be done live at TechEd from June 12 to June 16. See you at the Virtual TechEd!
-
.NET Framework 3.0
Today, as Ecuador was beating Poland in the World Cup (way to go Ecuador!), Somasegar was announcing that what was previously known as WinFX (WCF, WPF, WF) plus other technologies like WCS (formerly Infocard) are an integral part of .NET Framework 3.0. Furthermore, *all* these components will be available for Vista, 2003 Server, and XP. I think it's time we download Beta 2.
-
live.com image search
This may be really old news, but I just found out that you can search images in live.com like so:
-
Follow the Germany World Cup with Microsoft Scoreboard
Earlier today, Microsoft launched (JIT-style) Microsoft Scoreboard. I have this vague idea that, from tomorrow on, many Ecuadorean software developers screens will look like this:
-
Friendly Web sites, design patterns, and metacognition
First of all, you just have to love the guys that created these register policies:
-
Datasets are not for everything (and neither XML)
First of all, let me tell you that datasets are wonderful, especially if you have to do CRUD operations on relational records. But that doesn't mean they are always the best choice. Ditto for XML. With the obvious statement out of the way, let me tell you this little tale:
-
C# Expression Evaluators
Warning: this is not the usual code sample ready to be cut and pasted in your homework due for tomorrow.
-
The Art of Project Management
Today I'm going to make an obvious point: the stars in a software project are the programmers (well, the architects a little bit too [;)]) no doubt about it. But the scenario is not unlike that of a music concert: the stars are the singers and musicians for sure but in order for the concert to be a success you require of far more people in many different fields, some of them totally unrelated to music.
-
Programmer fonts, do they matter?
May be I pay attention to silly things, but some fonts are easier to read than others and if you keep writing or reading code during hours and hours, the font that you use may very well affect your productivity (just a theory , besides, far more ridiculous stuff has made it's way in the Internet). Anyways, this is a code section with the standard Visual Studio font (Courier New Size 10):
-
PowerCollections.MultiDictionary
¿Quieres leer esto en español? Ven acá.
-
Functional programming with Haskell
At the Lima (Perú, not Ohio) Developer Days somebody told me "Ah, you're the funny languages guy". I had to smile and explain that aspect of my life: at college I had a teacher who had a penchant for LISP, being young thus impressionable I acquired the taste for lists and functional programming. Years later I discovered Haskell and when I have a little spare time *and can't be outdoors* I like to play with this nice little language. A small sample:
-
Windows Forms 2.0 Libraries
I try not to do advertisments on commercial products, but there are a few tools or libraries that, IMHO, really deserve it. One of them is Janus Systems WinForms Control Suite. If you need to create user interfaces that really show off, I suggest you to give Janus a try.
-
Happy Birthday Informatics!
In 1936 Europe was on an inevitable path to World War II, Ecuador declared the Galapagos Islands a national park. In England, a 24 years old mathematician proposed in his whitepaper On computable numbers, with an application to the Entscheidungsproblem a solution to the problem of whether there is an algorithm to determine if any given logic statement is valid or not. The interesting thing for us is the path that Alan Turing took to attack the problem: define a symbol processing machine that takes a symbol string input, decides on every symbol, and writes a symbol string output.
-
How to get an Identity value with SQL Server 2005
It's usual (actually, I'd say recommended) to have an Identity int column as primary key. I.e., it's a common thing to define a table like this:
-
The Developer Abstraction Layer
You can always count on Joel Spolsky for some good reading. Now Joel blogs about why it's so hard for great developers to start their own company, and it really resonates to me as we started Logic Studio 3 years ago and we are still in the way of going from developers (I just don't want let go) to software company owners (it's so hard to learn).
-
TechEd 2006: I'll be there
Last thing on Thursday, April 13th, the Regional Director Program sent me an invitation for a free pass to TechEd 2006. Well, almost free: in exchange of doing some community activities actually, but as I love doing that kind of stuff who cares. The thing is that by then I was on a short holiday trip (Viernes Santo is a holiday down here) so I didn't get the e-mail until Monday, April 17th. The mail urged me to register since TechEd 2006 was selling out fast, so I rushed to the registration site and here I am ready to get to Boston (now I only need to collect the money for the plane tickets and the hotel, but hey! One thing at a time.)
-
Atlas Toolkit released
The first official release of the Atlas Toolkit is ready! Well, what nowadays is called a release, what with the release-early-get-feedback-CTP-like-hell-release-again cycle. But I won't rant at the moment because these are actually good news, so go download Atlas right now (before another early release replaces it ;-)
-
Faster databinding
My friend Harley Jácome has started blogging (hey, ¡está en español!). There he describes a neat Windows Forms databinding trick that is probably very old but that I wasn't aware of. Which one do you think is faster?
-
Do that come with an E1^n! line?
In an announcement on the future of SQL Server and related technologies, Paul Flessner mentions that:
-
Slides for the JSP - ASP.NET Architecture Comparison Webcast
As promised I just uploaded the demo files for the JSP - ASP.NET Architecture Comparison webcast. You can now download the JSP demo project (made with Eclipse) and the ASP.NET demo project (made with Visual Web Developer). Both projects connect to the Northwind database running on SQL Server Express, you will most probably have to modify the connection strings (in the Java data access classes and the ASP.NET web.config file). Do let me know if you have any problems.
-
Isolated Storage
Say you want that every user save her preferences, last actions, last login time, etc. in her PC, where would you put that information? In isolated storage of course, this is like a .NET managed folder where you can create a number of files, there is one store per user/application/assembly, and the use couldn't be simpler:
-
A revisit to a tiny C# shortcut
My blog on string.IsNullOrEmpty() caused quite a stir (in my micro-scale, anyway), I got a number of comments, most of them interesting, and I feel happy of *not* being the only guy interested in silly small details. The feedback forced me to polish my benchmark, first of all James Bogosian is right: the performance differences are really small, I had to do 20'000.000 and 30'000.000 comparisons to see some stable differences. I also introduced the name.Length > 0 comparison out of several suggestions; after some cleaning, the results for the not null and not empty string tests were these:
-
Comparing ASP.NET and JSP architecture and components
Next Tuesday 4th I'll be doing a webcast by the title of Comparing ASP.NET and Java ServerPages (JSP) Architecture and Components, as usual I'll try to minimize the quantity of slides and show as many code as possible. The webcast will be at 9:00 A.M. PST (that is, 12h00 Panamá-Bogotá-Quito-Lima time). If you would like to join us you can register here.
-
.NET smart clients on... Linux?
According to this interview, the Mono project is getting out version 1.2 in April, the big news for me is that Miguel de Icaza states that it will support Windows Forms in Linux. Now, you know I'm a smart clients fan, so you can imagine how cool this sounds to me. On the other hand, it's only a beta, and it's not WinForms 2.0, and the Mono Project has been dragging for years, but I want so hard to believe...
-
Tiny C# shortcut
Reading about validation on Brian Noyes' Data Binding with Windows Forms 2.0, I found this funny way of checking for a string not being empty or null:
-
And now Scrum for VSTS
Some people may think I have a carefully planned posting, mmmm, plan for this blog: first I talked about dynamic languages and almost at the same time projects on PHP, Ruby and Python make interesting steps ahead. Now, I start talking about RUP and how I don't like heavy methodologies and Scrum for VSTS is released... I like agile methodologies and I even have the Microsoft Scrum book but this coincidences are starting to get me nervous. No hidden agenda, I swear, but perhaps somebody is sending me brain waves from Redmond... The truth is out there.
-
RUP anyone?
"... the most well-known variant of the Unified Process has grown its knowledge base beyond manageable limits. We need to go back to basics, find the essence of the Unified Process and then start to grow from there."1
-
If you are new to Ajax and Atlas...
then you have to watch this video. I know, I know, old news, but I just watched it and I'm in awe with Atlas simplicity (something amazing, given that I'm actually a smart client fan). The first 12 minutes or so, it's pretty much your standard data-driven ASP.NET site demo, hang on because then it abruptly switches to *injecting* Atlas controls in the site, effectively Ajax-enabling it, and things get quickly interesting. As usual, Scott is generous and gives us the script for the demo complete with screen pics, so after watching the video you can repeat it at your own pace. Boy, I'm going to surprise the audience at tomorrow's Quito MSDN Tour!
-
Remoting vs. WCF becomes S/O vs. C/S
A few days ago I talked about my question on using Remoting or WCF. Well, I will now try to summarize the discussion on the RD list. First the arguments in favor of WCF:
-
And now a .NET Ruby implementation (may be)
After blogging about dynamic languages here and here, I had every intention of *not* talking about it for a while (I wouldn't wan't to be confused with an alternative languages junkie -something actually I am- as most of the time I do LOB applications), but then here I find a reference to this blog which finally takes me to this page (don't you just love the Web redundance?): a project to implement a managed version of Ruby nothing less! Although it is in very early stages, if it comes through it will prove wrong what many Java developers said to me about the .NET Framework CLR: that it was anything but "common language", that C# and Visual Basic .NET were just "skins" on pretty much the same thing (well, may be they've got a point here), and that every other .NET language implementation was doomed to be pretty much the same. Well, if IronPython was not enough proof, the Ruby.NET project -when and if it flies- would prove all that naysayers wrong.
-
Whither remoting?
You already know I'm a
new toy junkieearly adopter, so when a project that is just starting needed a light smart client talking back to a business logic server I immediately suggested using WCF. To my surprise, another architect and *my* lead developer preferred remoting, their reason? They've had very good experiences with remoting, my reason? If this system is going to live 5 years, it better uses the most looking forward technology. As I am an RD, I naively asked in the RD list for reasons to use WCF over remoting, and I got a few good responses but then the remoting camp reacted and gave good reasons for *not* using WCF. So it seems like the question is more interesting than what I thought and, before summarizing the answers I got, I would like to ask you what you think: if you were to create a client-server like application in your *intranet* would you use web services or remoting? Why? -
Dynamic season at the CLR!
Talk about coincidences: as I was blogging about dynamic languages, Microsoft was holding a small nice event, the Annual Compiler Lab. Now for the freaky part: yesterday I was talking about Ruby, Python, PHP, and other dynamic languages, meanwhile at the event that very same day was the Dynamic Languages and Scripting on the CLR day! Devhawk has a fairly complete report on the event. For me, aside the good news on dynamic languages performance on the CLR, the interesting factoid was Phalanger, a managed implementation of PHP. It's definitively dynamic season at the CLR!
-
The language flavor of the decade?
Dynamic languages seem to be enjoying a steady increase in popularity. Perhaps it's just that the developer community needs something different every few years or perhaps weakly typed languages actually fill a real need, I still don't know. In any event, it appears that 3 languages are getting most of the traction:
-
ASP.NET custom controls webcast
Next Monday 13th at 9:00 A.M. PST I'll be doing a webcast on developing ASP.NET custom controls, although it's somehow directed to JSP tag libraries developers, most of the contents will be of interest to any ASP.NET developer so you are invited to register here (I'm told I've got 1.500 registered people already, please help me break a record!).
-
The Java framework wars
Not a week passes without a new battle (or carnage) on which Java Web development framework is the true one, today's sample:
http://www.theserverside.com/news/thread.tss?thread_id=39358
The funny thing is that, just a couple of minutes after hitting that place, I read a blog pointing to this:
http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12 :-)
As I've said in other posting, I do J2EE training for some of our customers, and inevitable somebody asks for a way of being framework-switch-protected, for example they want to right now use Struts but be able to switch to Velocity, JSF or *anything that could appear in the future*. In the .NET camp we only have ASP.NET (certainly not perfect but very good) and it still leaves us with a lot of choices in the details, so many that sometimes it irritates beginners, may be I should teach my ASP.NET students about their Java options :-) -
Smart client fan
I have to admit I don't quite get all the enthusiasm about Ajax, I mean:
-
Good URLs on Visual Studio 2005 code snippets
One of the most useful features of VS 2005 (at least for guys like me, who tend to write more code than use wizards) is code snippets, not only they make you more productive but in a presentation you can amaze your audience writing (for example) a business entity with almost no effort and in a zip. Through this posting I found a couple of very useful references:
-
What is WinFX– an Executive Summary
Here you will find a *very high level* overview of WinFx. Good as a first step on selling the use of WinFx in that next projecto to your CIO. Courtesy of the nice guys at IDesign (also authors of these very usable coding standards).
-
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):
-
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?