Tag Archives: LinkedIn

Moving Update: Bright Paint, Higher Bandwidth

I’ve been mum on the whole moving thing for a couple of weeks while we waited for the owner of the building to come back from a foreign trip and… well, actually sign the lease. That accomplished, we had just 11 days to organize an office move, including our office machines, telecom, servers, and a small army of toy robots.

This past weekend was spent stripping an ungodly amount of wallpaper off the new offices, scrubbing gallons and gallons of wallpaper paste off walls (delightful!), and priming, prepping, and painting all the offices in a variety of colors. It was a long, long weekend for all involved, but we got it done. Big props to editor extraordinaire Shiaw-Ling (who turned out to be a pretty darn good painter!) as well as my own folks, who actually spent their entire vacation—on purpose!—helping out.

The end result? The sedate former law office now looks like the home of a hip Swedish design firm—or maybe a new exhibit wing for the Tech Museum. Either way, it’s going to be a lot of fun to come into work there.

Another really good thing about the new location: we’re mere blocks from the origination point of Covad’s wireless T1 service in San Jose, allowing us to double the bandwidth of the Atomic Avenue and ComicBase sites without breaking the bank (as would have been the case with bonded T1s). I’ve just run some initial speed tests at the location, and it looks encouraging indeed. To tell the truth, I’m getting as excited as a kid before Christmas just thinking about what we could do with that extra speed.

Moving day is Monday the 28th, and both ComicBase and Atomic Avenue will be down for some period while we move gear to the new location. Wish us luck!

Moving Day Approaches…

We’ve signed a lease at a new office, but just as we were shopping for desks and furniture, I got a call from my realtor to let me know that the owner of the property had just left for an overseas trip and will be unreachable for two weeks. As such, we can’t really start the preparations to move in yet.

Argh. More on this later assuming we manage to actually conclude the lease signing (on both sides!) without any further drama…

The New Office Search is On!

With our lease coming up at the end of May, and the landlord looking for a 33% increase in rents, we sort of thought we’d be looking for new digs about now. Today, I toured several new potential locations for Human Computing’s new home, with decidedly mixed results.

The first place was described as “industrial loft/creative space” and the photo showed a long shot of a rather handsome brick building. It also pointed out that the offices were adjacent to Gordon Biersch’s headquarters, complete with a shot of their front door. Now, I’ve always had a soft spot for dotcom-era lofts decked out with lots of aluminum and glass and funky lighting, so I was actually sort of excited about checking the place out. After all, lofts are basically big open spaces that you can do almost anything with.

Unfortunately, the picture in the ad turned out to be of the building next door(!). The actual building for lease was marginal at best downstairs (lots of trading companies and a glass-blowing studio), but upstairs–a long climb with concrete steps–was a disaster. In the middle of a beautiful San Jose spring day, it was dark inside, with a flickering flourescent bulb lighting the end of a narrow, dark hallway. Presumably, the decrepit wooden doors would have opened up into some sort of warehousey-loft areas, but it was all too easy to imagine a crack den and/or finding the evidence necessary to solve San Jose’s unsolved murders from 1992–present. And all at the low low price of $1.50/SF!

We had better luck downtown, where one building (which we nearly settled into two years ago) featured two plausible office suites, and a second building, located just two blocks from Adobe and a block from The Tech, was really promising. I’ll be taking family and staffers on a field trip there (hopefully tomorrow) to see what they think, but I could definitely see that one working out. We’ll see…

The Customer Isn’t Always Right… But the User Is

Today, as I labored mightily to get a usable ComicBase 12.1d1 out the door, a frantic email came in from a very upset customer. This same customer had earlier found a way to embed tab characters into their issue notes by the ingenious application of cut and paste from other web sites, and I’d spent part of Friday figuring out how it was that they’d managed to concoct a sales file which Atomic Avenue couldn’t process. In fact, one of the items on my day’s “to do” list was to put in a fairly simple fix to make sure that no future user could ever duplicate that user’s feat.

Now, on a Sunday where I was cooped up in the office sucking down coffee by the quart while I tried to figure out various currency conversion issues for ComicBase, the customer’s email flickered onto my screen demanding immediate action as the customer claimed ComicBase had somehow wiped out all their data.

“Alright, calm down… ” I was thinking. “She almost certainly just opened the wrong database by accident and is freaking out because it looks like all her work disappeared.” This has been a periodic problem that crops up a couple times a year ever since we made it possible to work with multiple databases. Basically, the customer starts working in one database, forgets that they were doing so, then does something to reset their preferences (or simply clicks on the wrong database file) and has an immediate heart attack when the data they’d slaved over entering appears no longer to be there.

I dashed off a quick note to that effect to the user, and a moment or two later regretted the somewhat rushed tone of the email. To make amends (and to more completely explain the scenario so that future users who managed to get themselves into a similar fix could find help on their own), I quickly wrote out a “Tip of the Day” on what serves as our in-house knowledgebase.

“Everything’s going to be fine” I thought, “so long as she wasn’t doing something stupid like working from their backup copy, then saving over it with a blank database while they thrashed around looking for the database she’d been working in.” This was the one worrisome scenario which could ever come up and cause a ComicBase user to lose work, and I’d written any number of newsletter, forum, and email posts warning folks never to do it. I made particular note of it in the Tech Tip so that I could point to it in posterity (or my successor could point it out after I passed out at my desk from too many Vente Mochas).

Naturally, this is exactly what the user in question had done, and although she’d only lost a few hundred books’ worth of data in the process (and I’d even offered to get much of her data back from Atomic Avenue), she was well and truly ticked off, and wanted a refund.

Here at Human Computing, we have an almost absurdly lenient refund policy. To wit: if you’re not amazingly happy with ComicBase, we’ll give you your money back—end of story. We don’t have a big involved RMA process for doing so, since even with this policy in place, we generally only get one or two refund requests per year—that’s less than 30 over the 15-year history of the company. Is it because we write perfect software? I’m afraid not. But our tech support is second to none, and we can usually help with just about anything that goes wrong—even if it’s a Windows issue, computer failure, or just something bizarre that the user did.

In this particular case, the user had done a number of wrong things, the most tragic of which was saving a “blank” database on top of their work, and not keeping any other sort of offline backup. From the sound of it, she even panicked and saved over the automatic backup that the program makes.

So was the user unreasonable to demand want an apology for a problem that she’d almost certainly caused? Yeah. Did she send about a dozen emails sniping at a guy loaded with coffee who was bending over backward on a Sunday night to help her recover from the problem? Yes again. And in the end, she wound up rejecting any further offers of help, and I quickly gave her a refund for her full purchase price ($49.95). I felt miserable.

I know a software company where the policy on tech support is that if the user can’t follow the single page of instructions to install and set up the software, they are asked to simply box the whole thing up and send it for a refund—just so the company can “fire” the customer and save a fortune in future technical support. In my darker moments, I envy this company.

But although I don’t believe that the customer is always right, I believe that the user of a software program is. If the user does dumb things, enters invalid data, abuses the program, and just generally does everything in his power to shoot himself in the foot, it’s ultimately my problem—not theirs. There are limits to what can be done, but—little by little—we try to make sure that we change the program in a way so that future users don’t run into the same difficulty. As ace programmer Joel Spolsky (Correction: It was apparently actually Dave Winer) famously said, consumer software is a game of inches. Each tiny improvement to the fit and finish of a piece of software helps someone. Add enough improvements up, and you’ve eventually got a world class product.

Before returning to the currency conversion problem at hand, I took some time and tried to brainstorm a solution to prevent especially persistent folks from accidentally recreating the exact, convoluted scenario which had cost me a customer tonight. Maybe the code I wrote to prevent this will never actually be triggered by an errant user’s efforts…or maybe it’ll save someone from wiping out their work. When 12.1d1 finally gets built–probably in the wee hours of the morning at this rate–it’ll also go out with the “No embedded tabs in the Notes field” fix which went into the code earlier today.

Here’s to moving the ball a few more inches in the right direction…

Adventures in High-Definition

Well, the previously mentioned Big Freakin’ TV showed up right on schedule, and so far, it’s all I could hope for. It’s huge, was simple to hook up. It’s even fairly svelte–about 9″ deep at the lowest point, and despite its size weighs in at about 70 pounds once it’s unboxed. There’s also no sign of the “high pitched whining” some users of this TV had complained about. Best of all, the picture is gorgeous–especially when viewing HD broadcasts or (even better!) a Blu-ray movie. I thought my Dell lash-up was pretty spiffy before, but this new rig puts it to shame.

There were two reasonably major problems, however. First, my receiver (a Panasonic) lacked HDMI inputs–not to mention an input-selector knob since we managed to shear it off by slamming it with the sliding glass door to the my stereo rack. More importantly, it apparently felt intimidated by its new neighbor the TV, and decided without warning to go from being a stereo receiver to a mono one with the left stereo channel going out entirely. 45 minutes of connection-checking later, I concluded that the left side amp was kaput.

Anxious to get the TV up and running in full surround-sound glory, I decided to drop $200 down a the local Best Buy to pick up a Sony STR-DG510 receiver. I can’t claim to love its display or interface, but I certainly appreciate the sheer amount of technology in the receiver. In addition to HDMI inputs, it adds two or three types of new theater decoding (Dolby Pro Logic II, Dolby Surround EX, etc.) as well as a very nifty system for auto-configuring your surround speakers. Basically, you just sit where you’d normally be in your living room holding the supplied microphone, then the system blasts white noise from the various speakers and automatically adjusts the relative gain levels and calculates the distance delay that Surround signals should have in order to keep the whole thing in sync. Neat!

Unfortunately, this particular receiver also seems to have some oddities regarding the use of HDMI inputs. To wit: video comes across fine, but instead of hearing sound, the receiver shows the cryptic message “Unlock” — a message which appears nowhere in the 70 page user guide. Browsing the internet, however, it seems that for whatever reasons, the receiver does not allow Audio to pass through the HDMI cable, but instead only accepts digital audio if you hook up the separate optical or coaxial cable from your device. There’s definitely some sort of story here, since the HDMI cable should be able to handle both video and audio through a single cable…but at this point, I’ve decided to just play along and string the extra cables. If anyone can shed light on this weird behavior of the receiver, please let me know!

…Now I just need to drop $150 on a Harmony remote so I don’t need to use three different remotes just to watch TV…

The HD-DVD/Blu-ray Format War: All Over but the Crying

From Engadget:

http://www.engadget.com/2008/02/16/toshiba-pulling-the-plug-on-hd-dvd-already/

If the Reuters/NHK report is accurate, now is probably a good time to put your HD-DVD player up on Craigslist (and hope they convert Heroes to Blu-ray soon!).

Good news: the format war is over. Bad news: it took about five years too long. Thanks, guys!

Update 12/19: It’s official: HD-DVD is dead. Toshiba just announced they were pulling out of the HD-DVD business.

Scaling up by Downgrading?

Is low-end SQL Express 2005 the way to go for a heavily trafficked site? OK, I know. The question sounds daft, but hear me out.

Right now, Atomic Avenue (and ComicBase.com for that matter) use SQL Server 2000 as their back-end database. Like most databases, the bread and butter of the whole thing is garden variety SQL: SELECTs, UPDATEs, etc. using the requisite JOINs, stored procedures and whatnot, along with the occasional subquery, and—I think once or twice in the entire database—something really avant garde like a temporary table. The point is, we make use of basically none of the high-end features that Microsoft has been stuffing into SQL Server in the past few versions to try to sell to the “enterprise” market.

What we do make use of is connections—lots of them. And that’s where we’re starting to get into trouble. See, you don’t just pay Microsoft a couple of grand to use SQL Server, you pay a couple of grand to use SQL Server on one machine, with up to five simultaneous connections going. If you want more connections (and believe me, you do), you have to spring for something called a “CAL” — Client Access License, which permits your server to keep more than that number of connections open at once. These CALs come in “packs” of five, ten, twenty five, etc. and cost about $162 per connection license. Need 25 more simultaneous client connections on your “SQL Standard Edition” server? That’s a cool $4,050 on top of the initial purchase price of $1,899. And remember: that’s for one server.

Being the kind folks they are, Microsoft also offers the option of skipping all this CAL business and just licensing SQL Server for a fixed amount based on the number of processors on your server machine. An SQL Standard Edition license by processor runs $5,999—so that’s basically $12,000 if your machine has two processors. But heck, at least that’s better than the Enterprise Edition of SQL Server 2005: that baby runs $24,999 per processor. Imagine: $50,000 to run a single piece of software on one machine. I’ve just depressed myself utterly by realizing that a copy of ComicBase sells for something like 1/10th of 1 percent of that. We’re definitely in the wrong end of the software biz!

The only good news in this scenario is that connections go surprisingly far if your site is programmed halfway properly. Typically, you can open, service, and close connections in well under a second, allowing a relative handful of connection licenses to handle the connections generated by thousands of typical users without too much waiting around for a free connection to open up. Still, as Atomic Avenue’s traffic continues to grow, I’m getting concerned about lack of available client connections becoming a problem.

The obvious way to handle the problem is to just throw money at it and pay Microsoft for ever-more licenses. When I think of all the giant Alien statues and toy robots we could buy for the office with that same money, however, I’ll admit I have to think twice before reaching for my wallet.

One intriguing alternative is that we might be able to solve the problem by actually downgrading our production servers to the new “Express” version of SQL Server 2005. This version was introduced to compete with free databases like MySQL, and brings virtually all the features of the full versions of SQL Server to the table, but with no cost for the application, and unlimited client connections. The catch? Microsoft hobbled the server by limiting it to handling databases of 4 GB or less; the server can only make use of one processor (but as many cores as it wants); and it can only use 1 GB of RAM for the buffer memory.

Of these limitations, frankly, the memory one gives me the most pause, but it definitely seems worth checking out. I think there’s at least the chance that we may be better off going down to the free version, than by throwing untold thousands at the folks in Redmond. (And if this doesn’t work, we also have the option of rewriting the back-end database in something like MySQL anyway, although that would be a major project to say the least).

I just got our new quad-core database server racked up and ready to go using SQL 2005 Express. I’m not really getting my hopes up, but I’ll let you know what I find out… (And if any of you have experience in this area, by all means write and let me know what you discovered!)

[digg=http://digg.com/microsoft/Is_the_free_version_of_SQL_Server_better_than_the_paid_one]

Confused About Processors

For the first time in as long as I can remember, I’m utterly at a loss as to which processor is faster—or whether buying a server with a new processor (or even multiple processors) will make the slightest bit of difference in terms of overall performance of our web site.

Back in the day, it was easier to say whether a new processor would be faster than an old one: just look at the clock speed. 1.6 GHz smoked a 800 MHz processor; 2.4 GHz was better still, and 3.6 GHz was the best you could buy. But then heat factors put an end to simple clock speed races and Intel and AMD turned to multiple processors, multiple cores, different piplelining schemes, and so on.

I’ve heard the advice that multiple cores and processors are essentially worthless unless you’re running a machine specifically geared toward using the multiple cores. But how then, is a 2.4 GHz Core 2 Duo noticeably outperforming my 3.4 GHz Pentium at most regular desktop work—none of which (that I can see) has been optimized to work with two processors?

Then there’s the question of our web servers: when running Windows Server 2003 and IIS 6, is there any advantage at all to upgrading our 3.0 GHz Xeon processor-based servers to whatever the top-of-the-line offerings from Dell or Supermicro are? So far as I can tell, the major bottlenecks for web servers are bandwidth (not immediately upgradeable), disk (we’re already running fast SATA drives in RAID configurations), and only then the processor speed. That said, kicking off compiles in ASP.Net does feel kind of slow to me, and I’d be willing to throw some cash at solving the problem…but I’d have to have some assurance first that throwing cash at it would actually make a noticeable difference in some metric I care about (# of web requests serviced, compile speeds, etc.)

Ideally, what I’d like to have a sense for is, “If I spend $X to buy Y, my <something I care about> will run Z% faster than it does now.” Several nights spent googling around on this score really haven’t yielded anything enlightening. I’ll admit it: right now, I’m at a loss.

Can anyone with real-world experience on our brave new world of processors kick in some words of wisdom on this subject?

Acronym Watch: SSD

It stands for Solid State Drive, and it’s my guess that this will be the year that it becomes a commonly used term in tech—if not yet a commonly used technology in our computers.

Basically, it means replacing the hard drive in (usually, a notebook) computer with a device which uses flash memory attached to an SATA or IDE interface, and fits in the same form factor as a notebook drive. The main advantages are speed, silence, and minimal power draw. Plus, the drives are nigh-indestructible, providing you don’t dip them in the pool.

Right now, it’s pretty much a boutique technology, but that’s changing awfully fast. A low-end SSD can be cobbled together using a $21.95 Addonics 2.5″ adapter and a couple of CF cards. At the higher end, Toshiba announced an SSD with a whopping 128 GB of capacity, albeit at a yet-to-be-disclosed price, topped by BiTMICRO’s CES announcement of drives of up to 832 GB capacity in the fall. Apple’s also offering a 64 GB SSD drive as a (pricy!) option in its new MacBook Air.

High-def Format Wars, Animated Cats, and the PS3

At this moment in time, it looks like Blu-ray has a leg up in the high-definition video format wars, particularly with news that Time-Warner had decided to switch to the format, and rumors afoot at CES that Universal and Paramount may soon follow. That said, I suspect all of us would rather declare somebody the winner so we could all enjoy better-looking movies at home without worrying we bought into the wrong format.

In addition to the “big war” of HD-Video vs. Blu-ray, however, it turns out that the manufacturers, in their wisdom, have also added a bunch of new interactivity features to each format—and now there’s concern that disks designed to use the features specified by the later “Profile 1.1” or “Profile 2.0” version of the Blu-ray format won’t work properly on players built around the earlier version of that spec.

Two things struck me about that article. First off, it’s apparently a good idea to buy a player which can be upgraded by flashing the firmware to add new capabilities. (I’d claim to be prescient in this regard, but to be honest, I really bought my PS3 to play Guitar Hero III and Rock Band—Blu-ray movie support was just a nice extra for me when making the purchase decision).

The second was how fantastically unexcited I am about the Java-based “interactivity” features which both the Blu-ray and HD-Video camps are willing to risk so much market confusion over. In my life, I have a pretty much perfect record of regretting the minutes I’ve spent with any client-side Java application, whether it involves animated cats jumping around in my browser, or some “interactive” feature launched by pressing the wrong button on my TV’s remote control. It’s always possible that someone will come up with an application which makes us all into believers on this score, but I haven’t seen it yet. I hate to say it, but when I’m watching a movie, I pretty much want to…well, just watch the movie. Sound and picture matter a lot to me when I do that. Interactive jumping cats…not so much.

But hey, since I’m currently doing my high-def movie-watching on a PS3, I guess I’ll likely be able to get my bouncing cats too. Yay.