RSSAmplifier

Blog

asktherelic.com

Recent content on asktherelic.com

asktherelic.comRSS feed ↗85 posts

Latest posts

Fast Food, Fast Data

Recently, while waiting in the drive-through at McDonalds, I started thinking about how much I was really spending there. Mint used to have this information readily available, and my credit card company’s website probably has a spending chart somewhere, but I also knew that McDonald’s sent pretty detailed email receipts. It had become a common stop for me, and while this could have…

Connecting Apps with the Tailscale Kubernetes Operator - Part 2

In Part 1, I explored installing the Tailscale (TS) K8S operator and adding an Ingress object to make a K8S Service available to the TS network over HTTP. In this post, I want to cover different Egress and Ingress options and ways to connect apps on the TS network. For more context, while I’ve been experimenting with kind and a virtual Kubernetes (K8S) cluster, I run a personal server…

Exploring the Tailscale Kubernetes Operator - Part 1

I’m a big fan of Tailscale (TS) and the ease of use it brings to using Wireguard to securely connect servers and apps. They’ve recently been working on a Kubernetes Operator that makes it easy to integrate TS into Kubernetes (K8S). As I’ve personally been moving my internal self-hosted apps and public web apps to K8S, I’ve been curious to integrate the two. Two big features I’m interested in and…

Quarterly Calendar Project

Starting out during my Recurse Center retreat, I wanted to visualize and plan my 12 weeks of time. I’ve been working on “daily streaks” for habit building and wanted a visual tracker for my habits. Building a printable quarterly calendar seemed like a good initial project. Several other printable calendars I’ve found recently, that were inspirational: https://davidseah.com/node/compact-calendar/…

Joining Recurse Center for W2 2024

I’m thrilled to announce that I’ve joined the Recurse Center for the Winter 2 batch, where I’ll be immersed in a 12-week community-focused retreat dedicated to programming and self-improvement. In their words, it’s a “retreat where curious programmers recharge and grow.” I’m fortunate to be in a stable financial position, allowing me to step outside my comfort zone and explore…

Hosting with Dokku

Having a platform to share my thoughts and work has always been important to me, even when I only have time to use it sparingly. I still like blogging. This blog also has been a great learning opportunity and with its latest upgrade: it’s now running 100% over HTTPS (thanks to Let’s Encypt) and being being deployed by Dokku and Docker. Dokku? Dokku is a free replacement for Heroku, that you can…

Testing the Layers of Your Application at PyConUK 2016

This weekend, I presented at PyConUK 2016, summarizing my recent experiences testing Python webpapps and libraries. I’ve been writing Python for about 8 years now, mostly on a smaller scale, but the last few years at Yelp have been really interesting to see testing done at a larger scale. Testing has become really important to me, as it helps all the other pieces of your software fit…

Upgrading My Dotfiles To Symlinks

Tinkering with my configuration and dotfiles is a never ending hobby. After finding Github’s guide to dotfile configurations, I evaluated several of the repos and decided to upgrade my own dotfiles. For the longest time, my home directory (/home/askedrelic on most systems) has been a git repo. This has mostly worked but has several problems: everything writes to your home directory; you wind…

Another Year, Another Set Of Backups

You might not be able to call it a New Years Resolution anyone, but it’s not too late to backup everything you did online last year. I usually get around to doing this in December/January over Christmas holiday, but this year I have been slacking. Maybe you have too. It’s not too late, make a backup! Files I have a couple services that I use for my documents, my writing, my photos, and…

Practical Lessons Learned From Testing

After recently joining a much larger company and taking a look at my team’s product from different perspectives, I’ve found new value from testing. While running a small startup exploring a business market, trying new features was a daily or weekly affair; you have to make tradeoffs with code quality, feature set, or speed of delivery. Code testing, especially in quantity of unit…

Streaming Small HTTP Responses with Python

For a recent hackathon project, I wanted to setup a client/server configuration, all in Python, so that the server could run shell commands and stream the output back to the client. The client was a Raspberry Pi and the server was my laptop, which already had my real project setup. My first thought was to do this over HTTP, with Requests for the client and Bottle for the server. I started writing…

An Exploration In Selecting Things

Sometime last year, I remember finding a code snippet to help switch between Python virtual environments, which I added to my .bashrc. menuvirtualenv() { select env in `lsvirtualenv -b`; do if [ -n '$env' ]; then workon '$env' fi; break; done; } alias v.menu='menuvirtualenv' 12:54:26 pcoles@peters_air:~ > v.menu 1) category-cms 2) collect 3) mrcoles 4) readmd #? 3 (mrcoles)12:54:33…

The Birthday Surprise

It has now been several weeks since my twenty-seventh birthday. A birthday is generally always a reason to celebrate, but this birthday, my startup was acquired by Yelp several days beforehand, which makes this birthday extra special! Startups are hard work. Finding a market, building a product, growing that product, figuring out which corners to cut, or not cut; it’s all hard work, even…

A Newer Branch

This blog is now being built using Middleman, a well documented and quite flexible Ruby static site generator. I had a pretty good run with Blogofile, the previous engine used to build this blog: over three years. I’m well aware I spend too much time bike-shedding and re-tooling sometimes, but the Ruby community keeps pushing things forward and Middleman has some great features worth…

GoRuck Light Experiences

Several months ago, I had the pleasure of completing a GoRuck Light event. It involved a seven-ish mile hike through the Presidio area of San Francisco, getting a little wet, and finding some new limits for what I know I can accomplish. What is GoRuck? For a little backstory, GoRuck is an American company founded by some ex-special forces folks (the Cadre) that makes pretty durable backpacks and…

Write The Docs 2013

There is definite value to moving where you work and frequently changing your perspective on your work, when you are looking for ideas. I have gotten some of my best ideas recently from conferences, traveling to PyCon in Santa Clara and this past weekend, Write the Docs in Portland. The What Write the Docs is a conference organized to talk about documentation, for those who document, organize, and…

PyCon 2013 Wrapup

This year was my second PyCon and I wanted to share some thoughts from the experience. Although it is quite a large event running well over a week, I attended for just a few days and took away a good amount of information. The two big themes I noticed, maybe just from the selection of talks I attended, were Python 3 and IPython. Python 3 Python 3 was originally slated to have something around a…

Storing Command Line Passwords In Keychain

Over the last year, I’ve made the effort to get most of my passwords into 1Password. It’s pretty nice to only have to remember one password, along with easily with increasing your overall online security. Whenever another bank or website gets their password list stolen, I’m not concerned because my password for that site was “0RLrA4GQeGlRZR” or some other gibberish…

Exploring GitHub READMEs

Over the last few years, I’ve integrated and used many different open source projects, looking at a wide range of code quality, documentation, and project organization. Code is just one part of a project, first impressions matter, and especially when deciding to add a dependency to your project, you want to judge a project on many different metrics. READMEs are a big first impression. They…

Catching Up With Homebrew

Homebrew is pretty sweet. I’ve been very pleased with easily keeping my OSX system up to date since it was released; no more Fink/MacPorts, it’s automatable, it just works (well, as long as you keep installing the latest XCode or OSX Command Line Tools). You are using Homebrew to install and update all your programs, right? If not, checkout the homepage now. However, when just…

Year One At A Startup

September was recently my first year at SeatMe, along with my first full year living in San Francisco. It’s been a great year as a programmer, doing some awesome things at a startup that I love, and for life in general, moving closer to many friends in the area. As part of this milestone, I wanted to reflect on what has been accomplished and things I’ve learned along the way.

Book Reviews - The Tipping Point And Made To Stick

Two for one special today. My reading backlog of late has been oriented on some well known books covering ideas; how they spread, how they are shared, and how you can get your ideas to stay in someone’s head. I am always interested in improving how I can communicate with world around me and these books offer some great viewpoints on that subject. The Tipping Point Malcolm Gladwell ISBN:…

Book Review - The Design Of Everyday Things

The Design Of Everyday Things Donald A. Norman ISBN: 0465067107 What’s The Point? An interesting look at the design of doors, computers, and things that we interact with daily. The book breaks down the major components of design and how they work. I learned about affordance, which the quality of something to do a task; a door handle affords being opened. The book was an interesting mix of…

Django Deployment Experiences with SeatMe.com

Wednesday night I gave a presentation on how I deploy SeatMe.com @ the Life360 offices in SF. It was pretty fun and had a good turnout! Here’s that presentation: One other idea someone had mentioned afterward for running a local PyPI was to run a Squid proxy in front of PyPI and set a 1 year cache on everything. The more I think about, it’s pretty ingenious and simple, versus running a…

Journal 0.3 Released

After some recent emails from new users of Journal, I’ve released version 0.3. (Journal is a CLI tool to help with keeping a work/personal journal). If you have Journal installed with pip, you can $ pip install -U journal What’s New This version has been a long time coming, pulling in some patches from my friend Drew and changing how arguments passing to Journal are handled. Here is…

PyCon 2012 Planning

I’m really looking forward to attending my first PyCon this weekend. After moving to SF, it’s great to have so many cool conferences right in my backyard! It’s sold out this year, which might be a first? The talks look great, but I’m just as hopeful to meet a bunch of cool people and trade ideas on projects and Python. After writing Python for around 5-6 years now,…

Interesting Trends in Vim

Something I’ve noticed lately with vim plugins are that miniscripts and smaller vim tweaks, any sort of vim functionality, are being packaged and shared as a proper vim plugins via git, not just big IDE style plugins. This may not be an entirely new idea, but I think it’s becoming more of the norm to use pathogen and git submodules to share everything vim related, rather than copying…

Backup Everything You Did Last Year

A habit I’ve developed over the last few years is to backup all of my online artifacts and identities once the year ends. Maybe I’m just a bit paranoid, but in this day and age with more and more things being stored in the cloud, control and access to your data is being shifted to faceless servers and scripts that can disconnect you quite easily with little recourse. Whether it’s…

2012 Python Meme

I wanted to do some kind of reflection this year, so may as well hop on the bandwagon. What’s the coolest Python application, framework or library you have discovered in 2011? Fabric. For a good six months of this year, I was managing everything server-wise at my last job through Fabric and learned a good deal about it, hacking in some features and giving a presentation on it at the local…

Book Review - Design For Hackers

Design For Hackers David Kadavy ISBN: 1119998956 What’s The Point? Design, layout, fonts, and color theory for websites and web applications. Kadavy covers all the main points of design, how design affects how we use things, and through understanding your design decisions, how you can make better decisions. How Was It? A useful and interesting read! The hacker in me likes well organized and…

Version 1.0 of Comcast Bandwidth Usage

After receiving some patches on GitHub this weekend and renewing my interest in this project, I’ve decided to tag a 1.0 version of my Comcast Bandwidth Usage script! After being stable for atleast a year and combined with these new feature, it’s probably worth finally tagging a stable version. What’s new in 1.0? Android Notifications of your usage via Notify My Android The…

Unix Style Cron on Heroku's Cedar Stack

I’ve been playing with Heroku for a project and wanted to use the default cron addon to run a Python script and only email if that script printed anything to stdout; regular Unix style. This repo is my attempt that. Overall, I definitely accomplished what I set out to do! I’ve been very impressed with Heroku’s Cedar stack and how flexible it is. It’s awesome being able to…

A Return To Normal

The last few months have been a bit hectic: a few weeks traveling through NYC and DC, a new job in San Francisco, a cross country drive, and a few apartment moves. Thankfully, my life has finally reached the point where I am comfortable again and can start coding and writing in peace. My new job has kept me quite busy, but what little free time I find, I try and make good use of.

Journal 0.2.0 Released!

I’m releasing v0.2.0 of Journal today, a Python command line tool that I’ve created to help with keeping a journal for work/personal stuff! Check PyPi for the latest or do an upgrade install with pip, pip install -U journal. Main changes include: Support for viewing entries on a specific date and over a specific time period The ability to create multiple entries at once from the…

Journaling

I’m releasing 0.1 of Journal, a simple Python CLI tool to help with keeping a journal for work/personal stuff! Inspired by Peter Lyons’ article on career development, I decided to write up a script to help manage things. The idea from Lyons’ article is to keep a chronological log of everything you do at your job. This mirrors my own experiences with working so far: keeping…

PyOhio2011

I attended PyOhio this past weekend, a great Python conference which I was pleasantly surprised existed! After moving to Pittsburgh last year, I’ve been looking around for meetups and ways to meet other developers. I found Ruby, Javascript, and Python user groups but this was the first major conference I’ve seen in the area. I attended with a friend I met from my local Pittsburgh…

Managing Vim Buffers

Buffers are Vim’s underlying way of managing text and perhaps a little confusing to work with at first. Most GUI text editors have a direct “one window to one file” correlation. You can open multiple documents and until they are saved as disk files, they just exist on screen. Most times when I’m using Vim, there is only one window open, but I am working on multiple files…

Fabric for Python Automation

I gave a talk earlier tonight at the local Python usergroup on Fabric, a Python library for “application deployment.” I’ve mentioned Fabric before on here, documenting how to create dynamic Fabric commands.The presentation went well, but I was most interested in the reception of the talk and how I targeted the talk. I gave a talk earlier tonight at the local Python usergroup on…

Weekend Python Hacking

I’ve been able to get some time and focus this weekend to hack on a few Python side projects. In the sense of learning and self documentation, here are some things I learned: Know the difference between __str__ and __unicode__ (and __repr__). Don’t put Unicode in your str unless you want random unicode exceptions. An interesting snippet to get the best of both worlds: def…

Vim Plugin: Tagbar

Continuing with upgrading and explaining my Vim setup, I’m going to cover Tagbar and TagList today. Both are plugins that provide high-level views of your source code at a class and function level, similar to Eclipse, Visual Studio, or other IDEs. The view is available in a quick toggle sidebar, which you can sort and use to jump around in your source file. Both plugins make use of Ctags,…

The State Of My Vim Configuration

I’ve grown to become a huge Vim fan over my years of programming, probably beyond what most people would call normal. I think my interest in Vim stems from my interest in the tools that I use to code; I appreciate the manner in which I write code almost as much as the code I write. In the craftsman philosophy, I’m a big fan of functional tools that serve their purpose well, CoolTools…

Simple Sidebar Navigation with Sausage.js

Several weeks ago, a friend linked me to Sausage.js, “a jQuery UI widget for contextual pagination.” I would call it more of a sidebar navigation widget. The example page was intriguing and prompted me to add it to this blog. Requirements My inital goal was based off the CouchDB example linked on the Sausage homepage. I was slowed down by trying to figure out the exact JS and CSS…

Air Speakers For Everyone

Earlier today, the private key from Apple’s Airport Express was found and released, along with some Perl code, finally allowing for anyone to create their own “Air Speaker” without using the Airport Express. With this code, any OSX or Linux computer can now be turned into an AirSpeaker, that any iPhone or iPod Touch, or iTunes, can now stream music to seamlessly. This really is…

On Easily Replacing Text In Vim

Or more specifically: search and replace using the current visual selection. Lately with my job, I’ve been spending more time refactoring old code than writing new code. Refactoring and manipulating code (and text) is something that I think Vim is great at, once you really understand the different modes and motions that Vim has, see Stack Overflow for a good summary. Vim’s Search and…

Toggle OSX Audio Output From The Command Line

I spend alot of time at my computer and with that much usage, have both speakers and headphones for different hours of the day. I was initially physically swapping 3.5MM audio output plugs on my speakers, lotsa actual effort! I then figured out I could plug my headphones into the “rear” speaker output and switch output through the audio control in OSX, much easier! But that was even…

Dynamic Fabric Commands For Managing Cloud Servers

Fabric is a Python CLI tool for interacting with remote servers, that I’ve been pushing at work the last few months. It’s great for organizing simple tasks to run locally or remotely, this blog is even being deployed using Fabric currently! It’s a great tool. The two main ideas of Fabric are that you have hosts and tasks you apply to those hosts. Fabric uses fabfile.py as its…

Shmoocon 2011

I attended my second Shmoocon earlier this month in Washington DC, a conference which I’ve begun to describe to my friends as a ‘hacking and security’ conference. Shmoocon is a wonderful mix of computer security folks, physical security folks (lockpicking), and hackers (folks just interested in how things work). It’s fun to attend and find many examples that prove you…

Upgrading To Blogofile 0.7

I saw recently on PyPI that blogofile, the Python blog engine that builds this blog, updated to version 0.7. This prompted me to upgrade my blog from 0.6 and detail the changes here, since the blogofile docs don’t seem to have kept up. For the most part, this was discovered through trying to build my blog until it worked. I used the the blogofile init simple_blog and blogofile init…

Scraping Comcast's Website and the 250GB Limit

It’s bad enough that I cannot get FIOS at my apartment and am stuck with Comcast cable, but their website is a terrible mishmash of redirects and “preloading” pages, making it near unusable. My only reason for using their website is to verify my automatic billing is setup and that my bandwidth usage is below their 250GB cap. I decided to automate this and through feedback from…

The SSL Redirect Loophole

ssl loop hole redirect? https://amazon.com