Thursday, November 25, 2010

My Bookmarks for 11/25/2010

Posted from Diigo. The rest of my favorite links are here.

Saturday, November 20, 2010

My Bookmarks for 11/20/2010

  • Openframeworks is a c++ library designed to assist the creative process by providing a simple and intuitive framework for experimentation.

    The library is designed to work as a general purpose glue, and wraps together several commonly used libraries under a tidy interface: openGL for graphics, rtAudio for audio input and output, freeType for fonts,freeImage for image input and output, quicktime for video playing and sequence grabbing.

    tags: programming opensource c++ openframeworks visualization

Posted from Diigo. The rest of my favorite links are here.

Downloading all videos

What is

Vimcasts publishes free screencasts about Vim, the text editor. Vim has been around in one form or another for over 20 years. The learning curve is famously difficult, but those who manage to climb it insist that nothing can match Vim's modal editing model for speed and efficiency.

Why download when you can watch online?

I don't know about you, but I prefer to watch my videos from my HD and not the internet.

How do I download?

You can do it the manual way by righ-clicking on the ogg or m4v links and selecting Save-As. As of 2010/11/20 you'll need to repeat this procedure 27 time.

I'm never been much of a fan of repetitive work (that's one of the reason I program), so I decided to bash it and came up with this one-liner.

for (( c=1; c<=27; c++ )); do file=$(curl -s$c/ | grep m4v | sed 's/.*m4v\">\(.*m4v\)<\/a>.*/\1/g'); url=$c/$file; echo $url; curl -C - -# -o "$c-$file" "$url"; done

If you decide to try it out make sure to replace the 27 in the for section of the command. Also, If you prefer the ogv version, just replace the three m4v's with ogv.

Friday, November 19, 2010

My Bookmarks for 11/19/2010

Posted from Diigo. The rest of my favorite links are here.

Keeping tabs on temperature in Mac OS X

I believe that it is in good practice to keep an eye on your systems temperature, especially if you start noticing oddities with you computer. Recently I was experiencing hangs on my iMac and found smcFanControl which allows me to keep tabs on my iMac's temperatures.

Now that I knew at what temperature my machine was running at I need to figure out what can be considered normal operating temperature. After some Google magic I was able to find the Intel Mac Temperature Database which has temperatures for most Intel based Apple computers. The site is mostly crowsourced, but with a wealth of information.

Once you have an understanding as to what is considered an average temperature on you computer, you can now use smcFanControl to step up the RPM's on the systems fans to bring down the temperature to somewhat match what you find in the database.

I had to bump up my CPU and ODD (Optical Disk Drive) fans by 200 rpm each.

Thursday, November 18, 2010

Reverting Textmate Bundles

Textmate is my preferred code editor on Mac OS X, but lately it had become very sluggish taking up to a minute to start up.

I've had Textmate on my iMac since 2008 and it has gone through many updates and Bundle installs. After some digging around I finally ended up at the Troubleshooting 101 page of the Textmate wiki which recommends resetting Bundles back to default.

The procedure is pretty simple and involves the following steps:

  • Remove folder /Library/Application Support/TextMate/Bundles
  • Remove Third party bundles from ~/Library/Application Support/TextMate/Pristine Copy/Bundles (This is where bundles installed by double-click are usually located)
  • Remove Custom bundles from ~/Library/Application Support/TextMate/Bundles
  • Instruct TextMate to reload bundles (either by relaunching it or selecting Bundles → Bundle Editor → Reload Bundles.)

Make sure to take a look at your Third party and custom bundles before you remove them, you might want to back them up.

This process made my Textmate install work just like when I first installed it.

My Bookmarks for 11/18/2010

Posted from Diigo. The rest of my favorite links are here.

Wednesday, November 17, 2010

Goodbye Greasemonkey Hello Scriptish

 What is scriptish?

Scriptish is a fork of Greasemonkey, it uses/improves the good parts of GM, ignores the rest, and adds some features.


Erik Vold the author of the extension has done a great job and offers the codebase on github. After looking up his profile on Mozilla Addons, it's no wonder this is such a great extension looking at the other 16 extension he has published.

This is a must have upgrade to Greasemonkey if you're using Firefox 4.0.


I can't find my phone

At least twice a week I wake up and have a hell of a time trying to figure out where I left my phone the night before. It's usually not a problem because I either have my work phone with me, but there are time I can't find either and need to search the house top to bottom. Of course, this usually happens when I'm already running late.

Now there's a new option "I can't find my phone" by Dave Dawson which calls your phone for you.

Dave has a great post about the site and the issues he came across after it was mentioned on design blog SwissMiss.

The calls and text to voice you hear once you pick up the line is powered by Tropo who offers an API that adds Voice, SMS, Twitter, and IM. The service is free for development and the prices seem reasonable for production use.

My Bookmarks for 11/17/2010

Posted from Diigo. The rest of my favorite links are here.

Firefox 4: libsmime3.dylib in use error during Mac OS X install

I have been using Firefox 4 betas on my Windows box for a while now and decided to upgrade my Mac OSX version. After downloading and opening up the dmg I tried to replace my existing Firefox 3.6 copy (after Quitting of course) and got an error saying that it couldn’t replace Firefox because file libsmime3.dylib was in use and pretty much out of luck.

After a few quick searches on Google I found out that it a common error even when upgrading to 3.6. One of the nice things about OS X is that you’ve got a BSD system and plenty of tools at your disposal. Here’s what you do to find which application is using a specific file and how to kill it.

Update: Before trying the following commands quit Evernote and Dropbox and try to replace Firefox again (thanks to Sebastian and Kim Mullins).

First open up a Terminal (Located under Applications > Utilities) and at the command prompt type the following command to find the application locking the file

sudo lsof -V | grep libsmime3.dylib

In my case this is the output I got indicating that vpnagentd was the application with the file in use.
vpnagentd 136 root txt REG 14,2 267408 28103066 /Applications/

vpnagentd is a component of the Cisco Anywhere Connect VPN client (which I use to remote into work). Anyway, in order to do your upgrade you’ll need kill the app with either of the following commands

1. Using the process name (first column in the output)

sudo killall vpnagentd

2. Using the Process ID (second column in the output). You'll need to use this if you get a message like "No matching processes belonging to you were found" which means that probably the process name was truncated in the output.

sudo kill -9 136

Replace 136 with the number in the second column of the output.

After that you should be able to replace your existing Firefox application.

In some cases vpnagentd is set up to autostart which will respawn after you kill the process. In this case you'll need to enter a few more commands

cd /Library/LaunchDaemons/
sudo launchctl stop    
sudo launchctl unload    
sudo killall vpnagentd

To start vpnagentd execute the following command:

cd /Library/LaunchDaemons/
sudo launchctl load

References and further reading

Small kernel patch gives Linux a significant speed boost

With just 233 lines of code to the Kernel's scheduler, Mike Galbraith (a Linux Kernel developer) has cut desktop latency by a factor of TEN...

What does the patch do?

Mike Galbraith explains:
Each task’s signal struct contains an inherited pointer to a refcounted autogroup struct containing a task group pointer, the default for all tasks pointing to the init_task_group. When a task calls __proc_set_tty(), the process wide reference to the default group is dropped, a new task group is created, and the process is moved into the new task group. Children thereafter inherit this task group, and increase it’s refcount. On exit, a reference to the current task group is dropped when the last reference to each signal struct is dropped. The task group is destroyed when the last signal struct referencing it is freed. At runqueue selection time, If a task has no cgroup assignment, it’s current autogroup is used.
Phoronix has a pair of videos, the first running the auto-group scheduler disabled and the second with it enabled. The test is running a web browser, HD video and compiling a kernel.

Auto-group scheduler disabled

Auto-group scheduler enabled

The patch even impressed Linus Torvalds who mentions:
It’s an improvement for things like smooth scrolling around, but what I found more interesting was how it seems to really make web pages load a lot faster. Maybe it shouldn’t have been surprising, but I always associated that with network performance. But there’s clearly enough of a CPU load when loading a new web page that if you have a load average of 50+ at the same time, you _will_ be starved for CPU in the loading process, and probably won’t get all the http requests out quickly enough.
So I think this is firmly one of those “real improvement” patches. Good job. Group scheduling goes from “useful for some specific server loads” to “that’s a killer feature”.
It's a little late to get the patch merged into the 2.6.37 kernel, but it should be merged into the 2.6.38 kernel. Of course you can always apply the patch yourself and rebuild your kernel, you'll need to patch kernel source 2.6.37-rc2 (you can get it from

Source OMG! Ubuntu


Tuesday, November 16, 2010

My Bookmarks for 11/16/2010

Posted from Diigo. The rest of my favorite links are here.

Monday, November 15, 2010

Introducing Bundles! Multiple links one URL Logo
By Force92i, via Wikimedia Commons
What is URL Shortening?

Before we get into bundles, let me explain what URL shortening is. URL shortening is a technique  in which a URL is shortened in order to make it easier to share, this is especially helpful while using services like Twitter where you're limited to 140 characters. For example, is shortened to

What are Bundles?

Bundles now allow you share multiple links with one short URL. Every link added to a bundle includes a rich media preview and metrics in order for you to track clicks on each URL. The  title and description of the bundle can also be customized in order to give your readers a nice intro as to what you are sharing.

Bundle samples:
Source: blog

For more information

BitTorrent visualization in processing.js

The visualization over at demonstrates interactively how bitTorrent work. You can use the keyboard to add or remove peers and seeders. The visualization does not require Flash or Java since it is developed using Processing.js a Javascript animation framework.

Processing.js is an open programming language which allows people to program images, animation, and interactions for the web without using Flash or Java applets. It uses Javascript on the HTML5 Canvas element, it is light-weight, easy to learn (ideal for visualizing data, user-interfaces or web-based games)

Click on the link below in order to view the visualization. It should work on any modern browser except IE (IE doesn't support the <canvas> tag).


Thursday, November 11, 2010

Web Designers vs. Web Developers

free website builder
Web Designers vs Web Developers is brought to you by
Use creative design to make a Free Website
You are most welcome to share this infographic with your audience.


Search Books for InfoGraphic

My Bookmarks for 11/11/2010

  • The Eggbot is an open-source art robot that can draw on spherical or egg-shaped objects from the size of a ping pong ball to that of a small grapefruit– roughly 1.25 to 4.25 inches in diameter (3 – 10 cm).

    tags: electronics diy cnc

  • We love some good LED blinking as much as the next person but after years of LED-soldering we need something cooler to get us excited. Sure there are RGB LEDs and those are fun too but what comes after that? Well, we have the answer: LED Strips! These are flexible circuit boards with full color LEDs soldered on. They take a lot of LED-wiring-drudgery out of decorating a room, car, bicycle, costume, etc. The ones we carry are also waterproof (although not all are).

    tags: electronics diy arduino

Posted from Diigo. The rest of my favorite links are here.

Saturday, November 06, 2010

No Such Thing As A Vegan

Latest Web Browser Adoption Infographic

"Web developers fight a constant struggle: They want to use modern web browser features, but they also need to take browser adoption into consideration. If a large portion of their users run older versions of browsers, web developers will be limited in what they can accomplish."

Source: Royal Pingdom

Search Books for Infographic

My Bookmarks for 11/06/2010

  • Get the guide and the Arduino all in one! Includes our best-selling Getting Started with Arduino book by one of the co-founders of the Arduino project, plus an Arduino Uno microcontroller.

  • Every MadLab kit includes a professionally-manufactured printed circuit board, quality components, and full assembly instructions.

  • Electroids are electronic hobby kits; you probably figured that much out already.
    Each Electroids kit comes with all the components needed to build fun and useful projects and include informative, easy-to-read instructions that explain the why, not just the what. Ever look at a recipe and not been content with just being told what to do and not being told why? I have, and I make sure that all my instructions leave nothing as a mystery. Every step is described plainly and its purpose is outlined expressely.

  • In order to get raw parsed data out of a magstripe reader, we first experiemented with a MAGTEK Centurion Keyboard Encoder (PN-21073062). We found that although we could get all 3 tracks of data, it was not possible to have it parsed out. We then purchased a raw magstripe decoder head with track 1 reading, the Omron V3A-6 (Datasheet here). By writing some parity checking code, we were able to read the raw data off of the magstripe, and parse it into output that would be 'typed out' as an emulated keyboard using a USB-enabled Teensy. An Arduino can also be used, and the data would be output as Serial which may also be useful.

  • This is a basis for how one may go about setting up an electronics workbench in a company or well-equipped home shop.

  • This project documents my adventures in learning how to wire up my home for wireless power monitoring. I live in a rented apartment so I don't have hacking-access to a meter or breaker panel. Since I'm still very interested in measuring my power usage on a long term basis, I built wireless outlet reporters. Building your own power monitor isn't too tough and can save money but I'm not a fan of sticking my fingers into 120V power. Instead, I'll used the existing Kill-a-watt power monitor, which works great and is available at my local hardware store.

  • Serial ports are being phased out...but USB microcontrollers are still hard to use, and require custom drivers. Using a USB to serial adaptor board overcomes both of these issues, as USB ports are standard on every computer, hubs are inexpensive, and these boards use a chip that is supported by MacOS/Windows/Linux.

  • This project details how to build a Smart/SIM card reader/writer for experimentation and investigation of SIM & Smart cards.Once the reader design is built, the open source software can be used to read from and write to the card. Together they can be used to backup/restore stored SIM card data, recover deleted SMS's and phone contacts, examine the last phone numbers dialed, etc.

  • This tool lets you simulate keyboard input and mouse activity, move and resize windows, etc. It does this using X11's XTEST extension and other Xlib functions.
    Additionally, you can search for windows and move, resize, hide, and modify window properties like the title. If your window manager supports it, you can use xdotool to switch desktops, move windows between desktops, and change the number of desktops.

Posted from Diigo. The rest of my favorite links are here.

The Maker's Noteboo

The best notebook on earth, The Maker's Notebook. From the creators of Make Magazine comes the Maker's Notebook.


  • 150 pages of engineering graph paper.
  • 20 bonus pages of reference material, from electronics symbols, resistor codes, weights and measures, basic conversions and more.
  • Covers of this hardcover book are printed in cyan 'Maker' blue
  • Notebook are 1/8' engineering graph paper.
  • Pages are numbered.
  • Every page has a blank heading to list project name, date, sign or note, and a place to link project/related pages ('From Page___, to Page___).
  • There's also a two-page ruled Table of Contents.
  • Featuring a pocket in the back, with 2 sheets of stickers.
  • Dimensions: 6 1/4' x 9 1/4' x 1/2'

$2,000 bounty for Kinect for Xbox 360 open source drivers

Adafruit is offering their first ever "X prize" to the first person to come up with an Open Source USB driver for the Xbox 360 Kinect. For more details on the "X prize" visit the Adafruit Blog post on The Open Kinect project.

Now for a little background information on Kinect (taken from the blog post)

What is Kinect?

Kinect for Xbox 360, or simply Kinect, is a “controller-free gaming and entertainment experience” by Microsoft for the Xbox 360 video game platform. Based around a webcam-style add-on peripheral for the Xbox 360 console, it enables users to control and interact with the Xbox 360 without the need to touch a game controller through a natural user interface using gestures, spoken commands, or presented objects and images.

What is the hardware?

The Kinect sensor is a horizontal bar connected to a small base with a motorized pivot, and is designed to be positioned lengthwise below the video display. The device features an “RGB camera, depth sensor and multi-array microphone running proprietary software”, which provides full-body 3D motion capture, facial recognition, and voice recognition capabilities.

How does it work?

For full details visit Wired for a great article on Kinect

Image from Wired article

Imagine being able to use this off the shelf camera for Xbox for Mac, Linux, Win, embedded systems, robotics, etc.

Friday, November 05, 2010

Infographic between narcotraffickers & public servants in a Mexican Cartel

"A social network mapping arbitration of information and amount of connections between narcotraffickers and public servants in a Mexican Cartel."

Infographic created by Eduardo Salcedo-Albarán (Philosopher; Founder, Manager, METODO)

Source: Edge - Serpentine Maps Marathon

Forcing MPlayer to use MKV embedded fonts

In my opinion Matroska Media Container (MKV) files are the best for format for video, and MPlayer is my video player of choice (command line only for me).

Anyway, by MKV files can contain embedded fonts which make it much nicer to view your subtitled videos. In order to turn on embedded fonts you'll need to launch MPlayer with the following options -ass -embeddedfonts we need to add the ass options since these are the type of subtitles which support embedded fonts.

Here are some samples for you to see the difference:

Subtitles with default font rendering 
Subtitles with embedded fonts

Embedded fonts will change from file to file. I've seen some really fancy ones where different characters will have their own font. Most releases by Anime Fan-Sub groups are in MKV and contain embedded fonts.

For more information on Matroska:

Boot keyboard combinations for Macs

List of keyboard combinations to use while you "Intel-based" Mac is booting up.

For best results use these key combinations right after you hear startup sound.

Key CombinationDescription
C Boot from a bootable CD or DVD, such as the Mac OS X Install disc or even a Linux LiveCD
D Apple Hardware Test (AHT), the Install DVD 1 must be in optical drive.
Option-Command-P-R Hold until you hear two beeps to Reset NVRAM
Option Startup/Boot Manager, allows you to select a Mac OS X volume, BootCamp, External or Optical Drive.
Eject or F12 Ejects any removable/optical media from drive. Also works by holding down the mouse/trackpad button
N NetBoot (Network Boot)
T FireWire Target Disk mode. Allows you to mount machine on other Mac as an external drive
Shift Safe Boot mode. Temporarily disables login items.
Command-V Verbose mode.
Command-S Single-User mode.
Option-N NetBoot using default boot image.

More Information: Apple KB Article HT1533

Thursday, November 04, 2010

Infographic on Infographics

Infographic on Infographics
Though it seems infographics have only hit the online world recently, they've actually been with us throughout history. Who knew?

Search for infographics

My Bookmarks for 11/04/2010

Posted from Diigo. The rest of my favorite links are here.

Wednesday, November 03, 2010

Analyze Event Logs using Excel Pivot Table

Juan over at posted an excellent article on Analyzing Windows Event logs using Excel's Pivot Tables. If you've ever tried tried sifting through a systems Event Logs trying to find a pattern you'll know what a pain in the rear it is.

The article includes a walkthrough on how to export your logs and set up the Pivot Table.
"If you want to troubleshoot a Windows system, definitely you will think about analyzing the event logs from the Event Viewer. Instead of looking at the event logs using Event Viewer, it is advisable that we save the log files as CSV format. After that insert the table in the CSV file, then we can analyze and sort the necessary information with ascending or descending order."
Read Post: Analyze Event Logs using Excel Pivot Table

What are Event Logs?

Event Logs first appeared in Windows NT (1993) allowing the Operation System and Applications to make use of a centralized log service to log events Informational, Warning, Error and Critical events. There are three type of logs which include System, Application, and Security. Windows 2000 introduced the option for 3rd party application to create their own log sources. You can find more information on Event Logs and their history on Wikipedia.

What are Pivot Tables?

Excel Pivot Tables are used to summarize, analyze and visualize data. Pivot Table can sort, count, and total the data in a table and create a new Pivot Table displaying a summary of the data. Pivot Tables get their name from their ability to rotate/pivot on specific fields from the source data and automatically update to show the new information. For a hands on explanation of Pivot Tables visit "Excel Pivot Tables Tutorial : What is a Pivot Table and How to Make one"

Search Books for Excel Pivot Tables

Monday, November 01, 2010

Gundam Rock

I just got "Gundam Rock" by Andrew W.K. and it is amazing (unless you're not a Gundam fan). I'm surprised I haven't heard of this CD before since it was released in 2009.

I now have 16 tracks of Gundam Awesomeness to accompany the rest of my Anime Collection:

  1. TV Series Opening Narration
  2. Gundam On The Earth
  3. Fly, Gundam!
  4. Char The Great
  5. Here Comes Char
  6. Star Children
  7. The Cross of Sand
  8. Eye Catch
  9. Soldiers of Sorrow
  10. Peace For A Moment
  11. Alone In The Wind
  12. Beginning
  13. Fear To Fight
  14. Encounter
  15. Amuro Forever
  16. Garma Zabi's Funeral Speech By Gihren Zabi
I've got a few other Anime soundtracks on the way, I'll probably post something simple like this once I get them (having to rebuild my collection).

You can purchase the album at Amazon.

Installing jDownloader under Ubuntu

First of all... What is jDownloader?

jDownloader is an application which simplifies downloads from One-Click-Hosters like Rapidshare, Megaupload and Hotfiles. It is able to download multiple files in parallel and offers captcha recognition and automatic file extraction.

jDownload is open source and written in Java making it platform independent. There are packages available for Windows (portable version available), Linux and Mac.

Installing jDownloader

One of the things I really enjoy about using most Linux distribution is having a software repository where you tell it what to install and it takes care of the installation. Unfortunately jDownloader is not included in the official repositories for Ubuntu, but thanks to Ubuntu's Personal Package Archives (PPA's) it is really simple to get jDownload up and running.

First off, we need to find the PPA page for jDownlaoder which is located here. Next we extract the package details from the "Adding this PPA to your system" section (ppa:jd-team/jdownloader) and add it to our repository (don't forget to update your package indexes)

sudo apt-add-repository ppa:jd-team/jdownloadersudo

apt-get update

After we import or PPA we are now able to install the package

sudo apt-get install jdownloader

jDownloader will now be under the Appliation->Internet menu which will launch the updater and complete the installation. The updater does take a while to download all the required components which make up jDownloader, so you might want to take a break and come back in a while.

Additional Information

Ubuntu Personal Package Archives (PPA)

What is a PPA?

A PPA is a published apt repository in that a contributor uploads source packages which get built (compiled) and packaged as an apt repository by Launchpad (Launchpad is a Project Management software by Canonical, Ltd. which includes a knowledge base, issue tracker, and code repository to name a few).

For the end user working with PPA's has eliminated the need to modify the sources.list in order to include new repositories into apt. All that is required is to import the PPA and run the apt-get update command in order to install the new packages included by the repository.

For developers there are many advantages for creating new software packages or modifying existing. All published repositories (source) will be compiled for i386 and AMD64 on all supported ubuntu releases.

Installing Software using PPA

If for some reason you are not able to find the software package you are looking for in the official Ubuntu repositories, visit the PPA's overview page in Launchpad and search for your package.

PPA Overview page (Searching for gwibber-daily)

Once you've found the package find the section on the page title "Adding this PPA to your system" and make note of the PPA's location (ppa:gwibber-daily/ppa).

gwibber-daily PPA page

Open a terminal and enter the following command replaceing ppa:user/ppa-name with the PPA location from the overview page:

sudo apt-add-repository ppa:user/ppa-name

The apt-add-repository command will fetch the PPA's key and add the source and key to your repositories list.

apt-add-repository output

Next you'll need to tell your system to pull all of the latest software information for your instlled repositories (which will include your newly added PPA).

sudo apt-get update

You are now ready to install any software package included within the ppa. For example:

sudo apt-get install gwibber

The available packages for each PPA are available in the Overview page for the PPA.

Published packages for the gwibber-daily PPA

If you're adding a PPA for a package you've already installed in order to get a newer or modified version all you need to do is:

sudo apt-get dist-upgrade

Additional Information