After constantly hitting my Dropbox space limit, I decided to build my own distributed backup tool. What I ended up with was an external hard drive with a dedicated Raspberry Pi that keeps in sync with my laptop over the internet using BitTorrent Sync. This new BTSync folder fully replaced my Dropbox folder, and allowed me to streamline my large media backups. I've explained every step of the build below.
These are the items you'll need if you want to duplicate what I've built. If you're building more than 1 node, I highly recommend you buy different brand external hard drives (eg. 1 Western Digital, 1 Seagate, etc). Even different models should be sufficient. If it turns out one goes bad after a year, chances are the second won't die as well.
Grab the latest version of NOOBS (New Out of Box Software). NOOBS makes it easy to get the Raspbian OS up and running on your Raspberry Pi, along with setting some basic config options. Once you have it downloaded, copy the contents of the zip onto a freshly formatted SD card (FAT filesystem).
Once you boot up your Raspberry Pi with this SD card and install Raspbian, you'll be given a few more options. These are the settings I usually change, but you should also look around yourself to see what's available.
For more detailed setup instructions, check out the installation readme included in the downloaded zip archive.
If you're using a USB keyboard, you may notice that some of the characters aren't being entered correctly. To switch your keyboard layout from the default of English (UK) to English (US), you can follow the simple instructions after running this command.
sudo dpkg-reconfigure keyboard-configuration
Assuming you've turned on your Raspberry Pi with the wifi dongle inserted, you can move onto configuring the wifi connection. You may want to give it a fixed IP address to make connecting to it from another machine easier. You'll find it is much quicker to SSH into the device rather than hook up a keyboard and monitor every time you want to tweak something.
I haven't had any issues with disks formatted using ext3 or ext4, so using one of those for your external disk is recommended. You can use sudo fdisk -l to find the path of the disk (probably /dev/sda1), which you'll need for mounting. Here's how to mount it. Don't forget to change ext4 below to whatever you used.
sudo mkdir /media/external_disk sudo mount -t ext4 /dev/sda1 /media/external_disk
Once you verify that works and you can access your files on the disk (if any), you should be able to add the disk to /etc/fstab by adding a new line like this
/dev/sda1 /media/external_disk ext4 defaults 0 0
Now when you boot your Raspberry Pi, the external drive should automatically mount.
Finally you'll want to download and install BTSync. Be sure to also follow the instructions to make BTSync start on startup too, so you don't need to manually start it every time. Once it's installed and running, you should be able to configure it from any machine by pointing the browser to the Raspberry Pi's IP and port 8888 (eg http://10.0.0.12:8888). It is a good idea to go into the options and set a password for this page.
The reason I started this project in the first place was because I had over 1TB of pictures and videos I wanted to keep synced across 2 hard drives in 2 different cities. While creating two nodes has done the job, I am still working on the best way to access the data without disconnecting the drive from the Raspberry Pi every time I want to add/remove something. I think my next step will be to run a samba server on each device as well, so I can treat them as network drives and access everything. FTP is also an option. What are your thoughts?
Earlier this year while moving back to the northeast from Austin Texas, I spent some time in Arkansas with the talented Arlton Lowry. We've been meaning to work on a project together for a few years and came up with Grades.io which I'm happy to say is ready for action.
We've launched the beta site where teachers are able to set up their classes, add students and create assignments. We've already been covered on techcrunch and have received a bunch of great feedback which we're actively rolling into the site. If you're at all interested in the education space, I urge you to check it out and let us know what you think!
I've been experimenting with timelapse videos and ran into an FPS limitation with iMovie. When importing images into your video project, the minimum amount of time it lets you show each frame is 1/10th of a second. That means the timelapse will play at 10fps, which isn't ideal when the rest of your video is usually 30fps.
To get the video playing at 30fps (or more) instead of 10, you'll need to speed it up. Start by creating a new project with only your timelapse images, and setting each frame to 1 second. Then, export the movie at 1080p into a temporary file. Once that is done, import that file into your main project and set the clip speed to 300%. Now you've got your timelapse images playing at 30 frames per second.
Wandering around foreign areas with no internet access has been quite the learning experience. Before the trip begin, I considered myself fairly disconnected, but I still found myself reaching for the phone here and there. It isn't much of an issue when you don't have any plans, but can be a pain if you're trying to find your way to a specific place (eg. home).
Here are some tools and tricks I've been using to help make living offline easier.
The Android app for Google Translate has an "offline languages" feature. One of the biggest language issues I've hit while traveling is restaurant menus. While it can't convert everything like it can online, it has kept me from starving. And McDonalds.
The old Google Maps for Android app had a fantastic offline maps feature, but it was replaced a few weeks ago. In the new Android app, zoom to the area you wish to cache and type "Okay Maps" in the search box. This will download that section of the map locally. Since your GPS doesn't require data, it will still plot you accurately on the map.
I'm a huge WorkFlowy fan but there isn't any way to use it offline at this time. Evernotes app does a nice job of syncing notes whenever it can without merge conflicts.
When I'm about to go on a multi-leg journey, I tend to open as much information as possible in new browser tabs and take some screenshots. For example, if I'm traveling by train-bus-ferry-bus, I will want to be sure I have everything I need, since I probably won't have a connection for some time.
I could easily get a local SIM card and have mobile data access, but where's the adventure in that? I picked up a TruPhone SIM card which gives me voice/text/data service in just about every country in the world. It's nice to know you can SMS as soon as you get off the plane or ferry. The plan has different rates depending on where you are, and they're usually pretty reasonable for calls and texts. Data rates are pretty high though, so I keep that turned off at all times. Bonus, there is no monthly charge.