Author Archives: admin

A test

If you don’t get this, you’re either slightly younger or slightly less geeky than me.

Now, that’s service!

I just had another good customer service interaction. Excellent, actually.

Last night, I ordered some bookshelves online from Staples. Before I ordered, I happened to notice a $75 off coupon for any online order of $290 or more. But I forgot to add that when I placed the order.

Today, I thought, hey, why not try getting them to add the coupon after the fact? (I couldn’t modify the order directly as it was already being processed).

I found the link to a live customer service chat pretty easily, gave them my story, and they immediately credited me the $75+tax. Yay, Staples!

  • First, $75 off is a nice coupon.
  • Having a link to a live chat for customer service, and making it easy to find, is great for a guy who doesn’t like to use a phone for such things.
  • Answering the live chat connect request within 20 seconds is better than expected.
  • Immediately crediting me when it was really my fault and when the order was already being processed is just ‘wow’.

Me likey.

Overstation

Isn’t interesting that when people say “X cannot be overstated”, that statement in itself is surely an overstatement? And while we’re on the topic, the less said about “…, literally.”, the better.

Almost overflowed

I wish my Java debugger could catch an AlmostStackOverflowError. Catching the StackOverflowError is nice and all, but when I go to try to see the values of variables in the stack frames, I get errors that I presume are because there’s no stack left to evaluate the values. I’d sorta think that evaluation would be done somewhere outside the overflown stack anyway, but then, I don’t really know a thing about Java debugging internals, I just know when I’m stuck…

A/B

Have you ever had the situation where there’s a song A, and a cover version B, where B is quite a bit better than A, but because you’ve heard A a lot more often than B, whenever you hear or think of B, A sorta takes over in your mind, and you get annoyed, so probably the only thing you can do is listen to B a lot of times, even if you don’t really love it _that_ much, just so that you can wipe A out of your mind? c.f. “How Deep is your Love” by the Bee Gees and The Bird and the Bee. See what I mean?

Lazy load is a lie

One of the systems I’m working on uses LCDS Data Management and Hibernate to communicate between a database on the server and a Flex client. We’ve, uh, learned a lot. I don’t think I’d do it this way again, were I to choose (‘course, I didn’t really choose in this project, either).

We’ve had a lot of problems due to what is conceptually supposed to be a simple matter, that of lazy loading. Even overlooking the fact that lazy loading is not very transparent on the Flex side, there’s the question of how to distribute those lazy flags. And it’s my contention that in a complex data model with lots of interdependencies and lots of different data use-cases, it is very hard to answer that question. Too many lazy properties and you’re making all sorts of round trips across the internet (and lemme tell you, some of your customers may have ping times way worse than you do when you’re testing these things. Way, worse.). One too few and you’re sucking in the entire database in the midst of one property access.

Ah well, whatever.

Working together

The process of working well together to create some useful artifacts can be pretty beautiful. Converging on an understanding, refining the artifacts and passing them around for inspection, making a bit of progress then cementing it in place, growing a collaborative process that endures with or beyond the artifacts, accumulating individual experience, shaping stuff to the world and the world to stuff…

Cryptic error message

Since my blog occasionally gets responses to posts that I never thought would get responses, eh, why not try this:

If you know anything about error messages of the form:
[Flex] 10/12/2008 12:26:03.387 [ERROR] [Service.Data.General] Attempt to subscribe to out of range sequence: 5 clientId: 55481919-5415-BB76-E833-F2176FB1E566
Please help me figure out what it means.

🙂 Thanks.

You may not be an elite *nix hacker if:

you spell ‘chron job’ instead of ‘cron job’…

Though it’s interesting that the Google spelling test gives the results:
about 828,000 for “cron job”
about 4,730 for “chron job”
Does that mean you’re more elite for spelling it wrong?

Marketing

I’m working out a new marketing strategy for my software consulting business. It’s so obvious that I don’t know why I haven’t done it before, but, y’know, you live and learn. Here’s an excerpt from a pre-sales meeting I just had:

Cust.: “We basically need a way to link our existing order database to our new software and not lose any continuity.”
Me: “Well, y’know, when I was a kid, I’d play my NES quite a bit, so I know my way around this sort of maze, with a Visual Basic, there’s probably a terabyte that you’d have to, and when you denormalize, some of those would be hard, but we’re ready, because it’s all about continuity, of.”
Cust.: “Great! Do you have a plan in mind of how you’d implement this?”
Me: “Y’know, I’m just like you, I don’t know a for loop from a read head…”
Cust. (laughing): “Yeah, yeah!”
Me: “… so, I’ve read all the manuals [winks] and there are a lot of ways to do this, like when our sons were playing each other in that soccer game, wasn’t that a hoot, you just have to keep scorin’ goals.”
Cust.: “OK.”

I read that “OK” as “I feel like we’re really connecting here, and by extension, I’m sure that you’re quite capable of executing the complex technical requirements of this job in a timely and efficient manner”. I’m pretty sure I’ll close the sale…