The Oxford comma, let me teach you it

[ I originally wrote this as a comment on a friend's LJ in response to his reposting the below image, but wanted to also post the comment on my blog since it's a subject I feel strongly about. ]

With the Oxford comma: we invited the strippers, jfk, and stalin.  Without the Oxford comma: we invited the strippers, jfk and stalin.

I personally, dislike, the Oxford comma, and, prefer, the Shatner comma.
:-)

Seriously, though, most of the examples folks use when illustrating the value of “the Oxford comma” follows this pattern:

“… Noun, ProperNoun and ProperNoun.”

In this specific case, I agree, the series (Oxford) comma is necessary. However, if the last three of the list elements are proper nouns, it’s not necessary:

“I went to England, Spain and France.”

Or, if none of the last three elements in the list are proper nouns:

“At the grocery store, please buy carrots, mangos and limes.”

What’s worse is when folks use the serial (Oxford) comma before a conjunction when NOT enumerating a list, like:

“I went to the store, and bought a book.” FUCK NO WRONG WRONG WRONG. This is NOT an Oxford comma, it’s called WRONG WRONGITY WRONG WRONG.

*neck-twitch*

Of course, Google takes G+ very seriously …

So seriously, in fact, that …

Google has just launched games on Google+.

Because, you know, having games on G+ is SO much more important than fixing ALL the horrible usability problems with G+ …

Every time I say something negative about G+, the rabid fanboys say something that goes like this (paraphrasing):

But, but, but, the G+ team is doing all they can to make the service, the experience, etc., better … just cut them some slack and give them time.

… and then, Google goes and does something like this.

Google Mannekin Pis
(credit: Accidental Hedonist on Flickr)

Launching games on G+ now is like pissing on G+ users and calling it rain.

It’s one of the features that users explicitly do not want. In the early days of G+, one of the things most commonly cited by the fanboys as giving Google an edge over Facebook was “the lack of games cluttering up the stream”.

Like I’ve been saying all along, everyone will slowly come out of the “ooh, new and shiny” haze they’re in, and realize how badly G+ sucks in comparison to Facebook.

Google+ will soon join the ranks of Google Wave and Google Buzz. Remember them? Yeah …

You’d never watch Cheers if it were like this

The other day, my friend Mike invited me out for some drinks at a local bar. It’s a nice bar with friendly staff and good food. I’m not much of a drinker; my vice is smoking. Still, I like spending time with friends, and bars tend to be a popular place to go and be social.

Now, this particular bar has no dance floor. It’s a bar on one side and a restaurant on the other. It’s not the kind of place that would come to mind when you think of places to go and dance. Just keep that in mind …

The night we went, the music was especially loud. Now, I love music and some ambient tunes in a social setting can be really pleasant. That wasn’t what we had that night, though. It was loud … so loud that I strained to hear anything Mike had to say and had to shout for him to hear me. By the time we’d left, my throat was sore and my voice was hoarse, and my ears were still buzzing once we got outside. This was ridiculous.

Here’s a pro-tip to anyone who runs a bar:

Unless there’s some titties dancing on the bar or around it, turn down the fucking music.

Remember that old TV show “Cheers”? Do you remember there being music playing in the background during the show? I sure as hell don’t. What they had were people drinking and socializing at a bar. Nobody would have watched that show if everyone were shouting over some high-energy music the whole episode.

I guess I just need to find a better bar. One that is actually run in a way that encourages people to enjoy alcohol while actually interacting with other people. Anyone have any recommendations for places within 15-20 miles of Butler, NJ? Or, are all bars like the one I was at, and I should just not bother going out for drinks any more?

This week in Freelancing Train Wrecks …

I guess my good luck had to run out eventually. For all the awesome projects that I’d been picking up off Elance, I finally got totally boned by this one train wreck of a project.

train wreck

I knew right away it was going to be trouble. The project was posted as an invite-only job, and I was the only invitee, basically saying this was a offer specifically for me to consider from the buyer. Normally, this would be quite flattering, getting hand-picked and made an offer from a buyer, but this one made me nervous: it was vague as to what the buyer wanted, other than someone with “PHP and MySQL skills” … which, yes, I am definitely an expert in. In addition, the buyer proposed the hourly rate he was looking to pay right in the project’s title, which was practically half my normal hourly rate. Still, if I could knock out the fix to his problem in 1-2 hours like I normally can, it would end up being a pretty decent rate in the end … so I thought …

The job was posted some time on October 28, and at 9:55 PM I asked a pre-bid question about the work to be done. The buyer responds at 4:02 AM with the URL of his site and states that he has a “PHP script problem.” That morning, I check out the site, it’s throwing a MySQL DB connection error, which is a piece of cake to fix. This is where my Spidey-sense started tingling. How could I bid on work when I can’t even see the site? Still, I’m a sucker, I still had hours that weren’t billable for the weekend, so I figured I’d take the work. Some money is better than no money, right? Right??? (In hindsight: NO!!!) A few more messages are exchanged, I submit my bid for the project, and wait. By 10:37 AM, he accepts my bid and awards me the project: the game is on!

Right away, I get in and correct the credentials so that PHP can connect to the MySQL database. Great, the site’s up, now … and it doesn’t look outrageously terrible, so maybe this is going to work out okay, I’m thinking. Hoo-boy, how wrong I was, hah! Throughout the morning, we exchange messages and he keeps saying how he’s going to give me a list of changes, which never materialize. He wants to talk on the phone, which if you know me, I prefer to avoid, for the exact reasons that actually happened … yet again.

whack-a-mole, by tpapi on Flickr

I’m waiting for whatever list of changes he wants done, watching the hours tick by, and out of the blue he calls me at 5:00 PM. According to my call history, we spoke for 24 minutes, of which I remember there were an agonizingly painful 22 minutes or so of me trying to make sense of him while he abruptly stops speaking mid-sentence, not finishing a single thought, starting a sentence mid-thought … and me asking him to repeat things that sound remotely relevant just to make sure he didn’t emit words from his mouth by sheer accident and just generally playing Requirements Whack-a-Mole over the phone.

I finally get off the phone, and shoot over a few questions trying to clarify what little I came away with from the call. Instead of answering in writing, he calls me again at 8:09 PM and we go round-and-around the mulberry bush for another 9 minutes. Needless to say, it was more of the same as before and I didn’t get my questions answered. So, I do what I know always works: I stop wasting my time asking questions and I start reading the code. The code never lies.

And, in this case, the code is a downright disaster. I start putting together a list of all the possible things that he might want to fix, most of which he probably doesn’t even realize needs to be fixed, figuring he’ll name some items that I can crank out and get through this supposed 8 hour project. At this point, I’ve accepted that it was a huge mistake to take on this project, but I feel bad for the guy so I figure I’ll give him something so that this wasn’t a total waste for both of us. (Mental note: stop doing this! It never ends well.)

On Saturday, he’s apparently busy working, so I don’t hear from him until 2:15 PM when he sends me a message saying he’ll be free after 4:00 PM. Lucky for me, he must have found someone else to torture after work, because I don’t hear from again the whole day. I get to work on another client’s project, thank goodness.

I get to continue working on other projects on Sunday, until he calls me again at 7:29 PM and I manage to get off the phone in only 6 minutes. At 8:00 PM, he emails me saying that he would send the list of changes he wants done that night and that he would be available at 10 AM the following day. I acknowledge his email at 8:02 PM, letting him know I’m looking forward to finally seeing this list. Like a pig saved from the slaughter for a day, I’m actually feeling relieved by this empty promise … and I finish off my Sunday getting other client work done.

Monday morning rolls around, and at 9:44 AM, he calls me. We talk for 5 minutes, probably me pointing out how that supposed list of changes never materialized to which he probably rambled on about how I’d be getting it. He sends me payment out of the blue for three hours with the explanation that he’s paying for “the hours so far to show initiative in comppleting [sic] it ASAP.” Oh, if it were only three hours I’ve sunk into this mess, that might have been worth something.

Finally, at 11:47 AM, I get a change request that I can actually act on! And, a request to test a portion of the site’s functionality! For those keeping score at home, it’s now three days after the project has officially started. Finally, I can start working against those evil 8 hours I’m on the hook for …

Around 5:00 PM that night, after getting done some work for my other clients, I complete his the change request, and do the testing, and post screenshots into the Elance workroom to show my progress. By 7:26 PM, I’m done … and ask him to provide an explanation as to how to reproduce the problem he’s asking me to test for. He has no idea, so I decide to call it a night and go back to working on other client projects. Tomorrow’s another day full of suffering just waiting for me.

Of course, as my luck would have it, things go from bad to worse. My network connection goes down at 2:07 AM on Tuesday, 11/2. This forces a hard stop and I crawl into bed, hoping it’s some scheduled maintenance and that things will be up by the time I get up in the morning. Sadly, it turns out that the entire block is without connectivity and a few adjacent streets, and there’s four or five repair trucks out along the poles. Finally, at 10:32 AM, network connectivity returns. I shoot him a note at 1:58 PM letting him know that I was offline most of the morning. It seems he must be busy, as I don’t hear from him the whole day.

Wednesday at 12:58 PM, I suggest he spend some time and put together the list of changes in an Excel spreadsheet so that we can both know exactly what is happening, so I can finally lock down the scope and get away from this mess. At 4:51 PM, he sends a message saying he’ll make the list. Then, he calls me at 4:52 PM and we spend another 6 minutes on the phone. At 5:04 PM, I get a message saying that he’s working on the list and that I’ll have it within an hour.

At 6:37 PM, he tells me that he doesn’t have Excel and sends me this huge blob of unformatted text which I only guess is what he thinks is a list of changes. Here’s one of the gems, verbatim:

WHEN YOU IN GOOGLES, THEY
BACK TO OURS IT SAYS

GOOGLES ???

If anyone can actually figure out what he meant by this, I’d be impressed. Eventually, I was able to decipher it, but I now have a finer appreciation for what archaeologists must deal with when finding an ancient civilization. Holy crap.

To make this ridiculously long story slightly shorter, at 6:42 PM he calls me and we go back and forth on the phone for 30 minutes, at which point I think I understand a few of the more important items on the list, and get to working on them.

One of the requests is to doctor up some PDF files with changes, and I inform him that I’m not able to do it. He suggests I print it out and white things out and scan it back in … because, well, he’d do it but his scanner is broken (!!!). At this point, I just can’t take it any more. I tell him I don’t have a scanner and he should hire a graphic designer to make the changes he wants. Instead, he goes to Kinkos, whites out and hand-scribbles his changes, scans it and sends the results to me. I’m not joking; I wish I were.

Fast forwarding a bit, days go by … us going back and forth, me trying to zero in on what each of those nuggets from his “list” mean. Finally, last night at 8:52 PM, I go into Elance and request that they cancel the project. I muster every ounce of willpower I can, writing and rewriting the next message over and over, trying to eliminate all of my seething hate and anger. I finally wind up with this, and I send it:

I’m sorry, but I can no longer work on your project. This is not how I do business and I cannot continue to wait for you to decide what it is you need done.

I’m going to mark this job as cancelled. Please find a new provider.

Despite losing out on what little money I was going to make off this project, I felt a huge relief after doing this. It was finally over. Dare I say it was almost orgasmic. Yeah, it felt that good to finally get this monkey off my back. But …

Today, he finally responds at 3:31 PM with:

Im not sure what prompted this message however I do hope your satisfied with future clients and that they meet your needs. If you send over an invoice i will remit.

What? What, what? Seriously, two weeks into this mess you don’t understand why I’m canceling this project with extreme prejudice? I guess in all my agony to try and be pleasant, I guess I failed to be adequately clear. So, at 4:10 PM, I sent this final message:

This project was bid at 8 hours for $[redacted]/hr. It went on for two weeks, and was well over the 8 hours – probably closer to 15-20, but I wasn’t watching the clock, could be more, I don’t know.

What I do know is I can no longer continue to respond to you in a timely fashion because the large amounts of time I spend trying to decipher what you’re asking for, reading and re-reading your messages, listening to your voicemails, talking with you on the phone — it was cutting into time I had committed to other clients and your project was putting ALL of my other work at risk.

It was a difficult decision to cancel the project, but I would be losing a LOT more than $[redacted] if I let ALL my other projects suffer because of yours. I’m sorry, but I cannot afford that — this isn’t a side-job for me, it’s my primary source of income and it pays my mortgage and feeds my kids. I cannot afford to let you jeopardize that, not for $[redacted]/hour.

Good luck finding another provider on Elance and completing your project.

I. AM. DONE.

***

Let this gruesome tale of a freelancing opportunity gone horribly wrong be a lesson to all of you: JUST SAY NO. Sure, you might wind up passing by a few good opportunities, but you’ll definitely avoid these train wrecks. In the end, they cost your business more than those few possibly missed opportunities could ever be worth. Trust me.

Dear Nintendo, bring the sexy back!

You know what? Playing Super Mario Bros., the vintage NES version, on the Wii, really sucks. Why? The slight lag due to the Bluetooth Wiimote just makes the gameplay not feel identical … and it bugs me. :-(

NES console with controller

Nintendo needs to release with a “throwback NES” — a game console contained inside the original NES plastic housing, with every NES title ROM ever released, preloaded on a 64 GB flash chip, with the original connectors and two vintage corded square NES controllers. It would power on, you’d select what game you want to play from a menu, and it would load the ROM off the flash memory. Sure, I’d miss the occasional blowing on the contacts of the cartridge, but this would be such an awesome product.

I’d pay $100, maybe even $150, for it. And I’d play with it a hell of a lot more than I play with the Wii.

Elections, the biggest obvious waste of tax money ever

Today is Election 2010, a boring mid-term election. The air, or at least the US-centric area of the Internet, is buzzing with a borderline Jingoistic fervor with all the “Get out and vote” and “I voted” rubbish.

@dossy: I didn't vote; you all did. Things will no doubt get worse. Is it really my fault because I didn't vote, or are you all just wasting time?

Have you ever tried to find out how much these elections cost us? I’m not talking about campaign funds and all that nonsense which apparently reaches into the billions of dollars, but the actual stuff that is, I assume, paid for using tax dollars: staffing polling locations, the cost of vote-capturing equipment, developing and certifying said equipment, processing absentee ballots, and whatever other overheads there are that I’m not even thinking of. Can you find a source for these cost figures?

I found this article that suggests that a special election that was held in West Virginia cost roughly $20 per vote. In the absence of actual costs, let’s assume that this 2010 general election will cost us taxpayers $20 per vote, too. Looking at 2006′s general election turnout rates, it appears that approximately 83.8 million people voted. That’s potentially $1.6 billion dollars in cost. Quick, name me three worthy causes that you think could really benefit from a boost of $1.6B towards their operating budget.

I know, people vote because “that’s how democracy works” and “if you don’t vote, don’t complain” and all that other noise. Lets face it: has there ever been an election outcome that can be clearly connected in a causal manner to a political improvement? I don’t mean “the person I wanted to win, won,” but a real, tangible benefit on a macroscopic level for the country as a whole. From where I sit, over time, the “goodness/badness” scale bounces around seemingly randomly despite whoever happens to be the elected officials at the time, and if you zoom out a few levels, it mostly looks like a flat line hovering around the midpoint.

It’s hard to really make claims that “elections make things better.” Sure, maybe because we didn’t have close to 100% voter turnout, the system failed to work properly. I’ll say it now: it is irrational and unreasonable to believe that we will ever get even close to 100% voter turnout, I mean not even close to 80% turnout, even. Lets face it, we’re lucky that we get the 62% that we get. So, putting a system in place that requires high voter turnout, when it’s unlikely we’ll ever achieve it, is downright stupid.

It’s more plausible that elections don’t actually have a measurable impact, other than to pacify people with poor deductive reasoning skills who enjoy spending other people’s money.

Think I’m totally off the mark? Just entertain me with a very simple thought experiment: instead of spending over a billion dollars to record votes of millions of people, instead one single person is equipped with a true and fair coin and merely flips it deciding who the winner and who the loser in a particular race is. In the event of multiple candidates in a race, the process is repeated pairing candidates in a single elimination fashion until a winner is selected.

From a distance, can you really tell whether the outcome was based on the votes of millions of people, or by pure random chance? Better yet, do you seriously think it makes a difference? You sure can’t tell by looking at the state of America, I’ll tell you that much.

Do you seriously want to bring about change? Don’t waste our tax dollars by voting. Encourage everyone you know to do the same. Eventually, we can eliminate the entire voting facade entirely and simply rotate politicians in and out of office at random. I guarantee that the outcome will be indistinguishable from what we have today, and we’ll have saved billions of dollars in the process.

Just remember, by the 2012 election, I will become eligible to be the next President of the United States …

Review: Samsung Captivate on at&t

Samsung Captivate on at&t

Despite the news that RIM was going to finally launch a new touch screen slider phone “any day now,” which did finally launch as the BlackBerry Torch 9800, I decided to give an Android phone a serious look.

After looking at the various options that at&t offers, I decided to give the Samsung Galaxy S-based Captivate (details: Samsung, at&t) a try. I ordered three new phones–one for me, one for my wife, and one for my Dad–at the start of August, and by the 6th, we had our phones in hand.

Right off the bat, I’ll have to admit that I went into this with extremely high expectations. I know, big mistake. To be honest, after dealing with BlackBerry phones for the last two-plus years, I was excited at the prospect of finally getting on a modern platform that didn’t involve using that crappy iPhone OS.

On the surface, it sounds really promising: a fancy 4-inch Super AMOLED display; lightweight at 4.5 ounces; 5MP camera; 512MB of RAM and 16GB internal SDHC; Samsung’s 1GHz ARM Cortex-A8 Hummingbird CPU. With these specs, there’s a whole lot of potential to build something really incredible.

My first disappointment was the “Email” app that ships with Android 2.1 on this phone. Apparently, I’m not alone, so much so that folks have forked the code and released their changes called K-9. However, K-9 still has its warts: I can’t figure out how to copy-and-paste text from an email message, without “replying” to it and copying from the quoted text area, then discarding the reply. Perhaps I’ll “fix” this and submit a patch.

Next, the lack of out-of-the-box wi-fi tethering was disappointing. I went and rooted my Captivate and then installed Android Wi-Fi Tether on it. Having a free, open source “solution” is a great thing, but certainly not for the average, non-technical consumer.

The Calendar app. isn’t too bad, but I sadly discovered a shortcoming in it: there’s no way to duplicate an event. I’m not talking about creating a recurring event, but taking an event and duplicating it. Suppose you have an event, like a doctor’s appointment. You go to your appointment, and at the end, you schedule your follow-up appointment. It’d be really convenient to be able to just copy your current appointment, and paste it on the new date and maybe adjust the time. Can’t do that with the stock Calendar app on the Captivate. You have to just add a new event and enter in all the data. Annoying, to say the least.

Battery life also seems disappointing. The specs claim over 300 hours (over 12 days) of standby time, and over 5 hours of talk time. Given the amount of email and Twitter and Facebook I get, even at an hour interval for refreshes and K-9 mail set up to do IMAP “push,” my battery seems to last around 4 hours before needing a charge. I suspect the 3G data use of the cellular radio uses more juice than voice “talk” time … and the notion of “standby” time is a bit misleading, since when the phone is doing background data tasks, it’s really not “in standby” as its actively using the radio.

Another huge problem is the fact that GPS on the Captivate appears to be totally broken. The TeleNav GPS navigation application is pretty much unusable, with it not being able to track your location properly, which causes it to constantly reroute as it tries to figure out where you are. Supposedly there’s a workaround, where you can manually reconfigure the phone to use Google’s Location Server, which I’ll try soon, but again, this is just poor out-of-the-box experience and “fixing it yourself” isn’t really a satisfactory solution for a non-technical consumer.

On one hand, I wonder if I should have bothered making the switch from BlackBerry to Android, yet. Despite my complaints with RIM and BlackBerry products, the few things they could do, they did reasonably well. But, I’m tired of waiting for RIM to catch up. Maybe the next generation of touch-plus-slider devices following the Torch 9800 could be an option, but for now, I’m going to stick it out with the Captivate, hoping that Android 2.2 brings some fixes, along with community-developed Android functionality closes the gap between “sucks badly” and “usable on a day-to-day basis.”

Today’s moment of gift card FAIL

Over the last year, I’ve accumulated several “one-shot” Visa credit cards in the form of “gift cards” and manufacturer rebates. I decided today would be the day I’d try to spend some of these. I went to one of my favorite online shopping destinations, Amazon.com, picked out some items, and went to go pay with these cards. This should be no big deal, right? Right???

Handful of Visa cards.

So, I picked out an item that I couldn’t pay for with a single gift card. No problem, I’ll just tell Amazon to charge two of these cards and that would be that, right? Only, I discover that I can only choose one credit card to pay for the transaction. Ha, ha, this must be a joke, right? It’s 2009, you can’t expect me to believe that the company that basically pioneered e-commerce hasn’t figured out how to implement split billing?

Out of disappointment, I decided to locate the same item on Buy.com, where I discovered that they also only allow you to choose one credit card as payment. I did notice that both Amazon and Buy.com allow you to use multiple site-specific gift certificates to pay for an order, so I decided to work around the problem by ordering a Buy.com gift certificate for $50, the value of one of my Visa gift cards. I chose email fulfillment, figuring that I’d soon receive the necessary information by email to redeem my card and be done.

How can an e-product be “on backorder”?

Estimated ship date: Back Order???

When I received my order confirmation email from Buy.com, this is what I saw. Try to appreciate the moment of WTF I experienced as I tried to believe what I was reading. An emailed gift certificate was on back-order??! Are you kidding me? What, did they run out of electrons or bytes in the warehouse?

I tried to attribute this to some bug in their order confirmation email process, so I waited for an hour for a second email, which would never arrive, containing the gift certificate. Finally, I gave up and went back to Buy.com and cancelled my order.

Does Amazon.com do any better? I’m not sure. I just noticed this fine print on their gift certificate order page:

* Note: For security purposes, e-mail gift cards and printable gift cards may go under a 24-hour review process while payment information is verified.

I don’t know what to do, at this point. Have any of you been in this situation, trying to make a purchase using multiple credit cards? Should I just bite the bullet and purchase these Amazon.com gift certificates and wait 24 hours? Are there any better solutions? Please, help me out, leave me a comment with your best suggestions.

Can we flush $150M down the toilet in 5 days? YES WE CAN!

What happens when you give ultimate power and unlimited wealth to a black man? He invites all his homies to his crib and pops open the Cristal and throws a huge party, that’s what:

Obama’s inauguration set to be the most expensive in US history

President Barack Obama’s inauguration next week is set to be the most expensive ever, predicted to reach over $150m (£102m). This dwarfs the $42.3m spent on George Bush’s inauguration in 2005 and the $33m spent on Bill Clinton’s in 1993.

$150M dollars. Just let that sink in for a moment. That’s the salaries of roughly 3,500 jobs that pay $35k a year plus benefits, pissed away in 5 days.

Obama today issued a statement calling on people across the nation to participate by holding their own neighbourhood events, including their own balls. [...]

Did Obama just call on me to hold my own balls? We, the tax-paying public, don’t even get a reach-around?

Now I’ve heard enough.

Tags: , , , ,

The world would be better off without you!

Can you believe this crap? I mean, look:

Prosecutors say Drew, 49, of O’Fallon, Missouri, helped create a false-identity MySpace account and harassed Meier with cruel messages.

Meier, who was being treated for depression, hanged herself after allegedly receiving messages saying the world would be better off without her.

So, some kid becomes an hero and they want to prosecute using the Computer Fraud and Abuse Act? That is absurd.

Sure, what Lori Drew did to Megan Meier–sending cruel messages–wasn’t nice. But, “not nice” in this case is in no way criminal! Otherwise, there’s crimes being committed every day in school yards, offices, customer service departments, etc., across the country. Seriously, where do we draw the line?

I’m sure it doesn’t need to be asked, but where were Megan’s parents in all of this?

I hope the trial jurors are smart enough to figure out how ridiculous this whole thing is. Case law really needs to be established here so no one else can get crucified like this.

Before you go flying into a rage in my comments section about how insensitive I am, or how I’ve got it all wrong … listen carefully: the world would be better off without you! Go hang yourself, now.

Tags: , ,