Software Psychology
Bjorn Freeman-Benson
Tweets

Don’t do a full system rewrite…

Veronica RaynerdonicaSep 29, 2014, 12:18 am 
How to Avoid One of the Costliest Mistakes in Software Engineering http://www.theeffectiveengineer.com/blog/cardinal-sin-of-software-engineering via @edmondlau

This is an incredibly important leadership principle…

Bjorn Freeman-Bensonbjorn_fbSep 29, 2014, 6:29 am 
Deadly Leadership Sin #6: if we suppress the great talent below us, they will seek other opportunities http://www.terrystarbucker.com/2014/09/28/beware-7-deadly-leadership-sins/

This is a great talk by one of our engineers…

John HylanddjspinmonkeySep 30, 2014, 10:15 pm 
My “Be Awesome By Being Boring” talk now exists in article form on New Relic’s blog! http://blog.newrelic.com/2014/09/30/boring-technology-is-awesome/

An interesting thought about why you can’t just use free systems…

Bjorn Freeman-Bensonbjorn_fbOct 1, 2014, 3:23 am 
Ello and Consumer Friendly Business Models | stratechery by Ben Thompson http://stratechery.com/2014/ello-consumer-friendly-business-models/

Hmmm, this seems like a really good idea…

Bjorn Freeman-Bensonbjorn_fbOct 1, 2014, 3:25 am 
The greatest job perk you’ve never heard of is called “pre-cation”: http://www.slate.com/articles/business/building_a_better_workplace/…
Work-ish Tweets
crowdidcrowdIDdigitalSep 23, 2014, 6:30 am 
“Growth isn’t a strategy, it’s a result.” – @gapingvoid
Bjorn Freeman-Bensonbjorn_fbSep 24, 2014, 3:22 pm 
Bjorn Freeman-Bensonbjorn_fbSep 25, 2014, 6:02 am 
Bjorn Freeman-Bensonbjorn_fbSep 26, 2014, 3:52 pm 
This is why we don’t hire unicorns (or ninjas), just the best product focused engineers around http://funni.es/1rpP2m4
Josh HannahjdhSep 26, 2014, 9:35 pm 
A Startup CEO’s Guide to Burn Rates and Vaporization, new blog post: http://jdh.so/1CtXOD6
About Programmingabt_programmingSep 28, 2014, 12:14 am 
MVP explained
via @smarty
Jessica KerrjessitronSep 28, 2014, 3:37 am 
The West Coast ideology of making a hero of a singular person (Zuckerberg, Gates) is embedded in its tech. We can do better ~@benhammersley
Bjorn Freeman-Bensonbjorn_fbSep 28, 2014, 5:44 pm 
Opinionated Tweets
Bjorn F-BkingofslugsOct 25, 2012, 3:55 pm 
Tribune endorsement: Too Many Mitts http://shar.es/cjau8 via @sharethis
Bjorn F-BkingofslugsNov 4, 2012, 3:52 am 
Senator Jeff MerkleySenJeffMerkleyNov 24, 2012, 6:48 pm 
David Sarasohn says my proposal 2 fix the filibuster would force “the world’s greatest deliberative body” to deliberate http://www.oregonlive.com/news/oregonian/david_sarasohn/…
John RobbjohnrobbNov 24, 2012, 3:12 pm 
There isn’t a shortage of skilled workers in the US. Just skilled people willing to work for $10 an hour. http://nyti.ms/R82omW
rachael ray rachaelrayDec 16, 2012, 8:55 pm 
Also- love insurance laws for guns. Hunting rifle low cost hand guns & assault rifles high premiums w higher cost w children / teens in home
Markos MoulitsasmarkosJan 1, 2013, 3:02 am 
So if indexing is good enough for the estate tax, why isn’t it good enough for the minimum wage?
Bjorn F-BkingofslugsJan 31, 2013, 3:02 am 
A Second GOP, A Third Party or… http://ti.me/118muN9 via @TIMEPolitics
Bjorn F-BkingofslugsMay 14, 2013, 1:58 am 
“It’s not ‘Tyranny’ just because you were outvoted. That’s Democracy.” http://nyti.ms/ZWk0kX
Bjorn F-BkingofslugsMay 14, 2013, 1:59 am 
The Great Degrader: “The key thing to remember is that both [of his main accomplishments] were sold with lies.” http://nyti.ms/15PyuKu
The Daily EdgeTheDailyEdgeJul 7, 2013, 6:37 pm 
The easiest way to get Rick Perry to leave women alone would be if Planned Parenthood were to rename its facilities “fertilizer plants”
AnonymousYourAnonNewsJul 15, 2013, 10:32 pm 
Why isnt the NRA saying the tragedy wouldn’t have happened if Trayvon Martin was armed,& calling on young black men to get themselves guns?
Bjorn F-BkingofslugsOct 14, 2013, 2:40 pm 
Christopher Columbus was awful (but this other guy was not) http://theoatmeal.com/comics/columbus_day via @Oatmeal
Bjorn F-BkingofslugsNov 26, 2013, 4:28 pm 
“So, for all practical purposes, the government is torturing my father until he dies.” http://www.dilbert.com/blog/entry/i_hope_my_father_dies_soon/
Bjorn F-BkingofslugsDec 18, 2013, 5:31 am 
Bjorn F-BkingofslugsJan 28, 2014, 7:51 am 
Uber and a Child’s Death “New technology does not eliminate well-established legal principles.” http://bits.blogs.nytimes.com/2014/01/27/uber-and-a-childs-death/
John FugelsangJohnFugelsangJan 28, 2014, 3:10 pm 
Theodore Roosevelt on the 1% in his State of the Union speech, before quitting the GOP #SOTU
Bjorn F-BkingofslugsMar 5, 2014, 2:57 pm 
How Washington lost its appeal http://wapo.st/1d2ywkM via @washingtonpost
Bjorn F-BkingofslugsMay 3, 2014, 6:35 am 
It’s Time to Evict Big-Time Sports from American Higher Education http://www.slate.com/articles/sports/sports_nut/2013/12/… via @slate
Lee AtchisonleeatchisonSep 28, 2014, 6:26 pm 
An interesting take. I’ve worked for Amazon, this is nearly all true. http://www.salon.com/2014/09/27/4_ways_amazons_…
Fun Tweets
Bjorn Freeman-Bensonbjorn_fbSep 23, 2014, 2:55 pm 
Average date of the warmest day of the year 1981-2010 http://i.imgur.com/BIXEAAn.png
Bjorn Freeman-Bensonbjorn_fbSep 24, 2014, 5:40 am 
This virtual fly through of a jet engine is pretty cool http://www.rolls-royce.com/interactive_games/journey03/
Bjorn Freeman-Bensonbjorn_fbSep 24, 2014, 2:26 pm 
What a neat idea: the Tour de Drupal, an epic bike ride from the UK and Switzerland to Amsterdam for @drupalcon https://amsterdam2014.drupal.org/news/join-bicycling-fun-amsterdam
Bjorn Freeman-Bensonbjorn_fbSep 24, 2014, 4:36 pm 
There really is no end to Lego creativity (creative Lego adverts) http://speckyboy.com/2009/03/16/39-creative-lego-advertisements-creativty-without-bricks/
Noah SmithNoahpinionSep 25, 2014, 10:54 pm 
Bjorn Freeman-Bensonbjorn_fbSep 26, 2014, 10:13 pm 
André PicardpicardonhealthSep 25, 2014, 1:42 pm 
Canadian problems: Reason for no mail delivery: “Bear at door.” http://trib.al/aWxIi94 via @jclarkson
Finally The IndieWeb

Thanks to a little more free time, I finally got my first IndieWeb script working: this blog will now include not only my writing (such as it hasn’t been, but it might be) but also hand curate aggregations of my two Twitter streams: @bjorn_fb and @kingofslugs.

Code Screams

Martin Fowler explains a code smell as “a surface indication that usually corresponds to a deeper problem in the system”. He explains that there are subtleties and that “The best smells are something that’s easy to spot and most of time lead you to really interesting problems.”

Code screams are my description of something similar, but different: a code scream is a behavioral indication of a deeper problem in the system. It differs from a smell in that it is behavioral rather than structural. For example, a scream is a user interaction action that takes an unusually long time to complete whereas a smell is a method that has more than a dozen lines of code.

Code screams are almost always found in live production systems because reality is much less predictable than anyone can imagine and, as good software developers, we’ve already accounted for all the predictable situations. Thus the only way to hear the code screaming is to have full spectrum software analytics live on the production system.

As a small example of what I’m talking about, here’s one of our production systems screaming for help: the response time goes way up, brown out start happening…

Response time goes up

A normal thought would be “overloaded” with too much data coming in, but the incoming data rate is unchanged:

Incoming data rate is unchanged

 

With further digging, we discovered that the code was in pain because a DDOS attack was underway on our upstream network provider causing very slow TCP streams and thus too many open and pending sockets, hence the servers couldn’t accept additional requests. That’s the essence of a code scream: a behavioral indication (massive increase in response time) of a deeper problem in the system (inability to handle alive but very slow TCP streams).

The software psychologist action plan is to incorporate full spectrum software analytics and alerting on your production systems and then pay attention when they start screaming.

Inspired by the IndieWeb

At New Relic Portland, we’ve put together a nice series of talks we call FutureTalks. We’ve had a number of great talks already but the most interesting one, in my mind, was last week when Amber Case from Esri spoke about the “Rise of the IndieWeb“. Her thesis was that we should each own all our own content rather than relying on various companies to warehouse it, control it, and potentially lose it all when they go out of business. The extreme position of the IndieWeb is that one should host all one’s own content, but a slightly more reasonable approach is that one should at least have a copy of all one’s content.

Inspired by that talk, and realizing that I have a lot of content on twitter (both @bjorn_fb and @kingofslugs), and a small amount of content on Amazon, StackOverflow, Yelp, and other places, I set about to write an automatic indie-web-izer cron script for myself. So starting soon, I’ll be owning my own contributions (or at least I’ll own the definitive copy of them) and I’ll be archiving them here on this blog.

Stand by for the experiment…

A New Year, A New Leaf

I had been writing a personal blog since the late nineties using the simplest of technologies: static files and some Perl scripts. While working at Eclipse, I blogged regularly there on a WordPress platform. About the time I moved on from there to New Relic, I decided to merge my three blogging efforts (personal, professional, and hobby) into a single effort with tags and permissions and such. Not seeing an obvious technical solution and being a computer scientist, I wrote my own. It wasn’t bad and it did everything I wanted, but it had a seemingly minor feature that had a major impact on my blogging, i.e., my writing rate went to zero.

The feature was well intentioned but, wow, what an unintended consequence. The feature was to model the writing process on software engineering: write everything locally, run a “compiler” to build the blog, and then synchronize (deploy) it to the server for publication. The theory was that I would be able to write while connected or disconnected, that I could manage articles and drafts using git, etc. In hindsight, software engineering ideas are ill-suited to writing: the friction I added over a wysiwyg editor was greater than the occasional benefits of revision control and scripting so, like hitting a brick wall, I stopped writing.

Lesson learned that writing-flow is not the same as coding-flow, I’ve switched to that gold standard of blogging, WordPress. I’ve built a custom theme to match my previous (perhaps dated) look and I may write a plug-in or two to restore some of the features of my previous platform, but all that is in the future. The web is full of posts saying “I’m starting a blog” and so let’s see that I actually write more frequently before declaring victory, but so far it’s feeling better already.