Episodic Genius

occurring occasionally and at irregular intervals

Moved to Netlify

I have a weekend between jobs. I left my job yesterday and I’ll fly out to NYC to start a new one on Tuesday. As I leave, I’m realizing it was stifling my creativity. Now that I’m free, I feel it returning and I hope to post with a little more frequency. With some time on my hands this weekend, I looked for a better way to host this site; you know more responsive, easier to manage, and all that.

Merge or rebase? Neither!

This post proposes an alternative to merging and rebasing that will require some enhancement to git to work. As far as I know, this isn’t possible with git in its current form but I think it would be worth the effort to make it happen. I’ve been using git since about a week after it was first available for download way back when BitKeeper pulled the rug out from under the Linux kernel.

Experience with sqlalchemy from_self

I was playing around with a change yesterday hoping to optimize out an extra database round trip. I thought I could accomplish it without having to change the structure of the code at all just by replacing a list comprehension – which triggered a query to the database – with just a query which could be passed directly to the next query. This would save a round-trip and should be less racy.

OS X DNS Mystery

DNS on my MacBook Pro has been a mystery to me. But, I can figure it out most of the time after a little bit of digging. This time, I have given up for the moment after spending too much time on this issue. The Problem This started sometime during the day on March 1, 2016. Everything was working before. I’m not aware of any updates to the OS or anything I did.

Neutron Service Subnets

I’m just returning from the latest OpenStack Neutron mid-cycle in Rochestor, MN. It turned out to be great mid-cycle for me. I wanted to share a new idea that came out of it. The Problem One thing that has been on my mind for a while now is wasted IPv4 address space by Neutron. I guess I was waiting for someone else to bring the solution because I wasn’t personally feeling the pain yet but it is time to solve it once and for all.

Neutron Address Scopes

An exciting new feature was just merged to Openstack Neutron in the Mitaka release; it’s called address scopes. Address scopes build from subnet pools added in Kilo. While subnet pools give us a mechanism for controlling the allocation of addresses to subnets, address scopes give Neutron a way to know where addresses are viable. They are also the thing within which addresses are not allowed to overlap. If you’re unfamiliar with them, you might want to review subnet pools before you read on.

Back in 2012, a new IP allocation was made called “shared address space.” At first glance, you might think that this allocation is just like the old RFC 1918 allocation. Maybe the IANA decided that we could use a fresh allocation of these things because our address space is feeling a little cramped. That wasn’t it. ISPs and other service providers needed an address space that can be reused in different geographies, doesn’t overlap with any global IP addresses and, just as importantly, won’t overlap with any private IP address usage on customers’ private networks.

I don't use Java/C asserts

Year 2000 I was an intern working on timing tools for the PA-RISC and Itanium processor projects at HP. We were starting a new C++ project. My mentor – who is a great engineer and I still admire in many ways – suggested that we use asserts to check certain invariants on entering and exiting methods. We could even do complex checks that reduced performance because once we finished all of our testing, we could just turn them off and it would all be great.

Fairwell HP Public Cloud

I got started in OpenStack when I took an unexpected job opportunity at HP to help stand up Neutron in the second release of HP Public Cloud. At the time, it was among the largest scale deployments of Neutron in existence. I suspect it was the largest at the time. One of the perks of the job was access to free virtual machines to use for work and even some personal use.

How I Do Passwords

I’m not paranoid, I just like to think paranoid. I’m actually a pretty trusting person. But, I know the reality that if I let my guard down, someone will take advantage. I’ve had two bikes stolen because I let my guard down, I know this. But seriously, thinking paranoid, or defensively takes some serious thought, learning, and practice. And, I find it fun. With that in mind, I’d like to share how I handle passwords.