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
}
There is one alternative to social media sites and publishing platforms that has been around since the early, innocent days of the web. It is an alternative that provides immense freedom and control: The personal website. It’s a place to write, create, and share whatever you like, without the need to ask for anyone’s permission.
A wonderful and inspiring call to arms for having your own website—a place to express yourself, and a playground, all rolled into one.
Building and maintaining your personal website is an investment that is challenging and can feel laborious at times. Be prepared for that. But what you will learn along the way does easily make up for all the effort and makes the journey more than worthwhile.
{
"type": "entry",
"published": "2019-05-12T18:53:28Z",
"url": "https://adactio.com/links/15141",
"category": [
"indieweb",
"personal",
"publishing",
"writing",
"sharing",
"control",
"longevity",
"community",
"creativity"
],
"bookmark-of": [
"https://matthiasott.com/articles/into-the-personal-website-verse"
],
"content": {
"text": "Into the Personal-Website-Verse \u00b7 Matthias Ott \u2013 User Experience Designer\n\n\n\n\n There is one alternative to social media sites and publishing platforms that has been around since the early, innocent days of the web. It is an alternative that provides immense freedom and control: The personal website. It\u2019s a place to write, create, and share whatever you like, without the need to ask for anyone\u2019s permission.\n\n\nA wonderful and inspiring call to arms for having your own website\u2014a place to express yourself, and a playground, all rolled into one.\n\n\n Building and maintaining your personal website is an investment that is challenging and can feel laborious at times. Be prepared for that. But what you will learn along the way does easily make up for all the effort and makes the journey more than worthwhile.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://matthiasott.com/articles/into-the-personal-website-verse\">\nInto the Personal-Website-Verse \u00b7 Matthias Ott \u2013 User Experience Designer\n</a>\n</h3>\n\n<blockquote>\n <p>There is one alternative to social media sites and publishing platforms that has been around since the early, innocent days of the web. It is an alternative that provides immense freedom and control: The personal website. It\u2019s a place to <a href=\"https://matthiasott.com/notes/out-there\">write, create, and share whatever you like</a>, <a href=\"https://adactio.com/brendandawes.com/blog/permission-to-write-anything\">without the need to ask for anyone\u2019s permission</a>.</p>\n</blockquote>\n\n<p>A wonderful and inspiring call to arms for having your own website\u2014a place to express yourself, and a playground, all rolled into one.</p>\n\n<blockquote>\n <p>Building and maintaining your personal website is an investment that is challenging and can feel laborious at times. Be prepared for that. But what you will learn along the way does easily make up for all the effort and makes the journey more than worthwhile.</p>\n</blockquote>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://aperture-proxy.p3k.io/bbbacdf0a064621004f2ce9026a1202a5f3433e0/68747470733a2f2f6164616374696f2e636f6d2f696d616765732f70686f746f2d3135302e6a7067"
},
"post-type": "bookmark",
"_id": "3423683",
"_source": "2",
"_is_read": true
}
#IndieWebCamp Düsseldorf hack day “quick” addition:
New @TronLegacy inspired theme, using
+1 hyperlink on home page
+1 #CSS style rule
Thanks to #HTMLfirst, #CSSVariables, and @ColorsEffect!
https://twitter.com/ColorsEffect/status/1114584965218312194
#TRON #TRONLegacy #ENDOFLINE 🔵
{
"type": "entry",
"published": "2019-05-12 03:41-0700",
"url": "http://tantek.com/2019/132/t2/indiewebcamp-new-tronlegacy-theme",
"category": [
"IndieWebCamp",
"CSS",
"HTMLfirst",
"CSSVariables",
"TRON",
"TRONLegacy",
"ENDOFLINE"
],
"content": {
"text": "#IndieWebCamp D\u00fcsseldorf hack day \u201cquick\u201d addition:\nNew @TronLegacy inspired theme, using\n+1 hyperlink on home page\n+1 #CSS style rule\nThanks to #HTMLfirst, #CSSVariables, and @ColorsEffect!\n\nhttps://twitter.com/ColorsEffect/status/1114584965218312194\n#TRON #TRONLegacy #ENDOFLINE \ud83d\udd35",
"html": "#<span class=\"p-category\">IndieWebCamp</span> D\u00fcsseldorf hack day \u201cquick\u201d addition:<br />New <a class=\"h-cassis-username\" href=\"https://twitter.com/TronLegacy\">@TronLegacy</a> inspired theme, using<br />+1 hyperlink on home page<br />+1 #<span class=\"p-category\">CSS</span> style rule<br />Thanks to #<span class=\"p-category\">HTMLfirst</span>, #<span class=\"p-category\">CSSVariables</span>, and <a class=\"h-cassis-username\" href=\"https://twitter.com/ColorsEffect\">@ColorsEffect</a>!<br /><br /><a href=\"https://twitter.com/ColorsEffect/status/1114584965218312194\">https://twitter.com/ColorsEffect/status/1114584965218312194</a><br />#<span class=\"p-category\">TRON</span> #<span class=\"p-category\">TRONLegacy</span> #<span class=\"p-category\">ENDOFLINE</span> \ud83d\udd35"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "note",
"_id": "3422862",
"_source": "1",
"_is_read": true
}
#IndieWebCamp Düsseldorf hack day “quick” addition:
New @TronLegacy inspired theme, using
+1 hyperlink on home page
+1 #CSS style rule
Thanks to #HTMLfirst, #CSSVariables, and @ColorsEffect!
https://twitter.com/ColorsEffect/status/1114584965218312194
#TRON #TRONLegacy #ENDOFLINE 🔵
{
"type": "entry",
"published": "2019-05-12 03:41-0700",
"url": "http://tantek.com/2019/132/t2/indiewebcamp-",
"category": [
"IndieWebCamp",
"CSS",
"HTMLfirst",
"CSSVariables",
"TRON",
"TRONLegacy",
"ENDOFLINE"
],
"content": {
"text": "#IndieWebCamp D\u00fcsseldorf hack day \u201cquick\u201d addition:\nNew @TronLegacy inspired theme, using\n+1 hyperlink on home page\n+1 #CSS style rule\nThanks to #HTMLfirst, #CSSVariables, and @ColorsEffect!\n\nhttps://twitter.com/ColorsEffect/status/1114584965218312194\n#TRON #TRONLegacy #ENDOFLINE \ud83d\udd35",
"html": "#<span class=\"p-category\">IndieWebCamp</span> D\u00fcsseldorf hack day \u201cquick\u201d addition:<br />New <a class=\"h-cassis-username\" href=\"https://twitter.com/TronLegacy\">@TronLegacy</a> inspired theme, using<br />+1 hyperlink on home page<br />+1 #<span class=\"p-category\">CSS</span> style rule<br />Thanks to #<span class=\"p-category\">HTMLfirst</span>, #<span class=\"p-category\">CSSVariables</span>, and <a class=\"h-cassis-username\" href=\"https://twitter.com/ColorsEffect\">@ColorsEffect</a>!<br /><br /><a href=\"https://twitter.com/ColorsEffect/status/1114584965218312194\">https://twitter.com/ColorsEffect/status/1114584965218312194</a><br />#<span class=\"p-category\">TRON</span> #<span class=\"p-category\">TRONLegacy</span> #<span class=\"p-category\">ENDOFLINE</span> \ud83d\udd35"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "note",
"_id": "3421385",
"_source": "1",
"_is_read": true
}
#IndieWebCamp Düsseldorf hack day minor site improvements:
* better #webactions text symbols ♥♺↵ https://indieweb.org/webactions#emoji_text_labels
* better reply-context symbol ↳ https://indieweb.org/reply-context#Minimal_text_reply_contexts
and figured out flex>grid>flex CSS for table>tr>td for @aaronpk monthly archives.
{
"type": "entry",
"published": "2019-05-12 03:41-0700",
"url": "http://tantek.com/2019/132/t1/indiewebcamp-hack-day-minor-improvements",
"category": [
"IndieWebCamp",
"webactions"
],
"content": {
"text": "#IndieWebCamp D\u00fcsseldorf hack day minor site improvements:\n* better #webactions text symbols \u2665\u267a\u21b5 \u00a0https://indieweb.org/webactions#emoji_text_labels\n* better reply-context symbol \u21b3 https://indieweb.org/reply-context#Minimal_text_reply_contexts\n\nand figured out flex>grid>flex CSS for table>tr>td for @aaronpk monthly archives.",
"html": "#<span class=\"p-category\">IndieWebCamp</span> D\u00fcsseldorf hack day minor site improvements:<br />* better #<span class=\"p-category\">webactions</span> text symbols \u2665\u267a\u21b5 \u00a0<a href=\"https://indieweb.org/webactions#emoji_text_labels\">https://indieweb.org/webactions#emoji_text_labels</a><br />* better reply-context symbol \u21b3 <a href=\"https://indieweb.org/reply-context#Minimal_text_reply_contexts\">https://indieweb.org/reply-context#Minimal_text_reply_contexts</a><br /><br />and figured out flex>grid>flex CSS for table>tr>td for <a class=\"h-cassis-username\" href=\"https://twitter.com/aaronpk\">@aaronpk</a> monthly archives."
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "note",
"_id": "3418941",
"_source": "1",
"_is_read": true
}
Second #IndieWebCamp hack day project: how to quickly get started using an IndieWeb reader.
• start with a blank HTML file
• add a rel=me link to your GitHub profile, and make sure your GitHub profile links back
• add a couple `<link>` tags for indieauth.com
• sign in to https://aperture.p3k.io
• add the `<link>` tag it generates for you
• sign in to an IndieWeb reader!
More details at: https://indieweb.org/Microsub#Getting_Started
{
"type": "entry",
"published": "2019-05-12T13:55:47+02:00",
"url": "https://aaronparecki.com/2019/05/12/12/microsub",
"category": [
"IndieWebCamp",
"microsub",
"indiewebcamp",
"indieweb"
],
"content": {
"text": "Second #IndieWebCamp hack day project: how to quickly get started using an IndieWeb reader. \n\n\u2022 start with a blank HTML file \n\u2022 add a rel=me link to your GitHub profile, and make sure your GitHub profile links back \n\u2022 add a couple `<link>` tags for indieauth.com \n\u2022 sign in to https://aperture.p3k.io \n\u2022 add the `<link>` tag it generates for you \n\u2022 sign in to an IndieWeb reader! \n\nMore details at: https://indieweb.org/Microsub#Getting_Started",
"html": "Second <a href=\"https://aaronparecki.com/tag/indiewebcamp\">#<span class=\"p-category\">IndieWebCamp</span></a> hack day project: how to quickly get started using an IndieWeb reader. <br /><br />\u2022 start with a blank HTML file <br />\u2022 add a rel=me link to your GitHub profile, and make sure your GitHub profile links back <br />\u2022 add a couple `<link>` tags for indieauth.com <br />\u2022 sign in to <a href=\"https://aperture.p3k.io\"><span>https://</span>aperture.p3k.io</a> <br />\u2022 add the `<link>` tag it generates for you <br />\u2022 sign in to an IndieWeb reader! <br /><br />More details at: <a href=\"https://indieweb.org/Microsub#Getting_Started\"><span>https://</span>indieweb.org/Microsub#Getting_Started</a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "note",
"_id": "3418896",
"_source": "16",
"_is_read": true
}
First #IndieWebCamp hack day project complete! I'm finally starting to get an understanding of CSS Grid.
Thanks to help from @tantek I was able to fix the display of my monthly calendars at https://aaronparecki.com/2019/04 by switching from table display to flex>grid>flex with table>tr>td markup. Kept the table markup and was able to remove one level of nested divs inside too!
The <table> element is a flexbox, the <tr>s are a grid, and the <td>s inside are a flexbox. This lets the rows of the calendar vary in height, but forces the height of the cells of each row to be the same height. Finally the city names at the bottom are able to be "stuck" to the bottom of the cell.
{
"type": "entry",
"published": "2019-05-12T12:53:37+02:00",
"url": "https://aaronparecki.com/2019/05/12/11/indiewebcamp-table",
"category": [
"IndieWebCamp",
"indiewebcamp",
"table",
"css",
"cssgrid"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/0a6109da96fb2ad0c5ecb938b1ec6c11cddcb485ba3f948c59488f140198d27e.png"
],
"content": {
"text": "First #IndieWebCamp hack day project complete! I'm finally starting to get an understanding of CSS Grid. \n\nThanks to help from @tantek I was able to fix the display of my monthly calendars at https://aaronparecki.com/2019/04 by switching from table display to flex>grid>flex with table>tr>td markup. Kept the table markup and was able to remove one level of nested divs inside too! \n\nThe <table> element is a flexbox, the <tr>s are a grid, and the <td>s inside are a flexbox. This lets the rows of the calendar vary in height, but forces the height of the cells of each row to be the same height. Finally the city names at the bottom are able to be \"stuck\" to the bottom of the cell.",
"html": "First <a href=\"https://aaronparecki.com/tag/indiewebcamp\">#<span class=\"p-category\">IndieWebCamp</span></a> hack day project complete! I'm finally starting to get an understanding of CSS Grid. <br /><br />Thanks to help from <a href=\"http://tantek.com/\">@tantek</a> I was able to fix the display of my monthly calendars at <a href=\"https://aaronparecki.com/2019/04\"><span>https://</span>aaronparecki.com/2019/04</a> by switching from table display to flex>grid>flex with table>tr>td markup. Kept the table markup and was able to remove one level of nested divs inside too! <br /><br />The <table> element is a flexbox, the <tr>s are a grid, and the <td>s inside are a flexbox. This lets the rows of the calendar vary in height, but forces the height of the cells of each row to be the same height. Finally the city names at the bottom are able to be \"stuck\" to the bottom of the cell."
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "3418476",
"_source": "16",
"_is_read": true
}
Getting my podcast listening history out of Overcast and into this site has been going swimmingly since I started a couple of months ago. I had to do everything manually, but that was OK as it gave me the chance to check that it was indeed all going swimmingly. While my friends have been sharing all their great ideas for the hack day at this weekend's IndieWebCamp in Düsseldorf, earlier this week I decided that the time was right to start automating my Listens posts. This was prompted by the podcast Automators #22: Text Expansion, co-hosted by one of those friends.
More this way ...
{
"type": "entry",
"published": "2019-05-12T11:45:00+02:00",
"summary": "Getting my podcast listening history out of Overcast and into this site has been going swimmingly since I started a couple of months ago. I had to do everything manually, but that was OK as it gave me the chance to check that it was indeed all going swimmingly. While my friends have been sharing all their great ideas for the hack day at this weekend's IndieWebCamp in D\u00fcsseldorf, earlier this week I decided that the time was right to start automating my Listens posts. This was prompted by the podcast Automators #22: Text Expansion, co-hosted by one of those friends.\nMore this way ...",
"url": "https://www.jeremycherfas.net/blog/automating-listen-posts",
"name": "Automating Listen posts",
"content": {
"text": "Getting my podcast listening history out of Overcast and into this site has been going swimmingly since I started a couple of months ago. I had to do everything manually, but that was OK as it gave me the chance to check that it was indeed all going swimmingly. While my friends have been sharing all their great ideas for the hack day at this weekend's IndieWebCamp in D\u00fcsseldorf, earlier this week I decided that the time was right to start automating my Listens posts. This was prompted by the podcast Automators #22: Text Expansion, co-hosted by one of those friends.\n\n More this way ...",
"html": "<p>Getting my podcast listening history out of Overcast and into this site has been going swimmingly since I started a couple of months ago. I had to do everything manually, but that was OK as it gave me the chance to check that it was indeed all going swimmingly. While my friends have been sharing all their great ideas for the hack day at this weekend's <a href=\"https://indieweb.org/2019/D%C3%BCsseldorf/Schedule#Sunday\">IndieWebCamp in D\u00fcsseldorf</a>, earlier this week I decided that the time was right to start automating my Listens posts. This was prompted by the podcast <a href=\"https://www.relay.fm/automators/22\">Automators #22: Text Expansion</a>, co-hosted by one of those friends.</p>\n\n <p><a href=\"https://www.jeremycherfas.net/blog/automating-listen-posts\">More this way ...</a></p>"
},
"post-type": "article",
"_id": "3418105",
"_source": "202",
"_is_read": true
}