Jason Charney edited this page Apr 12, 2017 · 8 revisions

Welcome to the Hacktop wiki!


--Obadiah Stane (Jeff Bridges), Ironman (2008)

If this is your first time here...

Basically there are four things you need to do if you want to do this project:

  1. Assemble the Hardware - Get the hardware first that you need for this project. If you don't make a whole lot of money, that's OK. We start out with the priority parts first, getting the Pi, then getting the Lapdock.
  2. Install the Software - Download, mount, and install the software.
  3. Setup your Raspberry Pi - A basic explanation as to how to set up everything, including the WiFi. I am to make this part quick so You don't spend too much time tethered to an Ethernet port. Unless you want to do that with another computer.
  4. Download the Missing Parts - Basically clone this project. It will have files for you to use to set up and do somethings that weren't included.

What we will cover

  • Software Defined Radio (SDR) - A fun project. Basically you listen to the radio or the police radio on you Pi. We might cover decryption of signals.
  • Why we can't use wicd-curses anymore - As much as I love those textual console based programs, the folks at Raspberry Pi have finally set things up such that what they got works better. Which sucks because you need to log in the GUI to turn the WiFi on.
  • Installing Tmux - Just because we can't use Wicd-curses, doesn't mean we can't still use the console. I also recommend getting htop.
  • Installing Vim - Nano is great, but old habits die hard. Give me Vim!
  • Installing Ruby - A lot of people like using Python, I'll cover that as well as Java and [C and C++](C and C++), but Ruby is kind of a big deal, especially if you use Jekyll for GitHub pages.
  • Installing Node - Node is back for Raspberry Pi!
  • HTML5 Canvas - This is the part that I love about HTML5. It's also why I've started using Codepen.
  • Haml and Sass - It's difficult to choose what preprocessors I want to use. Personally, I like to write my HTML and CSS directy, but with Haml, Sass, and Coffeescript being popular options on CodePen and Jekyll being popular here at Github, it is likely in my best interest to learn how to use these things and to show others where's a good place to learn them.
  • Tor Browser - The anonymity software has a browser now. Hopefully it will be good enough to use on Raspberry Pi. There are plans. I've giving Tor Browser a try because Firefox gave Raspberry Pi the awful IceWeasel Browser and Chrome (even Chromium) are too resource hungry.
  • BitCoin - Eventually. I was thinking more DogeCoin. So wow. Many fun.
  • Spotify - There used to be a command line program for playing music with the streaming service, but Spotify changed their protocol. We'll save a spot here for when it comes back some day.
  • Robots - Someday. It would be fun.
  • Internet of Things (IoT) - IoT is quite insecure. The trend these days is automation with WiFi and the best part is that it is a lot cheaper than you think! We'll save a place in this project for IoT. We could start a RIoT! (Raspberry Pi + IoT = RIoT)
  • And as always, all sorts of Linux stuff, especially for text processing and information retrieval.

What we won't cover

  • Cross Compiling - At least not yet. Everyone says it's faster this way, but people explain this like it was rocket science. I'd like to explain this without the overhead or the bigheadedness.
  • Using SDR to Broadcast - Firstly you need a HAM Radio license to do it, and secondly broadcasting over emergency systems is illegal. It's OK to listen, not OK to record without a warrant, not OK to broadcast without a license.
  • Ruby on Rails - At least not yet. Lot's of people still like to use Rails for MVC and Agile style development.
  • MEAN Stack - At least not yet. I'm not a fan of using Angluar.js. Express is nice. And I would like to look into Coffeescript along with JSON, JQuery, and maybe MongoDB, but a lot of it seems like a lot of stuff that isn't [KISSable](Keep It Simple Stupid).
  • LAMP Stack - LAMP is so last decade, what with NGinx, Node, and Jekyll.

Files That need work.

These were Staged for commit recently, but never added yet because I haven't completed something or there's some part that is a cog of some step. This includes the following files.

  • Fonts - I'm trying to understand how to look at fonts for terminals before setting them but there's no font program I can look at.
  • GQRX - Ground zero for the whole SDR thing which for some reason wants LLVM
  • Haskell - I've heard much about this. But once it became a necessary peice of the whole LLVM/Clang process, I just had to get it.
  • LLVM and Clang - This is probably the most challenging process, especially since the binaries in the Debian repo are too old for what we need. The other problem: installing LLVM and Clang from source is unbelievably taxing on the hardware, which is why a lot of people cross compile. The other issue is what settings need to be added for the ARM architecture. To talk about this on ##Linux in Freenode is like asking if there is a Fight Club in the Night Vale Dog Park. (Do not talk about the Dog Park!)
  • Other Packages - All sorts of fun stuff to install. Let your geek flag wave high!
  • Python - The important parts should be ready. I forget why I didn't stage this for commit.
  • Ruby - Same reason as Python.
  • Vim - And Vim too.

These were untracked recently, I forget why.

Whatever the reasons, I need to clear my head of some stuff. Send an issue if I goofed up on something.

Remember, what I am doing is a service both to you as well as to myself. Not all problems will be resolved, but the ones that effect me will certainly.


  1. [Assemble the Hardware](Assemble the Hardware)
  2. [Install the Software](Install the Software)
  3. :up: [Setup your Raspberry Pi](Setup your Raspberry Pi)
  4. [Download the Missing Parts](Download the Missing Parts)

Typical Utilities

  • [Downloading and extracting with curl and tar](curl and tar)
  • [Browsing with ls and cat](ls and cat)
  • [Searching with grep and find](grep and find)
  • [Filtering with sed and awk](sed and awk)
  • [Piping with less, pv, and tee](less, pv, and tee)
  • Monitor your system with htop
  • Multiplex with tmux
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.