Sharing 3G Internet Via Mesh Networking

As you probably know, my family and I are in Mexico for a few weeks. Because we’re here for close to a month, I’m working full-time for part of our trip while my wife and kids enjoy the goodness that is the all-inclusive Sandos Playacar (we’ll be moving in a villa for the last 2 weeks on the 24th). This lead me to acquire a TelCel Amigo 3G USB stick (comes with 3GB of monthly bandwidth).

Since this is the only constant internet connection we’ll have throughout our stay, I wanted to be able to share the connection so that I can also connect via wifi for our iPhones (unlocked, also set with simple pay-as-you-go local SIMs, but no data) and my son’s netbook.

If you happen to be on OSX, doing so is absolutely dead-easy.

  1. Connect to the internet via your 3G connection
  2. Make sure Airport (wifi) is on
  3. Go to Systems Preferences → Sharing
  4. Select Internet Sharing
  5. Select your USB stick’s hardware from the list of ports in the “Share your connection from” section (see screenshot below)
  6. Check the “Airport” checkbox
  7. Set a network name and WEP password using the “Airport Options…” button

Tada! You should be all set and now be able to see your mac-as-an-access-point from any wifi-compatible devices. Enjoy! :)

Update: Had forgotten to attach the screenshot I mentioned. See below.

IM/IRC/Skype Statuses Applescript Helper

Largely inspired by Beau’s equivalent setup, I rolled out a small Applescript to set my miscellaneous IM/IRC/Skype statues as away or available in one click.

set myStatus to display dialog "Select your IM Status:" buttons {"Away", "Available"} default button 1

-- Adium: Multiple IM and single IRC account statuses
if appIsRunning("Adium") then
	tell application "Adium"
		if the button returned of myStatus is "Away" then
			send the first chat of the first chat window message "/nick stephdau|away"
			go away
		else
			send the first chat of the first chat window message "/nick stephdau"
			go available
		end if
	end tell
end if

-- Skype status
if appIsRunning("Skype") then
	tell application "Skype"
		if the button returned of myStatus is "Away" then
			send command "SET USERSTATUS AWAY" script name "My Script"
		else
			send command "SET USERSTATUS ONLINE" script name "My Script"
		end if
	end tell
end if

-- iTunes
if appIsRunning("iTunes") then
	tell application "iTunes"
		if the button returned of myStatus is "Away" then
			pause
		else
			play
		end if
	end tell
end if

-- Helper
on appIsRunning(appName)
	tell application "System Events" to (name of processes) contains appName
end appIsRunning

Note on Adium handling: because of my account order and the fact that I connect to IRC via ZNC, the first chat of the first chat window is always an IRC room in my context.

I haven’t yet, but I could adapt this script to also take parameters to get the button status equivalent, then couple it with SleepWatcher or ScriptSaver to have the script triggered on sleep/wake on my MacBook Pro or when the screensaver activates/deactivates on my iMac.

Nerdy Mac Mischief

To which I replied:

You Want Realtime? We've Got Realtime!

Get or use your existing WordPress.com account, setup http://im.wordpress.com, http://p2theme.com, maybe even http://iphone.wordpress.org and our “Publicize: Twitter“, and you’ve got yourself one nice, quick, full-featured lifestreaming blog.

“At im.wordpress.com we have been experimenting with instant delivery of blog posts and comments. We started by providing a firehose for our partners but that was only the beginning. Now you can subscribe to WordPress.com blogs in your Jabber IM client and receive posts and comments the instant they are published. It is also possible to post to blogs from the chat client. In time we plan to add these real-time features to web pages. Soon the conversations on blogs will be as fast as chat rooms.”