Cover photo
Michael Mahemoff
Works at Player FM
Attended University of Melbourne
Lives in London


Michael Mahemoff

Shared publicly  - 
Tim O'Reilly on Technology and Work by EconTalk #nowplaying
Tim O'Reilly of O'Reilly Media talks with EconTalk host Russ Roberts about his career in technology and media and the challenges facing low-wage workers as technology advances. Topics include the early days of the Internet, the efficacy of regulation to protect workers, and the poetry of Elizabeth Bishop.
Add a comment...

Michael Mahemoff

Shared publicly  - 
Ryan Gosling is cast to take over Blade Runner.  It won't be good enough to warrant this level of emphasis.
View original post
G. Hussain Chinoy's profile photo
Add a comment...

Michael Mahemoff

Shared publicly  - 
Thoughts coming up as I rehash some CS literature on data structures and algorithms:

#Memory is interesting, and (as applies to humans) a very broad, sweeping term. How you store, arrange and index your memory imprints affects how, and for what purposes, you can use them, and at what cost.

For instance, I largely don't seem to associate memories much with time, which makes it daunting for me to give useful answers to questions beginning with "When...", but usually have great recall for understanding based recall, making it easier to answer "Why..." or "How..." type questions.

I'm also pretty bad at enumerating, which makes "List all..." or "How many..." type inquiries harder. I think this one is a co-evolved effect of the easy of deferring this type of lookups to external memory for the rare cases I'd need such data, and that growing up in a different era/environment, needs and abilities would have trained that kind of recall more.

Recognition type memory ("Who..." or "What...") is another interesting aspect: have I seen this (or an earlier version of) person before, or problem, idea, situation, et cetera, and can I name it, access salient data about it, useful for the situation and relevant for my needs — and I recognize with some interest that regarding humans, I weigh their chosen alias much above name in what I recall easiest (maybe due to exposure) — and recall story better still. Given a smell, or sound, or shape, et cetera, can I name or describe what it is?

Finally, recall type access to memory; if I from the thought of a thing, can revive and perceive its properties: what does a living tomato plant smell like? What does a curious duck make? Was the temperature pleasant at the beach?
View original post
Add a comment...

Michael Mahemoff

Shared publicly  - 
Bell and whistle driven development

Today's "cool little feature you may as well add" is tomorrow's maintenance nightmare. And next week's. And next year's ...

The "cool little feature" you decide to add may cost enough in maintenance that you'll never ship the "critical big feature"

Even if you are Doing It Right with solid architecture and automated tests, little features add complexity and onus to always be refactoring.

Jürgen Schilke's profile photo
Add a comment...

Michael Mahemoff

Shared publicly  - 
Now two months later, I'm getting the same warning again. Seems like Google Apps is trying to fatigue grandfathered customers into ending it, without officially announcing an end.

Anyone else seeing it? 
(+Rich Bradshaw)
Did anyone else find Google has suddenly forgotten about the grandfathered storage plan?

I had a 36GB plan 2 days ago, now I get warnings it's full and Google has forgotten about the grandfather clause. Payment is up to date afaict. Thoughts on getting this solved by a human?
6 comments on original post
Michel Alexandre Salim (Arcane Hexed Mill)'s profile photoRichard Vowles's profile photoMiša Brežanac's profile photoMichael Mahemoff's profile photo
+Miša Brežanac They cancelled my legacy plan because it wasn't paid in time, while acknowledging they never sent any warning or gave any buffer time. Ridiculous.

Note to future self > other > request a call
for gmail account
Add a comment...

Michael Mahemoff

Shared publicly  - 
Join classes (aka join tables) are entities whose main purpose is to associate one object (aka record) with another in a NxN relationship. A common and decades-old pattern, which is almost always wrong, is to name these classes after both association…
Ivo Encarnação's profile photoCarlos Reynosa's profile photo
Add a comment...

Michael Mahemoff

Shared publicly  - 
Chrome custom tabs is here

Why am I excited, as a user and maker of Android apps, about Chrome custom tabs? I explained why after seeing it announced at IO (

Consider what happens when a link needs to open a web page? One solution is for the app to host its own webview, thus keeping the user from leaving their app and retaining their controls and branding. This unfortunately leads to a cottage industry in “optimising your website for Twitter/Pinterest/Facebook webviews”. The webview, being a sandboxed environment, is slow to load as caching isn’t possible, and nor does it inherit cookies or the user’s browser settings. So, not ideal.

Custom tabs aim to get the best of both worlds: custom controls and branding, but inside “actual Chrome”. Even the transition between browser and app can be configured, and pre-caching is also possible, ie telling Chrome to start loading something while the user is inside the app.

Player FM 2.7.1 just started rolling out today with support for this.
And now this has been cross-posted to the Android Developer's blog too. #boom - Ade Oshineye - Google+
Martin Vandzura's profile photoLonelyBob K's profile photoMichael Mahemoff's profile photoAde Oshineye's profile photo
+LonelyBob K Brilliant :) Thought it would be Chrome-specific for a while.
Add a comment...

Michael Mahemoff

Shared publicly  - 
I've been thinking a lot recently about Meta platforms and what that means for us web developers.
View original post
Add a comment...

Michael Mahemoff

Shared publicly  - 
Chromecast Audio

Of everything that +Google​ announced yesterday, this is what's got me pumped the most. I've always loved the idea of wireless music systems like Sonos Connect but at well over £250 there's no way I would ever choose one over Chromecast Audio for £30*
13 comments on original post
Robert T. Best's profile photoMichael Mahemoff's profile photoJames Cridland's profile photo

Message From Customer Service


I completely understand your concern in this.

I understand you're not pleased to know that Amazon has chosen not to sell ''Chromecast'' devices.

Please understand we've not taken any such decision and does not comment about rumors or speculative news reports.

However, I can assure you that we have not decided to stop selling ''Chromecast'' devices.

Add a comment...

Michael Mahemoff

Shared publicly  - 
For those who don’t know, Twitter converts every URL to its own “” shortener URL. So no matter how short or long your original URL is, the URL will end up as a fixed character length, and that character length does count towards the 140 limit.
Stefan Janson's profile photoDor Kleiman (configurator)'s profile photo
Really sucks when your url was short. 
Add a comment...

Michael Mahemoff

Shared publicly  - 
Player FM Emojified 👍

Player FM now supports Emoji 🎆🎊🍻

* Where publishers include Emoji in their content, it should now appear on website and Android app. (Example: - thanks +Jeroen Wiert Pluimers for raising this.)
* Channels now have a symbol field, which can include any Unicode/Emoji. You'll see this in some views and for some channels, such as a list of country channels underway (e.g. [Note that with flags in particular, they are only supported by Android 5+ and Apple OSs. Not yet on Windows 10 or - afaict - Ubuntu.]
Jeroen Wiert Pluimers's profile photoMichael Mahemoff's profile photo
+Jeroen Wiert Pluimers That's what this is, support for 4-byte Unicode.
Add a comment...

Michael Mahemoff

Shared publicly  - 
Ctrl-p is “Intellisense for Vim”, allowing you to quickly jump to a file by searching for a few letters or even fancy camel-case type searches. (e.g. find article_editor.rb by searching for “ae”). However, doing all this requires it to maintain a search…
Dan Scott's profile photoMichael Mahemoff's profile photoAlva Kristianto's profile photoSébastien Moran's profile photo
+Dan Scott Ctrl-P itself has always been worthwhile despite the cache shortcoming, but now it's a no-brainer :).
Add a comment...
Michael's Collections
In his circles
1,067 people
Have him in circles
16,023 people
Sam Bessalah's profile photo
Branko Kolesarić's profile photo
Martin Quintana's profile photo
RO water purifier's profile photo
Edward Tanguay's profile photo
Абдулрахман ЕРВР's profile photo
Russell Smith's profile photo
AMAN GUPTA's profile photo
DU LỊCH PHƯỚC HẢI's profile photo
  • University of Melbourne
    PhD, 1997 - 2001
    User Experience Patterns ("Design Reuse in Software Engineering and Human Computer Interaction")
  • University of Melbourne
    B. Sc. (Hons), 1992 - 1996
    Psychology major
  • University of Melbourne
    B. Eng., 1992 - 1996
    Software Engineering major Non-technical electives: Linguistics, Marketing, Accounting
Basic Information
Apps with Google+ Sign-in
  • Crossy Road
  • ギャラガ鉄拳
  • Leo's Fortune
  • Daddy Long Legs
It's so just cloud
It's So Just Cloud! Xoogler making podcasts cool again at Player FM.

Full-stack developer, former Googler, and writer/speaker/loudmouth on all things tech, with a focus on web, user experience, developer experience, and open source. Here on the plus, I manage +Player FM and +Developer Experience pages, moderate Hacker News and Podcasting communities, and share funny-sounding goat videos.


Left gainful employment at Google 2 days after Plus went public. Nothing personal, notice had already been given I assure you :). Did some consulting and public speaking work, made some micro-apps I'd been planning (e.g. and then went full-time on Player FM, something I've been dreaming about since podcasting began in 2004, when I made the gorgeously-styled FAQ at! Previously wrote Ajax Design Patterns (O'Reilly 2006) and blogged for Ajaxian.

These are a few of my favourite things on G+:
  • Web/HTML5/Android/Rails development
  • UX
  • DX (Developer Experience)
  • Podcasting
  • Shiny
A few things I've worked on in the past ...

Web apps:
And a few single-serving sites for a laff:

Chrome apps/extensions: Humans.txt extension (, also a Chrome Boilerplate (, etc.

Content: Blogging at, wrote Ajax Design Patterns for O'Reilly (, some older stuff at Also blogged for Ajaxian and guest blogged on

PhD: Called "Design Reuse in Software Engineering and Human-Computer Interaction", my PhD considered the role of design patterns (a new topic in software at the time!) in improving user experience. for proof there was a time when people stuck postscript files on the web.

As well as front-end web development, I've done my my share of Java and J2EE in various small and large organisations. Since around 2005, I've mostly been running Rails, PHP, Node, and Python on the  back-end.

User Experience: I've been fortunate to perform several user experience roles (helps to get one's foot in the door as a developer first ;). In financial services, I was able to visit trading rooms and redesign a front-end market-maker app. In medicine, I spent time in an Intensive Care Unit to design a mobile (Palm Pilot!) app to support medical decision-making ( I lectured Human-Computer Interaction for a semester at the University of Melbourne's Department of Information Systems.

About Circling You Back: ("Awkward ♫")
There are people who I should have circled, but haven't, including some who've circled me. Now some of you don't care much about that and others of you are Visually Pleasant Spambots from the Planet SocialMedium, in which case you don't need to, or - contingent on your crawling algorithm - will not, read this. But if you do care about being followed back, please read on ...

I'm probably not following you because there's no good, time-efficient, tools for this yet. I do use the suggestion tool and keep an eye on people who are circling me, but it's certainly possible I'll miss you. Especially if we haven't met, we don't have "N people in common", you don't work anywhere I recognise, or your avatar doesn't insanely stand out, since those are the only clues that G+ provides for now in the "circled you" interface. Those are not very strong signals and I'm sure I'd follow many people outside those criteria.

So if I happen to miss you when you circle me, I'm more likely to see you again if you leave a comment or share my story. I'm not saying that to bait for those things, it's just that right now there's not much other way to notice someone. Beyond that, what would make me follow you are the usual suspects: you contribute interesting content here and engage with people. I do hope this is an area where G+ improves.
Bragging rights
Made the favicon come alive
Make, Speak, and Listen
What do I put here?
  • Player FM
    Chief Experience Officer, 2011 - present
  • Google
    Developer Relations, 2010 - 2011
  • Osmosoft, BT
    Senior Architect championing Open Source and Web Standards, 2007 - 2010
  • Enterprise Java, PHP, Rails Web Dev
    Various enterprises/startups, 1997 - 2007
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived