Friday, November 30, 2007

Works For Me: Bluetooth Headset and T61 with Windows XP

Okay, here's the follow up to "Blackeye for Bluetooth" and I'm pleased to say that the solution is really pretty simple for a Lenovo T61 running Windows XP, so simple that I think my computer was screwed up by the dear IT folks handling it after it left Lenovo but before it got to me -- you just have to kill Windows XP and go back to the drivers Lenovo provides that are in no way, shape or form to be confused with what Microsoft wants you to download from Windows Update. (Really, the abject lack of functionality in the latest drivers from Windows Update makes me wonder if the corporation known as Microsoft really just hates you, hates your computer and generally hates the Internet for making it so commonplace to crack and exploit computers running Windows.)

But here's what works:
  1. Rename the bth.inf file already on your machine to something completely different. Microsoft provides the documentation on how to do this. Frankly, I'd almost rather see some accountability for who thought this would be a good feature in the first place.
  2. Download and run Lenovo's 96 megabyte driver package for Bluetooth. (Note that that's the Windows XP version.) Running this will unzip it to a location on your hard drive -- drivers\TPBTooth by default -- and you'll need to run it on your own.
  3. Run the unzipped thingy now and plan to reboot. After a successful install, Explorer had cratered so I had to press Ctrl+Alt+Delete as the quick way to a "reboot now" prompt.
  4. After you reboot, the bth.inf file shouldn't force itself on your system (yay!) and the Lenovo-packaged drivers should go through a couple of minutes configuring themselves to provide functional services (like "audio") to the rest of your computer. You can tell that this works because you'll have "My Bluetooth Places" as an icon on your desktop and in your "My Computer" -- but don't bother clicking on it until it's sauntered on through and configured all of the services that it thinks you may want Bluetooth for.
  5. Now you should be able to add your device in a nice step-by-step kind of way. But don't just add the device -- be sure to click into the device configuration to select the service you'll be getting from the device (which will come up blank momentarily while your PC interrogates the device to make sure it knows what its about).
And that's it, now you're ready to go.

So now that I've had the Jabra BT185z or whatever it is for half a day, I can say that thus far the sound quality is a bit disappointing. Longer talk-time isn't a feature if the reception is underpowered making it so that everything has to be said twice to be understood. I'm hoping my opinion of the device improves (as "charge over USB" is a great feature), but, well, we're going to have to reach a decision as to how acceptable it is or isn't before Monday. Also worth noting -- the process to get it to decouple from one device so that it's willing to pair up with another is rather tricky, to say the least. So far, I've found that you have to force a disconnection from anything that it was last joined to then flatly reject a reconnection and only then will the Jabra figure out that its previous pairing doesn't love it anymore. Not the most friendly of usage models, but so long as its consistent in that behavior, I can work with it.

Monday, October 22, 2007

Works for Me: Geotagging Photos Demo

Behold the short little outing that we needed to do in order to properly test our GPS/Camera/Documentation setup.





What we did: We spent a night at the coast. We tend to stay at the Ocean Lodge in the suites on the inside of the property with soaker tubs and fireplaces, though the establishment is getting to the age where it's starting to get a bit worn but it's still too young to warrant aggressive proactive maintenance. We were originally planning on eating at Pizza a' Fetta, but decided that we weren't quite hungry enough to take on one of their pizzas properly, so we ate at the Warren House Pub. We've eaten there before and it's something of a mixed bag in terms of atmosphere, though it tends to get nicer as the evening wears on and more middle-aged folks come in and mellow out the joint. The Smoker's Platter of smoked seafoods is delightful, but needs much more mustard, and the Manhattan-style Clam Chowder (tomato base instead of milk base) is fantastic. We finished the meal in insulin shock from a slice of apocalyptic chocolate cake. The next day -- that would be "this morning" for all you stalkers out there -- the weather was utterly glorious so after failing to stop by Sleepy Monk because their storefront was closed for the off-season, we switched the Garmin eTrex Venture HC on and headed south to Tillamook with occasional scenery breaks for the Canon Powershot S3IS before taking highway 6 back home. The progression of the trip has now been uploaded to my computer and in turn uploaded to TripTracker.net where it is available for viewing -- just click that nifty little map above.


What I Learned:
  • The red points in TripTracker represent different elements, generally speaking, within which are the blue points that photos are attached to. You can edit the XML if you'd like, or just turn the GPS off and on as it will append a new when it starts ing again. (There might be a simpler way to make the GPS start a new , but since I'm used to editing XML, I'm not inclined to arguing with a GPS that I don't intuitively recognize the power button on.)
  • The power button on the Garmin eTrex Venture HC is the lower button to the right of the screen that looks like a light bulb. Because lightbulbs only have GPS coordinates when turned on, I guess.
  • The Canon Powershot S3IS is substantially less impressed by the glorious colors of filtered light in the forest than I am. Either that or I am getting a bit too close to being medically insane for my continued comfort. So I'll blame the camera. Besides, we have Photoshop to make it see things my way.
  • When the camera runs out of batteries, it's good to have thought to bring a bunch of spares. Also worth noting that the new 4GB flash card doesn't have bad sectors that eat entire file systems just out of spite.
  • Picasa can put your files in the wrong place as fast as that USB2 cable can move them. If it weren't Picasa, I'd have very strong and rather hostile words for it.
  • In Photoshop CS, the Image > Adjustments > Variations is very close to being a very cool feature. It's rather like visiting the optometrist and having them go "Which is better, number one... or number two?" where you can tell them what got better, but they're not going to tell you exactly how they did it. (I was trying to fix up a forest photo to better represent the colors that I was seeing as opposed to what the camera -- rather sadly -- recorded.)
  • But the image that you save out of Photoshop is going to probably have the wrong timestamp which will cause TripTracker to put the photo wherever it sees fit until you go in and change the timestamp with their nice tools -- it's under the green "Customize" button after everything is uploaded.
  • TripTracker also apparently has a "Split Entry" option for getting around when you didn't put your s where you wanted them, though I'm not quite clear on how to use it.
  • The TripTracker desktop upload application is very very nice. Just feed it everything and let it do the work. I like that a lot.
  • It takes a few minutes for your trip to become available as a badge from TripTracker, probably something between data propagation and refreshing a cache. It's not bad at all -- just don't be surprised when it takes a couple of minutes after you upload; you're not doing anything wrong and neither are they.
  • I still need to buy a power cable compatible down under for my laptop since it's got a grounding pin that just won't work for my global wall-socket adapter.
So yeah. Now I need to play around with adding comments to a trip and figuring out how to translate a trip back to a flash card to send to my grandparents for viewing on their (spam- and malware-free!) digital picture frame. But that will come later. For now, I have to get some sleep. Work awaits in the morning.

Sunday, September 30, 2007

Works For Me: Geotagging Photos

So one thing that I've been wanting to do for a while is pin photos to a map so that there would be no confusion over where I was standing when a photo was taken. Geotagging makes this possible by associating GPS coordinates with a digital photograph. That said, the GPS to software to presentation landscape is still a mess -- most geotagging "solutions" suggest you point out on a map where you were standing and they'll give you the coordinates. When you're filling up a 2gb flash card with jpegs, this isn't an acceptable solution.

So here's the what-all of what I did:

  1. For the GPS component, I picked up a Garmin eTrex Venture HC because, and here's where things get silly, it's got a native USB connection. Thus, getting the Venture HC was cheaper than getting the lesser Legend and a Serial-to-USB converter. I can't say I'm wildly impressed with it -- its satellite acquisition seems slow to me and the user interface is thus far clumsy even for the most menial of tasks -- but it gets the job done. Very much worth noting is that it is not currently Mac-compatible right out of the box. It comes with PC software and my Mac pretty much ignored it when I plugged it in. So I took it over to the PC and installed the bloody useless software which Windows Vista bitched and moaned about in the Proceed/Cancel way that it does when we got to the driver installation (which came after a bunch of yet-to-be-used software). If I had any hope that some other GPS could do better for cheaper, I'd be seriously underwhelmed -- but I'm currently under the impression that this unimpressive state of affairs is as good as it gets.
  2. After some unsuccessful digging -- inclusive of finding some Microsoft spare-time projects that aren't Vista compatible, good job guys! -- I came across EasyGPS. This software actually does what I want it to and that goes an awfully long way with me. It can yank the track log right off my USB GPS and put it wherever I tell it to. (I haven't found an "oh, and purge it from the GPS while you're in there" button, but it should be easy enough to get around that limitation.) It can also try to geotag photos -- very slowly, involving rewriting the .jpeg images with new metadata as near as I can tell -- though not many (that is, any I've found) other applications actually respect the tags EasyGPS lays down. EasyGPS also marks up your downloaded track log with the .jpeg file (paths) associated with your trip -- but they put the wrong slashes in for a Windows machine with a network drive (// instead of \\), so be ready for a bit of find-and-replace if you intend to review your tracks in EasyGPS. There are also a host of other features, but what I really wanted it to do was get the dang track data from the GPS and it does that perfectly.
  3. From here on out, it's all about TripTracker.net. This web site is fantastic for my purposes. Feed it a bunch of photos and one of those .gpx files that EasyGPS was kind enough to pull for you and it'll trace out the path on a Google map and pin the photos you uploaded to it. It's brilliant, even if there are a couple of behavioral snags, bugs and flukes. They've even got a (Windows) client app for mass uploads -- since upload by HTTP really is an abomination that was Not Meant To Be.
I'd like to include a screenshot of how cool this mapping capability is, but it seems that that might be a violation of the Google maps terms of service. There's some sort of irony in there, but I'm not quite able to put my finger on it, you know?

Anyway, key learnings are pretty simple: Windows PC and USB GPS -- Garmin brand works -- serving as the platform with EasyGPS and TripTracker.net serving as the applications.


Update: Per the comments below, TripTracker's got blog widgets so I can tie in my trip to my blog rather more precisely. Click here to get it, I'll be testing 'em out with a short road trip later this month. Prima facie looks pretty dang good though -- I'm looking forward to it. Thanks for the tip Gregor!

Tuesday, July 31, 2007

I Am Operational Cost

... which is evidently something to be minimized that never actually generates any business value. This strikes me as strange -- not so much because that's not what I've been doing for the past according to the people who like what I've been doing, but rather because the people who like what I'm doing are the ones who have the (virtual) dollars and get credited with the business value from the tools that I build for them according to our negotiated specifications.

The bizarre net result is that I Am Operational Cost and need to be minimized, and the money that my business partners might want to spend on me to increase their business value will instead be spent on contractors that cost substantially more than I do while my job is threatened to avoid spending the money of the soulless Fortune 100 corporation to which I am not contributing business value because... I Am Operational Cost.

And to think that I thought I was an application developer that dabbles in analyst work.

Tuesday, June 19, 2007

Hard Work is a Total Reward

So my dear soulless Fortune 100 corporation has decided that us ungrateful little individual contributors -- you know, us grunts that actually turn dumb ideas and crazy notions into normalized reality -- need to be reminded of how much Big Brother is doing for us. So they've outsourced a "Total Rewards" web site containing such information as which health insurance plan I'm on, how much my 401K is currently worth, and how much stock I've got... if I stick around long enough for it to vest. And of course it's personally identifiable to me because hey, what could go wrong?

But nothing's going to go wrong because our dear Big Brother soulless Fortune 100 corporation has pieces of paper saying that nothing's going to go wrong. Frankly, I'd be rather more comfortable if I had the vendor's cars as collateral -- just take the keys as they come into work one day, you know. Not that it would help anything, but making such an obscene demand should cut down on offers to provide solutions like this that a lot of people (judging by internal response) don't really need and certainly don't want to have outsourced as a matter of course.

The real issue, though, really boils down to the cheesy "Frequent Flyer" name they gave it: Rewards. I'm paid labor. I'm compensated with a salary which is, to the best of my knowledge, legally owed to me under the assortment of contracts and agreements that I (foolishly?) signed onto so many years ago. I may get rewards when I do something particularly clever -- or suffer greatly as a result of somebody else doing something foolish -- but they are in no way tied to my current compensation, other than being on the same auto-deposit program (if applicable). And that's what the real problem is with the name: it betrays the key difference in how I view my work and how the grand old Fortune 100 views it. I am working for earned wages augmented by benefits in my mind, whereas the company believes that it can reward me as it sees fit. All the more reason to find a company that still believes in properly compensating its employees, I suppose.

The good news is that my time working there -- I really don't see myself continuing past February -- has actually been reasonably well spent. I was in a meeting today where they went over all of the work that went into a 2+ year project and I just found myself thinking, "Yeah, I've done that on Project Andrea. And when Project Andrea got an upgrade as part of the Barry program, we did that other feature. Project Chantal and Dean recycled my component Erin that I wrote that was just like that... hey wow!" So it was fairly reassuring to feel that I have learned all sorts of stuff that will be valuable in other projects like Arthur, Bertha and Cesar. Sure, some of the work -- Sebastien, Tanya, Van and Wendy -- were dismally un-reusable, usually to being ill-advised in the first place. And it was also kind of sad that all of our happy talk about the value of component reuse (going back a couple of years now) doesn't appear to have actually resulted in any reuse of code or components that would result in actual savings by ensuring that a problem like what, oh say, Erin could solve stayed solved.

Project and component names borrowed with pride from over here. Great way to name projects on a pre-official basis, I think -- far more honest than most naming conventions.

Thursday, May 24, 2007

Using the Force Doesn't Help

(I wrote this a while ago and posted it on my previous blog, but wanted to re-post it here as a sample of the sort of editorializing that I do tend to enjoy partaking in from time to time... I promise there won't be much cross-posting which is this direct.)

The following scene was significantly cut from Star Wars: Return of the Jedi during Luke Skywalker's confrontation with Emperor Palpatine.

Luke: I am a Jedi, like my father before me.

The Emperor:
Ah my boy, you speak the truth more than you know -- but that doesn't make you a Jedi. Examine your motivations -- you told Obi Wan that you couldn't leave home to become a Jedi because of your aunt and uncle. But when you found them dead, killed by stormtroopers, you immediately purposed to not only join the insurrectionist rebellion, but also to become a Jedi that you might avenge your family. This coming what, less than a day after complaining because your now deceased uncle wouldn't let you come join your old friends at the Imperial Academy?
Then when you watched your father strike down your mentor -- a move which your mentor willfully permitted and your father performed, it might be noted, as retribution for losing his legs and being left to burn alive in a midichlorian-forsaken hell-hole -- you re-affirmed your vow of vengeance, but this time you had a singular, personal target: Darth Vader.
Your desire for vengeance would cause you to prematurely abandon your already over-hasty and ill-advised Jedi training in an abject lack of discipline to come gallivanting after your insurrectionist friends out at Bespin where they'd been captured.
When one of your friends was being held by an old mob boss -- who, it must be noted, the Jedi council chose to abjectly ignore throughout their tenure -- as is custom in in that trade, as said mob boss was owed a great sum of money, you embarked on an ill-conceived and poorly-executed plot to free your friend. When the plan began to unravel, you began a homicidal rampage which eventually destroyed his entire sail barge fleet with all hands aboard -- less those that you fed to a Sarlaac. (Suffice to say, the long-term economic damages and subsequent rioting in the town where your father was a child? They're on your hands, boy.)
And how did you get to my throne room? You deserted your insurrectionist friends, even your own newly discovered sister, abandoning them to complete their infinitely important and highly desperate mission with the aid of primitive, puny... teddy bears. Your rationale? You did it so you could spend some quality time with the dad you'd hoped to kill.
My boy, you have not a disciplined bone in your body; not a logical thought in your head. Your grandest visions of harmony are rendered impotent by the passion by which you pursue them. You are a beautiful, hideous poster child of chaos and destruction. And when you say that you are a Jedi like your father before you, you mean that you are a Sith like your father before you -- and I before him.
Now, whether you kill me or you kill him or you simply stand there and let us kill you, the simple fact is that the dark side is in your blood -- it has been from the beginning -- and that, not my nefariously evil rule of the galaxy, not any good that may be left in your father, but rather the darkness within yourself is what accounts for your being here with us today while your friends suffer and die all around in a war that you alternately prolonged and abdicated from. That's you. That's your dark side. And nobody can come to terms with it for you.
Yes, yes... I know it's difficult.
Want a cookie?
No? Well then, so be it... Jedi.