Pages: 2 4 5 6 7 8 9 10 11 ... 29


  02:10:40 am, by Nimble   , 737 words  
Categories: Distractions

First Trip On Transit

No heavy duty topic today. This is about taking my 3-year-old for his first transit trip of more than one stop.

He's been on a bus before, but always for a single stop, back in the days when his growth outpaced my parental muscle development.

This time, to make up for upsetting his schedule, I picked him up from our old daycare lady and asked him if he would like to ride the bus. "Yes," he said. "What colour is the bus?" he chatted to himself. "Lellow!" He could say 'yellow', but 'lellow' stuck.

"No, that's a school bus. We're not going to school. We are going on the city bus."

Even though I had scheduled us pretty well, the wait for the bus with a 3-year-old is often interminable!

Full story »


  01:41:56 pm, by Nimble   , 102 words  
Categories: Programming

Converting TDateTimes to System.DateTimes and back

It's not straight-up obvious how to convert the Borland and Microsoft formats back and forth in code, but it does end up being pretty easy.

TDateTimes are in "OA" format, which is OLE/COM-compatible. The functions that convert back and forth to the OLE format work just fine for TDateTimes as well.

MSDate := DateTime.FromOADate(BorlandDate);
BorlandDate := MSDate.ToOADate();

The syntax is nigh identical on the C# side apart from the assignment operator (= instead of :=).

Note that if the TDateTime arrives as an object in C# somewhere, you can simply cast it as a double; you do not need to cast it specifically as a TDateTime.

  11:41:25 am, by Nimble   , 185 words  
Categories: Programming

E2328 Linker error while emitting metadata

There are few things more fun than topping off a righteously sweaty code refactoring session with a particularly rare and un-to-underdocumented linker error.

I ran into this in CodeGear RAD Studio 2007 on the Delphi for .NET side. It was different than the small handful of problems I saw other people run into, and since I managed to track it down to a particular line, I thought I would share it.

My encounter with this linker error happened when using a named constant set, e.g.

FIELD_BLOB_TYPES : set of MyFieldType = [mftBinary, mftGraphic, mftDiagram, mftAttachments]

The code that caused the explosion simply used the type:

if Attribute.ValueType in FIELD_BLOB_TYPES then

Replacing it with the full set fixed the issue:

if Attribute.ValueType in [mftBinary, mftGraphic, mftDiagram, mftAttachments] then

Note that using this code construct is no guarantee that this linker issue will happen - I actually use this construct in other parts of my code with no problem - but if you do run into this weird linker error, this may be the straw that is breaking the camel's back.

Hopefully, I can save someone out there from the frustration.


  02:30:50 pm, by Nimble   , 466 words  
Categories: Distractions, Common Sense, Science

The Burger Of Eternal Fullness

In a wonderful (cough) thread talking about cancer prevention and why-is-there-so-little-focus-on-that which turned into a thread of big paranoid ranters versus skeptical rebutters, there was a comment that caught my eye that just gave me a chuckle:

The answer is obvious: Preventing cancer doesn't bring in any money. Unless the pharmaceutical industry wants to start selling cookbooks and gym memberships. It's *exactly* like McDonalds. How would they feel if someone invented a hamburger that kept us full forever? Drugs=McDonalds=BIG BUSINESS

Well, yeah, how would they feel? Huh?! HUH!???

So I had to just run with that thought and write a little hypothetical conversation...

Full story »


  12:00:04 pm, by Nimble   , 148 words  
Categories: Distractions, Internet, Spamming

Truth in Spamvertising

I have been very happy about the collective realization of e-mail software that automatically loading images puts you at risk for more spam simply by having tailored image tags expose to the spammer the fact that you read the e-mail.

Online web mail has been a little slower to come along, especially the versions run by various ISPs. The workarounds, like turning the web browser's own image loading off, are annoying.

I am thus pretty happy that my internet provider has put in a feature into its beta web mail software where images are not automatically loaded.

In the provider's spam trap folder, I have a message about some crappy penny stock scam. The images are set not to load, so there is only a small chunk of text with just a little request:

Please Enable Links and Images to Confirm Your Email!

Ha, ha! How about: NO.


  05:08:37 pm, by Nimble   , 115 words  
Categories: Programming

DCPIL Insanity

If you are using one of the CodeGear Delphis for .NET and are using an assembly made elsewhere, perhaps in C#, and something in that assembly has changed, say the visibility of a method, you may occasionally run into a case where no matter what you do, the Delphi compile does not seem to recognize the change at all.

It can drive you completely mental.

It turns out that there is a wrapper that you have to delete in these particular cases, and such wrappers have the extension .dcpil. They may be stored in a dcp directory, possibly under C:\Users\Public\Documents\RAD Studio\5.0\dcp if you have a Vista box.

Delete them, rebuild, and all will be well.


  07:07:57 pm, by Nimble   , 380 words  
Categories: Thoughts, Religion

There Is No Compulsion

I've often seen "there is no compulsion in religion" taken from the Koran/Qur'an to demonstrate moderation and tolerance.

This is from Surah 2, verse 256. That surprised me a little, since the second Surah is known to be somewhat nasty about heretics and unbelievers.

Well, it turns out that it is only a demonstration of moderation and tolerance if taken alone. Here is the fuller context, with that verse and the following verse:

There is no compulsion in religion. The right direction is henceforth distinct from error. And he who rejecteth false deities and believeth in Allah hath grasped a firm handhold which will never break. Allah is Hearer, Knower.

Allah is the Protecting Guardian of those who believe. He bringeth them out of darkness into light. As for those who disbelieve, their patrons are false deities. They bring them out of light into darkness. Such are rightful owners of the Fire. They will abide therein.

Whatever the no-compulsion statement means, it seems as though "whatever you believe is fine" is not what is meant.

Perhaps Surah 18:29 would be better: "whosoever will, let him believe, and whosoever will, let him disbelieve."

Oh. Maybe not:

Say: (It is) the truth from the Lord of you (all). Then whosoever will, let him believe, and whosoever will, let him disbelieve. Lo! We have prepared for disbelievers Fire. Its tent encloseth them. If they ask for showers, they will be showered with water like to molten lead which burneth the faces. Calamitous the drink and ill the resting-place!

There is one final one that might actually pass muster: the entirety of Surah 109, which is fairly short given the way that the Koran is sorted from longest to shortest:

Say: O disbelievers!
Let each person believe (or disbelieve) whatever he or she wishes.
Is each person be free to believe as he or she wishes?
I worship not that which ye worship;
Nor worship ye that which I worship.
And I shall not worship that which ye worship.
Nor will ye worship that which I worship.
Unto you your religion, and unto me my religion.

That's much better!

There are, unfortunately, more verses on the intolerant side, especially in Surahs 3, 4 and 9, but that can wait for another time.

Fortunately, everyone is more than the sum of verses.


  10:04:39 pm, by Nimble   , 553 words  
Categories: Announcements [A]

They Want Your World of Warcraft Password

"Oh my god, somebody else is just about to steal my account!"

That's the fear they prey on, hoping that you will do anything to stop your account being stolen, and in doing so, will type in your name and password on a fake site, thus ensuring that your account will be stolen.

Subject: New Request Notification - Change the Login Address
From: "" <>
To: [my e-mail address]


Blizzard Entertainment recently received a request to change the e-mail address used to log in to the account with the username [my e-mail address]. The e-mail address k*** has been specified as the new username for this account. An email has been sent to this new address containing a verification link to complete the change.

Once the new address has been verified, the e-mail address [my e-mail address] can no longer be used to log in to this account or any World of Warcraft accounts merged with this account.

If you did not initiate this request, please click here to contact the Blizzard Billing & Account Services team immediately.

The Account Team
Online Privacy Policy

You have to be very mildly savvy to know that the click here link is to a bogus domain,

   Whois Server:
   Referral URL:
   Name Server: DNS23.HICHINA.COM
   Name Server: DNS24.HICHINA.COM
   Status: ok
   Updated Date: 20-dec-2010
   Creation Date: 20-dec-2010
   Expiration Date: 20-dec-2011

Domain created yesterday... in China.

I'm sure they're snagging some people with this assholery.

I'm glad this was flagged as a phishing site relatively quickly; the link for the last e-mail I got like this took a lot longer to be flagged.

Need I say that you should never ever ever click on a link in your e-mail folder purporting to be from Blizzard?


Another fake one today (January 7):


This is an automated notification regarding the recent change(s)As you may or may not be aware of, this conflicts with the EULA and Terms of Agreement.If this proves to be true, your account can and will be disabled. It will be ongoing for further investigation by Blizzard Entertainment's employees.If you wish to not get your account suspended you should immediately verify your account ownership.If the information is deemed accurate, the investigation will be dropped.
This action is taken because we at Blizzard Entertainment take these salesquite seriously. We need to confirm you are the original owner of the account.This is easiest done by confirming your personal information along with concealed information about your account.
we recommend you Login verify Information your account:

If you ignore this mail your account can and will be closed permanently. Once we verify your account,we will reply to your e-mail informing you that we have dropped the Account security is solely the responsibility of the accoun tholder. Please be advised that in the event of a compromised account, Blizzardrepresentatives typically must lock the account. In these cases the Account,Administration team will require faxed receipt of ID materials before releasing the account for play.

Blizzard Entertainment Inc Account Administration Team

They are from:

   Whois Server:
   Referral URL:
   Name Server: NS1.WYDNS.COM
   Name Server: NS2.WYDNS.COM
   Status: ok
   Updated Date: 06-jan-2011
   Creation Date: 06-jan-2011
   Expiration Date: 06-jan-2012



  01:12:09 pm, by Nimble   , 211 words  
Categories: Spamming

Blog spam reduction

UPDATE: No, it slows them down but it does not stop them. I am going to have to put up with it in the short term and trying to dig into B2Evolution's code again at some point. F-ing jerk-ass spammers.

The comment spam was really picking up this season: 10, 20, 30 a day. I looked at adding my own field to the comment posting, but unlike the code for the forums (mwForum), with the blogging software, it seems comparatively hard to figure out how to code such a feature.

The technique from here seems to work. I did the first three steps, but it seemed that the first two were insufficient to stop the spam.

What worked at last - and I cannot say for sure whether renaming the htsrv directory helped or not - was following step number three: adding the following to the .htaccess in the root directory of the blog domain.

# Fix for comments 
RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^*$ [NC] 
RewriteCond %{REQUEST_URI} ^.*comment_post\.php$ 
RewriteRule .* - [F]

So far, it seems to be keeping me safe. It has been a few days now with no comment spam at all.

I don't feel safe enough to turn the comment moderation off anytime soon, but that is a future possibility if this comment spam fortification holds :)


  02:34:19 pm, by Nimble   , 1047 words  
Categories: Announcements [A], Programming

Microsoft Totally One-Ups Me After Eight Years

Eight or nine years ago, I embarked on a small project to make non-blocking concurrent programming easier.

There was a fair bit of code out there on semaphores and mutexes and getting threads to just wait, also known as blocking. The threads in this state do not take up CPU, but they do take up resources. Thread stacks can get to be significant.

Many multi-threading examples at the time had you extend a thread class with the information you wanted.

I wanted to be able to give myself a limited thread pool, for one. Closely related to this, I wanted the contents to be divorced from any particular thread.

I started with a 'BasicTask' nine Februaries ago - very similar to the Task in Microsoft's System.Threading.Tasks - and had it launch very small 'TaskStage' derivatives.

This worked well for simple processes, but it quickly ran into trouble when we started to get into loops, branches and error handling. Since every task stage was its own class, all it could do was suggest to the task where to go next, and when exception handling is added to the mix, it quickly turns to a mess of angel-hair pasta.

From this initial frustration was born the 'FlowedTask' which I have been using in the interim eight years. The concept is fairly simple: all those little task stages are now methods, and all the logic flow between the stages are now instruction objects. The instructions handle the "spaghetti factor" by being able to access matching instruction numbers, such as where the corresponding 'try' and 'finally' are, or where 'until' should go when its conditions succees or fail.

Full story »


  02:41:58 pm, by Nimble   , 136 words  
Categories: Programming

"Started and then stopped" Service Error

This is a quickie.

I was having one heck of a time trying to figure out what was going on with a legacy service an old coworker had written in Delphi. It kept saying "{X} service on Local Computer started and then stopped".

There seemed to be nothing wrong with the code at all.

The fix in this case was simple, though the cause of the error violated a sacred principle of Delphi events: an empty event handler should always be equivalent to no event handler.

There was an OnExecute handler for the service with its contents commented out. When I started comparing the service with other working services, this was the only non-cosmetic difference left.

I chopped out the event handler from the service completely, and it worked just fine.

Feeling: relief and mild anger


  12:03:57 pm, by Nimble   , 1041 words  
Categories: Distractions, Reviews

Sleep Number Beds

We have been looking around for a more comfortable bed for a long time. We also stay up really late on occasions, so we are often drawn in by late-night infomercials.

You can hardly flip a channel in the wee hours without happening across bed commercials for Tempur-Pedic and Ultramatic and Sleep Number beds...

Full story »


  01:00:33 am, by Nimble   , 314 words  
Categories: Thoughts, Religion, Science

Some ID Comments Just Take The Cake

ID is still developing it's scientific framework but many of you evolutionists are like hypocritical people who want to kill a new born baby on the basis of the argument that the baby does not talk and does not run even though you know it is a new born baby.

Ahhh! Where did my cake go?

I don’t have any idea how different species got their internal organs. I DO know how they didn’t. Take a look at the fossil record. It shows the appearance and extinction of millions of different species, a small percentage surviving today. Not a phylo-tree, not one species morphing into another, no species growing legs, eyes, arms, fingers, toes, wings. THAT is what the fossils show. They don’t support evolution at all, in any way. How did they all initiate? I have no idea. You think you know because someone told you, and you are willing to believe them for some strange reason. I did as well, but no longer.

I swear I put my cake down here somewhere...

Now ask yourself, once these processes resulted in Atomic Particles with valences, and s/p/d/f shells that fill in a certain order, and isotopes that decay, and on and on, did the Atoms HAVE ANY CHOICE IN HOW THEY INTERACTED? WAS INORGANIC CHEMISTRY ALWAYS DETERMINISTIC? I think most would agree it always was.

Was it cake gnomes? Cake just doesn't disappear like that!

I hate to spoil your Christmas Ritchie but just recently they found platypus fossils dating back over 112 million years ago, more than twice the previous fossil age of 64 million years ago…
Findings…NO transitional modifications were evident but exact “stasis” as exist today!

Hey, there is now but a puddle of liquid where my ice cream cake was, and the modern platypus has no molars!

No mutations have occurred in 300 million years among beetles. None!



  07:28:57 pm, by Nimble   , 134 words  
Categories: Announcements [A]

To The Assholes Who Left Their Tires Outside Our Fence

Tire Garbage

That is the fucking living end.

To whomeverso left their fucking tires against our fence.


Other little bits of garbage, we could chalk up to the wind, but not the suddenly-appearing fucking little chair from some old school desk, and YOU fucking human pieces of shit decided that you didn't want to bother yourself with taking the time out of your shitty little day running your three fucking tires over to the landfill and paying the fucking disposal fee, so you SNUCK OVER and LEFT THEM ON OUR FUCKING DOORSTEP.

Between that and other weirdness in our back alley, I'm off to investigate by-laws re: surveillance, because I just don't want to let you fuckers get away with this shit ever again.

So thanks. Thanks ever so fucking much.


  02:48:53 am, by Nimble   , 707 words  
Categories: Distractions, Thoughts, Languages

Language Review: Russian

Russian [1 - see footnote]:


Difficulty: Medium

Much of the issue with the Russian alphabet is that there are distracting similarities to the English alphabet. The letter that looks like a C (с) is pronounced like an S. The 'P' (р) is pronounced as an R, etc.

That said, knowledge of the Greek alphabet really helps, because it is similar in spots. The Russian 'P' sound looks like a π (pi), for example.


Difficulty: Medium-hard

There are streams of consonants in Russian. A polite greeting, здравствуйте, is pronounce z-d-r-a-v-s-t-v-oo-ee-ty-ih.

There is also a similar concept to narrow and broad sounds in Irish, called soft and hard consonants. Soft consonants are pronounced like you are trying to say a 'y': your mouth would be wider and your tongue tenser and closer to the front roof of your mouth or even in contact. The difference is pretty important in Russian.

There is also a 'kh' sound (х) which sounds like a really rough 'h'. Scottish, Arabic, German and Hebrew speakers will recognize the sound.

Many Russian speakers will use this sound in English words that have 'h' in them because Russian has no plain 'h', and that can make their English pretty distinctive, on top of making consonants 'soft' where they would not be in English (e.g. okay -> okyay or okyiy).

Keep your jaw loose, your face loose and your tongue tense. It is a little hard to smile while speaking it - something I've experienced from speakers and from trying to speak it.

Full story »

2 4 5 6 7 8 9 10 11 ... 29