Clear all notifications on Apple Watch

I love my Apple Watch.

The part I love the most is how it shows me my notifications, without me needing to pull out my phone.

Sometimes I just glance at my wrist to see that something came in, and decide I’ll deal with it later. This means that after a while I’ve got a number of notifications racked up in the notifications view.

Previously, I’ve been a bit frustrated doing the “swipe every notification to clear”-dance a couple of times a day, but little did I know that Apple had thought of this.

The trick is simple. While on the notifications view, just Force Touch, and voilá, a “Clear all” option appears!

Works like a treat, and will save me another couple of seconds every day.

Clear all notifications

Clear all Notifications (source: TekRevue)

Posted: September 15th, 2015
Categories: How-To, Pro-tips
Comments: Comments.

I need a new camera. And a phone.

I need a new camera. And thus, a new phone.

The iPhone did this to me. Before I got an iPhone, I would bring my trusty old Sony digital camera and take really cool pictures (yes, when I remembered to bring it!). When I got back I plugged it in to my mac and transferred the pictures to iPhoto. Most of the time, that’s where it stopped.

So, I got an iPhone and at first I really didn’t care much for the camera. Sure, it was nice to have it with me and take casual pictures, but the quality just wasn’t good enough for nicer pictures. For a while. When the iPhone 4 came out, the camera was even better than my old Sony, so from that day, I used my iPhone as my only camera, and I’ve been fine with it.

Until last christmas holiday. We were visiting my sister in Dubai, and while taking some pictures in the Madinat shopping centre, I started noticing purple dots in the pictures. At first, I thought it was dust on the lens, so I tried wiping. A lot. Didn’t work.

Getting home after the holiday, the purple dots had grown bigger in size, and they’re clearly visible in every picture. So, I started googling it, only to find out that apparently, this was a known flaw in the CMOS sensor in the iPhone 5, and Apple replaced the units (See here or here).

Happily walking to the Apple Store in Stockholm, I was informed that since I had bought my iPhone in the U.S. it was only covered by 1 year warranty (In Sweden, we always have 2 years, by law). Ok, sure, was my answer, and when did that expire? “15 days ago”, was the reply. I told the rep that the problems had started before christmas (and thus, well within the 1 year warranty) and I had pictures on the phone with datestamps to prove it. That wasn’t enough, he said, I could have photoshopped that. My jaw dropped a bit on that response.

So I asked him if I would have gone to him 15 days earlier, I would have walked out with a new phone? Yep, I sure would have.

Now, I understand that there has to be limits and rules are rules etc. But for Apple to be this nitty gritty, on a hardware issue that they know is a manufacturing flaw, it just beats me.

So for another year and a half, I’ve been taking pictures (less often, though) and using Photoshop Express on the phone to try and “blemish-remove” the dots.

The moral of the story is that my phone is actually fine, and works great. But since the phone part messed up, I have to replace the whole thing. One-device-for-all dilemma.

Sometimes, I dribble this thought when developing apps. On one hand, I want to build every function I can think of inside the same app, for easy access and convenience. But on the other hand, if one major part breaks, it can cripple the rest of the app’s functionality, rendering it pretty much useless.

I’m more or less steering towards building single-function apps nowadays. Perhaps, we could then use the app interoperability (deep-links) to stitch them together inside “container apps” to group them together?

Posted: August 8th, 2015
Categories: Ideas, Mobile, Tech, Thoughts
Comments: Comments.

Palindrome Day

Today is not Palindrome Day. Or is it?

Palindrome Day is a day when the date is the same backwards as forwards.

For example, take the date “October 11th, 2001”, and write it out like “10/11/01”.

Date formats

Americans like to write out dates in the order they pronounce them, like “January 31st, 1999” becomes “01/31/99”.

In Sweden (and I think most of Europe), we do the same thing, only we pronounce dates differently.

To take the example above, we would say “the 31st of January, 1999”, and write it out as “31/01/99”.

Furthermore, when we write out a person’s birthdate, we write it as “YEAR-MONTH-DAY”, a third format.

Here’s where the problems arise. There are a million and one ways to format dates, and since the order of the dates matter a lot when looking for palindromes, Palindrome Day differs a lot depending on where you live.

The fun part with this is that almost ANY day can be Palindrome Day, with just the right formatting applied.

Let’s try with today’s date: “February 20th, 2015”. We can see that the year “2015” (or just “15”) will be a tough one to reverse (there aren’t many days or months that equal “51”).

For example:

“02/20/15” => “51/02/20” No good.

“15/02/20” => “02/20/51” No good.

So what can we do? Let’s try and throw some times into the mix!

“15/02/20 02:20:51” => “15:02:20 02/20/51” Much better!

As you can see, even today can be a Palindrome Day!

Try it for yourself and see if you can turn your dates into palindromes.

Posted: February 20th, 2015
Categories: Thoughts
Comments: Comments.

DisplayLink, I give up!

At my job, most people still use a PC. And I confess, I also have a Lenovo X230 laptop that I’m meant to use for work. With it I have 2 external monitors, and a docking station ready for my laptop to be plugged in. That setup works great, but for one small thing. I absolutely despise using a PC, and mostly having to use Windows 8.

Don’t get me wrong, I grew up using Windows 3.1 and all the way up to Windows XP (yep, I also tried Windows Millennium). But after that, I got my first Powerbook G4 Alu. I loved it. And I never looked back.

About a year ago, I decided I’d had enough of PC/Windows altogether, so I started bringing my own, private, MacBook Pro to work. I thought it would be a painful process to try and change my workflows from PC apps to Mac apps. I was wrong.

Back then, I was still on Mountain Lion, and I got an external Lenovo USB3 Dock with two external display ports, just what I needed. Hooked my monitors up and plugged the USB into my Mac. Nothing happened. Turns out, I had to install the DisplayLink driver separately (how non-Mac isn’t that?!) so I did, and both screens flickered into life. Beautiful.

For my purposes, the screens update speed isn’t that important, as I mostly use one monitor to have mail open and I don’t move windows around that much, however, there is a noticeable lag in the second monitor.

Then Mavericks came along, and something happened. Mavericks do not play well with the DisplayPort driver. (You can read more details about it at the DisplayLink site) Apparently Apple changed something with how they treat multiple monitors and their setups.

All I know is that my externals monitors would start blinking, all of a sudden just showed a blank grey screen, and would constantly “forget” their positions. It got really annoying. And it still is. So annoying, in fact, that I decided to switch one off. And it turns out, with only one external monitor to worry about, everything back to fine and dandy!

I recently updated to Yosemite, so it’ll be interesting to see what happens now, but to be frank, I’m not getting my hopes up!

This is what DisplayLink did to the nice rounded corners of Yosemite windows:


Posted: October 20th, 2014
Categories: Tech
Comments: Comments.

FotbollsVM 2014: Alla matcher som kalender

Som många andra har jag sett fram emot att fotbolls-VM i Brasilien snart drar igång. Det är dock inte alltid så lätt att hålla ordning på när matcherna går och vilka som spelar, och vilken kanal matcherna visas på.

Så, för att kunna hålla koll på det började jag leta efter en kalender-feed att lägga in i kalendern med alla matcher och kanaler i. Det måste ju finnas, tänkte jag. Och mycket riktigt, det gör det. Den finns här.

Mycket smidigt att ha alla matcher i mobilen, och att det står vilken kanal dem visas på.

Posted: June 9th, 2014
Categories: Thoughts, TV
Comments: Comments.

Introducing: Parse Browser for iOS

Ever since I signed up for and started using it as my BaaS-provider, my app development has sped up significantly.

Needless to say, there are a lot of things I love about the service. The user-friendly API, the generous free limits and the schema-less db model to mention a few.

However, there’s one thing that has always bugged me. I’m usually on the go, and I like when I have my tools available from the comfort of my iPhone, when I need them. The Data Browser view that shows and lets you manage your classes and objects does not work from mobile Safari. Neither is there an app from Parse themselves to support this.

So I built one.

I call it “Data Browser for Parse”, and I’d like to show it to you:

This app lets you add your own apps from the Parse Dashboard that you want to manage, with your own name and keys, as given in the Parse Dashboard. And don’t worry, as I use this myself, and I’m pretty paranoid when it comes to giving out my personal keys and stuff, I made sure the keys are securely stored in the iOS keychain as recommended by Apple.

After adding the app info, and selecting which one to work with, it’s just a matter of adding the relevant classes to manage. The Parse iOS SDK isn’t really built, I guess, to extract user info about a user’s apps and classes, it’s pretty limited in that you have to know the name of the class you want to work with, so for the time being, this has to be set manually. It’s not too difficult, though :)

After adding your first class, you might find that the “name” shown in the list isn’t really what you would have chosen as an identifier for your objects. Hey, no ones data looks the same, so I figured it would be best to make this configurable. So, in the navigation bar, there’s a button where you can select which of your class columns you wish to use as a “title” column for you objects. As you can see in my screenshots above, I have a list of “Questions” where the “answer” column is what I use to know which object is which. (And as a last resort, I included the objectId in case you have a lot of objects with the same name)

Now, the fun begins. Use the app to browse around your data, tap a field to edit it, modify your arrays and objects, or go ahead and add a new column to your class!

The rest is up to you!

PS. The app is currently in the App Store Review line, but be sure to keep an eye out on this page or on my twitter when it gets approved!

EDIT: The App is now live and kicking in the App Store! Get it here

Posted: April 6th, 2014
Categories: Design, Mobile
Comments: Comments.

Misleading icons: The funnel

One day we all just have to wake up and smell the reality: when it comes to choosing a default icon to depict a filtering function, we’ve all been duped by a funnel. (Or is it a martini glass?)

There is no question about it, the funnel is indeed the default icon of choice for most when it comes to the filter function. (See for yourself!)

The question is why? Why did the funnel earn this prime spot? I’ve been thinking about this for a while now, and all I can come up with is: I don’t know!

What is a filter?

First, let’s define what a filter is and does. A filter function takes in a large amount of data and after applying a set of rules excludes a part of the data, resulting in a smaller dataset than the original. (Or as Wikipedia defines it: “a higher-order function that processes a data structure (typically a list) in some order to produce a new data structure containing exactly those elements of the original data structure for which a given predicate returns the boolean value true”)

Basically, we have a list of some sort to begin with. The problem is that us humans are limited in how much data we can handle, so we need to somehow remove everything in the list we’re not interested in. We do this by applying some rules that filter out everything else, and only leaves a list of stuff we’re interested in.

Case example: We want to find a picture of a dog. We go to google and search for “dog”. The result is way too big and contains both sites and images. Thanks to the filtering function, we can easily click “Images” which filters out any result that is not an image.

What is a funnel?

“A funnel is a pipe with a wide, often conical mouth and a narrow stem. It is used to channel liquid or fine-grained substances into containers with a small opening. Without a funnel, spillage would occur.” [Wikipedia]

The funnel is designed to aid in getting stuff from containers with large openings into containers with small openings, reducing the messiness of spillage.

It doesn’t exclude anything. The whole point of the funnel is to NOT exclude (spill) anything!

The problem:

So, we have a function designed to make a dataset smaller by excluding stuff. Somehow we decided that it was convenient to depict this with an item that is designed NOT to exclude anything.

The solution:

As it seems, I’m not the only one who have started to wake up from this bad dream. (There’s even a survey on LinkedIn where more people hate this icon than love it)

Some people are also trying to create alternatives to the current standard. Here are a few I’ve found:

New Filter Icon

New Filter Icon

I can see the basic idea behind this icon, even if I agree with some of the dribbble commenters saying that it could be visualized more clearly.

Filter icon

Filter icon

The simplicity of this one is interesting, but also hides its intention. What does a upside down pyramid of dots have to do with filtering?

Filter icon

Filter icon

This one is a bit unclear, I think. Two dots become one, or is it the one dot that is split up into two? Or is it three nodes connected in a network?



This one is based on the same idea that there’s some kind of “wall” that lets through one arrow but not another. I like this concept, but I feel that the reason why one arrow is bounced (aka the filter) isn’t immediately recognised, which makes it hard to immediately form an idea of what is depicted.

One of the newer alternatives I found in TweetDeck (It’s the icon in the top right of each column):

TweetDeck Filter

TweetDeck Filter

And a variant of this I found in the swedish news app, Omni []:



I can understand where this icon comes from, since one of the common controls in a filter function is a slider, to define a range fo two values. But, really, does this depict a filter function? I’m not convinced.

One common flaw I see in these examples is that to understand them, the user needs to know that they’re trying to depict a filter. Once you know that, it’s easy to see the basic idea “many -> few” or the idea of “exclusion”. But what about someone who doesn’t know that, or if there isn’t a label next to it to tell? Then all we’re seeing is lines and arrows or dots.

There has to be a better way to depict a filter. I’ll dedicate my soul to finding it.


I know, there is something called a “filter funnel”.[] It wouldn’t be fair of me not to mention it. Basically, it’s a funnel that you put a filter paper in and separates particles out of liquids. And really, do any of the currently used funnel icons show any filter paper?! Nope.

Posted: January 17th, 2014
Categories: Design, Ideas, Mobile, Thoughts, UX, Webdesign
Comments: Comments.

Om Kony, Black och Miss Skinny

Om Joseph Kony och Miss Skinny fick ett kärleksbarn skulle det heta Black. (no pun intended)

Joseph Kony. Chansen finns att namnet känns igen någonstans, men visst är det lite svårt att minnas vem han egentligen är?

Det kan såklart vara så att du är väl insatt i Ugandas gerillaledare och vet direkt vem han är. Eller så kan det vara så att du under 2012 såg den här kampanjen och fasade över hans barnsoldaters hemska öden.

Ett av målen med kampanjen var enligt skaparna själva att få Kony fångad och ställd inför rätta. Ett annat mål var att göra Kony till en global kändis. Skaparna hade räknat med att få ca 500000 klick på filmen under 2012. Den fick 100 000 000 på 6 dagar.

Kampanjen för Marabou Black handlade om att Marabou lanserade en ny chokladsmak, lakrits. För att göra detta, tyckte man att det var lämpligt att låta Tommy Nilsson gå ut med ett fejkat meddelande att han nu antar artistnamnet “Black”, och får en ny, tuff, stil. Tommy Nilsson bytte aldrig namn, men hur skulle man kunna veta det? Och hur ska man associera det till choklad?

Den senaste i raden av kampanj-kuppar är den för den fiktiva webbshoppen Miss Skinny, som bara säljer kläder för size zeros. Provocerande annonser, och budskap som “Do you fit in?” menar organisationen Fri & Frisk, riksföreningen mot ätstörningar, är ett lämpligt sätt att få ner antalet personer som drabbas av ätstörningar.

Så, vad är problemet med att vilja få upp medvetenheten om viktiga ämnen? Inget alls, i sig. Men när kampanjens kortsiktiga exponeringsmål blir viktigare än budskapet i sig är vi illa ute. Om antalet likes är mer värt än vad vi egentligen sade, då är det något som är snett.

I fallet med Kony 2012 så är det problematiskt att ett av budskapen som kampanjen använder sig av är att “en lösning på problemet” (att få fast Kony) är att dela vidare länken. Att få tittaren att känna sig bidragande till tillfångatagandet av Kony genom att lajka en video är minst sagt en förvrängning av verkligheten.

Faktum är att FN tillsammans med en rad länder och andra orginisationer under flera år har försökt få fast Joseph Kony, men inte lyckats. Problemet är alltså inte att Kony inte är tillräckligt känd, utan att ingen egentligen vet var han befinner sig, samt att många oskyldiga människor riskerar att drabbas.

Frisk & Fri arbetar mot ätstörningar i samhället. Löper man inte en ganska stor risk då att målgruppen (oftast unga flickor) ser de provocerande budskapen, glömmer bort (eller aldrig får reda på) att budskapet var “menat för att provocera”, men minns att det är viktigt att “passa in”?

I fallet med Marabou Black, riskerar man att målgruppen man nyss lurat snart glömmer bort vad kampanjen handlade om, men minns att man blev lurad av Marabou.

Vem vill umgås med någon som luras?

Posted: September 26th, 2013
Categories: Reklam, Thoughts
Tags: , ,
Comments: Comments.

TV Guide for Status Board

Note: This Status Board panel displays the tv guide for swedish channels, and is mostly intended for swedish Status Board users. That said, I’m switching to swedish.


Status Board för iPad kan användas för att visa en mängd oliks orters data. När jag är hemma vill jag ofta snabbt kunna se vad som går på tv (att slå på tv:n bara för att bläddra igenom kanalerna för att sedan se att ingenting av intresse visades är ju alldeles för jobbigt!), så jag byggde denna panel som visar vad som går nu på tv, samt vad som kommer efter nuvarande programmet. Panelen använder sig av :s javascript för att hämta programmen.

Ingen konfiguration behövs, så det är bara att klicka på knappen nedan från den iPad där du har Status Board installerat.

Klicka här från din iPad!


Posted: May 2nd, 2013
Categories: Design, Mobile, Status Board, TV, Webdesign, Widgets
Comments: Comments.

Trello in Status Board

Update 2: Apparently, there was a change in how Trello supplied the user token, so my script simply didn’t work. This should be fixed now, and the scripts work!

Update: Instructions to get this panel on your iPad are now up and running, and it should be easy enough for most people to get this working! See post for details!

One of the first widgets I planned on building after getting Status Board was one for Trello, the taskplanning tool.

Of course I want to keep track of how many tasks I’m working on right now, and how many are still in the queue. Maybe I want to see the names of the cards in my list, and maybe I want a burndown-chart for some projects, I haven’t decided…

I wasn’t very familiar with the API, and I couldn’t find a functional php-wrapper for it, so I used VeggieMeats php-trello as a starting point, and fixed it where it had to be fixed. (Yes, when I get the time, I will fork it and upload the corrections I’ve found).

Because of this, the trello widgets was put in the back of my head for a while, while I developed a few other widgets, such as the Google Analytics ones and the SL widget.

But now the time has come, and my focus is now on Trello. The first of three planned widgets is done, and it looks like this:


It’s very simple. You enter a boardID (plus some other sensitive info, since this board is private) and then it shows you how many (open) cards are in each list. Folks, this is pulled right from the API, no manual CSV here.

There’s probably more info to be added to this graph later o, but for now this does what I need it to.

In a while, I will make this availible for anyone. I need to come up with a (kind-of) user-friendly way to get all the info correct. We’re talkin loong user tokens and id:s you need to find. There will probably be some kind of form on this page where you can enter you info and then it will give you a link to open on your iPad to install the widget. But, as I said, I’m working on how to make this easy for everyone.

Instructions to get this working in your own status board with your own Trello board

First, make sure you do this on the iPad where you have Status Board installed!

1. Get your user token from Trello (if you haven’t got it already). I made a script for this to make it easy for you to get your own. You open a link from my site (further down) and it will redirect you to Trello’s authentication page. There, you’ll need to approve my “app” to access your data (read-only) and then it will redirect you back to my site where your token will be presented. Copy this token and paste it in the form below. Here’s the link!

2. Get your Board ID from the Trello Board you wish to use in this widget. I found that the easiest way to get the ID is to open the board in a browser and then find the board id in the url (as pictured below). Then copy this ID and paste in the form below.



3. Get your username from Trello (If you need help with this, tweet me, and I’ll help you) Copy it and paste it into the form below.

4. When all fields are entered correctly, tap the button below the form, and Status Board should open with this new Panel in it!

Form to enter your data in:

Paste your user token: Paste your username:

Paste your Board ID:

Click here on your iPad!

(If above button doesn’t work)

Come back here for more info, or follow me on twitter where I will post as I update.

Also, if there’s some trello functionality or stats you’d like to see that I haven’t thought of, post it in the comments, and I’ll see what I can do!


Posted: April 22nd, 2013
Categories: Design, Stats, Status Board, Webdesign, Widgets
Comments: Comments.