1. 2013 was a good year for open web standards. Great working with W3C, WHATWG, @microformats, and #indieweb communities.

  2. ran GG park, Ocean Beach & back.
    new Nike+ PRs
    10k/53:51, 13.1mi/1:57:02
    instagram.com/p/imOngDg9ba/ a jpg.

  3. 10 mo ago @leahculver showed me Nike+. Pushed me to break, rebuild, break PRs. Going for last 2013 run. I am a #runner

  4. Dear @LEGO_Group:
    From 9719 CDROM readme.txt: legomindstorms.com/help -> 404
    Perhaps redirect to lego.com/en-us/mindstorms/support/

  5. @film_girl Thanks! Email checking is a tough habit to break. Will likely still open to reply to a few personal emails.

  6. Made mistake of checking email while on holiday.
    Nearly all hollow marketing.
    Going to try an email break til 2014.

  7. Call yourself a web architect?
    Where is *your* handcrafted home page?

    (per @fchimero's architect analogy)

  8. Monday morning #indieweb reads:
    * werd.io/2013/the-blog-might-be-dying-but-the-webs-about-to
    * frankchimero.com/blog/2013/12/homesteading-2014
    * kartikprabhu.com/article/blogging-dead

  9. goodnight winter solstice.
    more than ready for longer days once again.

  10. more mobile-friendly design tweaks
    * iframe{max-width:100%}
    * s/facebook.c/fb.c
    * view source Flickr URLs, use flic.kr

  11. *Still* sore from #NovemberProjectSF PR day. Going to work it out @MissionCliffs walls tonight: fb.com/events/165237350353194

  12. All setup for Homebrew Website Club Meeting simultaneously @MozSF @MozPDX on video!
    Come on by!

  13. @eleddy simply preferring social norms for txt, tweets, updates.
    @sheppy those "years" perhaps before FB, Twitter, etc

  14. See also Winston Wolfe
    cc @sheppy @monstro @brennannovak
    "So, pretty please, with sugar on top"

  15. Seriously, if you say:
    "wanted to send you a quick"
    1 lying
    2 deceiving yourself
    3 marketing
    4 or all the above

  16. @sheppy wasting time, polluting email previews, pretending to be quick is not polite. Efficient work comms are polite.

  17. @sheppy saying it makes it *less* quick.
    Starting with such fluff makes email previews useless.
    Just get to the point.

  18. Would you ever start a txt with
    "I wanted to send you a quick note." ?
    Or a tweet? Why in email?
    New auto-delete rule.

  19. @igb "* sucks" is a copout. My calendar my data, I should be able to accept/reject at will. gCal is dumb. #ownyourdata

  20. Unsubscribing from more Twitter "See what you're missing" emails. Such crap silo UX will drive people to the #indieweb

  21. Click "No" in a Gmail event:
    "Google Calendar invitations cannot be forwarded via email."
    No, gCal sucks at identity.

  22. @lindsey indeed!
    @MozSF hosts community events weekly, e.g. Homebrew Website Club http://indiewebcamp.com/2013hwc3

    Unfortunately that NYT op/ed is crap and full of misleading prose.

    E.g. Starbucks in Hills Plaza closed in 2008:

    Mozilla didn't move in until 2011:

    The two events were unrelated in contrast to the op/ed's implication.

    The question is, is this innocent mischaracterization on the part of the author, or willful deception to push a particular agenda?

  23. researching cards. Why so few providers?
    55 Google Now google.com/landing/now/integrations.html
    38 Apple Passbook itunes.com/passbookapps

  24. XFN 10th Anniversary


    Ten years ago to the day, on 2003-12-15, Eric Meyer, Matthew Mullenweg and I launched XFN 1.0:

    I'm frankly quite pleased that all three of us have managed to keep those post permalinks working for 10 years, and in Matt's case, across a domain redirect as well (in stark contrast to all the sharecropped silo deaths since).

    Since then, numerous implementations and sites deployed XFN, many of which survive to this day (both aforelinked URLs are wiki pages, and thus could likely use some updates!).

    Thanks to deployment and use in WordPress, despite the decline of blogrolls, XFN remains the most used distributed (cross-site) social network "format" (as much as a handful of rel values can be called a format).

    With successes we've also seen rises and falls, such as the amazing Google Social Graph API which indexed and allowed you to quickly query XFN links across the web, which Google subsequently shut down.

    A couple of lessons I think we've learned since:

    1. Simply using rel="contact" (introduced in v1.1) turned out to be easier and used far more than all of the other granular person-to-person relationship values.
    2. The most useful XFN building block has turned out to be rel="me" (also introduced in v1.1), first for RelMeAuth, and now for the growing IndieAuth delegated single-sign-on protocol.

    Iterations and additions to XFN have been slow but steadily developed on the XFN brainstorming page on the microformats wiki. Most recently the work on fans and followers has been stable now for a couple of years, and thus being used experimentally (as XFN 1.0 started itself), awaiting more experience and implementation adoption.

    • rel="follower" - a link to someone who is a follower
    • rel="following" - a link to someone who you are following

    With the work in the IndieWebCamp community advancing steadily to include the notion of having an "Indie Reader" built into your own personal site, I expect we'll be seeing more publishing and use of follower/following in the coming year.

    These days a lot of the latest cutting edge work in designing, developing and publishing independent web sites that work directly peer-to-peer is happening in the IndieWebCamp community, so if you have some experience with XFN you'd like to share, or use-cases for how you want to use XFN on your own site, I recommend you join the #IndieWebCamp IRC channel on Freenode.

    Consider also stopping by the upcoming Homebrew Website Club meeting(s) this Wednesday at 18:30, simultaneously in San Francisco, and Portland.

    Either way, I'm still a bit amazed pieces of a simple proposal on an independent website 10 years ago are still in active use today. I look forward to hearing others' stories and experiences with XFN and how we might improve it in the next 10 years.

  25. 1995: every program expands to read email -@jwz
    2013: mobile apps expand to send photo messages
    #instagram #twitter

  26. last Homebrew Website Club meeting of the year:
    Wednesday 2013-12-18 18:30 @MozSF & @MozPDX

  27. Wonderful @KevinMarks talk @LeWeb:
    "The Web We Found" youtu.be/Ve48PjgDAn0
    Slides: slides.kevinmarks.com/leweb.html

  28. nothing like having a respected peer look quizzically upon your site in person. updated it with a bit of responsive d.

  29. on "independently writing and publishing on the web" by @zeldman: "This is a Website" zeldman.com/2013/12/11/this-is-a-website/ #indieweb

  30. My 4th #NovemberProject this morn. 2nd hardest (next to PR-day, my first time). 7.5k total run there/back at <5:30/km.

  31. French translation of “Toward People Focused Mobile Communication Experience” by @xtof_fr christopheducamp.com/w/Experience-communication-mobile-orientee-utilisateurs

  32. #indieweb "backfeed" is reverse syndicating silo replies to POSSE copies. E.g. on @snarfed_org: http://snarfed.org/2013-12-06_new-app-engine-logo#comments

  33. Robert O'Callahan describes how #WebRTC could improve people focused mobile comms even more: robert.ocallahan.org/2013/12/webrtc-and-people-oriented.html

  34. Why NOT to sync iOS apps to iCloud: Ability to revert updates


    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:

    1. delete Checkie App on my iPod (touch-hold Checkie icon, wiggly icons, touch (x) on the Checkie icon, confirm delete dialog box)
    2. connect iPod to MacBook Air
    3. open iTunes
    4. select iPod in left column
    5. choose the "Apps" tab
    6. scroll to "Checkie for Foursquare" - note it is [ ] unchecked
    7. check [x] Checkie for Foursquare
    8. 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:

    1. update crashes on launch
    2. removal of a feature essential to usability or you really liked
    3. making an existing feature take more steps
    4. addition of visual noise (design cheese, 1+1=3, chartjunk etc.)
    5. 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


  35. web++: iOS home screen web icons auto-update when you tap them.
    no need to go an "App Store" app & explicitly update.

  36. considering new mobile home page header icons folders search:
    (face) [Contact] [Create & Meet] [Elsewhere]
                                           [               ] (Search)

  37. Toward A People Focused Mobile Communication Experience


    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[1] addiction[2] that's making us dumber[3].

    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 demand 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.

    This is a broader systemic design problem beyond smart phones: Hospitals look to reduce danger of 'alarm fatigue'[4].

    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:

    screenshot of an iPod touch home screen with two rows of communication application icons

    The problems with this current state of the mobile interface:

    1. Person A wants to communicate with person B
    2. Person A has to pick (absent B's context!) a communication app
    3. Person A launches the specific app
    4. 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?

    screenshot of an iPod touch home screen with two rows of people icons

    An interface with a bunch of faces[5] 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".

    Yes, this is why you should make sure your personal site has an icon of you that people can add to their 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:

    • Asleep?
    • 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:

    • realtime interactive audio/video (AKA "phone" calls)
    • IM busy/idle/away/active status

    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?"[7] 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:

    iOS Mobile Safari[8][9]
    facetime, mailto, skype, sms, tel
    Firefox OS Browser[11]
    mailto, sms, tel

    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[8] (and "geo:" links on Android[10]) 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.

    There's a whole wiki page of URL protocols supported on iOS and iOS apps[12] and here's a blog post providing clickable examples of Special links: phone calls, sms, e-mails, iPhone and Android apps,...[13] (ht: Ryan Barrett for both). Both are quite useful, especially for instant messaging / telephony protocols. However keep in mind that it may be better to use mobile web app URLs where possible instead of app-specific protocols, e.g.:

    Because the mobile web URL is more robust, platform/device independent, and never mind that the twitter: protocol[12] lacks a way to open messages (or a new message) to a specific person.

    In addition, I feel I can better depend on DNS to go to twitter.com as intended, whereas it seems like it could be easier for a malevolent native app to hijack "twitter:" URLs by claiming to handle them.

    What next?

    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!

    See analysis towards building this:


    Previous posts and notes related to focus (distraction) and specifically to human interface design and processes to improve (reduce) respectively.


    In order of appearance:

    1. Psychology Today: Why We're All Addicted to Texts, Twitter and Google
    2. Computerworld: Nerd, interrupted: Inside a smartphone addiction treatment center
    3. Mashable: How is Facebook Addiction Affecting Our Minds?
    4. SFGate: Hospitals look to reduce danger of 'alarm fatigue'
    5. IndieWebCamp: icon FAQ: Should you use a photo of your face
    6. Event Homebrew Website Club Meeting
    7. WIRED: Can We Talk?
    8. accessed: Apple: Apple URL Scheme Reference
    9. Max Firtman: How to create click-to-call links for mobile browsers
    10. accessed: Google: Intents List: Invoking Google Applications on Android Devices
    11. accessed: Mozilla: Bug 805282 - MailtoProtocolHandler.js, SmsProtocolHandler.js and TelProtocolHandler.js in package-manifest.in
    12. accessed: Akosma Software: wiki page of URL protocols supported on iOS and iOS apps
    13. Adrian Ber: Special links: phone calls, sms, e-mails, iPhone and Android apps, …

    Additional Reading




    1. Robert O'Callahan: WebRTC And People-Oriented Communications
    2. David Shanske: Unified and Contextual Communications
  38. @jlsuttles, @aaronpk updated the @IndieWebCamp site with an icon for any page, including indiewebcamp.com/icon :)

  39. next Homebrew Website Club mtg Wed 18:30 @MozSF & @EsriPDX!

  40. @getify *That*, Kyle, is the right question.
    Communication. Human-centric over app-centric.
    More in a blog post.

  41. Got a personal site? Make sure it has an icon people can add to their home screen. How to & why indiewebcamp.com/icon

  42. at parents', watching Spike #ThankstoStarWars marathon, noticed @bruces posted #indieweb principles on @wired: wired.com/beyond_the_beyond/2013/12/indieweb-principles/
    ht: waterpigs.co.uk

  43. Thankful for health, family, and friends this Thanksgiving.

  44. Homebrew Website Club Newsletter Volume 1 Issue 1


    Edited by Tantek Çelik,

    Are you building your own website? Indie reader? Personal publishing web app? Or some other digital magic-cloud proxy?

    If so, you might like to come to a gathering of people with likeminded interests. Exchange information, swap ideas, talk shop, help work on a project, whatever...

    This announcement, accompanying blog post, and event note brought nine of us together on short notice in the 7th floor main meeting area at Mozilla's San Francisco office.

    Homebrew Website Club members discuss what they want on their own websites

    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.

    Homebrew Website Club members take a moment to smile for the camera.

    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.

    Kevin Marks did an excellent job of live tweeting a lot of the conversation and posted a summary on his site while at 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.

    (with apologies to Homebrew Computer Club Newsletter number one )

  45. 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?

    Update 2013-12-25: Racewire.com has updated my result to 29:30 based on my request. I'm guessing the starting line didn't read my bib# and they just took my data as self-reported.

  46. @JayGreasley thanks for the kind words! Thankful to work with kind-hearted smart folks @adactio @aral et al. #indieweb

  47. early to bed to run #turkeytrot 5k tomorrow with two nephews and my dad. Good luck fellow #runners especially #NPSF!

  48. How To Lose Your Data In Apple iOS Notes In Five Easy Steps


    Or, why is it so hard to get syncing of simple text notes right?

    1. 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".
    2. Connect it to your Mac and (Sync) with iTunes, disconnect
    3. Open Mail.app and delete the note on your laptop
    4. Add something to the note on your iOS device, e.g. "Note 2: Well maybe I'll try adding something anyway."
    5. 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?


    There are a couple of user interface principles to consider here. Quoting from Apple's own OSX Human Interface Guidelines:


    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.

    Next principle, same source:

    User Control

    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.

    Suggestions welcome. Some discussion already documented on indiewebcamp.com/sync.

  49. yesterday:
    * did #Lindy in the Park routine ~85% with fellow first timer
    * learned left hand of youtu.be/U6RmDqqPhug

  50. @LauraCreekmore @brad_frost Expensify is good, needs more "Undo". We use it @Mozilla. Is Harvest for independents?

  51. just finished catching up with all 2013 expense report filings.
    #yearend #littlethings

  52. talking HTML templates in #indiewebcamp, @KevinMarks asked for datetime, so I made a formatting format (yo dawg...)


    Not obvious what those expand to?

    For an example date and time of:
    2001-02-03 4:05:06pm PST

    YYYY = 2001
    YY = 01
    MM = 02
    M = 2
    DDD = 034
    DD = 03
    D = 3
    MONTH = February
    MNTH = Feb
    DAY = Saturday
    DY = Sat
    24HH = 16
    24H = 16 (no leading zero, e.g. at midnight = 0)
    HH = 04
    H = 4
    MM = 05
    SS = 06
    TH = ordinal suffix for preceding number, e.g. with M, D, H:
     MTH = 2nd
     DTH = 3rd
     HTH = 4th
    AM|PM = pm (both AM & PM - use either without guessing)
    TZ = PST
    TZH = -08:00
    TZO = -0800

    Thus the above example date and time of
    2001-02-03 4:05:06pm PST
    would have been output formatted with:

    Did I miss anything that's published on real world indieweb sites?

    Obligatory XKCDs

    xkcd.com/927 a png. Previously:

    xkcd.com/1179 a png. Previously:

    Now to implement it in @cassisjs.

  53. design Qs when coding a new #indieweb post type:
    * how should it look as a page?
    * a feed entry?
    * in a list of posts?

  54. Event note:
    * Homebrew Website Club
    * 2013-11-20 18:30-19:30
    * @MozSF 7th fl
    RSVP: @-reply or webmention
    more: tantek.com/2013/322/b1/homebrew-computer-club-reunion-inspiration

  55. Radioactive shard found on Treasure Island:
    BYO Geiger counter to next music fest. Map: a png.
    Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.

    Quite a nice map too - great way for an article to illustrate a location and an item.

  56. And now to see about implementing #indieweb event posts in @Falcon.

  57. venue confirmed for 2013-11-20 18:30 Homebrew Website Club tantek.com/2013/322/b1/homebrew-computer-club-reunion-inspiration
    @MozSF 7th fl wiki.mozilla.org/SF

  58. What if I told you the rain in San Francisco today feels amazing?

  59. The Homebrew Computer Club 38th Reunion: Inspiration To Try A Variant


    I attended the Homebrew Computer Club 38th Reunion and got to hear Steve Wozniak give an impromptu speech from the heart. It was both inspiring and reminded me of many of the reasons I developed a passion for computers in the first place.

    In reflecting on my notes from his speech, I realized that everything that Woz said about how the Homebrew Computer Club from the start about your "own machine" or your "own computer" applies today nearly 40 years later to your own online identity and your own website.

    However, like the early 1970s, the dominant computing paradigm is once again stuck in a timesharing mindset, updated with new terms and prettier interfaces.

    You may "own" your own handheld machine and computer, but your software and data are more and more updated, controlled, and stored in one or more proprietary centralized "clouds" (whether Google's Gmail/Calendar/Documents, or Apple's iCloud, or Facebook, or others vying to replace them).

    You used to be able to buy two Apple devices, e.g. an iPad/iPod/iPhone and a Mac, and sync them directly with each other. However, as of the latest version of Apple's operating system, ironically named "Mavericks", you can no longer do so, and must sync them both with iCloud, which they treat as the "true" copy of your data:

    [...] 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. [...]

    Stuck somewhere without an internet connection, or a connection that is slow or unreliable?

    Too bad, you can no longer sync between the devices that you hold in your hand, despite physically connecting them to each other with a cable. You are blocked from syncing the data between the devices in your very hands.

    Last week Woz said:

    We all wanted to be close to our own machine.

    If our machines are where we store (and share) our data, we are getting further from our machines, not closer.

    The timesharing systems of the 1970s were not disrupted overnight. Nor were they disrupted by large corporations no matter how innovative they thought they were. Nor were they disrupted by first designing for every user.

    They were disrupted by the emergence of innovations from a small group of dedicated enthusiasts who were first looking to empower each other, and second empower others. Woz continued:

    We wanted to own our own computer.

    You were going to go into your company, and take your own machine.

    Everybody was going to be empowered and a master of their own life.

    So what was it about the Homebrew Computer Club that made so much possible? Was it the timing - ? The Silicon Valley location(s)? The people? The frequency of meetings? The structure - how Lee Felsenstein ran the meetings?

    Homebrew member Chris Espinosa with an original club newsletter. At the 38th reunion I had the chance to catch up with Chris Espinosa, a frequent attendee of Homebrew Computer Club meetings, and asked him about some of the details.

    What time was the meeting?
    Right after work [7pm according to first issue of HCC newsletter]
    How often did they meet?
    Every two weeks. Often enough for a growing sense of continuity, yet infrequent enough to encourage going rather than skipping to go "next week".
    What was the general structure?
    Lee would start the meeting with a microphone, and then given the microphone to anyone who raised their hand with a point to make, or a question to ask. After that there was the "random access" period where people would break off and have smaller discussions, and eventually leave and go get something to eat, like at The Oasis in Palo Alto, or Bob's Big Boy in Cupertino (especially if you were under 21 [which Chris was at the time]).

    For a few years now we've had another growing community, focused on owning your own online identity and data. Primarily online with a wiki and IRC channel, we've also had a strong in-person component, meeting annually in various cities on weekends, and sometimes for evening dinners.

    Hearing the speeches at the Homebrew reunion and speaking with Chris made me wonder: what if we cloned some aspects of the Homebrew Computer Club and created an equivalent for personal websites?

    • We want to own our own web identity and data.
    • We all want to be close to our machines, content, identities.
    • Imagine going into a company, not only with your own machine(s), but your own online identity, document storage, etc.
    • We want to make tools that make us and eventually everyone a master of their own life.

    I mentioned these parallels to Ben Werdmuller and he said it made complete sense to him as well.

    So we're doing this. Started with inspiration, re-using much of the HCC structure, yet without asking permission:

    The Homebrew Website Club

    Are you building your own website? Indie reader? Personal publishing web app? Or some other digital magic-cloud proxy?

    If so, you might like to come to a gathering of people with likeminded interests. Exchange information, swap ideas, talk shop, help work on a project, whatever... (copied and modified from issue 1).

    - every other Wednesday night, starting
    Where (Updated!)
    MozillaSF 7th floor in San Francisco (transit BART:Embarcadero, MUNI:Embarcadero&Folsom).

    I really liked the "mapping" and "random access" meeting phases that Lee Felsenstein came up with. Perhaps we'll adopt similar phases like 30 minutes of "broadcasting" (for anyone to show what they've got working, or ask an open question for help with something) and 30 minutes of "peer to peer".

    I also remember someone at the reunion relating how when someone with the microphone went too long, Lee would cut them off and pass the mic to another person. We'll have to see how much such explicit "blowhard" management is needed. Maybe we just timebox "broadcasting" to 30 min total, and 2 minutes per person? Or maybe we'll figure it out as we go.

    Chris Espinosa's description about how the Homebrew meetings were "right after work" stuck with me. This meant the meetings were something you could go to before other plans, leaving the rest of the evening free to fork off in smaller groups for food, or seeing other friends, or going to home to spend time with the family. Such timing provides greater flexibility for a broader set of people who may have other evening obligations. Ben and I have decided to try starting at 18:30 and see how that goes. We figure you should all be leaving work by 18:00 anyway (regardless of what you do), leaving 30 minutes for transit.

    Once we've confirmed a venue (we have), I'll update this post (updated) and post an update. Until then, put it in your calendar:

    • 18:30 on Wednesday 2013-11-20 @MozSF: Homebrew Website Club

    Be seeing you.

    Thanks to Joël Franusic and Ben Werdmuller for reviewing drafts of this post.

  60. @veganstraightedge disagree. Better to post quick note thoughts sooner without expectations of an article (title/name, intro, narrative, closing, etc.) which can come later upon further reflection on the subject.

  61. Discomfort with a culture of performing reinforced by Facebook, Twitter, etc. thenewinquiry.com/essays/google-alert-for-the-soul/
    #self #identity

    Recommended soundtrack while reading the article:
    Clubbed to Death by Rob Dougan from The Matrix:

    My one biggest problem with the article is the reductive use of the term "data" in the phrase "data self". It's imprecise, inaccurate, and does a disservice to the underlying concept that the author is describing. Data lacks meaning and the meaning the concept expresses.

    A better naming & framing would be: the "cyber self".

    Cyber, as in virtual, online, and today, on the web.

    And cyber as in cybernetics (enwp.org/cybernetics).

    A lot more in this article. Will have to re-read it after
    s/data self/cyber self
    and see if I can blog something more actionable.

    For now I'm left with questions.

    You found this likely through one of the very systems that is being questioned.

    What is to be done?

    Can we simply unplug?

    Or are we, and those we love, "so inured, so hopelessly dependent on the system"[1] that we are trapped?

    Can we use these systems to fight the dopamine culture of micro-attention seeking they've been designed to promote and reinforce?

    Or is there hope in building independent alternatives and using the silos merely as distribution mechanisms for our critiques, planting seeds of doubt inside their walled gardens?

    [1] http://www.imdb.com/title/tt0133093/quotes?item=qt0324247

  62. got @Falcon future posting working:
    * write post
    * set dt-published to the future
    * shows up on home page at that time

  63. Congrats!
    @estellevw: Mobile HTML5
    @simplebits: Sass For Web Designers

  64. Awake and getting ready for my second #NovemberProject.

  65. Remembering #ilyaz.

  66. At Homebrew Computer Club reunion, watching @SteveWoz speak:

    "Every other Wednesday night I'd go [to the Homebrew Computer Club meeting] and listen to people who said that computers would change our lives. [...]

    We were going to make a tool that would make everyone a master.

    We all wanted to be close to our own machine.

    We wanted to own our own computer.

    You were going to go into your company, and take your own machine. [...]

    Everybody was going to be empowered and a master of their own life."

    Update 2013-11-12:

    Further reading:
    * http://news.cnet.com/8301-10797_3-57611874-235/homebrew-computer-club-reunion-lights-up-silicon-valley/

  67. It's been too long since I've run to the beach. Going running.
    P.S. Today is day 314 of the year. Happy ordinal π day.

  68. Is minutes til midnight too late to take a quick nap before staying up even later? Let's find out...

  69. @aaronpk I think the fox song would hurt your voice!
    (also demoing #indieweb comments)

  70. @KevinMarks if Medium is POSSE, where's the original?
    #indieweb means you're posting on a personal domain.
    Owning (much less partially so) a silo domain does not make it indieweb.

  71. used Google Hangouts on iPod+wifi to call
    * eye doctor for annual appointment
    * @tmobile to refill mifi

  72. @TMobileHelp sites down:
    How do I refill a mifi?

  73. went swing dancing @920special last night for the first time in months. been too long. happy place re-found. #dance

  74. @benwerd congratulations on launching permashortcitation support in idno / werd.io! #indieweb #POSSE

  75. I don't always link to HuffPo but when I do
    it dissects a pollyanna post

  76. @kevinmarks @nrrrdcore it is! Thanks for that breath of fresh air at #Roadmap2013; join us on Freenode: #indiewebcamp

  77. @mathpunk we often use h-cite to cite others' works e.g. in reply-contexts, federated comments: indiewebcamp.com/h-cite

  78. @lehawes Exactly!
    Sounds like you had a great talk at #defragcon!

  79. healthy quinoa+salad = 2 lunches
    1 @DanGillmor re: #indieweb tantek.com/2013/231/b1/questions-twitter-related-headlines-feature
    2 catch up w @christine & @mathias

  80. #Roadmap2013 earlier @espiekermann mentioned design process & focus for "Fira" for #FirefoxOS: spiekermann.com/en/fira-for-firefox-os-2/

  81. #Roadmap2013: sitting next to and watching @Mike_FTW cringe & gasp at learning about Tinder and CEO summary of dating.

  82. #Roadmap2013 @Jack:
    “… principle at the company:
     Show don't tell.”
    Sounds familiar

  83. @graemethickins #defragcon
    IndieWeb movement started 2010 post #FSW2010
    First IndieWebCamp 2011

  84. My notes often push all blog posts off my home page. So I built a sidebar box of three Recent Articles. #indiewebcamp

  85. nice #IndieWebCamp Hollywood @Farmhouse. discussed:
    * composite feeds
    * pinned posts
    * travel data
    and more: indiewebcamp.com/2013/Hollywood

  86. it was a good day to drive south with the parents. good sharing about those we lost; mentioned Douglas Engelbart too.

  87. family & friends I lost this year:
    x uncle (mom side)
    x uncle (dad side)
    x #aaronsw
    x @jeffreymcmanus

  88. evening run thoughts on default behaviors for good:
    1. be kind to yourself
    2. be kind to others
    3. live deliberately

  89. Taking days to think about m.theweek.com/article.php?id=99512
    Know a friend on either side?
    Just be supportive and there for them.

  90. Welcome to the 6th bim of the year.
    60 days left in 2013 (today included), make them count.