Home | Shorter Path | About Me
About Me











































Archive for 05/2004

Random acts of kindness
Sunday, May 30, 2004 09:10 PM

Out of sheer boredom, I've been going over the search phrases that get people to this site. Some even made sense. Others would have made much more sense if asked in the Delphi newsgroups. The rest seem to match the content of this site in a strange, computerized search algorithm sort of way. Out of the kindness of my heart, I took it upon myself to reply to some of these requests:

Technical stuff

Delphi TList wrong contents

Well, you could delete the wrong content, and put in some right content. Better yet, avoid putting in the wrong content to begin with. Saves a world of trouble.

ConvertSidToStringSid problem

Tricky. Helps if you say what the problem is, though.

Microsoft Office

Apparently, that's a set of applications that help you perform obscure computing tasks, like writing your résumé using a variety of fonts, colors, and dinosaur backgrounds, or forwarding those funny, funny jokes to everyone in your address book. Oh, and it manages address books, too.

Wishes and desires

Path to a wizard

You have to start in Kansas. Wait for a Tornado. When you see one, run into it. That should take care of things.

All components package

All of them? How about half?

Response.statuscode 403 blank page

Isn't the whole idea of status code 403 that you can't see the page?

Delphi 8 serial number

Try 123. Better yet, look at the label on your Delphi 8 CD. What do you mean, you don't have a CD? But that would mean... oh.

Download source code netsky virus

Sure, no problem. That's what I'm here for.

Existential issues

Could not get file

Search, grasshopper, and try again.

How long we spend waiting

I know!

Commit suicide! Office assistant clippy

A sentiment shared by a lot of people. Take comfort in that.

General advice

Ideal number of files in folder hierarchy

42. Or was that not the right question?

Cute names


Really cute names

Oh, you meant really cute. Sorry about that. Try watching "The Sopranos" - the characters seem to have really cute names. Great personalities, too.

Delphi and the myth of .NET purity
Sunday, May 30, 2004 02:27 PM

Scott Hanselman writes in an MSDN article, titled "The Myth of .NET Purity, Reloaded":

Why spend 18 months converting your application, so you can arrive at the endpoint you're already at?

It occurred to me that the article makes a very strong case for Borland Delphi and VCL for .NET.


Live data
Saturday, May 29, 2004 08:35 PM

Visual Studio .NET users can now view live data using the Dataset QuickWatch project. Of course, Borland Delphi and C#Builder users have been able to do this for a while:

Shhh... It's a secret
Friday, May 28, 2004 12:01 AM

British Journalist, Peter Hounam, was released about four hours ago. Hounam was arrested yesterday by the Israeli security service. He was held in isolation, and was not allowed to meet with his attorneys until today. He was never charged, and according to his attorneys was held minutes under the maximum of 24 hours, to avoid arraignment.

Hounam is the journalist who, in 1986, published Mordechai Vanunu's account of Israeli nuclear secrets in the Sunday Times. A gag order regarding the cause of the arrest, issued yesterday, has been removed tonight. Apparently, Hounam was suspected of conducting an illegal interview with Vanunu. Israeli security forces claim that Vanunu, recently released from an 18-year prison sentence, a great deal of which was spent in complete isolation, still knows many secrets and may reveal them given the opportunity.

In a whole different time zone, the US Justice Department has retroactively classified information given to Congress (link may require free registration to the New York Times web site). In an impressive display of decisiveness, information that have been in the public domain for almost two years is now classified. In an amusing coincidence, the classified material would have been usable in several pending lawsuits, but not anymore. Funny how these things work out.

Apparently, security services think the best way to keep secrets is to attract as much media attention as possible. Not being a security expert, I can't evaluate the value of this strategy. I am, however, a pretty good cynic. You see, I get a lot of training.

Items of interest
Wednesday, May 26, 2004 05:03 PM

Just of bunch of links, really:

Wednesday, May 26, 2004 02:33 PM

Roy Osherove posted this joke (read it there - I'm not about to post that here). Roy, an Israeli programmer, wrote this about the joke:

"This joke came in the mail today, and while I'm not usually into politics, I just had to write this down. It would have been really funny if it wasn't so sad (and don't flame me, this is all in good, satirical, dark humor)."

Like Roy, I live in Israel, and I haven't posted about politics in this blog. When I read this joke, however, I snapped. I snap a lot these days - all I have to do is read the paper, turn on the radio or TV, or just listen to other people. Still, I'm not going to write about my opinions here. Instead, I'll just provide some facts I find interesting.

This week, Shaul Mofaz, the Israeli Defense Minister and former IDF Chief of Staff, has once again been quoted as saying the IDF is "the most moral army in the world." This has been one of Mofaz's favorite lines for years. Mofaz's successor, Lt. Gen. Moshe Yaalon, had another gem. In a recent interview, Yaalon said: "In 3 and a half years, dozens of houses have been demolished, suddenly everybody's waking up. Who's fault is that?" If you read Hebrew, you can read the interview here. Like many other priceless quotes from Israeli officials, I couldn't find an English version. Officials tend to address local and foreign media differently.

Yaalon's figures, by the way, only concern the IDF's recent operation in Rafah, during which the demolition of houses was approved by the Israeli Supreme Court. The number of demolished Palestinian houses overall is staggeringly higher.

Today, Amnesty International published its annual report, covering the year 2003. The section concerning Israel and the Occupied Territories opens as follows:

"The Israeli army killed around 600 Palestinians, including more than 100 children. Most were killed unlawfully – in reckless shooting, shelling and bombing in civilian residential areas, in extrajudicial executions and through excessive use of force."

The report covers human rights violations by both Israel and the Palestinians. As an Israeli citizen, however, I am much more interested in my own government's behavior. Another interesting (as in the old Chinese curse) Amnesty article is the recent call to investigate the killing of children.

Israel likes to see itself as an eternal victim. I don't buy that, and I think very few people today do.

So there. I didn't flame Roy. I didn't even write about my personal opinions, although some of them are painfully evident. Here's one of them: I did not find that joke funny. At all.

Strong-named assemblies and AssemblyVersion
Monday, May 17, 2004 05:25 PM

You can create strong-named assemblies in Delphi 8 by setting the AssemblyKeyFile attribute to your key file (created by the sn.exe utility). If you do, however, remember to set the AssemblyVersion attribute. By default, Delphi adds the following attribute to a new assembly (package or library):

[assembly: AssemblyVersion('1.0.*')]

This causes the compiler to assign automatic release and build numbers each time the assembly is compiled. The problem here is that if any other assembly references the strong-named assembly, the reference will be broken. Strong-naming is based on being able to uniquely identify an assembly based on four attributes: a file name, a version number, a culture identifier, and a public key token. Unless you explicitly set the AssemblyVersion attribute to a full version number, each compilation would produce a different strong-named assembly. Only change any part of the version number when working on a new version that will actually be deployed.

Note that an assembly can include other version attributes, such as AssemblyFileVersion and AssemblyInformationalVersionAttribute, but those are purely informational and are not used by the CLR.

By the way, Visual Studio .NET has the same problem. The AssemblyInfo.cs created with a new project contains the same incorrect setting for the AssemblyVersion attribute.

Borland blogs, again
Saturday, May 15, 2004 01:48 AM

Michael Swindell, Delphi Director and Program Manager, has started blogging. That's a 33% bump in the number of Borland's Delphi bloggers (excluding Steve, whose site isn't really a blog), for those of you keeping track. I think it's great, but the more Borland blogs are created, the more annoyed I get. Not that you asked, but I'll tell you why. But first, here's a little except from a newsgroup post by Danny Thorpe:

To get the maximum benefit from blogs, don't read them as web pages.  Use a blog reader.

I couldn't agree more. The problem is that I can't read Danny's blog this way - or any other Borland blog, for that matter. All of the Borland blogs run on Blogger, and have an Atom feed, but with the notable exception of Allen Bauer's hacked RSS feed (which is no longer listed on his page, it appears), none of the feeds contain the actual posts. Instead, they include a short excerpt from each post, tags removed and all. So, to read the actual posts, I have to open each of them in a web browser.

I think Borland's blogging experiment has gone extremely well. It's time to put the finishing touches and host the blogs on Borland's servers, set up proper feeds, and get as many blogs out there as possible.

Saturday, May 15, 2004 01:31 AM

This blog now supports comments, courtesy of HaloScan. Let the beatings begin.

Delphi 7 Update
Friday, May 07, 2004 03:27 AM

The long waited Delphi 7 update is now available. You can get it from the Delphi downloads page. If you can't find it, look closely - it's the line just between the free eToys for Delphi 7 and the eToys for Delphi 6.

Pay attention to the warning about the MSI file: you must use the one on the Delphi CD, not the one on your hard disk, or Bad Things will happen.

Please, don't help
Thursday, May 06, 2004 06:44 PM

So there I was, minding my own business and trying to get some work done, when all of a sudden Windows pops up this atrocity:

This is wrong in so many levels.

For starters, let's consider the idea behind this message. Windows, it appears, has decided I'm so feeble minded that I cannot even notice the icons placed (by me, of course) directly in front of me. Operating systems are very sensitive, you know, so out of compassion Windows gently pops up an intrusive window, along with a heart-warming warning sign icon, to call my attention to the rapid decay of my brain.

After subtly insulting me (a capability I appreciate in humans, not machines), if offers me a rich variety of actions I can take to remedy the horrible neglect I have inflicted on my poor desktop. I can either click the balloon to run the desktop cleanup wizard, or -- oh, wait, that's it.

Bravely, I decide to bet: I click the little X hoping it would make the damn thing go away, which thankfully it does. I wonder how many users actually find that button and dare push it - especially since it's placed on the very same balloon that claims clicking it would start the wizard.

Of course, I can't work now. My only purpose in life at this time is to find the setting for this little popup from hell, and make it disappear forever - hopefully, screaming in pain. It's conveniently buried in the "Desktop Items" dialog box, invoked by clicking the "Customize Desktop" button at the bottom of the "Desktop" page of the "Display Properties" dialog box. Someone obviously screwed-up and forgot to make this accessible only through the registry.

It appears the people behind Clippy have found a new way to demonstrate their creativity. Clippy (indeed, the whole Office Assistant idea) was a poor implementation of an interesting, but questionable, idea: people tend to anthropomorphize computers, so an interface you could react to emotionally would encourage you to learn and use your computer. Chris Pratley has some information about this you may find interesting.

There were many, many things wrong the Clippy and its gang of digitized delinquents, but worst of all was its intrusiveness. This isn't limited to special novelty user interfaces or popup party accessories, to all popup messages. As Raymond Chen notes, people don't respond well to warning dialogs: they'll do anything they can to make them go away. In other words, the default answer to every dialog box is "Cancel". Apparently someone at Microsoft figured that out, so instead of avoiding unnecessary popup messages, they made it harder to cancel them. Brilliant.

Tuesday, May 04, 2004 11:48 PM

Nick Hodges, my TeamB colleague and a confessed Delphi-zealot, just found out that the C# compiler actually converts foreach constructs on arrays to for statements. Microsoft's Brad Adams covered this in a recent post. If you're keeping score, Nick, you'd love this: sometimes, foreach is slower than for.

The performance difference, however, is negligible. The important point is that foreach isn't "syntactical sugar" - it has a definite purpose in life. If all you want to do is iterate through an entire array, then foreach is syntactically identical to for (and therefore generates the same IL). Other cases are not so simple. Foreach and for loops are not identical, as Raymond Chen demonstrates. And, in my opinion, foreach is far more convenient when used on types other than arrays, providing direct access to IEnumerable interfaces.

By the way: I'm moving this blog to a new host, so this page may down be until the DNS changes kick in. If you can't read this, that's the reason.

Copyright 2004 Yorai Aminov