Emflux - a Flux Library for Ember

October 27th 2015

As my Ember chat started to grow, I became more and more unsatisfied about how and where the application state was mutated inside the app. Changes happened not just in different levels on the component hierarchy but also inside the controllers. Additionally, there were chains of mutations that were hard to debug.

For a long time I felt that for an app that doesn't use Ember data, a systematic pattern to follow was missing. Ember 2.0 recommends the data down actions up approach. I initially tried to implement that the best I could but found two issues.

read more

Ember size tracker

June 24th 2015

A small and simple tool I made to track the size of Ember.js library

read more

Passport and Google's OpenID 2.0 to OAuth 2.0 migration

August 2nd 2014

Passport is a popular authentication middleware for Node.js. It has a plug-in system which supports more or less all popular authentication services. For Google it has passport-google and passport-google-oauth plug-ins. Passport-google is OpenID 2.0 based and passport-google-oauth is OAuth 2.0 based.

Google has announced that it terminates OpenID 2.0 support in 2015. If you are like me, you have for a long time offered your users a possibility to sign-up with their Google account using OpenID 2.0 behind the scenes. And are now forced to upgrade to OAuth 2.0.

There are two ways to handle the upgrade without losing track of user identities. The first, simple way is just to switch to OAuth 2.0 and ask user's primary email address from Google as part of the OAuth authentication transaction. You can then search the user from your database using the received email address. For me this doesn't work as my service allows users to change their email addresses. I'm not forcing that they must use their primary Google email addresses. The only thing I really know about them is their OpenID id, e.g.

https://www.google.com/accounts/o8/id?id=AItOawn7n9TjBjhPf5Eip-ld01Yep2NgGsNk32E

read more

MeetAndSpeak update

March 23rd 2014

[Link to this blog post is visible to all MeetAndSpeak users]

Currently there are about 400 active MeetAndSpeak (MAS) users. I think a status update is in order, there has never really been one.

MAS has been my hobby now about four years. Behind the service there is one person, that's me. I can't say that I enjoy writing PR emails or blog posts so you may have never heard of me.

read more

iOS 7 UIWebView, still not great

September 21st 2013

If you are a mobile developer who would like to use web technologies wherever possible, you probably want to find out whether UIWebView in iOS7 finally supports WebGL and includes WebKit Nitro JavaScript engine. I tested exactly that today. The short answer is a disappointing no to both questions.

My iPad 2 Sunspider 1.0.1 test results:

iOS 7iOS 6
Mobile Safari1268.5ms1440.0ms (1)
UIWebView test app6129.0ms5496.8ms (2)
Google Chrome for iOS6174.1ms-

1) http://www.macworld.com/article/2010286/lab-tests-ios-6-and-ios-5-performance-differences.html

2) http://stackoverflow.com/a/18788195

UIWebView test app is a trivial iOS app I wrote. It instantiates one full-screen UIWebView object which loads the Sunspider test page.

read more