Tuesday, August 10, 2010

A Tip for Independent Contractors

Whatever your local customs may be, you DO NOT tell a potential employer it is lunch time during an interview. I understand you want to go eat with your buddies and might go hungry for a few hours, but was what you ate worth potentially losing several thousand dollars of income? If so, I'll have some of what you're having.

Sunday, August 08, 2010

Blackberry Development Knowledge Dump

While I'm not the sharpest knife in the drawer, I'm far from the dullest. Recognizing my middle of the road capacity for thought, I'm assuming a portion of Internet readers will experience some of the same frustration with Blackberry development that I have experienced. Most notably, what information is current? So, here's a quick dump of some basic Blackberry nuggets of wisdom.

Should you use Eclipse or the Blackberry Java Development Environment (JDE)?

While some may argue that you shouldn't use either (yes, Blackberry development is possible on NetBeans, IdeaJ, etc.), I think most new projects are being done in Eclipse with the Blackberry JDE plug-in.

What version of the JDE should I use?

Notice how I just said not to use the JDE but then referenced the JDE? Get used to it...Blackberry loves ambiguous crap.

Anyway, it appears as though 4.2.1 is recommended for traditional devices, and 4.7 is recommended for the newer touch-screen devices.

How do I build separate cod files for each target platform?

What? You haven't heard of a cod file? Tough...this is Blackberry development. There will be no hand-holding....nor straightforward and complete documentation.

I'm guessing you ditch Eclipse and the JDE for the command line, but who knows. I don't have that kind of time on my hands. Rumor has it this may be easier in other IDE's, but I'm fairly sure there are some Blackberry Ant tools out there waiting for you.

What is a cod file?

Oh, glad you asked. It's your Blackberry application executable. It's analogous to a zip file with other zip and/or jar files inside it, but platforms work better if they ignore simple, established standards?

What are code signing keys?

They're a security measure implemented by Blackberry so evil developers don't do bad things like get the display width and height. Seriously, I'm sure there's some logical reason. Turning off the backlight 255 seconds at a time would definitely run down a battery. Code signing keys to the rescue.

Also, they're a great way to receive a lot of pointless e-mail and require an Internet connection for you to get your work done.

What are the various device resolutions?

Who really knows for certain? The most common are 320x240, 480x360, and 360x480, but you also have 240x260 and 240x320. Good luck writing a useful interface to support all of those devices.

What is compatibility mode?

It's Blackberry's sad attempt at backward compatibility on their touch-screen devices. Apps built for the traditional 320x240 screen will run inside a blue border with a virtual keyboard. What's really fun is you can get your app stuck in this mode even when you're trying to write a touch screen app. The best way I've found to get out of it is to install a new Simulator. What? You accidentally got into compatibility mode on your development device? Well...good luck with that. I'm sure there's a toggle switch somewhere.

What's all this preprocessor stuff?

It's a C/C++ developer's wet dream of how Java development should be. Don't get me wrong...I like a good precompiler macro just like the next guy, but when you have to comment it out to make it work? No, that's just stupid.

Nevertheless, if you want to support multiple builds from one source tree, you will probably need to use precompiler macros. Every file has to have a //#preprocess directive, and you can then use //#ifdef, etc. Of course, the fun part is that Eclipse doesn't recognize the directives and treats them as warnings and ignores that they exist.

My app was running fine a minute ago and now won't do anything now...what gives?

Blackberry has some arbitrary size limit on cod files. If you hit that limit, it's game over. Do not pass go. Do not receive an error message. Do not receive a warning. Experience silent, pointless failures and go directly to jail.

Of course, I'm sure there are other reasons.

The Blackberry 9000 simulator is giving me access denied 0x00000004 error messages...how do I fix it?

You don't. Get a different simulator. Actually, why don't you figure it out and let me know? Okay, thanks, goodbye now.

I have a short audio file that is not working on the device but works in the Simulator...what's wrong?

Welcome to Blackberry. Work around it.

If I remember some more cherished nuggets of Blackberry wisdom, I'll be sure to update this wonderfully informative article.

Labels:

Adventures in Mobile Development

In my time away from this blog, I became heavily involved in mobile application development. I participated in Apple's SDK BETA program and released my first application shortly after its official launch in June 2008. It's been a bumpy road, and while I'm no fan of Objective-C, I can say that other than a few early bugs, the tools and api tend to work and work well.

Fast forward a couple of years, and I'm now dealing with a Blackberry application. Keep in mind of course that Research in Motion is a much more mature mobile computing platform than iPhone. They've had the chance to make and learn from their mistakes. The crazy thing is...Blackberry application development is a disaster. Don't believe me? Go spend some time on the developer forums and see if you can make heads or tails of it.

If I'm using XCode, I can build my application, run it in the simulator, switch to the device, run, debug...do basically whatever I want without things having to restart or me having to start the application manually. Under Eclipse, I'm constantly restarting the simulator or crossing my fingers and tossing salt over my shoulder hoping on-device debugging actually works, usually after a full system restart.

My favorite feature of the development environment is its stubborn refusal to run an application that crosses some magical size, a rather paltry size by today's standards. And, it does this silently as a gift to all overworked developers in serious need of sleep.

I could go on and on about my frustrations with the bugs, the lack of usable documentation on the website, the constantly shifting functionality in the Eclipse plug-in, but you would just get bored. Suffice it to say, Blackberry can't die fast enough for this developer.

Before I sign off tonight, let me just add that Android should be prepared to take its lumps. It's not as bad as Blackberry, but for a company the likes of Google, I expected more. The development experience doesn't even hold a candle to iPhone.

Labels: , , , ,

Thursday, August 05, 2010

TSA Agent -- A Pedophile's Dream Job?

On a recent trip, I had my first encounter with the infamous body scanning devices making their way into security checkpoints across the United States. As my family approached the machines, I seriously considered asking for the alternative as the whole exercise seemed rather creepy and invasive. Once at the front of the line, though, I noticed that the old metal detectors were roped off meaning a full-body pat-down was the only alternative.

While I stood there holding my 5 year old daughter's hand and watching my wife and 7 year old son load their stuff into the bins, I realized I had only two rather absurd choices. I could let the government take naked pictures of my children, or I could let a strange adult put his/her hands all over them. I opted for the pictures.

For some reason, it never occurred to me how disturbing it would be to see my kids go through the process until we were waiting in line. And, it made me wonder...is this a pedophile's dream job?

My daughter had a blast skipping into the machine and following the agent's instructions, dutifully putting her hands up by her head as instructed. She thought it was fun.

Thankfully, it's "our" government, and I seriously doubt anything inappropriate is going on...

CNET News: Feds Admit Storing Checkpoint Body Scan Images

Labels: ,

Wednesday, July 09, 2008

Really? Is this How Pathetic our News Media has Become?

Jackson says sorry to Obama for crude remark

So we have a story about a crude remark made by Jackson against Obama, but if you read the story...NO CRUDE REMARK. They won't even tell us what he said. They'll only tell us how he apologized. Pathetic...

Tuesday, July 08, 2008

Stewart Slams Dobson Hypocrisy

This happens far too often in religion, and it's nice to see Stewart call Dobson on it with such irrefutable evidence.

Labels: , , ,

Wednesday, April 30, 2008

McCain's Health Care Plan

Normally, I give a fairly detailed opinion on points raised as part of a candidate's health care plan. Now that we finally have one from a Republican, I thought I would do the same. Having just read it, the problem confronting me is that there is no plan. It's nothing but a bunch of marketing mumbo-jumbo that amounts to little more than a new tax credit.

The main problem I experience with health care is availability of insurance. What does McCain want to do? He wants to "...Work With Governors To Find The Solutions Necessary To Ensure Those With Pre-Existing Conditions Are Able To Easily Access Care." Let me translate for you. He wants to throw you into what states call their High Risk Pool, a cumbersome bureaucratically run process with ridiculous qualification procedures, high premiums, and massive deductibles.

My family went down that road. We paid some $400/month for my wife's CORBA coverage for 18 months to qualify for the High Risk Pool. If we had continued, she would have paid $350/month for a $500k lifetime limit (most policies are at least $1 million) with a $7500 deductible. The really amusing thing about that is a $7500 deductible would disqualify us for an HSA. We'd have to reach for an even higher premium to get a qualifying deductible.

maverick (n): Someone who exhibits great independence in thought and action.

Raise your hands if you think McCain's nickname should be changed. What a joke. It took his staff the entire primary season to come up with the same junk Bush said 4 years ago??? Pathetic.

Labels: , ,

Tuesday, April 29, 2008

F*ck the FDA

I realize my blog is typically free from profanity, but I think once you read this, you'll agree it's warranted.

Any long-term reader knows that I've put a little effort into researching the drug Lovenox, but it's not often I talk about Heparin, its cheap, unreliable cousin. Where Lovenox provides reliable anti-coagulation at 2 doses a day, Heparin provides unreliable anti-coagulation anywhere from 2 doses a day up to continuous delivery via IV. Heparin's reliability (or lack thereof) can be complicated by various blood conditions, one of which affects my wife. Consequently, the drug is of little importance to me.

Nevertheless, Heparin serves a significant role in almost any hospital medical procedure by helping Doctors and Nurses keep IVs clear of clots. This hits particularly close to home as it was only a couple months ago my daughter had surgery, and I watched them administer Heparin to keep her IV clear. You might also remember what happened to actor Dennis Quaid's twins when the hospital confused two different concentrations of Heparin.

So what am I so upset about, you ask?

Heparin Contamination May Have Been Deliberate

There's been a story circulating about contaminated Heparin coming out of China under the Baxter International brand. Now it seems the FDA has investigated, inspected the factory, and decided that someone was intentionally doing this to increase profits.

So why do I say, "F*ck the FDA?" Glad you asked...BECAUSE THE STUPID, CORRUPT, HYPOCRITICAL, WORTHLESS, MONEY GRUBBING, PIECES OF SHIT said that I couldn't import the same Lovenox from Canada that I buy here at 3x the cost. WHY? Because it could be CONTAMINATED. Well, guess what? The Heparin they stamped with their seal of approval was CONTAMINATED. What's worse is our tax dollars pay for what appears to be a worthless bureaucracy which serves little apparent purpose beyond running up the cost of medications in the U.S.

Is the purpose of the FDA to protect U.S. citizens, or is its purpose to protect pharmaceutical company profits? Read the linked article, and I think the answer will reveal itself.

Labels: , , , , ,

Thursday, March 20, 2008

The O'Reilly Fiction

When I first saw Bill O'Reilly's show several years ago, I thought he was a pompous ass, but I respected the fact that he aired negative feedback from his viewers. That was about all I knew of the guy. Of course, once I watched enough episodes, I found his personality abrasive enough to be disinterested whether I agreed with him or not.

Since then, I've gone on to lose interest in Fox News completely because of both bias (keep in mind, I'm conservative to an extreme) and incompetence. However, with the Obama/Wright issue recently, I started watching again because other networks were sanitizing the debate by playing less offensive videos.

One show I caught was an O'Reilly Factor episode where one of the other topics was The Huffington Post and offensive comments O'Reilly staff had found there. O'Reilly distorted the issue by noting Arianna Huffington as the editor and hence responsible for all text on the site. In this case, he was referring to the anonymous comments found in discussion of articles on the site.

Tonight, he's at it again. He sent one of his paparazzi-like camera crews after Huffington to interview (harass) her over the issue. Huffington responded here in far too respectful a manner.

What bothers me about this is that O'Reilly is deliberately misleading his viewers. He knows comments sections are open forums, not articles, editorials, or even letters to the editor. This isn't content sanctioned by Huffington. It's content created by users interested in discussing the issues raised in the article. And, the Internet is a tough place sometimes. People exercise their free speech rights there more than anywhere, and I would think sites should celebrate that speech in our country, not hide it like Huffington is doing and O'Reilly expects all of us to do. Let people speak their mind. If they say something offensive, they can deal with the fallout. Leave the site owners alone.

So who's less American...really?

Labels: ,

Friday, March 14, 2008

The Wright Video to Show

Last night while watching the Daily Show, I saw a clip of The Trinity United Church of Christ preacher Jeremiah Wright saying something I thought I had misunderstood. It turns out I hadn't misunderstood it and found a more complete clip:



Let's write out what he actually said in case you don't want to watch or the video disappears:

...The government gives them the drugs, builds bigger prisons, passes a 3 strikes law, and then wants us to sing God Bless America? No, no, no. Not God Bless America. God Damn America. That's in the Bible. They're killing innocent people. God Damn America for treating her citizens as less than human...


The thing you have to remember is this guy is part of Obama's spiritual advisory committee, and Obama has referred to him as "a crazy uncle who sometimes says things he disagrees with." Huh? That's it? He later goes on to use the following phrase in another clip in the same video:

U.S. of KKK A.


As much as I think Obama appears to be a decent fellow from what I've seen of him, are we going to take a chance and elect someone to the presidency who was brought to religion by, married by, and studied under a man who is obviously bigoted and anti-American? All we have are a few recent statements by Obama saying he disagrees with Wright on some issues weighed against some 20 years of membership in Wright's church.

What are we to believe? If we've all learned anything this past week, we should have learned to keep a healthy dose of cynicism about all politicians regardless of what they may be leading us to believe, right?

Labels: ,

Incompetent Developers - Thanks a Whole Lot

Today, I get to dig in and update my SMTP server software. This is not an update like the rest of the world does. No, I have to go into my C++ source and change my positive completion replies of 251 to 250 because some lazy ass, incompetent corporate programmer couldn't read a damn RFC. If you have any idea how much of a complicated, jumbled mess that source is, you'd understand why I'm angry. I've avoided touching it for some 2-3 years for this very reason.

Am I happy I'm still running my home-grown SMTP server in 2008? No, but no other product does out of the box what mine does, and it's now really hard to unwind from it because there are custom applications taking advantage of its features.

So, for those of you writing corporate or open-source mail servers, pull your collective heads out of your asses and read the damn RFC's before you write your code.

Labels: , ,

Thursday, March 06, 2008

Sensible Defaults

As a developer, I'm very familiar with the idea of pickings sensible defaults when I write software. In the web-based database application world (i.e. snooze-fest), that usually means setting up an invalid default that will trigger an error if the user doesn't select anything. In other settings, though, you want to make sure the user doesn't take an action inadvertently by providing a bad default.


Such was my experience in signing up for Flixster at Simone's invitation. The sign-up process felt a little like a GoDaddy domain name registration with repeated screens asking for information I didn't want to provide. In most cases, I could bypass them by hitting continue. On the last screen, that wasn't the case. The system fired off "friend" invitations to something like 5 people by default when I hit continue on that last page.


Nice job Flixster developers.