Community
Work has been a bit hectic recently which has really cut into some of my open source(ish) community participation, at least the "in person" ones. I've not been able to attend a DSF Office hour, or had a chance to do my writing session, or go to Jeff's Office Hours for a few weeks.
Today was looking like I would miss Jeff's Office Hours again, but I realized that if I could go, even for 30 minutes, I should.
I didn't realize before hand how worth it the experience would be. I was only there for about 30 minutes, but it was such a great experience to see some people I hadn't seen in some while, and to talk a bit about hockey and Python and just generally listen to my friend banter about various things.
These types of community are so necessary and so rejuvenating for me. I need to remember this. Work will be hectic for the foreseeable future ... as with everything, there's too much to do, and not enough time to do it in.
I will most likely forget this again, until I remember it, but hopefully I can work hard to stay engaged in the ways that are helpful and needed for me.
Socks as a means of expression
A friend of mine sent me this image a while ago and it really does pretty much encapsulate my approach to clothes

The greatest part about this, in my opinion is that my socks are also always mismatched.
Is this on purpose? Yes!
More that 10 years ago now my daughter A (she's almost 19 now) took a pile of clean clothes that were on her dresser and meant to be put away took them and put them into her hamper instead.
When my wife E and I saw this we decided that A needed to learn how much work and effort went into doing laundry. So next weekend she was responsible for getting it all done (with guidance from her parents of course).
This meant she had to sort the laundry, do the laundry, and put away the laundry.
It was with the putting away where the story gets really good.
After A completed the last load of laundry, which was mostly socks, she was sorting the socks into three piles:
- Her Socks
- E's socks
- My socks
At this point E and I decided that A had it pretty well covered and so our supervision was done.
Now the thing about A is that she had this set of branded Miss Match socks that she LOVED. And she thought that socks were supposed to be thrown into a drawer willy-nilly and not meant to match.
So when A got to sorting mine and E's socks she applied her understanding of socks to our socks (which is 100% understandable!)
As she put away the socks she put her socks into her sock drawer, E's socks into E's sock drawer, and my socks into my sock drawer.
The next morning I was running late and by the time I got to getting my socks and shoes on I saw the sorting method of A. I was a little upset, but mostly just kind of laughed.
I grabbed 2 socks, put them on, and went to work. And you know what happened? Nothing. The world didn't end, I didn't lose my job, and all day I knew something that everyone else didn't. My socks didn't match.
To this day, I still just take my socks and throw them in my sock drawer. In the morning I will pick 2 socks at random and it still makes me smile.
Yes, my socks are wildly colorful ... but they also never match. And that's just fine by me.
Trying
While running through my timeline yesterday I came across a toot from Hynek that linked to a video on YouTube by Nathan Zed and it stopped my in my tracks. Stop what you're doing right now and watch it. Then come back. I can wait.
Did you watch it? Good.
Let's get started.
The link between minimalism and boring is a connection that I hadn't made before, but Nathan Zed is right. The minimalism that we're seeing now is boring.
- Movies all look the same
- TV shows all look the same
- Mainstream Podcasts all sound the same
- Content all looks/sounds the same
And maybe that's the thing. We went from "making stuff" to "producing content1"
So everyone is "making content" and doing it while trying to look effortless and that really does suck. Caring about what you're doing is what makes me want to care about what you're doing. I don't care if you fail, I care that you tried!
People are content creators and that means that they're trying to make a living off of the content that they have created, but that just drives into some super conservative (little c) tendencies that are driven I think by capitalism and the need to make money off of our art ... I mean content. Which in turn makes everything look the fucking same. Sound the fucking same. Be the fucking same.
Last year Jeff Triplett posted # Please publish and share more and at the time I couldn't really put my finger on why this resonated with me so much, but I think now I can.
Writing for the sake of writing is important. Taking photos or creating other art is important for its own sake, not for the sake of creating content to feed into the machine of capitalism. My blog is for me. If others get something out of it, that's great. But it was only when I realized that that I started to write more ... because I didn't care if others liked it or not. If they got something out of it or not. Because I was writing for me. I was "creating content" for me.
Dance like no one's watching, sing like no one's listening, write like no one's reading.
Enjoy the stuff you do. That's kind of the point of doing the thing. It's not to put "content" into the machine
- I really hate that fucking word "content" in this context ↩︎
Intro to Djangonaut Space
During my first session with Team Venus today I went through some orientation (for lack of a better term) items with my awesome new Djangonauts. I'm writing it down here because I'm sure I've gone through this same write up before, but darned if I couldn't find it!
There are several ways to contribute to open source, and not all of them are code. Some items I like to call out are:
- Code
- Docs
- Pull Request Review
Many people might think that the only way to contribute is via code, but the other aspects are also super important!
Things I like the Djangonauts (and myself) to keep in mind during the program:
- Contributions aren't a 'race'. Go at your own pace.
- This is a volunteer thing. Life will come up. That's OK. If you have to miss a meeting just let me know.
- Expect to spend about 1 hour per week day (i.e. about 5 hours) per week working on your tickets.
- Fill our your workbooks at the end of each week Sunday; this will help me with getting help for you at these meetings
- Post your wins in Discord!
- Keep in mind the Showcase at the end of the program where you'll have an opportunity to show off what you've been able to do
- Other opportunities:
- Pair programming with other Djangonauts
- If you haven't started a blog, this might be a good time to. Writing up what you've learned can help to make that learning more concrete and can help others in the future (that might include your future self!)
- Writing the Weekly
Updates to Djangosection of the Django News Newsletter - Connect and network with other Djangonauts
The most important thing, I think, is to have fun during this program. This is a unique experience and it should be one that you look back on fondly because you learned some stuff, met some awesome people, and most of all had fun.
Lightning Talk Idea
I have an idea for a lightning talk for a conference that involves the use of datasette, git scrapping, and my love of the AHL. Specifically this project that I've been poking at for more than 2 years which uses git scraping to populate data into a sqlite database which is then served up by datasette on a server I run.
It's a silly little thing, but it lets me do some pretty cool things, like comparing how my beloved Coachella Valley Firebirds are doing year over year.
It also lets me see their point totals by day for a specific number of historic years1 to do some other neat comparisons.
I've also been trying to work at getting a Django app integrated into it so I can make new tables and populate them with information about franchises, and teams to get a better sense of the history of a franchise and how it relates to any team.
For example, the current Calgary Wranglers were the previous Stockton Heat. And if you go back far enough they were the Maine Mariners who were the first expansion team to win the Calder Cup back in 1978-79.
Being able to easily trace the history of a franchise, through its various incarnations, with data seems like a pretty cool thing, at least to a data nerd like me.
I have BIG plans for this, but right now it's just a small, hobby project.
The Trouble with Karabiner
I woke up this morning and attempted to do some stuff on my mac. I have a docking station that I use for both my Mac Book Pro and my work Windows Laptop.
There is a Code Keyboard1 that is attached and is set to Windows mode (because I use this configuration for work for many more hours that I use it for non work, i.e. macOS stuff)
To help with this I use an app called Karabiner-Elements.
When I plugged my MBP in today none of the Karabiner remapped keys were working as expected (I map alt to command on the left and right side specificall). I tried many things, and eventually discovered that I need to have the following items enabled
Full Disk Access
- karabiner_grabber
- Karabiner-Elements
Something (probably an OS update) seems to have disabled the karabiner_grabber access as I had to switch it back on.
Suddenly everything is back to working as expected.
I would really like that 45 minutes back though. Not a great way to start your day
- R.I.P. Code Keyboards ↩︎
all-star-break-doldrums
Since the All-Star break the Firebirds entered what is arguably their softest part of their schedule with games against San Diego, Henderson, San Diego again, Bakersfield, and Tucson. These 4 teams are in the bottom of the Pacific division and in San Diego's case they are 20+ points behind the Firebirds.
I'm not sure what the hell is going on, but in their first game in San Diego they won in Over time in what should have been a blow out, in their second game in Henderson they lost by 1 goal.
In their first home game post All Star break they again played San Diego and lost 5-3 (the last goal being an empty netter so 🤷🏼) but they also gave up 2 goals in less than 40 seconds in the second period. That ended up really being the different.
That means 3 games into their 5 game 'soft' patch and they're 1-2. They play Bakersfield tomorrow night and I sure hope they find a way to get back into their winning ways because this has been some pretty shitty hockey to watch. The Firebirds are 2-3 against the Condors this season and have yet to beat the Condors at home this season.
To quote Han Solo, "I have a bad feeling about this"
Great Swimming
Today was one of my better swim times for the 2000 yards that I typically swim during the week. This was a bit surprising as it was the end of the week and I had, what I would consider, a pretty intense gym day yesterday. That being said, there was something about how I was able to seemingly, effortless, glide through the water.
I also didn't track my laps for which stroke I needed to do, which is a pretty good sing that I'm just listening to my body and switching up when I want to and not when I need to because it's time for a new stroke.
It was also a perfect morning for a swim. Slightly cool with no breeze and a beautiful sunrise hitting the left over storm clouds with a vibrant pink hue.
When it was all said and done I had a 2'37" 100yd lap time on average and more freestyle distance that breaststroke distance, which I hadn't done before.
Here's hoping to more improvement over the next few weeks in my swim time!
Creating Documentation from an XML file using Python
This will be one of those frustrating blog posts where I'll wave my hands about the code that I wrote but not actually be able to post it because I did it for work.
A very specific (to my department) challenge we have is that we use a tool called Crush FTP to automate several things. This automation is mostly around file movement, and file renaming. Because this tool has permissions which are higher than my team and I, we have to work with our IT team in order to set up various jobs. The IT team is always really responsive when we need to make a change, or check on something, but I really wanted to have an ability to be able to have my own documentation to be able to answer questions about the jobs.
I recently discovered that each job can be exported out as an XML file, and while XML has a very 'thar be dragons' vibe to it, these XML files were mostly fine. I say mostly because there is a node called
The final product will output plain text with details about each job, each task in that job, and then a mermaid diagram of the flow at the bottom.
This is pretty much everything that my team and I need to have the documentation to answer questions.
Some future improvements I'd like to implement are:
Picking a Ticket
One of the hardest things about contributing to Django is picking a ticket. Sarah Boyce has a great short video on a method that she recommends and it's a great bit of advice. As part of the Djangonaut program I work to help my Djangonauts find a ticket to work on.
A few queries I recommend are * Sarah's Vulture * Needs Documentation
Using the Needs Documentation I was able to filter down to just this and identify three tickets that seemed interesting:
- Ticket 29177 with this comment in particular
- Ticket 27775 with this PR
- Ticket 18887 with this comment in particular
Picking a ticket can be challenging, but using the filters can really help get you down to a smaller list of things to try and work on.
Page 3 / 24