Tantek Çelik

Independent technologist, writer, teacher

  1. late BOS departure, SFO arrival, too late to make it to yoga. Who’s up for a quick run in Golden Gate park?

    on
  2. Finally catching up with tweets from a week and more ago. Grateful for so many. Will keep working to improve the web.

    on
  3. Boarded flight back to SF. Hope to make it back in time for 11:00 intermediate vinyasa yoga @MissionCliffs.

    on
  4. likes @davidmead’s tweet at , @thegreenK’s tweet at , @jenmylo’s tweet at , @LauraGlu’s tweet at , @shiflett’s tweet at , @ThatEmil’s tweet at , @Malarkey’s tweet at , @greg_harvey’s tweet at , @Malarkey’s tweet at , tweet at , @kurtzenter’s tweet at , @gericci’s tweet at , @joelsantiago’s tweet at , @Malarkey’s tweet at , @xgolferx’s tweet at , @jgarber’s tweet at , @absalomedia’s tweet at , @Malarkey’s tweet at , @jmsmcfrlnd’s tweet at , @kylewmahan’s tweet at , @marcosc’s tweet at , @scatteredbrainV’s tweet at , @brucel’s tweet at , @jeremyzilar’s tweet at , @f’s tweet at , @obiwankimberly’s tweet at , @Cennydd’s tweet at , @Wordridden’s tweet at , @leyink’s tweet at , @WaterSlicer’s tweet at , @kylewmahan’s tweet at , @pwcc’s tweet at , @BrendanEich’s tweet at , @PetraGregorova’s tweet at , @jeresig’s tweet at , @adactio’s tweet at , tweet at , and @rhiaro’s tweet at .

    on
  5. @sandhawke sorry to hear that! After this week you’ve definitely earned some weekend rest. Get well soon.

    on
  6. Thanks @SandHawke for hosting @IndieWebCamp, @dshanske for remote participation setup, and @dissolve333 especially for organizing the whole thing overall including getting sponsors for food, setting it all up, and keeping things running smoothly in general! https://instagram.com/p/0bCGxnA9Vp a photo http://timowens.io/2015/indiewebcamp-dinner-at-cambridge-2015 a jpg Photos from Tim Owens (timowens.io)

    on
  7. Dublin Core Application Profiles — A Brief Dialogue

    IndieWebCamp Cambridge 2015 is over. Having finished their ice cream and sorbet while sitting on a couch at Toscanini’s watching it snow, the topics of sameAs, reuse, and general semantics leads to a mention of Dublin Core Application Profiles.

    1. A:
      Dublin Core Application Profiles could be useful for a conceptual basis for metadata interoperation.
    2. T:
      (Yahoos for dublin core application profiles, clicks first result)
    3. T:
      Dublin Core Application Profile Guidelines (SUPERSEDED, SEE Guidelines for Dublin Core Application Profiles)
    4. T:
      Kind of like how The Judean People’s Front was superseded by The People’s Front of Judea?
    5. A:
      (nervous laugh)
    6. T:
      Guidelines for Dublin Core Application Profiles
    7. T:
      Replaces: http://dublincore.org/documents/2008/11/03/profile-guidelines/
    8. T:
      Hmm. (clicks back)
    9. T:
      Dublin Core Application Profile Guidelines
    10. T:
      Is Replaced By: Not applicable, wait, isn’t that supposed to be an inverse relationship?
    11. A:
      I’m used to this shit.
    12. T:
      (nods, clicks forward, starts scrolling, reading)
    13. T:
      We decide that the Library of Congress Subject Headings (LCSH) meet our needs. - I’m not sure the rest of the world would agree.
    14. A:
      No surprises there.
    15. T:
      The person has a name, but we want to record the forename and family name separately rather than as a single string. DCMI Metadata Terms has no such properties, so we will take the properties foaf:firstName and foaf:family_name
    16. T:
      Wait what? Not "given-name" and "family-name"? Nor "first-name" and "last-name" but "firstName" and "family_name"?!?
    17. A:
      Clearly it wasn’t proofread.
    18. T:
      But it’s in the following table too. foaf:firstName / foaf:family_name
    19. A:
      At least it’s internally consistent.
    20. A:
      Oh, this is really depressing.
    21. A:
      Did they even read the FOAF spec or did they just hear a rumour?
    22. T:
      (opens text editor)
    on
  8. First day of Spring 2015 #IndieWebCamp @MIT wrapped. Snow in Cambridge. Free wifi & power @Tosci. And ice cream. But that’s not free. Except for the samples.

    on
  9. Lots of personal site hacking @indiewebcamp today! a jpg More photos: https://indiewebcamp.com/2015/Cambridge#Photos

    on
  10. @slightlylate fortunately your action (post on a site with HTML content) speaks louder than your words ;) @smashingmag

    on
  11. Remember when you could find 1980s Usenet posts on DejaNews? Next: Google Groups is neglected: https://en.wikipedia.org/wiki/Deja_News#Criticism

    on
  12. Google’s new mission: organize the world’s information, universally neglect it, & delete it. #googlecode #youhadonejob

    on
  13. switched my site from Google’s PubSubHubbub hub to @superfeedr for: * better PuSH 0.4 * HTML new content notifications

    on
  14. Finished W3C Social Web Working Group meeting with more demos, co-evolution + bridges over competition, photo: https://aaronparecki.com/notes/2015/03/18/5/w3c a photo

    on
  15. 2014-06-11: 26 Harvard Stadium sections @Nov_Project 2015-03-18: 32 sections, PR. #weatherproof Goal: 37, a full tour. https://instagram.com/p/0YpSK_g9Yz a photo

    on
  16. likes Ben Robert’s photo at , Aaron Parecki’s note “Just launched PuSH 0.4 support for Monocle!” at , and Aaron Parecki's photo at .

    on
  17. chairing the afternoon session of @W3C Social Web Working Group, and @timberners_lee stops by to join the discussion!

    on
  18. Kezar is open! That means… Return of the Track https://youtu.be/DjzskFSU9Pc #justshowup Tue 6am; @t me, rub in the #FOMO.

    on
  19. likes @BrendanEich’s tweet.

    on
  20. Note: @edsu’s post reads *beautifully* without ANY Javascript being loaded. Fast too. #WordPress #indieweb #nojsneeded

    on
  21. Superb follow-up by @edsu to my "js;dr" JavaScript required did not read post: inkdroid.org/journal/2015/03/12/javascript-and-archives/ via @kylewm2

    on
  22. Hello Cambridge MA! I am in you. And you’re a lot less cold than I expected. Haven’t had to use my gloves or hat yet!

    on
  23. to MIT for @W3C Social Web WG, @IndieWebCamp! Let’s focus on live user-centric demos only, no architecture astronomy plumbing demos, no video playback. Live demos with real websites with real content (no Lorem Ipsum) and real URLs / permalinks that anyone can load, browse, verify for themselves. See Also: http://tantek.com/2015/069/t1/js-dr-javascript-required-dead

    on
  24. wrote draft of attribution practices for @W3C specs, using the wiki. @W3CAB said good to share https://www.w3.org/wiki/Attribution

    on
  25. A week ago I woke up at ~6:15 in Big Basin to @LaurBreu shouting “Time to get up for morning run!”. It was significantly colder than any recent morning in San Francisco. I put on three layers and joined about a half dozen other fellow #NPSF campers; I think we finally got going about 6:45. When I returned to camp I had completed my longest trail run to date, most of it solo. https://instagram.com/p/0Nm00jA9XW/ a photo We ran down to the park headquarters, checked out the trail options, and quickly decided on Berry Creek Falls, whick seemed about another 4.5 miles away. There was a brief debate about whether to do a full 9 mile loop or run back after a halfway point. Everyone started down the trail at a fast clip. In less than half a mile I had lost sight of them. After about a mile, I saw one friend come back, she'd noted beforehand that she had to cut short for another engagement. Not long after I saw another friend walking back, apparently having twisted her ankle running. After that I didn’t see anyone else on the trail. I kept running, stopping a few times to take photos. After making it about 3/4 of the way to Berry Creek Falls, I kept expecting to see the rest of the group running back. With just 1 mile to go I decided to keep going all the way to the falls. Made it to a bench with a beautiful view of the falls, yet it looked like I could get closer. The trail meandered downhill closer to the creek eventually to a large fallen tree. To my right was a large boulder embedded in the ground that looked too slippery to descend down to the flowing water. I crossed the creek with the fallen tree as bridge. On the other side I had to jump down to another fallen tree, then down to the creekbank where the path continued back towards the falls. Hiking up I finally got close enough for a better view. At this point I had no idea where everyone else had gone. Last I had heard the plan was to run to the falls and run back. Since I was on my own, and after all the wandering about 5 miles away from the park headquarters, I decided the best option was to run back the way I came. I ran back to the fallen tree. But this time I crossed the rocks in the stream to the large boulder on the other side. At about a 60 degree incline, with plenty of ridges to grab, and chips to dig my feet into, I climbed up the boulder without difficulty. On the run back the layers came off until I was running in a tshirt and sweatpants, the rest tied around my waist. I’d never run this far by myself, in a new place, miles away from help or other resources. No headphones, no network contact. A lot of time to just think, run, and focus. Focus on running, on keeping a good pace, and regular breathing. It was good to see landmarks that I had passed on the way in. I’d counted three trail markers, and as I passed each one on the way back I sipped just that much from the remaining water bottle strapped to my waist. About halfway back I finally started to see people coming the other way. Hikers. With jackets, backpacks, and hats. As we exchanged good mornings and they stopped to stand back as I ran by, I couldn't help but think, I used to be you, now I'm this. I reached the trail head at park headquarters, checked a map for the road back to the camp, and ran uphill the rest of the way. The trail was estimated to take ~6 hours. I ran ~11 miles from camp to the waterfall and back in under 2.5 hours. At some point in the last few months apparently I changed from a hiker to a trail runner. It felt more comfortable, and was more fun, to run the trail than walk it.

    on
  26. “amplifications of lesser heard voices are vital to a free society.” — @acegiak #indiewebcamp. Continued: “Solidarity with minorities you're not a part of prevents authorities from dividing people and conquering” http://indiewebcamp.com/irc/2015-03-11/line/1426064607414

    on
  27. Made it once more around the sun.

    on
  28. New @CSS3UI WD published w3.org/TR/2015/WD-css3-ui-20150310 All but 1 issue resolved. Fewer features too, consistent with: http://tantek.com/2015/068/b1/security-towards-minimum-viable-web-platform

    on
  29. js;dr = JavaScript required; Didn’t Read. Pages that are empty without JS: dead to history (archive-org), unreliable for search results (despite any search engine claims of JS support, check it yourself), and thus ignorable. No need to waste time reading or responding. Also known as, if it’s not curlable, it’s not on the web. https://indiewebcamp.com/curlable Because in 10 years nothing you built today that depends on JS for the content will be available, visible, or archived anywhere on the web. All your fancy front-end-JS-required frameworks are dead to history, a mere evolutionary blip in web app development practices. Perhaps they provided interesting ephemeral prototypes, nothing more. Previously: * pdf;dr: tantek.com/2013/305/t2/pdf-dr-avoid-clicking-link-pdf Related: * tos;dr: tosdr.org See Also: * htmlcssjavascript.com/web/youre-so-smart-you-turned-javascript-into-xhtml/ * https://sourcegraph.com/blog/switching-from-angularjs-to-server-side-html * https://adactio.com/journal/7706 Responses and follow-ups: * inkdroid.org/journal/2015/03/12/javascript-and-archives/ * tantek.com/2015/075/t5/reads-beautifully-without-javascript-loaded-fast * reddit.com/r/programming/comments/2ys5nk/jsdr_javascript_required_didnt_read/

    on
  30. Simplifying Standards & Reducing Their Security Surface: Towards A Minimum Viable Web Platform

    At the start of this month, I posted a simple note and question:

    Thoughts yesterday lunch w @bcrypt: @W3C specs too big/complex. How do we simplify WebAPIs to reduce security surface?

    With follow-up:

    And @W3C needs a Security (#s6y) group that reviews all specs, like #i18n & #a11y (WAI) groups do. cc: @bcrypt @W3CAB

    Which kicked off quite a conversation on Twitter (18 replies shown on load, 53 more dynamically upon scrolling if various scripts are able to load & execute).

    Security & Privacy Reviews

    Buried among those replies was one particularly constructive, if understated, reply from Mike West:

    […] mikewest.github.io/spec-questionnaire/security-privacy/ is an initial strawman for security/privacy self-review.

    A good set of questions (even if incomplete) to answer in a self-review of a specification is an excellent start towards building a culture of reviewing security & privacy features of web standards.

    While self-reviews are a good start, and will hopefully catch (or indicate the unsureness about) some security and/or privacy issues, I do still think we need a security group, made up of those more experienced in web security and privacy concerns, to review all specifications before they advance to being standards.

    Such expert reviews could also be done continuously for "living" specifications, where a security review of a specification could be published as of a certain revision (snapshot) of a living specification, which then hopefully could be incrementally updated along with updates to the spec itself.

    Specification Section for Security & Privacy Considerations

    In follow-up email Mike asked for feedback on specifics regarding the questionnaire which I provided as a braindump email reply, and offered to also submit as a pull request as well. After checking with Yan, who was also on the email, I decided to go ahead and do so. After non-trivially expanding a section, very likely beyond its original intent and scope (meta-ironically so), it seemed more appropriate to at least blog it in addition to a pull request.

    The last question of the questionnaire asks:

    Does this specification have a "Security Considerations" and "Privacy Considerations" section?

    Rather than the brief two sentence paragraph starting with Not every feature has security or privacy impacts, which I think deserves a better reframing, I've submitted the below replacement text (after the heading) as a pull request.

    Reducing Security Surface Towards Minimum Viability

    Unless proven otherwise, every feature has potential security and/or privacy impacts.

    Documenting the various concerns that have cropped up in one form or another is a good way to help implementers and authors understand the risks that a feature presents, and ensure that adequate mitigations are in place.

    If it seems like a feature does not have security or privacy impacts, then say so inline in the spec section for that feature:

    There are no known security or privacy impacts of this feature.

    Saying so explicitly in the specification serves several purposes:

    1. Shows that a spec author/editor has possibly considered (hopefully not just copy/pasted) whether there are such impacts.
    2. Provides some sense of confidence that there are no such impacts.
    3. Challenges security and privacy minded individuals to think of and find even the potential for such impacts.
    4. Demonstrates the spec author/editor's receptivity to feedback about such impacts.

    The easiest way to mitigate potential negative security or privacy impacts of a feature, and even discussing the possibility, is to drop the feature.

    Every feature in a spec should be considered guilty (of harming security and/or privacy) until proven otherwise. Every specification should seek to be as small as possible, even if only for the reasons of reducing and minimizing security/privacy attack surface(s).

    By doing so we can reduce the overall security (and privacy) attack surface of not only a particular feature, but of a module (related set of features), a specification, and the overall web platform. Ideally this is one of many motivations to reduce each of those to the minimum viable:

    1. Minimum viable feature: cut/drop values, options, or optional aspects.
    2. Minimum viable web format/protocol/API: cut/drop a module, or even just one feature.
    3. Minimum viable web platform: Cut/drop/obsolete entire specification(s).

    Questions and Challenges

    The above text expresses a specific opinion and perspective about not only web security, web standards, but goals and ideals for the web platform as whole. In some ways it raises more questions than answers.

    How do you determine minimum viability?

    How do you incentivize (beyond security & privacy) the simplification and minimizing of web platform features?

    How do we confront the various counter-incentives?

    Or rather:

    How do we document and cope with the numerous incentives for complexity and obfuscation that come from so many sources (some mentioned in that Twitter thread) that seem in total insurmountable?

    No easy answers here. Perhaps material for more posts on the subject.

    Thanks to Yan for reviewing drafts of this post.

    on
  31. Camped this weekend. 48 hrs 100% off grid. Only device usage: * took a few photos & notes * tracked ~11 mile trail run

    on
  32. Known Pro is here! https://withknown.com/pro/ Congrats @benwerd @erinjo! #indieweb @Withknown’s superior interoperability, mobile web support, user experience, and integration with existing silos, is far beyond any other content publishing system, independent or otherwise in existence. And it’s open source as well. http://stream.withknown.com/2015/introducing-known-pro-the-best-way-to-reach-your-audience

    on
  33. going to @IndieWebCamp Cambridge @MIT 2015-03-19..20! indie event: aaronparecki.com/events/2015/03/19/1/indiewebcamp silo: fb.com/events/437461433068146/

    on
  34. going to @W3C Social Web WG meeting @MIT 2015-03-17..18 indie event aaronparecki.com/events/2015/03/17/1/socialwg-2015 silo fb.com/events/444025702419735/

    on
  35. @todrobbins @andyet big fan of talky.io, using it @indiewebcamp @W3C Social Web mtgs. Telecons still need POTS-compat.

    on
  36. @tylergillies @Google Hangouts iOS app touch-tones started working again today = participated in @W3C @CSSWG telecon.

    on
  37. Finished @CSS3UI edits for all (but one) open resolved and minor issues, and have requested that WG / @W3C publish it as a TR Working Draft: http://dev.w3.org/csswg/css-ui-3/

    on
  38. Things that broke so far today * @Google Hangouts iOS app touch-tones = no joining W3C telcon * refrigerator (at home)

    on
  39. ran Trackish Tuesday before dawn: 3x600 2x200 600 400 200 600 2x200 Then saw the sunrise. Going to need that today.

    on
  40. @indiewebcamp @kylewm2 I'll be there early 17:00-19:00 for quiet writing and open discussions. Have to leave early.

    on
  41. going to Homebrew Website Club @TheCreamerySF March 11, but only for 17:00-19:00. Indie event: werd.io/2015/homebrew-website-club-march-11-2015 silo: fb.com/events/1605342076364274

    on
  42. Ghosts in the machine: open tabs and auto-completed-from-history posts from deceased friends. Considering creating or adding to memorial pages for them in the communities we knew each other in, beyond just citing their work. Seems about all we can do sometimes, remember them for their good work, and their positive contributions.

    on
  43. @mikewest good start on #security and #privacy questions. Do you have sample answers e.g. for existing WebAPI CR(s)?

    on
  44. likes @robinberjon’s tweet at , @mikewest’s tweet at , @bcrypt’s tweet at , and @mnot’s tweet at .

    on
  45. @fugueish @xkit I fear/suspect that. Paytoplay + academic + enterprise + committee design at odds with min viable APIs

    on
  46. likes @fugueish’s tweet at , @xkit’s tweet at , @bcrypt’s tweet at , @jyasskin’s tweet at , @mnot’s tweet at , @bcrypt’s tweet at , and @aardrian’s tweet at .

    on
  47. Does it matter that @Google is asking for exclusive internal use of .dev, and silo-izing .blog? http://sealedabstract.com/rants/google-our-patron-saint-of-the-closed-web/

    on
  48. likes @npdoty’s tweet.

    on
  49. And @W3C needs a Security (#s6y) group that reviews all specs, like #i18n & #a11y (WAI) groups do. cc: @bcrypt @W3CAB

    on
  50. Thoughts yesterday lunch w @bcrypt: @W3C specs too big/complex. How do we simplify WebAPIs to reduce security surface?

    on
  51. likes kylewm.com’s post.

    on
  52. @awoods @kylewm2 your bio says WordPress & your site too. #indieweb is about empowering how you already work: http://indiewebcamp.com/WordPress As @kylewm2 said, up to you. We do have plenty very friendly WordPress folks who are happy to help out - stop by our IRC channel if you get a chance: irc://irc.freenode.net/indiewebcamp Realtime archive: indiewebcamp.com/irc/today

    on
  53. @mnot @bcrypt always keep your independence close to heart & mind. ABC: Always be creating on/for your #indieweb site.

    on
  54. likes @mnot’s tweet at and @bcrypt’s tweet at .

    on
  55. Ran 3x up Hayes hill (Laguna>Pierce) this morning in 30 minutes. 11 weeks til we #raceb2b. #b2b2015 #hillsforbreakfast

    on
  56. likes @aaronpk’s tweet at and tweet at .

    on
  57. @badosa *just* saw my typo. Apologies & thank you for the correction! Fixed on my site at least http://tantek.com/2015/055/t1/two-more-indiewebcamp-translations

    on
  58. @kylewm2 hence I replied to the source for context. The brackets […] indicate removal from a quote. More: https://en.wikipedia.org/wiki/Ellipsis Specifically: “If an ellipsis is meant to represent an omission, square brackets must surround the ellipsis to make it clear that there was no pause in the original quote: [ . . . ]. Currently, the MLA has removed the requirement of brackets in its style handbooks. However, some maintain that the use of brackets is still correct because it clears confusion.” Since we often use ellipses to truncate POSSE tweets, it’s better to always use […] when elliding inside a quote, to disambiguate that the ellipsis was not in the original. And square brackets are also the convention for indicating quoter edits to the content of a quotation, such as insertion of implied words, substitutions for pronouns etc.

    on
  59. “dropped my RSS […] to simplify my site’s code. I don’t want to maintain all these sidefiles.” — @kartik_prabhu

    on
  60. #IndieWeb: Homebrew Website Club 2015-02-25 Summary

    2015-02-25 Homebrew Website Club participants, seven of them, sit in two rows for a photograph

    At last night's Homebrew Website Club we discussed, shared experiences, and how-tos about realtime indie readers, changing/choosing your webhost, indie RSVPs, moving from Blogger/Tumblr to your own site, new IndieWebCamp Slack channel, and ifthisthen.cat.

    See kevinmarks.com/hwc2015-02-25.html for the writeup.

    on
  61. @rachelnabors right-click works fine on that image in Firefox 37. Perhaps file a bug/feature request for your browser?

    on
  62. @rachelnabors I remember that. Experiments are good. Better techniques now, e.g. http://tantek.com/2013/149/b1/bayesian More: http://cookiecrook.com/longdesc/

    on
  63. Disappointed in @W3C for Recommending Longdesc

    W3C has advanced the longdesc attribute to a Recommendation, overruling objections from browser makers.

    Not a single browser vendor supported advancing this specification to recommendation.

    Apple formally objected when it was a Candidate Recommendation and provided lengthy research and documentation (better than anyone has before or since) on why longdesc is bad technology (in practice has not and does not solve the problems it claims to).

    Mozilla formally objected when it was a Proposed Recommendation, agreeing with Apple’s research and reasoning.

    Both formal objections were overruled.

    For all the detailed reasons noted in Apple’s formal objection, I also recommend avoid using longdesc, and instead:

    • Always provide good alt (text alternative) attributes for images, that read well inline if and when the image does not load. Or if there’s no semantic loss without the image, use an empty alt="".
    • For particularly rich or complex images, either provide longer descriptions of images in normal visible markup, or linked from a image caption or other visible affordance. See accessibility expert James Craig’s excellent Longdesc alternatives in HTML5 resource for even more and better techniques.

    Perhaps the real tragedy is that many years have been wasted on a broken technology that could have been spent on actually improving accessibility of open web technologies. Not to mention the harrassment that’s occurred in the name of longdesc.

    Sometimes web standards go wrong. This is one of those times.

    on
  64. likes @kevinmarks’s tweet at and @Kbabula’s tweet at .

    on
  65. going to Homebrew Website Club 17:30 @MozSF 2015-02-25. Indie event kylewm.com/2015/02/homebrew-website-club-2015-february-25 silo fb.com/events/1579077165643006

    on
  66. @fbonacci no, no joker. Normally that would be a lap or stadium stairs, but not with today’s legs.

    on
  67. This morning: legs too tired to sprint, did a deck instead. 33 cards of ♣ leglift ♦ sideplank ♥ pushup ♠ sergeant lunge 2-10 J=11 Q=12 K=13 A=14 For the sideplank and lunges, I did the count from the card on both sides/legs. Took a photo with the rest of the Trackish Tuesday crew and then watched the sunrise in Golden Gate Park afterwards on my way home. https://instagram.com/p/zfSACaA9b7 a photo

    on
  68. New @W3C TR snapshot of @CSS3UI published. Focus on implemented features, most issues resolved: http://www.w3.org/TR/2015/WD-css3-ui-20150224/

    on
  69. likes @kevinmarks’s tweet at , @garethjordan’s tweet at , @adrianshort’s tweet at , @adactio’s tweet at , @badosa’s tweet at , @krisshaffer’s tweet at , and @slamteacher’s tweet at .

    on
  70. @davewiner you're using Twitter. @benwerd & I use our indieweb sites for all notes & replies, copied to feeds+Twitter

    on