1 month ago today: Victory Column en route to @IndieWebCamp #Berlin.
Our second #IndieWebCamp @MozillaBerlin this year, we had amazing participants(2,3), hosted an @OptOutSocial hackathon, and a keynote by founder Teresa(4 📷 @cheukting_ho)!
About a dozen sessions with notes and some with session videos linked from the schedule: https://indieweb.org/2019/Berlin2/Schedule
Last but not least, great working with co-organizers Yulia (@ioctaptceb), @RosemaryOrchard, and @DShanske to put it all together and discuss community at the Organizers meetup the day before the camp(5).
Previously: https://tantek.com/2019/327/t1/amazing-start-indiewebcamp-berlin
#VictoryColumn #IndieWeb #community #organizers #grateful #2019_328 #20191124 #latergram #nofilter
{
"type": "entry",
"published": "2019-12-24 01:04-0800",
"url": "http://tantek.com/2019/358/t1/month-ago-victory-column-indiewebcamp",
"category": [
"Berlin",
"IndieWebCamp",
"VictoryColumn",
"IndieWeb",
"community",
"organizers",
"grateful",
"2019_328",
"20191124",
"latergram",
"nofilter"
],
"photo": [
"https://aperture-media.p3k.io/fastly.4sqi.net/06f1a7e415c7b5fc7da88a5aca933571ea756b16c7fede62e6b9904319abfc29.jpg",
"https://aperture-media.p3k.io/indieweb.org/e5beb4790c840fc6bdf2eb8ee520c30d6f0d0eb1a04b8534013e153859723f37.jpg",
"https://aperture-media.p3k.io/indieweb.org/30086476e8df3dc5f1f803300bd0e19d73cc57c3d10238476dc9155d4512bb97.jpg",
"https://aperture-media.p3k.io/pbs.twimg.com/0f8f3a76e9a2e7765506084e589522ff36db4c08cb1780d2bd7f3681da876870.jpg",
"https://aperture-media.p3k.io/indieweb.org/ef55d4d8b9ff17649059878bba84f311e857244d4d2c7d6363b3abf3c021defb.jpg"
],
"content": {
"text": "1 month ago today: Victory Column en route to @IndieWebCamp #Berlin.\nOur second #IndieWebCamp @MozillaBerlin this year, we had amazing participants(2,3), hosted an @OptOutSocial hackathon, and a keynote by founder Teresa(4 \ud83d\udcf7 @cheukting_ho)!\n\nAbout a dozen sessions with notes and some with session videos linked from the schedule: https://indieweb.org/2019/Berlin2/Schedule\n\nLast but not least, great working with co-organizers Yulia (@ioctaptceb), @RosemaryOrchard, and @DShanske to put it all together and discuss community at the Organizers meetup the day before the camp(5).\n\nPreviously: https://tantek.com/2019/327/t1/amazing-start-indiewebcamp-berlin\n\n#VictoryColumn #IndieWeb #community #organizers #grateful #2019_328 #20191124 #latergram #nofilter",
"html": "<a class=\"u-bridgy-flickr-photo\" href=\"https://fastly.4sqi.net/img/general/original/476_kPYBZ3XMWenHmTHHxPAvRwM6vGyWT24mjAGfOrg0tLs.jpg\"></a><a href=\"https://indieweb.org/images/8/88/iwc_2019_berlin2_day_1.jpg\"></a><a href=\"https://indieweb.org/images/8/83/iwc_2019_berlin2_day_2.jpg\"></a><a href=\"https://twitter.com/cheukting_ho/status/1198307024683098118\"></a><a href=\"https://indieweb.org/images/e/e4/berlin2_2019_organizers_meetup.jpg\"></a>1 month ago today: Victory Column en route to <a class=\"h-cassis-username\" href=\"https://twitter.com/IndieWebCamp\">@IndieWebCamp</a> #<span class=\"p-category\">Berlin</span>.<br />Our second #<span class=\"p-category\">IndieWebCamp</span> <a class=\"h-cassis-username\" href=\"https://twitter.com/MozillaBerlin\">@MozillaBerlin</a> this year, we had amazing participants(2,3), hosted an <a class=\"h-cassis-username\" href=\"https://twitter.com/OptOutSocial\">@OptOutSocial</a> hackathon, and a keynote by founder Teresa(4 \ud83d\udcf7 <a class=\"h-cassis-username\" href=\"https://twitter.com/cheukting_ho\">@cheukting_ho</a>)!<br /><br />About a dozen sessions with notes and some with session videos linked from the schedule: <a href=\"https://indieweb.org/2019/Berlin2/Schedule\">https://indieweb.org/2019/Berlin2/Schedule</a><br /><br />Last but not least, great working with co-organizers Yulia (<a class=\"h-cassis-username\" href=\"https://twitter.com/ioctaptceb\">@ioctaptceb</a>), <a class=\"h-cassis-username\" href=\"https://twitter.com/RosemaryOrchard\">@RosemaryOrchard</a>, and <a class=\"h-cassis-username\" href=\"https://twitter.com/DShanske\">@DShanske</a> to put it all together and discuss community at the Organizers meetup the day before the camp(5).<br /><br />Previously: <a href=\"https://tantek.com/2019/327/t1/amazing-start-indiewebcamp-berlin\">https://tantek.com/2019/327/t1/amazing-start-indiewebcamp-berlin</a><br /><br />#<span class=\"p-category\">VictoryColumn</span> #<span class=\"p-category\">IndieWeb</span> #<span class=\"p-category\">community</span> #<span class=\"p-category\">organizers</span> #<span class=\"p-category\">grateful</span> #<span class=\"p-category\">2019_328</span> #<span class=\"p-category\">20191124</span> #<span class=\"p-category\">latergram</span> #<span class=\"p-category\">nofilter</span>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "photo",
"_id": "7309220",
"_source": "1",
"_is_read": true
}
This gets me right in the feels.
I can’t believe I was lucky enough to contribute to 24 Ways seven times over its fifteen year lifespan!
{
"type": "entry",
"published": "2019-12-24T14:46:05Z",
"url": "https://adactio.com/links/16259",
"category": [
"24ways",
"sideprojects",
"independent",
"indieweb",
"community",
"publishing"
],
"bookmark-of": [
"https://24ways.org/2019/the-accidental-side-project/"
],
"content": {
"text": "The Accidental Side Project \u25c6 24 ways\n\n\n\nThis gets me right in the feels.\n\nI can\u2019t believe I was lucky enough to contribute to 24 Ways seven times over its fifteen year lifespan!",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://24ways.org/2019/the-accidental-side-project/\">\nThe Accidental Side Project \u25c6 24 ways\n</a>\n</h3>\n\n<p>This gets me right in the feels.</p>\n\n<p>I can\u2019t believe I was lucky enough to <a href=\"https://24ways.org/authors/jeremykeith/\">contribute to 24 Ways seven times</a> over its fifteen year lifespan!</p>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "bookmark",
"_id": "7301716",
"_source": "2",
"_is_read": true
}
I'm going!Looking forward to my fourth IndieWeb Summit! Join us in Portland, OR to learn, play, and use the web your own way!
{
"type": "entry",
"published": "2019-12-23T11:38:53-0500",
"rsvp": "yes",
"url": "https://martymcgui.re/2019/12/23/113853/",
"category": [
"IndieWeb",
"IWC",
"IWS"
],
"in-reply-to": [
"https://2020.indieweb.org/summit"
],
"content": {
"text": "I'm going!Looking forward to my fourth IndieWeb Summit! Join us in Portland, OR to learn, play, and use the web your own way!",
"html": "I'm going!<p>Looking forward to my <em>fourth</em> IndieWeb Summit! Join us in Portland, OR to learn, play, and use the web your own way!</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "rsvp",
"refs": {
"https://2020.indieweb.org/summit": {
"type": "entry",
"summary": "The tenth annual gathering for independent web creators of all kinds, graphic artists, designers, UX engineers, coders, hackers, to share ideas, create and improve their personal websites, and build upon each others creations.",
"url": "https://2020.indieweb.org/summit",
"name": "IndieWeb Summit",
"author": {
"type": "card",
"name": "2020.indieweb.org",
"url": "http://2020.indieweb.org",
"photo": null
},
"post-type": "article"
}
},
"_id": "7269407",
"_source": "175",
"_is_read": true
}
@jackyalcine how secure do you think is Koype’s #IndieAuth via TOTP? what are the implementation details, what’s your threat model?
I’m building an auth endpoint and thinking what to use… Don’t worry I won’t hack you (for now 😉) #security
{
"type": "entry",
"published": "2019-12-23T03:17:00+0300",
"url": "https://fireburn.ru/posts/1577071020",
"category": [
"security",
"IndieAuth"
],
"syndication": [
"https://twitter.com/kisik21/status/1208904545063047168"
],
"content": {
"text": "@jackyalcine how secure do you think is Koype\u2019s #IndieAuth via TOTP? what are the implementation details, what\u2019s your threat model?\nI\u2019m building an auth endpoint and thinking what to use\u2026 Don\u2019t worry I won\u2019t hack you (for now \ud83d\ude09) #security",
"html": "<p><a href=\"https://v2.jacky.wtf\">@jackyalcine</a> how secure do you think is Koype\u2019s #IndieAuth via TOTP? what are the implementation details, what\u2019s your threat model?</p>\n<p>I\u2019m building an auth endpoint and thinking what to use\u2026 Don\u2019t worry I won\u2019t hack you (for now \ud83d\ude09) #security</p>"
},
"author": {
"type": "card",
"name": "Vika",
"url": "https://fireburn.ru/",
"photo": "https://fireburn.ru/media/f1/5a/fb/9b/081efafb97b4ad59f5025cf2fd0678b8f3e20e4c292489107d52be09.png"
},
"post-type": "note",
"_id": "7252851",
"_source": "1371",
"_is_read": true
}
How many of you #IndieWeb people have your own sites as your homepages? I’ve set mine as a new tab.
Actually planning to have a React-based dashboard with an inbuilt indieweb reader and stuff
{
"type": "entry",
"published": "2019-12-23T02:29:00+0300",
"url": "https://fireburn.ru/posts/1577068140",
"category": [
"IndieWeb"
],
"syndication": [
"https://fireburn.ru/None"
],
"content": {
"text": "How many of you #IndieWeb people have your own sites as your homepages? I\u2019ve set mine as a new tab.\nActually planning to have a React-based dashboard with an inbuilt indieweb reader and stuff",
"html": "<p>How many of you #IndieWeb people have your own sites as your homepages? I\u2019ve set mine as a new tab.</p>\n<p>Actually planning to have a React-based dashboard with an inbuilt indieweb reader and stuff</p>"
},
"author": {
"type": "card",
"name": "Vika",
"url": "https://fireburn.ru/",
"photo": "https://fireburn.ru/media/f1/5a/fb/9b/081efafb97b4ad59f5025cf2fd0678b8f3e20e4c292489107d52be09.png"
},
"post-type": "note",
"_id": "7252854",
"_source": "1371",
"_is_read": true
}
{
"type": "entry",
"published": "2019-12-23T01:11:16.933+01:00",
"url": "https://www.jvt.me/mf2/2019/12/jculf/",
"in-reply-to": [
"https://twitter.com/dhh/status/1208827334813351936"
],
"name": "Reply to https://twitter.com/dhh/status/1208827334813351936",
"content": {
"text": "Have you by any chance heard of the #IndieWeb movement? We've got a great group of folks who are looking at what it means to #OwnYourData and #BeYourOwnSocialNetwork\nI've written about it https://www.jvt.me/posts/2019/10/20/indieweb-talk/ and we've got a large wiki too https://indieweb.org/why",
"html": "<p>Have you by any chance heard of the #IndieWeb movement? We've got a great group of folks who are looking at what it means to #OwnYourData and #BeYourOwnSocialNetwork\nI've written about it <a href=\"https://www.jvt.me/posts/2019/10/20/indieweb-talk/\">https://www.jvt.me/posts/2019/10/20/indieweb-talk/</a> and we've got a large wiki too <a href=\"https://indieweb.org/why\">https://indieweb.org/why</a></p>"
},
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "reply",
"_id": "7250163",
"_source": "2169",
"_is_read": true
}
{
"type": "entry",
"published": "2019-12-22T14:35:00Z",
"url": "https://www.jvt.me/mf2/2019/12/xh8s5/",
"category": [
"indieweb"
],
"bookmark-of": [
"https://omarabid.com/the-modern-web"
],
"name": "The modern web is becoming an unusable, user-hostile wasteland",
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "bookmark",
"_id": "7237460",
"_source": "2169",
"_is_read": true
}
{
"type": "entry",
"published": "2019-12-22T14:27:00Z",
"url": "https://www.jvt.me/mf2/2019/12/po5vh/",
"category": [
"indieweb",
"metadata",
"microformats"
],
"bookmark-of": [
"https://shkspr.mobi/blog/2019/12/the-future-of-the-web-isnt-the-web/"
],
"name": "The future of the web, isn't the web",
"content": {
"text": "A good read by Terence about how the Semantic Web and using metadata (be it Schema.org, microdata or Microformats) will build a more usable and interconnected life",
"html": "<p>A good read by Terence about how the Semantic Web and using metadata (be it Schema.org, microdata or Microformats) will build a more usable and interconnected life</p>"
},
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "bookmark",
"_id": "7236797",
"_source": "2169",
"_is_read": true
}
Why not use it as a syndication target though instead of having an “add an event” UI? Do we not trust our own blogs to handle the markup correctly? :3 #ownyourdata #ownyourevents #IndieWeb #microformats2
{
"type": "entry",
"published": "2019-12-22T11:36:21+00:00",
"url": "https://fireburn.ru/posts/1577014581",
"category": [
"ownyourdata",
"ownyourevents",
"IndieWeb",
"microformats2"
],
"in-reply-to": [
"https://aaronparecki.com/2019/12/21/4/indieweb-events"
],
"content": {
"text": "Why not use it as a syndication target though instead of having an \u201cadd an event\u201d UI? Do we not trust our own blogs to handle the markup correctly? :3 #ownyourdata #ownyourevents #IndieWeb #microformats2",
"html": "<p>Why not use it as a syndication target though instead of having an \u201cadd an event\u201d UI? Do we not trust our own blogs to handle the markup correctly? :3 #ownyourdata #ownyourevents #IndieWeb #microformats2</p>"
},
"author": {
"type": "card",
"name": "Vika",
"url": "https://fireburn.ru/",
"photo": "https://fireburn.ru/media/f1/5a/fb/9b/081efafb97b4ad59f5025cf2fd0678b8f3e20e4c292489107d52be09.png"
},
"post-type": "reply",
"_id": "7236667",
"_source": "1371",
"_is_read": true
}
Geocities, LiveJournal, what.cd, now Yahoo Groups. One day, Medium, Twitter, and even hosting services like GitHub Pages will be plundered then discarded when they can no longer grow or cannot find a working business model.
Considering the needs of someone who wants to make and maintain a website, without the ridiculous complexity of “modern” web tooling:
How do we make web content that can last and be maintained for at least 10 years? As someone studying human-computer interaction, I naturally think of the stakeholders we aren’t supporting. Right now putting up web content is optimized for either the professional web developer (who use the latest frameworks and workflows) or the non-tech savvy user (who use a platform).
{
"type": "entry",
"published": "2019-12-22T08:45:43Z",
"url": "https://adactio.com/links/16252",
"category": [
"digital",
"preservation",
"independent",
"publishing",
"indieweb",
"performance",
"longevity",
"frontend",
"development",
"complexity",
"simplictiy",
"tooling"
],
"bookmark-of": [
"https://jeffhuang.com/designed_to_last/"
],
"content": {
"text": "This Page is Designed to Last: A Manifesto for Preserving Content on the Web\n\n\n\n\n Geocities, LiveJournal, what.cd, now Yahoo Groups. One day, Medium, Twitter, and even hosting services like GitHub Pages will be plundered then discarded when they can no longer grow or cannot find a working business model.\n\n\nConsidering the needs of someone who wants to make and maintain a website, without the ridiculous complexity of \u201cmodern\u201d web tooling:\n\n\n How do we make web content that can last and be maintained for at least 10 years? As someone studying human-computer interaction, I naturally think of the stakeholders we aren\u2019t supporting. Right now putting up web content is optimized for either the professional web developer (who use the latest frameworks and workflows) or the non-tech savvy user (who use a platform).",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://jeffhuang.com/designed_to_last/\">\nThis Page is Designed to Last: A Manifesto for Preserving Content on the Web\n</a>\n</h3>\n\n<blockquote>\n <p>Geocities, LiveJournal, what.cd, now Yahoo Groups. One day, Medium, Twitter, and even hosting services like GitHub Pages will be plundered then discarded when they can no longer grow or cannot find a working business model.</p>\n</blockquote>\n\n<p>Considering the needs of someone who wants to make and maintain a website, without the ridiculous complexity of \u201cmodern\u201d web tooling:</p>\n\n<blockquote>\n <p>How do we make web content that can last and be maintained for at least 10 years? As someone studying human-computer interaction, I naturally think of the stakeholders we aren\u2019t supporting. Right now putting up web content is optimized for either the professional web developer (who use the latest frameworks and workflows) or the non-tech savvy user (who use a platform).</p>\n</blockquote>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "bookmark",
"_id": "7236037",
"_source": "2",
"_is_read": true
}
{
"type": "entry",
"published": "2019-12-21T23:51:00Z",
"url": "https://www.jvt.me/mf2/2019/12/yxd9v/",
"in-reply-to": [
"https://aaronparecki.com/2019/12/21/4/indieweb-events"
],
"name": "Reply to https://aaronparecki.com/2019/12/21/4/indieweb-events",
"content": {
"text": "This is really amazing - great work on this!\nOut of interest, would there be any interest in the ability to syndicate events from our own websites to https://events.indieweb.org so there's a bit less manual process for adding them to the official list?",
"html": "<p>This is really amazing - great work on this!\nOut of interest, would there be any interest in the ability to syndicate events from our own websites to <a href=\"https://events.indieweb.org\">https://events.indieweb.org</a> so there's a bit less manual process for adding them to the official list?</p>"
},
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "reply",
"_id": "7221157",
"_source": "2169",
"_is_read": true
}
{
"type": "entry",
"published": "2019-12-21T13:20:00-08:00",
"url": "https://aaronparecki.com/2019/12/21/4/indieweb-events",
"category": [
"indieweb",
"indiewebcamp",
"events"
],
"syndication": [
"https://news.indieweb.org/en/aaronparecki.com/2019/12/21/4/indieweb-events"
],
"name": "Announcing events.indieweb.org!",
"content": {
"text": "I'm super happy to announce the launch of a new website for IndieWeb events at events.indieweb.org!\n\n\n\nThis website is a place to find and post events for the IndieWeb community. Historically, we've used the IndieWeb wiki to collect events for the community. There are definitely some benefits to this approach, but there are also quite a lot of downsides.\n\nMy goal with this new website was to capture the best parts of a community wiki for events, while streamlining the process for creating events and making it easier to find what you're looking for as an attendee.\n\nThe rest of this post describes the motivations and design decisions for the website. If that is not interesting to you, you can stop reading now, and just know that it should be a lot easier to find and create IndieWeb community events going forward at events.indieweb.org!\n\nWhy do we need a new website?\n\nOver the last year or so, I've spent a lot of time talking with organizers of the local IndieWeb events like IndieWebCamps or Homebrew Website Clubs. We've also grown a considerable amount this year, adding new organizers and expanding into new cities.\n\nAs we've been onboarding new organizers who are hosting events in their city, I continually see people struggling with the current process of listing an event on the wiki. It's not at all their fault either! Here's an example of what it takes to post a new Homebrew Website Club event, as described on the wiki.\n\nIf your event is not on a \"regular\" Homebrew Website Club day, then you'll need to add a new date to the wiki template of HWC dates, which means editing this template:\n\n\n\nCreate a page on the wiki for the event, the easiest way is to find a past event and copy the page and modify it for your city. That involves editing a page that looks something like this:\n\n\n\nOne part of this process that usually gets messed up is that the wiki markup needs to include the h-event Microformats HTML inside the wiki page. This enables some automation that we have, such as generating the IndieWeb newsletter with photos from the event.\n\nIt's far too easy to forget to add a closing </div> or forget the particular syntax for expressing dates and times in HTML and Microformats. I also personally think that it's not very friendly or accessible to make event organizers deal with this kind of low-level markup, and creates a barrier to people who would otherwise enjoy organizing meetups.\n\nIf you have a website that supports posting events on it yourself, then you're also encouraged to create an event post on your own website and link to it from the wiki.\n\nThen, you need to make sure the event page is added to indieweb.org/Events so that people will actually find it. That also enables some of the automation like having the bot add it to the home page summary and adding it to the newsletter. Thanks to some wiki template wrangling by gRegor, it is at least a little easier to get the wiki markup right since you can use templates for it:\n\n\n\nIn practice, relatively few people have actually done this, and usually this ends up being done by either gRegor or Tantek.\n\nAt the end of all of this, attendees are left with an experience for discovering and RSVP'ing for events something like this.\n\nVisit indieweb.org/Events to see what's coming next, and you're presented with a list like this:\n\n\n\nI'm no designer or information architect, but even I can tell that this page is lacking in some very basic structure that would make it friendly to viewers.\n\nIf you manage to find a meetup in your city and click on it, then you visit the event page for the full details.\n\n\n\nThis now presents its own list of challenges.\n\nThe \"When\" section at the top lists a time range, but in reality each location sets their own times so you have to double check below\nYou have to scroll through several other cities listed on the page to find the details for the one you're looking for\nThere's just a lot of visual clutter here, largely due to being constrained by the wiki environment\nSo needless to say, this is not a very good experience for event organizers or attendees.\n\nWe've talked about trying to improve this situation at various organizers meetups in the past, but never came up with a conclusive plan. I decided that it would be my personal goal to launch a new website to solve these issues so that we can go into 2020 with a much nicer experience for events.\n\nI am happy to say I believe I have addressed nearly all the issues with our current system, while still making it as flexible to use as the wiki.\n\nHere's a quick overview of roughly the feature set of the new events website.\n\nFinding Events\n\nList of upcoming events - the home page is a list of all upcoming events\n\nArchive pages - past events can be found by browsing a year page or month page.\n\n\n\nTag pages - events can be tagged, and tag pages show all events with that tag! This can be used to create city pages showing events only in that city, for example: #austin.\n\n\n\niCal feeds - every page has an iCal feed you can add to your calendar! You can add the home page iCal feed to get a list of all events, or you can add a tag page feed to get just events in your city.\n\nMicroformats - of course every page is marked up with h-event Microformats, so you can subscribe to this in software that supports that vocabulary, or use it as an API for getting events from this website for things like the IndieWeb Newsletter.\n\nAuthentication - if you're logged in to the IndieWeb wiki, then you're already logged in here!\n\nWiki-like editing - anyone who is logged in can add and edit all the details of events, just like if it were a wiki page.\n\nEvent Permalinks\n\nEvents have their own permalinks which have the following features:\n\nCover image - events can have a cover image that shows up at the top. These are always cropped to a fixed size for consistency.\n\n\n\nPhoto gallery - photos can be added to the event page, and they show up as a nice photo gallery. The first photo is shown full width, and then below that is a grid with the rest of the photos.\n\n\n\nThe photos can be clicked to view larger, and you can also add alt text for the photos as well. The photos can be re-ordered by dragging them around if you're logged in.\n\n\n\nRelated blog posts and comments - you can add related blog posts about an event, which is a fun way to capture what people have written after an event. See IndieWebCamp Amsterdam 2019 as an example.\n\nRSVPs - RSVPs are handled in two different ways. If you're logged in, you'll see an \"I'm Going\" button on upcoming events. You can click it to add yourself to the RSVP list immediately. The event pages also accept RSVP Webmentions so you can RSVP from your own website.\n\n\n\nHTML and Markdown description - the main page for the event supports Markdown and a limited subset of HTML tags for formatting. You can use this to provide full details of an event, or even add things that aren't otherwise supported by the website.\n\nAdd to calendar - every upcoming event has an \"add to calendar\" button which provides both an iCal event as well as a like to add to a Google calendar.\n\n\n\nTimezone converter - for events that have a specific start time, the time links out to a page that shows that time in multiple timezones. This is mainly useful for virtual events like Virtual Homebrew Website Clubs, or if you're trying to remotely join another event.\n\n\n\nThe time of the event is shown along with the time of the event in the timezone your browser reports. Below that is a list of the equivalent times in all timezones used by other events in the website.\n\nCreating an Event\n\nI wanted creating an event to be as straightforward as possible. To start with, there's a giant \"Add an Event\" link in the top navigation bar, which is already an improvement.\n\nOne challenge I quickly ran into was that adding fields for all the information needed about the event quickly turns into quite a large form. I didn't want to split it into multiple pages, so instead I broke the page into sections.\n\n\n\nTo start, you enter the name of the event, and optionally add a cover image. The image will be cropped and a preview will appear immediately.\n\n\n\nNext, you'll add information about the location of the event. Ultimately these are just regular text fields, but the \"search for a location\" box on top can help you automatically fill them out by looking up a location.\n\n\n\nIf you start typing in that box, it will use the Google Maps autocomplete API to find venues matching your search.\n\n\n\nClicking on one of the options in the list will then fill out the details in the rest of the fields, and you'll see a little map appear as visual confirmation.\n\n\n\nOf course you're free to not use the venue search at all and just type in the details manually. Or for virtual events with no physical location you can just enter \"Online\" as the venue name.\n\nNext up is adding the date and/or time of the event.\n\nIf you do use the autocomplete and select a venue, then an additional bonus is that it finds the matching timezone for that location as well.\n\n\n\nThis is where it gets a bit tricky. I've made a couple of design decisions around date handling to simplify both the data entry as well as presentation of dates and times for events. I'll describe those in detail a bit later.\n\nLastly, you can add a link to the event's website if it has one, add a description, and add one or more tags.\n\n\n\nYou'd want to include a link to the event's website if for example it requires that you register for tickets to attend the event. Since IndieWebCamps require ticket registration, we'll be linking out to the individual IndieWebCamp's page to buy tickets. We've been using a pattern of YYYY.indieweb.org/city for a few years now, and it's worked out pretty well. But if you're adding something like a Homebrew Website Club that doesn't have its own website, you just leave this blank and this page effectively becomes the canonical link for that event.\n\nThe description field supports markdown and a limited set of HTML tags for formatting. For events with their own website, I'd recommend leaving this description relatively short. But if you want this page to be the canonical event page, feel free to use multiple headers, embed images, and make it look as nice as you want.\n\nTags are a great way to collect related events so they can be found easier. I'd definitely recommend adding a tag for the city of the event, such as \"austin\", so that people can then visit the tag page to find events in their city. You can also add tags like \"indiewebcamp\" or \"hwc\" which then provide a quick way for people to find all upcoming Homebrew Website Clubs regardless of location.\n\nClone event - in order to support quickly adding recurring events like Homebrew Website Clubs, you can click the \"Clone Event\" button on a previous event, and quickly make a new event by changing only the details you want.\n\nDate and Time Handling\n\nDeciding how to handle dates, times, and timezones was one of the most challenging parts of this project. If you've ever dealt with building systems that handle times and timezones you'll know what I mean.\n\nI decided to have essentially four distinct ways an event can present its date/time on this website.\n\nOne-day events - an event that takes place during some portion of one day. This is intended for things like evening events, one-day IndieWebCamps, or other full-day conferences. To create this event, enter only the start date, and enter a start and optionally enter the end time.\n\n\n\nDepending on whether you enter a start and end time, the event date will be displayed as one of the below:\n\n\n\n\n\n\n\nIf you don't enter a timezone, then these times are considered \"floating times\" or \"local times\" and the system doesn't know when it actually occurs. The iCal feed that it produces will also output it as a floating time, leaving out all timezone information. Calendar apps should add this as either a floating time in your calendar, or snap it to your local timezone when you add it. That can cause some edge cases such as when you add an event in the future that will be in a timezone different from where you are when you add it.\n\nIf you add a timezone when you create the event, then it will display the timezone there as well as include it in the iCal feed, and you'll avoid the floating time issues.\n\n\n\nMulti-day events - an event that spans more than one day, such as multi-day conferences.\n\nI took the liberty of deciding that in this case, the times of the event are never shown. In practice, I find it to be more confusing than helpful when an event is shown as being \"January 20, 8:00am through January 21, 5:00pm\". Does that mean I am expected to be there overnight? What time do things wrap up the first day? etc. etc. Instead, it's far more helpful for the overall date range of the event to be displayed at the top, and then elsewhere provide the detailed day-by-day schedule. This is how we've handled it with our pages like IndieWeb Summit which show the date summary at the top and a detailed schedule grid below.\n\n\n\nSo to create multi-day events, you only need to enter the start and end dates. Even if you enter times, they will be ignored by the system. The timezone is also unnecessary in this case because it's not needed in order for something reading the feed to show the same date range.\n\n\n\nThat will be displayed without any time or timezone information.\n\n\n\nIf the date range spans a month boundary, then both month names appear of course.\n\n\n\nIn this case, the iCal feed also omits the times and timezone. That means adding it to a calendar app adds it as a floating date. I've had Apple Calendar and Outlook both mess up multi-day events when there's a timezone specified, so that it looks like the event starts at 5pm local time the previous day, which is really confusing. This should prevent that from happening.\n\nOpen Source\n\nMy goal is to eventually open source this project so that others can use it for their own community. I'm actually planning on running a copy of it on oauth.net to collect OAuth community events as well.\n\nThat said, I feel like it's not quite ready to open source, so I'm holding off on that for the time being. Here are some of the things I need to solve before I'm ready to publish this.\n\n\nCreate a web installer - I'd like the installation experience for this to be more like WordPress and not require command line configuration. The installer should walk you through checking system requirements, setting up the database, etc.\n\nDrop dependency on go imageproxy - The go imageproxy that this uses for quickly resizing images is great, but it's a barrier to setting this project up. This project should download and resize images it needs and serve them locally.\n\nAdd authentication options - Right now the only authentication option is looking at the HTTP Remote-User header, which is a great way to tie this in to existing authentication systems. I'll need to provide alternatives for people who don't have an existing authentication system already.\n\nTheming/Styling/Customization - The design of this project is intentionally minimal, my goal is to allow some flexibility in styling it to match an existing website. I'm not sure what form this should take (WordPress themes are way more than I want to do), but some amount of customization is necessary.\nReplacing the use of the IndieWeb wiki for events\n\nMy goal is to not have any 2020 events on the IndieWeb wiki! I think this project is far enough along that it can effectively do everything the wiki can do around events and more.\n\nI've already added all the upcoming 2020 events that were on the wiki into the new website. Going forward, it should be significantly easier adding events on this website rather than the wiki. There will only be a little bit of cleanup to do around some of the automations such as the list of upcoming events on the home page and the newsletter.\n\nI'm sure there are some things I forgot to address while building this, so if you're an organizer of any IndieWeb events, please do let me know what I may have missed.\n\nSo let me know what you think! I'm really excited to have finally launched this after spending so long designing and building it. I'm hoping it makes for a much better experience for everyone who hosts and attends IndieWeb events!",
"html": "<p>I'm super happy to announce the launch of a new website for IndieWeb events at <a href=\"https://events.indieweb.org\">events.indieweb.org</a>!</p>\n\n<p><a href=\"https://events.indieweb.org/\"><img src=\"https://aperture-media.p3k.io/aaronparecki.com/9ee3fe62aaa159ca9a636fa8df0b5d738c5cb89c8dd422834c42ba855982a92b.png\" alt=\"indieweb-events-list.png\" /></a></p>\n\n<p>This website is a place to find and post events for the IndieWeb community. Historically, we've used the <a href=\"https://indieweb.org/events\">IndieWeb wiki</a> to collect events for the community. There are definitely some benefits to this approach, but there are also quite a lot of downsides.</p>\n\n<p>My goal with this new website was to capture the best parts of a community wiki for events, while streamlining the process for creating events and making it easier to find what you're looking for as an attendee.</p>\n\n<p>The rest of this post describes the motivations and design decisions for the website. If that is not interesting to you, you can stop reading now, and just know that it should be a lot easier to find and create IndieWeb community events going forward at <a href=\"https://events.indieweb.org\">events.indieweb.org</a>!</p>\n\n<h2>Why do we need a new website?</h2>\n\n<p>Over the last year or so, I've spent a lot of time talking with organizers of the local IndieWeb events like IndieWebCamps or Homebrew Website Clubs. We've also grown a considerable amount this year, adding new organizers and expanding into new cities.</p>\n\n<p>As we've been onboarding new organizers who are hosting events in their city, I continually see people struggling with the current process of listing an event on the wiki. It's not at all their fault either! Here's an example of what it takes to post a new Homebrew Website Club event, as described <a href=\"https://indieweb.org/Events#How_To_Add_An_Event\">on the wiki</a>.</p>\n\n<p>If your event is not on a \"regular\" Homebrew Website Club day, then you'll need to add a new date to the wiki template of HWC dates, which means editing this template:</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/a024d40fa1bd791d2f163303dd8617a5d763db5b62a9b1b1650d72a4a520f193.png\" alt=\"hwc-template.png\" /></p>\n\n<p>Create a page on the wiki for the event, the easiest way is to find a past event and copy the page and modify it for your city. That involves editing a page that looks something like this:</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/216eba3e9bff2b723b23680b53441c2ae9676192d4b9e4f7202aa8f1b69ebc1a.png\" alt=\"edit-wiki-event.png\" /></p>\n\n<p>One part of this process that usually gets messed up is that the wiki markup needs to include the h-event Microformats HTML inside the wiki page. This enables some automation that we have, such as generating the <a href=\"https://indieweb.org/this-week\">IndieWeb newsletter</a> with photos from the event.</p>\n\n<p>It's far too easy to forget to add a closing <code></div></code> or forget the particular syntax for expressing dates and times in HTML and Microformats. I also personally think that it's not very friendly or accessible to make event organizers deal with this kind of low-level markup, and creates a barrier to people who would otherwise enjoy organizing meetups.</p>\n\n<p>If you have a website that supports posting events on it yourself, then you're also encouraged to create an event post on your own website and link to it from the wiki.</p>\n\n<p>Then, you need to make sure the event page is added to <a href=\"https://indieweb.org/Events\">indieweb.org/Events</a> so that people will actually find it. That also enables some of the automation like having the bot add it to the home page summary and adding it to the newsletter. Thanks to some wiki template wrangling by <a href=\"https://gregorlove.com/\">gRegor</a>, it is at least a little easier to get the wiki markup right since you can use templates for it:</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/ce7b29ae83241234cfc9feb1cfc754bd843c5888ed785157a00ee1199668c505.png\" alt=\"wiki-event-list.png\" /></p>\n\n<p>In practice, relatively few people have actually done this, and usually this ends up being done by <a href=\"https://chat.indieweb.org/2016-01-27/1453947587493000\">either gRegor or Tantek</a>.</p>\n\n<p>At the end of all of this, attendees are left with an experience for discovering and RSVP'ing for events something like this.</p>\n\n<p>Visit <a href=\"https://indieweb.org/Events\">indieweb.org/Events</a> to see what's coming next, and you're presented with a list like this:</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/da316618503df72822dc2c996dba5fcb7f86a68b90d80cb60911a446b237ca1b.png\" alt=\"wiki-2019-events.png\" /></p>\n\n<p>I'm no designer or information architect, but even I can tell that this page is lacking in some very basic structure that would make it friendly to viewers.</p>\n\n<p>If you manage to find a meetup in your city and click on it, then you visit the event page for the full details.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/1626b89771ef5bf8d92fd506fc8ba110a328c0dc04e853d6088842cf7ec4f25b.jpg\" alt=\"wiki-hwc-event-page.jpg\" /></p>\n\n<p>This now presents its own list of challenges.</p>\n\n<ul><li>The \"When\" section at the top lists a time range, but in reality each location sets their own times so you have to double check below</li>\n<li>You have to scroll through several other cities listed on the page to find the details for the one you're looking for</li>\n<li>There's just a lot of visual clutter here, largely due to being constrained by the wiki environment</li>\n</ul><p><strong>So needless to say, this is not a very good experience for event organizers <em>or</em> attendees.</strong></p>\n\n<p>We've talked about trying to improve this situation at various <a href=\"https://indieweb.org/Organizers/event_pages#Event_Brainstorming\">organizers meetups</a> in the past, but never came up with a conclusive plan. I decided that it would be my personal goal to launch a new website to solve these issues so that we can go into 2020 with a much nicer experience for events.</p>\n\n<p>I am happy to say I believe I have addressed nearly all the issues with our current system, while still making it as flexible to use as the wiki.</p>\n\n<p>Here's a quick overview of roughly the feature set of the new events website.</p>\n\n<h2>Finding Events</h2>\n\n<p><strong>List of upcoming events</strong> - the <a href=\"https://events.indieweb.org/\">home page</a> is a list of all upcoming events</p>\n\n<p><strong>Archive pages</strong> - past events can be found by browsing a <a href=\"https://events.indieweb.org/2020\">year page</a> or <a href=\"https://events.indieweb.org/2020/06\">month page</a>.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/569bb6fc9e411d4755f839cc039d58d3b69e7c4f898676b481dd680deba892d6.png\" width=\"400\" alt=\"2020-events.png\" /></p>\n\n<p><strong>Tag pages</strong> - events can be tagged, and tag pages show all events with that tag! This can be used to create city pages showing events only in that city, for example: <a href=\"https://events.indieweb.org/tag/austin\">#austin</a>.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/ec3b088da4dca3846dc561207cc974766a49ce67b5b7e2cba47aa0580576ef82.png\" width=\"400\" alt=\"austin-tag-page.png\" /></p>\n\n<p><strong>iCal feeds</strong> - every page has an iCal feed you can add to your calendar! You can add the home page iCal feed to get a list of all events, or you can add a tag page feed to get just events in your city.</p>\n\n<p><strong>Microformats</strong> - of course every page is marked up with <a href=\"https://indieweb.org/h-event\">h-event</a> Microformats, so you can subscribe to this in software that supports that vocabulary, or use it as an API for getting events from this website for things like the <a href=\"https://indieweb.org/this-week\">IndieWeb Newsletter</a>.</p>\n\n<p><strong>Authentication</strong> - if you're logged in to the IndieWeb wiki, then you're already logged in here!</p>\n\n<p><strong>Wiki-like editing</strong> - anyone who is logged in can add and edit all the details of events, just like if it were a wiki page.</p>\n\n<h2>Event Permalinks</h2>\n\n<p>Events have their own permalinks which have the following features:</p>\n\n<p><strong>Cover image</strong> - events can have a cover image that shows up at the top. These are always cropped to a fixed size for consistency.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/a65370ad8b256764accaaeeb29228b001da899f901c7de172dac9de006cf5197.jpg\" alt=\"hwc-sd-cover-image.jpg\" /></p>\n\n<p><strong>Photo gallery</strong> - photos can be added to the event page, and they show up as a nice photo gallery. The first photo is shown full width, and then below that is a grid with the rest of the photos.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/9428f82d41fc343ba9c51824e519c2e0c73893782e9e35fdf8354669db1b0166.jpg\" alt=\"iwc-ams-photo-gallery.jpg\" /></p>\n\n<p>The photos can be clicked to view larger, and you can also add alt text for the photos as well. The photos can be re-ordered by dragging them around if you're logged in.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/095ab00167eef9590aa3d92677f31d6327fb7e26fac6f4bc608443aa8e182cfe.jpg\" alt=\"iwc-ams-edit-photo-details.jpg\" /></p>\n\n<p><strong>Related blog posts and comments</strong> - you can add related blog posts about an event, which is a fun way to capture what people have written after an event. See <a href=\"https://events.indieweb.org/2019/09/indiewebcamp-amsterdam-2019-94vjWjjzri4X\">IndieWebCamp Amsterdam 2019</a> as an example.</p>\n\n<p><strong>RSVPs</strong> - RSVPs are handled in two different ways. If you're logged in, you'll see an \"I'm Going\" button on upcoming events. You can click it to add yourself to the RSVP list immediately. The event pages also accept <a href=\"https://indieweb.org/rsvp#How_to_publish\">RSVP Webmentions</a> so you can RSVP from your own website.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/54961dd192d8804dba0cbd590c74a9c6241af2036805dc84a89a88069bb3e8ee.jpg\" width=\"400\" alt=\"event-rsvps.jpg\" /></p>\n\n<p><strong>HTML and Markdown description</strong> - the main page for the event supports Markdown and a limited subset of HTML tags for formatting. You can use this to provide full details of an event, or even add things that aren't otherwise supported by the website.</p>\n\n<p><strong>Add to calendar</strong> - every upcoming event has an \"add to calendar\" button which provides both an iCal event as well as a like to add to a Google calendar.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/69f28f4e29dad8947ec46ecfa69e4f936a0ccb5f1ea53670a996987846b412cf.png\" width=\"295\" alt=\"add-to-calendar.png\" /></p>\n\n<p><strong>Timezone converter</strong> - for events that have a specific start time, the time links out to a page that shows that time in multiple timezones. This is mainly useful for virtual events like Virtual Homebrew Website Clubs, or if you're trying to remotely join another event.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/7b5d71548f1690568b3288e7d72dcc367ed5571b96c50783bdc0d92a772a58ae.png\" alt=\"timezone-converter.png\" /></p>\n\n<p>The time of the event is shown along with the time of the event in the timezone your browser reports. Below that is a list of the equivalent times in all timezones used by other events in the website.</p>\n\n<h2>Creating an Event</h2>\n\n<p>I wanted creating an event to be as straightforward as possible. To start with, there's a giant \"Add an Event\" link in the top navigation bar, which is already an improvement.</p>\n\n<p>One challenge I quickly ran into was that adding fields for all the information needed about the event quickly turns into quite a large form. I didn't want to split it into multiple pages, so instead I broke the page into sections.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/251adf5c7acf1709e6e8c39f323821d8baeac3f4185ce95bd986f5019be70452.png\" alt=\"add-event-1.png\" /></p>\n\n<p>To start, you enter the name of the event, and optionally add a cover image. The image will be cropped and a preview will appear immediately.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/59aad48174f06ab7b5c3b9e3e35af22cd5791b030862ccd163bb80ed4da19c4f.jpg\" alt=\"add-event-1a.jpg\" /></p>\n\n<p>Next, you'll add information about the location of the event. Ultimately these are just regular text fields, but the \"search for a location\" box on top can help you automatically fill them out by looking up a location.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/7de8d43dd8f40b5d858651690d538e8050ba674f00018a3c7efa798a05b2bc71.png\" alt=\"add-event-2.png\" /></p>\n\n<p>If you start typing in that box, it will use the Google Maps autocomplete API to find venues matching your search.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/450a79f718726609ba75518efebef75c5754871c83f8b8b6860441b5a9c0ebb2.png\" alt=\"add-event-2a.png\" /></p>\n\n<p>Clicking on one of the options in the list will then fill out the details in the rest of the fields, and you'll see a little map appear as visual confirmation.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/d3bdbad564ed93c103ecf944d18ba97a8f96af22ff74855f91bd83404626f643.png\" alt=\"add-event-2b.png\" /></p>\n\n<p>Of course you're free to not use the venue search at all and just type in the details manually. Or for virtual events with no physical location you can just enter \"Online\" as the venue name.</p>\n\n<p>Next up is adding the date and/or time of the event.</p>\n\n<p>If you do use the autocomplete and select a venue, then an additional bonus is that it finds the matching timezone for that location as well.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/32ea3e490cdc3f40f3db0ab42d8e7b3fb034189e495fc4bd25061ca44d65f15d.png\" alt=\"add-event-3.png\" /></p>\n\n<p>This is where it gets a bit tricky. I've made a couple of design decisions around date handling to simplify both the data entry as well as presentation of dates and times for events. I'll describe those in detail a bit later.</p>\n\n<p>Lastly, you can add a link to the event's website if it has one, add a description, and add one or more tags.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/2eadfba78d6fb68bbde0e4199240d33c0ac88c0fb28192de4350a398a726ac9c.png\" alt=\"add-event-4.png\" /></p>\n\n<p>You'd want to include a link to the event's website if for example it requires that you register for tickets to attend the event. Since IndieWebCamps require ticket registration, we'll be linking out to the individual IndieWebCamp's page to buy tickets. We've been using a pattern of <code>YYYY.indieweb.org/city</code> for a few years now, and it's worked out pretty well. But if you're adding something like a Homebrew Website Club that doesn't have its own website, you just leave this blank and this page effectively becomes the canonical link for that event.</p>\n\n<p>The description field supports markdown and a limited set of HTML tags for formatting. For events with their own website, I'd recommend leaving this description relatively short. But if you want this page to be the canonical event page, feel free to use multiple headers, embed images, and make it look as nice as you want.</p>\n\n<p>Tags are a great way to collect related events so they can be found easier. I'd definitely recommend adding a tag for the city of the event, such as \"<a href=\"https://events.indieweb.org/tag/austin\">austin</a>\", so that people can then visit the tag page to find events in their city. You can also add tags like \"indiewebcamp\" or \"hwc\" which then provide a quick way for people to find all <a href=\"https://events.indieweb.org/tag/hwc\">upcoming Homebrew Website Clubs</a> regardless of location.</p>\n\n<p><strong>Clone event</strong> - in order to support quickly adding recurring events like Homebrew Website Clubs, you can click the \"Clone Event\" button on a previous event, and quickly make a new event by changing only the details you want.</p>\n\n<h2>Date and Time Handling</h2>\n\n<p>Deciding how to handle dates, times, and timezones was one of the most challenging parts of this project. If you've ever dealt with building systems that handle times and timezones you'll know what I mean.</p>\n\n<p>I decided to have essentially four distinct ways an event can present its date/time on this website.</p>\n\n<p><strong>One-day events</strong> - an event that takes place during some portion of one day. This is intended for things like evening events, one-day IndieWebCamps, or other full-day conferences. To create this event, enter only the start date, and enter a start and optionally enter the end time.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/a1f7c106e229c940ef745993e123c842ca5902c910bfda9be3a9602b1303fd2d.png\" alt=\"create-one-day-event.png\" /></p>\n\n<p>Depending on whether you enter a start and end time, the event date will be displayed as one of the below:</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/f1df239289507e11bbf2d4ae978f108b767e09404ac0381cbba4ef1b9059d505.png\" width=\"230\" alt=\"full-day-event.png\" /></p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/7ffe3d548fb729380f93868190a2b4bd0436b300418f837a4c31b8a470688495.png\" width=\"230\" alt=\"one-day-event-start-time.png\" /></p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/68c5117dfeed87e42f45a2f93151898c775bb4d58ecc11b8553de24e3e907363.png\" width=\"230\" alt=\"one-day-event-start-end-time.png\" /></p>\n\n<p>If you don't enter a timezone, then these times are considered \"floating times\" or \"local times\" and the system doesn't know when it actually occurs. The iCal feed that it produces will also output it as a floating time, leaving out all timezone information. Calendar apps should add this as either a floating time in your calendar, or snap it to your local timezone when you add it. That can cause some edge cases such as when you add an event in the future that will be in a timezone different from where you are when you add it.</p>\n\n<p>If you add a timezone when you create the event, then it will display the timezone there as well as include it in the iCal feed, and you'll avoid the floating time issues.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/5252bace2738c825752b22f62062bc53c28b625abc0926073232c9627fdab4f5.png\" width=\"280\" alt=\"one-day-event-with-timezone.png\" /></p>\n\n<p><strong>Multi-day events</strong> - an event that spans more than one day, such as multi-day conferences.</p>\n\n<p>I took the liberty of deciding that in this case, the times of the event are never shown. In practice, I find it to be more confusing than helpful when an event is shown as being \"January 20, 8:00am through January 21, 5:00pm\". Does that mean I am expected to be there overnight? What time do things wrap up the first day? etc. etc. Instead, it's far more helpful for the overall date range of the event to be displayed at the top, and then elsewhere provide the detailed day-by-day schedule. This is how we've handled it with our pages like <a href=\"https://2019.indieweb.org/summit\">IndieWeb Summit</a> which show the date summary at the top and a detailed schedule grid below.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/30c8478f3380430bfc003fa773c3fcd0cbb70fd1aefdaacb038081f7259918e3.png\" alt=\"indieweb-summit-2019-schedule.png\" /></p>\n\n<p>So to create multi-day events, you only need to enter the start and end dates. Even if you enter times, they will be ignored by the system. The timezone is also unnecessary in this case because it's not needed in order for something reading the feed to show the same date range.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/a0096fda341d720d1f500ae1a8b0e148ceca949b12a84e9c9324a4a68d931dcb.png\" alt=\"create-two-day-event.png\" /></p>\n\n<p>That will be displayed without any time or timezone information.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/acfb8ad3fc619071fbb82c37b80b8d439098c0f3d8994e69c8bbf555fb46693d.png\" width=\"230\" alt=\"two-day-event.png\" /></p>\n\n<p>If the date range spans a month boundary, then both month names appear of course.</p>\n\n<p><img src=\"https://aperture-media.p3k.io/aaronparecki.com/637b3e3502fd88448fe95c7b1dc5aa778aa27a31529cd4957113de5e2e81c2e8.png\" width=\"280\" alt=\"two-day-event-month-span.png\" /></p>\n\n<p>In this case, the iCal feed also omits the times and timezone. That means adding it to a calendar app adds it as a floating date. I've had Apple Calendar and Outlook both mess up multi-day events when there's a timezone specified, so that it looks like the event starts at 5pm local time the previous day, which is really confusing. This should prevent that from happening.</p>\n\n<h2>Open Source</h2>\n\n<p>My goal is to eventually open source this project so that others can use it for their own community. I'm actually planning on running a copy of it on <a href=\"https://oauth.net/events/\">oauth.net</a> to collect OAuth community events as well.</p>\n\n<p>That said, I feel like it's not quite ready to open source, so I'm holding off on that for the time being. Here are some of the things I need to solve before I'm ready to publish this.</p>\n\n<ul><li>\n<strong>Create a web installer</strong> - I'd like the installation experience for this to be more like WordPress and not require command line configuration. The installer should walk you through checking system requirements, setting up the database, etc.</li>\n<li>\n<strong>Drop dependency on go imageproxy</strong> - The go imageproxy that this uses for quickly resizing images is great, but it's a barrier to setting this project up. This project should download and resize images it needs and serve them locally.</li>\n<li>\n<strong>Add authentication options</strong> - Right now the only authentication option is looking at the HTTP <code>Remote-User</code> header, which is a great way to tie this in to existing authentication systems. I'll need to provide alternatives for people who don't have an existing authentication system already.</li>\n<li>\n<strong>Theming/Styling/Customization</strong> - The design of this project is intentionally minimal, my goal is to allow some flexibility in styling it to match an existing website. I'm not sure what form this should take (WordPress themes are way more than I want to do), but some amount of customization is necessary.</li>\n</ul><h2>Replacing the use of the IndieWeb wiki for events</h2>\n\n<p>My goal is to not have any 2020 events on the IndieWeb wiki! I think this project is far enough along that it can effectively do everything the wiki can do around events and more.</p>\n\n<p>I've already added all the upcoming 2020 events that were on the wiki into the new website. Going forward, it should be significantly easier adding events on this website rather than the wiki. There will only be a little bit of cleanup to do around some of the automations such as the list of upcoming events on the home page and the newsletter.</p>\n\n<p>I'm sure there are some things I forgot to address while building this, so if you're an organizer of any IndieWeb events, please do let me know what I may have missed.</p>\n\n<p>So let me know what you think! I'm really excited to have finally launched this after spending so long designing and building it. I'm hoping it makes for a much better experience for everyone who hosts and attends IndieWeb events!</p>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "article",
"_id": "7216667",
"_source": "16",
"_is_read": true
}
Seventeen years ago, I was setting up my first blog using MovableType on my Powerbook G4, and some clever Python scripts. I still have every post, right here in this site! 🎉 #OwnYourData #IndieWeb
https://cleverdevil.io/2002/testing-this-out
{
"type": "entry",
"published": "2019-12-21T18:57:27+00:00",
"url": "https://cleverdevil.io/2019/seventeen-years-ago-i-was-setting-up",
"category": [
"OwnYourData",
"IndieWeb"
],
"syndication": [
"https://twitter.com/cleverdevil/status/1208461504804200448",
"https://mastodon.social/@cleverdevil/103347300074125439"
],
"content": {
"text": "Seventeen years ago, I was setting up my first blog using MovableType on my Powerbook G4, and some clever Python scripts. I still have every post, right here in this site! \ud83c\udf89 #OwnYourData #IndieWeb\n\nhttps://cleverdevil.io/2002/testing-this-out",
"html": "Seventeen years ago, I was setting up my first blog using MovableType on my Powerbook G4, and some clever Python scripts. I still have every post, right here in this site! \ud83c\udf89 <a href=\"https://cleverdevil.io/tag/OwnYourData\" class=\"p-category\">#OwnYourData</a> <a href=\"https://cleverdevil.io/tag/IndieWeb\" class=\"p-category\">#IndieWeb</a><br /><br /><a href=\"https://cleverdevil.io/2002/testing-this-out\">https://cleverdevil.io/2002/testing-this-out</a>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://cleverdevil.io/file/fdbc7696a5f73864ea11a828c861e138/thumb.jpg"
},
"post-type": "note",
"_id": "7215763",
"_source": "71",
"_is_read": true
}
{
"type": "entry",
"published": "2019-12-20T17:24:00Z",
"url": "https://www.jvt.me/mf2/2019/12/l4k7r/",
"in-reply-to": [
"https://mrkapowski.com/2019/12/10257.html"
],
"name": "Reply to https://mrkapowski.com/2019/12/10257.html",
"content": {
"text": "Thanks Chris - I'll look into it as both you and Aaron have recommended it.\nAs an FYI this post didn't send me a webmention and when sending it manually it said no_link_found - not sure if it's a known issue?",
"html": "<p>Thanks Chris - I'll look into it as both you and Aaron have recommended it.\nAs an FYI this post didn't send me a webmention and when sending it manually it said <code>no_link_found</code> - not sure if it's a known issue?</p>"
},
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "reply",
"_id": "7181295",
"_source": "2169",
"_is_read": true
}
What do all you lovely #IndieWeb folks use to consume Twitter? I'd like to hook some of my favourite people into my reader but not sure the best way to do it
{
"type": "entry",
"published": "2019-12-20T10:55:00Z",
"url": "https://www.jvt.me/mf2/2019/12/ixcmu/",
"content": {
"text": "What do all you lovely #IndieWeb folks use to consume Twitter? I'd like to hook some of my favourite people into my reader but not sure the best way to do it",
"html": "<p>What do all you lovely #IndieWeb folks use to consume Twitter? I'd like to hook some of my favourite people into my reader but not sure the best way to do it</p>"
},
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "note",
"_id": "7172159",
"_source": "2169",
"_is_read": true
}
{
"type": "entry",
"published": "2019-12-20T02:09:00Z",
"url": "https://www.jvt.me/mf2/2019/12/hczvr/",
"category": [
"webmention",
"personal-website"
],
"bookmark-of": [
"https://nicolas-hoizey.com/2017/07/so-long-disqus-hello-webmentions.html"
],
"name": "So long Disqus, hello Webmention",
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "bookmark",
"_id": "7162522",
"_source": "2169",
"_is_read": true
}
I have repeatedly expressed to peers working on #IndieWeb #SocialWeb #SocialMedia #FederatedSocialWeb that tech/plumbing-centric framing of #dweb "Decentralized Web" "Distributed Web" is heavily problematic. Beyond MastoGab, there is now something much worse (not linking). I’ll follow up with a longer blog post (it’s been in my drafts for a while), explaining why, how we got here, and maybe some ways for how can we replace use of "Decentralized Web" or "Distributed Web" with something human-centric instead.
For a start, re-read Mozilla’s Manifesto and Principles:
https://www.mozilla.org/en-US/about/manifesto/
{
"type": "entry",
"published": "2019-12-19 10:54-0800",
"url": "http://tantek.com/2019/353/t1/tech-plumbing-framing-dweb-problematic",
"category": [
"IndieWeb",
"SocialWeb",
"SocialMedia",
"FederatedSocialWeb",
"dweb"
],
"content": {
"text": "I have repeatedly expressed to peers working on #IndieWeb #SocialWeb #SocialMedia #FederatedSocialWeb that tech/plumbing-centric framing of #dweb \"Decentralized Web\" \"Distributed Web\" is heavily problematic. Beyond MastoGab, there is now something much worse (not linking). I\u2019ll follow up with a longer blog post (it\u2019s been in my drafts for a while), explaining why, how we got here, and maybe some ways for how can we replace use of \"Decentralized Web\" or \"Distributed Web\" with something human-centric instead.\n\nFor a start, re-read Mozilla\u2019s Manifesto and Principles:\n\nhttps://www.mozilla.org/en-US/about/manifesto/",
"html": "I have repeatedly expressed to peers working on #<span class=\"p-category\">IndieWeb</span> #<span class=\"p-category\">SocialWeb</span> #<span class=\"p-category\">SocialMedia</span> #<span class=\"p-category\">FederatedSocialWeb</span> that tech/plumbing-centric framing of #<span class=\"p-category\">dweb</span> \"Decentralized Web\" \"Distributed Web\" is heavily problematic. Beyond MastoGab, there is now something much worse (not linking). I\u2019ll follow up with a longer blog post (it\u2019s been in my drafts for a while), explaining why, how we got here, and maybe some ways for how can we replace use of \"Decentralized Web\" or \"Distributed Web\" with something human-centric instead.<br /><br />For a start, re-read Mozilla\u2019s Manifesto and Principles:<br /><br /><a href=\"https://www.mozilla.org/en-US/about/manifesto/\">https://www.mozilla.org/en-US/about/manifesto/</a>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "note",
"_id": "7158539",
"_source": "1",
"_is_read": true
}
{
"type": "entry",
"published": "2019-12-18T08:03:00Z",
"url": "https://www.jvt.me/mf2/2019/12/srid4/",
"category": [
"indieweb",
"personal-website",
"ownership"
],
"bookmark-of": [
"https://beepb00p.xyz/sad-infra.html"
],
"name": "The sad state of personal data and infrastructure",
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "bookmark",
"_id": "7100561",
"_source": "2169",
"_is_read": true
}
i don’t care if twitter is down tho cause I just use my website to post stuff! #IndieWeb #ownyourdata
{
"type": "entry",
"published": "2019-12-17T22:55:00+0300",
"url": "https://fireburn.ru/posts/1576623300",
"category": [
"IndieWeb",
"ownyourdata"
],
"syndication": [
"https://twitter.com/kisik21/status/1207026677009788928"
],
"content": {
"text": "i don\u2019t care if twitter is down tho cause I just use my website to post stuff! #IndieWeb #ownyourdata",
"html": "<p>i don\u2019t care if twitter is down tho cause I just use my website to post stuff! #IndieWeb #ownyourdata</p>"
},
"author": {
"type": "card",
"name": "Vika",
"url": "https://fireburn.ru/",
"photo": "https://fireburn.ru/media/f1/5a/fb/9b/081efafb97b4ad59f5025cf2fd0678b8f3e20e4c292489107d52be09.png"
},
"post-type": "note",
"_id": "7086947",
"_source": "1371",
"_is_read": true
}
link preview agent — n. a user agent that crawls a web page for text, image(s), link(s) etc. to make a link preview https://indieweb.org/link-preview.
@24ways (ht @KevinMarks): it’s not a “microbrowser” (already an alias for mobile browser^1) #xkcd386
^1 https://en.wikipedia.org/wiki/microbrowser
Web searches also reveal that existing definition for “microbrowser”:
E.g. all first page results on:
@DuckDuckGo: https://duckduckgo.com/?t=ffab&q=microbrowser
@Google (which even shows a onebox definition for it!): https://www.google.com/search?client=firefox-b-1-d&q=microbrowser
It’s futile to attempt to redefine longstanding term/phrase like that.
Always research what you think is a new term or phrase before attempting to define it.
At a minimum do a couple of web searches and check @Wikipedia.
To be fair, naming things is hard (https://tantek.com/t44u2).
To be clear, it’s *good* to identify a thing or class of things that exists but isn’t named, and give it a name, so we can talk about it. Reminded me of @timoreilly’s talk at the 2013 Brooklyn Beta (https://tantek.com/t4SV1).
Instead, when naming something, start with trying a name that is descriptive. E.g. as the @24ways article already mentions “link preview” as the canonical phrase for the thing that is generated and shown, it makes more sense to define “link preview agent” as:
“a class of User-Agents that also visit website links, parse HTML and generate a [non-interactive, representative] user experience”
And before this post, “link preview agent” had *zero* Duck Duck Go or relevant Google results for the actual phrase (just four in Google, two split by periods, and two adjacent text coincidences that are separated by page UI).
* https://duckduckgo.com/?t=ffab&q=%22link%20preview%20agent%22
* https://www.google.com/search?client=firefox-b-1-d&q=%22link%20preview%20agent%22
{
"type": "entry",
"published": "2019-12-17 07:26-0800",
"url": "http://tantek.com/2019/351/t1/link-preview-agent-not-microbrowser",
"category": [
"xkcd386"
],
"in-reply-to": [
"https://twitter.com/24ways/status/1206001172626264065"
],
"content": {
"text": "link preview agent \u2014 n. a user agent that crawls a web page for text, image(s), link(s) etc. to make a link preview https://indieweb.org/link-preview.\n\n@24ways (ht @KevinMarks): it\u2019s not a \u201cmicrobrowser\u201d (already an alias for mobile browser^1) #xkcd386 \n\n^1 https://en.wikipedia.org/wiki/microbrowser\n\nWeb searches also reveal that existing definition for \u201cmicrobrowser\u201d:\n\nE.g. all first page results on:\n@DuckDuckGo: https://duckduckgo.com/?t=ffab&q=microbrowser\n@Google (which even shows a onebox definition for it!): https://www.google.com/search?client=firefox-b-1-d&q=microbrowser\n\nIt\u2019s futile to attempt to redefine longstanding term/phrase like that.\n\nAlways research what you think is a new term or phrase before attempting to define it.\n\nAt a minimum do a couple of web searches and check @Wikipedia.\n\nTo be fair, naming things is hard (https://tantek.com/t44u2).\n\nTo be clear, it\u2019s *good* to identify a thing or class of things that exists but isn\u2019t named, and give it a name, so we can talk about it. Reminded me of @timoreilly\u2019s talk at the 2013 Brooklyn Beta (https://tantek.com/t4SV1).\n\nInstead, when naming something, start with trying a name that is descriptive. E.g. as the @24ways article already mentions \u201clink preview\u201d as the canonical phrase for the thing that is generated and shown, it makes more sense to define \u201clink preview agent\u201d as: \n\n\u201ca class of User-Agents that also visit website links, parse HTML and generate a [non-interactive, representative] user experience\u201d\n\nAnd before this post, \u201clink preview agent\u201d had *zero* Duck Duck Go or relevant Google results for the actual phrase (just four in Google, two split by periods, and two adjacent text coincidences that are separated by page UI).\n* https://duckduckgo.com/?t=ffab&q=%22link%20preview%20agent%22\n* https://www.google.com/search?client=firefox-b-1-d&q=%22link%20preview%20agent%22",
"html": "link preview agent \u2014 n. a user agent that crawls a web page for text, image(s), link(s) etc. to make a link preview <a href=\"https://indieweb.org/link-preview\">https://indieweb.org/link-preview</a>.<br /><br /><a class=\"h-cassis-username\" href=\"https://twitter.com/24ways\">@24ways</a> (ht <a class=\"h-cassis-username\" href=\"https://twitter.com/KevinMarks\">@KevinMarks</a>): it\u2019s not a \u201cmicrobrowser\u201d (already an alias for mobile browser^1) #<span class=\"p-category\">xkcd386</span> <br /><br />^1 <a href=\"https://en.wikipedia.org/wiki/microbrowser\">https://en.wikipedia.org/wiki/microbrowser</a><br /><br />Web searches also reveal that existing definition for \u201cmicrobrowser\u201d:<br /><br />E.g. all first page results on:<br /><a class=\"h-cassis-username\" href=\"https://twitter.com/DuckDuckGo\">@DuckDuckGo</a>: <a href=\"https://duckduckgo.com/?t=ffab&q=microbrowser\">https://duckduckgo.com/?t=ffab&q=microbrowser</a><br /><a class=\"h-cassis-username\" href=\"https://twitter.com/Google\">@Google</a> (which even shows a onebox definition for it!): <a href=\"https://www.google.com/search?client=firefox-b-1-d&q=microbrowser\">https://www.google.com/search?client=firefox-b-1-d&q=microbrowser</a><br /><br />It\u2019s futile to attempt to redefine longstanding term/phrase like that.<br /><br />Always research what you think is a new term or phrase before attempting to define it.<br /><br />At a minimum do a couple of web searches and check <a class=\"h-cassis-username\" href=\"https://twitter.com/Wikipedia\">@Wikipedia</a>.<br /><br />To be fair, naming things is hard (<a href=\"https://tantek.com/t44u2\">https://tantek.com/t44u2</a>).<br /><br />To be clear, it\u2019s *good* to identify a thing or class of things that exists but isn\u2019t named, and give it a name, so we can talk about it. Reminded me of <a class=\"h-cassis-username\" href=\"https://twitter.com/timoreilly\">@timoreilly</a>\u2019s talk at the 2013 Brooklyn Beta (<a href=\"https://tantek.com/t4SV1\">https://tantek.com/t4SV1</a>).<br /><br />Instead, when naming something, start with trying a name that is descriptive. E.g. as the <a class=\"h-cassis-username\" href=\"https://twitter.com/24ways\">@24ways</a> article already mentions \u201clink preview\u201d as the canonical phrase for the thing that is generated and shown, it makes more sense to define \u201clink preview agent\u201d as: <br /><br />\u201ca class of User-Agents that also visit website links, parse HTML and generate a [non-interactive, representative] user experience\u201d<br /><br />And before this post, \u201clink preview agent\u201d had *zero* Duck Duck Go or relevant Google results for the actual phrase (just four in Google, two split by periods, and two adjacent text coincidences that are separated by page UI).<br />* <a href=\"https://duckduckgo.com/?t=ffab&q=%22link%20preview%20agent%22\">https://duckduckgo.com/?t=ffab&q=%22link%20preview%20agent%22</a><br />* <a href=\"https://www.google.com/search?client=firefox-b-1-d&q=%22link%20preview%20agent%22\">https://www.google.com/search?client=firefox-b-1-d&q=%22link%20preview%20agent%22</a>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "reply",
"refs": {
"https://twitter.com/24ways/status/1206001172626264065": {
"type": "entry",
"url": "https://twitter.com/24ways/status/1206001172626264065",
"name": "@24ways\u2019s tweet",
"post-type": "article"
}
},
"_id": "7079728",
"_source": "1",
"_is_read": true
}