Home | Shorter Path | About Me
Home
About Me

Archive

2004

01

02

03

04

05

06

07

08

09

10

11

12

 

2005

01

02

03

04

05

06

07

08

09

10

11

12

 

2006

01

02

03

04

05

06

07

08

09

10

11

12


Archive for 08/2004

Anders has finally lost his mind. Sad, really.
Sunday, August 29, 2004 03:30 AM

Anders Ohlsson just added another eBay auction for 10 BorCon admissions. If you haven't registered yet, now's your chance.

Random acts of kindness, part 3: Judgment Day
Sunday, August 29, 2004 03:03 AM

Following up from part 2 of this series, here are some more of my responses to search phrases that led people to this site. I don't want to scare anybody, but there's actually some technical information in here.

"Why choose Delphi .net?"

If you're already working in Delphi on Windows, this is a no-brainer. Delphi 8 for .NET lets you use your existing skills, doesn't require you to learn a new language, maintains source code compatibility between Win32 and .NET, and even lets you rebuild your existing VCL applications in .NET. Plus, the Delphi language is a full citizen of the .NET platform.

Even if you're not a Delphi programmer yet, you should consider it. Delphi for .NET is not only a .NET development language: it includes technologies such as ECO and integration with StarTeam and CaliberRM for a full ALM cycle. These are things you should want to know more about, and you can. The 2004 Borland Conference is just around the corner - come see what's new.

"Choose between Win32 and .net"

Well, as I've said here, you don't have to. There's plenty of time.

"Multilingual or Multilingual"

It's a tough choice, but I vote for "Multilingual."

"Falafel machines"

No, thanks. Now, if you said "Falafel machines that also massage your feet"... That's a whole different thing, that is.

"What is crsss.exe"

First, it's a typo. It's actually "csrss.exe", and its a process you'll find running on all Windows NT-based systems, including Windows 2000, Windows XP, and Windows 2003.

CSRSS.EXE is the "Client Server Runtime Subsystem" executable, which is the user-mode part of the Win32 subsystem. It handles things like startup, shutdown, and console services. The rest of the user-mode Win32 subsystem is contained in the system DLLs implementing the Win32 API.

"Paperless Delphi example"

Well, go to the Demos directory under your Delphi installation directory, pick any program, compile it, and run it. No paper involved whatsoever. Really.

"Small programmers tasks"

I guess they can reach under the desk and fix the wiring. If they're really small, they can just hide behind the monitor when the boss comes looking for volunteers to work on the weekend. Besides, there are no small programmers, only small bugs.

"Calling Win32 functions Borland"

That one's pretty hard, since Microsoft did not include any function called "Borland" in the Win32 API, nor did they provide a way to rename their API functions (now wouldn't that be amusing?). However, it's pretty easy to write a Win32 DLL that does export such a function:

library MyDll;
 
uses
  Windows;
 
{$R *.res}
 
function Borland: Integer; stdcall;
begin
  Result := 1;
end;
 
exports
  Borland;
 
begin
end.

"Borderline personality and shoplifting"

Hey, I'm not judging your hobbies.

"Displaying overlapping appointments in a calendar with source code"

It's tricky. The fact it's tricky is one of the reasons I can sell my Planners component suite, instead of giving it away. If writing a good calendar control was easy, everybody would do it.

Basically, we use a pretty simple algorithm for determining how to display overlapping items. We do this in two passes: first, we find groups of overlapping appointments. Within each groups, we assign "slots" to the items, and keep track of the maximum number of slots we had to create. The second pass then assigns a fixed slot to each item, based on the room available.

If you really want to see how it's done, you'll have to buy the package. In addition to the educational value, you'll also have a working scheduling component, so now you don't have to write one.

Longhorn in 2006
Sunday, August 29, 2004 02:56 AM

Microsoft has announced that the next version of the Windows client operating system (the thing called "Longhorn") will be available in 2006, which means will see it on the corporate desktop a year or two later.

What might be more important is that some of the technologies previously planned only as part of "Longhorn" will be made available on other versions of Windows, as well. Specifically, Avalon and Indigo will be available on Windows XP and Windows Server 2003.

MSDN published an updated Longhorn FAQ containing information about WinFX on down-level Windows.

Random acts of kindness, part 2: The Wrath of Khan
Saturday, August 28, 2004 10:52 PM

In part 1, I've responded to some of the search phrases people use to get this site. Obviously, these people have needs, and those needs brought them here. To display my enormous gratitude (or to compensate for the guilt brought on by luring these unsuspecting souls over here), I will, once again, do what is within my power to answer your questions, address your concerns, rise to your challenges, or recommend upping your medication.

By the way, I've been working non-stop over the last few days, throwing whatever was left of my so-called sleep regime out the door (then pouring water over it and sending it to shamefully go bother someone else). Since I have to get up early tomorrow ("early" for Real Programmers means "sometime before 9" - the equivalent of 4:00AM for other people), I took a sleeping pill about an hour ago. It should probably kick in pretty soon, so bear that in mind when trying to understand some of my answers.

Naming questions

Apparently, as a pregnancy's due date approaches, people turn anywhere in their quest for new and interesting names to inflict on their unsuspecting, defenseless children. Not only do I get repeated requests for "cute names" (some people, worried I might not take the request seriously - like that's even possible - make a point of asking for "really cute names."), but apparently my previous suggestions have been so well-received that I now get requests for "cute couple names" and "giving positive names".

Like obscenity, "cute" is difficult to define, but you know it when you see it. In fact, the line between cute and obscene may sometimes be very difficult to find. Here are some suggestions for couples seeking cute names for themselves.

The easiest method of getting a cute couple name is simply to find a single cute name, then have both of you change your last name. Thus, you will be known collectively as "the Smurfs", "the Puppies", "the Daffy-Ducks", "the Stalins", and so on.

If, on the other hand, it what you need are cute names to call each other, you can choose names that are both cute and intimate based on your partner's deformities. "Snaggle tooth", "Lopsided", and "Onion breath" come to mind, but I'm sure you'll come up with something more fitting. Another option is to choose famous historical and literary references - "Bonnie and Clyde", "Tweedledee and Tweedledum", "Pooh and Piglet", or "Mickey and Malory". 

Name your child after this inspiring messageAs for "positive names", I suggest naming your children (or cats, you didn't specify) after strong leaders  - George, Tony, Osama, Adolf, Julius, Hannibal - you get the drift. If that's not positive enough, I suggest naming your kids after motivational posters - noting says "positive" like introducing your newborn as "In our World Loosing is not an Option Smith", "Don't Quit Jones", or "Visualize Positive Images Brown, Jr.". Alternatively, simple use key words from these posters ("Success", "Inspiration", "Dedication", "Compliments", or "Opportunity"), allowing you some freedom to further cripple your children's social life by giving them hideous middle names.

Note to readers: I can see where this trend is going, so - as a preemptive measure - I may consider suggesting cute names for body parts. If you want me to name your breasts, though, I'll have to install a new policy that includes writing the new names on said parts. In person.

"Examples of Peopleware and its task"

Now that's an interesting issue. One of my consulting clients is a fairly large software company, and I spend there about two days per week. All of the programmers are placed in cubicles (typically, 4 programmers per cubicle). The cubicles themselves are placed in a large hall with tall ceilings, meaning a word uttered in one cubicle is easily heard across the entire room. All of the programmers have phones on their desks, which they are expected to answer (that is, they cannot silence them), and cell-phones, furiously competing fur the title of most annoying digitized rendering of a classical or popular musical piece. In addition, internal communication is handled using e-mail and instant pop-up messaging. Since there's obviously too much noise to communicate (never mind working), programmers communicate by shouting at each other over the cubicles.

This is a glaring example of just about everything discussed in that amazing book, Peopleware. As for the task - well obviously, there are many to choose from, but the best course of action might be just to set the place on fire and start over.

"Funny Israeli sayings"

Actually, there aren't many of those left. The current state of the country takes the humor out of even the funniest comments. Commenting on the recent reports that Israeli soldiers in the Gaza strip mark little X's on their assault rifle after a successful kill, publicist B. Michael suggested a new marking system, one which will more accurately reflect the value of each kill:

  • X with a belt-bomb: a suicide bomber.
  • X carrying an AK-47: an armed terrorist.
  • Little X wearing short pants: a dead child.
  • X carrying two bags: a woman returning home from the market.
  • X with crutches: ending the misery of a disabled person.
  • X with beard: An old, limping, poor Arab man.
  • A large X surrounded by lots of little X's: a slightly too heavy bomb.
  • Little X's with nothing in the center: A too heavy bomb on the wrong building.
  • X with glasses: A doctor.
  • A large X with glasses next to a little X with glasses: The doctor and his nerdy son.
  • X with pacifier: A baby.

Which brings us to another funny Israeli saying, which was also a search phrase leading to this site: "IDF moral army".

Now, I realize this is not as funny as, say, a rubber chicken or words like "aardvark" and "badger", but that's all I got these days.

"Don Box cute"

What did it for you? Was it the beard? Or were you just turned on by the COM stuff?

Or perhaps you were just trying to help me with my quest to provide cute names. If that's the case, your contribution has not gone unnoticed.

"Allen Bauer Hejlsberg"

While we're on the topic of celebrities, I think the time has come to relay the tragic, yet surprisingly boring, story of legendary superstar programmer, Allen Bauer Hejlsberg.

Born in 1964, young Allen - the son of a tree psychologist and an interior urn designer - was almost immediately recognized as a genius, when he learned to write at the age of 2. Unfortunately, he only learned the alphabet at the age of 14, and began to read shortly afterward. His earlier writings are still the issue of a heated, but not very interesting debate between scholars and their pets.

Having spent most of his school years humiliated by his schoolmates for his inability to pronounce the word Yggdrasil, young Allen found comfort in the world of computers, who did not judge him, and in blowing things up, which scared the hell out of the neighbors. It was during that time he wrote his revolutionary article, "semicolons considered harmful." Like most revolutionary work, this too was scoffed at by the experts at the time.

Undeterred by the public reaction to his unorthodox opinions, Allen went on to produce an impressive body of work, the highlight of which was his article "Oh, Yeah?", which includes a stunningly beautiful yet utterly ridiculous mathematical proof of the existence of the Bit Bucket.

Tragically, Allen's bright star did not shine for long. He died in 1998, having reached the age of 37, twice, due to some bizarre experiments he was never willing to discuss, even when offered free drinks. His death, which remains a mystery to this day, was the result of a freak accident, involving a rubber band, some gummy bears, and the third volume of the Encyclopedia Britannica.

Many scholars agree (although only under the influence of illegal narcotics) that Allen Hejlsberg's work will one day receive the credit it deserves, the story of Hejlsberg's life has since faded into legend, then myth, then the stuff you put on turkeys. Today, the story of Allen Bauer Hejlsberg is a bed-time story, told by programmers to their children to teach them the value of proper source control.

That's it for now. Next time, I'll tackle some mote of the baffling questions search engines seem to think belong here.

Beta does not mean final
Friday, August 27, 2004 04:10 AM

There are some heated discussions on the borland.public.delphi.non-technical newsgroup (are there any other kinds of discussion there?) regarding the next version of Delphi, codenamed Diamondback. Some people believe the next version should support version 2.0 of the .NET Framework, even though it is still in Beta.

The problem with this approach is that Beta versions are a moving target. It's true that Microsoft releases development tools that support the Beta platform, but then, Microsoft makes the platform. People tend to ignore the fact the Beta version is not the finished product - in fact, the final version may be very different. Here's just one example.

Items of Interest
Friday, August 27, 2004 03:44 AM

In no particular order:

Making Plans
Friday, August 27, 2004 02:55 AM

I have neglected this blog recently because, well, I had real things to do. I've been working a little too much (in the sense that a Hurricane is "a little too much wind"), so certain things, like having a life, had to take a back seat. This isn't likely to change in the next month or so, but will get better later.

I left my last salaried job a couple of years ago, when I could no longer stand the frequent travel. I took some time off, then started looking for a new job. After a few months, when I couldn't find anything I really liked, I decided to go independent as a consultant. I've also started Shorter Path, a small software shop selling utilities and component libraries. It took some time (and a lot of hard work), but I finally have enough customers to make the transition worthwhile. In fact, I have more than enough customers. In recent months, I have been turning down requests. There's job satisfaction for you.

Anyway, I've decided to take as many projects as I could until September 10th, then go back to a normal workload starting September 21st. What happens between the 10th and 21st, you ask? Well, even if you don't care, I'll tell you.

On September 10th, I'm going to BorCon. It's been a while since my last BorCon, and I'm really looking forward to it. If you are a developer using Borland tools, you should be there. Even if you don't, it might be a good idea to go to the conference anyway and see the great things Borland has in store for you. The next version of Delphi, for example. Or ALM - even if you don't know what that is you still need it. Oh, and I hear Brad Abrams is going to be there.

After BorCon, I'll be at the annual TeamB conference. Every year, Borland recklessly invites TeamB to come over and tell them what we really think. After several days of meetings, we all celebrate surviving the frank exchange of views by going to a picnic. If you're still in the neighborhood, you should join us (see the link for details).

Retrieving XML from Web services
Thursday, August 05, 2004 11:35 PM

A client of mine was trying to access a remote Web service from a .NET client, written in Delphi 8. We needed to see the actual XML returned from the Web service, but that turned out to be trickier than we thought. We couldn't use ProxyTrace, so I had to find a way to extract the XML programmatically. This article describes what I ended up doing, and provides code that automatically handles this task.

Copyright 2004 Yorai Aminov