I wrote a guest post at Urban Indy with some comments and photos regarding the impending greenway extension project going past my neighborhood. I imagine there will be some more as things progress through the summer. The project is slated to be complete by the end of October. I’m especially looking forward to seeing how they get the pedestrian bridge up over I-74 later this spring.
VCALENDAR file with newlines in DESCRIPTION field
Hopefully if anyone else has this problem, they’ll find this post. If you’re attempting to output some data in a MySQL database as a VCALENDAR file that is viewable in Apple Calendar or Outlook or whatever, an incorrect newline character in any field can make that event not show up (or make the entire file invalid in some applications).
What you’re looking for is an escaped newline character. Newlines are stored in MySQL as \n
. You want to escape that character in your ics file, so replace \n
with \\n
. While you’re at it, it’s a good idea to replace ;
with \;
and ,
with \,
. There may also be others, but those are the ones I’ve found so far.
iOS Status Message
This is something I’ve been meaning to write, and hadn’t yet, but this post on Engadget (which I’m sure will be followed by the same info on a million other sites) reminded me of it, and makes me hopeful that it’s going to happen.
—–
In a previous post, I wrote about how Apple could use the Messages neé iChat status message as a way to put a cork in many of the situations where alerts happen on several different devices.
I chatted with several people about that idea, and I still think it’s a reasonable, easy-to-understand solution for the problem. If Apple could implement some fancy-pants, foolproof, Bluetooth/WiFi-driven connection between my phone and computer that doesn’t require any setup and solves all the problems, that’s cool too, but I have a hard time imagining that foolproof part coming to fruition.
As I thought more about it, I actually liked the idea even more. I liked it so much that I decided my iPhone should just have a status. I should be able to set my phone to Away, and it will suppress any and all notifications (not just iMessages) until I’m no longer away. When I come back from away, all those notification can be sitting in Notification Center for me to catch up on. And similarly to iChat having a preference to a) keep status as away, b) set status back to available, or c) ask what to do upon my return to the computer, iOS could do the same when I move to a different location or whenever I unlock the phone again.
When iOS5 was released, it was extremely aggravating that the switch to turn off all notifications was gone from Settings. It was already aggravating enough to have to go thru all those layers of settings to turn it off, but now that’s not even an option. Each app has to be turned off one by one. I have 37 apps with notifications on!
I imagine the iOS status message being on the lock screen, so that it’s easy to turn off and on, and front-and-center whenever I look at my phone. It would be useful to avoid interruptions in a meeting and to avoid being woken up by a friend’s texting binge in the middle of the night. Once Mountain Lion comes out and also has Notification Center, we’ll be getting even more dual notifications, so there needs to be a plan.
—–
If this Do Not Disturb switch for Mountain Lion is an indication of where Apple is headed, I will be really excited to see it implemented in iOS as well.
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.
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.
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: http://chaosspace.de/launchpad-control/
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.
Steve Jobs (1955-2011)
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"); mysql_query("COMMIT");
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.