• You are currently browsing the archives for the General category.

  • Archive for the ‘General’ Category

    [review] Hybrid and future web meetup at Jayway in Stockholm, Sweden

    Tuesday, November 4th, 2014

    Yesterday evening I went to Hybrid and Future Web Meetup at JayWay in Stockholm, Sweden.


    The three hour meetup was an informal meeting with 3 speakers, great catering and drinks and some very interesting topics:

    new skills for developersAndreas Hassellöf of Nordnet and Gustaf Nilsson Kotte of Jayway showed how they built the Nordnet banking app in a hybrid way. The interesting parts here to me where that they used Angular for the main app but native controls for the navigation elements of the UI to get the highest possible fidelity. They also created a messaging bus between the different parts using a pub/sub model for local storage. They are right now trying to find ways to open source their findings and I would love to see that get out. The other, very interesting part of this talk was how they used Crosswalk to inject a more modern Chromium into legacy Android devices to get much better performance.

    firefoxOS architectureAnders Janmyr was next with a solid overview and live demo of Firefox OS app creation, distribution and debugging. Anders works for Jayway on Sony projects and it was interesting to see someone not from Mozilla or mobile partners talk about the topic I normally cover.

    I closed the evening with a kind of preview of one of my sessions at Øredev tomorrow. In it, I talk about “modern” browser features that to me should be a “given” but got forgotten as we promised them too early to developers and legacy browsers did not support them. The slides are on Slideshare.

    The unedited, raw screencast of my presentation is on YouTube (I say that because I made some mistakes in it – for example I bollocksed up the child selector explanation and one code example was missing a property):

    This was the first time Jayway ran an event like this and I thoroughly enjoyed it. A good “after work” experience. Moar!

    Reward my actions, please?

    Monday, November 3rd, 2014

    (this was first published on Medium, but kept here for future reference. Also, I know how to use bullet points here)

    I remember the first time I used the web. I found these weird things that were words that were underlined. When I activated them, I went to a place that has content related to that word. I liked that. It meant that I didn’t have to disconnect, re-dial another number and connect there to get other content. It was interlinked content using a very simple tool.

    My actions were rewarded. I clicked a link about kittens and I got information about kittens. I entered “what is the difference between an Indian and African elephant” in a search box, hit enter and got the information I needed after following another one of those underlined things.

    Then the bad guys came. They wanted you to go where you didn’t plan to go and show you things you weren’t interested in but they got paid for showing you. This is how we got pop-ups, pop-unders, interstitials and in the worst case phishing sites.

    Bad guys make links and submit buttons do things they were not meant to do. They give you something else than the thing you came for. They don’t reward you for your actions. They distract, redirect, misdirect and monitor you.

    Fast forward to now. Browsers have popup blockers and malware filters. They tell you when a link looks dodgy. This is great.
    However, the behaviour of the bad guys seems to become a modus operandi of good guys, too. Those who don’t think about me, but about their own needs and wants first.

    More and more I find myself activating a link, submitting a form or even typing in a URL and I don’t get what I want. Instead I get all kind of nonsense I didn’t come for:

    • Please download our app
    • Please do other actions on our site
    • Please do these tasks that are super important to us but not related to what you are doing right now
    • Please use a different browser/resolution/device/religion/creed/gender

    Granted, the latter is a bit over the top, but they all boil down to one thing:

    You care more about yourself and bolstering some numbers you measure than about me, your user.

    And this annoys me. Don’t do that. Be the good person that shows behind links and actions the stuff people came for. Show that first and foremost and in a very simple fashion. Then show some other things. I am much more likely to interact more with your product when I had a good experience than when I feel badgered by it to do more without ever reaching what I came for.

    You want an example? OK. Here’s looking at you LinkedIn. I get an email from someone interesting who wants to connect with me. The job title is truncated, the company not named. Alright then — I touch the button in the email, the LinkedIn app pops up and I get the same shortened title of that person and still no company name. It needs another tap, a long spinner and loading to get that. I connect. Wahey.

    Five minutes later, I think that I might as well say hi to that person. I go to the LinkedIn app, to “connections” and I’d expect new connections there, right? Wrong. I get a “People you may know” and a list of connections that has nothing to do with my last actions or new contacts. Frankly I don’t know why I see these people.

    I understand you want me to interact with your product. Then let me interact. Don’t send me down a rabbit hole. Make my clicks count. Then I send you all my love and I am very happy to pay for your products.

    You don’t lose users because you don’t tell them enough about other cool features you have. You lose them because you confuse them. Reward my actions and we can work together!

    Speaking at the Trondheim Developer Conference – good show!

    Tuesday, October 28th, 2014

    TL;DR: The Trondheim Development Conference 2014 was incredible. Well worth my time and a fresh breath of great organisation.

    trondheim Developer conference

    I am right now on the plane back from Oslo to London – a good chance to put together a few thoughts on the conference I just spoke at. The Trondheim Developer Conference was – one might be amazed to learn – a conference for developers in Trondheim, Norway. All of the money that is left over after the organisers covered the cost goes to supporting other local events and developer programs. In stark contrast to other not-for-profit events this one shines with a classy veneer that is hard to find and would normally demand a mid-3 digit price for the tickets.

    This is all the more surprising seeing that Norway is a ridiculously expensive place where I tend not to breathe in too much as I am not sure if they charge for air or not.

    Clarion Hotel Trondheim - outside
    Clarion Hotel Trondheim - inside

    The location of the one day conference was the Clarion Hotel & Congress Trondheim, a high-class location with great connectivity and excellent catering. Before I wax poetic about the event here, let’s just give you a quick list:

    • TDC treats their speakers really well. I had full travel and accommodation coverage with airport pick-ups and public transport bringing me to the venue. I got a very simple list with all the information I needed and there was no back and forth about what I want – anything I could think of had already been anticipated. The speaker lounge was functional and easily accessible. The pre-conference speaker dinner lavish.
    • Everything about the event happened in the same building. This meant it was easy to go back to your room to get things or have undisturbed preparation or phone time. It also meant that attendees didn’t get lost on the way to other venues.
    • Superb catering. Coffee, cookies and fruit available throughout the day.
    • Great lunch organisation that should be copied by others. It wasn’t an affair where you had to queue up for ages trying to get the good bits of a buffet. Instead the food was already on the tables and all you had to do was pick a seat, start a chat and dig in. That way the one hour break was one hour of nourishment and conversation, not pushing and trying to find a spot to eat.
    • Wireless was strong and bountiful. I was able to upload my screencasts and cover the event on social media without a hitch. There was no need to sign up or get vouchers or whatever else is in between us and online bliss – simply a wireless name and a password.
    • Big rooms with great sound and AV setup. The organisers had a big box of cable connectors in case you brought exotic computers. We had enough microphones and the rooms had enough space.
    • Audience feedback was simple. When entering a session, attendees got a roulette chip and when leaving the session they dropped them in provided baskets stating “awesome” or “meh”. There was also an email directly after the event asking people to provide feedback.
    • Non-pushy exhibitors. There was a mix of commercial partners and supported not-for-profit organisations with booths and stands. Each of them had something nice to show (Oculus Rift probably was the overall winner) and none of them had booth babes or sales weasels. All the people I talked to had good info and were not pushy but helpful instead.
    • A clever time table. Whilst I am not a big fan of multi-track conferences, TDC had 5 tracks but limited the talks to 30 minutes. This meant there were 15 minute breaks in between tracks to have a coffee and go to the other room. I loved that. It meant speakers need to cut to the chase faster.
    • Multilingual presentations. Whilst my knowledge of Norwegian is to try to guess the German sounding words in it and wondering why everything is written very differently to Swedish I think it gave a lot of local presenters a better chance to reach the local audience when sticking to their mother tongue. The amounts of talks were even, so I could go to the one or two English talks in each time slot. With the talks being short it was no biggie if one slot didn’t have something that excited you.
    • A nice after party with a band and just the right amount of drinks. Make no mistake – alcohol costs an arm and a leg in Norway (and I think the main organiser ended up with a peg leg) but the party was well-behaved with a nice band and lots of space to have chats without having to shout at one another.
    • Good diversity of speakers and audience There was a healthy mix and Scandinavian countries are known to be very much about equality.
    • It started and ended with science and blowing things up. I was mesmerised by Selda Ekiz who started and wrapped up the event by showing some physics experiments of the explosive kind. She is a local celebrity and TV presenter who runs a children’s show explaining physics. Think Mythbusters but with incredible charm and a lot less ad breaks. If you have an event, consider getting her – I loved every second.

    Selda Ekiz on stage

    I was overwhelmed how much fun and how relaxing the whole event was. There was no rush, no queues, no confusion as to what goes where. If you want a conference to check out next October, TDC is a great choice.

    My own contributions to the event were two sessions (as I filled in for one that didn’t work out). The first one was about allowing HTML5 to graduate, or – in other words – not being afraid of using it.

    You can watch a the screencast with me talking about how HTML5 missed its graduation on YouTube.

    The HTML5 graduation slides are on Slideshare.

    The other session was about the need to create offline apps for the now and coming market. Marketing of products keeps telling us that we’re always connected but this couldn’t be further from the truth. It is up to us as developers to condition our users to trust the web to work even when the pesky wireless is acting up again.

    You can watch the screencast of the offline talk on YouTube.

    The Working connected to create offline slides are on Slideshare.

    I had a blast and I hope to meet many of the people I met at TDC again soon.

    The things browsers can do – SAE Alumni Conference, Berlin 2014

    Saturday, October 25th, 2014

    Two days ago I was in Berlin for a day to present at the SAE alumni Conference in Berlin, Germany. I knew nothing about SAE before I went there except for the ads I see on the Tube in London. I was pretty amazed to see just how big a community the alumni and chapters of this school are. And how proud they are.

    SAE Afterparty

    My presentation The things browsers can do – go play with the web was a trial-run of a talk I will re-hash a bit at a few more conferences to come.

    In essence, the thing I wanted to bring across is that HTML5 has now matured and is soon a recommendation.

    And along the way we seem to have lost the excitement for it. One too many shiny HTML5 demo telling us we need a certain browser to enjoy the web. One more polyfill and library telling us without this extra overhead HTML5 isn’t ready. One more article telling us just how broken this one week old experimental implementation of the standard is. All of this left us tainted. We didn’t believe in HTML5 as a viable solution but something that is a compilation target instead.

    Techno nightmare by @elektrojunge

    In this talk I wanted to remind people just how much better browser support for the basic parts of HTML5 and friends is right now. And what you can do with it beyond impressive demos. No whizzbang examples here, but things you can use now. With a bit of effort you can even use them without pestering browsers that don’t support what you want to achieve. It is not about bringing modern functionality to all – browsers; it is about giving people things that work.

    I recorded a screencast and put it on YouTube

    The slides are on Slideshare.

    All in all I enjoyed the convention and want to thank the organizers for having me and looking after me in an excellent fashion. It was refreshing to meet students who don’t have time to agonize which of the three task runners released this week to use. Instead who have to deliver something right now and in a working fashion. This makes a difference

    Removing private metadata (geolocation, time, date) from photos the simple way: removephotodata.com

    Tuesday, October 21st, 2014

    When you take photos with your smartphone or camera it adds much more to the image than meets the eye. This EXIF data contains all kind of interesting information: type of device, flash on or off, time, date and most worrying – geographical location. Services like Flickr or Google Plus use this data to show your photos on a map, which is nice, but you may find yourself in situations where you share images without wanting to tell the recipient in detail where and when they were taken.

    For example the photo of me here:

    christian heilmann, not sure about the shirt

    Doesn’t only tell you that I am not sure about this shirt, but also the following information:

    • GPSInfoIFDPointer: 462
    • Model: Nexus 5
    • ExifIFDPointer: 134
    • YCbCrPositioning: 1
    • YResolution: 72
    • ResolutionUnit: 2
    • XResolution: 72
    • Make: LGE
    • ApertureValue: 3.07
    • InteroperabilityIFDPointer: 432
    • DateTimeDigitized: 2014:10:19 16:06:20
    • ShutterSpeedValue: 5.321
    • ColorSpace: 1
    • DateTimeOriginal: 2014:10:19 16:06:20
    • FlashpixVersion: 0100
    • ExposureBias: 0
    • PixelYDimension: 960
    • ExifVersion: 0220
    • PixelXDimension: 1280
    • FocalLength: 1.23
    • Flash: Flash did not fire
    • ExposureTime: 0.025
    • ISOSpeedRatings: 102
    • ComponentsConfiguration: YCbCr
    • FNumber: 2.9
    • GPSImgDirection: 105
    • GPSImgDirectionRef: M
    • GPSLatitudeRef: N
    • GPSLatitude: 59,19,6.7941
    • GPSLongitudeRef: E
    • GPSLongitude: 18,3,35.5311
    • GPSAltitudeRef: 0
    • GPSAltitude: 0
    • GPSTimeStamp: 14,6,10
    • GPSProcessingMethod: ASCIIFUSED
    • GPSDateStamp: 2014:10:19

    I explained that this might be an issue in the case of nude photos people put online in my TEDx talk on making social media social again and showed that there is a command line tools called EXIFtool that allows for stripping out this extra data. This article describes other tools that do the same. EXIFtool is the 800 pound gorilla of this task as it allows you to edit EXIF data.

    As a lot of people asked me for a tool to do this, I wanted to make it easier for you without having to resort to an installable tool. Enter removephotodata.com

    Remove photo data in action

    This is a simple web page that allows you to pick an image from your hard drive, see the data and save an image with all the data stripped by clicking a button. You can see it in action in this screencast

    Under the hood, all I do is use Jacob Seidelin’s EXIF.js and copy the photo onto a CANVAS element to read out the raw pixel data without any of the extra information. The source code is on GitHub.

    The tool does not store any image data and all the calculations and information gathering happens on your computer. Nothing gets into the cloud or onto my server.

    So go and drag and drop your images there before uploading them. Be safe® out there.