Jeremy Zawodny's blog

July 29, 2004

The eBay API BoF tonight was dominated by a guy who sells clear plastic raincoats via eBay. It's always funny when one person basically dominates a discussion with tons of questions, but it's even more amusing when it's someone selling clear plastic raincoats.

If you had ideas about the previously noted RSS Scaling Problem and are at OSCON now, stop by Douglas Fir to chat about it. Here's the session blurb:

With RSS usage growing like mad, does having every client pull their own copy still make sense? Might it make more sense for some centralized services to aggregate the data? Or maybe a push system? PubSub? Other ideas?

The attendance numbers are reportedly quite good, and I'm starting to believe them. I tried going to 3 different sessions during the first morning session today and they were all standing room only. I couldn't even get in the door.

Doh!

Luckily I have a few other things to keep me busy. However, for the sessions I'm really interested in, I'll have to get there extra early.

July 26, 2004

Okay, I'm in Portland for OSCON and catching up on a very big backlog of stuff.

Mark Fletcher, in RSS Scaling Issues, brings up an issue that I've been worrying about (but not talking about) for quite some time now.

Centralized services like Bloglines avoid this problem because we only fetch a feed once regardless of how many subscribers we have to it. Desktop aggregators can't do that, of course, and end up generating huge amounts of traffic to sites like Infoworld. There are various things that a desktop aggregator can do to mitigate the load, like using the HTTP last-modified header and supporting gzip compression. But the aggregator still has to query the server, so there will always be a load issue.

Because Bloglines has a vested interest in increasing RSS (in the generic sense) adoption, we're looking at ways we can help. We are working on a couple of projects right now, and we're of course open to suggestions.

I've had very brief discussions about this with a few folks at work. Since we're clearly interested in seeing RSS grow, I wonder if we can't help somehow. And I wonder if we shouldn't be talking with Mark and others (who?) about this.

What follows is a true story sent to me (and a few other friends) by a friend who we'll refer to as Bob. Only names have been changed. I laughed my ass off while reading it. You may or may not, since you do not know Bob. But I couldn't let the story remain in obscurity.

"Bob" and "Sam" recently had this adventure.

Here's how it happened:

Yesterday afternoon my friend Sam comes into my office and tells me that
his car was stolen. I ask him where he was when it was taken. He tells
me that he was visiting a client of his in one of the worse neighborhoods
of Hartford (he's a social worker for the state department of mental
retardation).

I realize that I used to live not so far from there and that I own a couple
of buildings within a one mile radius. I call some of my boys who live in
that hood and I put the word out to look for his car. In the mean time, I
drive him to the police station and he reports the car as being stolen.

A little bit later I get some feedback from my peeps and they tell me that
they saw a drug dealer who goes by the name "Bones" driving the car. I
make a few further inquiries and I find out the cellular phone number of
this guy.

My friend starts calling him every 30 seconds. "Bones" ain't picking up.
Finally, I decide to call him. He picks up and the following dialogue
transpires:

Bones: Who dis?

Me: That doesn't matter Bones...

Bones: Who dis?

Me: I'm the guy who was trained by the IDF who's going to get my friend's
car back.

Bones: What's da IDF?

Me: That means that I was trained to take down terrorists and other scum
bags, many of whom are a hundred times smarter than you. And,
unfortunately for you, I owe my friend Sam some favors.

Bones: Oh Shit. (Hangs up)

So I spend the next few minutes trying to get in touch with him and I keep
getting his voice mail. I got sick of him dodging my calls pretty quickly
so I did a reverse lookup on his phone number. It doesn't give me his
name, but it does tell me that he's running off of Omnipoint
Communications (AKA T-Mobile) and I find that their nearest center is in
Bloomfield, CT, not too far from the place in Hartford where the car was
stolen.

I go to the T-Mobile web page and find the instructions for programming
voice mail, I call into his phone again and find that he is still dodging
my calls. Anyway, I press the * key and it asks for my password; I enter
the last four digits of his phone number. That drops me into his main
menu. From there I reprogrammed his voicemail password and listened to
his messages (he had 15 and his mailbox was already full).

After doing this, I changed his message to, "If you're trying to reach
Bones, you should know that he is a car thief and he is being watched."
After doing this, I decided to really get his attention, I had written
down the names and phone numbers of his "clients" and started calling
them. The calls went something like this:

Al: Hello?

Me: I'm looking for Bones.

Al: Who dis?

Me: I'm the guy who has been listening to Bones's voicemail. You buy
drugs from him and I can forward that voicemail to thousands of people if
you don't get in touch with Bones and tell him to return the car he stole.

Al: I don't know Bones.

Me: Then why are you leaving him voicemessages, asking for drugs? Maybe
I need a second and a third and a hundredth opinion in the matter. Have
Bones call me soon, or else lots of people will be hearing the message
that you left for him.

(Hang up)

Within a few minutes Bones was trying to call my friend. He was
exploding:

Bones: Why are you messing my shit up like this?

Sam: You stole my car you (expletive deleted)! Bring it back NOW or
things will get a lot worse.

The two continued screaming at each other. Bones was upset because he
couldn't do business and my friend was upset because he wanted his car.
In the mean time, I was calling information and telling them, "I found a
cellular phone with thus and such a number and it is a T-Mobile phone. I
was wondering if you could tell me to whom I could mail it?" I got the
guys info., but wanted to save it for later, in case I needed to
intimidate him further (I would).

After all of this, they set a place where they would meet. It was on the
corner of Sumner and Asylum, not the best neighborhood in Hartford. It
was mostly crack houses and such. However, it was close enough to the
business district and some other important institutions that there would
be enough traffic to esnure SOME safety.

We drive by the first time and the car isn't there. Granted, I drove by
quickly because I didn't want to be spotted as a mark, but we were really
certain that it wasn't there.

Me: I saw the corner Boney, you lied to me. Now you've got me driving
around, wasting my gas, I've killed people for less Boney.

Bones: Don't give me that!

Me: Don't tell me what to give you Boney, or should I say Tyrene?

Bones: What?

Me: Yeah, I know where you live too Boney. I'll blow up your whole block
if I have to.

Bones: I don't have a block.

Me: Then I'll blow up your whole head Boney.

Bones: (Hangs up)

We drive past the corner a second time and there's still nothing. I call
up Bones again.

Me: Bones stop lying to me. It's making me very upset. I don't like it
when people talking on Motorola cellular phones on T-Mobile Networks being
run off of an antenna in Bloomfield lie to me.

Bones: You're going to get your shit! Quit calling me!

Me: Hey Boney, just get yourself over here or things are going to get
really bad really quickly. I'm getting really upset.

Bones: (Hangs up)

So we go around the block again and check the corner and (shockingly) the
car still isn't there. I try to call Bones and he isn't taking my calls.
I try a few more times (unsuccessfully) and then I borrow my friend's
phone. This time he picks up:

Now I realize that he's really left the car there and has left the scene.
We drive back quickly and find that Bones has left the car with its
headlights on and it is blasting rap music while the engine idled.

My friend quickly checked the car, got in and drove home. I realized that
Bones was not entirely stupid. He knew exactly how to leave a car in
order to make people think that it belonged to a gangster so that they
would leave it alone.

I reprogrammed his voicemail so that he could use it again, and then
called him up:

Me: Bones, I just wanted to thank you for doing the honorable thing at
last. (It was already about 10:30PM) Your voicemail is back to normal.

Bones: Fuck You. (Hangs up)

My friend calls the cops to report that he found the car, and the cops
can't believe that a couple of Jews went into the worst neighborhoods of
Hartford and managed to shake down a drug dealer.

July 20, 2004

I've been answering a lot of questions about blogging recently at work. It no longer surprises me to find out that a lot of folks there read this stuff. But sometimes the questions do.

Today's was the first one I had to think about bit because I'd just never considered it before:

Which takes more time, your blog or you linkblog?

Clearly it takes more time to write long posts here than it does to run my custom little command-line tool for adding random funny stuff to my linkblog. But both are really the result of my day to day wanderings on the web, e-mail, and so on.

I still think my main blog takes more time, but I never really thought about what goes into the linkblog. It's not as trivial as one might think.

Either late Wednesday or very early Thursday, I'm heading down to Pasadena to spend some time at Overture Services (which is part of Yahoo) on Thursday to talk about MySQL and stuff.

I'll be driving down there, towing my glider and all my flying gear. I'm going to fly Friday and Saturday at Great Western Soaring (their web site is pretty bad, but it's a great place to fly, I'm told), based at Crystal airport.

The terrain in the area looks interesting. I just have to be careful to stay out of the restricted area around Edwards Air Force Base. I wonder if fighter jets could even figure out how to chase a glider? Best not to find out. :-)

I'll head back to San Jose on Saturday night and then hop a plane on Sunday to Portland for OSCON, where I'll be all next week. Then it's back to work for a few days. On Thursday the 5th of August, I'll be giving a brief talk and on a panel (yeah, they spelled my name wrong) at the SES conference (more on that later). Then I'll head to lake Tahoe for a day or two of flying gliders out of Truckee airport. That was supposed to be Thursday - Saturday, but SES came up at the last minute.

July 19, 2004

It was only later that I realized how un-computer-geeky I've been this summer. I've spent every weekend I can outside and away from the computer. And, if the day is going well, I'm often 3,000 - 9,000 feet in the air. Sometimes more.

Agreed. I think I'd go nuts if I wasn't flying every weekend. Even those days where I struggle for hours, trying to gain enough altitude to get home--they're better than sitting indoors with the laptop.

July 18, 2004

Background

I was a reasonably happy Sprint PCS customer for the last 2.5 years or so. But ever since I moved into my new place, I've become more of a disgruntled customer. The wireless signal in my house sucks. I get one "bar" of signal strength and calls typically drop, if they work at all. And the coverage at work seems to have gone downhill too. Even on the 4th floor where my current office is, I get lots of dead areas.

While I was in Nevada back in late May, my phone was on Analog Roam the whole time. That's not a big deal. I expected analog-only coverage in the middle of nowhere. But I couldn't make a single call! Meanwhile, some of the other guys I flew with were able to make calls. They were using Verizon.

With the advent of number portability, I've been toying with the idea of switching cellular carriers. It seems that Verizon is currently the best game in town for my needs. The signal strength at work and home is considerably better too.

A Web Site Visit

After checking out the Verizon Wireless web site, I was quite happy. It's much easier to browse their phone selection than it is on the Sprint PCS site. They let me sort by features that matter. Sprint doesn't do that. And, better yet, many of Verizon's phones are tri-band phones--that means they'll fall back to analog coverage just like my current phone. That's pretty important for me. Not only is the cell phone a nice convenience nowadays, analog coverage is an absolute necessity in many of the places I fly my glider.

The only real negative is that they have no bluetooth enabled phones. So I'll need to get a cable for my Powerbook. :-(

Like all cell phone carriers, some parts of their service offerings are quite difficult to decipher. In the case of Verizon, the calling plans are fairly straightforward. However, the data plans and add-on services make no sense to me. After trying to decipher their abstract names for the options they offer, I decided to visit my local Verizon Wireless store. It happens to be over in Cupertino.

A Store Visit

I spent a few minutes chatting with one of the sale droids about my desire to switch. I was a little concerned by how the discussion began.

Him: "How many lines do you have with your current carrier?"

Me: "Lines? This is a wireless phone. I have no lines."

But we moved on from there. He confirmed that my number was, indeed, portable and then I tried to get two questions answered. This is where things spiraled down into a deep, dark, stinky hole.

I wanted to know if they had a service that would allow me to plug my phone into my computer and get an IP connection that's faster than standard dial-up. I also wanted to know if they had a usage-based plan for it instead of a flat rate. I don't expect to use the service a lot, but it'd be really nice to have when I actually need it.

He explained that I could either buy their data service, which comes in various rates per month and doesn't use up my minutes, or I could use up my minutes and make an old-school dial-up connection to the ISP of my choice.

I was rather puzzled by this omission. Surely there are others who'd like the high speed service available on-demand and are willing to pay by the megabyte (or whatever) without paying a monthly fee on the off chance that they use the service.

He got me on the phone with their local expert on the service. What followed was a 45 minute discussion during which this "expert" spent half of the time trying "understand my needs" and also up-selling me to either a Blackberry or their unlimited data plat (at a whopping $80/month!). Needless to say, I was not impressed.

The guy simply didn't want to answer my question directly. Instead he asked all sorts of questions about my usage, the kind of e-mail I receive and send, and so on. It was blatantly obvious that he wanted to figure out how to sell me something expensive and use what I had told him to justify the sales push.

Soemtimes I really hate salesmen. Actually, I hate them most of the time.

He didn't understand what SSH is and was generally being difficult. But I eventually did manage to get the information out of him I needed: there is no plan for someone like me. So I'd just use my minutes and play the analog-style dial-up game.

Coverage Maps

Before leaving the store, I asked the sales droid if they had more detailed coverage maps available. I wanted to see what coverage in northwest Ohio is like and wanted to see where the digital/analog breakdown was in western Nevada. Really, I wanted to get a feel for how likely it was that my phone would work if I land my glider on a dry lake somewhere.

He pulled up a cool mapping application on the store computer. You could find locations by address, zip code, GPS coordinates, or landmark name. The map depicted color coded areas that represented the various service areas. We could pan around, zoom in/out, and so on. It was like using Yahoo! Maps or MapQuest.

It blows my mind that they don't make that application available to the public on their web site. Verizon has a very big network and decent coverage. It would have made my research easier a lot earlier on in the process.

Conclusion

Given their good digital and analog coverage as well as the good experience that friends have reported, I'm planning to switch to Verizon Wireless in a few weeks (probably after OSCON in Portland. I just need to decide on a phone and choose between the National SingleRate plan and the America's Choice plan.

Anyone have Verizon stories? Reason for or against using them?

I'm not really gonna hold this sales guy against them. All phone companies are evil, so I might as well use the one that comes closest to providing what I need.

Anyone have a favorite or most hated Verizon phone? I'm not looking for anything fancy. A decent tri-mode flip phone with long battery life and a cable that can hook up to a Powerbook (and maybe my Thinkpad). Camera is optional. Color display is optional.

Update: Since other carriers have come up, I'll mention this. I've had Cingular before and was quite unhappy with 'em. I tried switching to AT&T only to be told I had to pay a $1,000 deposit. They claimed my credit wasn't good enough. They were nuts.

July 17, 2004

As you may have guessed, I didn't know much about Oddpost until recently. But since they're now part of the collective, I had the opportunity to meet with a few of the Oddpost folks on Friday.

Aside from the getting an idea of how all their server-side stuff works (it's a classic example of "do the simplest thing that could possibly work" and I love that aspect of it), which was the real point of the meeting, I got to actually see the product first hand. And I left the meeting in amazement at what they were able to do using only a web browser and a lot of fancy DHTML wizardry. I mean, this thing looked and mostly acted like a real, native desktop application.

Really. A few times I caught myself thinking it was a "fat" client, only to look at the title bar and realize it was an IE window. But other than that, it was hard to tell at time. It's really that good.

The only downside to this I can see is that as the gap between "desktop" and "web based" applications closes, users won't understand the difference. The Oddpost client, for example, feels like a fancy mail and RSS application. But take it offline (such as cross-country flight) and suddenly it does a lot less that one might expect. Knowing that it's a web-based system with most of the data stored on the server, this comes as no shock to most anyone reading this. But to average folks like my Mom, well... that's probably a whole different story.

This makes me wonder how we're going to bridge the gap or if that gap will become irrelevant as the odds of having an Internet connection in any random location continue to increase.

July 15, 2004

I may be a moron, but I can't seem to find a way to assign a rating to the currently playing track using the keyboard. The only way seems to involve the mouse and bringing up the track's info window, clicking to the "Options" tab, and so on.

There's no way I'm going to rate more than a handful of tracks using such a slow and tedious method. But until I do, the "Party Shuffle" feature produces far less than optimal playlists.

I want something as easy as the thumbs-up and thumbs-down buttons on a Tivo. I hope that's not too much to ask for.

Hints, anyone? I've asked the all-knowing search engines for help and have come up dry so far.

I use the mysql command-line client a lot. It acts like a mini-shell that makes it easy to send commands or queries to a MySQL server and view the results. However, its navigational facilities aren't terribly shell-like.

To change to a particular database, you must use the "USE" command:

mysql> use test
Database changed

To get a list of databases, you must use the "SHOW DATABASES" command:

Often times I'll forget that I'm at a "mysql>" command prompt, type "ls" or "cd", and just expect it to know what I want.

Today I fixed that bug. As of now, my copy of the client understands the "cd" and "ls" commands. The patch is available (against the latest 4.0 BitKeeper tree) and has been sent to the developers for possible inclusion.

Update: In the comments, Russell asks about setting the prompt to contain the current database name. Of course you can do that!

mysql> prompt mysql (\d)>
PROMPT set to 'mysql (\d)> '
mysql ((none))> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql (mysql)>

I've been thinking about that quite a bit recently. In fact, I suspect I've been thinking about it more than I realize and for a much longer time, but that's really not the point--if there is a point at all.

If my own life is any example, I think that we make those decisions in a manner that's rather different than the way we describe doing it to those who might ask. Many times when I've made those kinds of decisions, I didn't really weigh the pros and cons or consider the impact to this and that. I just waited a while, thought about it off and on, maybe collected a bit more info (or not) and then... just knew. If you'd asked me to explain it, I'd just make up something that sounds sane and normal. But in reality it's a process I don't really understand. And for the most part that's okay because I've been pretty happy with my decisions so far.

I suspect that motivation has a lot to do with it. I also think that if my own life is any guide, we're not very good at figuring out (or at least thinking about) our own motivations for the decisions we make. Sometimes they're hard to see because you need to look at patterns--patterns in your own life that repeat over long periods of time and in slightly different ways. And we're just not as good at long term self-analysis as we think we are.

As an example, I remember in college thinking how funny it was that I knew people who switched their major. And many of them did it more than once. I just couldn't imagine not knowing what you wanted to do!

For me it was always obvious. There was no question. I always liked computers and wanted to work with computers for a living--ever since I got my hands on one. (In retrospect, that was a lot less specific that I thought at the time because computers are everywhere now.) But if you asked me why, I didn't really know. I just knew.

Over time and with the help of a couple very insightful friends, I've come to realize that certain things are true about me--or more specifically are what matter to me more than whether or not I'm working with computers everyday. Not only did it take a long time to realize and understand that, it took a long time to accept and admit it.

So what does matter or motivate me?

It's hard to describe, but when I try these are the ideas that come to mind:

being a part of something I believe is important--something that matters to me (yes, I know that's a bit of circular logic)

working with (or being around) smart and interesting people who also care about those things

When I see a good chance to do some or all of those things, I'd like to think that I'll take that chance most of the time.

Then again, if my own life is not a good example, this is all about me. And you're wondering what kind of a freak I am. It wouldn't be the first time. :-)

Anyway, what are those "things" I speak of? As far as I can tell, they're something in this jumble:

connections and relationships

new connections

ideas, big and small

change

seeing changes as the result of the connections among people and ideas

influencing or helping that change in even a small way to make things better

Learning a lot about computers, programming, and networking provided me with ideas and connections. It's about taking ideas and turning them into concrete processes and then improving them even more. And then there's writing, which I've done in the form of a monthly magazine column and a book. And when you combine writing in a semi-public way with computers and networking... The online world provides even more connections, and thanks to e-mail and weblogs, relationships and a way of influencing that change. Not to mention ideas.

Looking at it that way makes a lot more sense all of the sudden.

How does flying, one of my other passions, fit into this? I don't know. I do know that it's a heck of a challenge, a lot of fun, and helps me to meet some very cool people. And it also forces me to think about the world in a very different way--constantly re-evaluating the situation I'm in.

Hmm. Put that way, maybe it does fit in better than I thought...

What got me thinking about this again and writing about it today? I blame a combination of recent events and watching 4 episodes of The West Wing (all praise Netflix) in one night.

More on those recent events when the time is right. I'm still digesting some of them.

The mere act of writing this up has helped to clarify my thinking (or lack of thinking) quite a bit. As for clicking the "post" button... why not?

July 13, 2004

I'll give you one guess. See if you can figure out what I'm doing tonight...

Good guess!

I'm gonna start with plain text and worry about what (if any) "presentation software" I want to use later. I'm really tempted to just have them print an outline as the handout. All I really need is a whiteboard and a few markers. For some reason, I have no trouble talking about MySQL in a semi-intelligent manner for hours on end if you stick me in front of a room full of people and give me a few markers and a whiteboard.

But the mental stress involved in actually assembling a presentation drives me nuts. And I procrastinate. A lot. Besides, how am I supposed really to know what will truly be useful to the folks in the room until I get into that room and talk with them a bit?

July 12, 2004

When comparing requests for my RSS 0.91 and RSS 2.0 feeds, I've noticed that the 2.0 feed is fetched more often than the 0.91 feed. It's roughly 45% versus 55% right now. Both Bloglines and My Yahoo seem to prefer the 2.0 feed, which greatly amplifies the distribution of my 2.0 feed in a way that Apache log mining does not account for unless I look for the readership info they both leave behind.

Every news reader I know of handles 0.91 and 2.0 equally well. So this got me to wondering... What would happen if I stuck in a server-side HTTP redirect such that anyone asking for my 0.91 feed would instead get my full-content 2.0 feed?

Would anything break? Would it lead to any nasty surprises?

I'm not particularly anxious do this. I'm just kind of curious to know what would happen if I did.

I see that there is a scraped feed but it doesn't include full text, just headline/date/etc.

That also sucks.

Does anyone know of a better scraped feed? If not, I suppose I'll have to write my own (unless someone with more free time beats me too it). But it just seems dumb that anyone should have to write an RSS scraper for a weblog.

Even more dumb (or Moore dumb?) is having to do it a second time because the first one isn't too helpful!

Now you know what I know (and quite likely more than I know) about what's going on.

Aren't blogs fun?

All of this kinda makes me wish I had dug out my Windows laptop to actually try their software before the assimilation began. It sounds interesting based on the accounts I've read so far, but I'd like to see so first hand.

July 09, 2004

I can't remember the last time I actually browsed the Web. You know, just sort of aimlessly following links in the hopes of encountering something unique or interesting. (I'm also glad that idea of calling it "surfing" seems to have become less popular.)

Between the few sites I visit daily to get things done, links that come in via e-mail, and the various weblogs and news feeds I guess I'm spending enough time in my browser already.

July 08, 2004

Take, for example, the way some folks feel like they need a database abstraction layer in their applications. Rasmus has long argued against them, and I've agreed with his reasoning and conclusion. (Because it's correct!)

I was reminded of this when I recently read "rant, by request...", in which the author argues against the Smarty PHP template system. Why? Because PHP is itself a templating system. Adding another layer increases complexity, degrades performance, and generally doesn't really improve things.

So why do folks do it? Because PHP is also a programming language and they feel the need to "dumb it down" or insulate themselves (or others) from the "complexity" of PHP.

In that same article, I find myself strongly disagreeing with something else the author says:

Pick any book on PHP from a shelf in your local bookstore, and look how result rows from a MySQL database are printed. (MySQL is of course the DBMS used in those books, which should already give you a clue about how bad the book is.) The mysql_-functions are used all over the place in the presentation layer.

Here, in these forums, we have learned people to not use those mysql_-functions directly, but use a database abstraction layer instead. This makes coding simpler (no need to know all those functions for the various DBMS's) and when they decide to use another DBMS instead of MySQL (and they undoubtedly will at some point), the conversion will be painless.

The fact that he generally pisses on MySQL isn't what bugs me, though it doesn't help. What bothers me is the double-standard. He's advocating "raw" PHP instead of more "abstract" templating languages because they're bigger, slower, more complicated. But when it comes to the database side of things, he's suddenly arguing for the bigger, fatter, slower abstractions again?

This makes no sense for several reasons. Let's look at them.

The Portability Fallacy

The author uses an argument I hear all the time: If you use a good abstraction layer, it'll be easy to move from $this_database to $other_database down the road.

That's bullshit. It's never easy.

In any non-trivial database backed application, nobody thinks of switching databases as an easy matter. Thinking that "the conversion will be painless" is a fantasy.

Good engineers try to select the best tools for the job and then do everything they can to take advantage of their tool's unique and most powerful features. In the database world, that means specific hints, indexing, data types, and even table structure decisions. If you truly limit yourself to the subset of features that is common across all major RDBMSes, you're doing yourself and your clients a huge disservice.

That's no different from saying "I'm doing to limit myself to the subset of PHP that's the same in Perl and C, because I might want to switch languages one day and 'painlessly' port my code."

That just doesn't happen.

The cost of switching databases after an application is developed and deployed is quite high. You have possible schema and index changes, syntax changes, optimization and tuning work to re-do, hints to adjust or remove, and so on. Changing mysql_foo() to oracle_foo() is really the least of your problems. You're gonna touch most, if not all, of your SQL--or you'll at least need to verify it.

That doesn't sound "painless" to me.

Good Programming vs. "Neutral" APIs

The author is also clearly unhappy with the alternative, having mysql_foo() and mysql_bar() functions all over the application. Well, I may be nuts here, but I never have that problem. I use a revolutionary new programming technique. Instead of littering my code with those calls, I put my core data access layer into a library--a separate piece of reusable code that I can include in various parts of my application and... reuse!

That means if I ever decide to make major changes to the way my application interacts with the database (persistent connections, replication awareness, load balancing, different error handling), I'm able to do so without searching every damned file in my code base for mysql_* functions that I need to tweak.

I never thought this was rocket science, but apparently it has eluded him. Somehow he manages to see the benefit of separating presentation from logic, but never considered separating the data access layer from the data processing layer.

Some things never cease to amaze me--and make me very sad at the same time.

A summary of things I've recently noticed happening to me, as the direct result of having a weblog.

Coworkers say things to me like "you can't blog this, but..." and "No way. If I tell you, it'll probably show up on your blog!"

After introducing myself to a group of people (say, before giving a 1.5 hour "introduction to MySQL" type of talk), one of the folks in the audience also chimes in "and he has a popular weblog."

Random e-mail from journalists: "Hey, I read that piece you wrote about foo. Can we talk on the phone later today?"

Werid e-mail from people I've never heard of asking the strangest things. Often, I'm a convenient lightening rod for disgruntled Yahoo users. That's always fun. Except when it's not, which is most of the time.

July 06, 2004

As the result of an on-going discussion among some friends, I'm looking for some good real estate investment resources (residential, not commercial). Namely, I'd like to find any or all of the following:

Books

Magazines

Web sites

A local REI (Real Estate Investment) club

Someone local who's been at it a while

Bloggers who have written or still to write about it

Nothing may come of this, but I've gone past the "idle curiosity" phase and am moving into the "gather information" phase.

Any leads?

Does anyone reading this happen to dabble in the real estate market and want to chat or exchange a bit of e-mail? Anyone local? I'd gladly buy you dinner in exchange for a bit of your experience.

Some initial web searches and rummaging around have uncovered an assload (technical term) of sites that seem to have been designed to sleazy SEO companies in a not so futile effort to abuse PageRank. Needless to say, they are not helpful.

A bunch of folks have asked about this, so I'm posting it as a public service...

If you've recently noticed "Brad DeLong's Semi-Daily Journal (2004)" randomly appearing in place of other feeds in your My Yahoo RSS module, you're not alone. There's a bug there. And we know about it. You subscriptions have not been changed, corrupted, or anything like that.

I do kinda wonder if Brad will get a bunch more subscribers as a result. :-)

It's odd. I don't know if it's the field of work I'm in or not, but a high percentage of folks that I know reasonably well all seem to have what I call a "backup career plan" in mind.

Some of them are actively working on their plan--going back to school part or full-time, getting additional training, etc. Others haven't made any concrete moves yet but seem to talk about it more and more.

There's this [usually] unspoken sense that they don't want to still be doing this when they're 40.

Are my techie friends unusual in this respect? Or is this fairly widespread?

And before you ask, yes. I'm one of them. I have a backup career plan too. This year I hope to get my commercial pilot license. Then in a year or two I hope to become a certified flight instructor (at least for gliders--don't know about power planes quite yet, but that training should pick up in the fall too).

I don't know if I'd ever try to make it my "day job" but I really do enjoy it and figure that if I ever do get really sick of this stuff, it'd be nice to have something else interesting and fun to fall back on.

Well, that's simply not true. The word "only" is what makes it false. The pinger simply accelerates the refresh process. There's no conspiracy here.

In reading the note that George got back from Yahoo's Customer Care, I was pleasantly surprised at how they accurately described the crawler refresh. But I must have missed the part about sites being required to ping Yahoo.

Can someone else enlighten me?

If we need to adjust the documentation or clarify things with the CC group, that's easy enough to do. But I first need to understand how someone could come to that conclusion in the first place.

Dave Winer calls this "Yahoo's first attempt at a gated community built around RSS" which I find equally confusing. Maybe the gates are made of one-way glass? I don't see them. Please help me see them.

July 04, 2004

It's a good thing the Blipmap/spot were unavailable for 21Z this
morning. Otherwise I wouldn't have attempted flying Panoche. Only
upon arriving home tonight did I see the predicted 6,300 BL Top and
5,300 Hcrit on the Panoche Blipspot.

I launched a bit after 1pm and took a higher tow just in case EL1
wasn't working. It wasn't. So I hung a right and followed the edge of
the valley, planning to end up on the south side of the airstrip where
I hoped to find a decent thermal in the hills. Half way there, I got
sick of flying thru 6-8 knots down and cut across.

I spent the next hour and a quarter between 4,000 and 5,000 feet and
finding occasional thermals that'd get me above 6,000. Each time, I'd
use that altitude to venture off in a different direction in search of
better lift. I'd get shot down and try again.

Eventually, I tried going east and got shot down. At about 4,000 I
decided there was no way to make it back to Hollister. I just wanted
to gain enough altitude to call a tow plane and say "if you don't hear
from me in 30 minutes, come get me."I made one more pass, this time a bit farther south, to look for lift
before heading in to land and calling HGC.

Boom!

I hit an 8-10 knot thermal that ultimately took me to 7,200 feet. At
that point, I had Bikle in glide but Hollister was a 32:1 glide away.
I decided this was my exit for the day and turned toward Bikle. I kept
a good eye on the my glide and sink rate along the way. Things
improved as I cruised along. I arrived at 4,000 feet over Bikle,
having encountered virtually no sink along the way. The GPS said
Hollister was in glide (23:1) and it looked right, so I kept going.

20 minutes later, I was entering the pattern for runway 24 at about
2,300 feet.

July 01, 2004

I was really happy to read the news about Jonathon Schwartz (President and COO of Sun Microsystems) starting his weblog. The thought of getting semi-filtered thoughts from a high-level executive in an more open way is refreshing.

But then I actually read his first post and tried to evaluate his weblog based on what he said:

What's a blog? It's basically an on-line journal - a whitespace - that updates from the top (most recent posts appear first) into which I can offer perspectives, opinions, and insights, and I can link to others and their views, etc. Others can link to me and send me feedback, creating a massively connected community and open dialog.

Weird. I expected him to write "post feedback" instead of "send me feeback" but now I see why. There's no commenting allowed on his weblog. What, we're all supposed to mail privately? How is that "massively connected" and "open"?

Third, to get unfiltered feedback from the community. If you want to reach me, I'm "jonathan.i.schwartz at sun.com". I promise to read it all, but please don't count on responses (I'm a bit deluged already).

Yup, that's right. Just email him. He gets the unfiltered feedback, but we don't.

Okay, so maybe I can write something on my weblog (like this post) and you'll see the Trackback link on his post?

Nope.

No trackbacks either.

Mr. Schwartz, please don't treat your weblog like Java. In a truly open community, we comment on each other's posts, cross-link, and honor Trackback requests.

Blogging is a two way street. What you have feels like half a weblog. Please, go all the way.

I guess I should post this and then e-mail him a note to say "read this post" or something. Grr.

I'm really not sure why, but today just feels like a Friday. Maybe it's the upcoming holiday weekend. Maybe it's the Krispy Kreme doughnuts that appeared a little while ago. Maybe it's the fact that I'm hopelessly tired and it feels like it's been a long week?