| Subcribe via RSS

The iPod Project: Part 2

November 16th, 2008 | No Comments | Tagged as:

Ok, so it’s been a while since I started this project. Let’s just say that my last quarter as an undergrad was a ton of work and the thesis that I churned out in a week took a month to push through to final approval. So, here I am, ready to continue the project.

I actually did this a month and a half ago, but haven’t had the time to write about it. I tried what I outlined in the first post, and, sadly, it didn’t work as planned.

The particular FireWire cable that I purchased didn’t appear to be up-to-spec since it did not have shielded twisted pairs, instead having only a single braided shield for the whole cable. In an attempt to increase the fidelity of the audio being delivered to my car stereo, I used some old stereo cable, which has each channel individually shielded, to carry the audio and the FireWire cable just to carry power to the iPod.

After I assembled all of the parts, I installed the cable in my car to test it. The audio worked great. After plugging in the adapter, I was able to hear my music out of the speakers in my car, without any noticeable distortion. I noticed rather quickly that the charging icon was not appearing on the display. To make sure that it should show up, I pulled out my USB charger and plugged it into my iPod while it was playing music. Sure enough, the charging icon showed up.

I am not sure why the iPod refuses to charge when given approximately 12V to its FireWire charging pins. I can only figure that Apple got rid of the circuitry for charging at FireWire voltages. Since I do not have an official FireWire adapter, I cannot test this theory.

So, I will attempt an M2 of the project the next time I am home, around Christmas. In this revision, I will use a USB car adapter to provide power and hook it up to the USB charging pins in the dock connector. I am hoping that I can find a place to tap into the cigarette lighter circuit in the car so that I’m not required to have the adapter plugged into the cigarette lighter at all times.

Gallery of iPod Doc Connector M1

Updated Pinouts
Pin Use
3 Right audio
4 Left audio
16 USB GND
21 Accessory selector: 1 MΩ resistor tied to ground
23 USB +5V

The iPod Project: Introduction

August 2nd, 2008 | 1 Comment | Tagged as:

I recently purchased a 5th gen 60GB iPod from Jim at coast trash. I threw Rockbox on it so that I could play my FLAC-encoded music, and to get rid of as much of the Apple as I could. (I even set up a VM just for iTunes to keep Apple crapware off of my computer.) All has been great so far, even though I have only used the iPod around my apartment.

I have this tendency to take long road trips, such as a back-and-forth between central Ohio and Jackson, Mississippi. I am too lazy (perhaps too focused on the road) to bother trying to tune in radio stations as I pass through cities, so I just listen to my music. Luckily, my 1998 Honda Accord has a 6-disc CD changer in the trunk. This is normally good enough to get me from meal to meal. However, I need to strategically pack my trunk so that the changer doesn’t get buried underneath piles of my junk. Also, I don’t carry much of my music library in CD format in my car, meaning that there is a decent bit of it that I can’t listen to in my car.

On a recent drive to my friend’s apartment, which is about an hour from campus, I decided to dig out the cassette tape adapter that I got around the same time I got my old RioVolt PSX100 and try it with my iPod. It worked nicely, but used the headphone jack, which meant that my music went through two EQs, leading to highly exaggerated bass and treble and non-existent mids. Since the settings to disable the EQ in Rockbox are buried about three levels deep in the menus, I had to stop right off the bat to fix this problem.

This gave me an idea: integrate my iPod right in to my Accord. I want to get to the point where all I have to do is plug my iPod into a dock connector and get audio and charging all at the same time, since my drives tend to be about 13 hours, longer than I expect the battery on the iPod will last.

I have done some digging to find some details on what I’ll have to do. First, I would need to build my own dock connector. Second, I will need a way to get audio into the factory-supplied Honda head unit. Lastly, I need a way to get power from my car into my iPod.

Parts Listing
Qty Item
1 Male iPod dock connector
1 Precision Interface Electornics HON98-AUX auxillary adapter
1 1 Amp fuse
2 Male phono (RCA) plugs
1 1 MΩ resistor
6 ft Firewire cable

My plan is as follows: order all of the parts, assemble the dock connector, then wait until I can go back home, which should be Labor Day weekend. At home I have the tools to disassemble my car’s dash board so that I can get to the back of the head unit. I will need to find a way to mount the Honda-to-RCA adapter since it is large enough that I don’t want it dangling. I will also need to tap into the power lines for the cigarette lighter to get my power. I want this to be as unobtrusive and unnoticible as possible, so I don’t want to occupy the cigarette lighter with an adapter. I will also need to decide where I want the dock connector to be (armrest, cup holder, dash, etc.).

I plan on using a Firewire cable as my cable harness. Firewire provides a +V cable and a ground cable capable of handling the currents required to charge the iPod over Firewire. It also provides two shielded twisted pairs of cable, which I will use for carrying the audio signal to the head unit. The shielding should help keep out any noise generated by the car. I have not decided whether to run the channels of the audio signal through the same twisted pair, or each through their own twisted pair.

Using the pinout chart from Pinouts.ru, I have an initial pinout that I will use for the dock connector:

Pinouts
Pin Use
3 Right audio
4 Left audio
19 Firewire +12V
20 Firewire +12V
21 Accessory selector: 1 MΩ resistor tied to ground
29 Firewire GND
30 Firewire GND

This should be a fun project. I will do my best to keep you updated on my progress and provide pictures of what I’m doing. If all goes as planned, this should be done before I go back to school after Labor Day weekend. If not, I should still have it done before my next drive down to Mississippi in October. I guess the radio and my CDs will have to do until then.

EDIT: I forgot to include the accessory indicator resistor in the pin out chart.

Link (And Video) Dump

July 29th, 2008 | No Comments | Tagged as:

It’s time for me to clean up some of the tabs that I have open in Firefox, which means that you get to see what was in them

Facebook Reinvents the Wheel

July 24th, 2008 | No Comments | Tagged as: , ,

At the annual Facebook developers conference (they even have one?), it was announced that Facebook would add support for an OpenID-like service, called Connect, that would allow Facebook users to use their logins to login to websites such as Digg and Six Apart. The key phrase here is OpenID-like. This is not OpenID, nor will it likely work with it. Rather, it is a proprietary system that a small group of websites are using to share logins with eachother.

A few years ago, before OpenID was anything more that a project at Six Apart, I would have applauded these websites for putting forth the effort to share logins amongst each other. These days, however, we have OpenID, which is seeing greater adoption as time goes on. Big names are already on board with OpenID: Yahoo, MySpace (intentionally unlinked), AOL (includes AIM), Six Apart, Wordpress, and Blogger, to name a few. VeriSign and MyOpenID are some of the many entities that are OpenID providers only, and add to the usefulness of the ecosystem.

Facebook and the other parties that are part of Connect are hurting the OpenID community by starting up their own, incompatible identification sharing service. There is no cost to OpenID other than the time to get it set up to work with your infrastructure. So, why are they creating their own service? Even stranger is the fact that Six Apart, the creators of OpenID, are one of the parties that is working with Facebook on this new protocol. Why is Six Apart undermining their own child? It will be interesting to see this play out.

EDIT: Just ran across another article about Connect. I guess Connect is more than just an identity provider. Still, I do not like the fact that Facebook traps all of their data inside their walls.

Apple Slows Updates to App Store

July 21st, 2008 | No Comments | Tagged as: , , ,

In a Wired interview with Brett Simmons, creator of the NetNewsWire application for the iPhone, it was revealed that Apple is holding back updates that Brett has made to his application for over a week, in which time he has made five maintenance releases, fixing many customer complaints. Why are the updates being held back? It ends up that Apple is testing each and every application and update that is submitted to the App Store before it is listed in the App Store.

I have two issues with this. First, if Apple is sufficiently testing these apps before they are listed, then why would they require bug fixing updates to begin with? Is Apple really gaining anything by "testing" these apps before listing them? If they are only testing to make sure that the app is not malicious, then I would expect them to show a level of trust to application developers who have a track record of submitting solid, non-malicious apps to the store. Mozilla follows a similar model with Addons.Mozilla.Org (AMO), where a trust is built up between Mozilla and a developer, eventually allowing the developer to post updates directly to AMO without the addon having to be vetted by any people at Mozilla.

Issue number two: Since all apps in the App Store are monetized, then couldn’t developers argue that Apple is hurting their income by preventing them from offering fixes for their apps? If an app gains a reputation for being buggy or slow even though a version that fixes all of that is awaiting approval from Apple, there is nothing the developer can do to regain their lost reputation and revenue. Telling the users that an update is being held up by Apple will likely get them nowhere since most App Store users are most likely not privy to the application listing process. They would most likely see this as little more than an excuse while the developer scrambles to fix their application. With Firefox, you can install an addon from any website you want, allowing a developer a completely separate channel to distribute their addon through that bypasses the vetting process on AMO. However, with the iPhone, you can only get applications through the App Store, unless you want to jailbreak your phone, leaving you with no alternate channel to distribute your application.

I am curious why more iPhone developers are not up-in-arms about this. Their reputations are being harmed and their profits decreased because Apple has chosen to lock down the App Store and not trust the developers that are helping the iPhone reach new heights. If Apple would only follow the model that is used by Mozilla on AMO, then I am sure developers and users would be much happier.

New Look

June 21st, 2008 | No Comments | Tagged as: , ,

I guess the original look for WhistlinDixie didn’t last long; two weeks by my count. I didn’t stray far in finding my new theme, though.

My original theme was Big Blue from Blog Oh! Blog, which I found in the WordPress themes directory. While it wasn’t bad looking, it never really pleased me. In fact, I kind of considered it a placeholder until I could find a better one.

Since I exhausted the WordPress themes directory, I decided to see if Blog Oh! Blog had any other free WordPress themes. To my surprise, they come out with new themes quite often, many of which are free. While browsing through their catalog, I came across a theme called Statement. It immediately appealed to me, unlike anything I saw in the WordPress theme directory. I quickly downloaded and installed it.

I noticed that some of the widgets that I was using were part of the new theme, such as the search widget, the archives widget, and the syndicate widget, so I removed them from my sidebars. I also changed the category listings on the posts to tags listings and removed the tags listings from the ends of the posts.

I then noticed that the page logo was a graphic, not text. I looked at the description for the theme, and it mentioned that the original PSD for the default logo was included with the theme. Excited, I opened up Paint.NET and opened the logo.psd, only to find that Paint.NET choked on it. I checked to make sure that I had the PSD file handler extension installed, which I did, and that it was the newest version, which it was (released over a year ago). (I don’t think it makes sense to distribute a free theme that basically depends on a costly graphics editing program.) Bummed out, I went and got out my Photoshop CS2 disks to install the trial version so that I could get the site logo fixed up. Once I got PS installed, I opened up the file, only to find that I lacked the font that the logo originally used.

At this point, I noticed that the banner was on a solid background, without gradients. This would make it very easy to roll my own graphic without needing the original for anything except color references. I grabbed the GIF version of the logo and picked the background color out of it and started up a new Paint.NET image. I decided to use the Blue Highway font since it closely matched the font originally used in the logo. A little pixel pushing later and I had a new logo.

Hope you enjoy the new look. Hopefully, this one will last a little longer than the first one.

Crashy Crashy, Not Cool

June 14th, 2008 | No Comments | Tagged as: , , ,

Starting back on the 18th of May, I started getting frequent crashes of rundll32.dll on my laptop. This corresponded with me updating a bunch of drivers on my laptop. They seemed quite random, but always seemed to happen in response to actions that I made. Today I finally got fed up with it and decided to try to fix it since the last round of Windows Updates from last Tuesday didn’t fix the issue.

I first looked at the Reliability and Performance monitor, only to see that it didn’t give me anywhere near enough information to do anything. (In case you are curious, my index dropped from 6.60 to 2.96 while I had this problem, though I have also experienced a few blue screens while trying to sleep the lappy. Stupid HP drivers.) From there, I decided to Google for the answer, and happened upon a forum posting about a similar problem. At the end of the thread, Comodore mentions that you should run the command sfc /scannow. I was not familiar with this command, so I looked at the help for it and found out that it looks at all of the files that Windows protects and replaces them with the correct Microsoft versions if they are wrong. I went ahead and ran the command (it took about 20 minutes to run). When the command completed running, it reported that it had found issues and had successfully repaired all of them. I took a look at the log file, and it looks like it had to repair a lot of files. To make sure that all bad versions would get out of memory and be replaced by the good version, I rebooted my computer.

So far, I have not received any more of these rundll32 crashes, so it looks like it worked. I’ll keep an eye on it, but it looks like this problem is fixed.

Move Complete

June 7th, 2008 | No Comments | Tagged as: , ,

About six months ago, I started becoming unhappy with Nucleus CMS, my blogging platform. First, it had no native support for tagging, which I prefer to categories. To get this functionality, I had to get a plugin, np_tags, and then manually integrate that plugin into my site’s skin. At first, this worked fine, except that you could not view the tag pages (to see all of the posts that had a specific tag). When the update to version 3.31 came out, I applied it and went on with my life. One day while I was looking at my site, I noticed that pretty much everything that did any navigation away from the from page was broken. It took me a whole evening to fix this issue, and I was still left with broken tags.

I finally decided that enough was enough and that I would switch to another blogging platform. My two primary options were Wordpress and Drupal. I knew that both of them could work due to their popularity and wide-spread use. My primary criterion then became ease-of-migration from Nucleus. After a little reading, I discovered that, to move my content into Drupal, I would not only be on my own, but also have to learn Drupal’s API since direct database manipulation is not supported and is known to break things. Since I wanted to do this conversion quickly, I opted to go with Wordpress.

I started out by getting a skin that I liked (Big Blue 0.1 by Bob) and installing some useful plugins. I then did a little tweaking to the plugins to get their widgets to mesh with the skin. Then the real work started.

Getting my data from Nucleus to Wordpress ended up being more difficult that I initially expected. Being a programmer, I have done database work before, so I knew SQL relatively well. I figured I would just need to write a few INSERTs and that would be it. I started by diagramming the relevant parts of each schema and figuring out how I would map one schema into the other. For the posts and comments tables, this was a straightforward transformation, requiring a single INSERT for each, as well as an UPDATE for the posts table. Then came the tags.

In np_tags, the tags for all of the posts are stored in the nucleus_plug_tag table. Instead of doing the sensible thing and putting a tag in each row and allowing a post to be referenced by multiple rows, each post had exactly one row in the table with its tags stored like /tag1/,/tag2/,/tag3/. This was a pain in the butt to break apart using only SQL. I ended up having to write a couple of stored procedures (in MySQL, where I have no experience, instead of T-SQL, where I have had some fun in the past) to break the tags into something manageable in SQL. I finally got all of my data migrated last night, two weeks after I started. (Note, I was not able to work on it last weekend since I went home for my brother’s high school graduation.)

It did not take me long to upload the new data to my blog so that I could look at it in all of it’s glory. I discovered rather quickly that Wordpress was doing some strange stuff to the contents of my posts. Whenever I post videos on the blog, I try to format the HTML so that I don’t have to scroll my text editor horizontally, typically leaving me with markup that looks something like:

<object
		width="400"
		height="315">
	<param
			name="video"
			value="something">
	</param>
	<embed
			width="400"
			height="315"
			video="something">
	</embed>
</object>

This was then transformed by Wordpress into:

<object<br />
		width="400"<br />
		height="315">
	<param<br />
			name="video"<br />
			value="something">
	</param>
	<embed <br />
			width="400"<br />
			height="315"<br />
			video="something">
	</embed>
</object>

which of course does not get rendered correctly by any browser. To fix this, I simply had to go and remove the line breaks from within the HTML tags and the problem was solved.

My next thing to fix was to redirect any requests for my RSS feed or the post pages to their new locations. The RSS feed was taken care of rather quickly using Apache’s mod_alias and RedirectPermanent. The posts were harder since I had to use Apache’s mod_rewrite. It took me about 45 minutes of fussing to get a rule that would work. The biggest problem that I ran into using mod_rewrite was how it acts differently between the http.conf file, where I am used to using it, and a .htaccess file, where I had to use it.

Today, I decided to host my feeds through FeedBurner so I can finally get some stats on my RSS feed. To do this, I used the FeedSmith plugin. After I set up my feeds with FeedBurner, I tried to view my RSS feed to make sure that it was being redirected to FeedBurner correctly. Sadly, this was not the case. While my comments feed was being redirected successfully, the same could not be said for my main feed. After trolling through the source for a bit, I gave up and just wrote a mod-alias redirect to redirect requests from the incorrectly functioning http://whistlindixie.us/feed/ URL to the correctly functioning http://whistlindixie.us/feed/rss2.

I also did a little source hacking this morning to tweak the calendar a bit to my liking (take up the full width of the column, attach a class to TDs with links in them) so that I can apply similar styles to it like I did with the calendar in my Nucleus blog. I am also going to work on the tag cloud to get it to display some different tags (right not it only displays the first so-many tags) and to get it to scale the font size properly.

So far, I am liking Wordpress, and I hope that by using Akismet and ReCaptcha that I won’t have to spend lots of time moderating my comments queue like Chris does. Let’s hope things keep going well.

Twitterific!

May 25th, 2008 | Comments Off | Tagged as: ,

I started Twittering last weekend in response to Leo Laporte offering any follower of he and John C Dvorak a chance at winning The Ultimate Gaming Machine. Seeing as this computer could easily top $5,000 (USD), I didn’t want to pass up the opportunity.

It didn’t take me long to figure out that I wasn’t too big on the web UI for Twitter. I noticed that a couple of the people that I followed used a program called twhirl. I gave it a try and really liked it. I also discovered FriendFeed, which is basically a way to aggregate all of your online personas that are stored within online services like Twitter, flickr, FaceBook, del.icio.us, YouTube, Amazon.com wish lists, and even blog feeds published in either RSS or ATOM. The cool thing is that I can watch both Twitter and FriendFeed through twhirl.

I have decided to integrate these services, to one extent or another, into this site. If you notice, in the sidebar (at least on the main page), I have my newest tweets listed. I am going to leave my tweets separate from my actual blog content. I have also placed a link to my FriendFeed at the top of the page.

Hope you have fun getting to look at little more at what is going on in my head.

How to Ace a Job Interview

May 18th, 2008 | 1 Comment | Tagged as:

Do you think this would work, Chris?