Tiernan's Comms Closet

Geek, Programmer, Photographer, network egineer…

Monthly Archives January 2013

College Bag Contents

Tomorrow, Monday the 28th January, 2013, will be the start of my final real Semester in College. I have been studying part time for the last 3 and a bit years, and tomorrow marks the begining of the end… Its the final REAL semester, meaning at the end of this i will have exams, but i wont be “finished” as such… I have a final semester from September to December where i hand up my final year project, which i plan on documenting here soon.

Anyway, thats a long way of saying that today, i have been working on the contents of my college bag: What do i bring with me to college…

well, here it is:

There is a lot in this photo, so you may want to click though to see the full size, but lets start, shall we:

  • Laptop: MacBook Pro, Late 2008, 8Gb RAM, 500GB Hybrid HDD
  • Phones: HTC Titan (Windows Phone 7.5, main phone), HTC One X (Android, backup phone), , HTC HD2 (Windows Phone 6.5/Android hack, test phone (VOIP Stuff)), iPhone 4 (iOS, Data Phone)
  • USB Keys: Multiple USB Keys ranging from small 4Gb sticks to fast 32Gb USB 3.0 Keys… total space: 140GB
  • HotSpot: Zoom Travle Router with Wireless-N connected to the iPhone to give me a wireless access point for up to 254 devices…
  • Power: Veho Pebble. enough power to charge both the iPhone and HotSpot at the same time (hotspot powers iPhone while its on, and the Pebble powers the hotspot). May replace it with something more powerfull eventually…
  • Mouse: Microsoft Arc Mouse. Small, light, foldable and works perfect for what i need it for.
  • Memory card Reader: Lexar Dual Slot USB 2.0 Memory Card Reader: this is very fast… Has UDMA support for faster CF and SD cards… Used mainly for reading memory cards from cameras, but given my project uses a Raspberry Pi, and i have 2 of these, one in my main bag is handy.
  • Camera: I carry my a Samsung Galaxy Camera with me at all times. This is my new years resolution and its something that i handy to have with me. Taking photos of notes, videos of lectures, etc, is handy…. and given its a full Android device, i can send and read emails, tweets, facebook, etc.
  • MISC: I have a small USB Hub pictured (no link, dont know where i got it). I also have all the required cables (iPhone, mini and micro usb, power, etc) and what ever else is needed to run the whole show…

I am hoping that if i manage to build the Ultimate Mobile HotSpot with a Raspberry Pi, I can get rid of a few things (mobile hotspot, battery charger, replace the iPhone with an iPod Touch) and maybe a lot of cables… Ideally, the Ultimate Mobile Hotspot should have enough power to charge other devices, and be charged while running also… but thats another post for another day…

Raspberry Pi as a Mobile WiFi HotSpot (part 1)

I have been using an iPhone 4 as a wifi hotspot for a while now. It does not have a “phone” SIM in it, with calls and texts enabled, instead it has a 3G Data SIM from a dongle… It works OK, but there are a few issues i have with it…

  • No easy way to see how much data is being used, unless you Jail Break, and then battery life goes away…
  • not very hackable… other than Jail Break, and thats not hackable enough…
  • not a lot of storage: 16Gb, and most of that is takin up by Music and Apps
  • no background network daemons… more on that in a second…

The Network Daemons i am thinking would be useful for a WiFi Hotspot would be Squid, WANProxy, SSH, PPTP or OpenVPN Client and possibly a downloader of some sort. What i am thinking is as follows:

  • Have a device, that is small enough to fit in a bag, possibly small enough to fit in a jacket pocket. It will probably not be as small as the iPhone.
  • It should have storage on board. Boot storage and cache storage
  • At least 1, possibly more, WiFi Adapters, with optional antennas
  • At least 1, possibly more, 3G or 4G Modems
  • At least 1 ethernet port, again possibility for more
  • Battery that can run the whole system for at least 4-5 hours, and should be able to run while being charged. charging via USB would be ideal also
  • Optional Screen, but more likley, some sort of web interface to show whats going on (Bandwdith usage, clients connected, connection details)

When this turns on, it should automatically start the 3/4G connections (if there are multiple connections, it should do some balancing of the connections). if there are more then 1 WiFi Connection, one should be a Client (connect to an external WiFi connection, like home, college, work) and one should be an Access Point (Your Phone, Tablet and Laptop connect to this one). Ethernet can also be used in a simular way (if one only, it could be client or server, if multiple, one can be client, one can be server). DHCP addresses will be given out on Access Point or Server connections, and on Client connections, DHCP will be accepted.

Squid would be installed and listen on its usual port. Optionally, all port 80 and 8080 traffic could be routed though Squid. Ideally, HTTPS traffic should be automatically routed, but i think thats a bit harder to setup… If VPN Clients are enabled, it could also allow All or Some traffic to be routed over the VPN connections. SSH could also be used to compress traffic between multiple Squid boxes (one in house, one on the device). WANProxy could be used in a simular manner to save bandwdith and make the connection faster.

So, with all that, i am looking at using a Raspberry Pi for the job. I am still working on this, but here is what i have so far…

  • I have put a Wifi adapter into my Raspberry Pi (A Linksys, but forget the exact model number). Using a tutorial on Vivek’s blog on making a wifi hotspot on linux i managed to get the AP showing up on my laptop, but could not connect. I am not sure if its the adapter causing the problem, or what, but i am going to change out the adapter.
  • At the moment, i am sharing the ethernet connection, not the 3G connection… I have posted here before the link to Terence Eden’s post on getting the Raspberry Pi to connect to 3G. All that i will need to do is connect to 3g and then NAT the connection from Wifi to 3G…

So, there are a few more bits and pieces to get done over the next while… I will keep posting here…

Moving sites to NearlyFreeSpeech

I have been running a Dedicated Server from Hetzner for a while now, but have started to look at what i am running on the site, and reailized i under utilize the machine a lot… For example, this site is generated using Jekyll, which takes up very little power, and becomes static HTML files. My other blogs (Tiernan’s Comms Closet and GeekPhotographer) are both low traffic WordPress sites, and I run a couple of other static sites also for friends… All in all, not a lot of power…

Its not a fortune to run the server, the box i have has a Quad Core, Hyper threaded Intel i7, 32Gb RAM, 2 3TB Hdds (not raid…) and runs a copy of VMWare ESXi, and it costs about EUR60 a month, including a couple of IP addresses… But, i dont use it all that often… So, i am in the process of getting rid of it…

So, the 2 other blogs (GeekPhotographer and Tiernan’s Comms Closet) have already moved. They where easy enough… Export the WordPress DB, copy the file up, tweak the config, import the DB, DNS updates, etc… All done… but this site… that is more “Complicated”…

Since it is generated on a ‘git push’, Jekyll and Ruby needs to be installed on the box… I am using static sites on NearlyFreeSpeech which only charge me per meg (about 0.1c, but that reduces as you transfer more) transfered and per 5 meg stored (1c). Thats for STATIC sites… if you are running a dynamic site, its about 1c per 1mb stored, plus 1c per day, plus another 2c for MySQL instances. Check out their pricing calculator to see the magic at work!

Anyway, my GIT repo is on a machine in the house. It has Jekyll and all required bits installed. In the ‘post-receive’ hook (check the original zerosum post), i generate the site, and then do an rsync copy to NFSN servers. That is it!

Any question, leave a comment.

[update] forgot to add the gist which shows how i do the rsync call…

[update2] you in my case, the folder that Jekyll is being built in needed to be chmoded and chowned… I chowned the the folder to the gitolite user and i chmodded the folder to 777… before i did this, some files where unreadable on NFSN… with this, all works grand…