I Just Voted For Obama

I just voted to kill babies, bankrupt our grandchildren, turn “the greatest healtcare system in the world” into a giant socialst death panel, outlaw the saying of “Merry Christmas,” institute Sharia Law, implement the “Gay Agenda,” and burn the Constitution while dressed as Thomas Jefferson in drag. Or something like that.

GV Places Discontinued

I hate to have to do this, but I have just pulled GV Places from the App Store, and I will not be selling or maintaining it any longer.

Some users have been experiencing problems with credentials and the various calls to the Google Voice back end. I have never had those problems, and thus have had a very hard time diagnosing the issue. I had planned to release a new version that included the ability to mail verbose logs to me, in the hopes that I could spot something that was going on. But then I got an email from Apple saying that it’s time to pay them again for the privilege of developing for the iPhone. And I just can’t do that.

I’ve spent hundreds of hours working on this app, and $200 in fees to Apple. I haven’t recovered more than 1/3 of that expense, so it just doesn’t make any sense for me to continue.

For those of you who bought it, thank you. I’m sorry I have to drop it, but I do.

My 2006 Mac Pro Is Having Issues…

I’ve loved this computer since I bought it in November 2006. It’s a massive workhorse, still. 2 dual-core 2.66GHz Xeon chips. 12 GB of RAM. 4 TB of hard disk. Still a fast machine. But it’s having problems. I think it’s just the video card, but I’m not sure. I ran memtest on it for about 20 hours straight, and it didn’t identify any problems. I am hopeful that replacing the video card will fix it, but that will still not be a cheap fix. Here’s what the video looks like right now

So, I Resurrected My Blog

After just over a week of it being dead, I brought it back, but hosted at WordPress.com. This is what I should have done in the first place, instead of moving to Tumblr. So, almost everything is back, but some of the images and other artifacts are gone. (Stupid, stupid….) And most of the code samples will show up unformatted and uncolored until I either Gistthem, or wrap them in the WordPress short code.

Now I just need to write something interesting.

Fast Apple Customer Support

Today I bought the 24 song, 2.3 hour-long Van Halen record Live: Right Here, Right Now from the iTunes store. But there was a snag: “Why Can’t This Be Love?” failed with an error -100000. I tried restarting it a couple of different ways, but each time it would download it, then restart, three or four times, until it would finally choke with error -100000. I even downloaded the album on a Windows machine and 23 songs downloaded fine, but that one track failed with the same error. This pretty much proved to me that it was a problem on Apple’s end. I then went to my account in the iTunes store and reported an error with the track.

I received an auto-response pretty quickly with some things to try, but nothing useful. An hour or so later, I got an email from a human at Apple that basically told me to try what I had already tried and to let them know if I was still having problems, as well as providing some other info like ISP, Internet connection type, etc. I emailed them back with the details they asked for, and told them what all I had tried, including trying to download to another machine. I wondered how hard it was going to be to convince them that the problem was on their end.

A couple of hours later, I received another email, this time from a different human. I immediately assumed I would have to re-explain everything. Much to my surprise, this is what the email said:

I understand that you are unable to download the song “Why Can’t This Be Love” as your [sic] getting error -1000000. I know how eager you are to have this resolved at the earliest. I will be glad to assist you today.

Joey, please accept my sincere apologies for the frustration this download has caused. I took the liberty of removing the file causing the issue from your download queue. To give Apple time to investigate the issue and make any corrections that may be necessary, please wait at least two weeks before repurchasing this title.

I have issued a replacement song credit to your account. You can use the credit to buy a song of your choice from the iTunes Store.

So, while it kind of stinks that it could be two or more weeks before I can get the track replaced, it’s nice that they refunded me the money for the track so quickly. That’s nice, fast, customer service.

My New “Top Artists Last 7 Days” Widget

Note Redux: I changed my approach, yet again. Scroll farther down to see the latest.

Note: I changed my approach on this, so scroll down to see how I’m doing it now.

I’ve been wanting a widget or an auto-post on the blog for a while that would show my most-listened-to bands over the previous week. Tumblr users have had something like this for a while, and there were efforts to do this for WordPress before, but they either don’t seem to work with the latest versions of WP, or they only pulled top tracks (not artists), or they pulled album covers, instead of text. All of that is to say that I couldn’t find anything pre-made to use.

So, I had to roll my own. I did so in about 10 minutes using the PHP Code Widget and the script on this page. The only drawback to this is you have to get a developer account with last.fm, but it’s free, so no big deal there. I installed the PHP Code Widget , then pasted the script into a new widget. The only changes I had to make were to replace the appropriate bits in the script with my info, and to escape a couple of double-quotes. Now if you look down the right side of the blog, below the Twitter and Facebook links, you’ll see a rolling record of my top-artists. In case you were wondering what I’ve been listening to. 🙂

The only thing I’m not sure about is how this will work with the two levels of caching I use (WP Super Cache and Cloudflare). I suppose we’ll see in the next few days, eh?

11/23/2011 Update: I decided that I didn’t like the way I was doing this, for a couple of reasons. First, each time someone viewed the page, it would be making a call to Last.fm for my stats. This is too often. Also, the values returned using the developer API were at odds with what you can get just going through the web. So what I did was write a Ruby script to pull the feed once a day, parse it and output HTML to a file. I then used the PHP Code Widget to include it. Far simpler, in my opinion.

Here’s the Ruby code:

[ruby]
#!/usr/bin/ruby

require ‘rexml/document’
require ‘open-uri’

include REXML

open("http://ws.audioscrobbler.com/2.0/user/joeyGibson/weeklyartistchart.xml") do |http|
response = http.read
doc = REXML::Document.new response

index = 0

File.open(ARGV[0], "w") do |out|
out.write("<html><head>n")
out.write("<meta charset="UTF-8"/>n")
out.write("<body><ol>n")

doc.elements.each("weeklyartistchart/artist") do |artist|
break if index == 5

out.write "<li><a href="#{artist.elements[‘url’].text}">#{artist.elements[‘name’].text}</a>, Plays: #{artist.elements[‘playcount’].text}</li>n"

index += 1
end

out.puts("</ol></body></html>n")
end
end
[/ruby]

and here’s the PHP that loads it:

[php]
<?php include("/tmp/artists.html"); ?>
[/php]

That’s it.

11/26/2011 Update: Well, I’ve changed it again. I discovered that the RSS feed I was pulling is not updated with any sort of frequency. It certainly doesn’t represent the “last seven days” as it claims to. At any rate, it differs greatly from what Last.fm shows on the web. So I decided to grab the HTML and pull out the interesting bits. I wrote another Ruby script, this time using Hpricot to parse the HTML, which took about 10 minutes. So now, what you see on the right should be the current values for the “last seven days.” Here’s the latest script:

[ruby]
#!/usr/local/bin/ruby

require ‘rubygems’
require ‘hpricot’
require ‘open-uri’

open("http://www.last.fm/user/your-username-here/charts?rangetype=week&subtype=artists&quot;) do |http|
doc = Hpricot.parse(http.read)

count = 0

File.open(ARGV[0], "w") do |out|
out.write("<html><head>n")
out.write("<meta charset="UTF-8"/>n")
out.write("<body><ol>n")

doc.search("td[@class=subjectCell]").each do |subjectCell|
break if count == 5

artistString = subjectCell.get_attribute("title")

artistString =~ /^(.+), played (d+) times$/
artist = $1
playCount = $2

subjectCell.search("a").each do |a|
url = a.get_attribute("href")
url = "http://last.fm#{url}"

str = "#{artist}, #{url}, #{playCount}"

out.write "<li><a href="#{url}">#{artist}</a>, Plays: #{playCount}</li>n"
end

count += 1
end

out.puts("</ol></body></html>n")
end
end
[/ruby]

I’m hopeful this is the last change.

Google Chrome Sync Not Working? Try This

I use Google Chrome exclusively as my browser on both Mac and Windows, and I pretty much love everything about it. One of the things I love most about it is the ability to sync most of your settings between machines. This includes bookmarks, apps, themes, passwords, etc.

But the last three times I’ve done an install of Chrome on a machine (my friend’s loaned MacBook, my new MacBook Pro, and a Windows7 VM), when I entered my email address and password, I was told by Chrome that syncing was not available on my Google Apps account. Hmmmmm….

I don’t have an @gmail.com Google account, I have my own domain and a Google Apps account. While Google is trying to make Apps accounts and regular Gmail account identical, there are still some differences (like no profiles…). This can be frustrating, and I assumed that somehow my existing machines had been grandfathered in, but new ones were being excluded. (Also, both the Google Voice and GV Mobile+ apps on my iPhone failed to let me login, complaining about my email address or password being wrong.)

Then yesterday I noticed a comment on a forum (somewhere) suggesting a password mismatch between Google services might be to blame. I decided to give it a shot, so I went into my Google account settings and changed my password. Then I tried to enable sync on my MacBook Pro. BLAMMO! It worked. Then I enabled it on the Windows7 VM. Worked there, too. Then I tried to login using both the Google Voice and GV Mobile+ apps on my iPhone and both now allow me to login.

So, if you are having problems with a Google service or app, such as being told it’s not enabled for your apps account, or getting login failures, try changing your password.