Category Archives: Tech

Brand New 2013 Ford Focus

My girlfriend needed a new car back in 2012 and bought a 2013 Ford Focus Titanium Hatchback as soon as that year’s lineup was first available because she really liked the voice activated system and the idealist future it made a person desire. She arguably spent the most money you could on that particular model (though she did get a discount from my X-plan pricing) and we began having problems with the vehicle(not just the MyFord Touch problems that everyone had/has) on day one (seriously). This is a short documentary on problems and fixes since we got the car back from the most recent service department visit on 2014-02-20.

Door handle sensors:
We had problems with the door handle sensors unlocking the car. The locking functionality worked perfect the entire time, but the unlocking seemed to have moments when it just refused to work. After refusing to unlock, then upon unlocking the car manually or via the key fob, driving the car, and trying the door handle unlock again on the next entry it would work perfectly fine. We were told numerous times that they “might be dirty and need cleaning”. On our last trip, they finally looked into the issue and said they fixed the handle sensors. The handle sensors actually seem to unlock the car all the time now so the door handle problem may have be fixed – over a year after owning the vehicle and having these issues.

Didn’t start via key fob:
Every time this happens, the car acts like you’ve done the button press combination correctly, flashes the lights accordingly, and then instead of starting the car just honks and flashes the lights once.

  • 02-22 (two days after we got it back) – no start via key fob.
  • 02-24 – no start via key fob.
  • 03-01 – no start via key fob.

Shifting problems:
The car either shifts horribly at unpredictable times, regardless of being warmed up or cold (the only predictability is that it seems to happen more often when warmed up), or forgets which gear it should be in at its current state and is in a much higher gear causing the car to nearly stall itself out on acceleration and then abruptly hard-shift into the lower gear only after further acceleration is applied. This “current gear” problem happens regardless of driving style – Sunday driver-style slow acceleration or city-style moderate acceleration does not change the shifting pattern when this does occur (acceleration amount does not cause the downshift to a lower gear to be less abrupt and terribly “hard”).
This gearing problem makes it honestly seem like the car has the wrong “current gear” value – it usually happens after slowing, coming to a stop, or coasting – as if it is still using the previous “high” gear, and then has no idea what to do when acceleration is applied and it is nearly stalling itself.

  • 02-23 – Still shifting terrible when coming from highway driving. After some highway driving, driving at a lower speed on non-highway roads causes the car to shudder and mis-shift when changing gears. Was able to reproduce this twice.
  • 03-01 – Terrible at shifting again today
  • 03-08 – Terrible at shifting after highway mileage again.
  • 03-09 – Terrible at shifting from not-quite-cold start going down sidestreets. Today it acted just like it used to before the 02-20-2014 fix – shifting terrible from a dead stop like it was in 3rd gear, then hard shifting into first after a few moments of acceleration at 3rd.

At low speeds you can also hear grinding noises when shifting. I can’t tell if this is the grill active-shutter or if the noises are the transmission, either way the amount of noises (rattling at a stop when the car is fully warmed-up, vibrations in the cabin that are obnoxious over the Bluetooth phone connection, and weird grinding noises seemingly coming from underneath) coming from this brand new vehicle are unsettling. After only a year of ownership and having been in the shop 4-5 times, the first time within weeks of owning the car (we waited to see if the issues would just go away), this is easily the worst first new car buying experience we could’ve had.

The shop representative we worked with actually mentioned to us that he recommends getting the car-rental plan when buying these new cars with all the new fancy “features” on them that may break. If they might break – why are they shipping with a car, that if properly maintained, could last a lifetime? This may sound like idealism, but this is a $30,000 vehicle. I keep vehicles for a long time, and I bring vehicles that should’ve been “retired” back into service for years (my ’97 Ford Escort lx is a great example). When we bought this vehicle, we had no intention of getting rid of it…ever. With documented problems emerging two weeks after (we had the problems the day of purchase and going forward), how could Ford not see this as a serious problem and just give us a new vehicle?

And on another entirely different customer service note: why the hell should we, or anyone, have to pay for a rental when we purchased a $30,000 car that is in repair due to manufacturer defects? (On our most recent visit, the dealership finally offered to provide a rental, which I’ll get to in a moment.)

The Ford dealer repair shop we visit continues to tell us these problems aren’t out of the ordinary with these new vehicles and that they’re “tech” problems, as the transmission has a control module that runs software. If this software is running dependent on sensors and data feeds, could it not be that the software is not a problem, but instead the data sources? We’ve had software updates and fixes applied multiple times, yet the control modules and all related data sources have not been replaced to my knowledge. My software development mind tells me – if you’ve “fixed” the code multiple times and the issue is still occurring, you either haven’t fixed the code and need better testing, or the data sources are bad and the code is possibly behaving correctly. My girlfriend even rented a 2013 Ford Focus the last time her car was in the shop (she was finally provided a rental by the dealer), the same year and model as she currently owns, and yet it had zero of the same problems, so the code apparently works.

At this point, even if the problems were fixed I’d want to have a new transmission due to all the unnecessary wear and tear that these problems have placed on it.

Our 1997 Ford Escort has less weird noises and has been in the shop less times. This ’97 escort was revived from over a year of complete slumber (in Michigan even) and cost a mere $300 + $500 or so in repairs I initially performed.

If you’re having similar new-car problems and happen to live in Michigan, you may want to look at this.

Installing unixODBC 2.3.2 and higher on Ubuntu 12.04 LTS

Before we start – this tutorial assumes you’re using an Ubuntu Server, and you’re OK with removing your existing unixODBC driver manager and any problems that come with that.

OK – on to the goods.

  1. Remove any previous unixODBC packages – take note of any additional packages APT wants to remove so that you can reconfigure/reinstall/fix them later:
    $ sudo apt-get remove libodbc1 unixodbc unixodbc-dev
  2. (Optional – only necessary if you don’t use my .deb package) Get your system ready to compile software if you don’t already have make and gcc installed:
    $ sudo apt-get install build-essential

Now you have three choices – download, configure, and compile yourself, use my modified version of Microsoft’s “build_dm” script they offer with the SQL Server ODBC Driver for Linux, or use the unixodbc_2.3.2-1_amd64 Ubuntu 12.04 LTS package I built.

Personally – I’d choose the package as any other packages that depend on unixodbc or libodbc should easily install and be able to use our custom unixODBC to fulfill any package requirements.

Ubuntu deb package method:

  1. Get the package:
    $ wget
  2. Install the package:
    $ sudo dpkg -i unixodbc_2.3.2-1_amd64.deb

Automated script method:

  1. Get the automated script here or use this command:
    $ wget
  2. Make sure it’s executable and then run it:
    $ chmod u+x; sudo ./ --libdir=/usr/lib/x86_64-linux-gnu
  3. After it’s finished, the script will give you a /tmp/unixODBC.RANDOMNUMBERS directory which it tells you to change to, and then ‘make install’. An example of the command I ran is below – replace the XXXX’s with the exact path the script gave you upon it finishing:
    $ sudo su -c 'cd /tmp/unixODBC.XXXX.XXXX.XXXX/unixODBC-2.3.2; make install'

That’s it – unixODBC was automatically configured with some options the Microsoft ODBC driver recommends and the make target “install” was executed.

Do it yourself method:

  1. Download unixODBC

    $ wget
  2. Ungzip and untar the gzipped tarball – this example uses a modern gnu tar:
    $ tar -zxvf unixODBC-2.3.2.tar.gz
  3. Change to the new directory that has been created:
    $ cd unixODBC-2.3.2
  4. Configure with any custom options you want – this is an example for Ubuntu 64-bit using the recommendations provided by the Microsoft ODBC driver for server installations (note: if you’re installing on a headless server, you may want to add “–enable-stats=no” to increase performance):
    $ ./configure --enable-gui=no --enable-drivers=no --enable-iconv --with-iconv-char-enc=UTF8 --with-iconv-ucode-enc=UTF16LE --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --sysconfdir=/etc
  5. Make the install target with root privileges:
    $ sudo make install

Your package Aptitude – flags and searching

On Debian-based systems, aptitude can be quite useful for searching and displaying information about packages.

Aptitude does include a ncurses interface, but you don’t ever have to use it. Need to get a list of installed packages that have the word “python” somewhere in their package name or description?

$ aptitude search '~ipython3.3'
i   python3.3 - Interactive high-level object-oriented language (version 3.3)

All of those letters that prefix the package names are interesting though. “p” and “i” are easy enough to figure out by process of elimination for a new user – but this short list will help you with the rest of them:

These are the values of the “current state” flag – the first flag before the package name:

i – the package is installed and all its dependencies are satisfied.
c – the package was removed, but its configuration files are still present.
p – the package and all its configuration files were removed, or the package was never installed.
v – the package is virtual.
B – the package has broken dependencies.
u – the package has been unpacked but not configured.
C – half-configured: the package’s configuration was interrupted.
H – half-installed: the package’s installation was interrupted.

These are the values of the “action” flag – the second flag before a package name (if there is none – no action is to be performed on that package):

i – the package will be installed.
u – the package will be upgraded.
d – the package will be deleted: it will be removed, but its configuration files will remain on the system.
p – the package will be purged: it and its configuration files will be removed.
h – the package will be held back: it will be kept at its current version, even if a newer version becomes available, until the hold is cancelled.
F – An upgrade of the package has been forbidden.
r – the package will be reinstalled.
B – the package is “broken”: some of its dependencies will not be satisfied. aptitude will not allow you to install, remove, or upgrade anything while you have broken packages.

For more aptitude reading, such as information on the regular expression patterns and searches you can do (like my aptitude search '~ipython3.3') you can check out the aptitude user’s manual and for even more information on managing packages within the debian ecosystem there’s the debian manual on package management

Sync only recent messages in on OS X

So you, like myself, want to have not sync all of your mail from the beginning of eternity in your Gmail ‘controlled’ email account?

Well, on OS X has no concept of ‘sync last X days’ or ‘sync last X messages’…but guess who does?
Gmail does.

Image showing the radio button and drop down to select imap folder limits for gmail.

Image showing the radio button and drop down to select imap folder limits for gmail.

  1. Go to Gmail’s settings for the account in question.
  2. Click the ‘Forwarding and POP/IMAP’ tab.
  3. Scroll down and click the radio button that says ‘Limit imap folders to contain no more than this many messages’
  4. Choose the number of messages you want to sync from the drop down.

Server-side search will still return mail messages that have not been synced, and if for some reason that’s not good enough for you – you can always reach into the webmail interface.

This is more or less a patch to the real problem – not having the ability to selectively sync X days or last messages, which many other clients natively support (Outlook, Android mail, and I believe Windows Phone 8 Mail).

Apple Airport Extreme (or Express) and Xbox 360 S wifi problems

After getting a new Airport Extreme to replace my old Buffalo wireless router, I ran across a strange problem.

The Xbox 360 S’ built-in wireless adapter would connect to the network, but only communicate at around 5mbps. This wasn’t a problem for most things on the Xbox, and I may have never noticed if I didn’t use my old Windows desktop computer as an HD dvr, but this was a huge problem for streaming recorded HD TV shows. To get great stutter free streaming of HD content via Windows Media Center, you need at least 70-80mbps bandwidth on the connection as a minimum. If it dips below that frequently, you may see issues when trying to control the Xbox while the media is streaming, or you could see the video stream stop completely.

After doing some searching on the web, it looks like this is a pretty common problem – though most people don’t notice it’s that big of an issue as soon as they get their Xbox live ports mapped (udp:88 & 3074 || tcp: 3074). Also, if you use your old pc as a media center – make sure the proper ports are open in your firewall as well.

The problem seems to stem from the Airport Extreme broadcasting wireless N speeds on the 2.4ghz frequency (so this may occur on any dual-band simultaneous wifi router). The Xbox sees that, and occasionally will use it, but then drops down to 802.11b pretty quickly. If you don’t have an extra $50 for the solution I opted for, a quick fix is to broadcast the 5ghz network under a separate SSID (network name), and disable N speeds for the 2.4ghz as shown here:

So this setup works, but still isn’t ideal – as your Xbox will get a max of 54mbps which is not enough to stream HD TV when streaming via the media center extender feature. If you have an extra $50 – we can go one step further to get maximum speed.

This last step can be done one of two ways – either buy a dual band wireless N bridge (also sometimes called wireless gaming adapters), or buy a xbox wireless adapter.
I ended up purchasing this the Xbox 360 Wireless adapter from my local Microcenter for $49.99 as it requires less cords and no power supply (it also happened to be the cheapest option).
Now some changes can be made to the Airport Extreme:
The 5ghz and 2.4ghz networks still need to be broadcast under different SSIDs (network names), but now you can bring N speeds back to the 2.4ghz network. (I tested with the 5ghz and 2.4ghz being on the same SSID with the Xbox dual band wifi adapter plugged in, and while it would jump up to N speeds if it had fantastic signal – it would still immediately drop down to 5-7mbps if I wasn’t holding the antenna.) Once 802.11n speeds have been added back to the 2.4ghz frequency, the settings should look something like this:

With that complete, you can now plug in your Xbox wireless adapter, turn your xbox on, and have it join the 5ghz network. Once joined, your xbox will no longer bounce around to B speeds and instead should stay at 802.11n speeds with some stability. After I completed this, you can see my results on the Media Center Network Tuning graph:
Xbox Media Center Extender Network Graph

Paying $50 to make the Xbox 360 S live up to its stated “wireless N” abilities is quite ridiculous, and it is pretty terrible that Microsoft couldn’t just bundle the Xbox 360 S with a decent wireless chipset in the first place. Everything else in the house loves the new Airport Extreme, and we can finally get decent wireless signal in the backyard for listening to music in the summer. Now if I can just find the time to watch some TV shows we have recorded – like the last two seasons of Fringe…I hear it’s over now (we’re two seasons behind).


Netflix on Linux? Ubuntu PPA available

Found this when looking up Netflix options for Linux this morning after my girlfriend told me she couldn’t watch Netflix on her temporary laptop.


My girlfriend recently spilled Pepsi One on her laptop due to her carrying a purse, and the dog thinking it’s a fun game to run around the house when confronted with her leash+harness. In the interim of us repairing it, she’s using an old Dell laptop with one of the highest ‘core 2 duo’ processors for mobile they made, 4gb of ram, and a discrete Nvidia GPU – so it’s not exactly a terrible machine. It’s running Lubuntu Linux – I had planned on using it for a dev machine, but then I got a new laptop as well.

As far as installation goes – this was relatively simple, and my girlfriend could’ve easily performed this task. After the PPA was added and the installation of the packages complete, you’re presented with a ‘Netflix Desktop App’ in your ‘Sound and Video’ application section (or under ‘Sound and Video’ if you run Gnome Classic or similarly organized desktop manager). Don’t be fooled – this isn’t an actual application. Upon initial launch, the ‘Netflix Desktop App’ begins configuring your WINE bottle. This bottle, is basically a Firefox browser with .net framework and Silverlight plugins installed so that you can run Netflix natively via the Windows Silverlight method – without a Windows installation or Windows virtual machine.
After the WINE bottle is finished and all frameworks and plugins have been (auto)installed (by clicking on the appropriate ‘next’ boxes of course – reminded me very much of being on my Windows desktop at work again), you’re presented with a full-screen Firefox browser (that you can supposedly make windowed by pressing F11, though that did not work for me – time to file a bug). In the full-screen Firefox browser, watching video seemed to work very nicely, though playback of the HD trailer for House of Cards seemed to stutter a bit.

Overall, this seems to be a pretty excellent solution for those that need Netflix on an Ubuntu machine – though I have to imagine those numbers are pretty minuscule in comparison to the total of the market. In my opinion, this is the first ‘real’ solution, as having a Windows VM just for Netflix or going through this process manually were solutions too time consuming to give much thought.


CES 2013: What do big bird, an arch bishop, rolls royce, and maroon 5 have in common?

The answer is Qualcomm’s keynote address at CES 2013.

UPDATE: I forgot to mention – this entire ‘Born Mobile’ live streaming keynote, was unavailable on the iPhone and most mobile devices. Fantastic.

Just look at Paul Jacobs’ face on the right there and think Stanley Kubrick meets trolling an audience…meets a haggard looking, but still crazy as hell Ballmer meets….well, just watch the video.

The ‘best of’ video from The Verge quite accurately depicts the entire keynote. Save yourself some time and just skip the full length keynote for this Cliff’s notes version.

Though, after watching this I’m sure you won’t believe that any of this actually happened and force yourself to sit through (or at least scrub) through the entire full-length keynote.

So much crazy on stage in such a short time span with Ballmer and Paul Jacobs even sharing the same stage at times.
I went into watching the keynote only reading comments such as “Oh god, Qualcomm’s keynote”, and by the time Ballmer got on stage I kept thinking “something even more ridiculous is going to happen next” – and then it did. The keynote should’ve ended in massive destruction with rainbows shooting out from all directions – that would’ve made more sense than the actual ending.

If this is the future,
God help us all.

Ubuntu Phone

Ubuntu Phone

Via Canonical’s Pre-CES Announcement and Ubuntu Phone landing page.

I thought this was interesting, as it fits right in with my “way of the future” dreams back when I got my first Palm OS phone.

“These will one day replace my computers…”

While that idea doesn’t necessarily seem to fit for 100% of the users anymore, the idea of “one device to rule them all” is still tantalizing and is already becoming a reality for many iPad users as they forgo their “desktop” OS’s entirely. Unfortunately for me, I’m a developer – so I may not see this future, though us developers can always dream (with an iPad mini wifi+cellular and my phone for calls, I can get close and technically could do remote break-fix web work in a pinch if I had to).

The developer tools look pretty interesting, as the native toolkit seems to derive from QT5 and the Ubuntu QML implementation. I haven’t had a chance to dive into the API documentation yet, nor do I know if I will – as this could easily go the way of the Motorola Atrix’s webtop (everyone jumped on that bandwagon right?).

The gestures very much remind me of what I loved from Palm’s WebOS and the openness(?) reminds me of what everyone was chanting when Open Handset Alliance announced Android. The main difference here is that Canonical has shown its ability to work with major manufacturers while also keeping their dedication to the platform and what Ubuntu/Linux stands for. Meanwhile Google has enforced restrictions on those who wish to have the full suite of Google Apps available to their users while also showing some shady behavior in regards to Android deals and distribution. The Open Handset Alliance page hasn’t had a news item since 2011, which just furthers my beliefs that the Alliance is really more of a cult following.

For the masses, the Ubuntu phone could mean a stab at Google’s reign with Android as users become increasingly irritated with Google’s constant collection of their data and invasion of privacy, or simply a reasonable alternative for those that cling to AOSP roms for their handsets in order to run a modern operating system when the manufacturer fails to produce a promised update (or takes forever to do so).

For Linux users, the Ubuntu phone could finally mean a handset coming to market that more accurately represents their desires of openness and freedom which could prove to be a worthy alternative to Android or iOS for their mobile phone/tablet needs.

Speculations aside, with RIM flailing, Nokia seemingly following suit, and Windows Phone barely making a dent in the market, some fresh competition by a player big enough to “bring it” is much-needed.


The year of the Linux desktop…or something (2012 edition)

UPDATE: I’ve done a few more ‘Linux idiot’ test installs to check difficulty, and completeness as a desktop OS on our Laptop and Ubuntu 12.10 with very minimal modification works great now with the updated packages. I may post another update regarding the modifications I’ve made to have it perform smoothly on our ‘2010-era’ laptop.

Every year you hear it.
It usually starts out with something like “Dell releases new PC with Ubuntu Linux option,” which quickly escalates in the industry to the resounding chorus chanting date(‘Y’).” Is the year of the Linux Desktop.”

Being familiar with this beating drum, and having once fallen prey to it when I was 21 (with the release of Ubuntu 4.10), I’ve gone from testing out many distributions a year, to testing only one.

One distribution a year, as a “desktop” Operating System.
I can’t really set aside much more time than that anymore, as I usually do full-switch for at least two days lasting up to a few weeks depending on various factors.
For my very unscientific and opinionated test, I try my hardest to forget my 14 or so years of Linux experience and approach the entire process as a complete novice. For my testing distribution, I have a tendency to pick whatever the most popular distribution is at the time in hopes to have the greatest hardware/software/community support, though this year I just defaulted to the Ubuntu desktop.

I’ve kept up a similar routine since roughly 1998 when I first tried Slackware Linux after seeing it running on a friend’s repurposed desktop computer serving files, websites, email, and eventually a Quake 3 Arena server.
It’s funny that after all these years the two things I remember most about this person was that he had an uncapped cable modem, and that his brother inadvertently introduced me to Linux (I honestly can’t even remember the guy’s name).

After installing Ubuntu 12.10, I quickly started to notice some hilarious issues. I had installed on a laptop, and I noticed that if the CPU stepped down its clock speed, the GUI started chugging a bit. After some more research (I had already installed the newest Nvidia drivers for the laptop’s discrete GPU), running the processor at the highest stepping level seemed to fix some of the issues. I promptly switched from Unity to Gnome, and saw different problems (now with audio, with the only change being that I ran Gnome at my user login vs Unity). Things got ridiculous, and I quickly grew tired of the time I had spent tinkering and diagnosing so I tried Lubuntu.
Lubuntu works perfectly, though now looks suffer due to the minimalist lxde desktop environment (yeah, ATM machine, I know) and less visual customization in regards to window/desktop effects that a user such as my girlfriend might expect in 2012.

For me, Ubuntu is not currently an option for a laptop (or even as a desktop OS for an average user if a single component does not work upon initial install), and furthermore, the steps required to diagnose these issues and even get to this point are quite ridiculous (for an average user). I understand if I was looking for a better “out of the box” experience regarding codecs and “non-free” packages, I should’ve tried Linux Mint, though with a quick search of their forums it looks as though their Ubuntu->Debian variant has many of the same (laptop related) issues, though less issues specifically due to the Unity desktop or Gnome 3 due to their usage of Mate and Cinnamon (maybe next year).

I can only hope more outside (novice) user experience testing is part of the major testing and development strategies within these open-source communities and organizations (if not now, soon), as it seems that they still count on power users and Linux enthusiasts being their only users in 2012.

This was the year I was going to switch my remaining “PC” family members over to a Linux variant from Windows XP to finally rid myself of having to clean up malware during every family gathering. Though after this year’s (unscientific and opinionated) Linux desktop testing, finding quirks with power management, laptop specific quirks, quirks with audio, and the ever present error reporting quirks, this switch will have to wait for 2013. And while I might get comments like “Why not use nagios and monitor their syslog and smnp events, and remotely login to help them with VNC, and..and..” – because I want to remove myself from the equation as much as possible and empower the users (my family) to figure out their basic tasks as much as they can on their own. I keep hoping for a more “free” method (cost and liberty), so I’ll keep trying once a year (or more as time permits).

So here’s to 2013 – the year of the Linux desktop (or the year I break down and buy the remaining PC family members iPads).