Thursday, July 23, 2015

talk: Better Browser Tests with Selenium

slides as Google doc

me presenting at the Python Meetup on 7/23:

Youtube videos of Python3 and Nicer Browser Tests

Thanks to Esther for putting everything together, Hulu for sponsoring, Philip for helping, and Carl Mullins for the video!

Thursday, July 9, 2015

TIP: tweak number of Gunicorn workers

Count number of Gunicorn workers

$ pgrep gunicorn.*work | wc -l

Add another worker by signaling the Gunicorn master

$ sudo pkill -TTIN  gunicorn.*mast

Verify another worker has appeared

$ pgrep gunicorn.*work | wc -l

Decrease the number of workers, verify its effect

$ sudo pkill -TTOU  gunicorn.*mast
$ pgrep gunicorn.*work | wc -l

Tuesday, June 16, 2015

DevOps in Southern California

If you're a networking/DevOps person in Southern California, here is a meetup I recommend:

UUASC - on Meetup

The UNIX Users Association of Southern California is mostly about DevOps and system administration.  The last talk I attended was on Google's Kubernetes. Kubernetes is a lightweight system for deploying, scaling, and maintaining containerized applications. You can run on top of nearly anything: bare metal, Vagrant, AWS, Google GKE, OpenStack, Mesos... the list is enormous.

We meet monthly, normally at Q in Howard Hughes Center. Jordan and Carolyn are open and sweet people.  The audience is generally ~30, and can be quite lively. I gave a "Tricking Out the Linux Kernel Networking Stack" talk last year, and it was helpful to have people let me know which slides were too simplistic, and which material was controversial. Unlike many meetups, the group is is very experienced, and can help put "new hotness" technologies in contrast to other solutions. It's really important to know when and why to use technology, and how it can work in concert with other techniques.

Friday, March 13, 2015

Wednesday, February 4, 2015

networking with the Ant-ernet

Harvester ants and the Internet protocol TCP both have the same goal: maximize transfer of bits/food in as efficient a manner as possible. It turns out they use the same protocol!

The Independent Discovery of TCP/IP, By Ants

Friday, January 30, 2015

Testing Patterns

Testing code is hard.

As a developer, I want to write cool code to solve interesting, real-world problems. I don't want to be "smart" and write "smart tests" that are inscrutable, rather than spending time on writing more (feature) code.

Here an article that summarizes my experience. Namely, mocks are evil, and tests should be dumb. If tests are complex enough to require their own framework, it means you need to take a close look at where you're spending your rare brainpower: on features, or unit tests?

No company ever was able to take over a market and satisfy customers by having more/better unit tests.
  • A decade of unit testing (Karl Seguin): have super-focused unit tests that focus on calculation, not interaction with other functions; integration tests are a must; ignore code coverage [!]; more logging is better than having more tests.