ArchLabs Linux Review (and tips)

🔖 linux 

Today I’m writing a review of the ArchLabs linux distro. Have you ever wanted a badass Arch linux install, complete with an openbox window manager, conky, and dark gtk themes, worthy of the top spot on /r/unixporn? Of course you do, but if you’re anything like me, you’re a busier person than you were when you were 15, and you no longer have the time, or the inclination.

Enter ArchLabs, elite Arch Linux for the lazy:



A Not so Dramatiq Change: A Celery Alternative

🔖 code  astronomy 
Both Celery and Dramatiq are asynchronous task processing libraries. You’d use them when you want to be able to parallelize Python code, and you need more than the multiprocess module offers, like persistent distributes queues, automatic retries, and result handling. I’ve been using Celery for almost my entire career, and it’s treated me well. Recently I’ve started to become frustrated with it. There have been numerous regressions that have broken my code, as well as some totally inexplicable issues in the last few months (that last one is the reason I started looking for alternatives). Read more...

Imaging the Space Tesla

🔖 astronomy 

Back in the beginning of February SpaceX launched their Falcon Heavy rocket to much fanfare and excitement. This test launch also had a test payload: Starman, a mannequin in a prototype SpaceX space suit behind the wheel of a cherry red Tesla Roadster. Spaceman was successfully inserted into a heliocentric orbit and there he’ll remain for millions of years.

For a few days Spaceman was close enough to earth to be visible by professional grade telescopes. As an employee of a company that builds and deploys a network of robotic telescopes I had to see if I could get an image of this guy.

Dr. Tim lister and I both set up observations, but of course Tim’s (who studies near earth objects) came back in better quality. I did some stacking and scaling and ended up with a .gif. Ladies and gentlemen, I present to you Starman in 9 parts:

Starman GIF

The image consists of 9x32 second exposures on one of our 1 Meter telescopes in Cerro Tololo, Chile. The images were captured around 2018-02-09 08:43 UTC.

See if you can find the faintly visible galaxy in the top left corner of the image.

Godspeed, Starman.

Line by Line Simple but Usable VIM Config

🔖 code 

VIM is a great editor, but it’s defaults are a little lacking. Fortunately it’s also extremely configurable. This leads many people (myself included), to scour the internet for lines of internet wisdom to copy in paste into their .vimrc files until they get something that works for them. Before you know it you have 300 lines of unintelligible gobblegook. In this post, (which I’ve started writing in vanilla vim) I’m going to go line by line through individual config items to construct a simple but usable .vimrc without too much magic or frills.


GNOME Notifications for Remote Weechat

🔖 code 

I ❤ Weechat. It’s my IRC client of choice. But I also use it for gtalk and Slack. All my conversations in one convenient interface. Even better, I run it in a remote tmux session so I can pick up wherever I left off from anywhere.

The only annoying thing about this setup was the lack of real notifications for private messages or mentions. So I wrote Weelisten.


Weelisten is a small python script that leverages Weechat’s relay protocol, python 3 asyncio and libnotify so I can get awesome native notifications on my desktop.

Sounds useful? Get it on Github

Turn Off Mobile Data

🔖 other 

There’s a lot of talk on the web about the dangers of always on technology and addictive social media. I’m here to give you a life pro tip.

Turn off mobile data.

You’ll have wireless in most places anyway, but not being connected outside of wifi means less distractions on walks, at dinner, or in the movies. You can still turn on data if you really need it, but the barrier is high enough that you’re unlikely to use it to get a quick hit of reddit.

I started doing this when AT&T made me give up my trusty nokia dumb phone and I got a smart phone. Seems to work great.

Too Far, Too Fast: Backpacking the Manzana Hurricane Deck Loop

🔖 Backpacking 


Labor day weekend, the official start of summer. Time to bust out that barbecue, unfurl that tent! While many people in America are celebrating the beginning of the outdoor season, some of us are squeezing in our last few adventures before the end of it. While not technically closed during the summer the Los Padres National Forest back country it not a place you generally want to be in the middle of July. Water is scarce to non-existent, temperatures hang around the triple digits and as someone once said: “the ground itself becomes a furnace”.

So when the forecast for the weekend showed mid 70s temperatures and even some cloud cover, Andrea and I took the opportunity to head out to the San Rafael Wilderness to give a few nights backpacking and a walk on the infamous Hurricane Deck a shot.


Throttling Specific Actions in Django Rest Framework Viewsets

🔖 code 

If you are using rate limiting with Django Rest Framework you probably already know that it provides some pretty simple methods for setting global rate limits using DEFAULT_THROTTLE_RATES. You can also set rate limits for specific views using the throttle_classes property on class-based views or the @throttle_classes decorator for function based views.

What if you are using ViewSets but want different throttling rules to apply to different actions? Unfortunately DRF provides no official method of doing this. Luckily we can accomplish this functionality without too much fuss using get_throttles().


Dockerize! Lest you forget

🔖 code 


I host quite a few sideprojects on my VPS. They range from static Jekyll sites (like this one) to large web applications. There’s even some wordpress hiding in a corner, disgraced and neglected.

Despite the fact that none of these sites are actually useful for anything, they still need some poor bastard to keep then running. Over the years I’ve collected quite the assortment of nginx, uwsgi, php, apache, supervisor, and other configs. All of them written at various levels of understanding, none of them tracked anywhere, all of them confusing and terrible.