2009/06 Archives

Tue Jun 30 05:40:47 UTC 2009

jesusphone, twenty eight days later

More Pre crap. In no particular order:

  • With the 1.02 patch, the camera issues are largely resolved. Hooray!

    But as of the 1.03 patch, the Pre will occasionally forget how to reenter data mode for 15-25 minutes after losing its connection to the cell network. The workaround is to shut off the radio (annoyingly called "airplane mode") and turn it back on again.

  • The MP3 player has an album cover view (like the iphone) and a list view, where you can see all the songs in an album and easily jump to the only decent one.[*] One of these views is useful, and one is the default. The default cannot be changed. Annoying.

    *: All That Remains may be, ugh, metalcore, blegh, but that guitar solo (2:35) is just too awesome.

  • Speaking of annoying, the "rounded corners and translucent buttons" look is pretty, but I'd rather have a snappy UI than eye candy. Presumably this is a need that will be filled by third-party themes, Eventually.

  • Google reader is still broken, because it serves the rich content version to the pre, which requires a real mouse, rather than the mobile version, which would work perfectly. Annoyingly, there's no way to force it to mobile mode, or a way to change the user-agent of the Pre's browser.

    Commenter OX, being not only fabulously attractive but far more intelligent than I, knows that you can prepend m. to google.com addresses to get a mobile version. http://www.google.com/reader/ becomes http://m.google.com/reader, and so on. Gosh, if only I had known that earlier.

  • jwz (no caps, you heathens) apparently bought a Pre, and immediately started complaining, like... some other people. A commenter pointed out that you could hack the applications manually, he replied with the usual snark, and then wrote his own app. Consistent!

  • I've dropped it several times now, and have inflicted one scuff, making it no longer pristine, which means I can now stop worrying about it. If I was an apple user, I'd would now have to buy a new phone, a haw haw haw.

  • While searching the wikipedia article on micro USB for more things to complain about, I discovered a significant technical advantage. The micro USB standard puts the retention hooks on the cables instead of the receptacle, and since the retention hooks are usually the first thing to wear out, this means the micro USB receptacle can be rated for something like 10,000 insertion cycles, which is important, since it's attached to $400 worth of phone. Dilemma! I hate new things, but I also love them!


Posted by bbot | Permanent link | File under: Etc

Fri Jun 19 18:11:39 UTC 2009

fun with wget

So one Matt Blind, author of an excellent piece on bookstore customers also happens to produce bestseller lists for graphic novels. How? Well, in his own words:

The Core of the Charts is made up of data from three sites: Amazon, Barnes & Noble, and Borders.

Once a week, I visit each site to check their Graphic Novel categories, and I sort the search results by "bestselling". The links above will pull up exactly that.

I then click through, page after page, and type the titles into a spreadsheet in the order that they are ranked on the sales site. [this is the hard part]

And once I have a full list, I assign points to the books depending on how highly they rank. Add up the points each title earns (and add on similar data from a half-dozen second-tier sales sites) to get a composite score, and there's your ranking.

In concept, it's that simple.

In practice, because the sites themselves can update as often as once an hour, after I load up a website & sort the search results, I then click open each new page in a new tab until I have 20-100 tabs open, representing a snapshot of the full sales (top 900-1200 titles) of this particular sales site over a relatively short time-frame (10-15 minutes). And then I start the data entry.

Wow, that sucks. What did Raymond say about data entry?

Hackers (and creative people in general) should never be bored or have to drudge at stupid repetitive work, because when this happens it means they aren't doing what only they can do -- solve new problems. This wastefulness hurts everybody. Therefore boredom and drudgery are not just unpleasant but actually evil.

You're right, Raymond! This sorely needs some automation.

But complete automation would be Nontrivial, so lets take the merest of first steps. Opening hundreds of tabs sucks. How about just one tab?

First thing, I wrote a little bash script to generate the links list, since it would, of course, be 101 lines long, and I didn't feel like copy and pasting each one from firefox, or whatever.

First, let's look at the base url.

http://browse.barnesandnoble.com/browse/nav.asp?No=10&N=0+989443&Ne=989443&visgrp=fiction&act=BC_ANC

Clicking on "next" results in:

http://browse.barnesandnoble.com/browse/nav.asp?No=20&N=0+989443&Ne=989443&visgrp=fiction&act=BC_ANC

The string of interest is "No=20", which increments by ten every page. So the resulting script is:

for (( i=30; i <= 1000; i=i+10 ))
do
echo "http://browse.barnesandnoble.com/browse/nav.asp?No=$i&N=0+989443&Ne=989443&visgrp=fiction&act=BC_ANC"
done

This script creates a variable (i), sets it to 30 (i=30), tells it to run the loop as long as i is less than or equal to 1000 (i <= 1000), then increments i by 10 each loop. (i=i+10). It then inserts the current value of i in the base url. It starts at 30 because I already had the first three pages of sales ranks.

Running this script and piping the output to "links.txt" results in a 101 line long text file, with a url on each line. We tell wget to use this file, to wait a random time between 0 and 2 seconds between hitting each link, and to use the user-agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)", who happened to be the most recent visitor to bbot.org when I plundered the log for user agents. We also tell it to log to wget.log, and to be verbose, because --verbose is awesome.

wget --random-wait --user-agent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" --input-file=links.txt --output-file=wget.log --verbose

Wget then hogs the terminal, but remains silent, because we told it to output to wget.log. We can watch along in another terminal by tail -f'ing wget.log, and occasionally ls'ing. It goes pretty fast, taking 20.52 seconds to download 7.4 mebibytes worth of html. After cat'ing everything you end up with a mighty browser-crushing 7.4 mebibyte html that makes Opera colossally unhappy, but which Firefox can handle fine-ish, and takes forever to upload, so we bzip it to a svelte 220 kibibytes.

http://bbot.org/sales.bz2

Standard large html file disclaimers apply. It's big big big, media rich, and outrageously malformed.


Posted by bbot | Permanent link | File under: Linux

Wed Jun 17 05:04:09 UTC 2009

good news, everyone

Two things of note for enormous nerds:

A Spellchecker Used to Be a Major Feat of Software Engineering

Here's the situation: it's 1984, and you're assigned to write the spellchecker for a new MS-DOS word processor. Some users, but not many, will have 640K of memory in their PCs. You need to support systems with as little as 256K. That a quarter megabyte to contain the word processor, the document being edited, and the memory needed by the operating system. Oh, and the spellchecker.

For reference, on my MacBook, the standard dictionary in /usr/share/dict/words is 2,486,813 bytes and contains 234,936 words.

The tone of the article is, "Computers used to suck, but now they don't. And you kids better appreciate it."

New Exotic Material Could Revolutionize Electronics (paper abstract)

ScienceDaily (June 16, 2009) — Move over, silicon—it may be time to give the Valley a new name. Physicists at the Department of Energy's (DOE) SLAC National Accelerator Laboratory and Stanford University have confirmed the existence of a type of material that could one day provide dramatically faster, more efficient computer chips.

Recently-predicted and much-sought, the material allows electrons on its surface to travel with no loss of energy at room temperatures and can be fabricated using existing semiconductor technologies.

Bullshit. Room temperature superconductors are like gravity shields or picotechnology. Would be nice to have, but zero evidence suggesting their actual existence.

I know, right, italics man? Apparently it's not a general room temperature superconductor, existing as a thin layer on a substrate, and capable of carrying only tiny amounts of current. But transistor interconnects don't need to carry a lot of current. And man, it would be nice to have.


Posted by bbot | Permanent link | File under: Etc

Tue Jun 9 19:41:08 UTC 2009

jesusphone day two

After using the Pre for a few days, there's a couple of nits I'd like to pick.

The micro usb port is covered by a fiddly little friction-fit dust cover, which must be a feature designed to offset the convience of a single charging standard, since it was also on my work phone. I ripped that son of a bitch out, since life is too short to spend five minutes spudging the little bastard out with my fingernails every time I want to charge the phone.

The software is very clearly a 1.0 product. Not the OSS 1.0, where a major version number means that the result is bulletproof, but a Microsoft 1.0, which is whatever code checked in when the deadline hits, then shoved out the door. Gestures aren't recognized, window managers get confused, browsers refuse to respond, mp3 playback stutters and occasionally fails. (!)

But it's cool, I bought a gadget on launch day, I knew what I was getting into. Early adopters are the ablative minesweepers of the tech world, blundering onto high explosives as to clear a path for the normal people.

But the camera app. Oh man, the camera app. Let me show you a picture.

The camera isn't magic. It's a tiny, high resolution sensor paired with a tiny, cheap lens, and has the usual bucket of phone camera problems. Terrible low light performance, buckets of chromatic abberation, barrel distortion, lousy focus, electronic shutter artefacting, I could go on. But it's a phone camera! You're not going to be using it for anything serious, so who cares?

But, amazingly enough, the camera software manages to be the weak link in this equation.

Look at that picture again. It's okay enough, even though you can still see sensor noise at, what, 15% of the original resolution, but otherwise it's a perfectly serviceable motion blur shot of a testing Link train, if that was what you were going for. Which it wasn't.

(Background, for those unfamiliar with Seattle mass transit. This picture was taken in the Pioneer Square station of the downtown Seattle transit tunnel, which, for the last twenty years, has been keeping buses off of the surface streets, and from making Seattle traffic that much worse. A couple of years ago it was retrofitted to carry light rail traffic, as part of the grand Link Light Rail project, opening July 18th, and for which it will eventually be dedicated to, around 2020. Recently our fine elected officals have been talking up how the tunnel is the only in the world to carry both bus and train traffic, presumably because it is an election year and they want to take as much credit as possible for the $BIGNUM billion dollar project they've been babying for the past decade.)

Here's the process I went through to take that picture, presented in ordered list form, because I just can't get enough of it.

  1. Notice, by the thundering ringing, that, unusually, there is a testing train pulling up to the platform. Decide to take a picture.
  2. Navigate out of the mp3 player and tap on the camera icon.
  3. Wait ten seconds. The train has now come to a stop.
  4. The app has finally opened, but the UI isn't showing up, and it's ignoring key presses.
  5. Wait fifteen seconds.
  6. The UI finally appears. Press the green "take picture" button.
  7. It makes a clicking noise, but, used to its lies, you keep the camera pointed at the train. DHS guard looks at you funny.
  8. The train starts pulling away, and the screen freezes. This means it has now captured a picture.
  9. Wait ten seconds.
  10. The app becomes responsive again. Tap on the "open gallery" to view the photo you just took.
  11. Wait thirty seconds.
  12. Wail. Gnash teeth. Curse Palm, Sprint, the shareholders and employees of each, and yea, unto the third generation shall you inflict your vengence, great and terrible, for these brigands shall long for death afore your hatred grows dim.

The engadget review mentioned the quality and lack of shutter lag in the camera application. Golly, he must have gotten the Reviewer's Version, the software lacking the hideous, showstopping bugs that Palm instead inflicted on their paying customers. I would like that magical, non-shitty camera app too, Palm.


Posted by bbot | Permanent link | File under: Etc

Sun Jun 7 03:11:11 UTC 2009

buying the new jesusphone

I got a Pre! It was A Production.

I woke up at approximately 1030 on Saturday morning, thinking vaguely of hitting the union street sprint store and buying one. I called them, at which point they informed me that Quantities Were Limited, so I changed targets to the pine street store. I arrived around 1200 and played with one of the extensively smudged demo units until a employee freed up. During the purchasing process, she told me to never, never ever take the battery out, since it would erase the memory of the phone. Hilarious, since one of the big PR zings against Apple was that the Pre had a removable battery. The box also warned strongly against using a non-Sprint/Palm approved charger, which was additionally hilarious, since PR zing two was that the Pre had a standard micro-USB port, rather than a proprietary power/data connector.

Transferring the number from T-Mobile to Sprint was, of course, fraught with difficulty. Employee Diana implored me to not turn on the phone until my old phone stopped being able to place calls.

While waiting for my phone to stop working, I went to the Pike Place Crumpet Shop, unwisely drank three cups of tea, then relocated to a place with free wifi.

Keenly detecting that I had walked into a library, Sprint customer service rang me up. Apparently, shock of the ages, there was a problem with transferring my number, and they needed my t-mobile account number. After unsuccessfully grappling with t-mobile's morass of a site, rendered broken by no-script yet still achingly slow, we decided to conference call t-mobile's customer service, and attempt to wrest the account number from them directly.

T-mobile, in the interest of saving money, had outsourced customer service to some benighted hellhole connected to the rest of the world via tin cans and string. After the two CSRs read from scripts at each other, it was determined that they needed a PIN to release the account number to me. That's cool, except I had no idea what my pin was. After guessing several numbers, the t-mobile CSR determined that I had no idea what my pin was, and "transfered" me to another department, where they were allowed to ask me slightly more penetrating questions regarding my identity.

But several critical strands of twine couldn't handle the load of transferring the call, and we were disconnected. The Sprint CSR speculated that my PIN might be the last four digits of my SSN, calling into question why they didn't just ask for the SSN. We called again, the PIN was correctly guessed, and we began the arduous process of transferring a nine digit number between three people, with one of them stopping every thirty seconds to whisper "beg pardon?" and "say that again?" and "holy shit why does a phone company have such shitty call quality?"

Eventually the magic number was obtained, confirmed no less than three times, and the Sprint CSR informed me that basic service would be transfered at exactly 1928 hours Central time, with data service beginning a hour after.

So that's the state of play, as of 1530 hours Pacific. I await disappointment with Sprint, and mild glee with Palm.

UPDATE: 1554 PST My blackberry is now displaying "SIM card rejected", but we're still two hours from the weirdly specific activation time given to me by Sprint. So I can't use the blackberry, but I can't turn on the Pre. Sure hope nobody's trying to call me right now!

UPDATE: 1958 PST It verks! We sustained a flat tyre en route home, and after replacing it, a task made non-trivial by puny nerd muscles, we discovered that the spare was more or less dead flat. While waiting for the AAA tow truck to show up with an air compressor, I booted up the pre and ran through the tedious setup talk with a Sprint CSR.

After playing with it a bit, I discovered that it actually uses a micro usb connector, which is a lot like the mini usb connector, only more fragile, rendering my oddly extensive collection of mini usb cables and chargers from previous Motorola and RIM phones obsolete. Thanks, OMTP.

Also, as reported by Engadget, the Pre adds all your gmail contacts when you first start up the contacts application, which is great when your gmail contacts list is full of useless auto-generated entries.


Posted by bbot | Permanent link | File under: Etc