Week 3001


I managed to bring down a server at work while trying to do some experiments with multiprocessing. I also found that chunking out the data, starting a process and getting the data back all seemed to add up to a bigger time cost per chunk than the multiprocessing saved. This is using multiple workers to handle tax lot processing. When I can find time I’ll see if I can whittle it down more, but that was a very surprising note – if you don’t have a big chunk to process for each worker the coordination can be a bigger transaction cost. Just more times I see applications of the Ronald Coase’s work.

Caught up with some folks from  old workplaces and got lots of juicy gossip. What do you do when your workplace is being chaotic? Keeping your head down and getting things done always gets better results than conniving and rumor mongering. Still – chaos at work is distracting. Everyone wants to meet up at the coffee machine to talk about the latest development.

One thing that I’ve never really seen work well is Power Moves. Supposedly some people can do them, but I usually see them backfire. People don’t like being pushed, and they push back. Generally, people do like being led – it’s nice to know what direction we are moving in and to move together.

In general, I find that you can push and fight, but if you find yourself fighting, you have to question if you need to be in the fight. I do the best when I look at my employers as equals – I try to be a good bang for the buck they pay me. If I generally agree with the direction we are going I play my position, help out where I can and move us forward. If they don’t want what I’m selling or want me to do something I find repugnant – I go work with someone else. It isn’t worth it to fight when there’s such a big market out there. My job isn’t to make massive efforts to change the minds of the folks making decisions. They need to earn me as much as I need to earn them. Anything else and you aren’t in a good relationship.

I was also reminded of a good pattern for announcing changes at work. When you make any change, don’t send an email telling a group of people about the change. Instead, make it your practice to update the internal wiki docs and then send a link to the doc with the updates and maybe a summary. That way you don’t let the internal docs get out of date! People will rarely read your release email, but they’ll go to the docs when they are trying to get something done. Keep the docs up to date so they don’t give up and go to your support folks first. It’s a savings for everyone!

I’m also trying to get more of a culture around code review on my team. We’re all advanced tech folks and very good at what we do. But I think it’s always important to review together as a team. “Code should be written by a team and look like it was written by a single individual.” Code reviews are a tiny transaction cost (COASE AGAIN!) but they are a big review. I fully endorse my friend Nina’s talk on How to grow a Code Review culture and their benefits.


I find I am missing the people I care about that live far away a lot this week. I think my zillionaire dream would be to put all my favorite people as close together as possible. I’d live with them and play with them. But I also know they need their people. So my dream ends up a dense metropolis of cool folks – an NYC of my tribe. But many people in my tribe don’t want to live in a metropolis. Portals would be helpful.

Took Max Lazer into the Take Your Kids to Work day this week and it was great. He didn’t always participate, but I think I coulda told them more about helping him with transitions. Otherwise he was really interested in building robots and playing at work with Dad.


All of my work on performance improvements reminds me that we are just trying to get computing to resemble what we see in real life: instant feedback.

We do that naturally with physical things, and I like to see examples of physical computing. Why isn’t everything like this?

Physical computing is Super Different. Immediate feedback matters.

I guess this is one of the reasons I really like Jupyter Lab, and I’m writing a solution to my problems with DreamHost in a Jupyter Lab notebook. More details as soon as I have something. Which better be before October!

I installed the latest ubunto on a Lenovo Yoga 920 and it’s friggin awesome. Highly recommend, very easy. I can segregate work stuff fully from home stuff.

Also, on my reading list: A whole magazine issue dedicated to documentation in tech world.

I managed 49 miles this week on the bike! Commuted every day but Take Your Kid to Work day. I’m proud of it. Definitely more proud than I am of bringing down a server.

Week 3000

Still adjusting to working with offshore developers. There definitely is a pattern of setting up a request, expecting it to be all done in the morning, and having to answer a few questions or concerns the next morning. If you don’t get to those questions immediately, you miss another day cycle.

Speaking of cycling – I took a day off of biking to work on Monday. Tuesday I went again and hit tons of personal bests! I’ve given in and started using Strava and it’s interesting to see how there is a an actual trend of improvement. For example, here’s my times on the Manhattan Bridge.

It is cheesy, but all these personal records and gold medals against myself are very rewarding.

Another takeaway: maybe rested legs are stronger!  Due to rain and hangovers, I’ve only done 24 miles this week . Hope for more next week!

Also at work, we’ve whipped up some backpacks for kids that can’t afford school supplies.

I did some virtual phone banking at lunch on Thursday and Friday for Danny O’Connor. Mostly leaving messages, but every bit helps. There’s a special election on Tuesday in Ohio and I want to make sure I do what I can for it. I invite you to join me – these things are easy, they don’t take time and they make a  difference.

On twitter, I really like the #InvisibleNetworks tag. @ctrlcreep is running 30 days of story prompts and people are replying with weird imaginative little stories.

Max is writing a book. He’s done 2 chapters about a bunch of robots in space. Cute Bun, AVX and their pals are all fighting and using lasers and it’s awesome.

Zelda is still working on her walking. 3 or 4 steps at a time now.

This week I got to dig in a bit on some performance profiling.

While doing some performance testing I found I needed to put in a bunch of temp log statements, but ugh… So I just created a decorator that will log the docstring of any python function and voila!

It’s hard to know exactly where your performance hits happen – so Robert Kern’s line_profiler is a great help.

I set up a terminator session with a few open terminals (different terminals allow you to take advantage of multiple processes and cpus). Then I used entr in each one to run profilers and timers and linters on the scripts.

ls *.py | entr -cs 'kernprof -l ProfileDriver.py ; python -m line_profiler ProfileDriver.py.lprof

This tells entr that whenever any python file changes

  1. clear the screen “-c”
  2. profile the code: “kernprof -l ProfileDriver.py;”
  3. then display the saved profile of the code: “python -m line_profiler ProfileDriver.py.lprof’

In other terminals I put in

ls *.py | entr -cs 'flake8 *.py'
ls *.py | entr -cs 'pylint *.py'

This way I keep my code clean – with a dash of autopep8 -a -a -i  to solve the easiest pep8 errors automatically. It’s also really something how much easier it is to reason about the code as I break it down into smaller chunks.

I’ve installed PyCharm in the linux workspace, and it is definitely a step up. Comes with vim emulation built in and it’s got some nice refactoring tools.

Week 2099

This is the 6th week at my new job.

I’m really enjoying the new toys to work with there – there are so many smart folks and they’ve been doing the right thing  for years. I’ll suggest a clever solution and they will point out they’ve got that in their plan or that they considered it and it doesn’t work for good reasons.  The tools, the documentation, the culture, it’s all really impressive.

I’m working in tighter boundaries – instead of nobody caring about performance I find myself in meetings with high level people where we are talking about differences of 200ms. We’re hiring! Get in touch if you’re interested and I can refer you in.

There’s no dress code and that’s been really nice. It makes it much easier to bike in – so I’ve been doing that way more than usual. I skipped a few days due to rain and I’ve still done 36 miles this week. Since I joined Strava I’ve ridden 100 miles.

I’m sweating less for a 6 mile ride and I’m noticing differences in how fast I can go up bridges and such. I also don’t have as much energy just waiting around in my legs – they get more tired and I’m not giving them much rest at all.

I’m doing weight watchers with Sam and it’s definitely affecting my choices. Now that there’s points I’m eating way healthier. And the sous vide machine has been helping – it’s easy to pop something in when I get home and then finish the cooking after putting kids to sleep.

The boy got sick this week and we had to take him to the urgent care center because his heart rate seemed very high.  He refused to take anything to bring down his fever, I think that’s what caused it. So we go to the urgent care and they say take this medicine to reduce your fever and he refuses to drink it. Ultimately they say, then we have to give a suppository.

That’s no fun. But when they came back in a few hours and said it’s time for more medicine he looks up and says “I’ll do it the easy way. Bring me the cup!”

I’ve had a chance to volunteer on the texting team for the Beto O’Rourke campaign and it was fun and easy. I HIGHLY encourage you to give it a shot because Ted Cruz can be beaten.  If you can’t donate money, these days it is super easy to donate time.

Closer to home I found that since I am partially domiciled in NY-19 I can register to vote there and there’s a good candidate in a toss-up race in House. I’m going up this weekend to learn how we can volunteer to get Antonio Delgado in and John Faso out.

Baby Z is taking her first walks and she points at her belly if you ask her where it is! She also is playing with Max. This morning they both had fruitsicles (to keep Max hydrated) and she kept leaning over to wack him with it! It’s so wonderful to see them loving each other.

Sous Vide Machine Reaction

I got an Anova sous vide machine because I’ve been wanting one for ages and now it seems silly not to get it. Some reactions for you.

It is bigger than I expected. We don’t have tons of space, so I was surprised that it is about the size of a big hand blender.

Sous Vide eggs are amazingly perfect but I never eat eggs with a 45 minute plan ahead.

Sous Vide filet mignon at 130 for 1 hour then put on a very hot skillet for 2 minutes each side is very doable and reasonable and that is a perfect damn piece of meat. Already this thing is seeming pretty good.

Also, Aperol Spritz is the drink of the summer.