Archive for tech

screen

After last week’s price drop, I picked up a Kindle. It’s sweet. Here are some neat features:

  • Read anything - take a .doc, .pdf, or whatever, email it to your personalized kindle email address, and the infrastructure will convert it to a kindle-friendly format and deliver it to your device.
  • Great experience with the store - things worked great for me from the device. My first interaction from a PC trying to buy something for my kindle failed, though. Boo.
  • Text-to-speech is really decent - I’m surprised by this, but I think the text-to-speech is much better than I expected and better than any others that I’ve used. TTS has been so awful for so long that I’ve mostly ignored it as a technology, so it’s not too surprising that now that I finally give it a chance again that it sort of works. Example: after I unpacked my kindle, I set it down in the kitchen while I did some chores, cranked the speakers and had it read me the user guide (which comes as a book on the device).
  • Super cool mp3 playing - drop mp3’s in the /music folder and then you can play them. This is supposed to be a podcast feature.

That gets me to my question. Now I’m actually kinda interested in getting podcasts and getting them onto my device. How should I do this? I could use Amazon’s service and have them all automagically, wirelessly delivered to my device through Whispernet (the network that you can use forever for free with the Kindle) but then I’m paying for a subscription for that content, and that would just be silly (I’m happy to have my laptop download a podcast and push it to the kindle when it’s plugged in). Do I have to use itunes? Would it even work with my kindle? I might just keep ignoring this - or go look at Juice again which was the last podcast application I used.

More on “You should really go get a Kindle today”

  • Integrated web browser - you can point this at Project Gutenberg and get any of their books for free (or wikipedia, etc.)
  • Did I mention that document conversion service is cool? You tell the service which email addresses are allowed to send content to your kindle. This prevents spammers from sending a bunch of junk to the device. Also, you can choose to send the content to either [youraddress]@kindle.com or [youraddress]@free.kindle.com. The difference is that the free version won’t sync content unless you plug in the kindle. The pay version has pretty reasonable fees to do this and will deliver the content to the device over Whispernet. You can send a number of files in a *.zip attached to your email and Kindle then charges you something like $0.15/MB (rounded up to the nearest MB) for the conversion and transmission.

Comments (2)

The Google Apps SLAs are pathetic

Google’s SLA for gmail is, in my opinion, atrociously bad. I heard about this some months ago but yesterday’s 100 minute outage made me review it again.

I work in exactly this space and the stated goal is just not impressive at all.

# “Downtime” means, for a domain, if there is more than a five percent user error rate. Downtime is measured based on server side error rate.
# “Downtime Period” means, for a domain, a period of ten consecutive minutes of Downtime. Intermittent Downtime for a period of less than ten minutes will not be counted towards any Downtime Periods.

  • they measure this strictly from the server side - hello? Last time I checked I didn’t care if their service was self-aware that it was broken or sending me errors - I cared if I (the client) could not use it.
  • they measure downtime as a 5% error rate - this doesn’t give enough granularity to really understand what this means, but I suspect if 4.9% of gmail users are google apps for domains, or if they have segmentation such that no more than 5% of accounts are colocated, they would never hit this threshold for a complete outage of GAFD or a complete outage of a fleet node. 5% is a good number, but without further details, it’s hard to tell if a 5% aggregate is really aggressive or not.
  • they don’t care about outages of <10 mintues - what? you can engage an engineer and fix your services in 10 minutes or have systems autorecover in that time, no sweat.

To me, it sounds like they’ve constructed this somewhat to nail MTTR and accelerate that (and the comment in the published response to this event makes that very clear: “Gmail engineering team was alerted to the failures within seconds”), but but it’s not clear that they care about MTBF at all or that they’re really making more robust systems. The emphasis on recovery is pretty reasonable - things definitely are going to fail and solidly architected services will be designed around the premise that they will fail, will fail frequently, and can recover quickly from those errors. But to say “we’re 99.9% available (measured against outages of 10 minutes or greater as measured on the server)” is really not awesome.

Oh - and on top of the other goals and outage counting shenanigans, they give themselves a 12 hour scheduled downtime buffer. Yawn.

Comments (4)

spam

Here I am, back again to raise the question “exactly why do you still have this blog, again?”

Am I the only one who’s actually kind of entertained by spam? The evolution of spam has been kind of interesting. Today, I believe that heuristics in any remotely decent email system are good enough that I really feel like spam, as a problem, is pretty much a dead issue. It’s certainly not gone as a phenomenon and I don’t predict that for a very, very long time (as long as I get ads for the local grocery store in the physical mail, I’m sure that the vastly cheaper ads for viagra will keep coming to my inbox) but I almost never have to see spam anymore. There are probably no more than 2-5 spam messages per week that hit my gmail inbox. But when it does, I mark the message as spam and sometimes, like today, I notice that there are 2,000+ spam messages in my spam folder and then I take a peek at what’s in there. In their efforts to try to get past spam filters, there seems to be a lot more creativity to the spam messages now than there were a couple years ago (though I have to confess I don’t pay close attention to this). Anyway - here are some of my favorites, just from the ~30 that showed up on the first screen, and just the subject lines:

  • “Support for your boning!”
  • “The most advanced PE pill available today”
  • “Be super stud de luxe!”
  • “The effects of this pilule raise your prick. What else does a man need?”
  • “Having a bigger thing in pants is every manâ–“s dream”
  • “No problem in raising wang”
  • “Become her passionate lion”

Comments (2)

State of the interwebs

There are approximately three sides in the war for the interwebs - which are you on?

  1. Non-participant - “what’s a twitter?” Also found: absorbing rays of sunshine.
  2. Solipsist - “blah blah blah here are way more details of my life than anyone could possibly care about but I’ll keep on going any way because then maybe SOMEONE WILL NOTICE ME AND GIVE A SHIT!!!” Also found: waiting in line for tix to the Alkaline Trio show and thinking of witty adjectives to call him/herself.
  3. Circular referentialist / credit obsessivist - “Check out this sweet link to someone who talks about something in a link from this guy that I found via @ronald http://is.gd/f00” Also found: within the top 5 commenters on random blogs demanding credit for having tweeted the topic 5 seconds before it showed up elsewhere.

I’m straddling the fence of solipsist and non-participant.

Comments (5)

Hot sheep

@scottsorheim shows some amazing sheep antics:

Comments (1)

New jams

My job has nothing to do with this statement:

The Amazon mp3 store rules

The service works really well, the price is almost always right, and the recommendations are really good (way to go, John!). Here’s what I’ve learned about it:

  • Go to the homepage
  • Scroll down to the section for “Today’s Top MP3 Albums, Most $8.99 and Under”
  • Check these out

There seem to be many great deals that rotate in the site over time. I don’t know anything about what’s discounted at any given time, but discounts are a great influencer of popularity, so it seems great albums (or at least great deals) wind up making that list. Here’s what I’ve downloaded today:

I probably wouldn’t have bought all those unless it was super easy, the price was right, and I knew I’d be getting good quality tracks - all of which the Amazon mp3 store does. And obviously I demand that it’s DRM-free, which everything in the Amazon store is. Yay, my company!

Comments (3)

Generation I

Has this been coined yet? It should - I’m probably just behind the times. But with the advent of blogging (um, no irony intended there!), twitter, and facebook we’re increasingly self-obsessed. Those platforms don’t have to be used that way, but I think this is what the “25 things about me” meme or innumerable other ways that people are finally getting soapboxes where they can broadcast the most mundane aspects of their daily life are about.

Here’s the article that inspired this, which is basically a couple hooks you can use to push the music you’re listening to on digital sites into twitter and the like. The question it obviously raises is WHO THE HELL COULD POSSIBLY CARE what song you’re playing every time you listen to music? Are our own lives really that empty that we’re desperate to spy on the routine aspects of the lives of complete strangers? Or even our friends?

Life’s too short to waste on completely uninteresting, uncreative vicarious living - be selective with what you talk about and what you spend your time taking in.

OK, I have to go chase the kids off my lawn now and go eat my prunes.

Comments (2)

DB + emacs = <3

More on “never leave emacs for anything” - emacs is awesome for interacting with databases and I’ve been doing it for years. Here’s how you do it:

  1. have emacs - swear by it for it will never do you wrong
  2. have sql mode - this comes standard in most emacsen these days but it comes from the SqlMode page on the emacswiki
  3. run the appropriate sql mode entry hook for the database backend you’re talking to. I often connect to mySQL databases, so for me, that’s sql-mysql
  4. Give it the credentials to connect to your database (username, password, host, database)
  5. At this point, if it was unable to find the appropriate underlying tools to talk with the database (the mysql executable for mysql, isql.exe/osql.exe/etc. for SQL Server, etc.), it will die - otherwise you’ll have a buffer named *SQL* with the interactive prompt for talking with the database
  6. This is where things start getting useful. Split your emacs to two windows (C-x 2 or C-x 3) and C-x o to switch to that new window. In there, switch to a buffer named test.sql (or whatever you like - C-x b test.sql[enter])
  7. Switch to SQL mode M-x sql-mode
    • This does the normal syntax highlighting for the SQL language and so forth like all emacs modes
    • It also looks for your *SQL* buffer and sets up a hook so that commands issued from test.sql are hooked back to your *SQL* buffer, as you’ll see in a second
  8. Back in test.sql, type some SQL statement, like select * from schema_info; and press C-c C-c (sql-send-paragraph). This will send your SQL statement back over to the associated *SQL* buffer and pump it through the sql interpreter and leave the results in there

Which is all totally rad. Some of the benefits are that

  • you’re in emacs, so all the niceties of syntax highlighting, copy/paste/search are at your disposal (the MySQL query browser doesn’t let you easily select/search/copy output - neither does SQL Server’s Query Analyzer)
  • the output from your commands just keep scrolling through in the *SQL* buffer (so you can see a running history of your commands and their output, save it to disk if you want, etc.)
  • if you save test.sql, you’ve now got a log of your interactions with the SQL backend that are easy to retrieve
  • if you need to interact with another SQL backend in the future, you don’t need to learn a bunch of new client tools. Of course you’ll have the vendor-specific idiosyncrasies and performance issues of doing effective database work - but some things never change :)
  • and you don’t need all the vendor specific client tools - just the minimal command line interface to talk with the database

The drawback is that you don’t have the rich client interface that you’re probably expecting or wanting that lets you browse the database interface, table layouts, etc. You can always fall back on the regular client tools for that. Note that there *is* a construct in sql-mode for what it calls a “data-dictionary”. I’ve looked at the lisp for this and never gotten it to work, but essentially what it does is try to call the SQL functions or inspect the SQL tables which retrieve schema information from the DB and record that in some elisp structures. Then this (in theory) cooperates with the pcomplete mode so that you’d get tab completion and could type (in your test.sql buffer which is talking to the *sql* buffer) “select * from authors.dTAB” and it would cycle through column names in a theoretical authors table for .date_of_birth, .distributor_id, etc.

Final comment: this also works really well with one of my other favorite emacs features: registers. You can have multiple of these sql sessions rolling. Once test.sql is associated with its *SQL* buffer, you can rename the *SQL* buffer (e.g. to *SQL-databasename*) and fire up sql-ms to connect to a Microsoft SQL Server. This will create a new *SQL* buffer and then you can create a separate composition buffer to talk with it named, say, test-ms.sql. But now you have a bunch of associated window configurations and buffers for talking with different databases, so if you use emacs’ window-configuration-to-register and jump-to-register, you can store and restore those layouts to get back to the session you were working with (or jump between SQL modes, development, dired, your shell, gnus/email, and everything else you’re doing).

Comments (2)

The audacity…

From the Linux Keyboard and console HOWTO:

People often complain `my backspace key does not work’, as if this key had a built-in function `delete previous character’.

Can you imagine? What idiot n00b would make such a ridiculous assumption! These are probably the same people who assume that the button labeled “start” will make their microwave leap into action in some prescribed fashion when all it does is send a waveform through some copper wires and maybe a PCB. Obviously you’ve got to wade through a bunch of arcane config files to make that happen. I mean, duh!

Comments

Android good, android bad

So I got a G1 almost a month ago and I’m basically very happy with it, but I have a couple key gripes:

  • The Market - the market is this awesome integrated software distribution system. I’m pretty sure this is like the iPhone store or something, but Windows Mobile didn’t have anything like this and BlackBerry didn’t really, either. Actually, there was basically no interesting software for blackberry, which was one of its biggest drawbacks. Anyway - the market is great. Except the rating system. Geez louise is this a disaster. Users have the ability to rate applications 1-5 stars and add comments. Every single application that shows up now has, as its first ~10 ratings, various lam3rs claiming “first” and putting in some default 1-5 star rating. This completely throws off the weighting of the reviews of any software in the market and makes the review functionality in the market basically useless. IMO, Google should immediately block any client who ever posts a review “first” in the first 10 messages from ever contributing feedback to the store again. That may seem heavy handed but they’re ruining the market.
  • A2DP - this is just a gripe. The G1 doesn’t have a standard headphone jack and T-Mobile is allegedly now shipping the phone with a 3.5mm adapter so you can use regular headphones. I figured I wouldn’t care about this because I’d just use my bluetooth headphones and hook them up via A2DP but I was wrong because the G1 bluetooth stack doesn’t support A2DP right now. Huh? Please fix this, Google. I’m assuming this is fixable. I’m going to be very, very sad if I find that the hardware can’t support A2DP.
  • GPS - this works splendidly but the google maps application really should be better. It doesn’t track you (which is just stupid) so if you’re using it to navigate, you need to scroll the screen as you go, and it doesn’t work along the route to give you turn-by-turn directions. I’m guessing something in the market will do this but there are a gajillion alpha-quality mapping applications that do the same thing and I haven’t bothered trying to sift through them to find something really useful (that content issue is another problem with the market…)

Otherwise it’s pretty much roses!

Comments

« Previous entries