Get Started with Arduino: A Hands-On Introductory Workshop by Philip Lindsay

Good resource for people who know nothing about Arduino.


  1. Short (~3 hours long)
  2. Composed of short segments that can be watched in any order
  3. Instructions on how to setup Arduino via all major OSes (Mac, Windows, Linux)
  4. Multiple hands-on projects
  5. Touches on basic practical electronics info (ex., resistors)


None, really, but the projects you work on are fairly simple.

Disclaimer: I received this video series for free through the O’Reilly Blogger program.

You can buy it at O’Reilly.

Frequency Analysis using NTLK

NLTK, the natural language processing toolkit for Python, provides a number of ways to analyze text.

How many words in the text?

fdist = FreqDist(moby_dick)
fdist.N() # 260,819

All the words in the text?

fdist = FreqDist(moby_dick)
fdist.keys() # Ordered - DESC freq

How many occurrences of a word?

fdist = FreqDist(moby_dick)
fdist['whale'] # 906

Frequency of a word?

fdist = FreqDist(moby_dick)
fdist.freq('whale') # 0.0035

Most frequent word?

fdist = FreqDist(moby_dick)
fdist.max() # ',' -> punctuation is considered a word

Plot the frequencies?

fdist = FreqDist(moby_dick)
fdist.plot() # Plots word + frequency
fdist.plot(cumulative=True) # Plots word + cumulative freq.

Words of a certain length?

long_words = [w for w in moby_dick if len(w) == 10]

Common long words?

fdist = FreqDist(moby_dick)
words = [w for w in fdist.keys() if len(w) > 10 and fdist[w] > 10]

Long words and their frequencies?

fdist = FreqDist(moby_dick)
words = [(w, fdist[w]) for w in fdist.keys() if len(w) > 10 and fdist[w] > 10]

Unique words?

words_only = [w for w in moby_dick if w.isalpha()]
unique = set([w.lower() for w in words_only])
word_count = len(unique)

Practical Malware Analysis by Michael Sikorski and Andrew Honig; O’Reilly Media

This is a great reference book for those interested in malware analysis.


  1. Teaches you how to use a variety of tools (IDA PRO, etc.)
  2. Teaches you about different types of analysis (basic, static, dynamic, etc.)
  3. There was a chapter that told you how to recognize common C code constructs
  4. It goes into quite a lot of depth about the internal workings of Windows


It’s definitely not for a beginner. If you never did malware analysis before, the material presented can be overwhelming. It’s not easy to immediately put what you learned into action (you might understand a subject theoretically but might not be comfortable enough with the subject to put it into practice).

Disclaimer: I received this book for free through the O’Reilly Blogger program.

You can buy the book at O’Reilly.

Getting Started with RFID by Tom Igoe; O’Reilly Media

Getting Started with RFID1 is a very short “book” on RFID (Radio Frequency Identification), a way to tag and identify objects over varying ranges, and how to use Arduino to create a few interesting RFID projects. The book assumes that you have some experience with Arduino and micro-controllers (i.e., do you know what a breadboard, jumper wires, and circuits are?).

We start with a very brief introduction to RFID, follow up with two introductory technical tutorials on Arduino, and end with a fairly simple home automation project:

Between my officemate and me, we have dozens of devices drawing power in our office: two laptops, two monitors, four or five lamps, a few hard drives, a soldering iron, Ethernet hubs, speakers, and so forth. Even when we’re not here, the room is drawing a lot of power. What devices are turned on at any given time depends largely on which of us is here, and what we’re doing. This project is a system to reduce our power consumption, particularly when we’re not there.

When either of us comes into the room, all we have to do is tap our key fobs on a reader mounted by the door, and the room turns on or off what we normally use. Each of us has a keyring with an RFID-tag key fob. The reader by the door reads the presence or absence of the tags.

The book is only 28 pages, so it’s more of a long tutorial than a book, but it still acts as a good introduction to RFID.

Disclaimer: I received this book for free through the O’Reilly Blogger program.

  1. You can buy the book at O’Reilly 

Natural Language Annotation for Machine Learning by James Pustejovsky and Amber Stubbs; O’Reilly Media

Programming languages have a very strict syntax. When you see “I am a sentence I am another sentence,” you know that you’re really looking at two different sentences even though the period between “sentence” and “I” is missing. If you try something similar with the computer (try leaving the semi-colon off in C or miss an indent in Python, for example), you’ll get a nasty error message. This book1 aims to teach you how to program 2 your computer to work with the looser languages used by humans (like English) instead of the stricter counterparts used by machines.

The content available so far gives you a brief background on the relevant parts of language — grammar, pragmatics, discourse analysis, etc. The authors go on to talk about setting up an annotation project: determining your goal, creating your model/specification, and creating/storing your annotations in a flexible but easy to create (by annotators) manner.

Though a bit dry, the writing is clear and simple. I had no previous experience in this area, but I had no trouble understanding the subject matter for the most part.

Here are some of the notes I took while reading the book:

Disclaimer: I received this book for free through the O’Reilly Blogger program.

  1. You can buy it at O’Reilly Media
  2. Actually, it’s a little difficult to determine exactly what’s going to be covered in the book as we only have four chapters available so far. The book is scheduled to be released later in 2012. I’m reviewing the Early Release version. 

Xcode development from non-admin user

When you run an Xcode project from a standard (i.e., non-admin) user, you might be asked to enter credentials of a user in the “Developer Tools group.”

You can fix this by adding the (current) user to the group:

sudo dscl . append /Groups/_developer GroupMembership <current user's username>

You can learn more about dscl (Directory Service command line utility) here.

Checking the download progress of your Mac App Store purchase

When you purchase something from the Mac App Store, you’ll see a little icon in your dock, but that doesn’t show you the percentage of progress. The icon is small, and the progress bar seems to remain blank for a long time for bigger downloads.

You can get a better idea of the app’s progress in the App Store, itself, by going to the “Purchased” page:

Mac App Store Progress