sp_helprotect, not sp_helpprotect … can’t anyone at Sybase spell?!

So, this morning I had to find out what privileges had been granted on a
particular stored proc in Sybase and for the life of me, I couldn’t understand
why sp_helpprotect was giving me the 2812 “stored proc not
found” error message. Finally, I found this page which reminded me that the name of the stored proc is actually sp_helprotect!

Can’t anyone at Sybase spell? I ran into this exact same problem only a month or two ago with RAISERROR … I wasted a good hour until I realized that it wasn’t spelled RAISEERROR, like you would expect it to be, if you could spell.


I should be fired

I sit on a lot of things that I want to post to this blog. I generally
keep them flagged in my feed reader so I can get to them easily, under the guise that I’ll actually get around to posting them. But, I never do. Sometimes, it gets to the point where I give up, and I just unflag it–sometimes I’ll bookmark it and the link will post in my weekly del.icio.us wrap-up that gets posted to the blog. However, this one required a posting since the source material I’m referring to is audio and I don’t expect everyone to sit and listen to it. So, I’ve finally sat down and transcribed it and now I’m posting it.

Back in the beginning of March 2006, Jason Calacanis was interviewed at BarCampLA for the Tech Conference Show podcast. If you do have the time, you can listen to it yourself: MP3 (24.5 MB, 35m 41s). I’ve gone and transcribed the portion of the podcast that really stuck with me, which was the segment between 28m 36s and 30m 35s:

We had a big philosophical rule at Weblogs, Inc., which was, anybody who was
negative, a downer, not a go-getter, not resilient, we got rid of immediately,
from bloggers, to programmers, to people in the management team, anybody
involved in the company. And we probably let go of, in the history of the 300
bloggers we have, might have turned off the accounts of 5 or 10 bloggers in the
history of it, I don’t know exactly. A very small number of people,
considering most of the bloggers we’ve signed up we’ve never met in person. I
think the overwhelming majority of the time, 90% of the time we turned somebody
off, was because they were just a negative, downer, complaining: why don’t we
have this yet, why don’t we have a wiki, why don’t we have enclosures? I find
that those–when you’re in management, the people who are–you spend more than
half your time on the people who are complainers, then what happens is over
time, you don’t pay attention to the good people, so the Peter Rojas’s of the
world, the Ryan Block’s of the world, the Judith’s of the world, the Barb’s or
Brad’s … those people just sit there and do it day-in and day-out–Brian
Alvey–and then you wind up paying attention to those people who are
complaining. As a manager, you are there for the service of the people
work–and you know, I’m making those quotes with my fingers–the people “under”
you, which I hate [that phrase]. Weblogs, Inc., is the flattest organization
I’ve ever been part of, and I don’t consider myself above anybody in the
company. I actually consider myself the servant of the people on my management
team, and I consider my management team the servants of the people who work
with them.

(Any inaccuracies in the transcription are mine. Before reacting strongly to what Jason has said, please listen to the audio for yourself. There is a lot of passion and cues that are lost in the transcription process.)

Ever since hearing this a month ago, I wholly agreed: you can easily spend all your time and energies dealing with the detractors while the folks who actually do the good work end up ignored. Those people, by all rights, should be fired, as Jason’s pointed out they’ve done at Weblogs, Inc. in the past.

I’m one of those people. I complain. I’m very negative. I always see the worst in a situation, in people, in life. I should be fired: from my job, from my family, from my life. The loving, hard-working, caring people all around me shouldn’t have to put up with a downer like me. Jason’s absolutely right, which is why he’s built and sold a company and I’m just floundering here, going nowhere fast.

I’ve let the AOLserver community down by not working harder on moving it forward. I’ve let my wife down by not being a better husband. I’ve let my kids down by not being a better father. I’ve let myself down by not having the motivation, courage and determination to become successful at anything. I’ve let my friends down by not being more appreciative of them and not being more supportive of them. It just goes on and on … and the kicker is, I’ve done nothing but complain about it (at least, inside my own head, if not out loud to others) the whole time. Whenever I have tried to do things to improve things instead of complaining, it felt like the whole world was set against me, struggling to maintain the status quo. I’m defeated.

I should be fired.


Tribe.net launches new “open profiles,” social software’s killer app!

I admit it — I’m a sucker for social networking websites as evidenced by the large number I’ve joined. I’ve referred to my behavior as an online community fetish, in fact.

The one grievance I’ve always had with all these sites is that they all offer you an opportunity to create a “profile” at their site, each with their own fields of data which you can key information into. This is cool, the first, second, maybe third time you create a profile at one of the many sites. After that, it gets repetitive and makes keeping your profile current nearly impossible. I understand that FOAF and the Friend of a Friend project were supposed to address this problem, but having an XML specification alone hasn’t solved the problem. What was needed was a killer app. that accomplished what FOAF was meant to solve, regardless of whether it used FOAF underneath or not.

Well, I hadn’t logged into Tribe.net in months — otherwise I would have seen the message from Chris Law on June 15 announcing their new “open profiles” feature. I also would have caught it on June 16 if I’d subscribed to Mark Pincus‘s blog (which I just did) where he announced it, but luckily I’ve been a subscriber of Greg Yardley‘s blog who wrote about it this morning.

Like I said earlier, profiles are nothing new, but what’s so killer about Tribe.net’s new feature is what they’re calling TribeCast, which is a way to publish “modules” from your Tribe.net profile into your own web pages by embedding a bit of script in your page. At launch, they’re offering three modules: your friends, your tribes and your listings. Looking at the script that they generate, it looks eerily similar to Google’s AdSense code — makes perfect sense, since it’s a very smart way of implementing such a feature. I sure hope Google hasn’t been able to patent such a technique — that’d be a crying shame.

Well, I tip my hat to the Tribe.net folks, they’ve figured out how to crack the social network profile nut and they did it well. This is the killer app. for the social networking space, and Tribe.net’s got first-mover advantage. Good for them. I hope this brings some prosperity to their team.

To see what my Tribe.net profile looks like, it’s here: Dossy’s Tribe.net Profile.

Tags: , , webservices

On stubbornness and resistance of authority …

A long-time friend of mine, Andrew McLeod, wrote about being stubborn and refusing to conform, which he seems to never get tired of. I left this comment for him, which he’s likely to reject because he’d rather be different than be right, but perhaps the rest of you who read my blog might get something meaningful out of it:

Stubborn ass that I am, […]

A strong thing will not bend. A stronger thing will.

A strong thing, when finally made to bend, will break. A stronger thing will bend easily, flexing and adapting to its environment.

Being outwardly defiant takes a lot of work and effort. A lot more work and effort than finesse and subversion.

I hope you realize some day the truth in these words.

LiteSpeed benchmarks include AOLserver 4.0.7

The folks at LiteSpeed apparently included AOLserver 4.0.7 in their latest Web Server Performance Comparison benchmarks. (Unfortunately, they don’t include a date on the benchmarks so it’s not easy to tell when these benchmarks were performed, but according to their home page at the moment, it looks as though it was updated today.)

On one hand, it’s great that they included us in their list of servers for benchmarking. On the other hand, their published results show AOLserver performing poorly, which could very well be true but from anecdotal evidence of my own personal experiences, the numbers they show seem out of line with what I would have expected from their benchmark server, a 2.4 GHz Xeon running on Fedora Core 3 with a 2.6.10 kernel. Their small static file tests show AOLserver maxing out under 4,000 req/sec for non-keepailve and under 8,000 req/sec with keep-alive. This still puts AOLserver performance ahead of Apache, but less than half the throughput of LiteSpeed’s server. The echo CGI tests show AOLserver maxing out just under 300 req/sec, which is comparable to Apache, but again less than half the throughput of LiteSpeed.

What’s remarkable is the wide gap in throughput between traditional user-space HTTP servers and the Red Hat Content Accelerator (nee TUX HTTP Server). Granted, kernel-space HTTP servers can get some unfair advantages, but what’s interesting is the fact that the Litespeed Web Server 2.0 Pro (LSWS 2.0 Pro in the benchmarks) is comparable to TUX, but according to Litespeed’s features it “[runs] completely in the user space” — so, how do they get the kind of performance they get? I’d love to see a whitepaper describing what design techniques they use, but all I could find was this item from their FAQ:

Why LiteSpeed web server is so fast?

Good architecture and heavily optimized code.

(The seemingly Engrish phraseology was theirs, not mine.)

Looking around for various web server design improvement ideas similar to Matt Welch’s Staged Event-Driven Architecture (SEDA), or the USENIX 2004 paper accept()able Strategies for Improving Web Server Performance, I stumbled across this paper by Vsevolod V. Panteleenko and Vincent W. Freeh titled Web Server Performance in a WAN Environment (PDF). Here’s the abstract:

Abstract–This work analyzes web server performance under simulated WAN
conditions. The workload simulates many critical network characteristics, such as
network delay, bandwidth limit for client connections, and small MTU sizes to dial-up
clients. A novel aspect of this study is the examination of the internal behavior of the web
server at the network protocol stack and the device driver. Many known server design
optimizations for performance improvement were evaluated in this simulated

We discovered that WAN network characteristics may significantly change the
behavior of the web server compared to the LAN-based simulations and make many of
optimizations of the server design irrelevant in this environment. Particularly, we found
out that small MTU size of the dial-up user connections can increase the processing
overhead several times. At the same time, the network delay, connection bandwidth limit,
and usage of HTTP/1.1 persistent connections do not have a significant effect on the
server performance. We have found there is little benefit due to copy and checksum
avoidance, optimization of request concurrency management, and connection open/close
avoidance under a workload with small MTU sizes, which is common for dial-up users.

Granted, as more and more users move from narrowband (dial-up) to broadband, the interesting points of this paper will become less and less relevant, but it’s still interesting to see the outcome of this kind of research. Of course, with more and more Service-oriented Architecture (SOA) designs and systems being built today, the majority of HTTP traffic over the WAN could already be between servers on broadband links than to clients on narrowband links. That would be an interesting fact to research and prove.

In the meantime, I guess the bar for AOLserver performance has been raised. Lets see what we can do to reach it!

Photo-realistic artist Emily Zasada

While clicking around BlogExplosion I came across Emily Zasada, an artist with a real knack for painting photo-realistic works. You can see some pictures of a work in progress in March 2005 (see “Untitled White Wine Painting” days one through eight). There’s more online images of her work in her online gallery at Yessy.com, and she has some of her work up for auction at eBay.com. I’m normally not a big fan of art, but this stuff is pretty incredible: her ability to reproduce glass and liquids accurately really impresses me. It’s stuff like this that makes me wonder how long it’s going to take before automatically generated computer graphics will really be photo-realistic, as much as Emily’s art is.

nssqlite3: SQLite 3 driver for AOLserver

Last night, I spent about three hours implementing nssqlite3. The motivations behind this included the fact that I’ve been working on a replacement for Movable Type which I currently use to manage my blog, and I’ve configured MT to use SQLite as its database. I figured it would be nice to be able to use the same database to make migration to Soapbox — the name of my blogging software package — easier, for myself and other MT users. But, this means needing a SQLite v3 driver for AOLserver, and the existing SQLite driver from Wojciech Kocjan is nssqlite2, which is for SQLite v2. So, I went ahead and implemented the driver for SQLite v3.

I sent an email to the AOLSERVER mailing list last night announcing the new SQLite database drivers [also: link, link].

I only tested the driver on my primary dev. environment so far, which is a Debian Linux box. I installed the following Debian packages to get SQLite v3: sqlite3 sqlite3-doc libsqlite3-0 libsqlite3-dev. I tested using AOLserver 4.0.10 with the following config. snippet appended to the sample-config.tcl:

# SQLite v3 -- nssqlite3
ns_section  "ns/server/${servername}/modules"
ns_param    nsdb            nsdb.so

ns_section  "ns/server/${servername}/db"
ns_param    defaultpool     sqlite3
ns_param    pools           *

ns_section  "ns/db/drivers"
ns_param    sqlite3         nssqlite3.so

ns_section  "ns/db/pools"
ns_param    sqlite3         "sqlite3"

ns_section  "ns/db/pool/sqlite3"
ns_param    driver          sqlite3
ns_param    connections     1
ns_param    datasource      /tmp/sqlite3.db
ns_param    verbose         off

I’ve created a nssqlite3 wiki page for the driver, which currently just contains a link to the initial nssqlite3 documentation. As more issues and questions arise, I’ll update the wiki page and the documentation.

jack’s magic beans were probably soy …

A few days ago, the family came down with some kind of tummy bug. I had a strange craving for natto, a Japanese food made by fermenting cooked soybeans with the Bacillus natto bacteria, yielding a stinky and slimy but tasty and extraordinarily healthy product.

Dr. Hiroyuki Sumi seems to have done a lot of research into natto from what Google tells me. Here’s one of the better written articles that talk about its many beneficial properties. Among them, natto has antibacterial properties, contains nattokinase which lyses thrombosis in the blood, contains K2 which prevents osteoporosis and breast cancer, improves digestion and prevents intestinal disorders, and probably a whole slew of things that aren’t even attributed to natto-consumption yet.

Justin Hall wrote a really good experience report from a Western perspective of being introduced to and eating natto. Made me chuckle to read it, figured I’d share the link for anyone who has never heard of or eaten natto before.

merry christmas

This has been a very merry Christmas indeed. Part of our gifts we gave this year was a bit of a gift to ourselves and to a family who has been so good to us and has supported us for many years. So, we decided to treat ourselves and them to tickets to the Trans-Siberian Orchestra (TSO) at the New Jersey Performing Arts Center (NJPAC).

For those who don’t know who the TSO are, here’s a napkin sketch of my understanding of the history. Brothers Jon and Criss Oliva along with Steve Wacholz and Keith Collins form a band called Avatar. After a few years, they change the band name to Savatage. They become successful and write many albums and tour all over the world. In 1987, Paul O’Neill becomes producer for Savatage. Things continue to grow until, sadly, in 1993, Criss Oliva is killed in a car accident by a drunken driver. The band continues on, continuing to bring great music to the world. Then, in 1996, Paul O’Neill, Jon Oliva and Bob Kinkel start a new project leveraging the success of Savatage’s song “Christmas Eve,” forming the Trans-Siberian Orchestra. (Great explanation for the name in this AMZ interview with Paul O’Neill.)

And, on December 29th, 2003 … I had the incredible pleasure of seeing TSO perform, live in concert, right here in Newark, New Jersey. Here’s a really brief experience report I wrote about the concert:

My wife and I got to get out for a night last night and we saw the Trans-Siberian Orchestra at the New Jersey Performing Arts Center in Newark … it f@#% ROCKED ASS! Holy cow, what great musicians, great music, incredibly high-energy, head-banging rock and a wicked light show … and the best versions of Marriage of Figaro, Beethoven’s Fifth, Orff’s Carmina Burana, and others … man. If you ever get a chance to see TSO live, DO IT! It is so worth the money.

I can’t repeat enough how happy I am to see real musicians still performing the art of music in 2003. There certainly isn’t much art left in music today, so I hope these guys can keep it up and keep it alive. I certainly want to support the cause however I can.

behold, the spirit of christmas

This year, we were lucky enough to be invited to our babysitter’s aunt’s house for Christmas Eve. It was a house packed full of really excellent people, good food and lots of love. We really lucked out meeting these folks and Kelly (our babysitter) has been a godsend to us. Being church-going folk, after dinner they were planning to go to the Christmas Eve service at their church, The Evangelical Lutheran Church of Our Saviour, and we decided to go with them — I was certainly curious about it.

Anyone who knows me knows that I’m not exactly the most religious person, but I tend to think that I can have an open mind when I’m interested in something. I have to admit, I quite enjoyed the service, even though I was busy trying to walk around and keep Suzie from yapping and crying throughout it. It was a good blend of traditional ministry, some good humor from the pastor and an excellent anecdote about an imperfect checkerboard, and singing some good songs. Sam and I are going to try and start attending regularly, so that Charlie and Suzie get a fair exposure to as many different types of religious education — it’s important they learn how to make good choices, not have us try to make choices for them.

I started thinking about the message in the pastor’s sermon, about Christmas being not about gifts but about a gift, the gift of love. I really found this an extremely accurate and powerful message. I immediately thought of one person who very recently reminded me about this … this true spirit of Christmas. Ian K., that person was you.

Our time in this world is finite, so it makes every moment special and precious. Ian, you gave us your time and love when we really needed it and that’s what made this Christmas even more special for us. Thank you.