404 - Page Not Found

The page that you are looking for could not be found. I recently switched to a new content management platform so some of the old links no longer work. Below are the search results based on the link that you clicked on.

tmux and Example Config

I am a big fan of the tmux terminal multiplexer when SSH’ing into any hosts. Definitely check it out if you don’t know about it. By default tmux is pretty bare, but you can use my current .tmux.conf as a reference. The configuration file below will essentially create labels for each terminal showing the currently running program.

Example output produced by my .tmux.conf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
set-option -g default-terminal "xterm-256color"
#set-option -g default-terminal "screen-256color"

set-option -g status-fg white
set-option -g status-bg black
#set-option -g status-bg white

set-option -g prefix C-a
bind-key C-a last-window

#set-window-option -g mode-mouse on

setw -g window-status-current-attr underscore

set -g status-keys vi
setw -g mode-keys vi

Differences between buying from Amazon Wireless and Verizon direct

I have been looking into switching my cellphone services providers from Sprint to Verizon because 1) Sprint has really slow data service in my area, and 2) Verizon has 4G LTE coverage. Anyways, as I started looking around for options I noticed that Amazon Wireless had pretty good prices for phones with 2-year contracts (who can beat $0.01 for Galaxy Nexus ?). I knew there had to be a catch, but I wasn’t able to find much about the differences online.

“The Next Bing Thing Is Here,” but please be aware (especially Sprint customers)

TLDR; If you care about Android OS updates don’t get the Samsung S3, especially on Sprint. You will get Jelly Bean in a few months, but you can forget about whatever the next version is going be. You will have to shell out full price for whatever “The Next Big Samsung Thing” will be at the time.

Have I ever said that VIM is awesome?

I am learning new things about vim all the time. Today’s revelation was the pipe symbol (|). I had to update a function call across multiple files, here is what I was doing.

  1. cd to the root of the project
  2. vimgrep functionname ** to get the list of matching files.
  3. Now I wanted to modify the call in all files, but only after reviewing the individual call. Initially I was doing individual %s followed by w and cn, but given the large number of files this seemed very inefficient (I don’t want carpal tunnel syndrome!).

So, a quick search revealed the pipe/bar (|). This lets you specify multiple commands at once. With this new knowledge, I replaced step 3 above with…

:%s | w | cn

…and now I can quickly review the call before doing the modification.

Play Button iTunes Patch DOES work on OS X Lion

After some research I am concluding that my Play Button iTunes Patch DOES work on OS X Lion. The patched file is replaced by the upgrade process so you will have to re-run to patch the latest file.

Please let me know if you experience otherwise.

2011-08-18 fa: Users have confirmed that the patch works OK in OS X Lion.

Songbird Extensions

My adventure with Songbird and its extension framework has turned up at least one useful extension, who knows what’s to come next.

Wake on LAN for webOS updated

I just published an updated version of the Wake on LAN (WoL) client for webOS (Palm Pre and Pixi). The latest version supports specifying a custom hostname and port, which means that now you can send WoL packages from to a remote network.

Main screen of the updated version, note the host name and port under the MAC address. Screenshot of the new fields. Preware screen showing the updates.

James Knowles (please see the about screen for contact info) contributed the initial UI changes for specifying a hostname. I added some more information and added the ability to specify a custom port (which required a service update).

To get these changes please update to/install the latest version of the service and UI using Preware.

Low level hotkeys in MediaMonkey

MediaMonkey Logo

MediaMonkey (MM) is my music player of choice on Windows. I have a few global hotkeys setup (for instance WIN+ALT+B for next track), but after an upgrade a few months ago (probably starting with 3.0) I noticed that my shortcuts started sending the shortcut keys to the active applications. So, for instance, while in Outlook if I press WIN+ALT+B, MM will go to the next track, but in addition Outlook will switch views because ALT+B is a shortcut in Outlook.

After a quick post online I found the solution that I was looking for. Basically, I had to edit the MediaMonkey.ini and add “PreferLLKeysHook=1” to the “[options]” section. MediaMonkey.ini will be located in different places based on the operating system, you can find the details in this knowledge base article. Add “PreferLLKeysHook=1” to the “[options]” section in there and restart MM. From there on the shortcut keys will only be interpreted by MM and will not be forwarded to the active application.

Object is not key value coding compliant

Lately I have been playing around with Objective-C development on mac. As I was working through a tutorial I kept getting the following error for a calculated read-only property.

[<NSManagedObject 0x2000c3c20> valueForUndefinedKey:]: the entity Expense is not key value coding-compliant for the key "filename".

Below is the definition of the class.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// Expense.h
#import <Cocoa/Cocoa.h>
@interface Expense : NSManagedObject {}
@property (readonly) NSString* filename;
@end


// Expense.m
#import "Expense.h"
@implementation Expense
- (NSString *) filename {
	return @"TestingPath";
}
@end

The class definition is OK so the error didn’t make sense. After some troubleshooting I found out what was causing this. Since this was my first application I didn’t know that I had to tell the model what class it should be using, and, unfortunately, the book that I was using didn’t mention it either (or maybe I missed it).

Anyways, if you get this error then make sure that you have associated the class with the model. To do this you have to specify the class name under “Class” in the model definition (see screenshot below).

Make sure to specify the class in the model (highlighted field)

SBC?

Haha, SBC! 🙂

SBC, what?

As a programmer I know sometimes this is what you want to say, but what can I say, we have to live with backwards compatibility even if it means twice as much work.