ath5k performance history

I was curious how well ath5k has been improving since its release, so I hacked up a little script to associate and do five minute iperf runs from /etc/rc.local. Looks pretty good so far (w-t is wireless-testing plus 5 or 6 extra patches I have brewing). The script is pretty kludgy, but may form the basis for some automatic build/regression testing in the future.
ath5k iperf chart

Berlin eats

Ange and I are back in the States after our wonderful break abroad. Now we’re home again, delighting in such missed American excesses as air conditioning, queen-sized beds, and monolingualism. The latter, actually, is our biggest regret of the trip: the next time we visit a country we’ll have to plan ahead and take a few language courses. Even so, we picked up the basics during our immersion, achieving a fluency on par with, say, a one-year-old who takes the subway a lot.

Our first exposure to Berlin cuisine was at a coffee house where we had a few of the sweet pastries that give the city its name, if I interpret that old JFK myth correctly. Jelly doughnuts, doughnuts shaped like pretzels, strudels, cheesecakes, cheese pastries, and so on were also amply supplied gratis at our hotel, so snarfing down on cakes with tea on the patio quickly became an afternoon tradition during the trip.

For street food, the main contenders seem to be all sorts of sausages, especially the currywurst preparation, and the döner kebab. Currywurst is essentially a sausage sprinkled with curry powder and doused in ketchup. It’s very good — any sausage in Berlin is about 50 times better than the brats one can get at home, though neither of us were really sold on the necessity of the curry powder. Not bad, just different. The döner kebab is more or less a gyro served in a spongy, focaccia-like pita, slammed with enough meat and vegetables to make holding it nearly impossible. I miss them already.

Our best dinner in a standard restaurant was at Florian, a German/Austrian restaurant around the corner from our hotel. The selection was game-influenced: Angeline had duck and I had a roast pig, all served with a hearty gravy and various starches. Both dishes were excellent; you can’t go wrong with roasted animals.

However, the culinary highlight of our trip was with the so-called “Shy Chef,” an underground restaurant. Our friends turned us onto this by sending us a story by Gisela Williams in a little-known rag, The New York Times. We were fortunate enough to grab a reservation the week after the story ran.

The evening before dinner, we got the email leading us to the restaurant’s secret location. Upon arriving, we found our way into a small Berlin flat with a table set for four. The proprietors are obvious bibliophiles, as is instantly inferred from the books spilling out of wall-length, floor-to-ceiling bookcases, and underscored by the Papa-inspired absinthe cocktails handed to us as soon as we entered the room. (As an aside, if number of bookstores is any indication, Germans are enthusiastic readers. We passed three independent bookstores every morning during the 50 meter walk to our nearby café. A far cry from our highly polished, soul-starved Borders and B&Ns.)

The hidden supper club is a wonderful concept: it’s very much like a dinner party with friends, only you don’t know your friends until you get there. The fare is as good as in any restaurant, but the authenticity and intimacy are unmatched. Our fellow diners hailed from NYC and Oxford and made for excellent company, as did our hosts.

I won’t go into too much detail of the menu, lest it lose some of the mystique, but the highlights for me were a velvety garlic-cauliflower purée with an inventive parmagiano reggiano “gratin”; thin-sliced salmon in olive oil with German bleu cheese, apple and cucumber matchsticks; and a very nice salty, paper-thin ham that recalled to me the country ham my Tennessean relatives cured themselves. The dishes were accompanied by generous wine pairings, together more wine than Angeline and I have had in the previous year or so, but all of them excellent choices. As the gentleman from Oxford said, the entire experience was “just brilliant,” and I am sure we’ll remember this dinner for quite some time.

That refreshing Georgia spirit

The Spirit of GeorgiaOne of our guidebooks claimed that while Coca-cola was ever present, Berliners drink their own local soft drinks. We haven’t found that to be the case; it seems only Coke products are here. Of course there are minor differences: regular Coke is made with sugar, Diet Coke (called “Coke light” here) has saccharine. Then there’s the stuff you can’t get back home (outside of World of Coke), such as “Mezzo Mix” which is essentially Coke with orange. I found this one, “The Spirit of Georgia” our first day here. Despite many years living in Georgia, I was not quite sure what our collective spirit was, but now I know it is yellow-tinted Sprite.

Hello from Berlin

Angeline and I arrived safely to Berlin a couple of days ago. So far it’s an interesting city. It would definitely be useful to have more than a passing familiarity with the German language, but most people understand enough English that we get by. The European style lights and bath fixtures take a bit of thought to operate. Train system is very extensive, and despite the presence of graffiti almost everywhere, the trains themselves are very clean. German television consists primarily of overdubbed US market cast-offs (“The Nanny” is inexplicably on nearly 24/7). Food so far has been hit or miss, some good stuff, some rather average; tomorrow night is our most anticipated dinner.

The wireless summit was great by the way, perhaps more on that later.

All accounted for

As a traveler through the DC Metro system in yesterday’s evening rush hour, I learned that Metro employees euphemize “horrible train wreck” as “train experiencing mechanical problems.” To what end? It just sounds callous, and all of the passengers on my unaffected route already knew of the incident.

Kernel 2.6.30

Linux kernel 2.6.30 is out, featuring the best mainline support for ath5k yet. I recommend if you do use wireless with 2.6.30 (or .29), that you also grab this patch which fixes a nasty memory corruption issue. That one haunted me for months but it was a great feeling to finally nail it down. Of course the fix turned out to be quite simple. It should be hitting stable in short order.

What to look for in 2.6.31:

  • AP mode (finally!)
  • better transmission power settings
  • enhanced support for regulatory domains
  • rfkill support

There are still a couple of bugs in AP mode and rfkill, but hopefully they’ll get ironed out in the next two weeks or so. It’s too early to make predictions for 2.6.32, but improved power saving is a possibility, and of course lots of bug fixes. I also hope to set up some automated testing now that I have more than one piece of hardware (thanks Luis!) and will be interested in seeing performance statistics since ath5k was introduced.

Next week, Ange and I will be heading off to Berlin, where I’ll be attending the Linux Wireless Mini-summit at FUDCon for a couple of days, and after that we’ll be staying a few days for vacation. I’m sure to return with a head full of ideas about 802.11 networking, and a belly full of beer and sausage.

More Recent Readings

The Island of Dr. Moreau, H. G. Wells.
*** Interesting how-to manual for teaching your pets to talk.

Dracula, Bram Stoker.
**** Classic tale of bloodlust.

Book of Negroes, Lawrence Hill.
**** Like Uncle Tom’s Cabin but not quite as sad.

“I, Robot,” Cory Doctorow.
*** Cory Doctorow pretends to be Asimov, but it’s not as bad as you’d think.

“Call of Cthulu,” H. P. Lovecraft.
** Do I get kicked out of the nerd club for thinking this was dumb?

City of Thieves, David Benioff.
***** Remind me not to grow up in war-torn Russia.

Garlic And Sapphires: The Secret Life Of A Critic In Disguise, Ruth Reichl
*** Reichl reminds us that gourmet dining is a big sham.

Barnacle Love, Anthony Da Sa.
* Bored me.

World Without End, Ken Follett.
** Pillars of the Earth with different names.

wl12xx howto

So, wl12xx definitely works including transmission, but I still haven’t fixed the rough edges in the driver. However, I did bother to make a semi-permanent writeup on how to build and use wl12xx on the G1 as it currently stands. I hope to clean up the warts and submit the patchset next week. Meanwhile, I have a lot of ath5k bugs to work on. Enough for today though.

Unvacationed

Ange and I just returned from a long weekend in Florida with my family. After a perfect storm of flight delays and down computers, and US Airways personnel blaming the passengers over the intercom for ruining their holiday, we arrived in the state a mere six hours late. Everything from then on was smooth sailing though: sparkling sandy beaches, excellent weather, lots of playtime with the kids, and so on. My nephews’ superhero kites did in fact fly — after a trip to the local kite store to pick up some tails. We got in a full day of standing in line at Disney World, and an afternoon traipsing through ye olde shopping centre of St. Augustine. And I mostly didn’t touch the computer the whole time.

Anyway we are back and reinserted to the river of normal life. This trip should hold us until a month from now when we will be flying off to Berlin, Germany. I get two days of being nerdy at the Linux wireless mini-summit, and then the rest of it will be spent enjoying the city.

First scan

Success! Scanning with wl12xx on my ADP1 works. I’ll post more later but here’s a teaser. That’s a real SSID, however apt.

# ./iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 00:0F:B5:63:30:4E
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=14/70  Signal level=-96 dBm
                    Encryption key:on
                    ESSID:"SERENDIPITY"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=000001dec907e41c
                    Extra: Last beacon: 160ms ago
                    (Unknown Wireless Token 0x8C05)