iTunes Match

I’ve been using iTunes Match for a couple months now, and wanted to post some thoughts.

The initial matching and uploading process was pretty slow. I can’t imagine how long it would have taken if I was uploading everything like Amazon or Google’s music services. I had around 21,000 songs, and something like 3,000 did not match and therefore had to be uploaded. It took a long time.

After getting the initial process done, I’ve been using it in several places. My actual files have been hosted on a Mac Mini in my living room. Previously, I used Home Sharing (and Shared Libraries prior to that) to play my music on my laptop. To get music on my iPhone, I had to sync with my living room computer, which was a little bit of a pain.

iTunes Match results in several positives compared to that. 1) I can stream music from the cloud on my laptop. My Mini doesn’t have to be running to serve those files out over the LAN. 2) None of my music currently resides on my iPhone, but if I need to play any songs, they’re listed to be downloaded and played. I can also choose to download an entire playlist in one shot, as long as I have time to wait for it to download. 3) My PC at work has iTunes installed, and after signing in with my Apple ID, I am able to stream all my music at work, despite not taking up any hard drive space with my files.

I have also noticed a couple drawbacks. Even though iTunes says it matched my songs, I’ve noticed that some of the “matched” songs playing from Apple’s servers are censored versions of songs I had that were not censored. Mildly annoying, but not really a deal breaker. Update (May 12, 2012): This problem seems to have been remedied. I read in an Apple support forum that it was a known issue, and I’ve noticed over the last week or so that I am getting the right tracks now.

One thing I would like to see added to the service is some kind of podcast sync. I would like for all the podcasts i listen to to be available on all my devices, and I would like my position to be synced. I move from device to device and it would be nice if podcasts could pick up where I previously left off. I’m sure that’s something that will be added sometime in the future.

Overall, I’m very happy with the service, and I’ll definitely let it auto renew for the foreseeable future.

Posted in Apple, Music, Tech | Tagged , , | Leave a comment

Fixing Messages for OS X

Now that Apple has released the Messages for OS X beta software, it’s possible to be able to send and receive iMessages on my computers alongside all the iOS devices in our house. It makes it very convenient to be able to continue conversations while moving from device to device, but it also creates a situation where a chorus of alerts come from all corners of the house.

I’ve come up with an easy, simple plan for Apple to remedy this. It goes back to something that’s existed since the early days of instant messaging programs: the status. If you’re from the instant messaging generation, you know what I’m talking about. The IM status was the original Twitter; a place to let your friends know what you’re currently doing or post a short funny joke. This plan could give it an important encore.

If Messages is running on my Mac, and my status is Available, any iMessage I receive should only alert me on my Mac. The messages should still go to my other iOS device(s), but without an alert.

If Messages is not running on my Mac, then everything should function on my iOS devices as it does currently.

The glory of the system shows itself when Messages on my Mac is set to away. The messages continue to go to the Mac, but the alerts are turned back on for all my iOS devices. This all seems pretty elementary, but once you couple this setup with the ‘Set my status to Away after the computer is inactive’ setting in the Messages preferences, you’ve basically covered any situation where you walk away from the computer. If your phone rings or you need to run to the store, you pick up your iPhone and leave and a few minutes later, your computer sets Messages to away. Apple’s iMessages server is notified [I’m sure Apple would ask for permission to receive your Available/Away/Offline status], and your alerts automatically kick back on, where you can hear them in your car or out walking the dog.

That would narrow the off-the-grid grace period down to whatever the arbitrary inactive time is for OS X. I don’t know if this interval is tied to the screen saver, some other setting, or the whims of the OS, but it wouldn’t be hard to create an explicit setting for it if necessary. Regardless, it seems significantly better to me than what we’ve got with the beta version of the software, and it seems much easier to implement than any high tech bluetooth proximity systems or other overly complicated solution I’ve been able to dream up since it came out.

Posted in Apple, Tech | Tagged , , , , , | 18 Comments

On College Athletics

Inspiration for this post:
NYT: Let’s Start Paying College Athletes

I spend a lot of time reading and absorbing thoughts from various media members and other pundits about What To Do About College Athletics™. The divide between coaching/administering haves and athlete have-nots is not going away. It’s only growing. The current system worked when athletics were pure; when coaches were educators and sports were just another extracurricular activity. Many sports are still in that boat, but football and men’s basketball certainly are not. They generate $6 billion in revenue. Coaches receive millions of dollars in salary, and jump from school to school without any regard for athletes.

The author of this story proposes some interesting changes to the system to account for the disparity between the haves and have-nots. I’m not sure, in its entirety, that this is the holy grail of solutions, but it’s certainly both on the right track and well thought out and plausible (unlike a lot of the other pie-in-the-sky stuff published on this topic).

I have loved the players’ association concept for a long time. Professional athletes have players’ associations, because it’s much easier to be treated fairly when you bargain as a group. In fact, it’s no different in any field. It’s hard to argue the premise that unions create better working conditions for their members. It’s not difficult to find columns out there that suggest athletes should strike to improve their situation. This would be a lot easier with savvy, professional representation in place to negotiate their return to a system that is more fair.

This is the first time I’ve heard anyone propose extra money for education after athletic eligibility is over, and I think it’s such a good idea that I want to expound on it. Once lesser players find out they aren’t going to make it in whichever league they hoped to go to, I suspect there might be renewed interest (and sufficient time) to wrap up a degree. It would also be much better for real student-athletes, who are pursuing an actual (read: non-cupcake) degree while playing, to know they have the money to finish it after sports, if they want to lighten their courseload a little in-season to keep their grades up. Isn’t the entire idea to help people get degrees? As a bonus, this proposal alone would have no affect on amateurism or the purity of college athletics. Kids would still be playing ball in order to get a degree, but perhaps some more kids would actually get a degree in process, instead of being used up and thrown out the back door. Even the APR formula could be adjusted to incorporate these extra years of school.

It seems very obvious that things are a out of whack in college athletics, and with the NCAA member institutions’ most recent thwarting of even an optional $2,000 stipend for athletes, they clearly can’t be counted on to make any concessions. However, the issue isn’t going away, and I think these two options—one dependent on the athletes and one that can be set forth by the institutions—are both pretty reasonable first steps.

Posted in College, Sports | Tagged , , , , , , | Leave a comment

Clean Up OS X Lion Launchpad

I’m not especially a big fan of the OSX Lion Launchpad, but it pops up every once in a while. It would really bother me that it showed every single app in my Applications folder, including uninstallers and prefpanes and who knows what else. The feature seems to be a little buggy and not quite completely thought out, so I’ve noticed moving icons around and trying to remove icons from the list doesn’t always seem to hold up across restarts. However, I found this little prefpane that does help get rid of the apps you don’t want to see in Lauchpad.

It’s called Launchpad-Control, and you can download it here:

Launchpad-Control simply adds a prefpane for Launchpad and lets you uncheck a checkbox for any app in Launchpad that you don’t want to show up there. It’s donation-ware, so if you don’t want to pay, you don’t have to. It seems to be working great for me, so I thought I’d put it out here in case anyone else is searching for ways to make Launchpad look a little better.

Posted in Apple, Tech | Leave a comment

Steve Jobs (1955-2011)

I’m sure plenty of people will say it more elegantly than I ever could, so I’m not going to go on and on and on about it. Steve Jobs’ passing came too soon, and the future is not going to be the same without him. I’ll certainly miss watching him show off his new toys and seeing his alleged email responses to his customers, fans, and critics. Rest in peace, Steve.
Posted in Apple, Tech | Leave a comment

MySQL Transactions

MySQL has the ability to handle what are known as transactions: a series of queries that must be executed in an all-or-none fashion. As a bonus, it’s super easy to use.

Using PHP, you can do the following:

mysql_query("START TRANSACTION");
mysql_query("CREATE TABLE table");
mysql_query("CREATE TABLE table");

When MySQL receives the START TRANSACTION query, it won’t execute anything else until it receives a COMMIT query. Upon receiving the COMMIT query, everything in the transaction is executed, and if anything fails, it all fails.

Posted in Code, Tech | Tagged , | Leave a comment

Use PHP to get all images in a folder


$images = glob($directory . "*.{jpg,gif,png}", GLOB_BRACE);

is awesome.

Posted in Code, Tech | Tagged | Leave a comment

iOS Training: Day 2

This is going to be a short one. After spending a ton of time at a computer the last couple days, writing a blog post isn’t the thing I’m dying to do at the moment. [Ed: Nevermind. Got rolling and cranked it all out.]

We didn’t build as many apps today, but they started to get more in-depth. This morning we wrapped up some of the things we started last night using the iOS Core Graphics APIs. This involved creating a view and using code to draw vector graphics on the screen. We started out with concentric gray circles, and progressed to using the accelerometer to move the circles as you move the phone around in space. I later added the ability to change the color of the circles depending on the angle of the phone and the ability to change the background color by shaking the phone.

After that, we got into some more realistic, useful classes like the tab bar that is at the bottom of tons of iOS apps, which gives you one way to move between views in an app.

The next app we built was all about screen rotation. We learned how to handle orientation changes and how to rearrange views to fit both shapes of the screen.

The last app we worked on for the entire afternoon included our first introduction to the UITableView, which seems to be the basic building block of almost everything in iOS. The app we built basically created a table view of items. We then learned how to add, reorder, and remove items in the list. We also added a navigation bar at the top of the screen to enable us to edit items in our list. The code was pretty easily to implement, but extremely complex. It’s going to take a few more looks at it to really get the hang. [Ed: Nevermind. Got rolling and cranked it out.]

I wrapped up a little earlier today, because I was getting tired of being in the lab, so we bailed around 8 and shot a few games of pool before coming back to the rooms and relaxing with some TV. Hopefully I’m refreshed and ready to get it done again tomorrow. I think we’re tackling the camera first thing tomorrow morning.

Posted in Apple, Code, iOS Bootcamp, Tech | Tagged , , , , | Leave a comment

iOS Training: Day 1

Today was the first real day of class. Over the course of about 12 hours working, I went through the first six chapters of the book we are supposed to make it all the way through this week.

Today’s chapters got me through three different apps, two of which made it to my iPhone. Nothing super exciting, but it is definitely impressive to see how fast these things can be put together.

The first app we built is called Quiz. It basically has a button to show a question from an array and another button to show the answer to that question. Then you show a new question, and a new answer. So on and so forth. It was a good tutorial to learn about building interfaces and connecting them to the code through the Interface Builder, or whatever you call it now that it’s part of XCode.

The second program we built today was basically a console program with no interface that was kinda like an inventory app. It was a little more in depth on the code and introduced a lot of memory management stuff, but not being able to deploy it to my phone made it a lot less interesting.

Where Was I ScreenshotThe last program of the day was called Where Was I. This was where things started getting interesting. It included a map view and used CoreLocation and MapKit to acquire the device’s location and display it on map. After that, you can type a string into a text field and drop a pin on the map with that label. Again, nothing too complicated, but neat to see it all come together. After dinner, I went back to the lab and did some of the “extra credit” work on that project. I used some more functionality in MapKit to reverse geocode the location of my pin, and add the city and state to the pin’s label as a subtitle. I also added a segmented control to my map that lets me change the map type to satellite and hybrid, along with the standard map. It took me a couple hours to figure it out, but now that I know how it works, it seems pretty easy. It was nice to have the instructor there to get help with questions and help to find problems. It’s super impressive to see how quickly he could read the code and get oriented.

I got back to my cabin tonight around 10, and I’m sitting here watching a ballgame while I type this up. Even though it was such a long day, it really didn’t seem like it, so I hope the rest of the week goes the same way.

Posted in Apple, Code, iOS Bootcamp, Tech | Tagged , , , , | Leave a comment

iOS Training: Day 0

I left home in Indianapolis at 1:30 this afternoon and hopped a flight to Atlanta. After that, I took a one hour ride to Historic Banning Mills, Georgia, home of the Big Nerd Ranch. I got checked into my cozy cabin in the middle of nowhere around 6:30 and headed back to the main building for dinner. Most of the students had arrived by this point, and we had a nice dinner of spinach-stuffed chicken, mashed sweet potatoes, and broccoli.

After dinner, we went downstairs to the lab, our home away from home for the next five days, and did some quick introductions. I also got a look at the 300 page book we’re going to attempt to go all the way through in the next five days, and generally just chit chat with some of the other people in the class.

After introuductions, we went upstairs and shot some pool, in what could prove to be the last leisure time of the week. We’ll be kicking off the real business tomorrow morning at 8:30.

Posted in Apple, Code, iOS Bootcamp, Tech | Tagged , , , , | Leave a comment