Building a 1U Home Datacenter: Hardware and Host OS

Sep 25, 2016


My husband and I both work in the tech industry, and the two of us have amassed quite a collection of random bits of computer hardware and 1U servers affectionately known as pizza boxes. Once we decided to wire ethernet jacks in nearly every room in our house and install a rack in our basement, it just kept growing. A switch, router, and a mac mini became another switch, a hub, two NUCs, and a NAS in addition to all the other things we had in there. An empty rack is an invitation to fill it with hardware. Instead of setting up a headless Raspberry Pi on my desk, I can just add it to the rack. This setup worked reasonably well, until our 15 year old pizza box router hosting pfSense started to die. As we both work remotely in a rural area, an unstable network is a serious disruption. We needed to replace the router, and it seemed reasonable to replace it with another pizza box. However, our NAS was also acting persnickety, as it likes to chew up and spit out disks, and my development environment (laptop with numerous vagrant virtual machines) was feeling a little cramped....

Testing Elixir HTTP client with ExVCR and HTTPoison

Sep 18, 2016


I’ve recently started working on a fun new distributed systems project written in Elixir. Functional programming and immutable languages are a brave new world for me, and getting used to the syntax and structure has been a delightfully frustrating challenge. One of the first things I had a chance to dig into was writing some helper functions to call an API (Marathon, in this case). Here’s a super simple example of an HTTP GET request in Elixir using HTTPoison. Note: if you’re not using httpbin for http testing, you should! It provides a route for every HTTP verb with appropriate responses that you can test against, including one for testing response codes. You can also fork a copy and run it locally for testing so as not to depend on a live site. HTTPoison is an elixir HTTP client built from Hackney and Poison, which are HTTP and JSON libraries, respectively. HTTPoison’s main feature is that it returns binaries instead of string lists, and it will do some encoding/decoding of JSON return or post bodies. This is nice because it simplifies any JSON massaging or converting that you might have to do, and in turn simplifies your code. def get_request...

Survey: New Engineers and Company Mentoring

Jan 21, 2014


Since graduating from Hackbright Academy, I’ve been involved in a lot of discussion around mentoring and onboarding new engineers. I’m a big proponent of having some formalized process and mentoring at companies, and believe that the benefits of having Junior Engineers on a team are not exclusive to new engineers. I’ve had a pretty awesome onboarding and mentoring experience at Real Gravity, which my work mentor and I presented about at DevopsDays SV 2013. I also believe in helping out others, so I’ve been mentoring and advising pretty much anyone who asks me for help. However, I only have my own experience to draw from; I’m interested in hearing about other new engineers’ onboarding experiences have gone. I’ve created a survey for new engineers who have graduated from a Coding Bootcamp, University, or self-taught, who are now working or interviewing in tech. If you fall into that category, please fill it out! The survey is anonymous, and asks questions about interviewing processes, mentoring, and preparedness for getting started in technical work. Once I’ve spent some time analyzing the data, I’ll do a follow up post explaining what I’ve learned from the responses, and how we can use it to help...

Things I wish I knew about Arduino programming: Part 1, IDEs

Nov 13, 2013


Arduinos, with their low barrier to entry and ease of programming, are one of the things that got me started programming a few years ago. My first project was a simple wearable electronics project to get me started with the Lilypad. I made a dress, and added 5 metallic illuminated flowers that alternately faded in an out with LED lights. It was a really fun project, and very satisfying to finish even though I had no idea what I was doing at the time. Since then, I’ve learned a few tips and tricks that make Arduino Programming a bit more fun, and less of a mystery. One of the biggest hurdles when programming in C for the Arduino is the IDE, or Integrated Development Environment. It’s available for free from the Arduino website, and is a quick way to get setup when starting out with Arduino. the IDE allows you to write code, check your syntax (to a certain degree), compile it, monitor your serial port, and upload it to your hardware. It also comes with a number of example sketches to get you started. However, doing development with it long term can be a little tedious. Syntax highlighting is...

Stupid Find Tricks

May 17, 2013


Every time I learn another use case or tip for using find, I have a new appreciation for the power behind this tool. At its core, find is a handy command line search utility with a few special powers. A coworker aptly nicknamed it the “swiss army knife” of shell commands. I’ll go one step further and nickname it the rocket surgeon’s swiss army scalpel, for unlike the swiss army knife with its array of tools that are half suited for many little jobs, find’s precision comes from a multitude of command line options, and the ability to execute additional commands on the output of a search with find. Quick basic find example: Suppose I want to lookup any files with the extension .mp3 in my music directory: $ find ~/Music -name "*.mp3" Find will look in the Music directory, and any sub directories within it, to locate those files. Not super useful at this point, but we’ll get there. If I pipe find to wc (word count) with the -l flag (lines), I can get a count of every .mp3 file in that directory: Music $ find . -name "*.mp3" | wc -l 1410 Now, suppose I’d like to...

Page 1 of 6

Next Page =>