When I recently updated to Checkie for Foursquare v2.5 on my iPod 5 Touch, it started crashing on launch. Tried restarting my iPod to no avail. So I reverted it to the previous version by doing the following:
delete Checkie App on my iPod (touch-hold Checkie icon, wiggly icons, touch (x) on the Checkie icon, confirm delete dialog box)
connect iPod to MacBook Air
select iPod in left column
choose the "Apps" tab
scroll to "Checkie for Foursquare" - note it is [ ] unchecked
check [x] Checkie for Foursquare
click "Apply" in the lower right corner of the iTunes window
Presto, the previous version of the app from the last time I sync'd/backed up to iTunes is back on my iPod Touch.
If I had been auto-syncing my apps with iCloud, then all my devices would have updated to the latest version of Checkie and the previous version would either be lost - or a huge hassle to retrieve from a previous backup (if iTunes even kept more than one backup of it).
If you're syncing directly with iTunes on your laptop, you can revert to the previous version there. You may even be able to revert to even older versions, see this blog post with lots of screenshots for details.
iOS native app developers seem to screw up apps in plenty of ways frequently enough that it's perfectly reasonable to take matters into your own hands as the user and revert such apps when developers screw up.
How do native app developers screw up? Let me count the ways:
update crashes on launch
removal of a feature essential to usability or you really liked
making an existing feature take more steps
addition of visual noise (design cheese, 1+1=3, chartjunk etc.)
less efficient use of screen space
None of these are theoretical. All of these have happened. The first with Checkie, and unfortunately all of 2-5 have happened with the Foursquare app.
Everybody makes mistakes of course. We're not trying to build the perfect system.
When software screws up, we should empower users with the agency to work around it. #fightfortheusers
Focus-enhancing note: all in-line hyperlink citations[number] are listed in the References footer of this post. You may procrastinate clicking them until the end for a more in-flow reading experience.
Smart and dumber
Remember when phones were dumb and people were smart?
While smart phones become smarter, their push notification interruptions fuel a mobile dopamine addiction that's making us dumber.
App focus and notification distractions
These devices and their app store interfaces have also trained us to install, organize, and curate ever more mobile "apps" on our home screens. Thanks to designers' obsession over attention, retention, returning eye-balls, and need to compete with all those other apps, they ever more aggressively demanding our attention.
Their push notifications insist that they're more important than anything else we could possibly be doing. We miss things right in front of us, or we overreact, overmute, and miss important things. Not things. People.
Virtual notifications distract us from real people.
Take a moment to recover your focus after skimming or bookmarking those links.
App centric interfaces cause dopamine fueled distraction
Right now we have screenfuls of apps to communicate and interact with people online. Screenfuls like:
The problems with this current state of the mobile interface:
Person A wants to communicate with person B
Person A has to pick (absent B's context!) a communication app
Person A launches the specific app
The app immediately shows Person A:
Missed calls from others!
Unread count of new messages!
Actual new messages from others!
Every one of those exclamation points (!) is a dopamine squirt (you probably got a little one even just reading about it happening).
Consequence: Person A is distracted by the missed calls, unread counts, new messages beckoning their attention - ooh someone reached out to me! I better check if that's important before I communicate with, who was it I was going to communicate with?
Worse yet: the dopamine reinforces this distraction based behavior, turning it into a habit of reacting and losing our context, rather than acting and keeping our flow.
What if we focused on people first?
What if our mobile devices focused on people first and apps second?
Remember when they used to? When you looked up a person first, and decided to txt, call, or email them second?
What if we put people first in our mobile interfaces, before choosing an app to interact?
Could we grow a culture of adding icons of each other to our home screens instead of application intermediaries?
What if we organized screenfuls of icons of people that matter to us rather than apps that distract us?
If we could organize screenfuls of icons of people, what would it look like?
An interface with a bunch of faces certainly feels a lot more human.
How do we organize screenfuls of icons of people?
The above is an actual screenshot. The answer, today, is to go to their personal sites, tap the action icon (or choose add bookmark), and then "Add to Home Screen".
Why would someone want an icon of you on their home screen?
In short, human-focused rather than app-focused communication.
You want to catch up on someone's site (recent writings, activities) just before meeting up with them in person.
You miss someone and are wondering what they're up to.
Communicating with a person - person first, method second:
if they happen to have sms: mailto: tel: etc. links on their home page, then their home page becomes the way you can contact them.
Your home page becomes your communication protocol.
callee-preferred comm apps icon UI
What if you provided icons for each of those yourself as if they were apps, e.g. in a pane on your home page?
Like a Contact folder that when tapped would open up a row of icons of the ways you could be contacted, maybe even in your order of preference!
Would it be too disruptive to the mobile experience and ecosystem to focus on people rather than apps?
User experience flow
How would a person use this?
Go to someone's domain, e.g. tap their icon from home screen
See their personal home page which with methods of contact as a list or icons in the order that they prefer to be contacted.
Go across and down that list until you see something you can (and want) to use to communicate, and tap/click it.
The browser takes you to a website or "native" app to open the communication channel / new message.
Thus after tapping the person you want to communicate with, just one more tap to open a new IM, email, or audio/video call.
Note that there was no distraction by unread IM/email or new activity counts beckoning your attention away from your desire to communicate with a specific person.
UX flow with identification
By identifying yourself to the personal site, the site can provide progressive enhancement of communication options:
Go to someone's domain, e.g. tap their icon from home screen
Identify yourself to the site (e.g. with IndieAuth, or perhaps your device/browser automatically detects IndieAuth and identifies you if you've been to the site before)
Now their personal site provides more (or possibly fewer!) communication options based on who you are.
Again pick the first method of communication you see that you want to use
You're again routed to either a website or "native" app to start communicating.
Thus after going to someone's personal site, with one tap you can perhaps SMS Facetime or Skype as well.
Context Enabled Presence
Someone's personal site could even do presence detection (some personal sites already show live IM presence status), and show/hide communication options in accordance with their apparent availability. E.g. some combination based on determining if they are:
In an area with poor network reception?
In a meeting (or noisy location)?
Or otherwise pre-occupied?
Running or otherwise in motion
Have IM/Skype client open (for more than 10 minutes)
Then their site could enable/disable various things by either hiding or disabling (dimming or greyscaling) the respective icons for:
User-friendly privacy: such context-based selection should be seamless enough and yet coarse enough that you cannot necessarily determine from the (un)availability of various methods of communication, what their actual context (asleep, busy, in motion etc.) is.
Solving the "Can we talk" problem
Perhaps this is the solution to the "Can we talk?" problem.
Nevermind all this "what should I ..."
Domains (or proxies thereof) work as identity.
Just share domain names when you meet, add their icon to your home screen and you're done.
Or even share Twitter handles (purely as a quicker-easier-to-say discovery mechanism for domain names), add their icon and you're done.
The rest is automatically handled when you tap their icon.
How do you make this work on your site?
How do you make this work for when someone taps an icon to your site?
By adding this to your personal site:
aim:, mailto:, etc. hyperlinks (add rel=me to them)
platform familiar icons and grid layout (combining elements of adaptive and responsive design)
IndieAuth support - to allow visitors to identify themselves
Conditionally show more (or fewer) hyperlinks based on whitelists, i.e. check their identity against a whitelist or two and then provide
e.g. sms:, facetime:, skype: (callto:?) links.
Optionally have your site passively (or in response) check your meeting schedule, your Foursquare location, perhaps even native app specific presence (e.g. IM), and cache/show/hide links accordingly.
Who has done this?
Nobody so far - this is a user experience brainstorm.
Can we do this?
Yes. Some communication protocols are supported in today's mobile operating systems / browsers:
I couldn't easily find specific references for protocol support in Android Chrome and Firefox for Android browsers. My guess is that the various mobile browsers likely support more communication protocols than the above (and the reference documents) claim. It's probably worth some testing to expand the above lists.
Even maps.apple.com/?q= links are supported on iOS (and "geo:" links on Android) as a way to launch the native maps app - perhaps a person could for some identified visitors have a geo/maplink that showed exactly (or roughly) where the person was if and when they chose to.
Next, it's time to try prototyping this on our personal sites and mobile devices to see if we can make it work and how the interaction feels.
If this kind of out-of-the-app-box thinking and personal site focused hackery appeals to you, try it out yourself, and come on by tonight's Homebrew Website Club meeting and show what you got working!
Previous posts and notes related to focus (distraction) and specifically to human interface design and processes to improve (reduce) respectively.
After brief introductions we went around the room in a "broadcast" phase. Everyone introduced themselves and what personal website successes and challenges they were experiencing. All already had a personal website of some sort, yet also expressed a yearning for something more. Opinions and passion were generally dominated by user-centered perspectives, about giving users (especially themselves) control over their own content/narrative, and focusing on user experience first.
Four in the group actively post content on their own site (typically in a "blog" format), and three more on secondary domains, Blogspot, or Tumblr. Two in the group already had personal website tweeting up and running using the POSSE method (Publish on your Own Site, Syndicate Elsewhere). And one had an ownCloud setup working with an SSL certificate.
We got into a short dispute over whether to focus on public or private content first until it was pointed out that public first is simpler and can inform private content design. There was a PESOS vs. POSSE debate, especially for quantified self / fitness data. Many in the group conveyed a general lamenting of the lack of support for Activity Streams in services and devices, until one participant noted he'd built a proxy that turns interactions from Facebook, Twitter, G+ (e.g. comments, likes) into Activity Streams.
Frustrations were shared about services that show promise yet have odd awkwardnesses like Path and Mint. On the open source side, concerns were raised about monoculture and especially the open source community default culture of assuming one codebase to rule them all.
There was much praise for the ease of use, beauty, and customization of Tumblr, especially as a good bar to compare efforts to build personal websites and provide user interfaces for future indieweb onboarding experienes. Despite their beauty or convenience, there was a sense that Tumblr, Blogger, and other content hosting silos will all rot.
We split up into small groups as part of the "peer-to-peer" part of the meeting.
At 20:00 we closed the meeting and announced that the next meeting would be in two weeks:
WEDNESDAY, , at
Mozilla's First Floor Common Area, Embarcadero & Harrison, San Francisco, CA.
Are you building your own website? Indie reader? Personal publishing web app? Or some other digital magic-cloud proxy? If so, come on by and join a gathering of people with likeminded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project, whatever...
This newsletter is placed into the public domain with a CC0 dedication.
nephew1 did #turkeytrot 5k in 25:15, 2min faster than last year!
My iPod showed 29min but @RaceWireLive reported 32:33 for me (~3 minute discrepancy is quite a bit).
Only explanation I have is that I crossed the starting line late - maybe even last. I'd spent time warming up before the start waiting for the tail end of the walkers to finish crossing, so I could have easily started 3 minutes after the gun start time.
Perhaps the starting line didn't read my bib# chip as I crossed it. Here's my rough timeline of timing related events:
* 8:03am started warm-up jog on Nike+ Running iOS App (time recorded on Path cross-post)
* noticed race started, watched big crowd slowly crossing start line
* +6:27s: 1km completed on Nike+, ran to starting line
* crossed starting line (a few seconds later)
* 8:10am checked clock on iPod Touch just after crossing start line to double-check the time.
* ... many minutes later ...
* crossed finish line in a sprint
* 8:39am checked clock on iPod just after sprinting across finish line.
* slowed to run/jog/walk (5-10 seconds)
* +36:06s total elapsed time on Nike+ (paused).
* +29:39 thus time elapsed since 1km pre-start-line mark of 6:27.
* = ~29:30 estimated actual 5k completion time (given extra seconds before/after start/finish)
I've submitted a request to Racewire.com to ask them to look into it.
But now I'm looking for another 5k to run in the near future to get an official race PR under 30 min.
Any fun 5k races coming up in SF in December?
Or, why is it so hard to get syncing of simple text notes right?
Create a note in Notes on your iOS device (e.g. iPod) with some text like "Note to self: do not save anything valuable in Notes".
Connect it to your Mac and (Sync) with iTunes, disconnect
Open Mail.app and delete the note on your laptop
Add something to the note on your iOS device, e.g. "Note 2: Well maybe I'll try adding something anyway."
Reconnect them and (Sync) with iTunes again, disconnect
At this point you've lost the entire note on both devices, including additions you made to it on your iOS device after you deleted the copy of it on your laptop.
If you're doubly unfortunate, iTunes has also thrown away the previous backup for your iOS device, keeping only the most recent "backup" for your iOS device, with, you guessed it, the deletion of that note.
The very act of attempting to backup your iOS device by explicitly syncing it with iTunes, was responsible for losing your data.
iTunes treated the copy of the note on your laptop (or rather the tombstone left in place after you deleted it) as more authoritative than the note on your iOS device - ignoring the fact that you explicitly added to the note on your iOS device after (time-wise) you deleted the copy of it in Mail.app.
iTunes treated the data you added as less important than your older act of deletion and threw away your data.
What should it have done instead? How should it have resolved a seeming conflict between a deletion and an addition, both of which happened after the most recent sync?
People need to feel that they can try things without damaging the system or jeopardizing their data. Create safety nets, such as the Undo and Revert to Saved commands, so that people will feel comfortable learning and using your product.
Warn users when they initiate a task that will cause irreversible loss of data.
Using iTunes sync jeopardized data. It removed the safety net of the previous iOS device backup. There is no command to Undo a sync or Revert to notes from before. iTunes did not warn before it itself caused an irreversible loss of data.
The key is to provide users with the capabilities they need while helping them avoid dangerous, irreversible actions. For example, in situations where the user might destroy data accidentally, you should always provide a warning, but allow the user to proceed if they choose.
iTunes provided no warning before an irreversible deletion of the note on the iOS device which yes, did destroy data.
Instead of Deleting
There are several approaches that Apple could have taken, any one of these would have been better than the irrecoverable deletion that occurred.
Treat the later adding to the note as the user intending to never have deleted the note in the first place and recreate it on the laptop.
If a note is edited in one place and deleted in another (in any time order), treat the edit as more important than the deletion.
Keep a browsable backup of any deleted notes
Provide the ability to undo a sync
Provide the ability to recover deleted notes, on either device
Why not iOS7 and MacOS Mavericks
Perhaps you're wondering what versions of operating systems (and iTunes) were used: iOS 6, MacOS 10.7, iTunes 10.
Why not upgrade to iOS 7 and MacOS Mavericks (and thus iTunes 11) ?
Because then you lose the ability to sync directly between your devices. As noted previously:
[...] If you use OS X Mavericks v.10.9 or later, your contacts, calendars, and other info are updated on your computers and iOS devices via iCloud. [...]
If Apple can't get syncing right between just two devices/destinations:
iOS device <---> Mac laptop
Why should anyone have any expectation that they can get it right among three?
iOS device <---> iCloud <---> Mac laptop
Towards Indie Note Editing And Sync
This episode has illustrated that we cannot trust even Apple to either follow its own user interface guidelines, or implement those guidelines in its own software, nor can we trust Apple's syncing solutions to not lose our data.
I am now investigating alternatives (preferably open source) for:
editing simple text notes on a mobile (e.g. iOS) device
syncing them with a mac laptop
possibly editing them in both places
syncing them again without loss of data
Preferably without having to use "the cloud" (otherwise known as the internet or the web). That being said, perhaps an open source indie web sync solution could be another path forward. If I could sync any number of my own devices either with each other or directly with my own personal web site, that might work too.