Show Navigation
Notices tagged with indieweb
-
My Seek 2024 Year in Review:
* 141 new species observed, of those, the top three kinds:
* 79 plants
* 20 insects
* 16 fungi
* 56 challenge badges earned
June was the month I observed the most new species in 2024, followed by March, and then July.
Seek also gave me a graph of observations per month, and also a map of where I made my discoveries.
Rather than posting screenshots of the Year in Review that Seek provided me in the app, I am posting the relevant content here in a post on my personal site, which I know I’ll be able to search and look up in the future.
Seek is a delightful free (like actually free, free of tracking, free of surveillance) native mobile application for identifying species.
Made by the iNaturalist folks (https://www.inaturalist.org/pages/seek_app), Seek works without creating an account, and is able to work completely offline to identify species out in the wild (and add them to your local collection).
Seek awards you Species Badges when you discover a number of species of a particular grouping, as well as Challenge Badges when you complete one or more of their monthly challenges that they post.
In some ways it’s like Pokemon Go, except based on finding and collecting observations of real living things.
I have found it quite useful especially when traveling, and wondering is that plant (or animal) the same as one I’ve seen elsewhere, perhaps around home, or is it a slightly different species?
I also really like the good example that Seek provides for how an app can be immediately useful without requiring extra labor (like creating an account, or logging on) on behalf of the person using it.
Lastly, Seek is an excellent example of a truly offline capable app where nearly all of its functionality works just fine without a network connection.
Both of these capabilities (offline first, no login wall) are what we should aspire to when we build #indieweb apps or websites for ourselves and our friends.
This is post 8 of #100PostsOfIndieWeb. #100Posts #yearInReview #iNaturalist #SeekApp
← https://tantek.com/2025/012/t1/eight-years-webmention
→ 🔮
Glossary:
login wall
https://indieweb.org/login_wall
offline first
https://indieweb.org/offline_first
-
🎉 Eight years ago today, the #IndieWeb Webmention protocol was published as a W3C REC https://www.w3.org/TR/webmention/
As a social web building block, #Webmention was designed to work with various other building blocks. Small pieces, loosely joined. Every year developers find new ways to work with Webmention, and new subtleties when combined with other building blocks.
The primary uses of Webmention, peer-to-peer comments, likes, and other responses across web sites, has long presented an interesting challenge with the incorporation and display of external content originally from one site (the Webmention sender), on another site (the Webmention receiver).
There are multiple considerations to keep in mind when displaying such external content.
Two examples of external content are images (e.g. people’s icons or profile images from the author of a comment) and text (e.g. people’s names or the text of their comments).
For external images, rather than displaying them in full fidelity, you may want to compress them into a smaller resolution for how your site displays the profile images of comment authors.
If you accept Webmentions from arbitrary sources, there’s no telling what might show up in author images. You may want to pixelate images from unknown or novel sources into say 3x3 pixel grids of color (or grayscale) averages to make them uniquely identifiable while blurring any undesirable graphics beyond recognition.
For external text, one thing we discovered in recent IndieWeb chat¹ is that someone’s comment (or in this case their name) can contain Unicode directional formatting characters, e.g. for displaying an Arabic or Hebrew name right-to-left. Text with such formatting characters can errantly impact the direction of adjacent text adjacent.
Fortunately there is a CSS property, 'unicode-bidi', that can be used to isolate such external text. Thus when you embed text that was parsed from a received Webmention, possibly with formatting characters, you have to wrap it in an HTML element (a span will do if you have not already wrapped it) with that CSS property. E.g.:
<span style="unicode-bidi: isolate;">parsed text here</span>
Though even better would be use of a generic HTML class name indicating the semantic:
<span class="external-text">parsed text here</span>
and then a CSS rule in your style sheet to add that property (and any others you want for external text)
.external-text { unicode-bidi: isolate; }
This is post 7 of #100PostsOfIndieWeb. #100Posts #socialWeb #openSocialWeb
← https://tantek.com/2025/004/t1/micro-one-onramp-open-social-web
→ 🔮
Glossary
HTML class name
https://tantek.com/2012/353/b1/why-html-classes-css-class-selectors
IndieWeb chat
https://indieweb.org/discuss
pixelate
https://indieweb.org/pixelated
small pieces, loosely joined
https://www.smallpieces.com/
Unicode directional formatting characters
https://en.wikipedia.org/wiki/Bidirectional_text#Explicit_formatting
unicode-bidi CSS property
https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi
References
¹ https://chat.indieweb.org/dev/2025-01-05#t1736092889120900
-
The team @micro.blog have done it again.
They soft-launched https://micro.one yesterday¹.
This may be the most accessible onramp to the open social web ever.
Cost: $1 a month. Yes you read correctly.
This is the simplest and cheapest (where you are the customer, not the product) way to own your identity and content online².
Stop posting in someone else’s garage³.
Time to export your Twitter, and migrate your Mastodon handle to your own home on the web.
Of course you can bring your own domain name. Additionally:
* blog posts, naturally, both articles and microblogging notes
* photos
* podcasting
* custom themes
* web-clients and native mobile posting clients
* WordPress, Tumblr, Mastodon, Medium import
More details (and alternatives) at https://micro.one/about/pricing
And yes, it interoperates with the open #socialWeb, including:
* #ActivityPub support, #Mastodon and #fediverse compatibility
* #IndieAuth to sign-in to third-party apps
* #microformats support in all built-in themes
* #Webmention for sending and receiving replies across websites
* #Micropub standard posting API, supporting dozens of clients
* #Microsub standard timeline API, supporting social readers
More #indieweb support details at https://micro.one/about/indieweb
Did I mention the the superb micro.blog (and micro.one) Community Guidelines?
* https://help.micro.blog/t/community-guidelines/39
Well done @manton.org and team.
This is post 6 of #100PostsOfIndieWeb. #100Posts #ownYourIdentity #ownYourData #openSocialWeb
← https://tantek.com/2025/003/t1/lastfm-year-in-review-playback24
→ 🔮
Glossary
IndieAuth
https://indieweb.org/IndieAuth
microformats
https://microformats.org/wiki/microformats
Micropub
https://indieweb.org/Micropub
Microsub
https://indieweb.org/Microsub
Webmention
https://indieweb.org/Webmention
¹ https://www.manton.org/2025/01/03/microone-was-effectively-a-softlaunch.html
² https://tantek.com/2025/001/t1/15-years-notes-my-site-first
³ https://tantek.com/2023/022/t2/own-your-notes-domain-migration
-
Yesterday https://last.fm/ (@lastfm) emailed their year in review reports, which they called #Playback24 and Last.Year.
Kudos to them for waiting until the new year to do so, and breaking with the pattern of services prematurely posting year in review summaries.¹
They’re also available on the web, without requiring a native mobile app to view.
Mine is here: https://www.last.fm/user/tantekc/listening-report/year
You can find yours (if you’re a last.fm user) by going here:
* https://www.last.fm/user/_/listening-report/year
The page title calls it your #YearInMusic, and the URL your #ListeningReport.
It has many interesting elements, from various top listened lists (artist, album, track), to what percent of 2024 listens (which they call scrobbles) were new artists, albums, and tracks.
Their “Top Tags” time chart is quite cool. Fascinating to see the differences in music listening over the seasons and the whole year.
The report has many interactive features, so it will take me some time to figure out how to save, export, and/or republish my listening report on my personal #indieweb site.
For now I used Firefox to save the page as an .html page to my laptop, and was quite impressed with how much of the information was available in that one file. Much more than #Spotify’s #Wrapped.
That’s step 1. Step 2 is figuring out a good way to blog at least some of it.
This is post 5 of #100PostsOfIndieWeb. #100Posts #LastFM #YearInReview
← https://tantek.com/2025/002/t1/indieweb-third-place-community
→ 🔮
Glossary:
scrobble
https://indieweb.org/scrobble
year in review
https://indieweb.org/year_in_review
¹ https://tantek.com/2025/001/t2/first-new-year-review-prior
-
The #indieweb is more than #independence. It’s also a web, of both personal sites and “third place” sites like aggregators, bridges, proxies, directories, indexes, and other community sites.
Broadly speaking, such “third place” sites include places we collectively contribute to, and which license our contributions for free use by others. While open source projects come to mind, perhaps a more obvious example is Wikipedia.
Similarly, the most obvious “third place” in the #IndieWeb community is our community site and wiki https://indieweb.org/ as well as the heterogeneous chat https://chat.indieweb.org/.
We also have many services run by individuals (or small teams) in the community, for the benefit of the community, like:
* @snarfed.org’s https://brid.gy/ and https://fed.brid.gy/
* @aaronparecki.com’s https://webmention.io/ and many others
* @martymcgui.re’s https://xn--sr8hvo.ws/ (IndieWeb Webring)
* @gregorlove.com’s https://indiebookclub.biz/
* @mat.tl’s https://libre.fm/
and I’m sure many more I’m forgetting.
All these services respect your data and your ownership of it. #ownYourData
All these services are swappable. Many (most?) are open source and self-hostable in case you want to run your own personal instance or another shared instance.
The web part of the indieweb complements, connects, and strengthens the indie part.
This is post 4 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2025/001/t3/strava-year-in-sport-how-to-get-info-save
→ 🔮
-
When we say #ownYourData we mean whatever data is important to you, like the data services aggregate about you and present back to you. Owning that data means extracting it into a form you can hang onto regardless of what the service does in the future (or disappears), and publishing whatever aspects of it you wish to, on your personal #indieweb site.
Speaking of year in reviews¹ and #Strava Year in Sport in particular, here are my brief notes for how to get the info from it (before it disappears after the 6th!²) and save it locally so you can write and publish your own year in sport.
How to find your Strava: Year in Sport 2024
For 2024, the Strava Year in Sport 2024 is only available on the native mobile app (iOS and presumably Android) and not accessible via the website. Prior years which were available on the website e.g. 2018(.)strava(.)com and 2017(.)strava(.)com are long gone.
From the mobile app home screen, tap the "📋 You" button in the lower right corner.
At the top you should see:
"Play back your 2024" heading with an orange button:
[ See your Year in Sport ]
Tap that button.
Saving Seven Summary Segments
You should immediately see an animation start playing, with seven "segments" (like Instagram stories) at the top, gradually filling-in as progress indicators one at a time.
For each "segment" if you press the screenshot combination of buttons on your mobile (e.g. volume-up + power on iPhone 14), in addition to taking a screenshot it will put you in a "share" screen with one or more videos or still images to share in a carousel format.
For each item in the carousel (if there is more than one)
* tap the item in the carousel
* tap the "[↑] More" button at the bottom.
* scroll down the list of options up a bit
* tap "Save Video [↓]" or "Save Image [↓]" option to store it locally on your mobile.
The seventh "segment" is your overall summary, and shows all your sports combined.
Save it (as an image as noted above), then
* tap the "✏️ Customize" button
* choose an individual sport (e.g. "👟 Run")
* tap "Save changes"
* save that image (as above)
* tap customize again
* choose the next sport (e.g. "🚲 Ride")
* save changes again
* save image again
Strava seemingly only reports summaries of (up to?) two or your sports it appears. Those were Run (presumably all running, street and trail) and Ride for me.
Cleanup Your Screenshots
After having saved all the videos/images for each "segment", you can:
* go back to your mobile’s top level Photos app/stream
* delete the screenshots
You should see all the videos/images you've saved. If anything is missing, go back to the previous steps and save them again, then remove any duplicates as necessary.
Post Your Year In Sport
Go through your saved videos/images, and either post on your own site as-is, or use your mobile’s built-in image OCR to copy the text bits into a plain personal year in sport note summary post on your own site. Or some combination of both if you prefer.
Add other summaries of your activities and sports as you see fit, like:
* info on other sports (beyond running and biking), e.g. yoga, weight-lifting, bouldering etc.
* total days active (of 366)
* total distance (if applicable)
* total elevation (if applicable)
* total time
* number of races you ran, biked etc. (and finished, if not the same)
* number of miles (or km) you raced (per sport and/or total overall)
* number of (or full set of) awards or trophies you earned at races
* any other stats that you think of that seem interesting to you
For each of these annual numbers, you could also compute (optionally display) the percentage change from 2023, if you happen to have those numbers around.
This is also a good reason to at least total up these numbers for 2024, whether you publish them or not, for figuring out the percentage change in 2025 next year.
When you publish your own year in sport post, might as well re-use the existing #YearInSport hashtag too.
I have already saved all the videos/images from my own Strava Year In Sport, and as I assemble the pieces into my own post, I’ll take more notes, and add to the IndieWeb year in review page³ accordingly.
This post could also be improved with a few screenshots for a few of the steps above. I figured I’d publish my notes first to hopefully help some people sooner (since the Strava Year In Sport will disappear after January 6th as mentioned!). I might upload a few screenshots to the IndieWeb wiki later as well.
#yearInReview #ownYourYearInReview
This is post 3 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2025/001/t2/first-new-year-review-prior
→ 🔮
Glossary:
hashtag
https://indieweb.org/hashtag
own your data
https://indieweb.org/own_your_data
¹ https://tantek.com/2025/001/t2/first-new-year-review-prior
² https://support.strava.com/hc/en-us/articles/22067973274509-Your-Year-in-Sport#h_01HH5VW132BPDTEZJZDHBGJ6KM
³ https://indieweb.org/year_in_review
-
Welcome to 2025!
15 years ago today I began posting notes on my own #indieweb site first, and only later on #socialMedia: https://tantek.com/2010/001/t1/declaring-independence-building-it
You can too.
I am once again encouraging you start the year with:
1. Getting a personal domain name
2. Posting on your own site first, then syndicating elsewhere: #POSSE
In 2025 there are even more neighborhoods with other people’s garages¹ to post into. Companies, servers, services, disappear all the time, taking all their posts and permalinks with them to graveyard 404².
This is your annual reminder to embrace #independent ownership of your online self, your creations, and their #longevity:
* Own your domain -> own your online identity
* Own your permalinks -> own your posts
Want help? Just ask: https://chat.indieweb.org/
#ownYourContent #ownYourData
Once again I am restarting a #100PostsOfIndieWeb #100Posts project for the year.
This is post 1.
Previously, previously, previously:
* https://tantek.com/2024/001/t1/restarting-100days-indieweb-gift-calendar
* https://tantek.com/2023/001/t1/own-your-notes
* https://tantek.com/2022/001/t1/12-years-notes-my-site
* https://tantek.com/2020/001/t1/10-years-notes-my-site
* https://tantek.com/2015/002/t1/notes-replies-faves-before-twitter-ownyourdata
← ✨
→ https://tantek.com/2025/001/t2/first-new-year-review-prior
Glossary:
IndieWeb
https://indieweb.org/
longevity
https://indieweb.org/longevity
post
https://indieweb.org/post
permalink
https://indieweb.org/permalink
personal domain name
https://indieweb.org/personal-domain
POSSE
https://indieweb.org/POSSE
syndicate
https://indieweb.org/syndicate
¹ https://tantek.com/2023/022/t2/own-your-notes-domain-migration
² https://indieweb.org/site-deaths
-
Last day of the year and last chance to #donate to worthy causes for 2024!
I post a lot about the #indieweb but I’m not asking you to donate to that.
Starting this series of non-profit #donation posts with asking you to consider donating to the #independentArts.
Choose an #arts organization local to you or one that friends or family are directly involved in.
For example: @theatermitu.org (@theatermitu @instagram.com/theatermitu)
Theater Mitu is an independent theater arts organization, space, and community that supports numerous artists, shows, and incubates and produces new work!
Donation link: https://secure.givelively.org/donate/theater-mitu/the-decade-ahead-10-more-years-of-mitu-in-brooklyn
#TheaterMitu #NewYork #NYC #Brooklyn
-
I have written several posts with tips for various aspects of blogging. This post curates those posts and bits from the #IndieWeb wiki into a linear progression, from why, to what, and how to post. This post assumes you already have a blog — if you don’t have one and wonder why you should, that’s a different blog post.
Why Post
There is a whole wiki page on the topic:
* https://indieweb.org/why_post — which could use some gardening
Here is a summary of reasons why to post:
1. Wean yourself off social media. Post to your own site instead of social media. If you already post on social media, into someone else’s garage¹, then you already have reason enough to post. So post on your own site first, and optionally syndicate² to that silo, only if you have friends who still use it to read posts.
2.
What to Post
* Post positive things promptly: https://tantek.com/2018/357/t3
* … from that day first: https://tantek.com/2018/364/t1
* … in time order: https://tantek.com/2018/364/t5
* Make and share lists. People like lists
How to Post
* Use a local text editor
* Capture first, edit & publish later: https://tantek.com/2023/365/t1/
* Do something positive (in-person), then post about it: https://tantek.com/2018/002/t1
* Single topic post
* Short and to the point. Edit and remove anything distracting from the main point.
* Quotable post title
* Summary opening paragraph
* Put tangents aside
* Quotable sentences and multi-sentence paragraphs
* Subheadings help cluster related paragraphs
* Use a footer for updates, terminology, previous writings, additional reading, and citations.
* Move definitions, citations, etc. to the footer unless including them inline either provides little risk of distraction or significantly helps reading flow.
* Use footer subsections: Previously, Post Glossary, References, Additional Reading
* Check your references
Each of these points could be its own blog post.
Glossary
silo
https://indieweb.org/silo
social media
https://indieweb.org/social_media
References
¹ https://tantek.com/2023/001/t1/own-your-notes
² https://indieweb.org/POSSE
This is post 29 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/306/t1/simple-embeds
→ 🔮
-
Day 1 of #IndieWebCamp #Berlin 2024¹ was very well attended!
* 20 participants, more than 3x the previous one in 2022, and second highest (2019 had 22).
* 18 introduced themselves² and their personal sites or aspirations for one
Collectively we proposed and facilitated 11 breakout sessions³ on many timely #indieweb topics covering #syndication, #inclusion, #longevity, #federation / #fediverse, how to best use #Mastodon with your personal site, #privacy and #security concerns of being online, #writing, how can we design better user interfaces for text authoring, and personalized reading #algorithms for staying connected with friends.
Session titles (and hashtags)
* How to #POSSE
* How to make the web queerer / stranger. #queer
* Online presence after our #death
* Threat modeling #threatmodeling
* Non-technical collaboration on the internet. #collab
* Locations and #places check-in
* Writing with images. #imagewriting
* Text authoring UX. #textUX
* #SSR, organizing CSS/JS
* Website design without being a designer. #designfordummies
* Timeline algorithms. #timelines
Etherpad notes from sessions have been archived to the wiki, with session recordings to follow!
Day 2 also had 20 in-person participants, the highest IndieWebCamp Berlin day 2 attendance ever! Most everyone from day 1 came back to hack, and three new people showed up. We also had several remote participants.
References
¹ https://indieweb.org/2024
² https://indieweb.org/2024/Berlin/Intros
³ https://indieweb.org/2024/Berlin/Schedule#Saturday
This is post 28 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/306/t1/simple-embeds
→ 🔮
-
Last week at a #HomebrewWebsiteClub session¹ I pointed out that I was working on implementing a “simple” way to support embeds of my notes, that is, make my short notes embeddable, like how people embed tweets or toots.
I noted that to keep it as simple as possible while being flexible to implementation changes, I planned to implement three things:
1. A separate “embed” version of my post permalinks, with just the entry information (no header, nav, search, sidebar, footer etc.), embeddable via copy/paste or an iframe.
2. A way to “Follow Your Nose” discover that separate embed version
3. A way to discover the original post from the embedded version
For (1) a minimal h-entry, with perhaps a little bit of inline CSS would suffice.
For (2) I proposed using “rel=embed” which I’ve subsequently written up briefly².
For (3) The obvious existing answer is rel=canonical link from the embed version to the canonical post permalink.
Soon thereafter, several folks in the #IndieWeb community went ahead and implemented such embeds for their own sites, and even the https://libre.fm/ open scrobbling service!
https://indieweb.org/embed#IndieWeb_Examples
I have yet to implement it myself, and that’s fine. This is one of the things I appreciate about the community, we can share our plans and ideas for improving things on our own sites, and if someone else does it first, that's great! We celebrate it and explore the solution space together.
Got other ideas for simple embeds? Want to implement them on your own site?
Join us in the #indiewebdev chat: https://chat.indieweb.org/dev
UPDATE: What about oEmbed? tl;dr: oEmbed requires JS and backend code, more work and unsuitable for embeds from static site hosting (like GitHub pages).
A simple HTML method is accessible to many more independent publishers and easier to implement. More: https://tantek.com/2024/306/t2
Glossary
embed
https://indieweb.org/embed
Follow Your Nose
https://indieweb.org/follow_your_nose
h-entry
https://microformats.org/wiki/h-entry
oEmbed
https://indieweb.org/oEmbed
rel-canonical
https://indieweb.org/rel-canonical
static site hosting
https://indieweb.org/static_web_hosting
References
¹ https://indieweb.org/events/2024-10-23-hwc-europe#embedding
² https://indieweb.org/rel-embed
This is post 27 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/287/t1/fediverse-unfollow-bridgyfed-bug
→ 🔮
-
European friends!
🗓 I am going to Beyond Tellerand (@btconf@mastodon.social) Berlin next week 7-8 November and you should too!
BTconf is the best independent web design, development, and inspiration conference in Europe.
Everything from the speakers to the talks to the side events are a labor of love by @MarcThiele.com (@marcthiele@mastodon.social) and his crew, and it shows in the #btconf community he has gathered over the years.
If you’re in #Berlin, or can hop on a train and join us, you should.
🎟 Grab a ticket: https://btco.nf/t
And while you’re there, consider joining us at #IndieWebCamp Berlin right afterwards on 9-10 November (complimentary camp tickets at the same link), for #barcamp style discussions sessions and an #indieweb Create Day, writing, styling, designing, coding, hacking on our personal sites for a better web for ourselves and everyone else.
-
No I did not block you on the #fediverse / #Mastodon / #Misskey etc.
If you were following me @tantek.com on your client/server/instance of choice but noticed you were no longer doing so, that was due to a recent software bug in my fediverse provider which accidentally caused everyone’s #ActivityPub servers to unfollow me (bug details below).
No it’s absolutely not your fault, you did nothing wrong.
We need a variant of Hanlon’s Razor¹ like:
“Never attribute to malice that which is adequately explained by a software bug.”
Take another look at my posts if you want (directly on @tantek.com or try searching for that on your instance) and if you like what you see or find them otherwise informative and useful, feel free to refollow. If not, no worries!
Also no worries if you ever unfollow/refollow for any reason. I mean that.
I always assume people know best how to manage their online reader/reading experiences, everyone’s priorities and likes/dislikes change over time, and encourage everyone to make choices that are best for their mental health and overall joy online.
Bug details:
This was due to a #BridgyFed bug² that deleted my profile (“ActivityPub actor”) from (nearly?) all instances, making everyone’s accounts automatically unfollow me, as well as remove any of my posts from your likes and reposts (boosts) collections. It also removed my posts from any of your replies to my posts, leaving your replies dangling without reply-contexts. Apologies!
The bug was introduced accidentally as part of another fix about a month ago³, and was triggered within the following week⁴.
Anyone following me before ~2024-09-22 was no longer following me. A few folks have noticed and refollowed. Any likes or reposts of my posts before that date were also undone (removed).
Ryan (@snarfed.org) has been really good about giving folks a heads-up, and apologizing, and quickly doing what he can to fix things.
Bugs happen, yes even in production code, so please do not post/send any hate.
I’d rather be one of the folks helping with improving BridgyFed, and temporary setbacks like this are part of being an early / eager #IndieWeb adopter.
This bug has also revealed some potential weaknesses in other ActivityPub implementations. E.g. deleting an “actor” should be undoable, and undoing a delete should reconnect everything, from follows to likes & reposts collections, to reply-contexts. Perhaps the ActivityPub specification could be updated with such guidance (if it hasn’t been already, I need to double-check).
To be clear, I’m still a big supporter of #BridgyFed, #ActivityPub, #Webmention, and everyone who chooses to implement these and other #IndieWeb related and adjacent protocols as best fits their products and services.
All of these are a part of our broader open #socialWeb, and making all these #openStandards work well together (including handling edge-cases and mistakes!) is essential for providing #socialMedia alternatives that put users first.
References:
¹ https://en.wikipedia.org/wiki/Hanlon%27s_razor
² https://github.com/snarfed/bridgy-fed/issues/1379
³ https://github.com/snarfed/bridgy-fed/commit/4df76d0db7b87cabbd714039546c05b3221169be
⁴ https://chat.indieweb.org/dev/2024-09-22#t1727028174623700
This is post 26 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/285/t1/io-domain-suggested-steps
→ 🔮
-
Happy October!
For some reason this month has a plethora of daily blogging or other creativity prompts. Here’s a list of the ones I found so far:
* #Blogtober (consider this post my first for this, retroactively day 1)
* Inktober — https://inktober.com/
* LOLtober - https://weblog.anniegreens.lol/2024/10/loltober-2024
* Looptober — https://looptober.com/
* Mathober - https://mathober.com/
* Viztober — https://www.instagram.com/evalottchen/p/DAiNm3ZtuTj/
Having found so many for the month I created an “October” page on the #IndieWeb wiki to document them all (and in case folks find others to add):
* https://indieweb.org/October
October is also a very popular month for seasonal blog styling:
* https://indieweb.org/Halloween
Do you have a custom Halloween theme for your personal site? Add it to the wiki!
This is post 23 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/247/t4/w3c-link-checker-before-federating
→ 🔮
-
20 years and two weeks ago, I came up with undohtml.css and unknowingly invented the mechanism of CSS Resets (AKA reboot or reset style sheets¹) which spawned numerous variants, many still in broad use on the web today.
https://tantek.com/log/2004/09.html#d06t2354
A one sentence problem description, and a short paragraph describing my problem-solving, actions, license, link to less than 300 bytes of code (not counting comments), and a few future thoughts.
The rest of that blog post was about “debug scaffolding”, the part I thought was more interesting at the time.
Eric Meyer (@meyerweb.com @meyerweb@mastodon.social) followed up ~10 days afterwards with his thinking and improvements:
* https://meyerweb.com/eric/thoughts/2004/09/15/emreallyem-undoing-htmlcss/
where he mentioned “resetting” in passing, but not actually calling it a "reset".
~2.5 years later Eric published “Reset Styles” with further reasoning and improvements:
* http://meyerweb.com/eric/thoughts/2007/04/12/reset-styles/
describing them as: “reset” or “baseline” set of styles.
Subsequently he iterated in several more blog posts:
* http://meyerweb.com/eric/thoughts/2007/04/14/reworked-reset/
* http://meyerweb.com/eric/thoughts/2007/04/18/reset-reasoning/ — this is Eric’s first post where he explicitly calls them “reset styles”, which I believe is the origin of the eventual phrase “CSS Reset” and “reset style sheets”
* http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/ (yes a Matrix: Reloaded reference)
~6 months later Eric published his evergreen resource “CSS Tools: Reset CSS”
* https://meyerweb.com/eric/tools/css/reset/
which, as you see within the URL: “css/reset”, is perhaps where the phrase “CSS Reset” comes from, and it’s also the label (link text) he gives that page in his UI about-page² and the first content link in his 404 page³.
My technology invention takeaways from all this:
1. if you find yourself repeatedly solving the same (especially annoying) problem, create a re-usable solution that works for you
2. write up your problem statement / use-case in only one sentence
3. publish your solution (on your personal site⁴), name it something short, with only a short paragraph description, and re-use/remix friendly license (like Creative Commons)
And things not to worry about (that may get in your way to publishing):
1. perfecting or making your solution “big enough” or “the right size”. does it solve your problem? then it’s already the right size.
2. coming up with the perfect name. instead, name it what it does. someone might come up with a better name weeks, months, or years later. let them run with it!
3. waiting to blog multiple things. I could have blogged undohtml.css by itself, probably should have, and instead lumped it into a blog post with another CSS thing I came up with.
Further reading and resources for CSS Resets:
* More history: https://css-tricks.com/reboot-resets-reasoning/
* Large collection: https://perishablepress.com/a-killer-collection-of-global-css-reset-styles/
References:
¹ https://en.wikipedia.org/wiki/Reset_style_sheet
² https://meyerweb.com/ui/about.html
³ https://meyerweb.com/404
⁴ https://indieweb.org/
#undoHTML #undoHTMLCSS #reset #CSSreset #resetstyles #webdesign #technology #invention #indieweb
-
Twenty years ago this past February, Kevin Marks and I introduced #microformats in a conference presentation.
Full post: https://tantek.com/2024/044/t1/twenty-years-microformats
Aside: This is an even shorter summary of that post from ~200 days ago, which #Mastodon readers never got due to a Mastodon #federation bug (details in https://tantek.com/t5Yo1).
Since early 2023, here are the top three updates & interesting developments in microformats:
1. Growing rel=me adoption for distributed verification (✅ in Mastodon etc.)
* Wikipedia, Threads, omg.lol
2. Proposal to merge #microformats2 h-review into h-entry, since in practice (e.g. on #indieweb) reviews are just entries with a bit more.
3. #metaformats adoptions, implementations, iteration
-
Twenty years ago this past February, @KevinMarks.com (@KevinMarks@xoxo.zone) and I introduced #microformats in a conference presentation.
Full post: https://tantek.com/2024/044/t1/twenty-years-microformats
Aside: This is a summary of a longer post from ~200 days ago¹, which #Mastodon readers never got due to a Mastodon #federation bug (instances returned 202 for post inbox delivery, but did not show post to followers or on local profiles, details in https://tantek.com/t5Yo1).
I wrote a retrospective last year: https://tantek.com/2023/047/t1/nineteen-years-microformats
Since then, here are the top three updates & interesting developments in microformats:
1. Growing rel=me adoption for distributed verification (✅ in Mastodon etc.)
* Wikipedia, Threads, omg.lol support
2. A proposal to merge #microformats2 h-review into h-entry, since reviews are in practice (e.g. on the #indieweb) always entries with a bit more information.
3. #metaformats adoptions, implementations, and iteration
More details:
¹ https://tantek.com/2024/044/t1/twenty-years-microformats
-
✏️ I want the Read Write Suggest-Edit Accept-Edit Update Web.
The consumer Infinite Scroll Web leaves us feeling empty.
Too few of us participate in the Read Write Web, whether with personal sites or Wikipedia.
A week ago when we wrapped up #IndieWebCamp Portland and I was reading Kevin Marks (@kevinmarks@indieweb.social) live-tooting of the demos¹, I noticed a few errors, typos or miscaptures, and pointed them out in-person.
Kevin was able to quickly edit his toots and update them for anyone reading, thanks to #Mastodon’s post editing feature and its support of #ActivityPub Updates. But this shouldn’t require being in the same room, whether IRL or chat.
We should be able to suggest edits to each other’s posts, as easily as we can reply and add a comment.
13 years ago I wrote²:
“The Read Write Web is no longer sufficient. I want the Read Fork Write Merge Web.”
Now I want the Read Write Suggest-Edit Accept-Edit Update Web.
The ↪ Reply button is fairly ubiquitous in modern post user interfaces (UIs).
Why not also a ✏️ Suggest Edit button, to craft a fix for a typo, grammar, or other minor error, and send the author for their review, and acceptance or rejection? Perhaps viewable only by the suggester and the author, to avoid "performative" suggested edits.
If the author’s posts provide revision histories, when a suggested edit is accepted, a post’s history could show the contributor of the edit.
Instead of asking Kevin in-person, what if I could have posted special "Suggested Edit" responses in reply to his toots, for which he would receive special notifications, and could choose to one-click accept and update (or further edit) his toots?
To enable such UIs and interactions across servers and implementations, we may need a new type of response³, perhaps with a special property (or more) to convey the edits being suggested.
There is documentation of this and similar use-cases, prior art / UIs, as well as some brainstorming on the #IndieWeb wiki:
* https://indieweb.org/edit
Our interaction after IndieWebCamp has inspired me to take another look at how can we design and prototype solutions to this problem.
For now, if you host your blog and posts as static files on GitHub (or equivalent), you could add a button like this to your posts alongside Like, Reply, Repost buttons:
✏️ Suggest Edit
and link it to an edit URL for the static file for the post.
I don’t use GitHub static files myself for posts, but here’s an example of such an edit link for one of my projects:
https://tantek.com/github/cassis/edit/main/README.md
This will start the process of creating a “pull request”, GitHub’s jargon⁴ for a “suggested edit”.
After completing GitHub’s ceremony of entering multiple text fields (summary & description), and multiple clicks to create said “pull request”, it’ll be sent to the author to review. Presuming the author likes the suggested edit, they can perform the other half of GitHub’s jargon-filled ceremonies to “Merge” or “Squash & Merge”, “Delete fork”, etc. to accept the edit.
It’s an awkward interaction⁵, however useful for at least prototyping a ✏️ Suggest Edit button on sites that store their posts as files in GitHub. Certainly worthy of experimenting with and gathering experience to design and build even better interactions.
We can start with the shortest path to getting something working, then learn, iterate, improve, repeat.
#readWriteWeb #editableWeb #suggestEdit #acceptEdit
References:
¹ https://indieweb.social/@kevinmarks/113025295600067213
² https://tantek.com/2011/174/t1/read-fork-write-merge-web-osb11
³ https://indieweb.org/responses
⁴ The phrase “pull request” was derived from the git command: “git request-pull” according to https://www.reddit.com/r/git/comments/nvahcp/comment/h12hzj7/
⁵ “edits” in GitHub require taking far more steps, and navigating far more jargon, then say, Wikipedia pages, which come down to “Edit” and “Save”. We should aspire to Wikipedia’s simplicity, not GitHub’s ceremonies.
This is post 20 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/242/t1/indiewebcamp-portland
→ https://tantek.com/2024/246/t1/adventures-indieweb-activitypub-bridgy-fed
-
✏️ I want the Read Write Suggest-Edit Accept-Edit Update Web.
The consumer Infinite Scroll Web leaves us feeling empty.
Too few of us participate in the Read Write Web, whether with personal sites or Wikipedia.
A week ago when we wrapped up #IndieWebCamp Portland and I was reading @KevinMarks.com (@kevinmarks@indieweb.social @kevinmarks@xoxo.zone @kevinmarks) live-tooting of the demos¹, I noticed a few errors, typos or miscaptures, and pointed them out in-person.
Kevin was able to quickly edit his toots and update them for anyone reading, thanks to #Mastodon’s post editing feature and its support of #ActivityPub Updates. But this shouldn’t require being in the same room, IRL or chat.
We should be able to suggest edits to each other’s posts, as easily as we can reply and add a comment.
13 years ago I wrote²:
“The Read Write Web is no longer sufficient. I want the Read Fork Write Merge Web.”
Now I want the Read Write Suggest-Edit Accept-Edit Update Web.
The ↪ Reply button is fairly ubiquitous in modern post user interfaces (UIs).
Why not also a ✏️ Suggest Edit button, to craft a fix for a typo, grammar, or other minor error, and send the author for their review, and acceptance or rejection? Perhaps viewable only by the suggester and the author, to avoid "performative" suggested edits.
If the author’s posts provide revision histories, when a suggested edit is accepted, a post’s history could show the contributor of the edit.
Instead of asking Kevin in-person, what if I could have posted special "Suggested Edit" responses in reply to his toots, for which he would receive special notifications, and could choose to one-click accept and update (or further edit) his toots?
To enable such UIs and interactions across servers and implementations, we may need a new type of response³, perhaps with a special property (or more) to convey the edits being suggested.
There is documentation of this and similar use-cases, prior art / UIs, as well as some brainstorming on the #IndieWeb wiki:
* https://indieweb.org/edit
Our interaction after IndieWebCamp has inspired me to take another look at how can we design and prototype solutions to this problem.
For now, if you host your blog and posts as static files on GitHub (or equivalent), you could add a button like this to your posts alongside Like, Reply, Repost buttons:
✏️ Suggest Edit
and link it to an edit URL for the static file for the post.
I don’t use GitHub static files myself for posts, but here’s an example of such an edit link for one of my projects:
https://tantek.com/github/cassis/edit/main/README.md
This will start the process of creating a “pull request”, GitHub’s jargon⁴ for a “suggested edit”.
After completing GitHub’s ceremony of entering multiple text fields (summary & description), and multiple clicks to create said “pull request”, it’ll be sent to the author to review. Presuming the author likes the suggested edit, they can perform the other half of GitHub’s jargon-filled ceremonies to “Merge” or “Squash & Merge”, “Delete fork”, etc. to accept the edit.
It’s an awkward interaction⁵, however useful for at least prototyping a ✏️ Suggest Edit button on sites that store their posts as files in GitHub. Certainly worthy of experimenting with and gathering experience to design and build even better interactions.
We can start with the shortest path to getting something working, then learn, iterate, improve, repeat.
#readWriteWeb #editableWeb #suggestEdit #acceptEdit
References:
¹ https://indieweb.social/@kevinmarks/113025295600067213
² https://tantek.com/2011/174/t1/read-fork-write-merge-web-osb11
³ https://indieweb.org/responses
⁴ The phrase “pull request” was derived from the git command: “git request-pull” according to https://www.reddit.com/r/git/comments/nvahcp/comment/h12hzj7/
⁵ “edits” in GitHub require taking far more steps, and navigating far more jargon, then say, Wikipedia pages, which come down to “Edit” and “Save”. We should aspire to Wikipedia’s simplicity, not GitHub’s ceremonies.
This is post 20 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/242/t1/indiewebcamp-portland
→ 🔮
-
Had a great time at IndieWebCamp Portland 2024 this past Sunday — our 10th IndieWebCamp in Portland!
https://events.indieweb.org/2024/08/indiewebcamp-portland-2024-8bucXDlLqR0k
Being a one day #IndieWebCamp, we focused more on making, hacking, and creating, than on formal discussion sessions.
Nearly everyone gave a brief personal site intro with a summary of how they use their #IndieWeb site and what they would like to add, remove, or improve.
* https://indieweb.org/2024/Portland/Intros
There were lots of informal discussions, some in the main room, on the walk to and from lunch, over lunch in the nearby outdoor patio, or at tables inside the lobby of the Hotel Grand Stark.
We wrapped up with our usual Create Day¹ Demos session, live streamed for remote attendees to see as well. Lots of great demos of things people built, designed, removed, cleaned-up, documented, and blogged! Everyone still at the camp showed something on their personal site!
* https://indieweb.org/2024/Portland/Demos
Group photo and lots more about IndieWebCamp Portland 2024 at the event’s wiki page:
* https://indieweb.org/2024/Portland
Thanks to everyone who pitched in to help organize IndieWebCamp Portland 2024! Thanks especially to Marty McGuire (@martymcgui.re) for taking live notes during both the personal site intros and create day demos, to Kevin Marks (@kevinmarks@indieweb.social @kevinmarks@xoxo.zone @kevinmarks) for the IndieWebCamp live-tooting, and Ryan Barrett (@snarfed.org) for amazing breakfast pastries from Dos Hermanos.
The experience definitely raised our hopes and confidence for returning to Portland in 2025.²
References:
¹ https://indieweb.org/Create_Day
² https://indieweb.org/Planning#Portland
This is post 19 of #100PostsOfIndieWeb. #100Posts #2024_238
← https://tantek.com/2024/238/t3/indiewebcamp-auto-linking
→ https://tantek.com/2024/245/t1/read-write-suggest-edit-web