Can't Wait for the New AppleTV

With the demise of the Ouya nearly complete, the stage is set for Apple TV. I've been waiting for a while. OK, the Ouya didn't technically set the stage. It did demonstrate the concept to me personally. So I can't wait the last few days before I can order the new AppleTV. I'm more excited about this than the watch!

P.S. Finalize the content deal so I can ditch DirecTV and declutter my TV setup.

Bring it!

Update to Encrypting PDF with PDFPen

Slight update to the automatically encrypt PDF's with PDFPen. Updated to select the file and encrypt using PDFPen.

Here is the script which can also be found on github

set this_file to choose file
set label to "PDFName" --this is the Name: in Keychain change for whatever you use   
set Qlabel to quoted form of label     
set t to do shell script "security 2>&1 find-generic-password -gl " & Qlabel     
set text item delimiters to "\"" -- Get Password     
set tlst to every text item of t     
set pw to item 2 of tlst     
tell application "PDFpenPro 6"     
    open this_file    
    save document 1 encrypt using AES256 password pw     
end tell     

On Software Commoditization - Lessons from the Chemical Industry?

In conclusion, there are two basic approaches to combatting commoditization. One is to create new products while accepting that established products will commoditize. The other is to slow down this very process by modifying the existing products. Given the damage commoditization can do to the profits of chemical companies, they are well advised to pursue both approaches simultaneously.

Read More

Podcasts by Programmers

I just listened to the latest episode of Shared Instance, a podcast by 3 iOS programmers from Cincinnati. This weeks episode had some good dicussion about swift and its suitability for beginners.

I listen regularly to the show and would recommend it for hobbyist programmers as its kind of like hanging out around the water cooler with folks who know their stuff.

Likewise, I am really liking Talk Python to Me. I like this one as the host, Michael Kennedy, has been talking to some of the developers of the most popular packages on python. That and the intro song is sweet.

The others that I think folks are more familiar with that I listen to are:

Learning to Code

I saw this article by David Sparks recently. As a fellow hobbyist who has been trying to improve my skills in programming for a couple of years, I've developed some strong opinions on how to start.

First an aside for my aspiring programmer hobbyist friends. One of the pieces of advice that I often see is that you simply need to have something you want to build and its all down hill from there. I found this advice to be demotivating (I recognize that the intent of the advice is not meant as demotivating but the impact was demotivating for me). I wanted to build things at a level well above what I could understand. Was I simply not cut out to understand Object Oriented Programming? Was Objective C beyond me? etc. That said, the advice is true. However, there are a few starting pieces that experienced programmers don't really have the right perspective to answer. There are some basics you need to put in place to make some progress.

The way I learn, may not work for you so I do suggest you do use a couple of different ways to learn to find out what works best for you. That said, I'd start with an organized course. My stance boils down to this. Go for good teachers.

Start with an organized course. Rather than searching out courses on the web, start with Coursera. If you are starting right at the beginning, I recommdend Programming for Everyone (Python). If you have some experience (know for loops, if / then, etc. then I recommend tackling the series from Rice University beginning with An Introduction to Interactive Programming in Python (Part 1).

Yes I recommended a language. Yes it is Python. No it is not Swift. When the Apple recommended Swift content is adopted, I would absolutely recommend it. At the moment, you have some experienced University professors teaching a basic level for free in a simple language that is widely used including this guy. The courses are broken up into doable sized chunks of as short as 4 weeks. These courses also have peer assisted or auto-graded assignments and quizzes. Its simply amazing this stuff is available from talented teachers.

With honorable mention, I've learned a lot from Simon Allardice on That includes getting started Swift. Also, there are good tutorials but they're hit or miss. If you find some you like, go to town on them.

Also, helpful but for later in my opinion is iTunes U and the Stanford courses including Programming Methodology. It is a bit old but I think conceptually very helpful. I made it through Programming Methodology but not yet through the next two courses. These are also taught by world class teachers. However, the subject matter is much denser and its not quite as easy to fit a college level course into a hobbyists life.

Organized courses are the best. Start there first.

Books are hit and mostly miss for me. I like the Big Nerd Ranch books for typing along and making things work in OS X and iOS. The issue with books for iOS or OS X is that the language moves quickly enough from year to year that the older books have enough differences that the novice me often can't make them work. Go with the videos first and then when sufficiently comfortable, go to books from BNR on the topic of interest. I am about 80% through the newest Cocoa Programming in Swift so I do recommend that. However, its already destined to be more challenging to work through as Swift 2 is adopted. Even though the BNR folks are working through how to update for Swift 2

Have fun. Follow your own path. Learn PHP or Perl if you want. That said, I do strongly suggest you look for the best teachers you can find.