Niles Eldredge Out Of Context

09/07/11 | by Nimble | Categories: Thoughts, Religion, Science

Creationists love "gotcha" quotes. In a world view where scientists are all party to one great conspiracy, these are signs of cracks in the great façade.

These quotes bounce all over the internet, mindlessly copy-pasted.

There is a catch, though. These "gotcha" quotes are taken from the middle of something else. One might be left to wonder, "why is a top-notch scientist saying these things?"

The problem, of course, is context. "But these are their exact words" is piss-poor defense when it misrepresents what the person being quoted is saying.

Full story »

 

Parenthood, Part I

08/27/11 | by Nimble | Categories: Journal, Thoughts, People

I didn't know what it was going to be like; not really.

As I write this, I have an almost 4-year-old and a 1-and-a-half-year-old. I'll describe the journey and my present thoughts.

Full story »

 

"A Device Attached To The System Is Not Working"

06/14/11 | by Nimble | Categories: Internet

When trying to remote in to your machine, there are few things more aggravating than having it lead you through the motions, only to have a giant "A device attached to the system is not functioning" with a giant OK button.

You don't get to argue with it or even just find out the answer to the burning question: "Which $*#^@ing device do you mean??"

I have had this happen a couple of times, usually at the most inconvenient time possible, like when I have a presentation queued up on my desktop to show to people on the projection screen in the meeting room.

This time, I experimented, and I found something that worked. It was not what I expected at all.

The Remote Desktop Connection window has an Options >> button, one that I have never needed to look at. In this case, I decided - in desperation - to look at it.

Under the Local Resources tab, there are things like Remote computer sound and Local devices and resources.

In my case, I unchecked the Clipboard resource then clicked Connect, and it let me connect just fine.

(What? If the clipboard is malfunctioning, you won't let me see anything?)

If you are having this issue, it might be something similar. Uncheck devices, including ones that might be checked under the More... button in the Local devices and resources section of Local Resources, and success may greet you too.

 

First Trip On Transit

06/07/11 | by Nimble | Categories: Distractions

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 »

 

Converting TDateTimes to System.DateTimes and back

03/10/11 | by Nimble | Categories: Programming

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.

 

E2328 Linker error while emitting metadata

03/10/11 | by Nimble | Categories: Programming

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.

const
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.

 

The Burger Of Eternal Fullness

02/04/11 | by Nimble | Categories: Distractions, Common Sense, Science

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 »

 

Truth in Spamvertising

01/21/11 | by Nimble | Categories: Distractions, Internet, Spamming

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.

 

DCPIL Insanity

01/03/11 | by Nimble | Categories: Programming

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.

 

There Is No Compulsion

12/31/10 | by Nimble | Categories: Thoughts, Religion

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.

 

They Want Your World of Warcraft Password

12/21/10 | by Nimble | Categories: Announcements [A]

"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: "noreply@blizzard.com" <noreply@blizzard.com>
To: [my e-mail address]

Hello,

Blizzard Entertainment recently received a request to change the e-mail address used to log in to the Battle.net account with the username [my e-mail address]. The e-mail address k***@hotmail.com has been specified as the new username for this Battle.net 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 Battle.net account or any World of Warcraft accounts merged with this Battle.net account.

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

Sincerely,
The Battle.net Account Team
Online Privacy Policy

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

   Domain Name: LOGINCONFIRM.NET
   Registrar: HICHINA ZHICHENG TECHNOLOGY LTD.
   Whois Server: grs-whois.hichina.com
   Referral URL: http://www.net.cn
   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):

Greetings

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: http://battle-wow-confirm.net/

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 investigation.billing@blizzard.com. 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.


Regards,
Blizzard Entertainment Inc Account Administration Team

They are from:

   Domain Name: BATTLE-WOW-CONFIRM.NET
   Registrar: XIN NET TECHNOLOGY CORPORATION
   Whois Server: whois.paycenter.com.cn
   Referral URL: http://www.xinnet.com
   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

Sigh.

 

Blog spam reduction

12/16/10 | by Nimble | Categories: Spamming

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} !^http://yourdomain.net/.*$ [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 :)

 

Microsoft Totally One-Ups Me After Eight Years

12/03/10 | by Nimble | Categories: Announcements [A], Programming

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 »

 

"Started and then stopped" Service Error

11/16/10 | by Nimble | Categories: Programming

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

 

Sleep Number Beds

10/17/10 | by Nimble | Categories: Distractions, Reviews

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 »

 

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