Archive for October 2007

Fred Thompson’s Immigration Plan

Fred Thompson has just released his Border Security and Immigration Reform Plan. It’s great. He understands what needs to happen to stop the flow of illegal aliens into this country, and how to deal with those illegals who are already here. Oh, if only we could actually get this plan implemented!

For those who don’t want to take the time to read it, here are the main points.

  • No Amnesty — Do not provide legal status to illegal aliens.
  • Attrition Through Enforcement — Reduce the number of illegal aliens through increased enforcement against unauthorized alien workers and their employers.
  • Enforce Existing Federal Laws — Enforce the laws Congress has already enacted to prevent illegal aliens from unlawfully benefiting from their presence in the country.
  • Reduce the Jobs Incentive — Ensure employee verification by requiring that all U.S. employers use the Department of Homeland Security’s electronic database (the E-Verify system) to confirm that a prospective employee is authorized to work in the U.S.
  • Bolster Border Security — Finish building the 854-mile wall along the border by 2010 as required by 8 USC 1103.
  • Increased Prosecution — Deploy the additional assets outlined above to prosecute alien smugglers (”coyotes”), alien gang members, previously deported felons, and aliens who have repeatedly violated our immigration laws much more vigorously.
  • Rigorous Entry/Exit Tracking — Complete the implementation of a system to track visa entrants and exits, as has been required by federal law for more than ten years, and connect it to the FBI’s National Crime Information Center (NCIC), in order to curb visa overstays and permit more effective enforcement.

Those are the high points for stopping illegal aliens from getting in and dealing with those that already have. The other side of the coin is fixing our fouled-up legal immigration system. Fred’s points on this are

  • Maximize Program Efficiency — Reduce the backlogs and streamline the process for immigrants and employers who seek to follow the law.
  • Enhanced Reporting — Improve reporting to the government by businesses that rely on temporary workers so that the government can track whether the visa holder remains employed.
  • Modernize Immigration Law/Policy — Change the nature of our legal immigration system to welcome immigrants who can be economic contributors to our country, are willing to learn the English language, and want to assimilate.
  • English As Official Language — Make English the official language of the United States to promote assimilation and legal immigrants’ success, and require English proficiency in order for any foreign person to be granted lawful permanent resident status.
  • Freedom from Political Oppression — Preserve U.S. laws and policies to ensure that the United States remains a beacon and a haven for persons fleeing political oppression, while assuring appropriate admission standards are maintained.
  • Service to Country — Place those foreign persons who are lawfully present in the country and who serve honorably in the Armed Forces of the United States on a faster, surer track to U.S. citizenship.

Go Fred!

Harry Reid is an Ass

Harry Reid, Democrat, Senate Majority Leader, is a complete and total ass. He tried to use the power of his office to bully Rush Limbaugh over comments Rush allegedly made. He wrote a letter to ClearChannel to try to silence Rush. 41 other worthless Democrats signed that letter.

Last week, Rush put the letter up for auction on eBay. It sold today for over 2.1 million dollars. Rush is matching that amount and the entire 4 million is going to the Marine Corps-Law Enforcement Foundation.

So Reid, with egg on his face, took to the floor of the Senate today to try to spin this as something he supports. Reid is an ass. Rush has completely made him and his worthless colleagues look like the jerks they are, and now he’s trying to save face by “encouraging” his colleagues to bid on it. Ass. I swear, every day Democrats like Reid give me more and more reason to hate them.

Watch the video.

The First Rule

Last night was bowling night. (164, 174, 129, in case you were wondering.) Thomas (my 9 year-old) goes with us and hangs out with us or in the arcade. Last night, his best friend went too, because his best friend’s mother was also bowling. So there we were at the bowling alley, having a good time.

Shortly before we were going to head home, Thomas and his best friend were running around (politely) and pretending to have some sort of ninja battle or Power Ranger fight or some other struggle against the powers of evil that kids do. The following dialog then ensued:

Me: Hey guys… this isn’t Fight Club, you know?
Thomas: The first rule of Fight Club is you don’t talk about Fight Club!
Me:

I laughed my head off.

And no, he hasn’t seen Fight Club. We were watching some kids show recently, some cartoon, and there was a bit of dialog something like “… the first rule of Fluffy Bunny Club is you don’t talk about Fluffy Bunny Club…” or something like that. I immediately cracked up, and so I had to explain to him why that was funny. I told him about that one scene in Fight Club and he obviously remembered it very well. Too well. I’m sure the other adults who were nearby now think I let him watch inappropriate films…

Objective-C Strings Are Not C Strings

I got bitten today by the fact that Objective-C strings in Cocoa programming are not the same things as plain old C strings. The problem is that Objective-C is essentially an object-oriented veneer on top of plain old C; sometimes it matters that you remember this, and other times it doesn’t. This was one of the times it mattered.

A little background. A while back I wrote and released ExportToArchive, a somewhat useful plugin for iPhoto. It allows you to select photos from your iPhoto library and export them into a few different archive formats. About three days after releasing it, I got an email from a guy who had just tried to export his entire library, 756 photos, into a single archive. He was perplexed because iPhoto just seemed to hang/lock up. The problem was that when I wrote the thing, I never considered that anyone would try to archive more than a few photos at a time. Thus, once you made your selections and started the export, I copied each file to a temporary directory, and then archived the copies. That works great for 10 or 20 photos, but not so well for 756.

The answer to that problem was not to copy the files, but to make a symlink of each photo into that temporary directory and then archive the files by dereferencing the links. It’s still going to take a while to archive the photos, but there will no longer be a copy phase, which should make things faster.

Which leads to today’s adventure. There’s not a native Obj-C or Cocoa method to create a symlink. There is a method on NSFileManager called linkPath:toPath:handler: but that creates a hard link, which won’t span file systems. So I was forced to use the C function symlink which takes two arguments: the source path and the destination path. This seemed easy. I would pass the absolute path name to the original file as the source argument, and the generated name for the link as the second. Easy-peasy.

Well, not really. Since symlink is a C function it, like most other C functions, tells you bugger-all about why a failure occurs. The return value when I tried to call it was -1 which means, “something bad happened.” I then had to consult the C value errno to get more info. The value of errno was 22 which, according to the header file errno.h means:

#define EINVAL 22 /* Invalid argument */

An invalid argument. OK. How about telling me which argument is invalid since I did, after all, pass in two arguments.

I tried escaping spaces and quoting the entire string, but nothing worked. Finally, it dawned on me: Objective-C strings are not C strings. symlink was expecting a plain old C string, but I was passing in something completely different: instances of the Obj-C class, NSString. So, the way to fix this was to pass in C strings, and how do you get C strings from NSString instances? Right, call UTF8string on them. Thus my call to symlink went from

rc = symlink([source UTF8String], [dest UTF8String]);

to

rc = symlink([source UTF8String], [dest UTF8String]);

and all seems to be working properly now.

I’m going to do a bit more testing on this, but I will probably release this new version tomorrow.

This Should Help Hillary

Photowalking

It used to be that going for a walk and taking your camera was called “going for a walk and taking your camera.” No longer. Apparently now it’s called Photowalking. So, to keep up with the cool kids, I will use the same name.

For the last two nights, I’ve been “photowalking” around my neighborhood. None of the photos I’ve taken have been “amazing” or “stunning” or “you’ve-gotta-see-this” quality, but I especially like this one of the trees silhouetted against the evening sky.

You can see the rest of the pictures at the following links: