Stories from Sony (Part 6)

April 25, 2004 at 10:41 am (PT) in Personal

Miscellaneous happenings:

  • Sony had a very restrictive Internet proxy server; it didn’t allow ssh, newsgroup access, or instant messagers (AIM worked eventually, though). I had the “bright” idea of resorting to a dial-up ISP with my second phone line. (I split a cubicle with someone else. There was a telephone line for each of us, but we shared one instead, giving us one extra.) Of course, businesses don’t have flat-rate local calling plans like residences do, which isn’t something I realized until after I had racked up many hundreds of dollars’ worth of telephone charges. Oops.

  • One day, on my way to the bathroom, I overheard part of a telephone conversation: “Sony. S-O-N-Y. Like the televisions.” I could only wonder what planet the other person was from; who hasn’t heard of Sony?

  • Sony provides an emulator for the CLIÉ handheld. It’s based off of PalmSource’s standard Palm OS Emulator, which is licensed under the GNU General Public License (GPL). For anyone not familiar with the GPL, the gist is that any derived work must have its source code available. (This is a gross oversimplification for a number of reasons, but it’s close enough.) Sony sometimes was delinquent at providing the source code. (Developers want tools available yesterday; GPL zealots say nothing should be provided without source. There’s no pleasing everyone.)

    Eventually, one of my worst fears came true and someone submitted a story to Slashdot about the lack of code. We were used to receiving hate mail, but were we prepared to deal with a gajillion emails from angry, GPL-crazed Slashdot readers?

    We received only one email about it. The complainant didn’t even understand the GPL all that well.

  • After too many incidents of rolling into work at around noon-time, my manager instituted a policy: If you can’t make it in by 10:30 AM, don’t bother coming in at all. Uh, so rather than showing up late and putting in 8+ hours of work, I should take the entire day off from a job I hate? Okay.

  • I wasn’t there for this, so this is second-hand information: apparently, after I left Sony, they almost hired another person named “James Lin” to replace me. Bizarre. Some cheap Chinese knockoff, no doubt. I wonder if they would have tried to pass him off as me in emails. (Not that Sony didn’t have enough James Lins working for them already; Sony’s silly Microsoft Exchange mail server regularly got confused and sent me mail intended for other James Lins.)

Incidentally, for anyone who ever wanted to know about the meaning and design of Sony’s “VAIO” name: The Origin and Philosophy of VAIO(R) PCs. The “VAIO-let” color scheme is a clever touch.

Somehow, though, I don’t think that kind of thought or ingenuity went into the oft-mispronounced “CLIÉ” name.

Stories from Sony (Part 5)

April 24, 2004 at 3:02 am (PT) in Personal

My official job title at Sony was “Developer Technical Support Engineer”. I answered programming questions from third-party software developers.

For some reason, I expected programmers to be smarter than the average bear. At the very least, I expected them to know how to ask reasonably intelligent questions, since programmers are on the other side of the fence when their own users submit questions and bug reports.

Boy, was I wrong.

We received a number of emails that looked like:

FunctionFoo() doesn’t work.

to which I’d have to reply with:

Thank you for reporting this issue to us. However, we are unable to reproduce your problem; to speed up our investigation, please provide more information about:

  • what specific model you’re using (Sony has a lot of models)
  • whether you’re using a physical device or an emulator
  • exactly why you think FunctionFoo() doesn’t work (what do you expect to happen, and what actually happens?)
  • exactly what arguments you pass to FunctionFoo()

Please provide a snippet of code to reproduce this problem if possible.

(Actually, I usually was a little less polite.)

Even when people did submit code snippets, for inexplicable reasons they too often thought it was easier to retype their code rather than to copy-and-paste it, hence introducing new errors into their code or sometimes removing the actual ones.

In retrospect, it’s not too surprising we received the sorts of questions we did. The smart people usually were able to solve their problems on their own. They also knew that Sony’s technical support services had an abysmal reputation and to avoid them at all costs.

Stories from Sony (Part 4)

April 23, 2004 at 2:54 am (PT) in Personal

In the aftermath of the theft problem, Sony forced all of its contractors to take an ethics test. We had a choice between taking an hour-long online test or spending two hours in an ethics training class. I chose the test.

It turned out that the “online test” wasn’t online at all; it was a program that ran off of a CD. One of my coworkers explained it to me:

“How will the company know that I took the test?” I asked.

“Your boss will sign you off on it.”

“How will he know that I took the test?”

“You’ll tell him so. If you want, you can save an hour by just saying that you took it.”

Well, being the ethical person that I am, I wasted an hour of company time taking the test anyway. The whole concept of an ethics test seems pretty stupid to me. Wouldn’t unethical people just cheat? Sony’s test was particularly dumb; the questions it asked were all black-and-white, it was always obvious what answers the company wanted, and the questions were mostly about legal issues, not ethical ones.

Stories from Sony (Part 3)

April 22, 2004 at 12:30 am (PT) in Personal

There was an incident at Sony last summer where someone was fired for stealing equipment from work and selling it on eBay. Apparently he sold:

  • complete systems built with parts from testing machines
  • device accessories (PDA cradles, notebook docking stations) that had been lying around in quantity
  • pirated DVDs that he copied with company equipment

I don’t know the exact details to how he was caught, but the rumor was that he sold a pre-production unit of an old model, that the buyer took it to a service center for repair, and that the service center identified it and discovered the shenanigans.

Sony’s security department monitored him (and probably everyone else) for a while and uncovered his other auctions. After security collected enough evidence, management finally clued the rest of us in on what was going down and on his imminent termination. That night, an eBay user named “sonysecurity” was the high bidder on one of his auctions.

The next day, he was curiously absent from work. (They did find him eventually.)

Several other people involved with him also were fired shortly afterward.

Stories from Sony (Part 2)

April 21, 2004 at 1:22 am (PT) in Personal

Some CLIÉ handhelds have a feature that lets them behave as universal remote controls. One day, one of my coworkers and I went to Fry’s Electronics to test them with various brands and models of televisions, VCRs, and DVD players. (For obvious reasons, the only A/V devices we had at work were made by Sony.)

Whenever we found some device we couldn’t control, we’d write down the manufacturer and the model number. After a short while, a plain-clothes Fry’s security guard approached us.

“Do you work for us?” she asked.

“What?”

“Do you work here at Fry’s?”

“No, we’re from Sony. We’re testing these devices.”

“Do you have approval from the store manager?”

“No.” (Note: if someone asks if you have prior approval, always say yes.)

“You can’t write down prices without approval from the store manager.”

“We’re not writing down prices. We’re writing down model numbers. See?” We showed her our notes.

She consulted with someone else with her walkie-talkie. “You can’t do that either.”

“So if we were consumers, and we wanted to compare prices, what are we supposed to do?”

“Memorize them if you want, but you can’t write them down.”

“Uh-huh.”

Fascists.

(Someone later explained to me that manufacturers and retailers have agreements that prohibit retailers from selling below a certain price, and everyone knows that Fry’s is no stranger to shady business practices. (Telling the guard that we were from Sony didn’t help.) This also explains Fry’s newspaper ads for items from “name-brand manufacturers”.)

Stories from Sony (Part 1)

April 20, 2004 at 12:19 am (PT) in Personal

Now that I have a new job, I no longer need to worry about bad-mouthing my Sony references. (Ha, just kidding.) Regardless, it’s an out-with-the-old, in-with-the-new kind of time, so over the next few days I’ll try to recount some stupid Sony stories:

One of my coworkers wanted to buy a “game enhancer” for his PlayStation so he could play imported games. (Such devices also have less legitimate uses.) Another coworker told him about a store nearby that sold them, so we stopped by there after lunch one day.

“Hi, I’m looking for a ‘game enhancer,'” my coworker asked.

“Sorry, we don’t have any,” the clerk nervously replied.

“You don’t? Well, are you expecting to get any more soon?”

“Uhh… no… They didn’t seem very… reliable, so we stopped carrying them.”

“Oh-kay….”

As we left, my coworker asked me, “Did that guy seem to be acting a little weird to you?”

Then we realized that his Sony ID badge was hanging prominently around his neck.

My right-brain will hate me forever.

April 19, 2004 at 5:16 pm (PT) in Personal

Well, I officially have accepted the UI Engineer position at VMware. I still feel lousy about declining the Application Engineer job from the Palm OS startup Tapwave.

All of the logical arguments favored VMware—better compensation at a more stable, well-known, and proven company that would give me more marketable skills. On the other hand, I’ve wanted and waited to work at Tapwave for months; I was a very good fit for their job, it was familiar territory for me, I had much more confidence that I could do it, and it seemed like a fun company.

Last week, I focused on the logical arguments to make my decision, ultimately trading short-term happiness for long-term benefits. Now that I’ve decided and am about to start work next week, the anxiety of entering totally new territory at VMware is kicking the right-side of my brain into high gear. I’m second-guessing myself. I feel like I’m throwing away the months of waiting and what knowledge I gleaned from the past three years at Sony.

I’m also going to miss Tapwave’s dog.

Sigh. Jennifer Feng thinks I’m a hopeless romantic, longing for things that might have been.

I suppose I’ll just see how everything turns out when I actually start work.

When it rains, it pours.

April 14, 2004 at 3:45 pm (PT) in Personal

After six months of relaxation, unemployment, and waiting for a job offer, I now have two in the pipeline.

I should be excited. Instead, the ordeal of choosing is putting me through agony.

They’re both good jobs. Had I received either offer a few weeks ago, I would have accepted it in an instant. With two simultaneous offers, though, I’m completely bewildered. I didn’t interview at both companies at the same time either; I interviewed at one in January, but it’s a startup and didn’t have the funding to hire me at the time. Even stranger, I sent both companies my résumé last year, and they both promptly ignored it. Things have a funny way of coalescing.

I feel bad because I don’t want to reject either one. I feel even worse because these days, there are plenty of people who would sell their mother to have one job offer, let alone two.

Stupid conscience.

Programming responsibility

April 12, 2004 at 8:08 pm (PT) in Programming, Rants/Raves

I’ve recently spent some time looking at the source code to several open-source projects.

I am appalled.

Here’s a sampling of what I’ve encountered:

  • Buffer overflows. I cannot understand how C programmers continue to use gets, strcpy, and strcat when fgets, strncpy, and strncat are available. This isn’t that hard. (The C standard library shares a lot of blame; it never should have provided the unchecked versions, and it at least should have given gets/fgets and strcpy/strncpy consistent behaviors. strncpy and strncat aren’t as easy to use as they ought to be, either.)
  • Unchecked errors. Writing error-checking code is hard and a lot of work, so apparently some people decide to forgo it altogether. Woe upon the user.
  • Illegal language usage. Apparently a lot of people think it’s perfectly legal in C or C++ to name identifiers with a leading underscore. Often it’s not. Although in practice a namespace clash is unlikely, identifiers with leading underscores can intrude into the compiler’s namespace.

    I’ve also argued (unsuccessfully) with some people who recklessly invoke undefined behavior.

  • Unmaintainable code. I suppose that I naively hoped that How to Write Unmaintainable Code was a work of fiction, but yes, Virginia, there are magic numbers. It’s odd that so much open-source code has poor documentation, sparse comments, and cryptic function and variable names. What’s the point of publishing your code if it’s unreadable?
  • Inconsistent styles. More readability and maintenance problems stem from projects that lack strong core leadership.

What’s the big deal? The obvious problems are software vulnerabilities and broken software. I think that there might be a deeper problem, however.

Code begets code. Many people learn how to program by looking through other people’s code, and publishing bad code makes it too easy to propagate bad habits and to produce lousy de facto standards. Worse, people might copy-and-paste bad code outright. Yes, it can work the other way too; good code can be a paradigm for others to follow. Unfortunately, the sheer quantity of bad code available makes good code a needle in a haystack. Saturating the planet with immature software projects is not a step forward.

As potential pedagogues, open-source developers ought to be held to a higher standard. Unfortunately, reality offers a contrary opinion. A recent study indicates that email is more likely to be ignored when there are more recipients; are similar factors at play in the programming world? Does the nature of open-source code—where there’s a lack of accountability and where anyone can look at and change the source code—encourage its developers to shirk their responsibilities in the hopes that someone else will clean up their mess? Or are programmers in general just too lazy, too unskilled, too ignorant, or too apathetic? (I’m admittedly not a very experienced programmer; I lack design experience in particular. If nothing else, though, I’m meticulous (so Jeff Wong says) and consistent, and I make a conscious effort to be responsible with what I write!)

(Before anyone gets the wrong idea, I am not an opponent of open-source software. I’m picking on open-source code mostly because closed-source code isn’t available to be criticized.)

Star Wars predictions

April 1, 2004 at 11:59 am (PT) in General

So everyone knows that Star Wars: Episode III is going to suck and blow harder than Charybdis. Episode I, Episode II, and Lucas’ butchering of the original trilogy certainly don’t provide much evidence to the contrary. (Han shot first, damnit.)

Not only will there doubtlessly be poor dialogue and worse acting by the main players, but we already know the plot. We know where Episode II leaves off and where Episode IV begins; we only need to connect to the dots. Yawn.

“Help me, Obi-Wan Kenobi, you’re my only hope.” or “I find your lack of faith disturbing.”

But maybe there’s a way to salvage this mess. What if we don’t know what we think we know?

For example, everyone is expecting Anakin to become Vader. What if he’s not? Perhaps Vader is a clone of Anakin. This could explain a few things:

  • The stupid midochlorian plot element of Episode I. It could have been written in as a (lame) way to get a blood sample from Anakin sent off to Coruscant.
  • How Vader was unaware that he had children. Perhaps they weren’t his but instead were the original Anakin’s.
  • Obi-Wan’s lies and half-truths from different points of view. Maybe Vader really did kill Luke’s father.
  • Why Emperor Palpatine, while speaking to Vader in The Empire Strikes Back, refers to Luke as “the son of Skywalker”.

Or it could be the other way around, and a clone of Anakin sires Luke and Leia.

Of course, it’s far more likely that Episode III is going to be another boring piece of trash with nothing substantial to add. I can dream, though…

(“Nerrrrrrrrrrrd.”)