You are viewing gushi

I'm on the downeaster alexa

> Recent Entries
> Archive
> Friends
> Profile
> Gushi Land!
> previous 10 entries

August 10th, 2013

10:46 am - Travelocity Rant and Documentation

I've been in a long-distance relationship for the past few years. As a result, I book quite a bit of travel. The company I've chosen to do this with, is Travelocity. I've spent a LOT of money with them, mainly in flying my friends from all over here to the Bay Area.

  • I've had several occasions where I click on a flight, only to get to the checkout screen and find out that "The Price for this flight has changed". This is frustrating, but not inherently Travelocity's fault -- the airlines have two databases, one for availability and one for bookings, and pricing info differs occasionally.

  • I've had at least a few occasions where I've done several searches for a thing (different days, different times, etc), and have booked a flight...only to find that the flight I have is not the one I thought I booked. On at least one occasion, the answer to this has been "okay, book another flight" -- this has happened with other people in the room who watched me book it and have sanity checked me, but since we don't have a time machine, we may never know.

Travelocity staff: if you want to look over the number of "no-go" flights I've booked in the past few years, please do.

  • I've had one occasion where a flight couldn't be made due to illness, and I had bought Travelocity's insurance. I was told in no uncertain terms that the type of illness (cramps) didn't qualify, and I was out the price of a ticket, PLUS the fee for the insurance. Haven't bought it since.

  • I've occasionally just seen Travelocity's web site loop endlessly and tell me there's no flights, redirecting me back to their home page. I seem to recall it was doing this the night I booked this flight, which is why I used the app. Next time I see this behavior, I'll record it.

The "big issue" happened today.

On July 11th of this year, I booked a flight for my girl Mary Kathryn Williams (known to me as Kat) from Tampa, Florida to San Francisco. On the travelocity website, if you visit with an ipad, it pops up a display that says "Use our app!", so I did. Booked the usual flight. Traveler "Mary Williams". DOB Hers. When it asks for a confirmation email, I choose hers, not mine (because I can always log into the account to see details). Just so I have a record, I take a screenshot of the ipad screen. (My photo stream seems to be my second brain of late).

Trip ID: 631935337643. American Airlines flights 2009/1355. August 9th.

Fast forward to today: I get a call from Kat -- at the airport -- saying "There's a problem -- this ticket's in Dan Mahoney's name". We have tickets to the very last showing of a live concert, tomorrow at 8PM.

I haven't ever seen the confirmation emails, I always send them to her, so I can't say for certain whether it would have been obvious that there was a problem -- after all, my name's likely to be in there somewhere, it's MY ACCOUNT, so this is probably easy to gloss over.

I call travelocity from my desk phone -- and sit on hold for 20 minutes.

I then try them at a different number -- and get past the hold queue in five minutes, to someone who is reasonably easy to understand, but still has an "outsourced" feel. I drop the call from my desk phone.

I explain the situation to the agent that answered. He says "this is up to the airline", and places me on hold for about ten minutes. He comes back on the line and tells me that the airline "has refused" to make the change, and the only thing they can do is try booking another seat.

He checks, quickly, and tells me there's no seats available, at any time today, on any airline, at any price.

I ask him for the number for the American, and hang up.

I call the airline (American) -- get through to someone in about three minutes. Explain the situation. He tells me I need to speak with Travelocity -- and I explain that Travelocity is saying I need to speak with the airline. Since the person who tells Kat if she can get on the plane has a uniform with an American logo on it, and the big flying metal tube says American, I'm pretty sure the airline's the right answer.

The gentleman laughs a bit at this logic "I need to ask my helpdesk about this", and comes back in about five minutes.

He tells me that there's three options, and they're not great options, but they're options.

First, would be to try and move the flight out to a different day, which gives us more wiggle room on this, time to solve the problem. I don't find this particularly acceptable.

Second, is that the person who actually has the call on this is the Airport Manager, and that she can ask to speak to them and get the name change approved. While I might suggest this if I were there to flash my ID and my credit card and say "look, Travelocity messed up", I'm not there to do so.

Third, he tells me, is I can just buy her another ticket. He checks, and suprisingly, he DOES have another slot free for her -- a slot that wouldn't be available to Travelocity's people. Problem is, it's not cheap, since it's basically a same-day flight. $500ish.

I say "Okay, this is a problem I can solve by throwing money at it. You guys take Visa?"

We go back and forth a bit, because initially, he's telling me Kat will need to pay (but Kat has a credit card on my account, so this isn't a problem -- yay for forward thinking), but then the system appears to let him book it. He gives me a confirmation code, I text it to Kat, and life is good.

Finally, he asks me what to do about this other reservation, and tells me that it's my choice on whether he cancels it or not, but that if nobody checks in, and it goes to a "no-go" status, then I'm more likely to be out the money. I agree, and he cancels it.

I call back Travelocity, and get a different agent. I give them the story to date, and say "okay, so I've now got a credit, right?". And they confirm, yes, I have a credit. Which must be used through travelocity and for flight by me on the same airline.

He tries telling me that "the airline holds the credit, not travelocity" -- and I don't understand that. Okay, so I have a credit with the airline. There's presumably some kind of ID they can give me, and step out of the transaction at this point. Right? Wrong.

I'm a heavy guy, and a bit of a libertarian. By flying, I inconvenience other passengers, so I don't fly without a really good reason. I flew out a year ago for Kat's conversion (and a friend hooked me up with First Class travel, which was a world of difference from nearly every point of view). I fly if business mandates it -- once every two years or so, and even then I have my company buy the second seat.

I confirm that in the future, if need be, I can use this credit by calling travelocity (which would eliminate pretty much the convenience of using a web site -- or being able to search multiple airlines for deals.

Ergo, I call my bank, Chase. I explain the situation -- that the app messed up, because there's no possible way I would ever list myself as a traveler, flying out of a city I don't live in, and I initiate a chargeback. Travelocity's software (either on my ipad, or on their site) had a glitch.

They tell me the funds -- $240.80 -- will be back in my account within 12 hours, and thank me for being a customer. Yes, travelocity may dispute this chargeback, but that's why I'm documenting this here.

I've shouted out to Travelocity on Twitter -- I'm still shocked that one can get a message through to customer support and people who are enabled to act faster there than by calling a phone number and speaking to people 1:1.

My advice: You've lost a customer. From now on, we're going to figure out which airline works for us, and book through them.

All you have to do to solve this problem FOR ME is "don't dispute that chargeback". Your app messed up. I'm a techie, I'm good with the computers, and I'm 100 percent certain of what I put in those fields in your app.


@travelocity (still not sure if that should be capitalized) started following me on twitter, and asked me for my trip ID and my phone number. I linked them to THIS ENTRY (which is everything you're reading except this update section), and said "If you still feel we should talk, here's my number")

I was called a few minutes later by someone who...

  • hadn't read the link -- in fact, hadn't even been FORWARDED the link. (Sorry, was 140 characters too much to pass on?). Strike one.
  • Called me Ma'am, more than once, after being corrected.
  • Told me that they'd only grant me a refund if the "footprints from the app reveal an error" -- I guess meaning they're handing this to the dev team. I responded that yes, I'd love this fixed, but they've already lost a customer, and I've already had my bank give me my money back. The best thing you can do, once again, is don't dispute that claim when it comes in.
  • Before hanging up, told me "Thank you for calling travelocity". WTF? YOU CALLED ME! Are you really that incompetent that you can't remember who dialed and who answered?


The show we were going to see has extended its run for another three weeks, so there's a silver lining.

The flight wasn't meant to be: All flights out of Tampa were delayed because of a tornado watch, so Kat would have missed her connection at DFW, and would have gotten the privilege of sitting at the airport until 7AM, so the flight had to be scheduled for the following day, anyway. I don't have a phone number or twitter handle for the entity responsible for tornadoes...but I do hear He's on Google+.

(1 comment | Leave a comment)

May 16th, 2013

02:37 pm - How to build wkhtmltopdf 0.9.6 under FreeBSD AMD64

Installing wkhtmltopdf 0.9.6 under FreeBSD

At my day job, our knowledge base software needs a specific version of wkhtmltopdf to work. Further, it needs the version built against a specially patched set of QT libraries in order to do certain critical things (for example, to run headless). If you run ./wkhtmltopdf against a non-patched version, it will issue this warning:


Reduced Functionality:
  This version of wkhtmltopdf has been compiled against a version of QT without
  the wkhtmltopdf patches. Therefore some features are missing, if you need
  these features please use the static version.

  Currently the list of features only supported with patch QT includes:

 * Printing more then one HTML document into a PDF file.
 * Running without an X11 server.
 * Adding a document outline to the PDF file.
 * Adding headers and footers to the PDF file.
 * Generating a table of contents.
 * Adding links in the generated PDF file.
 * Printing using the screen media-type.
 * Disabling the smart shrink feature of webkit.


FreeBSD has a port for wkhtmltopdf, which includes a patched QT, but version 0.9.6 will not build against this patched QT. Thus, we need to build both from scratch.

Further, when attempting to build the patched QT from source, there are at least two active bugs.

First, javascript compilation will fail with a couple of minor type conversion errors.

This is a similar error reported with another piece of software:

../JavaScriptCore/runtime/JSValue.h: In constructor ‘JSC::JSValue::JSValue(JSC::JSCell*)’:
../JavaScriptCore/runtime/JSValue.h:472: error: cast from ‘JSC::JSCell*’ to ‘int32_t’ loses precision
../JavaScriptCore/runtime/JSValue.h: In constructor ‘JSC::JSValue::JSValue(const JSC::JSCell*)’:
../JavaScriptCore/runtime/JSValue.h:478: error: cast from ‘JSC::JSCell*’ to ‘int32_t’ loses precision
make[1]: *** [WebKit/gtk/WebCoreSupport/libwebkit_1_0_la-ChromeClientGtk.lo] Error 1

Patches in this bug listing tell us how to fix it, mostly (the patches are not FreeBSD specific, but the exact nature of the fix is easy to glean).

Second, WebKit seems to suffer a bug (referenced here) whereby it will pick up the system header files (even if you've told it to build with the builtin versions), so it will believe that the list of available functions is off, with an error like:

: undefined reference to `png_set_longjmp_fn'
/data/home/dmahoney/wkqt/lib/libQtGui.a(qpnghandler.o)(.text+0x1b7c): In function `QPngHandlerPrivate::readPngHeader()':
: undefined reference to `png_set_longjmp_fn'
/data/home/dmahoney/wkqt/lib/libQtGui.a(qpnghandler.o)(.text+0x23a0): In function `QPngHandlerPrivate::readPngImage(QImage*)':
: undefined reference to `png_set_longjmp_fn'

It's my hope that I can show how to get this tool, at this specific version, to install, and help others who may hit this. I'm also pasting in the actual compiler output such that people can google for it and find this entry.


It's probably a good idea to make and install this port anyway as it will pull in a bunch of X11 and font dependencies that we may later need, but once it's installed, it's probably safe to "make deinstall" it.

Part 1: wkhtmltopdf-qt

Get the wkhtmltopdf source

We grab the source for wkhtmltopdf at this phase because we need a file from it to get the build arguments for qt. Grab wkhtmltopdf version 0.9.6 from google code downloads page. Since it is a deprecated release, it will not be in the default list. Go here Select "All Downloads" and search for 0.9.6, to get:

Grab this with "fetch" or "wget" or just scp it over to the system.

Get the wkhtmltopdf-qt version you need

There was, at one time, a git repository at: git:// It no longer seems to answer.

Luckily, the repository has been mirrored onto Github.

Clone wkhtmltopdf-qt from this github page, then isolate it down to the 0.9.6 release tag.

%git clone git://
Cloning into wkhtmltopdf-qt...
remote: Counting objects: 563729, done.
remote: Compressing objects: 100% (104214/104214), done.
remote: Total 563729 (delta 455301), reused 563645 (delta 455222)
Receiving objects: 100% (563729/563729), 376.20 MiB | 2.34 MiB/s, done.
Resolving deltas: 100% (455301/455301), done.

(the above took about ten minutes on my very fast connection)

You can see that there are several "tagged" releases of code in this repository:

%git tag -l

So you're going to want to reduce the repository to that version:

%git checkout wkhtmltopdf-0.9.6
Checking out files: 100% (22888/22888), done.
Note: checking out 'wkhtmltopdf-0.9.6'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at e63d059... Fix pdf title writeout

(this took 3-5 minutes) Welcome to 2010!!!

Without the output, the two commands you really need are:

git clone git://
git checkout wkhtmltopdf-0.9.6

Patch wkhtmltopdf ### :

There's a trivial change we need to make in the javascript code if we're on a 64 bit platform.

Manually apply this patch, but add a line for PLATFORM_FREEBSD.
So, on line 721 of ./src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h, change:




Do the same on line 712 of ./src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h.

Configure wkhtmltopdf-qt

Per the build guide, you can get the configure arguments by doing cat ../wkhtmltopdf/static_qt_conf_base ../wkhtmltopdf/static_qt_conf_linux | sed -re 's/#.*//'

Then, you get to go into a text editor and put them all on one line.

./configure -release -static -fast -no-exceptions -no-accessibility -no-stl -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql \
-no-sql-sqlite -no-sql-sqlite2 -no-qt3support -no-xmlpatterns -no-phonon -no-phonon-backend -webkit -no-scripttools -no-mmx \
-no-3dnow -no-sse -no-sse2 -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -graphicssystem raster -opensource \
-nomake tools -nomake examples -nomake demos -nomake docs -nomake translations -no-opengl -no-dbus -no-multimedia -fast -openssl \
-largefile -rpath -no-nis -no-cups -no-iconv -no-pch -no-gtkstyle -no-nas-sound -no-sm -no-xshape -no-xinerama -no-xcursor \
-no-xfixes -no-xrandr -no-xrender -no-mitshm -no-xinput -no-xkb -no-glib -no-openvg -no-opengl -no-xsync -no-svg -prefix "../wkqt"

(later amended to add -system-png instead of -libqt-png, due to a QT bug whereby QT will use the system header file but build against the bundled lib, thus causing linking errors)

Once you type this, you'll have to type "yes" to accept the GPL. (Yes, GPL code with a EULA). It will run for a few minutes.

Build the library

If all went well, all you should need to do is:

gmake -j3 && gmake install

When this is done, you should have a "wkqt" directory just above your build dir, that has a ./bin/qmake in it (along with some other stuff).

Building wkhtmltopdf itself

This one is shockingly easy, presuming all the rest of the code worked:

cd ../wkhtmltopdf

(I get a warning about WARNING: /data/home/dmahoney/wkhtmltopdf/ Unable to find file for inclusion /data/home/dmahoney/wkqt/lib/QtGui.framework/QtGui.prl, but this seems to be mostly harmless since we're building a headless version.

Then, type make. It should spin for a few more minutes, and if all went correctly, you should have a wkhtmltopdf file in your home directory.

Test it with ./wkhtmltopdf and see if you get a basic help page. If you do, you're probably in business!

Finishing up

If you're going through all this pain for Knowledge Base Manager Pro, copy it to the appropriate directory in your web root, and test it out.

If you're doing this for some other reason -- like, "you like running old, hard to compile code when there's an easy install option", there are self-help groups and therapy for this sort of thing :)

You probably don't need the "wkqt" directory any more, and you can probably also delete all the source files after that.



Compiling Guide:


wkhtmltopdf: wkhtmltopdf-qt:

About the author

Dan Mahoney is a sysadmin in the San Francsico Bay Area. He fixes computers.

(Leave a comment)

March 23rd, 2013

01:23 am - The Smart Radio Rant


The Smart "Highline" radio is an option I paid over a grand extra for in my 2013 Smart Fortwo (a car which I otherwise love). It offers touchscreen CD/DVD/MP3CD player, plus SD card support, bluetooth support, AUX video and audio in. For a brand I've otherwise been incredibly impressed with the design of, this one niggling detail seems to be where the ball was dropped. It's well known that the radio component was basically shopped out to Bosch, a german engineering firm with divisions that make everything from Brake Pads to dishwashers. While not only did Bosch really fail to capture the ingenuity that Smart has shown in other areas, they've mismanaged some features as to make the car less safe (a great example would be that there's no way to turn off the screen!).

NOTE: I should also mention that Smart has an "iPhone Kit" available for use with their stock radio. I haven't used it, nor do I think I have the option to do so. It's a $400 option, plus the install fees, and I don't think it's designed to work at all with the Highline model. From my readings, it's mostly designed to give you some "light" features of the highline radio, plus comes with a dash-mounted dock connector (which means its support stops with the iPhone 4s).

I kind of go on a bit of a diatribe here, but the intention is to actually prepare a list to give to Smart, because it almost feels like this radio was designed by people who don't have to use it. As one of my friends (a software engineer himself) said "I'm an engineer, I am qualified to diagnose broken".

Phone Issues

  • The "highline" radio includes a microphone which is used for interfacing with your cell phone, as well as triggering the voice-activated NAV functions. The microphone is implemented as a "pinhole" in the bottom right corner of the screen. This location is simply a joke. Both voice commands to my phone as well as phone conversations are constantly misheard, even if I shout. I originally reasoned that the microphone is not elsewhere in the car because Smart only wanted to install a single "head unit", but there's a subwoofer under my seat, six speakers throughout the car, a GPS antenna somewhere. Adding one more component can't be that hard.

    Suggested improvement: Mount the microphone directly in front of the driver, either in the dash or up by the visor.

  • Iphone compatibility is damaged. Siri-based phones have been out for nearly a year now, and yet we still don't have a standard button to press to "talk through" to the phone's voice dialing. If I press a button on the iphone I can trigger siri, but because of the microphone issues, I might as well just get a bluetooth headset. Also, at that point it's no longer a "hands free phone" by some definition of the law.

    Suggestion: There's a way to do bluetooth open-channel where you simply connect to a phone's voice-dialing input. The cheesy retro-bluetooth-handset I bought for $20 at Micro Center supports it. Find it and implement it.
    (Note, it took me about five minutes of googling to find it -- it involves sending "AT+CKPD=200" over the command channel to the phone). Apple could also work around this by giving you a "contact" which just calls the siri interface. They haven't. They shouldn't have to. This has been part of the bluetooth spec since the beginning.

  • The device supports two different "address books", one downloaded from the phone and I guess the other is "local" (because for some reason you want a contact that exists in your car but nowhere else?), but the radio just calls them "1" and "2" with no real good explanation. I can navigate through these and choose to call someone, while I'm driving. This was NOT one of the features that was locked out by the "need to be in park" mode. There's a better interface -- my voice -- built into the phone, but Smart is making it hard to use it.

  • Note that siri defaults to having its audio be via the car rather than using the on-phone microphone which can hear me fine three feet away. This is perhaps something apple should add a preference for (use builtin mic for siri, but play output via bluetooth).

  • No access to the contact list in my iphone (this appears to be fixed in IOS 6).

  • When a call is active, the "CALL ACTIVE [NAME]" takes over the screen. That is to say, the NAV disappears, with no way to switch back to it while a call is active. The ONLY trace of the nav when you're on the phone is a single "next turn" indicator, which doesn't even include the road name.

Radio Issues

Where it gets truly annoying is that this device, for which I paid a lot extra, actually fails in several ways to be an actual car radio!

  • For some reason, Bosch felt the need to draw on the screen an actual dial with an actual needle (you know, a thing that any car radio over $50 hasn't had since 8-track players were an option), and made it a "feature" that you can tap on the dial to jump to a given frequency. It's about four inches wide. My finger is about 3/8ths of an inch wide. There are 101 possible FM channels, and I'm ostensibly driving when I'm using this thing. I don't think a brain surgeon or expert gamer could hit the dial that accurately, to be able to use this to jump to a specifically desired frequency. This feature is always visible, but...

  • There are only four presets visible on the main screen -- with no option to jump to the next four (in "dumber" radios, this is accomplished via either having a second FM station (fm2), or by pressing the button twice). Even old car radios from the 1970's with physical buttons had five choices. There is an option to go to a second screen and SCROLL VERTICALLY through up to 25 presets (of which I think six are initially visible, and four of which are your main presets).

    Suggested improvement: add a page two, or second row or presets, or the ability to press a button twice to get a second station. Rip out the stupid analog dial, and give me more buttons.

  • Braindead scan function. (I.e. start jumping stations, stop when I press a button). Even the most basic of digital radios 20 years ago had this!!! I found after a month it and it's buried three menu-levels deep [station list icon, magnifying glass icon, "Frequency Scan"], and doesn't actually show the station frequency when it's doing it, instead only showing the RDS text, which at times is something like "TODAYS TOP HITS!"

    Suggested improvement: (It would be more helpful perhaps to display the PS (programme service) field instead of the RT (radio text) field during this.

    Suggested improvement: put scan-forward and scan-backward buttons on the home screen, right in the same region as the "seek" buttons.

  • No HD Radio. Presumably, this could be because of lack of adoption outside the US (since the smart is sold in more countries than the US).

  • No satellite radio. (Again, sirius and XM are only available in the lower 48), so if you're Bosch and trying to make a radio that works everywhere, I understand that this is a non-starter. Also, one can justify the smart as a "city car" and not needing this option, but I certainly would do a road trip in it.

    Suggested improvement: Make it an OPTION. All you need to interface with a satellite module is an rs-232 and a line-in. The radio already has line-in and USB (and I suspect it's running linux), so I fail to see what's hard about making an expansion module.

  • The RDS text is highly inconsistent in the US (details here, but in many places, the radio doesn't provide the option to display station AND text on a button, unless you manually edit. For example, instead of a button saying "Public", you could say "88.5 (Nati". This happens in the stored station list, in frequency scans, in the four short buttons on the home screen.

  • This is minor, but the size of the frequency display REALLY could be bigger, in lieu of some of the other onscreen cruft.

  • They bothered to put a voice input module in the NAV but not in other modes (at least, that I've found).

  • Occasionally, changing a station will result in a screen pausing for up to five seconds and just saying "RDS SEARCH".

    Suggested improvement: Don't do this. Whatever's causing it, find it and don't make it a blocking operation.

  • Playing audio over bluetooth from an iphone was previously very buggy (not sending track data consistently, not having controls work reliably) but this seems to be much better in IOS 6.

  • Connecting an iphone via the USB port basically forces the phone to think there is an accessory attached. The best way to describe this is to say "try it". It makes using things like Siri problematic at best, it tends to mess with the ability to use third-party-apps (like Pandora) to play audio, although they work if you have the app running before you dock the connector. Since bluetooth is the superior protocol from the point of not-disabling-phone-functions, my workaround for this is to get a "charge only" cable that supplies power, but not data to the dock connector. Putting a second "power only" USB port in the radio would also work well.

Navigation Issues

  • Navigation input is not possible while driving. I understand this is a "safety feature" but the Smart has two seats, and some of us have passengers who can enter our destinations for us. Also, somehow, tapping in an address is dangerous, but having to tap at three different regions of the screen and then scroll though a list of 25 presets is safe? Heck, the car even has a detection mechanism for if someone's in the passenger seat (and handles seat belt alerts and the annoying "passenger airbag off" lamp), that could be used for this.

  • The voice detection for navigation is broken for the same reasons as "phone" above. It works well if you're at a dead stop with no air conditioning running. Otherwise, this potentially useful system is defeated by poor microphone placement, as well as a poor quality microphone.

  • The volume at which the Nav speaks over the radio is difficult to set. I'm not sure exactly what it means, but the setting seems to keep the nav at the same volume, and adjust the radio volume up or down relative to that, on some kind of 1-7 scale. Other systems I've seen have the simple metric of "turn the volume knob when the source is active" (so if you used the volume knob when the nav was talking, it would lower the nav).

  • The NAV is really chatty, such that attempting in my region to listen to a podcast is nearly unlistenable with the level of interruption. We've found hacks for this like putting an address in, but not hitting "start navigation" until we're most of the way there. When I say chatty, I mean at times I'm told every two minutes "keep left to stay on this highway, in point-six-miles, keep left to stay on this highway, keep left to stay on this highway, follow the road until further directions"

    Suggestion: In most other radios, turning the volume knob while a source is running (like while the NAV is speaking) affects that source. Implement that.

    Suggestion: When playing a selection from an ipod such as a podcast or song (over bluetooth or USB cable) it would be helpful to have the option to pause the audio rather than talk over it.

Overall Issues

  • No way to black out the screen without turning it off. Sure, you can drop into the settings and change the contrast manually (to a point), but there's no "display sleep". If you want any kind of entertainment, you are relegated to a glaring 4x6 rectangle in your field of view, all the damned time. You can't do nav with voice-only, you MUST have a screen in your field of view. Note that this is not the same problem you have with a phone in your pocket reading off instructions, or with a store-bought Garmin Nuvi, which you can place face down if you don't want to be distracted.

  • The fact that it's a touchscreen means that by design one has to take their eyes off the road to look at it. There are no "touch cues" to guide the finger to the right location, like you might find on some touchscreen ATM's.
    However, this could be deflected by putting some of the most-used commands in key areas on the Bezel, and by adding some indentations.

  • No remote. Seriously, going to an all-touchscreen interface makes the car radio FAR more dangerous. Even a HANDHELD (or steering-wheel-attached) remote would be useful. (Some thumb-buttons on the front of the paddle shifter, maybe? Something that clips on to the steering wheel, or on to the "wings" of the steering wheel, so we have the option to use them or not?

  • Whenever I turn the radio on, I have to click "OK" to a prompt that looks like "Do not let the system distract you from the traffic situation". I'm sure there's some lawyer that warranted this. However, the radio has video functions in that can only be used in Park. I understand that there's a liability issue here, but if I am doing a road trip with a passenger who wants to be entertained (think: small passengers) then please let ME decide that I think I can keep my eyes on the road if Spongebob is on. Modifying the radio to defeat this feature is as simple as cutting and splicing one wire, but I shouldn't have to.

  • This is admittedly minor, but I often close my glovebox door on the cable when I have my phone plugged into the USB port to charge. Giving me a place to cleanly route the cable without pinching it would be nice.


In case it seems like this is all negative, I should mention that the system SOUNDS great. When I play my music loud, it doesn't distort. Yes, it's six speakers and a subwoofer for a 2-seater car (so a maximum of four ears).
But in a car where everything else is SO well designed, they could do more.

I've noted that there is a new software update for the radio that MAY fix a few things. Let's hope.

(Leave a comment)

March 10th, 2013

12:37 pm - The fight against spam

The problem

I'm reasonably well-known for being a mailserver-tweaker. I like to tune both my personal mail config as well as that of my server. I actually try to report spam back to the places it's coming from. I participate on the mailing lists that make spamfilters better. I try to be a responsible mailserver admin.

But one of the biggest companies out there has had some users with compromised accounts sending me spam: Yahoo.

Now, this isn't people forging domains -- these are legitimately coming from the Yahoo mailservers, with all the headers matching.

The mails typically consist of a single-link, like this one:


Now, in talking about this, my goal is to get the messages to stop not-getting-hit by the mailfilter. If the messages stop coming out of a trusted host like Yahoo, that's a plus too. (We can blocklist some nowhere-mailhost in guam, we can't blocklist Yahoo). I don't particularly care about the sites getting taken down, they'll just crop up elsewhere. The goals are either that we can better flag the messages, or they stop coming.

On the better filtering front

So, what does one do about a message that's just a link? As it happens, there's actually a tool that lets you check the "spamminess" of a link inside a message body. That tool is called SURBL. It basically looks at the "first level" of the domain, and compares it against known reports of badness.

One of the ways to report URL's to SURBL is via SpamCop, which I typically use anyway to report a lot of my spam that gets past my mail filters. Spamcop accepts mail from my mail filter's "reporting" engine, and then sends me to a web page where I have to look over a message and confirm that "yup, that's spam allright". There's NO way to do this without my intervention, and still have the actual body of the message be parsed (and thus potentially fed to SURBL).

Spamcop does offer a "quick" service that would seem to report the mail servers involved, but which wouldn't act on the links inside the body.

I note that when SpamCop sends my reports along to Yahoo, they do so to a special "spamcop" address, not a general "abuse@" one, which seems to be somewhat broken.

On the "Getting Yahoo to cut it out" front...

Well, while I've already reported the mail to Yahoo via spamcop, I'd like a way to more immediately report these to Yahoo (since spamcop has to wait for me to go hit that webpage), so they can cut off compromised accounts earlier.

RFC2142 seems to state that all people running network operations should support the generally-agreed upon standard abuse alias.

And yahoo does...kinda. When I forwarded them a message that was definitely spam, coming from their systems, I got back a message like this:

Date: Sun, 10 Mar 2013 11:56:13 -0700 (PDT)
Subject: Re: FW: link (fwd)

This is an automated response; please do not reply to this email as replies will not be answered.
To report spam, security, or abuse-related issues involving Yahoo!'s services, please go to

Thank you,

Yahoo! Customer Care

...right, thanks.

Of course, redirects to a general section on with top "answers" none of which are "HOW DO I REPORT SPAM TO YOU". Searching around a bit finally gets this KB article ID: SLN8671, which suggests that:

Every major email provider has a system for reporting spam or junk mail,
and information about spammers is shared across providers. As a result, if
a Gmail user marks a message from a Yahoo! user as spam in a Gmail
account, the report will be sent to us, and we can take appropriate action
when violations occur.  The fight against spam is much bigger than just
Yahoo!, and we partner with other email providers including, but not
limited to Gmail, Hotmail, and AOL to identify spammers and prevent them
from sending mail to or from our accounts. We do not tolerate people that
abuse our services and will take action according to our Terms of Service.

If your email provider does not offer a spam reporting feature, please
submit your report using our contact form"

Of course, the union of "every major email provider" and "SpamAssassin users" is pretty much nil. Note as well that the contact form they link you to is incredibly, incredibly generic, and asks "what VERSION of yahoomail you're using".


So there's the problem. What could Yahoo! do to make this better?

  1. For starters, start accepting abuse mail. As it happens, back in the day Yahoo were one of the pioneers of a technology called DomainKeys and later DKIM. So there's already a legitimate way for them to take any mail sent to them, and see if it's in fact legitimate. Easily. And for anyone ELSE who emails abuse@, maybe THEN give the same response.

  2. Yahoo accounts are being compromised here. I was emailed at an address that was only used for communication with one group -- and the account that mailed me was privvy to that email address. I've seen Yahoo starting to ask people to add a mobile number to their profile to confirm this, but the really quick easy answer here is: when you see an account do this, lock it!. Of course, this would require scanning all mail that a user sends, which may be a new and technically hard thing for Yahoo to do. If only they had some other way to know accounts were doing this. Like my previous point.

I have several friends who work inside Yahoo, even inside their Mail Services group, so I'd love to hear from someone directly as to a better solution.

(2 comments | Leave a comment)

March 4th, 2013

07:52 pm - Wordpress is Garbage

I had to do a wordpress password reset for a user today. When I googled how to do this (from the raw database), I got these instructions.

Really cleanly, clearly, well-written.

...except they don't work.

Recently, Wordpress decided to implement their OWN password hashing algorithm. Which means that while it's less immune to rainbow tables of plain MD5, it means ALL this documentation is shot and doesn't work anymore.

Yay for letting your community write your documentation for you.

(3 comments | Leave a comment)

February 2nd, 2013

11:22 pm - Thoughts and Ruminations on the Brydge iPad keyboard.

So I've been playing with an iPad accessory called The Brydge. This is an amazingly engineered aluminum keyboard that essentially turns your iPad into a laptop. What this really means is that I now have an apple Laptop with builtin cellular broadband and a touchscreen (a product I've been clamoring for for years).

Like my previous entry about iCache's "Geode" product, this product has suffered from some of the Kickstarter issues, and because of the nature in which they've chosen to make their updates available, I can't be sure to know the whole story, but I'll share my own experiences.

Some Caveats

  1. I wasn't a kickstarter backer (I didn't have an iPad when this product was in its kickstarter phase).

  2. While others have complained about shipping speeds, I got noticably faster shipping than normal probably because Brydge is literally one town over from me, in nearby Menlo Park.

  3. I bought the speakerless model because a) it was in stock at the time I needed it and b) Media Playback isn't a major use-case for me, so I can't speak to any audio features.


  1. If you go to their site and watch the video, you'll notice that their original concept had a single-piece hinge, in the center of the unit. They've since switched over to two separate hinges, one at either side, and rather than "clamping" onto your ipad, they rely on a friction grip, accomplished by a couple of silicon inserts that fit into the aluminum hinges. Mine came with the inserts for the ipad 2 preinstalled, and swapping them out for the inserts for the 3/4 was annoying because of the residual adhesive left behind when I pulled the 2-series inserts off.

  2. I've read some reports of missing keys or keys not working (on the various twitter and kickstarter forums). I have experienced nothing like this, the typing is solid as heck on this thing, and the action is very similar to my other apple keybaords.

  3. Brydge made some decisions in keyboard layout that I can't agree with. Noticably missing is an "Escape" key. Some people complain about the size of the right-shift key (it's slightly narrower than most other keys, definitely not a "bar" like on most full-sized keyboards, but as I've been a netbook user for a while, this is nothing new to me, and I adapted quickly. (I also don't have a "standard" typing style, I'm not a home-row typist, so perhaps this means I'm better off with slight differences like this). Where you'd normally find an "escape" key, there's an ipad-specific "home screen" key. Near as I can tell, there's also not a key combo (like FN-homekey) that will cause the Brydge to send "ESC".

  4. Like most keyboards, this one has a hotkey (ctrl-k) that causes it to go into "pairing mode", and this was just plain careless engineering.

    1. They made the hotkey non-changeable, at least as far as I can tell.

    2. They made it a standard keystroke, one that's used in unix programs, and one that other applications might want to accept. Given, most apps won't be looking for it on the ipad, but one of the conceivable uses of a full-sized keyboard is to use the ipad to run SSH, VNC, Remote Desktop, etc.

    3. Considering this keyboard has an "FN" key, they could have utilized that for the pairing keystroke, but they didn't.

    4. They made the hotkey work all the time, not simply at poweron (or within say, ten seconds of poweron). They made it instant, in that even a tap of it works, and doesn't require a hold-down.

    5. They made the hotkey initiate "pairing mode" even if the keyboard is already paired and active.

    6. Hilarity ensues when I mention that in my editor of choice, the alternate keystroke for "ctrl-k" is "esc esc k". Neither of which I can type.

  5. When I wrote to, I found that Brydge wasn't answering email, had no customer service phone number, hadn't updated twitter in several days, and other folks on the Kickstarter forums and/or twitter were also complaining, some going so far as to assume that they had taken the money and run. Since then, they've gotten back to me basically saying "we've passed your feedback on to our engineers", but I'd still like an answer: is the firmware baked-in, or can it be upgraded (considering that bluetooth supports file exchange and push, as well as the fact that the charger is also a USB port).
    To wit, that answer comes down to "do I recompile software to use alternate keystrokes, or do I just sit tight and wait for a fix?"

  6. I'm finding that while this works as a general text-entry device, the navigation around the iPad itself isn't so great. For example, I'm sure I'd love it if there was some kind of alt-tab like keystroke, or the ability from the home screen to choose an app, without using Voiceover as a workaround, so there is a weird combination of typing and pawing at the screen that goes on. For example, the facebook app doesn't have a press-enter-to-send option. Skype occasionally does send-on-enter, other times not. Facebook Messenger (normally an iphone-only app) simply seems to refuse to work with this keyboard.

    Note that this isn't a crack against the Brydge, but against iOS. There are some useful blog posts like this one or even better this one that go into how navigation can be made to work, but Apple could have made this more than an afterthought.

  7. The battery life on this thing is phenominal. I used it (from the factory with no charge) for about two weeks before I thought to even plug it in. And when I did, it went to fully-charged in about a half hour.


  1. The pairing keystroke is by far the single most frustrating item. The fix will come in one of three forms:

    • We won't fix it, find a workaround.

    • There'll be a firmware fix, hold on.

    • It'll be fixed in Brydge 2.0, at which point I give this one to my girlfriend for her ipad (or chuck it on ebay).

  2. Brydge LLC needs to invest in a ticketing system for their support requests, refund requests, and the like. This hard-and-loose startup stuff is damaging their reputation.

  3. A hotfix for the escape key issue is also appreciated, but most SSH apps have an "escape" option on-screen.

Otherwise, it's an incredibly solid product, an outright pleasure to use, and, much like my car (the Smart ForTwo) and my iphone keyboard, it starts conversations. It impresses people, makes other people want one. It sells itself, and the annoyances are mostly an edge-case for the sysadmin, which are unlikely to affect people who want to write stories or send IMs.

(Leave a comment)

January 26th, 2013

09:14 pm - The sad stories of Kickstarter

About a year ago, I was at a rock concert at the local arena called BFD (Sponsored by Live 105, our local Clear Channel affiliate). It was one of those 20-something-acts in one affairs with five stages, a bunch of indy bands on the outlying stages, and a main stage with a bunch of top acts.

The highlights of my experiences were:

* Seeing Garbage Live, and seeing the connection they have with their fans.

* Seeing Cake live, and seeing a similar connection.

* Realizing that the most technical, gimmicky, and prop-heavy show (Jane's Addiction) was just plain terrible.

However, while I was there I also came across some technologists who had put a project forth on Kickstarter and were doing their soft launch at the venue. This was, after all, in Google's backyard.

The project was the iCache Geode, and it's a brilliant piece of technology: An iPhone case that has a fingerprint reader on the front, a credit card slot on the back, and basically gives you the ability to clone any of your credit cards onto a single, dynamic "geocard": so you need only carry your phone (and ID) and you've got the full compliment of affinity cards, credit cards, and the like. Because I'm a geek and I know quite a bit about the internals of how the readers work, I had a bunch of questions about how such a thing actually works. And their engineers were on site and willing to talk. Their dyanmic "GeoCard" was more than just a smart card; it was actually a credit-card-sized computer that had an antenna where the magstripe would be, and basically "replayed" your credit card when it detected it was being read. It was a *brilliant* implementation, and I geeked out for a good hour picking their brains.

It was bloody cool. I wanted to buy one on the spot, but their ship times were long, and prioritized for their Kickstarter backers, so I held off.

Cut to now.

Their website is up and running, still, but their support desk license seems to have expired. The "checkout" button is strangely absent from the "buy" link on their page. No twitter updates from them, but a whole lot of mentions from Kickstarter backers who are somewhat upset.

For a company that was so strong on social media, and the crowdsourced kickstarter feel, I think a dryup like this is attributable to one of three things:

1) They took the money and went to aruba. I don't believe this happened.

2) They just outright ran out of funds, couldn't secure additional funding despite having an already-developed and strong product, and shuttered.


3) They got patent-trolled, got hit with a cease-and-desist order on prior art, pending a long and drawn-out settlement.

I don't know for sure, but I'm incredibly curious. As I don't have a real stake in this show, the curiosity is nothing more. In my next post, I'll be going into detail on a similar product, where I was in fact one of the lucky ones who got their product, and others seem to be out in the cold.

Stay tuned.

Note: this is my first post using the LJ client for IOS. I tend to prefer the one on my shell account, where I have Markdown to play with. I'll see how things look once the final entry posts.

Posted via LiveJournal app for iPad.

Current Location: US, California, Redwood City, San Mateo, Charter St, 962

(5 comments | Leave a comment)

December 17th, 2012

12:36 am - You are not Adam Lanza's mother.

There's a post currently very heavily circulated on the blogosphere, of someone literally mommyjacking (look that term up) the recent horrific disaster in Newtown, CT.

I won't bother linking it, because it's all over the place. Go search for "I am Adam Lanza's mother" if you like. I personally believe that Americans have latched onto this example of bad parenting because that seems to be what we do. I call this the "Honey Boo Boo" effect.

Our blogger literally starts her post off with a lie: a grab for attention that no matter what, her life is horrific. She describes her life with her other children as being terrorized by this 13 year old child.

Let me speak, for a moment, from the perspective of that 13 year old child.

It's time to [re]tell my story.

Many of my closer friends know this about me: I grew up inside "the system". My parents' divorce was rough. My parents' and siblings' coping mechanisms were rough. Dealing with other issues in my family was rough. A common tactic of my siblings was to provoke me, to get my mother to wake up and parent. I never experimented with drugs. I never tried alcohol. I was physically agressive with siblings, but usually in response to provocation rather than as a direct behavior of its own. I had other bouts of unexplainable and bizarre and impulsive behavior. Home was not a stable place.

My mother put whatever spin she wanted on these things when speaking to professionals. Or her friends.

I stopped going to school, and just stayed at home, and got tutoring so I could finish the 8th grade. In 9th grade the same sorts of symptoms surfaced. I got dropped from one class after another for excessive absences because I couldn't wake up to get to them.

I was "at risk". I was "in placement". I spent a good portion of age 13 on mind-altering medications designed to treat a bunch of conditions which I may or may not have suffered, and which at one point left me so dazed I have a clear memory of not being able to double-click a mouse on a mac.

I spent a good year of age 14 in a psych ward, and another several years immediately after in "a residential school for children with learning and adjustment difficulties". Officially, my diagnosis was PTSD.

At the school I went to, I had a hundred other siblings, and as one counselor put it, "nobody's here on scholarship". Common issues of the day was people who had suffered depression, or "behavior problems", or Tourettes syndrome, or minor forms of autism (this was before Asbergers became the go-to diagnosis it now is). Not things severe enough to warrant criminial action, this was more for the "overwhelming" children. We all had our issues, and we all dealt with them as best we could. I focused on school better than I might have otherwise, was able to explore my love of technology, and even took some classes at the local community college. I was "the guy" who would help counselors format their wedding invitations or their resumes. I had all the other at-risk kids robbing me blind (it was cultural, I think), and I got into some trouble of my own, in various ways. I still wasn't always a pleasant person, but I survived in whatever ways I could.

On the weekends where most children went home, I would visit with my cousins or other family, or stayed with other friends from school, generally avoiding my mother and father or seeing them only in passing. When I did return home for a visit or a vacation, I felt very much like an outsider: I did not have a bedroom in the various houses where my mother had moved, and my stuff was in boxes or storage.
I lived with my mother after high school for a few years. It never felt like home, even years later.

And it got better. I came into my own. I built my own support system. I fell in love, and I met a circle of close friends. I aligned myself more with them than with my family, and many of my friends (the gamers, the geeks, the nerds) could relate to some of the same issues of not being understood, or being alienated at school, and of being "weird" for being smarter than the rest. My friends weren't always the most well-rounded folks.

Today, I don't see a therapist. I don't hold myself to any specific diagnosis. I'm not on medications. I hold a job that I love, work in the tech field, and believe I'm pretty good at what I do. I still feel socially awkward at times, but not as badly as other people tell me they do. I still don't engage in a lot of the "typical" social behaviors that make us normal people. I don't get sports or politics, and when I'm nervous, or sad, I retreat into myself a bit, and suffer from what looks like depression. The group atmosphere has made me not like being alone very much, although I can spin into bouts of super-productivity and get past that too.
I've nurtured my gifts, and I'm grateful to have them.

I still respond somewhat angrily when hurt badly enough, or provoked hard enough. I have inside me, a hurting little kid who, when hurt, wants to hurt the thing back that hurt him. I can be a bitter person, and tend to have a long memory of things that have upset me. I'm trying the best I can to get past that, but it's hard sometimes.

It's been several years since I've seen my family. My sister has two children now. My brother's girlfriend is expecting around christmas. While I'll drop a card in the mail to them, or mail them some candy for the holidays, they are not "my family". My family is self-defined. My partner, Kat. My friend Kelli. My ex, Michelle. These are the people who I feel know me. These are the ones who can read me, who know when something's wrong, and what to say (or sometimes, just know that there's nothing TO say).

As for the many children I grew up with? Some are successful, and some not. My roommate, and best friend, Ben, always a chronic depression sufferer, took his life a few years ago. My love, Kat, took his hebrew name when she converted, as a way of rememberance and honor for his memory.

I admit that hindsight may have tempered some of this. It may have been more stressful for me "in the moment"

So, "Adam Lanza's Mother" here's some thoughts on compassionate parenting for you:

  • By your own admission on your blog, you believe that as a result of your divorce with your husband, you had a breakdown, and you're an adult with 30-something years of presumably being able to grow, communicate, adapt to changing situations. Please, put yourself in the mind of your kid for just a while. It's clear to me that both you and your son need to learn empathy, and empathy is a tall order when you're 13.

  • You talk about punishing your child by taking away his access to his electronics. Does that work, or is it just you attempting to hit him where it hurts? Perhaps an attempt on your part to assert control over something in your life? Could I resolve this in a ten minute conversation with your son, introducing him to these things we call books? Do you think your son's capable, perhaps, of understanding this desire of yours to exert control, and simply defusing it by not reacting? What would you do then?

  • Childhood is ROUGH. Emotions flare at 13, and generally will continue to flare until we're 25 or so. Many of us will not truly feel like ourselves, and like "a real grown up" until we're 30 or so. Even then, can you honestly say you haven't had some points at which you've been ready to melt down because it just wasnt fair? Imagine yourself in, perhaps, the military or a courtroom or a prison, where a person has ultimate authority over you, even if it doesn't seem to have any guise of fairness. Do you still think you'd be able to hold it together?

  • You talk about bringing your son to the emergency room because he threatened suicide. Nobody can say whether or not it's a real threat, and nobody can say you did the wrong thing by ignoring it, but 13 year olds are impulsive, and don't always have control over what comes out of their mouths, and sometimes, they have a talent for saying the worst possible thing. Maybe he's learned that that's a shitty card to play, and that it's a real crap way to get out of having to go to school, but just maybe, he wanted something from you other than indifference.

  • Most importantly, the internet never forgets, and some day, your son will grow up, and will read what you've written while using your real name, and your son's image, where today you've compared an "otherwise bright kid" with someone who just murdered 20+ people in cold blood. Maybe today with the media coverage you're getting, your son will go to school, and his friends will call him "Adam". The adults at school either won't notice or won't care. If your son tells them, he's a snitch and more alienated.
    You've done him no favors in writing what you wrote.

  • This will follow your son for the rest of his life, now. He will, someday, maybe tell his friends "yeah, I was kind of a bastard when I was young, my mom was the one who wrote that blog article". Maybe they'll all laugh. Or maybe, he'll hate himself, secretly for the rest of his life. Maybe, one day, if he were to take his own life, then you'd realize this.

  • Maybe he'll turn out allright, and maybe he won't, and you can't know what way it will go, and neither can I.

  • Maybe one day, you'll tell him you were sorry for saying such a horrific thing. And maybe, one day, he'll forgive you.

(4 comments | Leave a comment)

December 10th, 2012

02:33 pm - On the Postal Service

Okay, so I admit I haven't blogged in a while. Maybe I can do some of that now.

For varying reasons, I like being able to mail letters. I like being able to buy a sheet of stamps, and keep them in my wallet, and be able to toss off a postcard to anyone when I'm traveling. I like being able to buy greeting cards at the store and toss them in any mailbox. Stamps are cool. Not as a collector, but as a useful anonymous alternate currency that one should have around.

I believe I've written before about the US Postal Service's "13 Ounce Rule". The rule, in its simplest form is that if you want to mail something greater than 13 ounces, you need to hand it to a clerk. One could assume this is for reasons involving not clogging the mailboxes, or could even assume that it's to make sure such larger items were properly packed.

But it's not. It's all about security, and in terms of obscurely worded rules, it can get close to the Infield Fly rule in terms of its annoyance.

You can see on the side the sticker describing this rule that's been clearly plastered on mailboxes and postal drops. The wording issue comes where they use the line "that bears postage stamps". You see, information-based-indica such as would be done with a postage meter doesn't imply stamps. Franking the mail with a "Postage Paid" rubber stamp of course doesn't imply stamps (even though it's a big rubber stamp (i.e. the thing you press down onto the stamp pad is a Postage Stamp). And, according to this blog article from, using internet postage such as issued by is also excepted from the rule. Even though the site is called, well,

So here's the fun question: why the odd wording. What's clearly meant by this rule is: ANONYMOUS Stamps. Things that don't have a barcode that can be used to track the purchaser. Why not print that on the label?

As useful as the anonymous, "Forever", postage stamps may seem, the postal service seems to really not want to sell them. They've recently (within the past year) retired all their stamp vending machines (citing that they were hard to get parts for, citing that they couldn't do a software update to support the new $5 and $10 bills).

One other place you could buy them, for a while, was at the USPS' Automated Postal Centers. Someone, either at a government contractor, or at the Postal Service very cleverly figured out that it was possible, if you printed a sheet of stamps the same size as a dollar bill, that you could use the same commodity equipment that is used in ATMs to vend sheets of stamps. You can see them (front and back) here: . And because they were the same size as a dollar bill, you could easily fit them in your wallet without folding them, and they seemed to adhere to their backing better than the over-the-counter variants. The postal service made these not only for themselves but for other ATM's which had been modified with a function to dispense stamps (as well as cash).

So now, we come to the fact that I went to an APC last night, to attempt to buy some stamps, and discovered that now, these stamps were no longer available, but the APC happily offered to sell me from 1-5 "Forever First Class Stamps" that it printed on the fly.

What it printed was similar to these: . Embedded in that stamp are:

  • A unique serial number
  • The location it was printed
  • Other information.

Short answer: since the APC's don't take cash, this is linked to all my payment info. With a warrant, of course. The government never investigates or eavesdrops without a warrant. Except that they're the ones holding all the data.

Most people don't care. I do. I've found that you can go to and buy the ATM-style stamps (although it's not straightforward, you can't browse for them, you need to search for them, using the magic word "sheetlet", and I think I'm just going to continue buying them this way. Given, now there's a $1.25 surcharge on them, but at least I'll never be without one.

Other Notes: ATM Vended Stamps

(2 comments | Leave a comment)

April 20th, 2012

08:09 pm - Why isn't this a solved problem?

I have three devices on my desk that connect to my ears, and my mouth in some way:

  • My desk phone. This currently has a plantronics headset hooked up to it, on a "qd" connector.

  • My iphone, which may be docked or undocked. My iphone has the ability to send music down the dock connector, but calls can only go out the top connector, or over bluetooth. (This is the subject of a different rant).

  • My computer, which makes noises out a pair of speakers, as well as over headphones via the classic "the speakers go mute when you plug in headphones" answer.

Every one of these devices has a microphone as well.

What I want: The ability to connect one pair of headphones, and have all the sound, from all devices route through it, and out to the sources of my choosing, without plugging and unplugging more wires than the one headset that at the end of the day, I take home with me, at the volumes of my choosing.

For my sound-in sources, I just want the ability to route them to the devices in question, with no real amplification other than attenuation to the level those devices expect.

I basically want the windows "Volume Mixer" but for physical devices (which may not all be standard 1/4 inch connectors, or standard impedance levels).

  • Perhaps such a device would be mixer-like, with either physical sliders or virtual ones (i.e. touch a button to select an input, then drag a virtual slider, on the device).

  • Perhaps it would have an API to set rules such as, say "if there's noise coming in the phone connector, mute the other sources", or "drop computer volume (i.e. the level coming out the connector) to 20%" or even "set the computer's volume level to 20 percent (as in, the volume control in the OS) or even "run an applescript to tell the iphone or itunes to stop if they're playing".

  • Perhaps the device would also appear as its own USB sound device, so with a standard pair of shitty headphones and a standard shitty headset, I could get the benefits of sound-out-my-speakers, but skype-in-my-ear.

  • Perhaps such a device would also be bluetooth capable, so if I were wearing an a2dp headset, all sound could be sent to that.
    Perhaps if bluetooth capable, it would also pair to the iphone and accept calls that way.

  • Perhaps such a device would even just come with a small dongle that's not a2dp, but something higher-quality, that you just plug your (non-wireless) headphones into, and clip on your belt, and roam around.

I would love a device like this for my home. I would love a device like this for my car. I would love a device like this for my office.

...if we can raise a million dollars to Reboot Shadowrun, I'd give $100 toward development of a thing such as this.

(Leave a comment)

> previous 10 entries
> Go to Top