Tantek Çelik

Inventor, writer, teacher, runner, coder, more.

💬 👏
  1. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. Twin Peaks #hillsforbreakfast in #clouds (1), #sunshine in Glen Canyon (2-3), succulents en route back to Twin Peaks (4), #extravert up Tank Hill (5), Mount Olympus (6), Corona Heights (7-8), Buena Vista (9-10) for 8.9 miles & 2533'

    #optoutside #getoutside #run #trailrun #runner #runners #sf #city #nofilter

  2. Homebrew Website Club SF!

    When: Where: Mozilla San Francisco Host: Tantek Çelik

    17:30: Optional writing hour and quiet socializing
    18:30: IndieWeb demos and hack night!

    Homebrew Website Club retro 1980s-style logo

    Topics for this week:

    Demos of personal website breakthroughs. Create or update your personal web site!

    Join a community with like-minded interests. Bring friends that want a personal site, or are interested in a healthy, independent web!

    Any questions? Ask in #indieweb Slack or IRC

    More information: IndieWeb Wiki Event Page

    RSVP: post an indie RSVP on your own site!

  3. IndieWebCamp SF / #DWeb Hackers Day

    When: Where: Mozilla San Francisco Host: Tantek Çelik

    In town for the Decentralized Web Summit August 1-2 and not otherwise busy on July 31st?

    Mozilla invites you to a complementary (and complimentary) all day Decentralized Web Hackers Day and IndieWebCamp SF at our Mozilla San Francisco offices.

    Spend a day creating the web you want collaborating with others doing the same, using the latest in decentralized and indieweb technologies.


    • 10:00 Opening keynotes and lightning intros/demos
    • 11:00 BarCamp breakout session scheduling
    • 11:30 Open hack day and discussion sessions
    • 16:00 Lightning Demos!
    • 17:00 Wrap-up and transit to DWeb pre-party

    We will open the day with a few brief introductory keynotes to set the stage and get your creativity flowing, followed by a round of lightning intros/demos by participants who want to (yes that means you!)

    In our usual BarCamp style, we’ll spend a few minutes having participants propose different discussion/hacking sessions for the day and pick rooms & time slots. Sessions will start promptly after scheduling. Don’t worry if this is your first time participating in a BarCamp, we will explain the process for everyone and especially make sure newcomers get a chance to propose their session ideas.

    Final sessions and hacking will wrap at 16:00 and we will all reconvene in the main room for a round of lightning demos of hacks, insights, whatever you made or thought up.

    Afterwards we’ll direct you to local transit that will take you to the Internet Archive for the Decentralized Web Summit Science Faire and Pre-party (requires separate registration)

    Any questions? Ask in #indieweb Slack or IRC

    More information: IndieWeb Wiki Event Page

    RSVP: post an indie RSVP on your own site or add yourself to the wiki (or both!)

  4. ↪ In reply to adactio.com’s post @adactio not “yet prove to be” but rather Santa Cruz has been for almost 7 years already (nearly 6 years at the time of your @adactioJournal post).

    Posted about it at the time: http://tantek.com/2011/228/t4/minority-report-programs-not-precogs-santa-cruz

    #minorityreport #precog #precogs #precrime #ai

  5. ↪ In reply to issue 803 of GitHub project “bridgy” Here is another more recent example:


    New issue, with two labels: css-overflow-4, css-scrollbars-1

    Only the first label was added to the Bridgy Publish POSSE copy:


    Is this the same problem? I thought perhaps with the switch from GraphQL to the GitHub v3 API a few weeks (months?) ago, this might have been fixed at the same time.

    Whatever the cause is, some labels are still not getting through via publish.

  6. Homebrew Website Club SF!

    When: Where: Mozilla San Francisco Host: Tantek Çelik

    17:30: Optional writing hour and quiet socializing
    18:30: IndieWeb demos and hack night!

    Homebrew Website Club retro 1980s-style logo

    Topics for this week:

    Demos of personal website breakthroughs. Create or update your personal web site!

    Join a community with like-minded interests. Bring friends that want a personal site, or are interested in a healthy, independent web!

    Any questions? Ask in #indieweb Slack or IRC

    More information: IndieWeb Wiki Event Page

    RSVP: on the Facebook event or post an indie RSVP on your own site!

  7. a jpg. a jpg. #TBT to the Rodeo Valley 30k and how good the first half felt, running uphill (1) and downhill (2). Then learning in the second half that I had what it took to endure hours of 90-95°F temperatures to run, jog, and hike to finish a five hour trail race. Race photos 📷 Chris Cleary @insidetrail

    #optoutside #getoutside #run #trailrun #insidetrail #runner #rodeovalley #race #trailtuesdaythrowback #latergram #nofilter #2018_174

    Previously: tantek.com/2018/175/t1/finished-rodeovalley-my-first-30k

  8. ↪ In reply to issue 419 of GitHub project “csswg-drafts” The new CSS Scrollbars 'scrollbar-width' property with a value of 0 (or 'none' if we go that route), has the requested effect for this issue.


    That is, hidden scrollbars, but content remaining scrollable.

    label: #css-scrollbars-1

  9. New issue on GitHub project “csswg-drafts”

    scrollbar-gutter should move to CSS Scrollbars 2nd draft

    Once CSS Scrollbars has been resolved and published as a FPWD, the scrollbar-gutter property should be moved from CSS Overflow 4 to CSS Scrollbars.

    This was discussed briefly at the recent f2f in Sydney with general agreement among those discussing that scrollbar-* properties ought to be in the same spec, and @astearns pointed out to me the detail that it would be better to move it after FPWD, since 'scrollbar-gutter' has already been published in a FPWD, and I agree.

    Labels: css-overflow-4, css-scrollbars-1

  10. 👍 to pull request 98 to GitHub project “webmention”

  11. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. Beautiful Saturday for a #trailrun in the #Marin #hills at #SFRC! Steady 12 miles, ~2150', 2 beaches, and bones of a beached whale.

    #optoutside #getoustide #run #trails #beach #whalebone #whalebones #latergram #nofilter

    1 panoramic from Horizonal Control Mark Coyote Ridge 2
    2 look back down Miwok
    3 view of Pirates Cove from Coastal Trail
    4 Pirates Cove beach
    5 Pirates Cove looking North
    6 Stepping into the coarse sandy surf at Tennessee Beach
    7 Tennessee Beach looking North
    8 vertical panoramic of sun and mottled clouds over the beach
    9 large whale bone
    10 remaining whale bones and beach looking South

    First long run since my 30k. Quite a sluggish start, took me a few miles to warm-up and get into a good groove. Subsequent hills felt easier than when I ran them two weeks ago. Another bright sunny day with temperatures mostly in the 80s F, much better than the 90s during the 30k!

    Previously: http://tantek.com/2018/175/t1/finished-rodeovalley-my-first-30k

  12. ↪ In reply to a comment on issue 1958 of GitHub project “csswg-drafts” 'scrollbar-width' added to the draft accordingly with a few details defined, and a few details in notes. Please review:


    Comment if you find aspects we can improve.

    Thumbs-up this comment if everything looks good enough for a public working draft.

  13. ↪ In reply to issue 1988 of GitHub project “csswg-drafts” Section added: https://drafts.csswg.org/css-scrollbars-1/#security-privacy-considerations

    Closing issue.

  14. ↪ In reply to issue 2879 of GitHub project “csswg-drafts” This seems reasonable to me. Now that we also have 'scrollbar-width', do we also want a 'scrollbar' shorthand to do both colors and the width?

    Can we rename this issue to something like:
    Shorthands for scrollbar colors, and colors + width?

    Let’s use this issue to discuss scrollbar shorthands in general.

  15. ❤️ to a comment on issue 863 of GitHub project “csswg-drafts”

  16. ↪ In reply to issue 1958 of GitHub project “csswg-drafts” There appears to be consensus at least in the current comments on this issue for adding a property to modify scrollbar size, with some additional preference for that to be treated as a maximum size, allowing implementations to show smaller scrollbars if it’s more appropriate.

    I have captured the use-cases mentioned here and to me in person on the wiki accordingly:


    Regarding the concern about terminology raised by https://github.com/silverwind about using "width" for horizontal scrollbars, vs the suggested alternative "thickness", note that CSS already has a notion of modifying the width of horizontal and vertical "bars" in the 'border-width' and 'outline-width' properties.

    In particular note the pre-existing 'border-top-width' and 'border-bottom-width' properties (https://drafts.csswg.org/css-backgrounds-3/#border-width) which specifically apply to horizontal borders. Thus I think it is both ok and desirable to use "width" to refer to the scrollbar size as well, since it is consistent with those existing properties, and matches what web developers will likely already be familiar with in CSS.

    I’m going to specify a 'scrollbar-width' property that takes length units that sets the maximum width of any scrollbars on an element when they are shown. 'auto' will be used as the initial value that means just use the platform default scrollbar size.

  17. 👍 to issue 2472 of GitHub project “csswg-drafts”

  18. 👍 to a comment on issue 1960 of GitHub project “csswg-drafts”

  19. 👍 to a comment on issue 1960 of GitHub project “csswg-drafts”

  20. 👍 to a comment on issue 1960 of GitHub project “csswg-drafts”

  21. 👍 to issue 2851 of GitHub project “csswg-drafts”

  22. ↪ In reply to issue 2846 of GitHub project “csswg-drafts” The examples given are definitely challenging to consider.

    I would be in favor of documenting some “simpler” interesting and desirable examples in spec itself with sample browser renderings.

    For example an inline flow element that is wrapped across multiple lines, both where the boxes are disjoint, and where the boxes are touching, or perhaps wrapped across 3+ lines, to illustrate an “outline that encloses all the element’s boxes” as a more ideal rendering than say separate boxes for each piece.

    Perhaps related, the spec mentions non-rectangular (effectively) three times in the outline section, “Outlines may be non-rectangular” (twice) and “The parts of the outline are not required to be rectangular”. While clarifying/documenting some preferred outline renderings, perhaps we can simplify the definition and remove the apparent duplicate descriptions.

  23. 👍 to issue 2820 of GitHub project “csswg-drafts”

  24. ↪ In reply to @csageland’s tweet @csageland sorry to miss you!
    Best #IndieWebSummit yet!
    Wide variety of sessions, hacks, demos. Check out session notes & videos: https://indieweb.org/2018/Schedule#Tuesday
    And join us in chat! https://indieweb.org/discuss

  25. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. A few from #Portland this week:
    1 #IndieWebSummit group photo, 📷 @aaronpk’s camera on timer
    2 #IndieWeb Leaders Summit the day before @MozPDX, 6 in room + 6 remote
    3 Bowl of the gods #acaibowl with peanut butter on top at Kure that morning
    4 Chipotle chili bowl with quinoa at Prasad the night before that
    5 Berlin IWS Remote Viewing hosted @EmbassyNetwork by 📷 @anikasai
    6 Participant proposed & led @IndieWebSummit sessions
    7 Running @Nov_ProjectPDX with @DesignNatalie (not pictured)
    8 Fresh #NP_PDX tag thanks to co-leaders Lara & Shelby
    9 Black Currant Cider limited-edition #donut @BlueStarDonuts

    #2018_176 #2018_177 #2018_178

    More photos soon. Got photos from @IndieWebSummit to share?
    Add them to https://indieweb.org/2018#Photos

  26. Finished my @IndieWebSummit coding project!

    Completed plain text readable reply-contexts^1 (instead of just URLs) for all responses; in particular got these working:
    * in-stream^2 for new GitHub issues
    * on permalinks for all replies & reacji^3
    Sometimes it’s the small details.

    ^2 https://indieweb.org/reply-context#Why_in-stream
    ^3 https://indieweb.org/reacji

  27. Grateful for the 10th (likely final?) @OSBridge.

    @OSBridge culture & values continue to be an inspiration that can benefit every tech/OSS conference (including those I help with).

    If you have been to @OSBridge, pass on what you have learned*


  28. This is your last @xoxo reminder!

    ~25min to do #xoxofest registration survey!


    You can do it in <10 min!

    1 line answers to (abbr’d)

    What do you do?
    What are you working on?
    What’ve you made that you’re proud of?

  29. Sharing brief @IndieWebSummit notes as they come to mind.

    This was the first year people pre-wrote proposals before the #BarCamp organizing session. As facilitator I decided to have people who never proposed before go first.
    Coincidentally, @Christi3k just announced the same thing @OSBridge unconference organizing session.

    This may be worth codifing as a normal practice. Let first-timers propose sessions first before anyone who has done this before, especially at an @IndieWebCamp before.

    The other thing I did was, after the the first-timers finished explaining and scheduling their BarCamp session proposals, I had people *other than* the remaining session proposers choose from the remaining session proposals posted on the side of the grid, and advocate for them. I think that worked quite well for selecting for the sessions that were more compelling for more people. #2018_177

  30. The 8th annual @IndieWebSummit wrapped up yesterday and simply put, I was blown away by the sessions everyone organized and especially by the incredible things everyone made & demonstrated.

    Notes & videos: https://indieweb.org/2018/Schedule#Tuesday

    Photos coming #indieweb #openweb

  31. ↪ In reply to a comment on issue 1 of GitHub project “fragmentioner” https://github.com/kartikprabhu Looks like you can also use the Clipboard API (https://caniuse.com/clipboard) to write directly to the clipboard (using navigator.clipboard.writeText) in response to e.g. a click on a link (or button), see and try the code in Example 10 here:


  32. ↪ In reply to a comment on issue 1 of GitHub project “fragmentioner” https://github.com/kartikprabhu according to the linked examples on:


    It looks like you can intercept document.oncopy and change the selection (using selection.selectAllChildren) to then cause the copy command itself to copy whatever text you want, rather than having to use execCommand("copy").

  33. New issue on GitHub project “fragmentioner”

    Fragmentioner default action should copy link instead of nav

    Instead of "Link to Text", I want "Copy link to text" that copies the fragmention to the clipboard rather than navigates to it. Copying the link is a better default desired action than navigation. Why would you want to navigate to the thing you just selected? It's more likely you want to copy a link to what you just selected so you can post a highlight of, or comment on the selected text.

  34. New issue on GitHub project “Aperture”

    Support fallback to RelMeAuth for websites missing authorization endpoint

    When I try to sign-in I get an error message:

    missing authorization endpoint
    Could not find your authorization endpoint

    It would be great if instead it would fallback to supporting RelMeAuth perhaps via indielogin.com, so anyone who has already setup rel=me for signing into Indieweb.org could also sign-in to Aperture!

  35. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. Finished #RodeoValley 30k in 05:10:17 yesterday! 📷 @kellyfuson #2018_174
    My first 30k and the hardest #race I’ve run. First 2 hours felt great, powered up the Miwok ridge, then the heat slowed everything down to a struggle. Race write-up continues after photo summaries:
    2 🌄 Marin Headlands sunrise
    3 Dressed to race!
    4 Ready 30k 50k start
    5 SCA photo stop
    6 Hill 88 view to Rodeo Beach
    7 Race temperature over time

    #run #trailrun #trailrace #insidetrail #latergram #nofilter

    Always better participating in a race with friends. Kelly and I carpooled, and picked up our Inside Trail race bibs (different races), got ready, and had someone take our photo with Rodeo Beach in the background (photo 3).

    The air was cool at the 30k & 50k start (photo 4), and the crowd started at a nice easy pace (in contrast to everyone bursting out of the gate at Double Dipsea).

    The 30k course started with a gradual uphill. Everyone pacing themselves provided a good sense of momentum, enough to run up the first set of hills, all the way up to the SCA trail where I saw a few taking photos so I did too (photo 5).

    Smooth run up and down SCA and Alta trails to Marincello, took off downhill without missing a beat, and somehow passed a lot of people who had passed me on the uphills.

    Made it down to the Tennessee Valley parking lot in (personal) record time. Refilled my water bottle at the aid station and headed up Miwok, where the temperature got noticeably warmer the higher I went. It was a tough slog by myself. When another runner passed me who was also struggling, I found the energy to barely keep up, several paces behind.

    We reached the turn onto Coyote Ridge and it had definitely heated up.

    Weather forecasts had predicted mid 70s in Mill Valley, and 80 at Rodeo Valley. Clear, not a cloud in the sky.

    I didn’t realize until after I synced the temperature data from my watch (photo 7) that since that 2 hour mark, temperatures on the course went from 80 up to 95°F (except for a brief drop to 75°F after hour 4 in Tennessee Valley).

    When I felt the heat hiking up Coyote Ridge, I figured it was the predicted mid 70s, accentuated by the direct sunglight. With a full water bottle I pressed on, hitting the halfway mark at about 2h15m in, with over 2200' (much more than half) of vertical climb completed. I had started feeling the effects of the heat, my stomach would no longer accept any food, and I had to slowly sip from my bottle up the hill.

    Ran most of the way downhill to Coastal, it was hot enough to slow down and walk a few times. Made my way down to Pirates Cove, without much difficulty. Then the real challenge started.

    The climb up out of Pirates Cove was brutal and long. It was feeling hotter still, and I figured it had crept up to ~80°F (when it was actually closer to 95). I knew I had enough water to make it back to the aid station. I focused on my breathing, and watched my heartrate, pushing uphill only hard enough to keep it between 140-150bpm.

    The hill seemed to go on forever. I kept pushing until a couple of times I literally had to stop, take a few deep breaths, and then keep pressing on. By the time I got to the top, I was exhausted, too tired go downhill as fast I normally would. It was still a morale boost to see the valley below. I knew I could make it back to the Tennessee Valley parking lot aid station.

    Taking it slow back to the aid station, I was able to snack when I got there. Refilled my water bottle, and took off back down Tennessee Valley trail for the remaining 4 miles.

    The final steep Coastal Trail south ascent was brutal. Just kept pushing uphill like I did out of Pirates Cove, hands on my knees when necessary. Every so often the plants alongside the trail were tall enough to cast a shadow, and I paused to restabilize my legs, focus on breathing regularly. Again it felt like 80 degrees when it was more like 95.

    For over a year now I’ve been doing warm Vinyasa yoga (90-95 degrees) about twice a week. As I practiced more I was better able to reach a conscious flow, better able to think clearly despite the 95 degree temperatures. Only after my run (and seeing the temperature chart) did it click — all that warm Vinyasa had trained me to push sustainably even in that much heat, and still focus & think with a strong enough will to keep going.

    Reached the Hill 88 crest (photo 6) where I could see Rodeo Beach (the finish) in the distance! As I started an easy run down the hill, I heard someone call out my name. I was so focused on finishing that I didn’t recognize his voice or face until he was much closer. Clayton and Kissie were running up the hill on their on Saturday trail run! They wished me luck and I kept trudging down the hill.

    Eventually I picked up speed and passed one person who had passed me on the Coastal uphill. Knowing I’d finish in minutes, I focused on a swift but steady pace, on sure footing more than speed.

    Finished (photo 1), saw Kelly cheering me in (she’d finished her half marathon about two hours before).

    30k (18.6mi) done! (my Suunto watch only recorded 29.97km, clearly I should have ran it out another 30 meters after crossing the finish 😂) The farthest I have ever ran on trails.

    3,780 feet elevation gain (secondmost during a run, only to Double Dipsea last Saturday) according to my Suunto watch / Strava.

    And a 1 mile PR of 7:20, during my sprint down Marincello, finally beating my nearly three year old timed track mile PR of 7:23 (tantek.com/2015/188/t1) under totally different conditions (downhill vs flat, trail vs track, after ~7mi vs 1mi warm-up).

    Thirsty & hungry, I refilled my water bottle, drank deeply, ate snacks, and picked up my finisher’s medal and t-shirt. We retrieved our bags from bag-check and headed to the beach.

    Stripped down to my running shorts, walked into the surf, and dove in, fully submerged.

    Best ice bath ever.

  36. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. a jpg. 1. #fbf to #TrackTuesday 3d ago DD recovery/taper for Rodeo 30k: 5x400 + 90-120s stretching between. #2018_170
    2-4. 10d ago at #Kezar #track before/during sunrise, taper for Double Dipsea: 800 1200 1600 400 race pace & stretch breaks. #2018_163
    5. 17d ago late solo 4x400+stretches. #2018_156
    6. 2018-05-08: stadium stairs, 3x400+stretches, abs. #2018_128
    7. 2018-04-24: 400 200 400 400 200 400 #2018_114

    Previously: http://tantek.com/2018/108/t3/yasso-fast-track-tuesday

    #run #runner #runners #latergram #nofilter

  37. In @microformats.org year 14, we welcome new admins @aaronpk @gRegorLove @martijnvdven @HeNeArXn! http://microformats.org/wiki/admins
    All have been active for years, helping welcome new members and doing essential wiki gardening & #microformats2 parser updates!

  38. It was the longest day of the year, yet among the darkest days for the U.S.
    2300+ children still forcibly separated from their parents, “spread across states”:
    https://www.cnn.com/2018/06/21/politics/migrant-family-separation-what-next/index.html “by thousands of miles and a bureaucratic maze”: https://www.nytimes.com/2018/06/21/us/immigrant-children-separating-families.html

    All due to unacceptable inhumane directives from POTUS and the bible-distorting AG. Backing down to detaining whole families is still just cover for racist internment.

    More families being detained. More facilities being constructed. Because of an imagined (immigrant) threat.

    The parallels to WWII Japanese internment are blatant, yet here we are.

    It’s long past time to have the difficult conversations with friends and family that may have voted for POTUS, and the GOP that’s sacrificed all principles to support him. Keep the pressure up and see it through to making a difference in November.

    Previously: http://tantek.com/2016/314/t1/doublestandard-wtf

  39. ↪ In reply to issue 93 of GitHub project “standards-positions” Mozilla has been participating in the design and development discussions of Houdini at the CSS Working Group since the beginning and continues to do so.

    For Houdini as a whole ("CSS Houdini family features" that have published drafts per this issue), I think the most accurate current summary position is "worth prototyping".

    As individual Houdini specifications technically mature (with web developer feedback & iteration) and assuming we see broader use-cases across the web, we can consider stating upgraded positions for each individual specification as appropriate, taking into account the importance of other web platform features.

    If anyone has concerns about particular Houdini drafts that should block an explicit "worth prototyping" position, please speak up and we can use "under consideration" while we file issues on those drafts and iterate accordingly.

    In addition, since https://github.com/surma ’s tracker was mentioned, this overall Houdini position should not be taken to apply to anything that is not yet at least a published working draft.

    If an explicit position is desired for proposals in https://ishoudinireadyyet.com without a working draft, please file separate issues for those.

  40. CSS Basic User Interface Module Level 3 (#CSS3UI) is now a @W3C Recommendation!
    Congrats fellow co-editor @frivoal and thanks to the @CSSWG for all the hard work (and patience) for so many years. #openweb @CSS3UI

    Previously: https://twitter.com/css3ui/status/941695566194597889
    and http://tantek.com/2015/189/b1/css-basic-user-interface-level-3

  41. Happy 13th to @microformats.org!
    With more use of #microformats2^1, especially among the growing #indieweb^2 network of websites, we’ve iterated key^3 specs^4 for real-world needs and are seeing more active community members. More updates & posts coming up!

    ^1 http://microformats.org/wiki/microformats2
    ^2 https://indieweb.org/
    ^3 http://microformats.org/wiki/microformats2-parsing
    ^4 http://microformats.org/wiki/h-entry

  42. 6 days til the 8th @IndieWebSummit gathers innovators, artists, designers, and journalists to share, make, and grow the independent web, publishing & interacting with each other using their personal websites instead of social media silos.

    Join us: https://2018.indieweb.org/