Profile

Cover photo
Michael Mahemoff
Works at Player FM
Attended University of Melbourne
Lives in London
15,851 followers
AboutPostsPhotosYouTube

Stream

Michael Mahemoff

Shared publicly  - 
 
Dat countdown
#io15
 ·  Translate
1
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
Interesting overview on JS frameworks and magic; worth reading the comments here if you're in the market for one.
 
Looking at single-page-app frameworks and not keen on any of them. The list at http://todomvc.com/ has a bunch, and I think I've rejected them all -- I concede that some of these reasons are just flat-out prejudice or reasonably baseless bad feelings or seem pretty trivial to whoever's reading, so this is your chance to talk me into something you think is good and show me why my bad feelings are unjustified or wrong.

What I'd like is two-way data binding, routing, and some notion of making separate isolated components. I don't have a pure REST put/delete/get API to back end onto, and I do not want a "framework" which has as a selling point that you can switch different routing or template components in and out; if I'm assembling my own preferences out of bits, then I won't use a framework at all; I'll stitch them together myself. The point of using a framework is exactly that it does everything, and I'm OK with using the framework's methods to do X, Y, and Z, rather than cursing because I want to use a different routing library. I am a large believer in identifying the approach that a particular tool takes, and not using the tool if what you want to do doesn't match that approach, even if it's possible to use the tool in ways other than its expected that you will. Every time I've done this in the past I've ended up being burned by it. The thing I want is to identify something which wants to do the things I plan, and then use it; not to find something which doesn't want to work that way and then make it work that way instead.

So, convince me I'm wrong on your preferred choice from this list, or mention something I don't know about. And yes, I could write my own, but I'm massively resistant to that because that just makes the another-day-another-framework problem even worse.

There is one non-negotiable rule: JavaScript. No other languages which compile to JavaScript. I don't mind things like React's JSX, because that's being used to write HTML (although I'm not sure about it), but no Coffeescript libraries, please.

Backbone.js - also requires underscore and jquery. Some ideal thing for this really ought to be self-contained. Concerned about "is pre-configured to sync with a RESTful API" too, and I have to plug in my own choice of templating library.
AngularJS - used it in the past for things. It makes me sad. There's too much magic; it's fine until something doesn't work, and then you have to reverse-engineer all the magic.
Ember.js - is massive and confuses the hell out of me. I did a bit of hacking on Discourse, which is Ember, and it took me about a day just to work out how to change the simplest thing.
KnockoutJS - seems way, way verbose. `function AppViewModel() { this.firstName = ko.observable("Bert"); this.fullName = ko.computed(function() { ... }, this); } ko.applyBindings(new AppViewModel());`, seriously? Gnah. I hate that.
Dojo - old. I never liked it the first time around, really, and I have the feeling that the zeitgeist has not gone with it
YUI - old, and pretty much abandoned upstream afaik. Used it at Canonical; "aspect-oriented programming" is basically computed COME FROM from Intercal, which puts invisible trapdoors in your code so following the thread of control is hell on legs.
Knockback.js - builds on Knockout, so see knockout
CanJS - models stuff seems specifically designed to back end to a put/get/delete rest API, which I don't have.
Polymer - seems like it may be ropy on iOS. Also, it has a nice big library of pre-built components, which is great, but they're all Material Design components, which is not great at all; I'm not putting an Android-themed app on other platforms, for the same reason I wouldn't put an app which looks like iOS on Android.
React - I fear React. It seems to be the popular thing, but it's very much a thing where one steps out of the world and into the React World instead. Have spoken to a number of people using it for real projects and I don't like the idea of it.
Mithril - I utterly utterly do not understand the `m.prop` stuff. I don't know whether the docs explain it badly or I'm just not getting it, but I completely cannot grasp the Zen of Mithril. Shame, because it looks cool, if I could get it, which I can't.
Ampersand - I'm in two minds about the "it's a zillion small libraries" thing. More to the point, I have no sense of how to structure the overall application; individual bits I can see how to do, but I don't have a good sense of how to put it together
Flight - I'm not sure this is the right thing for new apps. For restructuring an existing thing, I think it'd be good, but I'm building from scratch.
Vue.js - doesn't do routing or provide large-scale structure; they have some notes saying "hey, that means you can do it your way" which I don't want to do
MarionetteJS - depends on Backbone, so see Backbone.
TroopJS + RequireJS - lots of dependencies. I do not get how to actually structure an application with it, and the docs are not helpful at this.

I wish I were happy about any of these. I hope I'm wrong and there's either something I've missed or a framework I don't know about. Speak on, readers.
42 comments on original post
3
1
Dor Kleiman (configurator)'s profile photoMichael Mahemoff's profile photoRichard Vowles's profile photoMatt Dragon's profile photo
5 comments
 
The great thing about Angular is there is always a way to get something to work. 
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
The confectionary tantrums.
Brace yourself.
They're coming.
 
Soon, Google will announce which devices are and aren't getting M, and then affected Nexus users are going to be all like...

#pixelpushing  
55 comments on original post
7
Robert T. Best's profile photoKristoffer Yi Fredriksson's profile photoStuart Langridge's profile photo
3 comments
 
As long as chrome doesn't require the latest android, I don't mind. If it does then you'll hear one of these tantrums from me, certainly
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
#LifeHacks   #SecurityTips  

Good trick with the crystals and that. Does it work for human viruses too?
7
3
Michael Mahemoff's profile photoFrederick ROS's profile photoNeil Connolly's profile photoBoris Callens's profile photo
6 comments
 
I missed a trick there +Felipe Leme​. #AlwaysBeLearning
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
 
Here is something quite spectacular. The photo below is a sunset taken on Mars. And it's amazing because of two things:

1. It's on Mars! Just think about that for a moment. This is a picture taken from the surface of another planet. Yes, that kind of thing almost feels normal these days ...but, it's from another planet!!

2. It's blue-ish, not red like on Earth. Isn't that weird? So, on Earth, more commonly known in the galaxy as the blue planet, we have red sunsets. But on Mars, more commonly known as the red planet, the sunset is blue.

"The colors come from the fact that the very fine dust is the right size so that blue light penetrates the atmosphere slightly more efficiently. When the blue light scatters off the dust, it stays closer to the direction of the sun than light of other colors does. The rest of the sky is yellow to orange, as yellow and red light scatter all over the sky instead of being absorbed or staying close to the sun."

"Just as colors are made more dramatic in sunsets on Earth, Martian sunsets make the blue near the sun's part of the sky much more prominent, while normal daylight makes the rusty color of the dust more prominent."
~http://www.nasa.gov/jpl/msl/nasas-curiosity-rover-views-serene-sundown-on-mars

Damn, I love the universe.
49 comments on original post
16
5
Roman Nurik's profile photoMadhusudhan G Revankar's profile photo
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
Happy HTTP/2 Day!

Welcome RFC 7540.
It's out! This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection. It also …
20
11
Vince Pimentel (CASPER)'s profile photoSamuel Tom's profile photoMandy Waite's profile photoLinda Lawton's profile photo
8 comments
 
There is no evidence whatsoever that Grigorik's technique will make a site that's so slow people abandon it before the first page is loaded fast enough to retain anyone -- but it does highlight the fact that it's not useful in the general case.

Since you mentioned it, developers would have realized far greater win putting SPDY on their servers than completely rewriting their code to achieve the unrealistic and inefficient goal of stuffing the whole enchilada into a single request.
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
Cennydd's Razor: “Never attribute to stupidity that which is adequately explained by complexity.”

+Cennydd Bowles on Twitter punditry as viewed from the inside.
I started a “Lessons learned at Twitter” post, but I think there’s just one big one: It’s Not What You Think. We all know Hanlon’s Razor: “Never attribute to malice that which is adequately explained by stupidity.” Here’s my preferred extension: “Never attribute to stupidity that which is adequately explained by complexity.” To work somewhere like Twitter is to face perpetual speculation. A hundred bug reports...
6
1
Filip Hráček's profile photo
Add a comment...
In his circles
1,063 people
Have him in circles
15,851 people
abdou idrisss's profile photo
USInjuryCenters's profile photo
robin khan's profile photo
femi adedoyin's profile photo
Evrika LLP's profile photo
Natalia Amundson's profile photo
Ray Grieselhuber's profile photo
Noel Sequeira's profile photo
Tess Beatty's profile photo

Michael Mahemoff

Shared publicly  - 
 
App deep linking with goo.gl - Google Developers Blog http://nzzl.us/fc7G7Vr

How is it different from using your own domain?
Search Images Maps Play YouTube News Gmail Drive More ▼ · CalendarTranslateMobileBooksWalletShoppingBloggerFinancePhotosVideosDocs · Even more » ...
7
3
Michael Mahemoff's profile photogeorge oloo's profile photoJonathan Souied's profile photoShoaib Akhtar's profile photo
6 comments
 
Android tries to open t.co link instead of the actual link, so the intent regexp won't match and you can't directly open it in the corresponding app. But tried it just now and in fact Twitter opens everything in its internal browser now, so this is moot.
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
Quality Eurovision doodle.
8
1
george oloo's profile photo
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
 
New and Trending podcasts on any topic

Now available on web, phone, and tablet.

Beta available - https://plus.google.com/communities/114791434547041094229
View original post
8
1
Ron K Jeffries's profile photoRobert T. Best's profile photo
 
Interesting idea. Will have a look.
Add a comment...

Michael Mahemoff

Shared publicly  - 
 
Lars Fosdal originally shared to Chuckleworthy:
 
The story of Pixels
5 comments on original post
20
7
Mark Heseltine's profile photoJohan Sundström's profile photo
Add a comment...

Michael Mahemoff
owner

Discussion  - 
 
+Rey Bango crowdsourcing ways to measure Devrel success.
Developer relations is an integral part of many software companies who hope to win the hearts and minds of developers. You may refer to it as developer
3
1
Denise Duncan's profile photo
Add a comment...
People
In his circles
1,063 people
Have him in circles
15,851 people
abdou idrisss's profile photo
USInjuryCenters's profile photo
robin khan's profile photo
femi adedoyin's profile photo
Evrika LLP's profile photo
Natalia Amundson's profile photo
Ray Grieselhuber's profile photo
Noel Sequeira's profile photo
Tess Beatty's profile photo
Education
  • 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
Gender
Male
Story
Tagline
It's so just cloud
Introduction
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.

Home: http://mahemoff.com
Email: michael@mahemoff.com

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. http://faviconist.com) 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 http://podca.st! 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: http://webwait.com  http://listoftweets.com http://project.mahemoff.com/hn
And a few single-serving sites for a laff: http://ie6isolderthanyourgrandpa.com http://isthewebdead.com http://itssojustcloud.com

Chrome apps/extensions: Humans.txt extension (https://chrome.google.com/webstore/detail/pocdghmbbodjiclginddlaimdaholhfk), also a Chrome Boilerplate (https://github.com/mahemoff/chrome-boilerplate), etc.

Content: Blogging at http://softwareas.com, wrote Ajax Design Patterns for O'Reilly (http://ajaxpatterns.org), some older stuff at http://mahemoff.com. Also blogged for Ajaxian and guest blogged on http://readwriteweb.com.

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. http://mahemoff.com/paper for proof there was a time when people stuck postscript files on the web.

Development:
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 (http://www.ijmijournal.com/article/S1386-5056%2806%2900201-2/abstract). 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
Work
Occupation
Make, Speak, and Listen
Skills
What do I put here?
Employment
  • 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
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
London
Previously
Melbourne