Enjoying a belated beachside birthday bash by Botany Bay before bed… then a big run and a buffet breakfast š
I have surrounded myself, virtually, with successful creators, developers and entrepreneurs. The blogs I read and the podcasts I listen to are full of people who have found, or sometimes carved out, a niche.
Some deliberately chose an under-served area and went deep, gradually building up a reputation and an audience. Others have āladdered upā from one opportunity to another, refining their skills as they go.
I look at what nearly all of them do and think to myself, āI could do thatā. As best I can tell I am smart, articulate and capable.
Capable of writing. Capable of developing. Capable of designing interfaces that make sense. Capable of thinking strategically, weighing risks and making decisions. Capable of learning just about anything. Capable of teaching others.
And yet there seems to be one big thing I am incapable of. I am incapable of staying focused on one thing for more than a few weeks. Incapable of coming up with a long term plan and sticking with it. Incapable of mastering a topic once Iāve got the basics (or at best the intermediates) down pat. Incapable of finishing projects without external motivation.
Iām a big believer in focusing on your strengths, building them up until you stand out. And yet I wonder, are there some weaknesses that are too big to ignore? Can a big enough weakness hamstring a person, negating any strengths. Should I focus on my strengths or try to overcome my weaknesses?
But maybe itās a moot point. Perhaps both approaches require a level of determination and grit that Iām not capable of.
And so I drift. Accumulating shallow learnings. A jack of a great many IT trades. A master of none.
But thatās okay isnāt it? Not everyone can be a master. There are a lot of people happily existing at levels below master. Thereās hobbyists. Amateurs. Prosumers. Juniors. Apprentices. Professionals. The proficient. The competent. The ordinary.
Perhaps I need to stop surrounding myself with the exceptional. They are, after all, exceptions. Maybe I need to settle for being ordinary.
Or maybe I need to look for different opportunities. To look for people or places where versatility is whatās needed. Perhaps thatās on smaller teams that donāt have the headroom for exceptional experts? Or finding a partner with complimentary strengths and weaknesses?
Iām not sure what the answer is. Iām not even sure Iāve figured out what the question is.
Looks like the (unedited?) videos for Railsconf 2019 are up for the 1st and 2nd of May…
Makes Rubyconf AU 2019 stand out even more for getting the edited videos up the same day as the talks!!!
Good article on delegating (technically forwarding) in Standard Ruby, in Rails or with a third party gem for more control:
Today I learned Transport NSW has been trialling on-demand public transport!!! Looks like a local but public Uber Pool to get people the last (or first) “mile” from/to existing public transport. Very cool!
Iāve never developed for Android, Iāve never tried āReactiveā programming and Iāve only used Java in uni classes but I enjoyed reading thoughtbot.com/blog/demy…
The basic concepts reminded me a little of Key-Value Observing in Cocoa on Mac
Just found some old notes I took about learning, although Iām not sure of the context. All of it looks useful but the things I highlighted are still things I need to learn.
Good post (as usual) about Microsoft, Zoom and Slack by Ben Thompson: stratechery.com/2019/micr…
If he is correct, I donāt think Microsoft will be winning any new customers with Teams. Itās clunky, painful and feels āenterpriseyā
I was working with the Campaign Monitor API (https://www.campaignmonitor.com/api/) today.
It works but I donāt love that their gem (http://campaignmonitor.github.io/createsend-ruby/) keeps returning Hashie Mashes instead of ārealā Ruby objects. I might be missing something but I kept having to use parts of the Mash to fetch additional Mashes which then contained the data I was after. It would be nice if I could retrieve the āparentā object and then lazily load child objects as I access them.
On that note, the property names were quite inconsistent. Sometimes they would be ruby-like but then other times Iād have to write things like lists.map(&:Name) or client_ref.ClientID.
Lastly, I didnāt like that the API offers almost nothing in the way of filtering or searching when retrieving results. It felt like every time I wanted to do anything I had to iterate through a whole list (possibly across multiple pages) until I found the result I was after.
Maybe Iām spoiled by how developer friendly most Ruby code is but it felt a little like this API and the gem were just slapped together so they could tick off āRESTful APIā and āRuby wrapperā on their feature list checkboxes but without really thinking about the end user of the software.
š I ended up enjoying the Fire Sermon so much I read the next two in quick succession!
Dark at times, but believable and compelling! Glad I read them!
I enjoyed the latest episode of Without Fail, gave some good insight into how Facebook became what it is
Iām really enjoying listening to Build Your SaaS. The latest episode on pricing and why ācharge moreā is good general advice (but only general advice) was nuanced and thought provoking!
Nice overlap between latest https://www.ted.com/series/worklife_with_adam_grant and hbr.org/ideacast/… on strengths vs weaknesses at work…
Both episodes were helpfully challenging in other areas too!
Finding #4 surprised me the most, that Google serves up basically the same personalised search results whether youāre logged in or in private/incognito mode!
š My holiday reading this week had an accidental dystopian theme:
Hot tip: Use cling wrap for long term cable storage
ā
cheap
ā
available everywhere
ā
comes off easily
ā
no residue
ā
all cable/peripheral types
Biggest downside is speed of application. For frequently used cables splash out on some Velcro strips

Enjoyed listening to Brittany Martin interview Sam Saffron on the latest Ruby on Rails Podcast: 5by5.tv/rubyonrai…
Thereās a few things I want to investigate (particularly around slow tests) but it looks like Iāll have to relisten as the show notes are a bit sparse.
Today I learned you can run rails notes to get a report of all comments in Rails that start with FIXME, TODO or OPTIMIZE (by default):
Search is hard and people expect Google quality search on every website they visit.
Weāve been considering ways to improve search in an app at work.
github.com/ankane/se… looks like an interesting option, wrapping some learning around Elasticsearch
Good Episode of Work Life on Bouncing Back (or forward) From Rejection:
www.ted.com/podcasts/…
Timely for me as I try to go against my instincts and put myself out there a bit more
Haha! Had some fun watching this video of 3 Japanese Internationals take on 100 kids in football š
Coincidentally, today I happened to read two very different (age and content) but complementary articles on Code Audits:
I just listened to a great podcast episode on Managing Burnout at work.
Some really good tips on identifying and combatting burnout and its overlap with stress and depression.
It hit close to home from a previous job so Iām looking forward to digging deeper into the topic!
Under the Criminal Code Amendment (Sharing of Abhorrent Violent Material) Bill 2019 itās now a criminal act for an ISP, CDN or hosting provider to allow someone to access violent content.
Whatās next? Holding Australia Post and OfficeWorks criminally liable for pamphlets people print out and send in the mail or civil engineering firms liable for bill posters people stick to the sides of underpasses!
We donāt want OfficeWorks deciding what people can print, Australia Post inspecting every item of mail or local engineering firms folding or moving to another country but thatās exactly what this poorly thought through law is going to do to Internet companies if itās not amended or, better yet, repealed!
š¤
YAML is too vulnerable to attacks to consider for new projects.
– Thoughtbot Application Security Guide
(As discussed on The Bike Shed)