13 hundred engineers…

I get a lot of cold-email outreach tech spam. It’s especially insidious because they automate the personalization and do repetitive outreach, so I have to read a little bit before I ignore it.

Without embarrassing anyone, here is one such example I got today…

Good Morning your first name,

I hope this finds you well. I am following up on a note I had written to you last week. I completely understand your busy schedules, wanted to connect with you at your convenient time.

I see great synergies between your company name scraped from LinkedIn and X— and would be glad to explore synergies to work together towards to address your product development /engineering needs.

X— is an engineering team of 1300+ engineers…

After I read the second sentence, I filed it away, but my peripheral vision caught the beginning of the third, and I recalled that message.

1300+ engineers? Holy shit! What sort of business can you build with 1300+ engineers, I wondered. The Mythical Man-Month tells us that “adding manpower to a late software project makes it later” so by this math, you couldn’t even change a lightbulb with so many engineers.

So I had to pull up what this company does, which is my engineering equivalent of slowing down to look at a car wreck. Here is the first bullet point in the previous e-mail.

  • Certify your products through comprehensive Test beds to automate the build and QA cycles

Stop right there. Why the fuck would I want to automate my QA? You have 1300+ engineers, you can make them run all my test suites by hand. It’d probably be better output too because they must be some really shitty engineers.

(If you have 1300+ engineers and you are not one of the FAANGs, you are doing it wrong.)

Software engineering surveys are unintentionally hilarious

So… this was in my inbox today…

Most Loved/Hated Programming languages according to Hired
#PythonIsSexyAgain #NowPictureGuidoVanRossumNaked #SEXY? #NowTryGettingThatPictureOutOfYourMind #GlobalInterpreterLockAmIRight?
#<HTML>IsAProgrammingLanguage</HTML>
#EverythingIsAwesome #JavaCanDoEverything #JavaIsAwesome #NoWaitMaybeNot
#AtLeastPHPIsNumberOneAtSomething
#YouCodeForTheLOLsICodeForTheLULZ
#EveryTimeATabIndentsOneThreeOrSevenSpacesGetTheirWings
#OneTypingToRuleThemAll

(There are many other gems in there, like any good tragicomedy.)

Vagrant, Time Machine, and waiting forever for a backup

For some reason, moving to the new MacBook Air hasn’t been very successful. My Alfred spotlight is broken, Apple Mail slows to a crawl for no good reason even though everything is in the cloud, and I have a \<50% success rate of backing up my Time Machine during my workday. Basically if it doesn’t complete before lunch, it isn’t going to finish at all.

That last one seems to be well within the realm of what’s feasible. I mean why is it backing up 15GB of new files each day and why is it when I really get working the last 2GB never seems to complete? Not to mention that this 5TB drive I purchased four years ago to back up what is only a 500GB SSD (was smaller in years back) is now starting to appear full.

Well I think I figured it out. I’ve been using Vagrant for the last 5 years to build out virtual machines for development and each of them is a single (very large) virtualbox file that needs to be re-imaged every time and is constantly changing if the machine is up during the backup process.

After some research here are some suggestions on what to exclude from your time machine backups

Working scratch folders:

Things like ~/.Trash and ~/Library/Caches should automatically be excluded by Time Machine in general, but for me, I use ~/Downloads as scratch space for stuff that I don’t care if I lose. If it’s important, I usually drag that to desktop, so I added that. You can add something similar

Cloud files

I added ~/Dropbox because that stuff will be built from Dropbox, and Time Machine or migration restores will just confuse the backup system. If I used Google Drive, I’d probably add that too.

Virtual machines and other dev related environments

For me that’s ~/.vagrant.d and ~/VirtualBox VMs where vagrant downloads the boxes and where, by default, it puts the VirtualBox VMs. The actual boxes that I might image to do Windows/IE development are manually created and imaged in ~/Documents so there is no need to exclude those. If you want to keep your plugins then save ~/.vagrant.d/boxes only.

I also added ~/Library/Containers/com.docker.docker because sometimes I did Docker development and that’s where those instances are.

Also if you have a standard place where you put Python virtual environments with virtualenv you should probably add that too. I don’t develop on localhost anymore so that isn’t the case for me.

Local software caches

I added ~/.gem for Ruby and ~/.npm for NodeJS. I’d probably look into what I can torch from rbenv and rvm but I no longer do local Ruby development, but if you do, add those to your checklist.

Games

I don’t have this on my work computer, but on my home one, I added ~/Library/Application Support Steam/steamapps because those are big files that are downloaded from the internet anyway. When I get home, I’ll have to make sure that sort of thing wasn’t moved into /Users/Shared.

Unknown unknowns

I probably should figure out where Ulysses puts its files because every time I do Migration Assistant I have unresolved conflicts which take forever to clean up. It’s not a big deal though since almost all copies are actually the same file.

Know of any other things I need to add?

NaNoWriMo 2016

Ever since Marie wanted to learn to program in 2009, I’ve wanted to write a book to help her. But I never could get started.

The National Novel Writing Month is November every year for just this purpose: to motivate people to put 50,000 words on paper (about the size of the novel, Slaughterhouse-Five), editor be damned.

I first heard about it in 2007, when I started using Scrivener, but dismissed it because the requirement that a novel be fiction. I only just found about NaNo Rebels, which allows you to customize the “50,000 words” into nearly any other creative exercise, including non-fiction. So yesterday, this was born:

NaNoWriMo 2016 Participant Badge

Nowadays, I use Ulysses. I simply created a group in the software and set a 50,000 word goal and started typing away!

NaNoWriMo 2016 Day 2

Goal setting on my iPad.

I don’t know if I can finish since it’s about a good sized blog article each and every day. We’ll see how it goes. So far it’s been a bit strange writing a book. For instance, I can’t use my WordPress shortcode macros lest I ruin the word count.

Periodically, I’ll dump the output to my blog, which you can track here. Wish me luck!

If you want to buddy up, I’m “tychay” there.

Sometimes they really are indistinguishable

“Any sufficiently advanced technology is indistinguishable from magic.”
Arthur C. Clarke

When a non-techie friend of mine moved to San Francisco, she overheard two guys talking next to her.

“What are you up to,” one of them asks?

The other replied, “Oh, I’m trying to learn Python.”

“Excuse me,” my friend interrupted them. “But I believe it’s called Parseltongue.”

(After living here for a while longer, she became very embarrassed. And though it wasn’t exactly what he meant, I still think Mr. Clarke would approve.)