@glyphe glad we got to chat again, and thank you! Looking forward to seeing what you do next with your #IndieWeb site! #takebackyourweb
{
"type": "entry",
"published": "2019-05-16 14:09-0700",
"url": "http://tantek.com/2019/136/t21/",
"category": [
"IndieWeb",
"takebackyourweb"
],
"in-reply-to": [
"https://twitter.com/glyphe/status/1128331900878241792"
],
"content": {
"text": "@glyphe glad we got to chat again, and thank you! Looking forward to seeing what you do next with your #IndieWeb site! #takebackyourweb",
"html": "<a class=\"h-cassis-username\" href=\"https://twitter.com/glyphe\">@glyphe</a> glad we got to chat again, and thank you! Looking forward to seeing what you do next with your #<span class=\"p-category\">IndieWeb</span> site! #<span class=\"p-category\">takebackyourweb</span>"
},
"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/glyphe/status/1128331900878241792": {
"type": "entry",
"url": "https://twitter.com/glyphe/status/1128331900878241792",
"name": "@glyphe\u2019s tweet",
"post-type": "article"
}
},
"_id": "3495238",
"_source": "1",
"_is_read": true
}
@davidlinssen thank you for your kind words. Unfortunately I am missing @IndieWebCamp Utrecht, but several others are going!
Perhaps ask in https://indieweb.org/discuss (IRC, Slack, etc.) and mention Frank & Tonz. #takebackyourweb
{
"type": "entry",
"published": "2019-05-16 14:06-0700",
"url": "http://tantek.com/2019/136/t20/",
"category": [
"takebackyourweb"
],
"in-reply-to": [
"https://twitter.com/davidlinssen/status/1128379744041558017"
],
"content": {
"text": "@davidlinssen thank you for your kind words. Unfortunately I am missing @IndieWebCamp Utrecht, but several others are going!\nPerhaps ask in https://indieweb.org/discuss (IRC, Slack, etc.) and mention Frank & Tonz. #takebackyourweb",
"html": "<a class=\"h-cassis-username\" href=\"https://twitter.com/davidlinssen\">@davidlinssen</a> thank you for your kind words. Unfortunately I am missing <a class=\"h-cassis-username\" href=\"https://twitter.com/IndieWebCamp\">@IndieWebCamp</a> Utrecht, but several others are going!<br />Perhaps ask in <a href=\"https://indieweb.org/discuss\">https://indieweb.org/discuss</a> (IRC, Slack, etc.) and mention Frank & Tonz. #<span class=\"p-category\">takebackyourweb</span>"
},
"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/davidlinssen/status/1128379744041558017": {
"type": "entry",
"url": "https://twitter.com/davidlinssen/status/1128379744041558017",
"name": "@davidlinssen\u2019s tweet",
"post-type": "article"
}
},
"_id": "3495239",
"_source": "1",
"_is_read": true
}
@obearone agreed it was quite wonderful & inspiring! I hope Berlin happens and perhaps we can add an @IndieWebCamp side-event again.
#takebackyourweb https://twitter.com/obearone/status/1128354930232786945
{
"type": "entry",
"published": "2019-05-16 14:03-0700",
"url": "http://tantek.com/2019/136/t19/",
"category": [
"takebackyourweb"
],
"in-reply-to": [
"https://twitter.com/obearone/status/1128354930232786945"
],
"content": {
"text": "@obearone agreed it was quite wonderful & inspiring! I hope Berlin happens and perhaps we can add an @IndieWebCamp side-event again.\n\n#takebackyourweb https://twitter.com/obearone/status/1128354930232786945",
"html": "<a class=\"h-cassis-username\" href=\"https://twitter.com/obearone\">@obearone</a> agreed it was quite wonderful & inspiring! I hope Berlin happens and perhaps we can add an <a class=\"h-cassis-username\" href=\"https://twitter.com/IndieWebCamp\">@IndieWebCamp</a> side-event again.<br /><br />#<span class=\"p-category\">takebackyourweb</span> <a href=\"https://twitter.com/obearone/status/1128354930232786945\">https://twitter.com/obearone/status/1128354930232786945</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/obearone/status/1128354930232786945": {
"type": "entry",
"url": "https://twitter.com/obearone/status/1128354930232786945",
"name": "@obearone\u2019s tweet",
"post-type": "article"
}
},
"_id": "3495240",
"_source": "1",
"_is_read": true
}
@rsteudel thank you and thanks for the photo of me and @marcthiele!
Looking forward to seeing your #indieweb site!
#takebackyourweb https://twitter.com/rsteudel/status/1128329366608449539
{
"type": "entry",
"published": "2019-05-16 13:58-0700",
"url": "http://tantek.com/2019/136/t18/",
"category": [
"indieweb",
"takebackyourweb"
],
"in-reply-to": [
"https://twitter.com/rsteudel/status/1128329366608449539"
],
"content": {
"text": "@rsteudel thank you and thanks for the photo of me and @marcthiele!\nLooking forward to seeing your #indieweb site!\n#takebackyourweb https://twitter.com/rsteudel/status/1128329366608449539",
"html": "<a class=\"h-cassis-username\" href=\"https://twitter.com/rsteudel\">@rsteudel</a> thank you and thanks for the photo of me and <a class=\"h-cassis-username\" href=\"https://twitter.com/marcthiele\">@marcthiele</a>!<br />Looking forward to seeing your #<span class=\"p-category\">indieweb</span> site!<br />#<span class=\"p-category\">takebackyourweb</span> <a href=\"https://twitter.com/rsteudel/status/1128329366608449539\">https://twitter.com/rsteudel/status/1128329366608449539</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/rsteudel/status/1128329366608449539": {
"type": "entry",
"url": "https://twitter.com/rsteudel/status/1128329366608449539",
"name": "@rsteudel\u2019s tweet",
"post-type": "article"
}
},
"_id": "3495241",
"_source": "1",
"_is_read": true
}
@depone great having you @indiewebcamp Düsseldorf! Enjoy Homebrew Website Club #Karlsruhe, and maybe see you at #IndieWebCamp Brighton!
{
"type": "entry",
"published": "2019-05-16 14:52-0700",
"url": "http://tantek.com/2019/136/t24/",
"category": [
"Karlsruhe",
"IndieWebCamp"
],
"in-reply-to": [
"https://twitter.com/depone/status/1128413605140008962"
],
"content": {
"text": "@depone great having you @indiewebcamp D\u00fcsseldorf! Enjoy Homebrew Website Club #Karlsruhe, and maybe see you at #IndieWebCamp Brighton!",
"html": "<a class=\"h-cassis-username\" href=\"https://twitter.com/depone\">@depone</a> great having you <a class=\"h-cassis-username\" href=\"https://twitter.com/indiewebcamp\">@indiewebcamp</a> D\u00fcsseldorf! Enjoy Homebrew Website Club #<span class=\"p-category\">Karlsruhe</span>, and maybe see you at #<span class=\"p-category\">IndieWebCamp</span> Brighton!"
},
"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/depone/status/1128413605140008962": {
"type": "entry",
"url": "https://twitter.com/depone/status/1128413605140008962",
"name": "@depone\u2019s tweet",
"post-type": "article"
}
},
"_id": "3495235",
"_source": "1",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://www.manton.org/",
"photo": "https://aperture-proxy.p3k.io/907926e361383204bd1bc913c143c23e70ae69bb/68747470733a2f2f6d6963726f2e626c6f672f6d616e746f6e2f6176617461722e6a7067"
},
"url": "https://www.manton.org/2019/05/16/following-other-blogs.html",
"name": "Following other blogs on Micro.blog",
"content": {
"html": "<p>After launching support for Mastodon on Micro.blog, I blogged about how Micro.blog is evolving to support <a href=\"https://www.manton.org/2018/11/08/usernames-on-microblog.html\">3 types of usernames</a>: normal Micro.blog users, Mastodon users, and IndieWeb-friendly domain names. This last type of username is where I think we can bring more social network-like interactions to the full web.</p>\n\n<p>Here\u2019s an example. In a post on Micro.blog, you can @-mention someone\u2019s blog by including @domain.com in the post, using their domain name. If that blogger\u2019s site supports Webmention, Micro.blog will send your mention to their blog, where it could be included as a comment.</p>\n\n<p>I\u2019ve been testing a new feature for this type of username in Micro.blog. You can now <em>follow blogs</em> in the Micro.blog timeline, even if the blogger hasn\u2019t yet registered on Micro.blog. On the web, click Discover, then click the search icon, and enter their domain name. Micro.blog will auto-discover their JSON or RSS feed, letting you follow their blog just as you would follow any Micro.blog user.</p>\n\n<p><img src=\"https://aperture-proxy.p3k.io/9077fa120640f1bac5a7c000d3b4adf4680ac801/68747470733a2f2f7777772e6d616e746f6e2e6f72672f75706c6f6164732f323031392f656465626238636664302e706e67\" width=\"500\" height=\"125\" alt=\"Search field\" /></p>\n\n<p>This feature is designed for blogs with a custom domain name. It assumes one blog, one user, one domain name, so it doesn\u2019t work to follow specific feed URLs yet. You\u2019ll still want a traditional RSS reader for sites that have multiple feeds.</p>\n\n<p>I\u2019ll continue to improve this based on feedback, and start adding it to the native apps. Micro.blog is already one of the most open platforms of its kind, and I think this has a lot of potential to take it a step further.</p>",
"text": "After launching support for Mastodon on Micro.blog, I blogged about how Micro.blog is evolving to support 3 types of usernames: normal Micro.blog users, Mastodon users, and IndieWeb-friendly domain names. This last type of username is where I think we can bring more social network-like interactions to the full web.\n\nHere\u2019s an example. In a post on Micro.blog, you can @-mention someone\u2019s blog by including @domain.com in the post, using their domain name. If that blogger\u2019s site supports Webmention, Micro.blog will send your mention to their blog, where it could be included as a comment.\n\nI\u2019ve been testing a new feature for this type of username in Micro.blog. You can now follow blogs in the Micro.blog timeline, even if the blogger hasn\u2019t yet registered on Micro.blog. On the web, click Discover, then click the search icon, and enter their domain name. Micro.blog will auto-discover their JSON or RSS feed, letting you follow their blog just as you would follow any Micro.blog user.\n\n\n\nThis feature is designed for blogs with a custom domain name. It assumes one blog, one user, one domain name, so it doesn\u2019t work to follow specific feed URLs yet. You\u2019ll still want a traditional RSS reader for sites that have multiple feeds.\n\nI\u2019ll continue to improve this based on feedback, and start adding it to the native apps. Micro.blog is already one of the most open platforms of its kind, and I think this has a lot of potential to take it a step further."
},
"published": "2019-05-16T14:21:08-05:00",
"post-type": "article",
"_id": "3492025",
"_source": "12",
"_is_read": true
}
Wonderful week in Düsseldorf @IndieWebCamp @btconf @a11yclub (thanks @jkphl!). 100% inspiring talks & sessions. Honored to give the #btconf closing talk. Thank you @marcthiele! Everyone was awesome. Til next time, #takebackyourweb! https://twitter.com/m_ott/status/1128327679571374081
{
"type": "entry",
"published": "2019-05-16 05:22-0700",
"url": "http://tantek.com/2019/136/t2/wonderful-week-btconf-a11yclub",
"category": [
"btconf",
"takebackyourweb"
],
"content": {
"text": "Wonderful week in D\u00fcsseldorf @IndieWebCamp @btconf @a11yclub (thanks @jkphl!). 100% inspiring talks & sessions. Honored to give the #btconf closing talk. Thank you @marcthiele! Everyone was awesome. Til next time, #takebackyourweb! https://twitter.com/m_ott/status/1128327679571374081",
"html": "Wonderful week in D\u00fcsseldorf <a class=\"h-cassis-username\" href=\"https://twitter.com/IndieWebCamp\">@IndieWebCamp</a> <a class=\"h-cassis-username\" href=\"https://twitter.com/btconf\">@btconf</a> <a class=\"h-cassis-username\" href=\"https://twitter.com/a11yclub\">@a11yclub</a> (thanks <a class=\"h-cassis-username\" href=\"https://twitter.com/jkphl\">@jkphl</a>!). 100% inspiring talks & sessions. Honored to give the #<span class=\"p-category\">btconf</span> closing talk. Thank you <a class=\"h-cassis-username\" href=\"https://twitter.com/marcthiele\">@marcthiele</a>! Everyone was awesome. Til next time, #<span class=\"p-category\">takebackyourweb</span>! <a href=\"https://twitter.com/m_ott/status/1128327679571374081\">https://twitter.com/m_ott/status/1128327679571374081</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": "3486914",
"_source": "1",
"_is_read": true
}
Ready to head home after a fun week of #IndieWebCamp, #BTConf, #a11yClub, and teaching two #OAuth workshops.
Thanks so much to everyone who helped make all of that happen!
Had a great time back in Düsseldorf and looking forward to coming back next year!
#travel #condor #lufthansa #longhaulflight #frankfurtairport
{
"type": "entry",
"published": "2019-05-16T10:50:59+02:00",
"url": "https://aaronparecki.com/2019/05/16/28/",
"category": [
"IndieWebCamp",
"BTConf",
"a11yClub",
"OAuth",
"condor",
"lufthansa",
"longhaulflight",
"frankfurtairport",
"indiewebcamp",
"btconf",
"a11yclub",
"oauth",
"travel",
"https://beyondtellerrand.com/",
"https://indieweb.org/"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/be26466da28708e59696a1b57356a09cd02d69a6fa1eb39de98f03e93df77908.jpg"
],
"syndication": [
"https://www.instagram.com/p/BxhHCSyh7cQ/"
],
"content": {
"text": "Ready to head home after a fun week of #IndieWebCamp, #BTConf, #a11yClub, and teaching two #OAuth workshops. \u2063 \n\u2063Thanks so much to everyone who helped make all of that happen! \n\u2063 \n\u2063Had a great time back in D\u00fcsseldorf and looking forward to coming back next year! \u2063 \n\u2063#travel #condor #lufthansa #longhaulflight #frankfurtairport",
"html": "Ready to head home after a fun week of <a href=\"https://aaronparecki.com/tag/indiewebcamp\">#<span class=\"p-category\">IndieWebCamp</span></a>, <a href=\"https://aaronparecki.com/tag/btconf\">#<span class=\"p-category\">BTConf</span></a>, <a href=\"https://aaronparecki.com/tag/a11yclub\">#<span class=\"p-category\">a11yClub</span></a>, and teaching two <a href=\"https://aaronparecki.com/tag/oauth\">#<span class=\"p-category\">OAuth</span></a> workshops. \u2063 <br />\u2063Thanks so much to everyone who helped make all of that happen! <br />\u2063 <br />\u2063Had a great time back in D\u00fcsseldorf and looking forward to coming back next year! \u2063 <br />\u2063#travel <a href=\"https://aaronparecki.com/tag/condor\">#<span class=\"p-category\">condor</span></a> <a href=\"https://aaronparecki.com/tag/lufthansa\">#<span class=\"p-category\">lufthansa</span></a> <a href=\"https://aaronparecki.com/tag/longhaulflight\">#<span class=\"p-category\">longhaulflight</span></a> <a href=\"https://aaronparecki.com/tag/frankfurtairport\">#<span class=\"p-category\">frankfurtairport</span></a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "3484891",
"_source": "16",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Neil Mather",
"url": "https://doubleloop.net/",
"photo": null
},
"url": "https://doubleloop.net/2019/05/16/5421/",
"published": "2019-05-16T10:37:21+00:00",
"content": {
"html": "Liked \n<blockquote><blockquote><p>\ud83e\udd2f I finally learnt how to send RSVPs using webmentions! Thank you <a href=\"https://twitter.com/calum_ryan?ref_src=twsrc%5Etfw\">@calum_ryan</a> and <a href=\"https://twitter.com/loopdouble?ref_src=twsrc%5Etfw\">@loopdouble</a>! I\u2019m going to write about it tomorrow! <a href=\"https://twitter.com/hashtag/hwclondon?src=hash&ref_src=twsrc%5Etfw\">#hwclondon</a> <a href=\"https://twitter.com/hashtag/indieweb?src=hash&ref_src=twsrc%5Etfw\">#indieweb</a></p>\u2014 Ana Rodrigues (@ohhelloana) <a href=\"https://twitter.com/ohhelloana/status/1128766925050454017?ref_src=twsrc%5Etfw\">May 15, 2019</a></blockquote><a href=\"https://twitter.com/ohhelloana/status/1128766925050454017\"></a></blockquote>\n\n<p>Boom! High five!</p>\n<p>The post <a href=\"https://doubleloop.net/2019/05/16/5421/\">#5421</a> appeared first on <a href=\"https://doubleloop.net/\">doubleloop</a>.</p>\nAlso on:<p><a href=\"https://twitter.com/ohhelloana/status/1128766925050454017\"> Twitter</a></p>",
"text": "Liked \n\ud83e\udd2f I finally learnt how to send RSVPs using webmentions! Thank you @calum_ryan and @loopdouble! I\u2019m going to write about it tomorrow! #hwclondon #indieweb\u2014 Ana Rodrigues (@ohhelloana) May 15, 2019\n\nBoom! High five!\nThe post #5421 appeared first on doubleloop.\nAlso on: Twitter"
},
"name": "#5421",
"post-type": "note",
"_id": "3484682",
"_source": "1895",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Neil Mather",
"url": "https://doubleloop.net/",
"photo": null
},
"url": "https://doubleloop.net/2019/05/15/5412/",
"published": "2019-05-15T19:51:42+00:00",
"content": {
"html": "Liked <a href=\"https://calumryan.com/note/2674\">a post</a> by <a href=\"https://calumryan.com/\"><img src=\"https://aperture-proxy.p3k.io/7820401a26214dbf2fd38b9b113bd1e34fde5843/68747470733a2f2f63616c756d7279616e2e636f6d2f696d616765732f70726f66696c655f6d642e6a7067\" alt=\"Calum Ryan\" />Calum Ryan</a>\n<blockquote>Chuffed there's at least one of the @HWCLondon community at every IndieWebCamp this month. @voss in D\u00fcsseldorf, @loopdouble in Utrecht and last weekend I was in Berlin https://calumryan.com/blog/indiewebcamp-berlin-2019/</blockquote>\n\n<p>The post <a href=\"https://doubleloop.net/2019/05/15/5412/\">#5412</a> appeared first on <a href=\"https://doubleloop.net/\">doubleloop</a>.</p>",
"text": "Liked a post by Calum Ryan\nChuffed there's at least one of the @HWCLondon community at every IndieWebCamp this month. @voss in D\u00fcsseldorf, @loopdouble in Utrecht and last weekend I was in Berlin https://calumryan.com/blog/indiewebcamp-berlin-2019/\n\nThe post #5412 appeared first on doubleloop."
},
"name": "#5412",
"post-type": "note",
"_id": "3473942",
"_source": "1895",
"_is_read": true
}
YES @carolstran!! 🤘 https://twitter.com/carolstran/status/1128356653538205698
(❤️ that <title>)
BOOM!💥
100% of #btconf speakers now have personal websites.
Next: join us @IndieWebCamp! https://indieweb.org/events
#indieweb #takebackyourweb
{
"type": "entry",
"published": "2019-05-14 10:56-0700",
"url": "http://tantek.com/2019/134/t2/btconf-speakers-have-websites",
"category": [
"btconf",
"indieweb",
"takebackyourweb"
],
"in-reply-to": [
"https://twitter.com/carolstran/status/1128356653538205698"
],
"content": {
"text": "YES @carolstran!! \ud83e\udd18 https://twitter.com/carolstran/status/1128356653538205698\n(\u2764\ufe0f that <title>)\n\nBOOM!\ud83d\udca5 \n100% of #btconf speakers now have personal websites.\n\nNext: join us @IndieWebCamp! https://indieweb.org/events\n\n#indieweb #takebackyourweb",
"html": "YES <a class=\"h-cassis-username\" href=\"https://twitter.com/carolstran\">@carolstran</a>!! \ud83e\udd18 <a href=\"https://twitter.com/carolstran/status/1128356653538205698\">https://twitter.com/carolstran/status/1128356653538205698</a><br />(\u2764\ufe0f that <title>)<br /><br />BOOM!\ud83d\udca5 <br />100% of #<span class=\"p-category\">btconf</span> speakers now have personal websites.<br /><br />Next: join us <a class=\"h-cassis-username\" href=\"https://twitter.com/IndieWebCamp\">@IndieWebCamp</a>! <a href=\"https://indieweb.org/events\">https://indieweb.org/events</a><br /><br />#<span class=\"p-category\">indieweb</span> #<span class=\"p-category\">takebackyourweb</span>"
},
"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/carolstran/status/1128356653538205698": {
"type": "entry",
"url": "https://twitter.com/carolstran/status/1128356653538205698",
"name": "@carolstran\u2019s tweet",
"post-type": "article"
}
},
"_id": "3455646",
"_source": "1",
"_is_read": true
}
Good morning Düsseldorf!
Looking forward to another great day @btconf. I may have something to say later about the #IndieWeb.
I also have a handful of #IndieWebCamp & #microformats pins, find me at lunch (black outfit, white backpack) and get one!
{
"type": "entry",
"published": "2019-05-14 02:22-0700",
"url": "http://tantek.com/2019/134/t1/something-indieweb",
"category": [
"IndieWeb",
"IndieWebCamp",
"microformats"
],
"in-reply-to": [
"https://twitter.com/btconf/status/1128179878627561472"
],
"content": {
"text": "Good morning D\u00fcsseldorf!\n\nLooking forward to another great day @btconf. I may have something to say later about the #IndieWeb.\n\nI also have a handful of #IndieWebCamp & #microformats pins, find me at lunch (black outfit, white backpack) and get one!",
"html": "Good morning D\u00fcsseldorf!<br /><br />Looking forward to another great day <a class=\"h-cassis-username\" href=\"https://twitter.com/btconf\">@btconf</a>. I may have something to say later about the #<span class=\"p-category\">IndieWeb</span>.<br /><br />I also have a handful of #<span class=\"p-category\">IndieWebCamp</span> & #<span class=\"p-category\">microformats</span> pins, find me at lunch (black outfit, white backpack) and get one!"
},
"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/btconf/status/1128179878627561472": {
"type": "entry",
"url": "https://twitter.com/btconf/status/1128179878627561472",
"name": "@btconf\u2019s tweet",
"post-type": "article"
}
},
"_id": "3448321",
"_source": "1",
"_is_read": true
}
I decided to set up a URL shortener on my short domain, aaronpk.com, thanks to some recent discussion in the IndieWeb chat.
I found an open source project that is basically exactly what I would have built if I had built my own: https://polrproject.org/
The installation wasn't seamless, but I'm familiar enough with the tech it's built on so I managed to get it set up. I also made one modification to it, which is that if you type in a short URL that doesn't exist, it redirects to the same path on aaronparecki.com, so that all my regular pages now automatically have a short URL.
This is definitely a lot nicer than my previous solution of adding URLs to a text file.
{
"type": "entry",
"published": "2019-05-13T23:03:57+02:00",
"url": "https://aaronparecki.com/2019/05/13/43/shorturl",
"category": [
"url",
"shorturl",
"indieweb"
],
"content": {
"text": "I decided to set up a URL shortener on my short domain, aaronpk.com, thanks to some recent discussion in the IndieWeb chat. \n\nI found an open source project that is basically exactly what I would have built if I had built my own: https://polrproject.org/ \n\nThe installation wasn't seamless, but I'm familiar enough with the tech it's built on so I managed to get it set up. I also made one modification to it, which is that if you type in a short URL that doesn't exist, it redirects to the same path on aaronparecki.com, so that all my regular pages now automatically have a short URL. \n\nThis is definitely a lot nicer than my previous solution of adding URLs to a text file.",
"html": "I decided to set up a URL shortener on my short domain, aaronpk.com, thanks to some recent discussion in the IndieWeb chat. <br /><br />I found an open source project that is basically exactly what I would have built if I had built my own: <a href=\"https://polrproject.org/\"><span>https://</span>polrproject.org/</a> <br /><br />The installation wasn't seamless, but I'm familiar enough with the tech it's built on so I managed to get it set up. I also made one modification to it, which is that if you type in a short URL that doesn't exist, it redirects to the same path on aaronparecki.com, so that all my regular pages now automatically have a short URL. <br /><br />This is definitely a lot nicer than my previous solution of adding URLs to a text file."
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "note",
"_id": "3441107",
"_source": "16",
"_is_read": true
}
Microformat schema are sorely needed. Parsing for microformats presently feels…clunky.
{
"type": "entry",
"author": {
"name": null,
"url": "https://hans.gerwitz.com/",
"photo": null
},
"url": "https://hans.gerwitz.com/2006/05/31/microschema.html",
"published": "2006-05-31T00:00:00+00:00",
"content": {
"html": "<p><a href=\"http://smackman.com/2006/06/01/an-old-idea/\">Microformat schema</a> are sorely needed. Parsing for microformats presently feels\u2026clunky.</p>",
"text": "Microformat schema are sorely needed. Parsing for microformats presently feels\u2026clunky."
},
"post-type": "note",
"_id": "3436854",
"_source": "197",
"_is_read": true
}
{
"type": "entry",
"published": "2019-05-13T00:49:06+02:00",
"url": "https://aaronparecki.com/2019/05/13/2/https",
"category": [
"indieweb",
"indieauth",
"security",
"https"
],
"name": "Better Default Security for IndieAuth Login Forms",
"content": {
"text": "Last year, I posted a JavaScript snippet that I've started using in all my projects that have an IndieAuth login form, which will automatically add the http scheme if you type a plain domain. This is particularly a problem because the iOS keyboard doesn't include the : character in URL mode.\n\nThe URL keyboard on iOS provides easy access to special characters used in URLs, except no colon!My solution last year was to automatically prepend http:// when a plain domain is entered. This works, but it would be nice if I could use https:// as the default. The problem is I can't assume everyone has https on their websites, and I don't want to have the flow error out when the site can't fetch your domain over https because it's only available on http.\n\nThe trick is that the frontend can tell the backend whether the https scheme was automatically entered or was user-entered. And then, the backend can attempt the https connection first, and if that fails, fall back to http, but only if\u00a0the https scheme was added automatically.\n\nThis provides the best of both worlds. If you explicitly enter https, then it will only\u00a0use the https URL. If you enter just a domain, then it tries https first, and only falls back to http if that fails due to an ssl error.\n\nThe revised code snippet is below. The change if you're using this code is that you have to explicitly opt in to this new behavior. The code attaches to all URL input fields, and then if it finds a corresponding field to add this toggle, it will switch to https by default instead of http, and add a \"1\" to your defined form field.\n\n<script>\n/* add https:// to URL fields on blur */\ndocument.addEventListener('DOMContentLoaded', function() {\n function addDefaultScheme(target) {\n var auto_scheme = false;\n var default_scheme = \"http\";\n var auto_scheme_field = document.querySelector(\"input[name=\"+target.getAttribute('name')+\"_auto_scheme]\");\n if(target.value.match(/^(?!https?:).+\\..+/)) {\n target.value = (auto_scheme_field ? \"https\" : \"http\")+\"://\"+target.value;\n if(auto_scheme_field) {\n auto_scheme_field.value = \"1\";\n }\n }\n }\n var elements = document.querySelectorAll(\"input[type=url]\");\n Array.prototype.forEach.call(elements, function(el, i){\n el.addEventListener(\"blur\", function(e){\n addDefaultScheme(e.target);\n });\n el.addEventListener(\"keydown\", function(e){\n if(e.keyCode == 13) {\n addDefaultScheme(e.target);\n }\n });\n });\n});\n</script>\n\n\nTo use this code with the auto-https upgrade feature, just create any url type input field in the page, and create a hidden input field with a name that is the same as the url field with _auto_scheme appended. The value \"1\" will be written to this field if this code adds the default scheme.\n\n<form action=\"/login\">\n <input type=\"url\" name=\"url\">\n\n <input type=\"text\" name=\"url_auto_scheme\">\n <input type=\"submit\" value=\"Log In\">\n</form>\n\n\nThen in your backend, begin the IndieAuth discovery using the url value as normal. If that step returns an SSL error, then check if url_auto_scheme is 1, and if it is, modify the input URL to switch to the http scheme and try the discovery step again.\n\nThat little bit of frontend JavaScript and backend logic provides a great balance between usability and security for websites that ask users to enter URLs!",
"html": "<p>Last year, I <a href=\"https://aaronparecki.com/2018/06/03/4/url-form-field\">posted a JavaScript snippet</a> that I've started using in all my projects that have an IndieAuth login form, which will automatically add the <code>http</code> scheme if you type a plain domain. This is particularly a problem because the iOS keyboard doesn't include the <code>:</code> character in URL mode.</p>\n\n<img src=\"https://aperture-media.p3k.io/aaronparecki.com/241cb2d5e5fbd7bba69fa10c7914cdf6cb8d28c48111332987c6fc03c2ed4643.png\" alt=\"\" />The URL keyboard on iOS provides easy access to special characters used in URLs, except no colon!<p>My solution last year was to automatically prepend <code>http://</code> when a plain domain is entered. This works, but it would be nice if I could use <code>https://</code> as the default. The problem is I can't assume everyone has https on their websites, and I don't want to have the flow error out when the site can't fetch your domain over https because it's only available on http.</p>\n\n<p>The trick is that the frontend can tell the backend whether the https scheme was automatically entered or was user-entered. And then, the backend can attempt the https connection first, and if that fails, fall back to http, but <i>only if</i>\u00a0the https scheme was added automatically.</p>\n\n<p>This provides the best of both worlds. If you explicitly enter https, then it will <i>only</i>\u00a0use the https URL. If you enter just a domain, then it tries https first, and only falls back to http if that fails due to an ssl error.</p>\n\n<p>The revised code snippet is below. The change if you're using this code is that you have to explicitly opt in to this new behavior. The code attaches to all URL input fields, and then if it finds a corresponding field to add this toggle, it will switch to https by default instead of http, and add a \"1\" to your defined form field.</p>\n\n<pre><code><script>\n/* add https:// to URL fields on blur */\ndocument.addEventListener('DOMContentLoaded', function() {\n function addDefaultScheme(target) {\n var auto_scheme = false;\n var default_scheme = \"http\";\n var auto_scheme_field = document.querySelector(\"input[name=\"+target.getAttribute('name')+\"_auto_scheme]\");\n if(target.value.match(/^(?!https?:).+\\..+/)) {\n target.value = (auto_scheme_field ? \"https\" : \"http\")+\"://\"+target.value;\n if(auto_scheme_field) {\n auto_scheme_field.value = \"1\";\n }\n }\n }\n var elements = document.querySelectorAll(\"input[type=url]\");\n Array.prototype.forEach.call(elements, function(el, i){\n el.addEventListener(\"blur\", function(e){\n addDefaultScheme(e.target);\n });\n el.addEventListener(\"keydown\", function(e){\n if(e.keyCode == 13) {\n addDefaultScheme(e.target);\n }\n });\n });\n});\n</script>\n</code></pre>\n\n<p>To use this code with the auto-https upgrade feature, just create any <code>url</code> type input field in the page, and create a <code>hidden</code> input field with a <code>name</code> that is the same as the url field with <code>_auto_scheme</code> appended. The value \"1\" will be written to this field if this code adds the default scheme.</p>\n\n<pre><code><form action=\"/login\">\n <input type=\"url\" name=\"url\"><br>\n <input type=\"text\" name=\"url_auto_scheme\">\n <input type=\"submit\" value=\"Log In\">\n</form>\n</code></pre>\n\n<p>Then in your backend, begin the IndieAuth discovery using the <code>url</code> value as normal. If that step returns an SSL error, then check if <code>url_auto_scheme</code> is <code>1</code>, and if it is, modify the input URL to switch to the <code>http</code> scheme and try the discovery step again.</p>\n\n<p>That little bit of frontend JavaScript and backend logic provides a great balance between usability and security for websites that ask users to enter URLs!</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": "3426246",
"_source": "16",
"_is_read": true
}
Post-IndieWebCamp hacking continues at the hotel bar! Made a few more minor improvements to Monocle:
• Defaults to "https" when you type in a domain, and if that fails, will fall back to http, rather than the other way around
• Added a logout button
• Added mobile screenshots to the wiki
• Updated the indieauth-client-php library to bubble up things like ssl errors so that apps using the library can report errors better
{
"type": "entry",
"published": "2019-05-12T23:43:01+02:00",
"url": "https://aaronparecki.com/2019/05/12/33/monocle",
"category": [
"indiewebcamp",
"indieweb",
"monocle"
],
"content": {
"text": "Post-IndieWebCamp hacking continues at the hotel bar! Made a few more minor improvements to Monocle: \n\n\u2022 Defaults to \"https\" when you type in a domain, and if that fails, will fall back to http, rather than the other way around \n\u2022 Added a logout button \n\u2022 Added mobile screenshots to the wiki \n\u2022 Updated the indieauth-client-php library to bubble up things like ssl errors so that apps using the library can report errors better",
"html": "Post-IndieWebCamp hacking continues at the hotel bar! Made a few more minor improvements to Monocle: <br /><br />\u2022 Defaults to \"https\" when you type in a domain, and if that fails, will fall back to http, rather than the other way around <br />\u2022 Added a logout button <br />\u2022 Added mobile screenshots to the wiki <br />\u2022 Updated the indieauth-client-php library to bubble up things like ssl errors so that apps using the library can report errors better"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "note",
"_id": "3425203",
"_source": "16",
"_is_read": true
}
Today was a good day …and here are the very good photos.
{
"type": "entry",
"published": "2019-05-12T21:06:07Z",
"url": "https://adactio.com/links/15144",
"category": [
"flickr",
"photos",
"pictures",
"indiewebcamp",
"dusseldorf",
"sipgate",
"hacking",
"coding",
"building",
"community"
],
"bookmark-of": [
"https://www.flickr.com/photos/tollwerk/albums/72157708390735855"
],
"content": {
"text": "IndieWebCamp D\u00fcsseldorf 2019 | 2 | Flickr\n\n\n\nToday was a good day \u2026and here are the very good photos.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://www.flickr.com/photos/tollwerk/albums/72157708390735855\">\nIndieWebCamp D\u00fcsseldorf 2019 | 2 | Flickr\n</a>\n</h3>\n\n<p>Today was a good day \u2026and here are the very good photos.</p>\n\n<a href=\"https://www.flickr.com/photos/tollwerk/albums/72157708390735855\" title=\"IndieWebCamp D\u00fcsseldorf 2019 | 2 by tollwerk, on Flickr\"><img src=\"https://aperture-proxy.p3k.io/7432fbddce409f80ccc66c1dca9b943b7f8dc479/68747470733a2f2f6c6976652e737461746963666c69636b722e636f6d2f36353533352f33323838373232313033375f616134363533386136305f622e6a7067\" width=\"1024\" height=\"683\" alt=\"IMG_2295\" /></a>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://aperture-proxy.p3k.io/bbbacdf0a064621004f2ce9026a1202a5f3433e0/68747470733a2f2f6164616374696f2e636f6d2f696d616765732f70686f746f2d3135302e6a7067"
},
"post-type": "bookmark",
"_id": "3424822",
"_source": "2",
"_is_read": true
}
Announcing today:
IndieWebCamp Brighton is BACK for 2019!
Super excited to return to @68MiddleSt after 3 years for the sixth #IndieWebCamp #Brighton Oct 19-20th, thanks to host @adactio!
Save the dates, start booking travel:
https://indieweb.org/2019/Brighton
{
"type": "entry",
"published": "2019-05-12 13:42-0700",
"url": "http://tantek.com/2019/132/t6/indiewebcamp-brighton-back",
"category": [
"IndieWebCamp",
"Brighton"
],
"content": {
"text": "Announcing today:\n\nIndieWebCamp Brighton is BACK for 2019!\n\nSuper excited to return to @68MiddleSt after 3 years for the sixth #IndieWebCamp #Brighton Oct 19-20th, thanks to host @adactio!\n\nSave the dates, start booking travel:\n\nhttps://indieweb.org/2019/Brighton",
"html": "Announcing today:<br /><br />IndieWebCamp Brighton is BACK for 2019!<br /><br />Super excited to return to <a class=\"h-cassis-username\" href=\"https://twitter.com/68MiddleSt\">@68MiddleSt</a> after 3 years for the sixth #<span class=\"p-category\">IndieWebCamp</span> #<span class=\"p-category\">Brighton</span> Oct 19-20th, thanks to host <a class=\"h-cassis-username\" href=\"https://twitter.com/adactio\">@adactio</a>!<br /><br />Save the dates, start booking travel:<br /><br /><a href=\"https://indieweb.org/2019/Brighton\">https://indieweb.org/2019/Brighton</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": "3424599",
"_source": "1",
"_is_read": true
}
Just wrapped two #IndieWebCamps with inspiring people, chats, and demos! Photos, notes, videos:
* https://indieweb.org/2019/Berlin
* https://indieweb.org/2019/Dusseldorf
Next weekend: https://indieweb.org/2019/Utrecht
And sign-up for #IndieWeb Summit June 29-30!
https://2019.indieweb.org/summit
{
"type": "entry",
"published": "2019-05-12 13:09-0700",
"url": "http://tantek.com/2019/132/t5/indiewebcamps-inspiring-people",
"category": [
"IndieWebCamps",
"IndieWeb"
],
"content": {
"text": "Just wrapped two #IndieWebCamps with inspiring people, chats, and demos! Photos, notes, videos:\n* https://indieweb.org/2019/Berlin\n* https://indieweb.org/2019/Dusseldorf\n\nNext weekend: https://indieweb.org/2019/Utrecht\n\nAnd sign-up for #IndieWeb Summit June 29-30!\nhttps://2019.indieweb.org/summit",
"html": "Just wrapped two #<span class=\"p-category\">IndieWebCamps</span> with inspiring people, chats, and demos! Photos, notes, videos:<br />* <a href=\"https://indieweb.org/2019/Berlin\">https://indieweb.org/2019/Berlin</a><br />* <a href=\"https://indieweb.org/2019/Dusseldorf\">https://indieweb.org/2019/Dusseldorf</a><br /><br />Next weekend: <a href=\"https://indieweb.org/2019/Utrecht\">https://indieweb.org/2019/Utrecht</a><br /><br />And sign-up for #<span class=\"p-category\">IndieWeb</span> Summit June 29-30!<br /><a href=\"https://2019.indieweb.org/summit\">https://2019.indieweb.org/summit</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": "3424509",
"_source": "1",
"_is_read": true
}
Just wrapped two #IndieWebCamps with inspiring people, chats, and demos. Photos, notes, video:
* https://indieweb.org/2019/Berlin
* https://indieweb.org/2019/Dusseldorf
Next weekend: https://indieweb.org/2019/Utrecht
And sign-up for #IndieWeb Summit June 29-30!
https://2019.indieweb.org/summit
{
"type": "entry",
"published": "2019-05-12 13:09-0700",
"url": "http://tantek.com/2019/132/t5/indiewebcamps-met-great-people",
"category": [
"IndieWebCamps",
"IndieWeb"
],
"content": {
"text": "Just wrapped two #IndieWebCamps with inspiring people, chats, and demos. Photos, notes, video:\n* https://indieweb.org/2019/Berlin\n* https://indieweb.org/2019/Dusseldorf\n\nNext weekend: https://indieweb.org/2019/Utrecht\n\nAnd sign-up for #IndieWeb Summit June 29-30!\nhttps://2019.indieweb.org/summit",
"html": "Just wrapped two #<span class=\"p-category\">IndieWebCamps</span> with inspiring people, chats, and demos. Photos, notes, video:<br />* <a href=\"https://indieweb.org/2019/Berlin\">https://indieweb.org/2019/Berlin</a><br />* <a href=\"https://indieweb.org/2019/Dusseldorf\">https://indieweb.org/2019/Dusseldorf</a><br /><br />Next weekend: <a href=\"https://indieweb.org/2019/Utrecht\">https://indieweb.org/2019/Utrecht</a><br /><br />And sign-up for #<span class=\"p-category\">IndieWeb</span> Summit June 29-30!<br /><a href=\"https://2019.indieweb.org/summit\">https://2019.indieweb.org/summit</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": "3424346",
"_source": "1",
"_is_read": true
}