Tag Archives: weeknotes

Week 3006

Work

We are  having a hackathon! I’m excited.  Its my first since Music Hack Day NYC. We’re going to try out Amazon Lex, Lambda, and some containers.

Some folks are already using my code for working with ELK, so that’s nice.

I’ve been focusing around automating my testing and such, and I really am centering around just learning to write better makefiles. Make is installed everywhere, like vim and other things I like. It just works. And makefiles do almost everything you want. The downside is that it is an ugly syntax. The upside is that if you learn one ugly syntax, you don’t need to learn everything about Rake, Yarn, etc.

Around the web

Best Practices for Staging Environments – this article by the excellent Alice Goldfuss came up at work as we wrestle with big calcs and datasets for our clients.

Why you hate Contemporary Architecture – This is grrrreat. One little note for the computer nerds. If you’ve heard of the Gang of 4 Design Patterns book, read the article and come back. The Design Patterns book was based in part on Christopher Alexander’s “A Pattern Language” which is a great guide to things that seem to work in architecture.

I discovered two things that similar to a POC I was working on (voracious-etl)

  • Datasette provides a readonly JSON api for any SQLite DB.
  • Dataset provides an ORM for any CSV or JSON file

The plugin system at the core of pytest is a library: Pluggy. I like that and I might use it earlier.

A good podcast: Flash Forward. Explores a new future every week. The most recent focuses on fungal enslavement, which I love. If you like that one, I highly recommend the mindblowing Parasite Rex by Carl Zimmer or Sensation by Nick Mamatas

 

 

Politics

None of the big progressive candidates made it in the democratic primaries. Cuomo still won. Tish won, which is OK. However, I see that  some progressive candidates made it through.

I hope they can do some real work and win in November. I’ll be calling and doing work to support them.  I long for a day when I can start moaning about free speech vs hate speech and trying to reign in some liberal excesses. However, right now, the work has to get done.

I also note that children are still in cages and parents are getting deported without hearings, but it isn’t in the headlines anymore. I’m still pissed about it. I’m still pissed that the probable governor of NY seems to only work for progressive issues when pushed and won’t use his clemency powers.

Exercise

I biked around 37 miles this week! Had to take off Monday and Tuesday due to rain and being pretty sick. But otherwise, I rode in. Got to stop on Christie street and help a guy who’d been knocked down by a cab.

Worked to a slightly lower pistol squat and my butt hurts sooo bad. Also, my dragon flag work is getting better. I can kind of hold it.

I started doing partial handstand pushups against the wall and they feel pretty good. I can do 5 at a time part way down and up. Next I’ll try lower and lower, then try freestanding ones.

 

Week 3005

Family

First day of Kindergarten for Max Lazer! It didn’t go great.

Even though we had sent over emails with his IEP, the teachers hadn’t read the documentation for the first day of school. They are very nice, but it was a tough transition day for him. After you drop off kids, all the parents get herded out to the auditorium to get welcomed to the school. I saw his teacher later coming down the aisle to talk to an assistant principal and I knew it was going to be for us. It was. I ended up working from the hallway after calming things down in the classroom. By the end of the day, everything was fine, but what a start. Second and third days were better. I don’t see him participating much yet, so I’m worried that he won’t be getting what he needs.

A young iggy peck makes buildings

These are great buildings – but the rest of the kids are writing things.

I believe he is learning and exploring and thinking, but I’m also worried that he’s dominating the teachers. Do they have the bandwidth to deal with his will and the other children?

Bike

Not much biking! Not because I got hit by a car last week, because it was the first day of kindergarten for Max and there was labor day off of work. Only 24 miles this week.

Z-Ray is now trying to teach herself to ride a scooter. SLOW DOWN GIRL. You just learned how to walk!

Work

Still adjusting from my default setting of an internal technology advocate for clients to a relationship manager. My job isn’t just to make clients happy, it’s to help them understand and prioritize what they want. I’m a few months in and still navigating where is support vs building.  It’s a lot different from being an internal technology team and I often have to adjust my headspace.

Also, I internally released a little tool for working with ELK searches directly in Python. I’ll work on seeing if we can accelerate our open source program so that I can release it out in the world.

I’m also now part of the group leading some changes in how we handle our python stack and our api libraries, a subject very dear to my nerdy heart.

 

Week 3004

Z-Ray is walking like crazy now. Her tiny feet are hilarious and she now just toddles everywhere. This morning she just ran into a room and hugged me.  She brought me my shoes!  She definitely understands when I ask her to put her shoes into the shoe bench.

I love her so much I want to squeeze her for hours.

Max Lazer is going to kindergarten next week! He’s not excited yet, but I think he’ll love it. Just got a call that his ear is large and swollen, but hopefully he’s ok. We’ve been reading a lot of choose your own adventure – I like that he’s seeing how different choices control consequences. When Z cries, he’s very loving and helpful and is doing his best to comfort her or distract her.

Code

I’m thinking about how we will enhance our python support at work. As part of that I’m researching better ways to standardize configuration of objects.  You want to be able to initialize an object foo from a class Foo.

class Foo(object):
    def __init__(bar='baz')
        self.bar = bar
foo = Foo()

print(f"bar = {foo.bar}")
# "bar = baz"

Swell!  But some people may think that bar should be set to “bazzz”.

foo2 = Foo(bar='bazzz')
print(f"bar = {foo2.bar}")
# "bar = bazzz"

Easy enough. But what if I work in a place where we need to change hundreds of uses of bar among tons of different scripts and applications and whatnot?

I may want to get it from an environment variable automatically on startup. Or maybe I work in a place where we like configuring things with a .env file. Or a settings.toml.

Or maybe we want to just this once pass it in as a commandline parameter. Flexibility is really good to have.

Ideally, we can say there’s a hierarchy.

  1. A parameter passed into the constructor is the highest priority.
  2. An environment variable is the next.
  3. A config file is the next most concrete. (I could be convinced to switch these, but as long as there’s a consistent pattern, it’s good enough)
  4. The default value of the parameter in a constructor if there’s not other choice.

There are lots of good libraries out there for achieving this, at least partially. Ideally, I think I’d want to have either something we can apply as a class decorator or as through multiple inheritance.

Some good python configuration libraries I came across that I really like:

For my problem with dreamhost, I’m making progress and have been able to get a set of forward rules pretty much ready. I’m hoping to publish it pretty soon.

I don’t think I’ll get around to auto fixing the mailbox filter rules though.

Reading

I got my Kobo back after it fizzled. I’ve missed having an e-reader so much! I did get to read “The Moon is Down” by Steinbeck because we had a paperback on our shelves, but it’s so nice to be able to read a book in bed or in the bath or in the dark while a kid settles down. It’s also nice to be able to just squeeze in A Road to Common Lisp in between things because of the integration with Pocket.

Bike

Only 50 miles this week. I skipped a day because there were some team drinks on Tuesday.

I also was gently hit by a car. An Uber driver pulled into the bike lane while I was riding to drop off his passenger. As it was happening I was pounding on his window and yelling stop. I was powerless, a thing I’ve known intellectually but I never really believe. He didn’t stop, he knocked me over. I ran up to his window and explained that I am a person, that people die this way and that my children want to see me. I’m fine. Scrapes and bruises and a tendency to replay it in my head.

It spurred me to donate to Transportation Alternatives. They advocate for better laws, for protected bike lanes that don’t get used as parking spaces. For bike lanes that aren’t truck unloading zones. Things that can really save my life and help me get home.

I also finally replaced my speaker.  It’s louder, but I’m not sure how awesome.  It’s designed with push buttons instead of a volume dial, it fucking talks to you instead of doing things and it isn’t clear what it’s doing. Physical interfaces are SO MUCH BETTER than this. On the other hand, it is louder and my old one was broken.

Politics

A good thing you can do about weeknotes is talk about what is going on in the world so you can notice slow changes and not think things were always the way they are.

The government has started confiscating passports from US Citizens who are Latino. There are a very small number of cases where some midwives fraudulently filled out birth certificates. This is the pretext that a racist administration is using to attack Hispanics. Midwife births are more common for those who cannot afford hospitals or who live in areas that are too poor to support a hospital. This is not a thing that started under the current administration – but the character of what is happening has changed.

I am renewed in my determination to work continuously to replace these terrible people with less terrible people. I would love to do that with you! If you wonder what you would do in a time of crisis, the answer is that it is what you are doing right now.

Boob sweat

My buddy Dawn Hunter is smart and charming as hell. She is working on a startup that helps with sweaty ta-tas. I’m no expert, but for people that have boobs and want more comfort with them, she’s writing tips on managing boob sweat and gathering interest from people who might want a product. Get in touch with her!

Week 3003

Things are a bit calmer this week.

Work

Got through delivering a few projects and now I’m talking with my folks about getting a team into the annual Hackathon – maybe doing a chatbot.

Also talking about ways we can get better and faster at responding when things go wrong and how we can not fail at support. Pushing our goals a bit there.

Also in talks about visiting our remote teams, working from India with them for a bit.

Nerd stuff

As part of getting things working in tmux, I thought it would be nice to not only have test scripts running using entr, but to also see what’s going on with the machine I’m running, maybe in a corner pane. I installed python glances and I realllllly like it! It adapts really well to different resolutions.

a gif of python glances on ubuntu

Bike

Another full 5 days of bike commuting! Another 60 miles!

I had to get my brakes fixed – and City Bicycles was super nice. Charlie works the front desk looking like a super nice tiny Slash and we lost track of time talking about riding and music and New York.

Slash from gnr
This guy fixed my bike but smaller and skinnier and nicer.

Gym

A photo from Mark Rippetoe's Starting Strength showing bad squat form captioned "Don't do this, you fool."
My brain, right before I do this.

I’ve been working on a dragon flag. Negative isn’t looking too shabby! Christina took a video:

Family

Max Lazer is being super creative. He’s been designing little video game maps on paper full of traps and zombies and bombs and portals. We get pens and work out how to get to our destination and win. It’s tiring and awesome and I love him.

Zelda is all kinds of tempermental! She’s gotta be teething. It’s lots of crying and cuddling and wah wah. On the other hand, she’s really playful and mischievous and working hard on her walking. She just gets up and stomps around a bit – but she really wants you to hold her hand.

Also, the biggest joy is seeing them play with each other.

On the web

I’m constantly thinking about quitting twitter. I quit facebook and have felt great about it. I hate that twitter is so welcoming to racists and awful people. I really like the non-awful people on it. If @jack is so welcoming to white supremacists I don’t want to be part of his business.

On the other hand, I like finding gems from Robin Sloan:

https://twitter.com/robinsloan/status/1033011549818970112

And I discovered Naomi Wu who made me think in much broader ways about western takes on feminism and maker culture biases and @xlnbwho got me thinking even more about my unconscious biases and on and on and all the smart good folks are so good.

As Carly Leinheiser put it, these places are hard to shift from. It’s that shitty bar you go to because your friends are there. And now that my friends aren’t at Floyd, I don’t go there.  I’m probably going to give Mastadon a go for a bit, but maybe I’ll just go back to emailing and blogging here and sign up for NewsBlur which looks like the greatest thing since google reader.

 

 

Week 3002

Vacation thinking

I’m almost into my first 90 days at the new job. I want to think about vacation. Sam and I have discovered the miracle of separate vacations. We like traveling together, but going with little kids is super hard. You don’t really recharge and a 1 year old doesn’t get much out of it either.

So in between jobs, I went on a “Broatia” trip of 3 dads together romping through Croatia. It was amazing. I was so relaxed to just not be responsible for 3 people. We could drink and carouse and hike and we all had so much energy because we just didn’t have the weight of our (loved) children.  I came back super refreshed from mountain biking, kayaking to islands, swimming in sub tunnels, hiking, jumping off cliffs, etc.

And when I was back I watched the kids for a week while Sam went off to Barcelona with friends from London. Sometimes it’s even easier to be a single parent – you just know it’s all on you and you get it all done without having to consult anyone!

So we are going to do that again. She’s figuring out what she’s going to do and I need to think about where I’ll go and what adventure to go on.

READ THIS PART AND CALL ME

Friends! This is a good thing to reach out to me on. Let’s buddy up and do a thing! I miss you – let’s have an adventure. Snowboarding? Exploring a country? Volunteering somewhere? What would you do with up to a week of Matt?

Nerd Stuff

Tmux

After my beloved Terminator died in my linux environment at work, I finally gave in and started using tmux. And of course, it’s better. All the old stuff that has survived is really good. Sure, I lost an hour mucking around with configuration and learning how to make it do the basics – but no more than that.

As an elderly nerd, I no longer spend days tweaking my environment and giving myself more cruft to maintain. I look for stuff made by other nerds and adapt it so I’m using their energy. In this case I just cloned a configuration called “Oh My Tmux!” and voila. Things are sweet and well configured now.

In tmux, I now use ctrl-shift-c and ctrl-shift-v to copy and paste.

Jumpstart a linux box

I have a little intel nuc at home that I’ve been trying to use as a mini server to convert video and do little tasks at home, but I rarely log in. For some reason, Sunday night I logged in to see if I could make a restore point and I ended up unable to log into the box, and applying updates to my router and damn near unable to do anything with that. So now I want to make sure I can flash the damn thing back to a usable state easier.

The box is dead! So if I bring it back I’m tired of going through and re-installing things on a linux box. I made a little script to jumpstart getting a linux environment working since I’m working in linux at home and at work.

Monetizing Machine Learning

While I was on a break from work, I spent some time helping Manuel Amunategui by doing a technical review for his book Monetizing Machine Learning.

Book should be out next month, I really enjoyed helping on it and I learned alot about actually using Machine Learning models. I feel like I started to actually get a handle on Bayesian predictions that I never understood before. I’ll put up a link when it goes on sale. I’ve already been paid for my technical review, I don’t get a commission.

Bike Stuff

Biked in the rain on Monday/Tuesday and used lunch time to install some silly wheel lights! If I had a car I’d be so atrocious and tacky.

This was a big week! I rode to work every day this week, even when I had things to do or it was rainy, etc. I just made it happen. Clocked up 60 miles this week! That brings me up to 237 miles so far this year.  My legs are feeling stronger and it is easier to go faster longer. The Manhattan Bridge is still a sonuvabitch, but I have started doing the downhill with my legs crossed or just standing on 1 pedal and a hand on the seat and the handlebars. Stuntin!

Z-Ray walks!

Week 3001

Work

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.


Life

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.

Other

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.