Lucas Ramage. I write free software. " name="description"> Log


Welcome to my online journal. Here are some of my recent posts.

Disclaimer: The thoughts expressed in these writings are entirely my own, and do not represent the opinions of current or former employers.

  • July 20, 2018 - Hurricane Electric IPv6 Tunnel Broker

    Hurricane Electric IPv6 Tunnel Broker

  • June 25, 2018 - Why I prefer UNIX

    “…modularity means more than modules. Our ability to decompose a problem into parts depends directly on our ability to glue solutions together. To support modular programming, a language must provide good glue…Smaller and more general modules can be reused more widely, easing subsequent programming” (Hughes, 22).

  • June 04, 2018 - Migrating to Gitlab

    I deleted Github.

  • May 25, 2018 - OpenBSD in Qemu

    Qemu Script

  • May 25, 2018 - VPNFilter Router Malware

    Affected Vendors: ASUS, D-Link, Huawei, Ubiquiti, UPVEL, ZTE, Linksys, MikroTik, Netgear, and TP-Link.

  • May 22, 2018 - Old Fashioned Gentoo

    Old Fashioned Gentoo

  • May 22, 2018 - Linux containers in 500 lines of code

    Lizzie Dixon - Linux containers in 500 lines of code

  • May 21, 2018 - Ethical Advertising

    It can be done, internet.

  • May 18, 2018 - Phoronix Test Suite on Android

    I am investigating two methods,

  • May 15, 2018 - postmarketOS Wiki - Amazon Fire Phone

    postmarketOS Wiki - Amazon Fire Phone

  • April 18, 2018 - Gentoo RAP in Termux


  • April 11, 2018 - Advanced Data Processing with SQLite

    I have been working as a System Administrator for the last two months. Part of my new responsibilities at this new company include inventory management. I manage the onsite data room, a couple hundred wall-mounted video kiosks, over two hundred analog phones, and almost one thousand android tablets. I am constantly processing reports for these devices and which can be very time consuming.

  • March 31, 2018 - Rack Mounted Chromebook

    The chromebook used for this project has had its screen broken for a couple years and has been out of use ever since. The device was completely disassembled, leaving both the motherboard and the battery to be mounted on standoffs in the chassis. Also, ChromeOS was not acceptable for running headlessly, so I got Alpine Linux running natively and installed an ssh-server for remote access.

  • March 29, 2018 - Manage LXC Containers with Portage

    NOTE: This is a work in progress and is not officially supported or sanctioned by Gentoo Linux or the Portage developers.

  • March 27, 2018 - LXC Host X Server Sharing

    To launch a desktop application from the host,

  • January 15, 2018 - Software Freedom in 2018


  • October 12, 2017 - Introduction to Audio Digital Signal Processing on Linux

    Introduction to Audio Digital Signal Processing on Linux

  • October 04, 2017 - Helmer Linux Cluster

    This is the story of Helmer. A linux cluster in a IKEA Helmer cabinet.

  • October 02, 2017 - Raspberry Pi 2 Emulation with Qemu

    It’s been awhile since I have worked on L.I.S.A..

  • September 29, 2017 - Jazzy

    I’ve been extraordinarily busy with college the last few weeks. With family and work and school, there has not been very much time left for tinkering. However, I did have a some free time last night and I did some research for my robotics platform. I’m building an autonomous platform out of an electric wheelchair base. The model I have is from the early nineties. I wouldn’t be surprised if it’s the same age as me. I managed to disassemble the controller and found embedded inside, a H8/532 microcontroller. Specifically, it is a HD6475328CP10. I read up on the H8 family of microcontrollers and learned that some of the models are capable of running Linux! I would need to purchase a programming adaptor to even begin messing with it.

  • September 18, 2017 - Void Linux

    This weekend I finally got around to installing Void Linux on my Asus T100TA, and I must say, it’s not too bad. It’s been awhile since I’ve used a binary based distribution on one of my own personal machines. I have also never used a distro with runit as the init system before. One thing that I bothers me about Void is the package manager. I do understand why all the commands are xbps-<insert verb here> when they could just be xbps --<verb> instead. Not a huge deal, but I definitely prefer apk from Alpine, and of course portage from Gentoo. In fact, I have been working on building a Gentoo-based firmware for this device in my linux-asus-t100ta repo. It’s not practical to compile anything on this device since it has some odd power issues. For one, I do not have the original charger so I cannot just plug the device in and use it for long periods of time. And also, the battery life is terrible. I basically use this device for tinkering with the touch screen, and occasionaly for gaming; although that has been less frequent due to losing the charger. I repaired the screen on this device a few years ago and was at one point, using this device for debugging wireless equipment from a boom truck or ladder.

  • July 21, 2017 - Eudyptula Challenge

    This sounds like an amazing challenge. Sadly, they are not accepting anymore applicants.

  • July 20, 2017 - blogc

    I have become dissatisfied with Jekyll recently. While it does a fantastic job, and it is very easy to extend, I have always hated that it is written in Ruby. I never use Ruby for anything other than this website. At work I use PHP, JavaScript, and shell scripts for most of my work. I do not really enjoy programming in PHP but it’s all over the place so I can’t really get away from it. And the same could be said for JavaScript. One language that I would really love to use more is Common Lisp. I am fascinated by the Lisp Languages. I have been looking into Clojure on Android for applications. The biggest problem I have with that is it’s based on Java. None of my personal computing devices, except my phone, have Java installed. I really hate how bloated it is. Most of the software written for Gentoo is either in Python, Bash, or C. Now I don’t hate Python. That was the first programming language I ever came in contact with. I tried scripting in the Blender Game Engine many moons ago. And I write Bash scripts all day long. My dream job would be writing device drivers for the linux kernel. As we all know, the kernel is written in C. And while I can read and understand C, I don’t have very much experience actually writing it. I can debug packages, and embedded images since that’s literally my day job, but I need more experience actually writing new code in C.

  • July 17, 2017 - Linux From Scratch

    Well, this weekened I became one of the counted on the Linux From Scratch Website.

  • July 06, 2017 - Gentoo Catalyst

    It has been far too long since my last journal entry. I have recently begun learning more about kconfig, the language powering the kernel build system aptly named kbuild.

  • June 21, 2017 - Preservation

    Git, and other version control software, is a great tool for keeping track of software projects. However, I am often conflicted over what I actually need to keep, and what can be thrown away. There are many different git branching strategies that utilize many small, disposable branches in order to foster a clean master branch. There are also many repository structures that prefer to keep as many changes as possible, in order to get a full history of what has transpired.

  • June 20, 2017 - Scary Thought

    Just something I found interesting, and also a bit scary.

  • June 13, 2017 - Fuchsia

    Today I found the source code for Google’s new modular operating system, Fuchsia, powered by a micro kernel named Magenta.

  • June 07, 2017 - Programming Language Adoption

    I always wonder why certain languages and technologies become prominent even though there may be technically superior languages to choose from. This article offers some valuable perspective on this topic.

  • June 02, 2017 - Canon Linux Drivers

    A week or two ago (I can’t remember), I bought my wife a Canon PIXA MG3620 Printer so that she can work on her party/event planning business. In Nigerian Culture, parties and events are huge and she hasn’t been very impressed since coming to America. So we bought this printer, and the instructions that came with it included an Android App for wireless printing. The printer did not even come with a USB type B cable. I was a bit concerned with installing this device on my wife’s computer. This is just a generic Ubuntu LTS installation. She does not appreciate Linux or any other OS; She just simply wants a web browser and a document editor and no hassle. To my surprise, Canon has the drivers on their website in either Deb or RPM and even source format. It took me about five minutes to download and install, and I was printing wirelessly on Linux just as easily as it was from the Android app! So thank you, Canon, for your efforts in making printing on Linux just as simple as any other platform.

  • June 01, 2017 - Hy

    Today I found something wonderful, Hy, which is a lisp dialect built on python. My biggest problem with python is the syntax. Python is a very opinionated language. This is good. However, I do not particularly care for how python deals with whitespace. I guess I am on the wrong side of that issue. One feature that I do like about python, is the virtualenv. Now with Hy, I have both lisp syntax, and virtualenv at the same time!

  • May 23, 2017 - Learning the Language of Math

    I read this wonderful paper this morning on mathematics and language.

  • May 14, 2017 - Kernel Boot Logo

    I did some research today on creating a custom boot logo for the linux kernel. I need a logo. Currently, my logo just consists of my initials in a circle. I would like to create a new logo with geometric shapes, preferably a hexagon, and I would like to have an intricate pattern or some clever typography.

  • May 12, 2017 - Automata

    I spent a good part of my day on my new buildbot setup. I finally configured to build a nightly images for all of the supported architectures. I also changed the worker to a local worker for simplification.

  • May 11, 2017 - Init Freedom

    Today I tried Void Linux, as part of my continuing search for a good, systemd-free, out of the box distribution for work.

  • May 10, 2017 - Buildbot

    Today I setup buildbot for the first time. I have been meaning to for quite some time but today I finally got around to actually doing it. The documentation is not very thorough and I found many outdated versions that actually had more options than the latest documentation had to offer. It is, however, very simple to setup and configure. And I did not need administrator priviledges or a web server or anything. I simply used virtualenv and created both the master and slave in my home directory.

  • May 06, 2017 - Bootstrap Alpine from Ubuntu (Magic Stick)

    Today I spent quite a few hours trying to bootstrap alpine linux on my asus t100ta from ubuntu on the magic stick.

  • May 05, 2017 - EFI Stub Kernel

    One of the greatest ironies of our time is the current trend of using an Apple Macbook Pro laptop, to develop free and open source software.

  • May 04, 2017 - Digitech effect pedal under Linux

    A friend gave me a Digitech RP500 almost a year ago and it has been sitting in my closet until today. I finally bought a second instrument cable so that I can hook the pedal up to my amp. It’s going to take a bit of time getting used to using the pedal. I spent the evening adjusting my amp and pedal settings and exploring all of the different effects and tones.

  • May 02, 2017 - Alpine Linux on Asus T100TA

    Alpine linux is the new Arch. It’s small, lightweight, and extremely powerful. And it is no surprise to me, that such a well built distribution is based on Gentoo.

  • April 28, 2017 - Alpine Linux - soundcard.h

    Tonight after work I continued my pursuit of building an AI with alpine linux on a raspberry pi. I am running into quite a bit of trouble with some of my dependencies. Both Festival, and Pocket Sphinx are failing to compile. Here is the error that I am getting:

  • April 28, 2017 - Compiling ECL on Alpine Linux

    I woke up this morning and checked my build and it was fine! Either I am getting better at this, or I am just lucky, but it build in the first try. However, I have a new issue with ssh. When I get home I will update this post with the error message. But until I fix that, I sadly cannot remote in and continue my work.

  • April 27, 2017 - Lisp Interactive Sentient Assistant

    This evening I began working on my virtual assistant for my car. Her name is “L.I.S.A.” which, as you can see from the title of this post, stands for Lisp Interactive Sentient Assistant. (I may have been inspired by Lisa from this movie) I would like to have a configurable, voice activated interface for when I am in my car. I would like to dictate to her while driving to work so that I can maximize my efficiency while driving. And then if a song comes on the radio, I would like her to record snippets of audio so that when I get home, she can catalog them. I am using a raspberry pi 2 board with a 16GB microsd card, along with a 250GB 2.5” laptop hard drive, and an asus bluetooth adapter. I am in luck, because my stereo has a usb port, and a 3.5mm jack right on the front so I can plug my pi right into it and she can respond to me over my car speakers. I still need to aquire a usb microphone, but in the mean time, I am going to pair my phone via bluetooth and use that to interact with her. There is so much to be done.

  • April 26, 2017 - Buildbot

    I tinkered with buildbot today. I setup a master and slave instance on my old trusty dimension 4600. I really like how the configuration file is actually just a python script. That being said, I still have a little ways to go before I fully figure out what I’m doing.

  • April 25, 2017 - Artificial Intelligence

    So as I have been reading books on mathematics and learning functional programming with Lisp, I have been trying to find software written with Lisp so that I can practice with real code. I found myself revisiting Festival, a speech synthesis application written by the University of Edinburgh. Up until now, I have been reading and interacting with Common Lisp implementations such as SBCL and ECL. But Festival contains a Scheme command interpreter which I find fascinating. All of this time I have been discovering so much about Lisp, and then I open a door to even more Lisp but different!

  • April 22, 2017 - C Programming Style Guide

    It has been a few days since I have written. I have been rather busy learning and coding. I finally committed, no pun intended, to my idea of forking dwm. I found a fork on google code that had some nice features that I liked and I am using that as my base. There is no sense in reinventing features that are already there. It needs some work though. It is based on an older version of dwm than I am used to. My feeble efforts can be found on github as xwm.

  • April 19, 2017 - Migrating from Subversion to Git

    The company I work for is slowly but surely, transitioning away from subversion in favor of git for our version control system of choice. Thus, I spent my day reading and studying migrating repositories. There is much to take into consideration. In a corporate environment, there are large repositories that span over a decade or more. This makes me wonder, how much of this history do we bring with us? What is important and what can we throw away?

  • April 17, 2017 - Low Level Debugging

    Recently, I have been learning how to compile freebsd kernel modules for use on my macbook pro from work. It’s interesting to see how similar and yet completely alien this system is from Linux. Some of the basics are still there, for instance, by default freebsd does not come with bash. That was one of the first packages I installed. I also miss pciutils, usbutils, and iproute2. Fortunately, two out of three of those packages have ports that can be installed, but sadly, iproute2 is linux only. The same can be said for iptables. Freebsd has pf and ipfw for setting up a firewall.

  • April 14, 2017 - Strife

    I had a very fulfilling day today at work. I was working in a codebase that everyone in the department dreads. It is massive and hideous, with many faults around every corner. Legacy codebases, both fascinate and terrify me. There is much to learn from history. Thus the saying by George Santayana,

  • April 13, 2017 - X11 Forwarding

    Today I setup x11 forwarding on my freebsd macbook pro. I think I am in love again. On the days that I work from home, I simply put my work laptop on my desk, turn it on, and then ssh into it from my desktop pc. I have way more screen real estate and I can use my keyboard and mouse with out any trouble. But if I need to go on a work specific website, I had to use the laptop because I can’t have work credentials on my personal machine. Most people know about remote desktop, but I don’t need the complete desktop, just one simple google chrome window. So I left my laptop open, and using the $DISPLAY variable, could launch chrome from my desktop over ssh but that’s as close as I could get. That is, until this day.It literally took me less than five minutes to configure.

  • April 12, 2017 - FreeBSD

    On Monday, I installed FreeBSD on my macbook pro that I got from work. I have most of my drivers in order, and it is basically the same desktop experience that I had going in Arch Linux before. In many ways, I actually like it more. I did, however, run into an issue with using my Keyspan USB to Serial Adapter. I use it almost daily so it is an high priority for me to figure out how to fix it. I also still need to install and configure the driver for wifi.

  • April 11, 2017 - Tau

    I have slowly been reading “The Grapes of Math” By Alex Bellos over the last week or so, and I learned something new today that I thought I would share.

  • April 11, 2017 - Seeing Red

    As a professional programmer, I spend my entire day sitting in front of at least one, or more digital displays. Now while we are encouraged to get up and take frequent breaks, and while we also have a daily walk around the building at 3 o’clock, I am afraid my poor eyes are still suffering from all the bright blue light. To compound the matter, I then come home and write this journal, and “play”, as I call it, with different applications and programming languages. I simply spend way too much of my time on computers. Oh but it is marvelous! However, I have been suffering from eye strain as of late, and I am reading up on ergonomics and best practices to keep this frail, and feeble physical body from premature failure. I spent much of my time last year in the hospital, and around doctor, and it was not an enjoyable experience. Regrettably, due to my genetics there is only so much that can currently be done with crohn’s disease, however, I am going to do my best with what I have.

  • April 10, 2017 - FreeBSD

    For about a year or so I have been using gentoo on most of my computers. At the time, I had just received an old dell dimension 4600 with a pentium 4 and 4 gigabytes of ram. I received it from my soon-to-be friend Jose and it came with windows xp on it. I am familiar with pupply linux, tiny core linux, and even DSL, but I did not want to use one of those distributions. I wanted to use arch linux. One big problem, Arch is about to end support for it’s 32bit systems. That really bothered me. I have been using Arch for a very long time and I really enjoy it’s simplicity and minimalistic qualities. But for my usecase, I simply could not use it. I had been meaning to try gentoo for a very long time but it seemed very daunting. I use this little machine as a simple server for testing and developing simple applications. So I just jumped in to gentoo. And oddly enough, it wasn’t very hard at all. Maybe I was just lucky, but I completed my first install without any hiccups. Although, it did take me a couple of days. I setup all of my USE flags and studied the handbook and found what packages I wanted during the day and then after work, right before bed, I would emerge –update –newuse –deep @world and it would be done by morning. Fast-forward to today, and I am running gentoo on all of my computers.

  • April 09, 2017 - New Books

    Today my good friend, Trevor Brown, gave me a plethora of books on programming. All of them are older and some are more than likely antiquated. Most of them are books on Unix programming, two in particular are volumes on Motif and the X Window System! There is also one on C++, and another on Java (There must always be one bad apple but these are books and therefore will not spoil the rest). But the best book I received today was “The C Programming Language” written by Brian Kernighan and Dennis Ritchie. Though worn, and a bit aged, this is a treasure that I will cherish for years to come.

  • April 07, 2017 - Functional Programming on Android

    I thought I’d share a presentation I discovered about Android development using Closure and a REPL environment.

  • April 06, 2017 - Virtual Networking

    Today was yet another day studying and working with virtual networks in Qemu. I too seek to learn the way of the packet and upon my research I stumbled onto a great resource for learning tcpdump.

  • April 05, 2017 - Install Debian Over Serial Console

    Today has been really exciting for me, for it was the first time that I have ever installed an operating system over a serial console. Normally, I build images and then they are flashed to the box and then tested, but I am working on a custom build using debian as a hypervisor for openwrt virtual machines.

  • April 04, 2017 - Erlang

    Over the past few days I have been cutting my teeth on erlang for an up and coming work opportunity. I enjoy being challenged and learning new things while at work. Money will come and go, but knowledge and wisdom will stay with you for a very long time. It’s definitely an interesting language with a rather strange syntax compared to other programming languages that I have used.

  • April 03, 2017 - Mathematics for Programmers

    Tonight I have begun learning List Flavored Erlang. I have some work opportunities that require erlang, and for my own personal pleasure, I decided to find a lisp built with erlang. It is a rather intriguing project. And regular erlang libraries are compatible so I can play and be practical all at once! For my particular purposes I am trying to implement a distributed dns system for my home network. The erlang virtual machine is a marvelous creation that has roots in the telecommunications industry and therefore I believe it to be a useful tool for myself, being in that particular field.

  • April 02, 2017 - The Trinity Foundation: Math and the Bible

    Over the past few days, I have been studying mathematics, physics, and logic in hopes of becoming a better programmer. This has lead me down the path of some of the great scientific minds of our time, particularly Albert Einstein. I have been learning about his “Theory of Relativity” but I have also begun to study his early life and personal relationships, and also his views on religion and philosphy.

  • April 01, 2017 - Libray Books

    Here is a list of items that I checked out at the library today,

  • April 01, 2017 - Independent Study

    Today I went to one of my favourite places, the library, and picked up many books on mathematics and physics. One of such books that I began reading is Einstein’s Theory of Relativity by Max Born. I only read the first chapter on “Geometry and Cosmology” and part of the second chapter “The Fundamental Laws of Classical Mechanics” (up to page 35), and I must admit that I am having a hard time comprehending the concepts. But then I am reminded of Proverbs 13:20, “He that walketh with wise men shall be wise..”, and so I must perservere so that I may overcome my foolishness. I also grabbed quite a few other books which I will post shortly.

  • March 31, 2017 - Towards the perfect ruleset

    I was browsing the internet looking for more quality documentation on iptables and I stumbled across this paper entitled “Towards the perfect ruleset” by Jan Engelhardt. It is a great resource for setting up a firewall in Linux.

  • March 30, 2017 - Port Randomization

    I stumbled onto this resource while I was doing some research this morning. Port randomization is an interesting concept.

  • March 30, 2017 - More iptables

    So I spent my day working on virtual networking for Qemu and firewall rules and I started reading about the linux kernel tcp stack. Further down the rabbit hole, I found an interesting topic - Why Do We Use The Linux Kernel’s TCP Stack?.

  • March 29, 2017 - Emscripten failing

    So this evening I attempted to setup emscripten on my laptop and I had quite a few mishaps, more than likely due to my own misguidedness. I must admit that I did not work on it for very long but I do believe that I am missing a step somewhere. I attempted to use the binary package for my linux distro, then downloaded the latest stable version from the website, and finally the latest repository on github, but all three of them were not working for me. Every time I ran emsdk activate it crashed. Perhaps it is my environment? In any case, there will be more of this foolishness to follow.

  • March 28, 2017 - Web Assembly

    I am going to Atlanta for the next few days for work and during my time there I would like to focus on learning about web assembly. Particularly, I would like to build a static site generator using webgl that emulates a tiling window manager. Here are a few references that I have found to help me in my endeavors.

  • March 27, 2017 - Project Neon

    Today I was troubleshooting an issue with building a new openwrt image. I was having issues with some custom patches during the build process. I still have yet to figure it out.

  • March 26, 2017 - Audio in Chroot

    I had an audio issue today while gaming in my arch chroot. I cannot “share” my sound device between the gentoo host and the arch linux guest. If I an application using my sound card in arch, I could not play audio from outside of the chroot. Also, I have a custom script in /usr/local/bin that I use to invoke my chroot. Part of the script grabs the DISPLAY variable from our host and passes it to our chroot. But for some reason, when this happens, the host loses track of what $DISPLAY is.

  • March 24, 2017 - Iptables

    Today I was working with iptables. Here are a few tips that I found that helped me out.

  • March 23, 2017 - Choose A License

    As I have been exploring the wonders of free and open source software, I have come across different philosophies surrounding different software projects. There are so many different licenses that all seem to promote the idea of “freedom” but which one is the best?

  • March 22, 2017 - Scientific Method and Software Development

    Today is a another day of living in this incredible world that we call home. The more I study software, the more I start to see abstract patterns and methods that don’t just apply to software but to the rest of life. I believe I have started on a path of unraveling the mysteries of our world. People who do this for a living are called “Scientist” so by definition I believe that I am slowing becoming more of just a developer and a programmer and more of an engineer and a computer scientist. Some might say the difference is just semantics but I think it’s more than that. You can write code all day and still have no interest in what’s going on underneath the surface. Higher level languages are great because they enable us to rapidly prototype ideas and build really cool things in a short amount of time. But the pursuit of a deeper understanding may take a life time. Here is an example of my typical day at work, building software.

  • March 21, 2017 - Mechanophobia

    I missed the opporunity to post my daily progress yesterday do to a car accident so I will briefly summarize.

  • March 19, 2017 - Pulse Audio

    Here is a quick update on my arch linux gaming chroot.

  • March 18, 2017 - Gentoo, ALSA, Gaming

    Today I made great progress! I finally got my soundcard working in gentoo! Well, kinda.. The headphone jack still isn’t working but my speakers are so I’m pleased for now. I am just amazed at how simple linux is. I’ve heard the saying “Everything is a file” but today I had a revelation. I was having a audio issues in my arch linux chroot, and I just went into /proc/asound/ and changed the permissions on my audio card manually. Literally EVERYTHING IS A FILE! Also, I was able to play Star Wars: The Old Republic again tonight for the first time in awhile. It seriously feels like christmas! I did come to the realization that I need a better graphics card. Many of the more modern games that I own will not run without a proper video card. I just have a simple low power radeon card with 1gb of vram. I think next on my list is a 4gb card. I have been reading about graphics cards with proper linux drivers and I have seen a lot of talk about nvidia. Their drivers are proprietary but from what I’ve read they seem to be very well made.

  • March 17, 2017 - LXC, Steam, Chroot

    Tonight I worked on my arch linux chroot install of steam. I am still trying to figure out my audio on this system. It’s pretty frustrating I have to admit. Also I found a little work around for permissions for the graphics card inside chroot. Regular windows are running but when it comes timeto launch a game half of my games are failing and the ones that succeed are dreadfully slow. I enjoy figuring things like this out but I really just wanna play some games this weekend!

  • March 16, 2017 - Steam Chroot

    I still need to get code highlighting setup in jekyll.. In the mean time,

  • March 15, 2017 - Kernel Routing and Steam Chroot

    Well my plight continues. Today I came to the realization of my errors in deleting the default route. Once we have reconnected after failing over, there is nothing in place to re add our default route! So I decided to simply reorder our default route metrics. Our wan route has a metric of 100 and our wan2 route has a metric of 200 so on failover I just replaced the wan default route metric with 300.

  • March 14, 2017 - PI Day

    Today is pi day, hence the mandatory bash script. It requires gnu bc, and figlet to run.

  • March 14, 2017 - OpenWrt, mwan3, xrandr

    Today I built a couple new openwrt images, with my own custom mwan3 fixes for failover. I added a function that will delete the default route from our kernel routing tables and not just flush the wan routing table. I am not sure what the difference between those things are but it seems to be working for now.

  • March 13, 2017 - Static routing with the linux kernel

    Here is a quick overview of my findings on static routing in the linux kernel from today.

  • March 10, 2017 - CIDR, Captcha, Tumblr

    I have been mucking around in kernel routing tables all day at work. Every day in fact, for the last week or so. But it is so good because I have been learning so much. I learned about CIDR and static routing tables and bit masking. I knew these things on an academic level. I remember studying for my Comptia A+ exam in high school and learning about subnet masks and such. But now I am actually building and debugging software that uses it. It’s very challenging but also very rewarding.

  • March 09, 2017 - Gentoo Rap

    This morning I had a lovely meeting on google hangouts with some of the gentoo developers. I asked about contributing to the Gentoo RAP Project and I think I have a pretty good idea of what I can do to help. For my fire phone, The first step will be to prepare the kernel for a glibc system. They recommended SailfishOS kernel configs as a good starting point to reference. I also found this post on the xda developer forums about building a stock kernel using Amazon’s source code.

  • March 08, 2017 - Tumblr Import?

    I tried importing all of my old tumblr posts using the Jekyll-Import plugin.

  • March 06, 2017 - It's alive!

    I finally got around to restarting my blog through jekyll! After dealing with my tumblr being deleted for an unspecified reason I got out out of the habit of writing my blog but I just can’t live like that. I love to express myself by writing. It helps me collect my thoughts and to share what I have been learning about recently. I still have a lot to do to get this website the way I envision it but for now I am really excited to be back online!

  • December 24, 2016 - git-stash

    Are you a perfectionist? Do you have worry about committing broken code? I am and I try to only commit after getting my project working. This is a dilemna when switching between branches and changing context frequently which often happens to me at work. At work we use subversion and I do not know of a way to stash commits like you can do in git. I find this feature of git very useful.

  • December 22, 2016 - sredird


  • December 21, 2016 - Formatting Date & Time in Linux

    By default, many linux programs from window managers such as dwm, i3. openbox, to desktop environments like XFCE, to desktop widgets like conky all seem to use a 24 Hour time format for the system clock. Until today, I always googled ‘How to set time format to 12 hour format’ and then found some forum thread, copy and pasted the information and then forgot about it until the next time I needed it. I’m sure many modern programmers will agree that Google, or Stack Overflow is their primary source of documenation. But recently I have been trying to dive into the linux man pages as my first source before going online so that I can get a deeper understanding of how things work.

  • December 19, 2016 - Setting Up Gerrit With MYSQL

    As of Gerrit 2.13.4, when setting up a new instance with mysql, be sure to set explicit_defaults_for_timestamp = true in your mysqld.cnf located at /etc/mysql/mysql.conf.d/ in Debian based distributions. Then to initialize gerrit we will need to add a service to systemd. Copy the script below to /etc/systemd/system and then to enable it we will use

  • November 29, 2016 - Python CGI Scripting With Apache and Gentoo

    This is really simple to get setup.

  • November 28, 2016 - Dumping data from SQLite using the CLI

    First we will open up our database.

  • October 21, 2016 - Black Perl
    BEFOREHAND: close door, each window & exit; wait until time.
        open spellbook, study, read (scan, select, tell us);
    write it, print the hex while each watches,
        reverse its length, write again;
        kill spiders, pop them, chop, split, kill them.
            unlink arms, shift, wait & listen (listening, wait),
    sort the flock (then, warn the “goats” & kill the “sheep”);
        kill them, dump qualms, shift moralities,
        values aside, each one;
            die sheep! die to reverse the system
            you accept (reject, respect);
    next step,
        kill the next sacrifice, each sacrifice,
        wait, redo ritual until “all the spirits are pleased”;
        do it (“as they say”).
    do it(*everyone***must***participate***in***forbidden**s*e*x*).
    return last victim; package body;
        exit crypt (time, times & “half a time”) & close it,
        select (quickly) & warn your next victim;
    AFTERWARDS: tell nobody.
        wait, wait until time;
        wait until next year, next decade;
            sleep, sleep, die yourself,
            die at last
    # Larry Wall
  • March 20, 2016 -

    Cyberpunk website

  • March 17, 2016 - Gurren Lagann motivation quotes for linux message of the day

    Listen up, Simon. Don’t believe in yourself. Believe in me! Believe in the Kamina who believes in you!

  • March 15, 2016 - just got a raspberry pi for pi day yesterday

    Just got a raspberry pi for pi day yesterday.

  • March 14, 2016 - what a great way to celebrate pi day

    What a great way to celebrate Pi Day!!!!!!

  • February 18, 2016 - Welcome to Gentoo is Rice, the Volume goes to 11 here.

    Welcome to Gentoo is Rice, the Volume goes to 11 here. This is probably one of the best websites I’ve seen in awhile.

  • February 06, 2016 - Amazon Fire Phone

    The Amazon Fire Phone was pretty much a disaster for Amazon. It was hyped up pretty big but it was just too expensive and fire os had major compatibility issues with regular android apps. The hardware is very nice though. I got my wife a fire phone for $80 bucks on Newegg after her stupid iPhone 4S finally gave up on life. I really liked it when she first got it. The camera is nice, the 3D effects were interesting, but Facebook never worked properly, there was no Google Apps or even good alternatives to them. It just seemed lacking. But that’s when Cyanogenmod came to the rescue. Take an almost $500 phone, with crappy software and flash a custom rom and you have yourself a nice phone. The only version of CM out there for the Fire is 11 so it is kind of old but it works very well.

  • December 16, 2015 - My Website

    Today I completely rewrote my website! It now uses the bootstrap framework making it completely mobile friendly! I had a mobile style sheet before but it had so many issues and I got tired of it constantly breaking. I also had issues with the portfolio section and the grid. The framework fixes all of that leaving a nice pretty website! Next I am going to reskin this tumblr blog..

  • November 26, 2015 - Things Programmers Shout #344


  • November 18, 2015 - Using Nightly Builds

    I have an old moto g first gen that I got a few years back. It’s a pretty decent little phone considering the price. First thing that I did when I bought it was flash the stock rom. I used the slimkat rom on it for a couple of years and it worked pretty well with only a few bugs. Ever since lollipop came out I have been dying to upgrade my phone but the slimrom project has been kinda dead for awhile. So I decided to try cyanogen mod 12. I have used CM before and it’s a great rom. I prefered slimrom because of the minimalistic feel it had and the pure black theme that it came with by default. I searched the builds for my phone but all they had were nightly builds. That kinda spooked me a little. I didn’t want to use something that was unstable. So I stuck with slimkat and grudgingly waited to see when I would get a stable build of CM12. Well about a week ago, my wife got a new phone and I was so jealous of the new software that came on it so I decided that I would just try the nightly builds and if they didn’t work then I could always go back to slimrom. To my surprise, I have had no issues with nightly builds and my phone is looking pretty sick.

  • November 04, 2015 - Vim Cheat Sheet - English

    Relearning how to use Vim! It’s been a long time. I forgot many of the hotkeys.

  • October 30, 2015 - Bash Scripting for Automation

    Today I wrote a simple bash script for automating package installs. It uses an array and a simple for loop to download each package with apt-get. I like to work off of a live cd of linux when I am at the office and I am using someone else’s work station. That way I can have a consistent environment no matter which computer I use, not have to disturb anyone’s personal data, and also, when I log off I won’t have any of my data saved on their machine. It keeps things clean. The only downside is, every time I boot up from my thumb drive I have to reinstall different programs that I use. Well one simple way to help automate this process is to use a bash script to automate the installation of those packages.