Monthly Archives: March 2011

iPad 2 vs Me!

iPad 2

I am not the person who would say this lightly. Those who know me; I am very practical and don’t buy things unless I will use them. When the first iPad came out I was resistant to purchase for two reasons. One was price the other was it sound like a woman product (no offense).

That said, I have been completely turned 180. The device is invaluable now. Aside from the gaming and fast dual-core processing. The device is far more useful than I expected. So far here is my list of must-have-apps :

– PopSci+
– Angry Birds HD (highly addictive)
– GoodReader
– Netflix
– MarketDash (for stock watchers)
– AppShopper
– OpenTable (great for finding restraints)
– NPR (National Public Radio)
– Plex (been talking much about this in other posts)

I am sure my list will grow…

Let me talk a little about why GoodReader is worth it. First off, everything iBook does not support GoodReader seems to. I have about 10 PDF’s now stored in GoodReader and I love how simply and easy it is to get to my PDF files. In addition GoodReader supports several cloud services including dot me accounts (and of course I have one). The primary reason I like this reader is I can crop my PDFs to just focus on the areas I want. And its persistent throughout the entire PDF. I will soon be adding all my PDF’s here.

Plex app is amazing since it connects to my PMS (Plex Media Server) at home when I am at work. This is great for the type of desk job I have. I put something on in the background and work all day with a full media center at my disposal. Plex also supports pictures and music. Though the music still needs work streaming from your server.

iPad 2 is nothing less than my laptop replacement. Pretty much everything I used to do on my laptop. I am now doing on the iPad. For example, email, browsing the web, and checking stock prices are much of my morning tasks. I do this all on the iPad as soon as I wake. No bulky laptop to bring around. As we grow into the iPad world I foresee laptops a thing of the past. I personally think the laptop I am typing this post on will be my last laptop ever. The iPad is slowly gaining its footing. Its a matter of time and adjustment and we all will have a iPad or iPad clone.

For the non-believers of the iPad. You can touch it in the store, you can play with it at your friends house. But you have no idea how much you use it till you actually buy it. It is totally worth every penny and more. Its nothing less than a huge time saver and space saver. For the business folks this tool is an absolute must. Taking notes is a breeze and keynote is amazing on the iPad. I am 100 percent on-board with iPad now. And just a year ago I though it was a useless piece of middle-ware hardware.

Port fowarding on your AirPort Extreme

Apple is really good at making things simple. AirPort Extreme is no exception. I will be showing items in the Apple Time Capsule. For the price, the Time Capsule is $299 where the AirPort Extreme is $179. For what you are getting both are very acceptable.

Let me start by saying I have had my TimeCapsule since about 2008. It has had no problems and has been a backup device for my two laptops since I got the TimeCapsule. I would personally recommend the AirPort Extreme since the network backup is nice to have but you can go a much cheaper route by getting a larger network storage device.

In anycase, you are here to learn how to port forward. I am using the “AirPort Utility” found on any mac in the /Applications/Utilities/ Folder:
1) Manual Setup:


Port Fowarding

Click the "+" icon

3) Next assign the port for connecting from the outside world (e.g. Public UDP/TCP Ports)

Assign Port Number

For security reasons, you should pick a number above 40000. This is so port scanners can not detect what service might be running on your IP Address. This is important to prevent hackers from getting into your network or using the item you are port fowarding.

I will be port-forwarding plexapp (see my technology section for more posts on plex app)

Name your port

Name your port and click Done

Now that you have your port fowarding. You are able to access that port externally. One way to test this is get your external ip address (you can use the script I posted a little while back or use google: external ip address). You should be able to setup your PlexApp device (iPad/iPhone) by adding a custom server, entering your external ip address and port number. If you did everything correctly you should be able to connect no problem.

If you can not connect. Make sure you have no hardware/software firewalls preventing your connection. The computer you setup the port fowarding for needs to also be able to talk to the AirPort Extreme. Sometimes you need to “allow” the port access so your Airport can foward the port outside. If you are using Little Snitch it will ask you the first time you try to connect to the port (internal or external).

As always, be conserned about security. Plex app for example you can enable security which forces a username/password for anyone who trys to connect to that port.

You can also apply the same concepts to port fowarding a VNC connection. Of course you need to use a different external port for each device you want to access outside of your home. I recommend only port forwarding what is absolutely necessary. Less is more in the case. You don’t want 20 ports all exposed to the outside world.

What is Plex?

Plex is a client/sever tool for accessing your media and much more. let me explain:

The true power behind plexapp is its ability to transcode media on the fly. Or another way of putting it is convert your AVI/MOV files to stream to any of your iPad or iPhone devices or other computers that have plexapp installed. I think with a few more versions of this app and it will be optimized to even faster than what it already is.

My Setup:
– Mac Mini (500GB internal drive and 1TB external drive for media)
– iPad 2 with Plex app installed (for watching movies at work while I work)
I have setup plexapp (server and client) on my Mac Mini. I have connected a 1TB FireWire 800 drive to the mac mini and store my current movies on this drive. In addition, plexapp has support for Hulu and Netflix. The list of plugins is much longer and growing daily. However, to see them on your devices that are connecting to your server you need to enable the plugins from the Media Server Application (not the Plex Media Player).

  • Plex Media Player
    For this to see your media center your internal network must have a server running. If you only have one computer then that computer is your Plex Media Server (PMS) and Client (Plex). In the case of the Mac Mini this is how I have it setup. However, the rest of my computers connect to the mac mini as clients so no need to run the PMS on the other computers.
  • Mobile Media Player (iPad, iPhone, Andriod)
  • Plex Media Server
    I connect all my other devices (other laptops, iPad, iPhones) all to the Media Server running on my Mac Mini (internal and external).

Since I started down this road; I have been able to get just about everything to work on the Mac Mini running plex media server. The only part I am focusing on next is getting Live TV working somehow or someway.

The media format I find that works the best so far is H.264. Some other formats do take a little before the video starts streaming. However, once it starts it does seem to have great quality throughout the duration. I have had it get a little choppy a few times; however I think this was the connection and not the transcoding. For the most part, everything Plex App advertises on the site works exactly as remote

  1. Setting up plexapp is very easy. Simply go to the website download and install. Plex
  2. Once installed, I would first start by checking out the Media Server application (should launch by default)

The next part is for setting up Plex to be your default app rather than when you press the “Menu” button on your mac mini remote.

  • From a Terminal (/Applications/Utilities/
  • Type:
  • sudo cp /System/Library/LaunchAgents/ /System/Library/LaunchAgents/
  • sudo vi /System/Library/LaunchAgents/ (or open with what command line text editor you want)
  • Replace the line that looks like this:
    <string>/System/Library/CoreServices/Front Row</string>
  • Type save and close your file (for vi commands google works well, the commands are tricky for first time users)

Now that you have that setup, you need to reboot the machine for the “menu” button to get activated correctly. You may need to repeat the steps a few times and make sure that path for Plex is 100% accurate. Anytime you update the file its best to reboot.You can also set plexapp to load on start and login. This is how I have it so if the machine reboots plex starts fullscreen. And once you have that XML file updated when you press the menu button plex will load automatically.

The final part that I setup was when you “press menu” on the remote inside “plexapp client” was I wanted it to restart the app.

  • From a Terminal:
  • mkdir -p “~/Libraray/Application Support/Plex/keymaps/”
  • vi “~/Libraray/Application Support/Plex/keymaps/Apple Remote.xml”
  • Put the following in the file:
    <joystick name=”Apple Remote”>
    <button id=”6″>Plex.Quit()</button>         <!— Menu —>

Once you have done all this. You should restart plexapp once more and the “Quit” should now happen if you press the menu button at the main screen.

The last part is to setup your media server to be used external. Now, you can get a dynamic dns name (this means when your ip changes your dynamic dns company will keep it up to date). Though this is a solution, I prefer knowing my ip address and directly connecting to my computer. See the plexapp website on how to port forward your internal media center external. Before you do this, you should be 100% concerned about getting evertthing working internal before you go external. And when going external, remember you are exposing your computer to the outside world. So I would recommend turning on security features in Plex Media Server (username and password). So not just anyone can access your system.

Overall I am very impressed with Plex. The media center, my mobile application, and its simply design make for a win-win application. I just hope that it does not grow too fast and get stupid like Hulu did. Remember when we only had like 1 ad during the early days of Hulu? Now I can’t stand it. Anyways, Enough of me, what about you? I hope you enjoyed this, if its a little hard to follow please let me know and I will make corrections/updates/refinements.

External Ip Address using python, snmpwalk, and AirPort Extreme

What you need?
– AirPort or AirPort extreme with snmp enabled
– Some Python knowledge (please don’t post questions about python, that’s for the python organization to help with)

1) Open AirPort Utility (/Applications/Utilities/AirPort
2) Click your AirPort or AirPort Extreme Device (ignore or cancel any automatic setups)
3) Click “Manual Setup” Lower left button
4) Click “Advanced”
5) Click “Logging and Statistics”
6) Check “Allow SNMP”

AirPort Extreme Configuration

Allow SNMP

NOTE: You can also change the SNMP Community String, for security I highly recommend this unless your AirPort is behind a hardware or server firewall.
If you change the string your Python Script will need to be updated.

The Python Script:

import os
import sys
import subprocess

CMD = 'snmpwalk -v 2c -c public ipAdEntIfIndex'
EXCLUDE_LIST = ['127', '192', '169', '10'] # exclude private ips

def get_external_ip():
 PIPE = subprocess.PIPE
 r = subprocess.Popen(CMD, shell=True, stdout=PIPE, stderr=PIPE)
 result = r.communicate()[0]
#    import pdb; pdb.set_trace()
 for ip in result.split('\n'):
 if '=' in ip:
 parts = ip.split('=')[0]
 ipaddress = ".".join(parts.split('.')[1:])
 first_part = parts.split('.')[1]
 if first_part not in EXCLUDE_LIST:
 return ipaddress

if __name__=='__main__':
 print get_external_ip()

Once you have your external ip address printing to the shell. You can now do things like create a cron job on your server to push a text file to a public or private webserver for example. I recommend it be pushed to something you need a username and password to get in from the outside world. Maybe an ftp address that you can only access as admin.

Checking your command line:

snmpwalk -v 2c -c public ipAdEntIfIndex
IP-MIB::ipAdEntIfIndex. = INTEGER: 3
IP-MIB::ipAdEntIfIndex. = INTEGER: 3
IP-MIB::ipAdEntIfIndex. = INTEGER: 5
IP-MIB::ipAdEntIfIndex. = INTEGER: 6
IP-MIB::ipAdEntIfIndex. = INTEGER: 5

The one I marked would be your address most-likely. Remember, if you cant get this command to work the python script above is useless. So what ever you get working here you should put in the CMD =”” string in your python script. We skip over the 127/169/192/10 in our python script because these are private address. When we do this the remainder is your external ip address.

I could not find an easy way just yet using snmp protocol to get the external ip so this is the next best thing.

Please give it a try and post your comments!


This is the first post for geektalker. The reason I am starting this blog is because I want a place to document all the geek things I do. Everyone is always asking me how to setup this or do that. So this site is a place where I can tell them.

I have a natural tendency to over explain things and get far down the rabbit whole. I will try to cut-back the words and do as many examples I can. I plan to put tutorials up, reviews on products I am using, and many other geek related things.

Please feel free to send suggestions for stories you might be interested or if you want me do some review on a product/products. I will also post reviews and reactions to very “geeky” things like movie reviews for Science Fiction / Action movies. Or what ever pops in my brain…

I will sign of with a quote, what movie is it? 🙂

“My Brain Hurts?!?”