Using the Raspberry Pi as My Development Machine

300px-RaspberryPiAs many of my readers know, the Raspberry Pi is a $35 dollar ARM computer with 2 USB ports, and ethernet port, HDMI, and some GPIO pins.  My current plan is to use the Raspberry Pi as my main development machine, flashing all of my ATMEGA328 chips from it.  This will allow me to not only program anywhere, but should my computer crash, my development environment will be perfectly safe (provided that I keep it backed up).  This 700 MHz computer is pretty dinky, when I first ran the GUI several months ago, all I saw was how unreliable it was and that it would be impossible to get anything done on it.

Since then I purchased a high speed SD card from a quality manufacturer, and the performance is better.  I also learned that you can divide the memory between the GPU and the general purpose memory.  For my case, I decided to skip the monitor and keyboard, and SSH into it using KiTTY (an updated PuTTY client). I’m also using Xming to serve as a X11 Server on my windows system, so that I can do X11 forwarding of the Arduino IDE if needed.  I hope to use the command line version, arduino-mk, but currently it doesn’t work as well as the Arduino IDE does.

I also discovered that many of my existing programs no longer work on the latest Arduino IDE v 1.0.1, because the avr-gcc team changed some things around.  Luckily I have a backup of my old development environment, as well as a working VM with it on it, but my current plan is to update my existing code as needed, to work with the new versions, since they are the future.

Here’s a brief rundown of what I needed to setup on the Raspberry Pi to get it to work:

  1. Install the latest Rasbian onto your SD card following these instructions. I followed the Easy Way.
  2. I then connected the Raspberry Pi, SD, Ethernet, and power (from a reliable charger, I’m using a HP Touchpad USB charger).  You’ll need to find the IP of the raspberry pi by checking your router for newly connected devices.  Use KiTTY to SSH into it (using the IP and port 22).  Username / password is pi / raspberry.
  3. Go ahead and update things (sudo apt-get update, sudo apt-get upgrade).  I install vim, tmux, arduino and python-serial as well. I also copy a folder I made a while ago that has all of my vim, screen, and tmux settings.
  4. To get my usb-serial devices working, I need to update to the latest raspberry pi kernel.  To do this, we need to install rpi-update. With that installed, update the kernel.  As of this writing, the latest kernel is “Linux raspberrypi 3.6.11+ #414 PREEMPT”,
  5. Now you should be able to use LScreamer or Arduino to flash your projects!

What’s great about this setup, is that I can SSH into the raspberry pi from anywhere (provided I have opened up the right ports in my router).  Yesterday at my brother’s house I was connected to my Raspberry Pi on my workbench, trying to get an Arduino program to compile. As I work on my latest project, I may implement some improvements to this Raspberry Pi setup, possibly automatically controlling my Oscilloscope and my power supply.

I find taking little steps to big goals gives you small accomplishments that build up, giving you that much more motivation to finish.

Advertisements

Useful Tools for a Safe Internet Browsing Experience

magnifying-glass-300x200As I posted a few posts ago, Information: You don’t own it unless you take it, now I will provide the tools that will allow you to take control of your browsing experience.   The motivation for this post is that I’m discovering that some of the content that I enjoy on the Internet, is disappearing.

The following steps are listed in the order of most importance/impact, and are recommended by me to improve your browsing experience.

1. Update your Hosts file

A hosts file is used by most devices that access the internet.  When your browser needs to process a URL, it first looks at your hosts file to determine if any special rules exist for that URL.  By updating your Hosts file, you can make any attempt to load a malicious URL fail on your computer. You should consider installing a host file onto all of your computers and smartphones/tablets.

  1. Download a hosts file from http://someonewhocares.org/hosts/.
  2. Follow the instructions provided in the hosts file to install it.  I would recommend deleting the line in the hosts file which blocks adf.ly, since there is a decent amount of content (typically Minecraft mods) which is provided through adf.ly links.

2. Download Firefox and SeaMonkey

Why would you need 2 browsers?  To restrict and control what the websites you view, know about you.  I’ll also recommend some addons that will help protect you from being tracked by the advertising agencies such as Google or Facebook.

firefoxWhile Firefox doesn’t provide as many options as I would like, there are generally addons which fix the shortcomings of the browser.

 

seamonkey

SeaMonkey is a browser which is based on Firefox, but without the unnecessary changes to its User Interface.  It also combines a mail reader and address book to be a unified application for all of your internet correspondence.

3. Tweak Firefox

I recommend the following addons to improve security and your enjoyment of the internet.  Many of these purposefully break websites that you are viewing to allow You to control what content you wish to view.  Once you get these plugins installed and running, you may consider donating to many of them, since they really do make your browsing experience much better.

  1. NoScript blocks scripts from running on websites, many of which are designed to track you.  In the options for this plugin, under the General tab, you should enable “Temporarily allow top-level sites by default” and the option under which is “Base 2nd level Domains (noscript.net)”.  Under the Notifications tab, disable “Display the release notes on updates”. Generally when you visit a webpage, you may have to enable scripts, one at a time, to get the content to display.
  2. Adblock Edge blocks unwanted advertisements, and is based on Adblock. While many websites depend on advertising to remain in business, often they are not selective about what ads are displayed, and as a result, can install Malware and viruses onto your computer just from visiting a website.
  3. Startpage Https search replaces the insecure and privacy violated Google search engine with a search engine based on google, which removes the privacy problems (since Startpage is doing the searching for you).  Google is an advertising agency who releases free products used to gather information and sell their Ads.  Never trust a company who sells your information, and never provide such information freely.  If anyone can recommend a non-Google and non-Bing based search engine, I would be glad to hear it.
  4. Flash Block stops flash videos from automatically playing.  I’m not entirely sure who thought it was a good idea to have videos play automatically, but in my opinion it hampers the web browsing experience.
  5. Cookie Monster allows you to selectively allow, and delete, cookies for websites you go to.  Browsers are pretty broken in their current implementation.  A website like Facebook can not only interact with the cookie they hold, but also access all of your other cookies used in that browser.  Amazon updates your account anytime you search on amazon for anything, so by allowing the Amazon cookie to persist, they keep track of Everything you’ve ever searched.  Target does the same thing with shopping patterns and is very effective with it, detecting pregnancies and mailing targeted advertisements to expectant mothers.
  6. HTTPS everywhere allows you to have a secure connection between your browser, and the website you are trying to view.  With such a HTTPS connection, you can connect to a insecure wifi hotspot (or your work intranet for example) and securely conduct business.  Keep in mind that the URL of the website you are viewing can still be harvested, just not the content on that website.  Non HTTPS sites you view are sent in plain text, as well as all information you enter.  Look for the Lock icon next to the URL in your browser to determine if it is an HTTPS connection.
  7. Redirect Remover allows you to skip the middle man when trying to view links and contents.

The following addons are recommended to allow you to capture content easier, which can range from downloading all of the content on a website, to downloading full ad-free flash videos. One plugin is also provided to improve usability of Firefox.

  1. DownThemAll allows you to download all of the content you are viewing, to a selected folder on your system.  Useful for websites that directly host file downloads (such as a image hoster). Also get DownThemAll Anti-container.
  2. FlashGot allows you to download flash videos from some of the major video hosting sites.  This allowed be to download and keep a version of the video linked above 🙂
  3. Youtube MP3 Podcaster allows you to download flash videos as well, having two options can be pretty useful, I generally install both.
  4. Tree Style Tab shows your tabs on the left side of firefox, rather than across the top.  Given our obsession with wide screen monitors and laptops, I’m not sure why this isn’t more popular.  It allows you to have hundreds of tabs open where you can easily read the title of each (and have sub tabs).

4. Tweak SeaMonkey

Sadly many of my favorite addons available for Firefox, are not available for seamonkey.  Here’s a list of those I have found: Startpage HTTPS searchNoscript, NoRedirect, TrueBlock Plus (like AdBlock), HTTPS Everywhere (select Firefox to download), FlashGot, DownThemAll, DownThemAll Anti-Container, and Complete YouTube Saver.

5. Abandon Webmail

Email which is left on a server such as Google’s GMail, for at least 180 days, is considered abandoned, and can be read by any agency. While not paranoid myself, I do enjoy a certain sense of privacy, and I believe that a Court Order should be required to view my private information.  It is also important to keep in mind that Email is sent in plaintext, meaning everyone between your email server, and the destination email server can and will scan the contents of your email.  Email is just like a Post Card.  I would recommend using SeaMonkey as your email client, and set it up to download all of your email.

6. Secure your passwords

keepassYou should never let Firefox remember your passwords, because if someone gains access to your computer, your passwords will be easily harvested from your browsers.  I would recommend a password manager such as KeePass. Keepass allows you to save your passwords into an encrypted file, so that even if your computer is compromised, your passwords are safe.  It also provides a random password generator that allows you to create super strong passwords which are unique from other passwords you’ve used.

The general problem is that if the username and password for one website is compromised, many times that same username/password is used on different websites.  By having a unique username/password for each site, we limit the damage that can occur from our username/password being compromised.

7. Cleanup your Startup on Windows

ccleanerIf you are using the Windows OS, many programs that you install decide that they should start when windows starts, without providing you the option to disagree. CCleaner seems to me to be a very easy way to not only clean up things, but to remove unnecessary things from startup.  While I disagree strongly with their installation setup (trying to trick you into installing toolbars), there unfortunately doesn’t seem to be a better option.

8.  Perform your chatting using Pidgin

pidginPidgin allows for you to connect to different IM networks such as AIM, MSN, GMail Chat, Facebook, etc, without dealing with the interfaces for each of those.  Many of those IM clients come bundled with Advertisements, which may damage your system. I also download the Off The Record plugin which allows for secure communication over existing IM protocols.

9. Windows 7 Usability Tools

A part of my usual windows install includes installing Find and Run Robot, WinSplit Revolution, VirtuaWin,  and WizMouse.  These utilities allow you to quickly search for things, manipulate your windows, have multiple desktops, and to scroll inactive windows, respectively. I consider Windows quite unusable without these simple applications.

Conclusion

While it will take the reader some time to go through all of the plugins and applications presented, there generally isn’t a rush, so you can take your time to learn what each of them do, and decide if you trust them.  It has taken me over 5 years to find and use each of these tools, and I hope by presenting it in a logical format, it will take you less time to start being proficient in protecting yourself online.