A First Grade Observation

I’ve wasted my life, and it took a six year old to provide the intervention.

Water SlideSo some of our really cool friends who live in the neighborhood hold this amazing backyard party each year, in which they rent an enormous water slide that’s about as tall as their two story house.

The day after the party, their real friends head back over to help clean up. And that was what we were doing tonight.

As it started to rain outside, we all gathered the external lights, furniture, food, tables, and so forth. I made a run for a huge extension cord, feeling that electricity and water wouldn’t mix.

Their little girl decided to help me. And, while untangling the cord, she engages me in the most adult conversation that I’ve had with her in the past three years.

She begins, “So, how come you didn’t go down the water slide with me?”

“Well, we had some friends come over, and they wanted to talk.”

“I know. That’s all you do guys do is talk. It’s so boring.”

Remembering this feeling exactly while I was a kid, I thought I’d get her perspective. “Yeah, I know – what should we be doing?”

She paused, placing her finger on her chin. “I think you should do video games and play board games more.”

With a look that I had been given total enlightenment, I replied: “Oh my gosh, I feel like I’ve just been wasting my whole life away.”

“I know,” she agreed a little too quickly.

“Where’s you learn all this?”

She puffed out her six year old chest with pride. “I’m in the first grade.” And as I took in her achievement, she added “Yes, it’s true. I graduated from pre-school. I’m very, very smart.”

And together we wrapped up the rest of the cord, she carried it in, and I went down stairs to play video games with the adults. Honest to God, cross my heart, hope to die, stick a needle in my eye.

Warning: iPhone AMEX refund isn’t dead yet

There was a blip of people who got AMEX to refund the difference, but that bubble is over. Or is it? I just got off the phone with AMEX and…

Let me clarify my position that I do not feel that I have an entitlement to a $200 refund.

That said, if I were running a company (like Apple or AMEX) where customer service is vital to my bottom line, I’d do everything in my power to build a burst of good will right before a holiday season.

For fun, let’s see of the sure fire headlines work.

Last night I went to the Apple Store in Tysons with a friend who bought his phone one week after me, putting him within the 14 day window. Apple credited him $200 on the spot.

I perhaps have one of the worse case situations, in that while early adopters have had their phone for a long time, I’m just outside of the 14 day window, meaning I don’t qualify for the price guarantee match, nor can I return my phone, nor did I get $200 of fanboy usage from the device.

Apple, however, was helpful and friendly. They looked up on my account and indicated that American Express was used to purchase the phone, and that I should call them. They even printed out a fresh copy of the invoice for me.

In the Jerry Seinfield and Superman commercial shorts by American Express, Jerry tells how, by using American Express, he’s protected from theft, damage, and so forth. Could it be true?

I looked at my American Express card, and found out I was a Platinum Member via Costco. Nice!

After looking up AMEX Best Value Guarantee with Google, seeing that a Gold Card Page mentioned BVG, and discovering Return Protection on Platinum Benefits, I felt it was worth a call to AMEX – given the Apple Store made the same suggestions as this newsworthy blog, this tech news article, and this tidbit.

I called 1-800-297-8019, and after a fairly long time on hold due to an enormous “unexpected” call volume, I reached a human who confirmed I had the right number. He explained that the Best Value Guarantee was discontinued in November 2006 (ah, the BVG article above was from 2003).

Turns out, the non-existent Best Value Guarantee would have meant AMEX would have had to pay $200. However, the “Apple won’t take my phone back [so I can purchase a new one at a cheaper rater] which is in affect puts them out $300 – though there’s the possibly you may have to send in your iPhone.

Follow along, cause this gets weird. Even if you paid $600 for the phone, a $300 credit from AMEX and a $100 from Jobs, gets you pretty darn close to the cost of getting a new phone (say if you’ve damaged yours dropping it or such); in fact, it might be just enough to make a point if you’re mad enough.

If you bought the cheaper phone, you very well could be beyond the break even point.

AMEX knows this, and they are well aware of the iPhone situation.

Because AMEX is getting hammered, they are looking for a compromise. Apparently there are enough people who are willing to return them iPhones that have been bricked in order to get $300 that AMEX doesn’t want to deal with that.

As such, they are looking at simply refunding the price difference (which is actually cheaper), especially if that means they don’t have to refund a larger amount and get stuck with a bunch of damaged phones with nothing in the file system and missing a SIMM card.

American Express took the date of purchase, the kind of iPhone, there price (with tax) of the iPhone, and the total cost of charges for the purchase and opened a case for me.

They claim they will review them individually, but the rep was fairly certain they’d be handled in bulk.

By bulk, I assume that means putting them in groups. Speculating here, I believe one group, will be the whining early adopters who will get nothing, another group will be those that are in the 14 day period and should be dealing with Apple, another group of questionable pro-rated matching, and a group that meets the intent of the policy (which is where I fall in), in that I’m just shy of being able to resolve it with Apple but haven’t had the long usage.

If AMEX comes though for me, then great, I will be using their card a lot more often.

If AMEX does anything, and I mean, anything at all, they come out looking like the heros, and have just secured themselves the holiday season as the card to purchase everything with.
Steve Jobs has one chance left to steal the thunder back, however. Tell people they are getting $100 back, but give a certain portion in the purchasing window $200 instead. Suddenly Apple looks beyond fair, but customer centric again.

I will note, however, that there were more people in line with iPhone receipts at Tysons than there were people buying the new iPods, while I was there. The early adopters are clearly gun shy.

iPhone TOS Rebuttal

I held off my iPhone purchase because of an article exposing the evils of the terms of service. However, those have been adequately rebutted, that I now own an iPhone.

One of the big things holding me back from buying an iPhone in the first place, aside from lack of SSH (which was soon resolved), was an article about the hidden evils in the Terms of Service contract.

Well, not sure about whether to take things at face value or not, I bounced my concern off my friend Phil, who’s extremely knowledgeable about telecommunications.

He wrote me back a wonderful point-by-point analysis, which swayed my decision. Feeling that other people might benefit as well, I sought permission from him to reprint it here.

iPhone Requires a 2-Year Contract with AT&T.
1. True; they make the 2-year contract requirement pretty clear. This isn’t a great thing but it’s pretty standard in the U.S. when you buy a phone.

Expensive: Requires $2,280, Over $1,730 in Wireless Costs.
2. Also true, though he overstates the price. The service plan runs about $60/month ($40 voice, $20 data); if that’s too expensive, the iPhone is probably a bad idea. That’s still less costly than a Blackberry or Treo (both about $80/month when you turn on the features needed).

Double Billing. You and the Caller Both Get Charged for the Same Call.
3. True, but not unique to the iPhone. Every cellular carrier in the United States save for a few Nextel plans will charge airtime on both incoming and outgoing calls. If you call another wireless phone user, I suppose you could call that double-billing (though if that other user is on the same carrier [ATT], the airtime rate is the princely sum of zero cents per minute).

All Use of the Networks Are Always Rounded Up to the Nearest Kilobyte or Minute.
4. Standard practice for the wireless industry. The per-kilobyte complaint is pretty funny, though, since the charge per kilobyte for domestic data usage is zero cents per kilobyte.

Customers Are Billed for “Network Errors” and “Network Overhead”.
5. I have no idea what he’s talking about, but it makes no sense.

Billed Even Though the Call Doesn’t Go Through.
6. Basically untrue. Billing in a wireless system begins when the call is answered, though the timer starts when the call is initiated. In other words, if a call rings for fifteen seconds and then is answered, the clock begins at 15 seconds and counts up from there.

Bogus Fees Added to the Bill: Regulatory Cost Recovery Charge
7. While I agree that regulatory recovery fees are basically bogus padding, I challenge him to find a wireless (or, for that matter, conventional wireline) carrier that doesn’t do this.

$175.00 Termination Fee.
8. The early termination fee is pretty well standard throughout the industry. There are certain circumstances where you can avoid paying it (for example, if they raise rates during your contract term).

International Messages Are Charged Additional Fees as Are Files Over 300Kbps.
9. International text messaging (i.e. SMS) costs extra on every cellular carrier I’m aware of. The picture/video messaging charging he complains about isn’t even relevant to the iPhone. And the “additional fee” for large messages that he talks about is irrelevant to the iPhone. My phone communicates directly with my IMAP server over SSL; there’s no way that ATT can tell how large a message is, let alone bill me for those messages over 300K.

Over Your Quota: Get Gouged: 40¢ Per Minute and 69¢ Roaming Offnet.
10. Once again, he’s whining about something that’s absolutely standard in the industry: if you go over your bucket of minutes, you pay a pretty high rate. He conveniently neglects to mention that UNUSED minutes from your plan roll forward into the next month and can be used to offset high usage up to a year later. If that’s not enough, just call and switch to a higher plan and ask them to make it retroactive to your previous month’s usage.

The Services Are Not Secure and Can’t Block Your Phone Number.
11. “Not secure” is a leftover from the days of ANALOG cell phones, which could be listened in upon pretty trivially. And they’re saying that when calling certain toll-free numbers, you can’t block your caller ID since the recipient pays for the call. There’s a MENU on the iPhone that allows you set the default for whether you send caller ID or not; you can also set it per-call. In other words: JUST LIKE A LANDLINE.

The Current Mobile Email Service Doesn’t Support Attachments.
12. Absolutely false. You can send photos trivially (about the only sort of attachment that makes sense to create on a phone), and the iPhone will read a lot of formats (Word, Excel, PDF, JPEG at a minimum).

Prohibited Uses and “Unlimited” Sales Hype.
13. The prohibited uses language is pretty standard wireless carrier language. I agree with him that the claim of “unlimited” is pretty misleading marketing puffery, but it’s an industry-wide problem. If you use your FIOS connection at full bandwidth 24×7, you’ll soon discover that “unlimited” basically means that you’re not billed per unit of data, but that you can still be cut off if you abuse the service. There’s basically nothing you could do on the iPhone that would cause this to happen, though.

Service Is Not Intended to Provide Full-Time Connections: Unlimited is Hype
14. Same as above.

Wi-Fi Service is Limited
15. I think he’s deliberately misinterpreting this one. He’s talking about a completely different wi-fi service that one can purchase through AT&T that has nothing to do with the iPhone. There is of course no limit at all to the number of times in a given time period that the iPhone can connect to a wi-fi network.

“Offnet” Restrictions
16. Another deliberate misinterpretation, I think. “Off-net” usage refers to areas where you’re roaming. Since cell phone roaming charges basically don’t exist anymore for the consumer (the carriers charge each other, though), what they’re saying is that you can’t buy the phone and then use it full-time where, say, T-Mobile has service and ATT doesn’t.

Plan Goobly-gook
17. He’s so incoherent here that it’s hard to figure out what he’s mad about.

Comparing US and Other Broadband Countries: America Is being Laughed At.
18. Perhaps he should move! He forgot to mention that countries using the metric system think we’re pretty silly too–but I’m sure he would have if he’d thought about it. Seriously, he has a point: mobile telephony is more advanced in other parts of the world (largely due to standardization on one network type–GSM). But I’m not sure why that would be the fault of ATT and the iPhone.

iPhone – Price Drop: Early Adopters Screwed?

Are early adopters of the iPhone going to get screwed out of $200? I don’t think so.

To provide some context here, I actually ended up purchasing an iPhone. The SSH problem I had concerns with was resolved by the new set of software that’s come out by third parties. The iPhone legal rant was adequately rebutted by my friend, Phil.

But that’s not the big news. The big news is that Steve Jobs just announced the iPhone price was being dropped by $200. And, we knew in our heart of hearts that was going to happen sometime, but early adopters who wanted the iPhone to be a success, paid the expensive price.

Now that Apple’s benefited, the real question on the table is: Are the early adopters going to get screwed.

My take is no.

On the surface, I’m not too happy about having a 3-week old phone, which is less than a month old, yet one week past the return point.

Yes, I made the decision to buy it then, so I do take responsibility for that. But, on the other side, Apple also didn’t provide me with data that could have made me make a more discriminating purchase plan. (And, one can argue, why should they?)

Apple now has an interesting choice. Because of all these early adopters, their phone is a success. However, pissing them off would do some serious damage. One, those people are never going to buy into an early adopter program again and are going to spread negative comments. Two, non-early adopters are going to view this as a model of how Apple treats its customers.

THAT SAID, -twice- in the past, when I have purchased expensive software (about the same cost as the iPhone or more), Apple has dropped the price, and upon doing so, wrote me a Snail Mail telling me they appreciated my business and enclosed was a check for the difference. Unprompted.

I’d like to think that Apple will have the foresight to do that now, and the amount of good will this would result in would more than make it up.

At the moment, I have -one- iPhone. My wife is on the fence. If I get a refund from Apple, she’ll be having an iPhone too (and being realistic, if Apple produces a better version with more memory, I’ll be buying the higher end model for myself).

If I’m to eat the difference because of a single week, I don’t have the right to complain, but I’m going to take it out of Apple’s future sales by not upgrading, not early adopting, not evangelizing, and not buy multiple machines. And, let’s be honest, Apple knows this.

Rebuilding Spotlight’s Index on OS X (Manually)

Got problems rebuilding the Spotlight index on OS X or all you’re getting is an empty list with no files found? Here’s how I reindexed my system using just the Terminal and no special software – turns out there was one small thing that had gotten in the way.

After doing a number of disk clean up and optimizations, I found myself in the circumstance of OS X’s spotlight returning no results. Whether I searched for a keyword in Mail, or by Spotlight using Command-Space, I got no results backs – just an empty list for my troubles.

It turns out there’s a neat utility out there called Rebuild Spotlight Index 2.7 that does all the grunt work for you. Problem is, it didn’t work for me.

What’s going on is actually fairly trivial, and it’s possible to simply do everything via the command line.

The metadata utilities need to run as root, so to see what your drive is up to, you’d enter something like: sudo mdutil -s /

This shows the status on the root volume.

To turn indexing on for a volume, you enter: sudo mdutil -i on /

And, to force Spotlight to rebuild its index, you simply erase the master copy of the metadata stores on the volume like this: sudo mdutil -E /

However, while I did all this, Spotlight was still not building the indexed for me.

Here’s how I solved it, using just the Terminal.
First, I wanted to see the schema file, so I printed it out using to the standard input using: sudo mdimport -X

At the bottom of the schema listing, I say a reference to a schemaLocation, and took a shot in the dark that perhaps that Spotlight’s index rebuilding needed to check data against its schema before it would start. To do that, it might need network access, if not back to the local machine.

And, for good measure, I went to check the date/timestamp on the Spotlight directory using: sudo ls -la /.Spotlight*

While most of the files had the timestamp of when I tried to delete the index, not all the files had the current date and time. Additionally, the file sizes were not growing, a good indication the index was not being rebuilt.

Thinking to myself, “what could be causing network traffic, even internally, not to be working”, I realized that I had just rebooted and PeerGuardian2 was currently active and blocking traffic. This is a great tool for blocking malware and unwanted network visitors, but occasionally it gets in the way. So, I turned it off.

Then, I did the following commands to ensure indexing was on, the spotlight metastore was really gone, and that I wanted it rebuilt:
sudo mdutil -i on /
rm -rf /.Spotlight*
sudo mdutil -E /

The moment I did the last command, this time the system sprung to life, the directory /.Spotlight-V100 was created, and the files inside it were growing quickly. Spotlight on the toolbar showed a progress bar, indicating the system would be done indexing in a bit. The big difference? I turned off the network traffic blocker for a moment.

The Safeway to Apologize

True story — how to abuse a nosy florist.

Recently we went to Colorado to visit my sister who was having her second baby. Our job was to babysit her 21 month old, while she did the hard work at the hospital.

They were very kind in lending us their hybrid van and a baby seat, which allowed us to trek around town without being stuck in the comfort of a custom built home, trapped on mountain with spontaneously visiting wildlife, surrounded by nature and vast scenic panoramic views.

My dad sent an email asking if we could pick up a box of nice chocolate, so that when my sister got home from the hospital, she’d have something to enjoy. Sure, we could do that. Perfect excuse to ride into town.

So, we put the toddler in the van and drove to Safeway.

Now in Colorado, it’s dry. Very dry. So you have to drink a lot of water to stay hydrated. As such, my wife sent me on a mission to get the chocolate, while she hunted down the facilities.

So, I pushed the baby over to the candy aisle, then the cooking aisle, then the checkout counters, …no boxed chocolate to be found.

Then it hit me: try the florist.

As I got near the section, the toddler went nuts as we passed the stuffed animals. However, as we got closer, it was quite clear his real interest was in the balloons. And, since we already had a four foot mylar balloon tied to the shopping cart, I figured I’d head right to the service desk where I abruptly startled a woman cutting flowers that didn’t see me coming.

“Excuse me.”

“Wha?! Oh, yes. May I help you?”

“I hope so. I’m looking for boxed chocolates.”

“Did you try the candy aisle? We sell flowers, here.”

“Yes, I tried that, but no boxed sets. So I thought I’d have better luck here.”

“Why would you say that?”

“Because this is the general ‘apology’ section, is it not?”

She pondered for a moment what I was getting at, and then the image of chocolates and flowers together hit her. “Oooooh!” she smiled, “What exactly are you apologizing for?”

I couldn’t help myself. It was evil. It was wrong.

I looked at the toddler, then back at her, and said: “I thought it was your turn to use the contraceptive.”

…she personally led me to the most expensive boxed chocolates at the front of the store.

iPee

Did I just have the first recorded iDream, because there was an iPhone in it… I wonder how AT&T is gonna charge this conversation. (Read on to see the conversation, which was just as strange.)

True story.

I was standing at a urinal when my iPhone rings. Now, normally I don’t answer the phone while in a restroom, but I was curious as to who was calling me as I haven’t made the number widely public yet. A huge green banner said it was my wife.

It was at that moment I woke up.

Or, more accurately, half-way woke up.

It was the middle of the night, I was under the covers, and when I turned my head, I could clearly see my wife sound asleep, and beyond her, my iPhone sitting in the charger, dark.

Yet, still half asleep, I could still ‘hear’ my iPhone ringing in my dream. Curious now as to what would happen, I decided as an experiment to answer it. I closed my eyes and instantly I was back in the dream in front of the urinal holding the phone.

I touched the answer button, lifted the phone to my face, and crystal clear I heard my wife say, very annoyed at me: “Clearly, you aren’t getting the symbolism here.” And then she abruptly hung up on me.

So, I put the iPhone in my pocket, woke up, and made my way to the rest room.

[Is this the first recorded iDream?]

Dell Inspiron E1505 Mouse Pointer Problem

The cursor on a new Dell Inspiron E1505 laptop with an ATI Mobility Radeon X1400 graphics card running XP Home looks like a vertical bar, not a pointer. Here’s the fix.

Today’s tip comes from John Cook, who reports that upon purchasing a new Dell Inspiron E1505 laptop with an ATI Mobility Radeon X1400 graphics card running Windows XP Home Edition Service Pack 2 (build 2600) and using the “Synaptics PS/2 Port Pointing Device” as a mouse, the cursor appears as a vertical bar.

Unfortunately, there’s nothing on the Internet that tells how to correct the problem.

SOLUTION: The problem is with the hardware acceleration.

Right click the desktop, choose properties, go to the Settings tab, click Advanced, choose the Troubleshoot tab, and slide the slider one notch to the left. Click Ok, then OK.

Hibernate: No Persistance Provider

While working through a code sample in Java Persistence with Hibernate, I ran into a problem where Hibernate was reporting No Persistence Provider. Solved the problem, and it wasn’t moving the persistence.xml file as you’d normally find on the web as the solution.

I’ve been spending a lot of time with Hibernate, an ORM persistence manager.

After ripping Pro Hibernate 3 a new one with a scathing review, I finally have concluded that the best book on Hibernate is Java Persistence with Hibernate, which is revised edition of Hibernate In Action, though you’ll still need to reference the ERRATA for Java Persistence with Hibernate on occasion.

In the middle of page 76 it was time to go build my sample application, and all I got was a strange message that said: javax.persistence.PersistenceException: No Persistence provider for EntityManager named helloworld


Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named helloworld
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

Most of the discussions on the Web lead to the conclusion that the file persistence.xml is missing, or if it isn’t, it hasn’t been placed in the META-INF directory. In my case it was present, it was in the right place, and it was correct. What gives? Seems other people were having this problem as well.

The Solution
Thanks to a szermierz‘s entry on the introductory page An Introduction to Java Persistence for Client-Side Developers, which is actually a great article itself, it got me to question what libraries I had in my classpath, and whether or not that list was complete.

Turns out there was one file he listed that I didn’t have: hibernate-entitymanager.jar.

Looks important, eh?


I easily found a copy in the Hibernate Extensions at HibernateExt\tools\lib\testlibs.
There was also a copy in the Hibernate Tools at HibernateTools-3.2.0b9a\plugins\org.hibernate.exlipse_3.2.0.beta9a\lib\annotations.

Once I placed a copy in there, things worked great. So it’s not just the property file, but the .jar file that needs it.