{
"type": "entry",
"published": "2018-08-11T01:13:28+00:00",
"url": "http://stream.boffosocko.com/2018/hankchizljaw-theres-also-withknown-wordpress-which-also-have-webmention-support",
"category": [
"IndieWeb"
],
"syndication": [
"https://twitter.com/ChrisAldrich/status/1028086980058533888"
],
"in-reply-to": [
"https://twitter.com/hankchizljaw/status/1027257509202026496"
],
"content": {
"text": "@hankchizljaw There's also @withknown & @WordPress which also have webmention support for site-to-site communication in addition to all the other #IndieWeb tech @keithjgrant mentioned. Next we just need the microsub solution widely distributed https://aaronparecki.com/2018/03/12/17/building-an-indieweb-reader",
"html": "<a href=\"https://twitter.com/hankchizljaw\">@hankchizljaw</a> There's also <a href=\"https://twitter.com/withknown\">@withknown</a> & <a href=\"https://twitter.com/WordPress\">@WordPress</a> which also have webmention support for site-to-site communication in addition to all the other <a href=\"http://stream.boffosocko.com/tag/IndieWeb\" class=\"p-category\">#IndieWeb</a> tech <a href=\"https://twitter.com/keithjgrant\">@keithjgrant</a> mentioned. Next we just need the microsub solution widely distributed <a href=\"https://aaronparecki.com/2018/03/12/17/building-an-indieweb-reader\">https://aaronparecki.com/2018/03/12/17/building-an-indieweb-reader</a><br />"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "https://aperture-proxy.p3k.io/4a01a54aa55b69dd1b2633c835610491c575e2e2/687474703a2f2f73747265616d2e626f66666f736f636b6f2e636f6d2f66696c652f36303034323762383166373738356537303465616466653531316139323730662f7468756d622e6a7067"
},
"post-type": "reply",
"_id": "763835",
"_source": "192",
"_is_read": true
}
@DavidWolfpaw@curtismchale@EricMann Have you followed some of the recent discussion around rel="alternate" to get around the issue of proper use of microformats in WordPress core and/or themes? This could really accelerate the uptake for a great many.
{
"type": "entry",
"published": "2018-08-11T00:59:28+00:00",
"url": "http://stream.boffosocko.com/2018/davidwolfpaw-curtismchale-ericmann-have-you-followed-some-of-the-recent",
"syndication": [
"https://twitter.com/ChrisAldrich/status/1028083452304875520"
],
"in-reply-to": [
"https://twitter.com/DavidWolfpaw/status/1027207502344146944"
],
"content": {
"text": "@DavidWolfpaw @curtismchale @EricMann Have you followed some of the recent discussion around rel=\"alternate\" to get around the issue of proper use of microformats in WordPress core and/or themes? This could really accelerate the uptake for a great many.",
"html": "<a href=\"https://twitter.com/DavidWolfpaw\">@DavidWolfpaw</a> <a href=\"https://twitter.com/curtismchale\">@curtismchale</a> <a href=\"https://twitter.com/EricMann\">@EricMann</a> Have you followed some of the recent discussion around rel=\"alternate\" to get around the issue of proper use of microformats in WordPress core and/or themes? This could really accelerate the uptake for a great many."
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "https://aperture-proxy.p3k.io/4a01a54aa55b69dd1b2633c835610491c575e2e2/687474703a2f2f73747265616d2e626f66666f736f636b6f2e636f6d2f66696c652f36303034323762383166373738356537303465616466653531316139323730662f7468756d622e6a7067"
},
"post-type": "reply",
"_id": "763836",
"_source": "192",
"_is_read": true
}
{
"type": "entry",
"published": "2018-08-09T22:31:52+01:00",
"url": "https://ascraeus.org/micro/1533850312/",
"content": {
"text": "Twitter has decided its a safe space for bigotry and hatred..\n\nThis doesn\u2019t mean anyone else has to use it, so:\n\nI deleted all my tweets & unfollowed all\nI removed twitter syndication from my micropub endpoint, nanopub\n\nI\u2019ll be working harder at writing here.",
"html": "<p>Twitter has decided <a href=\"https://twitter.com/TwitterSafety/status/1026979628475248640\">its a safe space for bigotry and hatred.</a>.</p>\n\n<p>This doesn\u2019t mean anyone else has to use it, so:</p>\n\n<ul><li>I deleted all my tweets & unfollowed all</li>\n<li>I removed twitter syndication from my <a href=\"https://github.com/dg01d/nanopub\">micropub endpoint, nanopub</a>\n</li>\n<li>I\u2019ll be working harder at writing here.</li>\n</ul>"
},
"author": {
"type": "card",
"name": "Daniel Goldsmith",
"url": "https://ascraeus.org/",
"photo": "https://aperture-proxy.p3k.io/9fde252f71ab2156be6041f7c744976dc51bfaed/68747470733a2f2f61736372616575732e6f72672f70696374757265732f6d617276696e2e706e67"
},
"post-type": "note",
"_id": "757717",
"_source": "195",
"_is_read": true
}
{
"type": "entry",
"published": "2018-08-09T17:41:41-04:00",
"summary": "@danielpunkass @manton It\u2019s been a long-time coming and we\u2019re still experimenting with the post list query for Micropub, but it\u2019d be great if you guys could take a glance at the current discussions and let us know if there is anything missing.",
"url": "https://eddiehinkle.com/2018/08/09/18/note/",
"category": [
"indieweb",
"micropub"
],
"content": {
"text": "@danielpunkass @manton It\u2019s been a long-time coming and we\u2019re still experimenting with the post list query for Micropub, but it\u2019d be great if you guys could take a glance at the current discussions and let us know if there is anything missing.",
"html": "<p><a href=\"https://micro.blog/danielpunkass\">@danielpunkass</a> <a href=\"https://micro.blog/manton\">@manton</a> It\u2019s been a long-time coming and we\u2019re still experimenting with the post list query for Micropub, but it\u2019d be great if you guys could <a href=\"https://github.com/indieweb/micropub-extensions/issues/4\">take a glance at the current discussions</a> and let us know if there is anything missing.</p>"
},
"author": {
"type": "card",
"name": "Eddie Hinkle",
"url": "https://eddiehinkle.com/",
"photo": "https://aperture-proxy.p3k.io/cc9591b69c2c835fa2c6e23745b224db4b4b431f/68747470733a2f2f656464696568696e6b6c652e636f6d2f696d616765732f70726f66696c652e6a7067"
},
"post-type": "note",
"_id": "757491",
"_source": "226",
"_is_read": true
}
{
"type": "entry",
"published": "2018-08-08T22:02:22+00:00",
"url": "https://cleverdevil.io/2018/that-said-there-has-never-been-a",
"category": [
"IndieWeb"
],
"syndication": [
"https://twitter.com/cleverdevil/status/1027314107295383556"
],
"content": {
"text": "That said, there has never been a better time to join the #IndieWeb and Micro.blog has made it easier than ever before. I can\u2019t recommend it enough.",
"html": "That said, there has never been a better time to join the <a href=\"https://cleverdevil.io/tag/IndieWeb\" class=\"p-category\">#IndieWeb</a> and Micro.blog has made it easier than ever before. I can\u2019t recommend it enough."
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://aperture-proxy.p3k.io/77e5d6e5871324c43aebf2e3e7a5553e14578f66/68747470733a2f2f636c65766572646576696c2e696f2f66696c652f66646263373639366135663733383634656131316138323863383631653133382f7468756d622e6a7067"
},
"post-type": "note",
"_id": "750799",
"_source": "71",
"_is_read": true
}
The #indieweb recognizes that right now it’s still at that stage but is constantly working towards easier and more access https://indieweb.org/generations
{
"type": "entry",
"published": "2018-08-08T13:02:14-04:00",
"url": "https://miklb.com/blog/2018/08/08/4109/",
"syndication": [
"https://twitter.com/miklb/status/1027238585441890305"
],
"in-reply-to": [
"https://twitter.com/ChrisHardie/status/1027237085525237765"
],
"content": {
"text": "The #indieweb recognizes that right now it\u2019s still at that stage but is constantly working towards easier and more access https://indieweb.org/generations",
"html": "<p>The #indieweb recognizes that right now it\u2019s still at that stage but is constantly working towards easier and more access https://indieweb.org/generations\n</p>"
},
"author": {
"type": "card",
"name": "Michael Bishop",
"url": "https://miklb.com",
"photo": "https://aperture-proxy.p3k.io/d23fd4e96c85a909d2c1c121d7b72ebe2b369d8b/68747470733a2f2f7062732e7477696d672e636f6d2f70726f66696c655f696d616765732f3739393832313734393338363837343838302f585f7676374d6e4b2e6a7067"
},
"post-type": "reply",
"refs": {
"https://twitter.com/ChrisHardie/status/1027237085525237765": {
"type": "entry",
"url": "https://twitter.com/ChrisHardie/status/1027237085525237765",
"content": {
"text": "Appreciate @jeckman noting that nostalgic calls to \u00e2\u0080\u009creturn to the open web\u00e2\u0080\u009d are sometimes referencing an experience that wasn\u00e2\u0080\u0099t inclusive or diverse. Even movements like @indiewebcamp @decentralweb may appeal mostly to technical tinkerers. #wcpub\u2014 Chris Hardie (@ChrisHardie) August 8, 2018"
},
"post-type": "note"
}
},
"_id": "748722",
"_source": "42",
"_is_read": true
}
{
"type": "entry",
"published": "2018-08-07T23:53:09-04:00",
"url": "https://david.shanske.com/2018/08/07/an-indieweb-podcast-episode-9-30-days-of-indieweb/",
"audio": [
"https://aperture-proxy.p3k.io/6784e7f0eda4b18348ec6f138762dff996e77d71/68747470733a2f2f64617669642e7368616e736b652e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031382f30382f496e646965776562392e6d7033"
],
"syndication": [
"https://twitter.com/dshanske/status/1027040005573763072"
],
"name": "An Indieweb Podcast - Episode 9: 30 Days of Indieweb",
"content": {
"text": "I\u2019m going away for a month, and called Chris Aldrich to talk about things I\u2019m interested in, and what I might work on for the next few weeks as I\u2019m in a hotel room."
},
"author": {
"type": "card",
"name": "David Shanske",
"url": "https://david.shanske.com/",
"photo": "https://david.shanske.com/wp-content/uploads/avatar-privacy/cache/gravatar/2/c/2cb1f8afd9c8d3b646b4071c5ed887c970d81d625eeed87e447706940e2c403d-125.png"
},
"post-type": "audio",
"_id": "746510",
"_source": "5",
"_is_read": true
}
We fundamentally disagree about social media being “the internet.” I didn’t say he will have the same voice or was just trying to be social. I was responding to your context of the subset “social platforms.” I don’t think anyone is guaranteed an audience (or the same audience size), especially when relying on other people’s “free” services.
To be clear, I take issue with companies consulting the government about removing content. I’m also no fan of Facebook, which is one reason I promote the indieweb. In the context of the actual internet, I don’t think it’s unreasonable to say “vaporizing” was a bit hyperbolic. I guess you disagree based on the SMH. Not that your disagreement is relevant. ;]
{
"type": "entry",
"published": "2018-08-07 13:51-0700",
"summary": "We fundamentally disagree about social media being \u201cthe internet.\u201d",
"url": "https://gregorlove.com/2018/08/we-fundamentally-disagree-about-social/",
"syndication": [
"https://twitter.com/gRegorLove/status/1026935374382333952"
],
"in-reply-to": [
"https://twitter.com/FisherBurton/status/1026922952913084416"
],
"content": {
"text": "We fundamentally disagree about social media being \u201cthe internet.\u201d I didn\u2019t say he will have the same voice or was just trying to be social. I was responding to your context of the subset \u201csocial platforms.\u201d I don\u2019t think anyone is guaranteed an audience (or the same audience size), especially when relying on other people\u2019s \u201cfree\u201d services.\n\nTo be clear, I take issue with companies consulting the government about removing content. I\u2019m also no fan of Facebook, which is one reason I promote the indieweb. In the context of the actual internet, I don\u2019t think it\u2019s unreasonable to say \u201cvaporizing\u201d was a bit hyperbolic. I guess you disagree based on the SMH. Not that your disagreement is relevant. ;]",
"html": "<p>We fundamentally disagree about social media being \u201cthe internet.\u201d I didn\u2019t say he will have the same voice or was just trying to be social. I was responding to your context of the subset \u201csocial platforms.\u201d I don\u2019t think anyone is guaranteed an audience (or the same audience size), especially when relying on other people\u2019s \u201cfree\u201d services.</p>\n\n<p>To be clear, I take issue with companies consulting the government about removing content. I\u2019m also no fan of Facebook, which is one reason I promote the indieweb. In the context of the actual internet, I don\u2019t think it\u2019s unreasonable to say \u201cvaporizing\u201d was a bit hyperbolic. I guess you disagree based on the SMH. Not that your disagreement is relevant. ;]</p>"
},
"author": {
"type": "card",
"name": "gRegor Morrill",
"url": "https://gregorlove.com/",
"photo": "https://aperture-proxy.p3k.io/929c8777d059069a2a16a064d96f4c29b65548f8/68747470733a2f2f677265676f726c6f76652e636f6d2f736974652f6173736574732f66696c65732f333437332f70726f66696c652d323031362d6d65642e6a7067"
},
"post-type": "reply",
"refs": {
"https://twitter.com/FisherBurton/status/1026922952913084416": {
"type": "entry",
"url": "https://twitter.com/FisherBurton/status/1026922952913084416",
"content": {
"text": "Your disagreeing is irrelevant, and you're wrong about monopolies, too, as they make up over 95% of the world's social media. So, it's na\u00efve to think he will have near the same voice, he was just trying to be social, or that Glenn was being literal when he said \"vaporized\". SMH"
},
"author": {
"type": "card",
"name": "Burton Fisher",
"url": "http://reelreverie.org",
"photo": "https://gregorlove.com/site/assets/files/3540/98167f811d46bc56253c3dcdd784976e0033fef167f7cede7c668d72a0439b66.jpg"
},
"post-type": "note"
}
},
"_id": "744815",
"_source": "95",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Peter Molnar",
"url": "https://petermolnar.net",
"photo": null
},
"url": "https://petermolnar.net/running-a-static-indieweb-site/",
"published": "2018-08-07T18:33:00+01:00",
"content": {
"html": "<p>In 2016, I decided to leave WordPress behind. Some of their philosophy, mostly the \u201cdecisions, not options\u201d started to leave the trail I thought to be the right one, but on it\u2019s own, that wouldn\u2019t have been enough: I had a painful experience with media handling hooks, which were respected on the frontend, and not on the backend, at which point, after staring at the backend code for days, I made up my mind: let\u2019s write a static generator.</p>\n<p>This was strictly scratching my own itches<a href=\"https://petermolnar.net/#fn1\">1</a>: I wanted to learn Python, but keep using tools, like exiftool and Pandoc, so instead of getting an off the shelf solution, I did actually write my own \u201cstatic generator\u201d - in the end, it\u2019s a glorified script.</p>\n<p>Since the initial idea, I rewrote that script nearly 4 times, mainly to try out language features, async workers for processing, etc, and I\u2019ve learnt a few things in the process. It is called NASG - short for \u2018not another static generator\u2019, and it lives on Github<a href=\"https://petermolnar.net/#fn2\">2</a>, if anyone wants to see it.</p>\n<p>Here are my learnings.</p>\n<h2>Learning to embrace \u201cbuying in\u201d</h2>\n<h3>webmentions</h3>\n<p>Other dynamic bits turned out to be more tricky, especially receiving webmentions<a href=\"https://petermolnar.net/#fn3\">3</a>. I already mentioned I kept running a small Python daemon to handle certain requests; one of these routings was to handle incoming webmentions. It merely put the requests in a queue - apart from some initial sanity checks on the POST request itself -, but it still needed a dynamic part.</p>\n<p>This approach also required parsing the source websites on build. After countless iterations - changing parsing libraries, first within Python, then using XRay<a href=\"https://petermolnar.net/#fn4\">4</a> - I had a completely unrelated talk with a fellow sysadmin on how bad we are when in comes to \u201cbuying into\u201d a solution. Basically if you feel like you can do it yourself it\u2019s rather hard for us to pay someone - instead we tend to learn it and just do it, let it be piping in the house of sensor automation.</p>\n<p>None of these - webmentions, syndication, websub - are vital for my site. Do I really need to handle all of them myself? If I make it sure I can replace them, if the service goes out of business, why not use them?</p>\n<p>With that in mind, I decided to use webmention.io<a href=\"https://petermolnar.net/#fn5\">5</a> as my incoming webmention (__it even gave pingback support back_) handler. I ask the service for any new comments on build, save them as YAML + Markdown, so the next time I only need to parse the new ones.</p>\n<h3>websub</h3>\n<p>In case of websub<a href=\"https://petermolnar.net/#fn6\">6</a> superfeedr<a href=\"https://petermolnar.net/#fn7\">7</a> does the job quite well.</p>\n<h3>syndication</h3>\n<p>For syndication, I decided to go with IFTTT<a href=\"https://petermolnar.net/#fn8\">8</a> brid.gy publish<a href=\"https://petermolnar.net/#fn9\">9</a>. IFTTT reads my RSS feed(s) and either creates link-only posts on WordPress<a href=\"https://petermolnar.net/#fn10\">10</a> and Tumblr<a href=\"https://petermolnar.net/#fn11\">11</a>, or sends webmentions to brid.gy to publish to links Twitter<a href=\"https://petermolnar.net/#fn12\">12</a> and complete photos to Flickr<a href=\"https://petermolnar.net/#fn13\">13</a></p>\n<p>I ended up outsourcing my newsletter as well. Years ago I sent a mail around to friends to ask them if they want updates from my site in mail; a few of them did. Unfortunately Google started putting these in either Spam or Promitions, so it never reached people; the very same happened with Blogtrottr<a href=\"https://petermolnar.net/#fn14\">14</a> mails. To overcome this, I set up a Google Group, where only my Gmail account can post, but anyone can subscribe, and another IFTTT hook<a href=\"https://petermolnar.net/#fn15\">15</a> that sends mails to that group with the contents of anything new in my RSS feed.</p>\n<h2>Search: keep it server side</h2>\n<p>I spent days looking for a way to integrate JavaScript based search (lunr.js or elasticlunr.js) in my site. I went as far as embedding JS in Python to pre-populate a search index - but to my horror, that index was 7.8MB at it\u2019s smallest size.</p>\n<p>It turns out that the simplest solution is what I already had: SQLite, but it needed some alterations.</p>\n<p>The initial solution required a small Python daemon to run in the background and spit extremely simple results back for a query. Besides the trouble of running another daemon, it needed the copy of the nasg git tree for the templates, a virtualenv for sanic (the HTTP server engine I used), and Jinja2 (templating), and a few other bits.</p>\n<p>However, there is a simpler, yet uglier solution. Nearly every webserver out in the wild has PHP support these days, including mine, because I\u2019m still running WordPress for friends and family.</p>\n<p>To overcome the problem, I made a Jinja2 template, that creates a PHP file, which read-only reads the SQLite file I pre-populate with the search corpus during build. Unfortunately it\u2019s PHP 7.0, so instead of the FTS5 engine, I had to step back and use the FTS4 - still good enough. Apart from a plain, dead simple PHP engine that has SQLite support, there is no need for anything else, and because the SQLite file is read-only, there\u2019s no lock-collision issue either.</p>\n<h2>About those markup languages\u2026</h2>\n<h3>YAML can get messy</h3>\n<p>I went with the most common post format for static sites: YAML metadata + Markdown. Soon I started seeing weird errors with \u2019 and \" characters, so I dug into the YAML specification - don\u2019t do it, it\u2019s a hell dimension. There is a subset of YAML, title StrictYAML<a href=\"https://petermolnar.net/#fn16\">16</a> to address some of these problems, but the short summary is: YAML or not, try to use as simple markup as possible, and be consistent.</p>\n<pre><code>title: post title\nsummary: single-line long summary\npublished: 2018-08-07T10:00:00+00:00\ntags:\n- indieweb\nsyndicate:\n- https://something.com/xyz</code></pre>\n<p>If one decides to use lists by newline and <code>-</code>, stick to that. No inline <code>[]</code> lists, no spaced <code>-</code> prefix; be consistent.</p>\n<p>Same applies for dates and times. While I thought the \u201ccorrect\u201d date format is ISO 8601, that turned out to be a subset of it, named RFC 3339<a href=\"https://petermolnar.net/#fn17\">17</a>. Unfortunately I started using <code>+0000</code> format instead of <code>+00:00</code> from the beginning, so I\u2019ll stick to that.</p>\n<h3>Markdown can also get messy</h3>\n<p>There are valid arguments against Markdown<a href=\"https://petermolnar.net/#fn18\">18</a>, so before choosing that as my main format, I tested as many as I could<a href=\"https://petermolnar.net/#fn19\">19</a> - in the end, I decided to stick to an extended version of Markdown, because that is still the closest-to-plain-text for my eyes. I also found Typora, which is a very nice Markdown WYSIWYG editor<a href=\"https://petermolnar.net/#fn20\">20</a>. <em>Yes, unfortunately, it\u2019s electron based. I\u2019ll swallow this frog for now.</em></p>\n<p>The \u201cextensions\u201d I use with Markdown:</p>\n<ul><li>footnotes - <em>my links are foonotes, so they can be printed</em></li>\n<li>pipe_tables</li>\n<li>strikeout - <em><del>cause it\u2019s useful for snarky lines</del></em></li>\n<li>raw_html</li>\n<li>definition_lists - <em>they are useful, and they were also present on the very first website ever</em></li>\n<li>backtick_code_blocks - <em>``` type code blocks</em></li>\n<li>fenced_code_attributes - <em>language tag for code blocks</em></li>\n<li>lists_without_preceding_blankline</li>\n<li>autolink_bare_uris - <em>otherwise my URLs in the footnotes are mere text</em></li>\n</ul><p>I\u2019ve tried using the Python Markdown module; the end result was utterly broken HTML when I had code blocks with regexes that collided with the regexes Python Markdown was using. I tried the Python markdown2 module - worked better, didn\u2019t support language tag for code blocks.</p>\n<p>In the end, I went back to where I started: Pandoc<a href=\"https://petermolnar.net/#fn21\">21</a>. The regeneration of the whole site is ~60 seconds instead of ~20s with markdown2, but it doesn\u2019t really matter - it\u2019s still fast.</p>\n<pre><code>pandoc --to=html5 --quiet --no-highlight --from=markdown+footnotes+pipe_tables+strikeout+raw_html+definition_lists+backtick_code_blocks+fenced_code_attributes+lists_without_preceding_blankline+autolink_bare_uris</code></pre>\n<p>The take away is the same with YAML: do your own ruleset and stick to it; don\u2019t mix other flavours in.</p>\n<h3>Syntax highlighting is really messy</h3>\n<p>Pandoc has a built-in syntax highlighting method; so does the Python Markdown module (via Codehilite).</p>\n<p>I have some entries that can break both, and break them bad.</p>\n<p>Besides broken, Codehilite is VERBOSE. At a certain point, it managed to add 60KB of HTML markup to my text.</p>\n<p>A long while ago I tried to completely eliminate JavaScript from my site, because I\u2019m tired of the current trends. However, JS has it\u2019s place, especially as a progessive enhancement<a href=\"https://petermolnar.net/#fn22\">22</a>.</p>\n<p>That in mind, I went back to the solution that worked the best so far: prism.js<a href=\"https://petermolnar.net/#fn23\">23</a> The difference this time I that I only add it when there is a code block with language property, and I inline the whole JS block in the code - the \u2018developer\u2019 version, supporting a lot of languages, weighs around 58KB, which is a lot, but it works very nice, and it very fast.</p>\n<p>No JS only means no syntax highlight, but at least my HTML code is readable, unlike with CodeHilite.</p>\n<h2>Summary</h2>\n<p>Static sites come with compromises when it comes to interactions, let that be webmentions, search, pubsub. They need either external services, or some simple, dynamic parts.</p>\n<p>If you do go with dynamic, try to keep it as simple as possible. If the webserver has PHP support avoid adding a Python daemon and use that PHP instead.</p>\n<p>There are very good, completely free services out there, run by <del>mad scientists</del> enthusiasts, like webmention.io and brid.gy. It\u2019s perfectly fine to use them.</p>\n<p>Keep your markup consistent and don\u2019t deviate from the feature set you really need.</p>\n<p>JavaScript has it\u2019s place, and prism.js is potentially the nicest syntax highlighter currenctly available for the web.</p>\n\n\n<ol><li><p><a href=\"https://indieweb.org/scratch_your_own_itch\">https://indieweb.org/scratch_your_own_itch</a><a href=\"https://petermolnar.net/#fnref1\">\u21a9</a></p></li>\n<li><p><a href=\"https://github.com/petermolnar/nasg/\">https://github.com/petermolnar/nasg/</a><a href=\"https://petermolnar.net/#fnref2\">\u21a9</a></p></li>\n<li><p><a href=\"http://indieweb.org/webmention\">http://indieweb.org/webmention</a><a href=\"https://petermolnar.net/#fnref3\">\u21a9</a></p></li>\n<li><p><a href=\"https://github.com/aaronpk/xray\">https://github.com/aaronpk/xray</a><a href=\"https://petermolnar.net/#fnref4\">\u21a9</a></p></li>\n<li><p><a href=\"https://webmention.io/\">https://webmention.io/</a><a href=\"https://petermolnar.net/#fnref5\">\u21a9</a></p></li>\n<li><p><a href=\"https://indieweb.org/websub\">https://indieweb.org/websub</a><a href=\"https://petermolnar.net/#fnref6\">\u21a9</a></p></li>\n<li><p><a href=\"https://superfeedr.com/\">https://superfeedr.com/</a><a href=\"https://petermolnar.net/#fnref7\">\u21a9</a></p></li>\n<li><p><a href=\"http://ifttt.com/\">http://ifttt.com/</a><a href=\"https://petermolnar.net/#fnref8\">\u21a9</a></p></li>\n<li><p><a href=\"https://brid.gy/about#publishing\">https://brid.gy/about#publishing</a><a href=\"https://petermolnar.net/#fnref9\">\u21a9</a></p></li>\n<li><p><a href=\"https://ifttt.com/applets/83096071d-syndicate-to-wordpress-com\">https://ifttt.com/applets/83096071d-syndicate-to-wordpress-com</a><a href=\"https://petermolnar.net/#fnref10\">\u21a9</a></p></li>\n<li><p><a href=\"https://ifttt.com/applets/83095945d-syndicate-to-tumblr\">https://ifttt.com/applets/83095945d-syndicate-to-tumblr</a><a href=\"https://petermolnar.net/#fnref11\">\u21a9</a></p></li>\n<li><p><a href=\"https://ifttt.com/applets/83095698d-syndicate-to-brid-gy-twitter-publish\">https://ifttt.com/applets/83095698d-syndicate-to-brid-gy-twitter-publish</a><a href=\"https://petermolnar.net/#fnref12\">\u21a9</a></p></li>\n<li><p><a href=\"https://ifttt.com/applets/83095735d-syndicate-to-brid-gy-publish-flickr\">https://ifttt.com/applets/83095735d-syndicate-to-brid-gy-publish-flickr</a><a href=\"https://petermolnar.net/#fnref13\">\u21a9</a></p></li>\n<li><p><a href=\"https://blogtrottr.com/\">https://blogtrottr.com/</a><a href=\"https://petermolnar.net/#fnref14\">\u21a9</a></p></li>\n<li><p><a href=\"https://ifttt.com/applets/83095496d-syndicate-to-petermolnarnet-googlegroups-com\">https://ifttt.com/applets/83095496d-syndicate-to-petermolnarnet-googlegroups-com</a><a href=\"https://petermolnar.net/#fnref15\">\u21a9</a></p></li>\n<li><p><a href=\"http://hitchdev.com/strictyaml/features-removed/\">http://hitchdev.com/strictyaml/features-removed/</a><a href=\"https://petermolnar.net/#fnref16\">\u21a9</a></p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/RFC_3339\">https://en.wikipedia.org/wiki/RFC_3339</a><a href=\"https://petermolnar.net/#fnref17\">\u21a9</a></p></li>\n<li><p><a href=\"https://indieweb.org/markdown#Criticism\">https://indieweb.org/markdown#Criticism</a><a href=\"https://petermolnar.net/#fnref18\">\u21a9</a></p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/List_of_lightweight_markup_languages\">https://en.wikipedia.org/wiki/List_of_lightweight_markup_languages</a><a href=\"https://petermolnar.net/#fnref19\">\u21a9</a></p></li>\n<li><p><a href=\"http://typora.io/\">http://typora.io/</a><a href=\"https://petermolnar.net/#fnref20\">\u21a9</a></p></li>\n<li><p><a href=\"http://pandoc.org/MANUAL.html#pandocs-markdown\">http://pandoc.org/MANUAL.html#pandocs-markdown</a><a href=\"https://petermolnar.net/#fnref21\">\u21a9</a></p></li>\n<li><p><a href=\"https://en.wikipedia.org/wiki/Progressive_enhancement\">https://en.wikipedia.org/wiki/Progressive_enhancement</a><a href=\"https://petermolnar.net/#fnref22\">\u21a9</a></p></li>\n<li><p><a href=\"https://prismjs.com/\">https://prismjs.com/</a><a href=\"https://petermolnar.net/#fnref23\">\u21a9</a></p></li>\n</ol>",
"text": "In 2016, I decided to leave WordPress behind. Some of their philosophy, mostly the \u201cdecisions, not options\u201d started to leave the trail I thought to be the right one, but on it\u2019s own, that wouldn\u2019t have been enough: I had a painful experience with media handling hooks, which were respected on the frontend, and not on the backend, at which point, after staring at the backend code for days, I made up my mind: let\u2019s write a static generator.\nThis was strictly scratching my own itches1: I wanted to learn Python, but keep using tools, like exiftool and Pandoc, so instead of getting an off the shelf solution, I did actually write my own \u201cstatic generator\u201d - in the end, it\u2019s a glorified script.\nSince the initial idea, I rewrote that script nearly 4 times, mainly to try out language features, async workers for processing, etc, and I\u2019ve learnt a few things in the process. It is called NASG - short for \u2018not another static generator\u2019, and it lives on Github2, if anyone wants to see it.\nHere are my learnings.\nLearning to embrace \u201cbuying in\u201d\nwebmentions\nOther dynamic bits turned out to be more tricky, especially receiving webmentions3. I already mentioned I kept running a small Python daemon to handle certain requests; one of these routings was to handle incoming webmentions. It merely put the requests in a queue - apart from some initial sanity checks on the POST request itself -, but it still needed a dynamic part.\nThis approach also required parsing the source websites on build. After countless iterations - changing parsing libraries, first within Python, then using XRay4 - I had a completely unrelated talk with a fellow sysadmin on how bad we are when in comes to \u201cbuying into\u201d a solution. Basically if you feel like you can do it yourself it\u2019s rather hard for us to pay someone - instead we tend to learn it and just do it, let it be piping in the house of sensor automation.\nNone of these - webmentions, syndication, websub - are vital for my site. Do I really need to handle all of them myself? If I make it sure I can replace them, if the service goes out of business, why not use them?\nWith that in mind, I decided to use webmention.io5 as my incoming webmention (__it even gave pingback support back_) handler. I ask the service for any new comments on build, save them as YAML + Markdown, so the next time I only need to parse the new ones.\nwebsub\nIn case of websub6 superfeedr7 does the job quite well.\nsyndication\nFor syndication, I decided to go with IFTTT8 brid.gy publish9. IFTTT reads my RSS feed(s) and either creates link-only posts on WordPress10 and Tumblr11, or sends webmentions to brid.gy to publish to links Twitter12 and complete photos to Flickr13\nI ended up outsourcing my newsletter as well. Years ago I sent a mail around to friends to ask them if they want updates from my site in mail; a few of them did. Unfortunately Google started putting these in either Spam or Promitions, so it never reached people; the very same happened with Blogtrottr14 mails. To overcome this, I set up a Google Group, where only my Gmail account can post, but anyone can subscribe, and another IFTTT hook15 that sends mails to that group with the contents of anything new in my RSS feed.\nSearch: keep it server side\nI spent days looking for a way to integrate JavaScript based search (lunr.js or elasticlunr.js) in my site. I went as far as embedding JS in Python to pre-populate a search index - but to my horror, that index was 7.8MB at it\u2019s smallest size.\nIt turns out that the simplest solution is what I already had: SQLite, but it needed some alterations.\nThe initial solution required a small Python daemon to run in the background and spit extremely simple results back for a query. Besides the trouble of running another daemon, it needed the copy of the nasg git tree for the templates, a virtualenv for sanic (the HTTP server engine I used), and Jinja2 (templating), and a few other bits.\nHowever, there is a simpler, yet uglier solution. Nearly every webserver out in the wild has PHP support these days, including mine, because I\u2019m still running WordPress for friends and family.\nTo overcome the problem, I made a Jinja2 template, that creates a PHP file, which read-only reads the SQLite file I pre-populate with the search corpus during build. Unfortunately it\u2019s PHP 7.0, so instead of the FTS5 engine, I had to step back and use the FTS4 - still good enough. Apart from a plain, dead simple PHP engine that has SQLite support, there is no need for anything else, and because the SQLite file is read-only, there\u2019s no lock-collision issue either.\nAbout those markup languages\u2026\nYAML can get messy\nI went with the most common post format for static sites: YAML metadata + Markdown. Soon I started seeing weird errors with \u2019 and \" characters, so I dug into the YAML specification - don\u2019t do it, it\u2019s a hell dimension. There is a subset of YAML, title StrictYAML16 to address some of these problems, but the short summary is: YAML or not, try to use as simple markup as possible, and be consistent.\ntitle: post title\nsummary: single-line long summary\npublished: 2018-08-07T10:00:00+00:00\ntags:\n- indieweb\nsyndicate:\n- https://something.com/xyz\nIf one decides to use lists by newline and -, stick to that. No inline [] lists, no spaced - prefix; be consistent.\nSame applies for dates and times. While I thought the \u201ccorrect\u201d date format is ISO 8601, that turned out to be a subset of it, named RFC 333917. Unfortunately I started using +0000 format instead of +00:00 from the beginning, so I\u2019ll stick to that.\nMarkdown can also get messy\nThere are valid arguments against Markdown18, so before choosing that as my main format, I tested as many as I could19 - in the end, I decided to stick to an extended version of Markdown, because that is still the closest-to-plain-text for my eyes. I also found Typora, which is a very nice Markdown WYSIWYG editor20. Yes, unfortunately, it\u2019s electron based. I\u2019ll swallow this frog for now.\nThe \u201cextensions\u201d I use with Markdown:\nfootnotes - my links are foonotes, so they can be printed\npipe_tables\nstrikeout - cause it\u2019s useful for snarky lines\nraw_html\ndefinition_lists - they are useful, and they were also present on the very first website ever\nbacktick_code_blocks - ``` type code blocks\nfenced_code_attributes - language tag for code blocks\nlists_without_preceding_blankline\nautolink_bare_uris - otherwise my URLs in the footnotes are mere text\nI\u2019ve tried using the Python Markdown module; the end result was utterly broken HTML when I had code blocks with regexes that collided with the regexes Python Markdown was using. I tried the Python markdown2 module - worked better, didn\u2019t support language tag for code blocks.\nIn the end, I went back to where I started: Pandoc21. The regeneration of the whole site is ~60 seconds instead of ~20s with markdown2, but it doesn\u2019t really matter - it\u2019s still fast.\npandoc --to=html5 --quiet --no-highlight --from=markdown+footnotes+pipe_tables+strikeout+raw_html+definition_lists+backtick_code_blocks+fenced_code_attributes+lists_without_preceding_blankline+autolink_bare_uris\nThe take away is the same with YAML: do your own ruleset and stick to it; don\u2019t mix other flavours in.\nSyntax highlighting is really messy\nPandoc has a built-in syntax highlighting method; so does the Python Markdown module (via Codehilite).\nI have some entries that can break both, and break them bad.\nBesides broken, Codehilite is VERBOSE. At a certain point, it managed to add 60KB of HTML markup to my text.\nA long while ago I tried to completely eliminate JavaScript from my site, because I\u2019m tired of the current trends. However, JS has it\u2019s place, especially as a progessive enhancement22.\nThat in mind, I went back to the solution that worked the best so far: prism.js23 The difference this time I that I only add it when there is a code block with language property, and I inline the whole JS block in the code - the \u2018developer\u2019 version, supporting a lot of languages, weighs around 58KB, which is a lot, but it works very nice, and it very fast.\nNo JS only means no syntax highlight, but at least my HTML code is readable, unlike with CodeHilite.\nSummary\nStatic sites come with compromises when it comes to interactions, let that be webmentions, search, pubsub. They need either external services, or some simple, dynamic parts.\nIf you do go with dynamic, try to keep it as simple as possible. If the webserver has PHP support avoid adding a Python daemon and use that PHP instead.\nThere are very good, completely free services out there, run by mad scientists enthusiasts, like webmention.io and brid.gy. It\u2019s perfectly fine to use them.\nKeep your markup consistent and don\u2019t deviate from the feature set you really need.\nJavaScript has it\u2019s place, and prism.js is potentially the nicest syntax highlighter currenctly available for the web.\n\n\nhttps://indieweb.org/scratch_your_own_itch\u21a9\nhttps://github.com/petermolnar/nasg/\u21a9\nhttp://indieweb.org/webmention\u21a9\nhttps://github.com/aaronpk/xray\u21a9\nhttps://webmention.io/\u21a9\nhttps://indieweb.org/websub\u21a9\nhttps://superfeedr.com/\u21a9\nhttp://ifttt.com/\u21a9\nhttps://brid.gy/about#publishing\u21a9\nhttps://ifttt.com/applets/83096071d-syndicate-to-wordpress-com\u21a9\nhttps://ifttt.com/applets/83095945d-syndicate-to-tumblr\u21a9\nhttps://ifttt.com/applets/83095698d-syndicate-to-brid-gy-twitter-publish\u21a9\nhttps://ifttt.com/applets/83095735d-syndicate-to-brid-gy-publish-flickr\u21a9\nhttps://blogtrottr.com/\u21a9\nhttps://ifttt.com/applets/83095496d-syndicate-to-petermolnarnet-googlegroups-com\u21a9\nhttp://hitchdev.com/strictyaml/features-removed/\u21a9\nhttps://en.wikipedia.org/wiki/RFC_3339\u21a9\nhttps://indieweb.org/markdown#Criticism\u21a9\nhttps://en.wikipedia.org/wiki/List_of_lightweight_markup_languages\u21a9\nhttp://typora.io/\u21a9\nhttp://pandoc.org/MANUAL.html#pandocs-markdown\u21a9\nhttps://en.wikipedia.org/wiki/Progressive_enhancement\u21a9\nhttps://prismjs.com/\u21a9"
},
"name": "Lessons of running a (semi) static, Indieweb-friendly site for 2 years",
"post-type": "article",
"_id": "743741",
"_source": "268",
"_is_read": true
}
{
"type": "entry",
"published": "2018-08-06T19:34:42-04:00",
"url": "https://martymcgui.re/2018/08/06/193442/",
"category": [
"podcast",
"IndieWeb",
"this-week-indieweb-podcast"
],
"audio": [
"https://aperture-proxy.p3k.io/a81656ea4e47330a7606c0a01420199f314cb6f4/68747470733a2f2f6d656469612e6d617274796d636775692e72652f66622f37312f30622f64642f62333934646261336139646563643038356366623732353633616339663531383935333661633832316630393839336335373966623363322e6d7033"
],
"syndication": [
"https://huffduffer.com/schmarty/495569",
"https://twitter.com/schmarty/status/1026613443707777024",
"https://www.facebook.com/marty.mcguire.54/posts/10212591493844273"
],
"name": "This Week in the IndieWeb Audio Edition \u2022 July 28th - August 3rd, 2018",
"content": {
"text": "Show/Hide Transcript \n \n Farewell to Facebook syndication, notes from the DWeb Summit, and a cat on the IndieWeb. It\u2019s the audio edition for This Week in the IndieWeb for July 28th - August 3rd, 2018.\n\nYou can find all of my audio editions and subscribe with your favorite podcast app here: martymcgui.re/podcasts/indieweb/.\n\nMusic from Aaron Parecki\u2019s 100DaysOfMusic project: Day 85 - Suit, Day 48 - Glitch, Day 49 - Floating, Day 9, and Day 11\n\nThanks to everyone in the IndieWeb chat for their feedback and suggestions. Please drop me a note if there are any changes you\u2019d like to see for this audio edition!",
"html": "Show/Hide Transcript \n \n <p>Farewell to Facebook syndication, notes from the DWeb Summit, and a cat on the IndieWeb. It\u2019s the audio edition for <a href=\"https://indieweb.org/this-week/2018-08-03.html\">This Week in the IndieWeb for July 28th - August 3rd, 2018</a>.</p>\n\n<p>You can find all of my audio editions and subscribe with your favorite podcast app here: <a href=\"https://martymcgui.re/podcasts/indieweb/\">martymcgui.re/podcasts/indieweb/</a>.</p>\n\n<p>Music from <a href=\"https://aaronparecki.com/\">Aaron Parecki</a>\u2019s <a href=\"https://100.aaronparecki.com/\">100DaysOfMusic project</a>: <a href=\"https://aaronparecki.com/2017/03/15/14/day85\">Day 85 - Suit</a>, <a href=\"https://aaronparecki.com/2017/02/06/7/day48\">Day 48 - Glitch</a>, <a href=\"https://aaronparecki.com/2017/02/07/4/day49\">Day 49 - Floating</a>, <a href=\"https://aaronparecki.com/2016/12/29/21/day-9\">Day 9</a>, and <a href=\"https://aaronparecki.com/2016/12/31/15/\">Day 11</a></p>\n\n<p>Thanks to everyone in the <a href=\"https://chat.indieweb.org/\">IndieWeb chat</a> for their feedback and suggestions. Please drop me a note if there are any changes you\u2019d like to see for this audio edition!</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://aperture-proxy.p3k.io/8275f85e3a389bd0ae69f209683436fc53d8bad9/68747470733a2f2f6d617274796d636775692e72652f696d616765732f6c6f676f2e6a7067"
},
"post-type": "audio",
"_id": "740557",
"_source": "175",
"_is_read": true
}
Awesome! How did this event go? If this is a recurring event, I’d like to include it in our list of events at https://indieweb.org/events. Also, is there an organizer we can list?
{
"type": "entry",
"published": "2018-08-03 16:53-0700",
"url": "https://gregorlove.com/2018/08/awesome-how-did-this-event/",
"syndication": [
"https://twitter.com/gRegorLove/status/1025530540877930499"
],
"in-reply-to": [
"https://twitter.com/oudigischolar/status/1024784369943289856"
],
"content": {
"text": "Awesome! How did this event go? If this is a recurring event, I\u2019d like to include it in our list of events at https://indieweb.org/events. Also, is there an organizer we can list?",
"html": "<p>Awesome! How did this event go? If this is a recurring event, I\u2019d like to include it in our list of events at <a href=\"https://indieweb.org/events\">https://indieweb.org/events</a>. Also, is there an organizer we can list?</p>"
},
"author": {
"type": "card",
"name": "gRegor Morrill",
"url": "https://gregorlove.com/",
"photo": "https://aperture-proxy.p3k.io/929c8777d059069a2a16a064d96f4c29b65548f8/68747470733a2f2f677265676f726c6f76652e636f6d2f736974652f6173736574732f66696c65732f333437332f70726f66696c652d323031362d6d65642e6a7067"
},
"post-type": "reply",
"refs": {
"https://twitter.com/oudigischolar/status/1024784369943289856": {
"type": "entry",
"url": "https://twitter.com/oudigischolar/status/1024784369943289856",
"content": {
"text": "Come join us tonight for our first Homebrew Website Club! We will be in Bizzell Rm. LL2111 until 7:30. https://libraries.ou.edu/content/homebrew-website-club"
},
"author": {
"type": "card",
"name": "OU DSL",
"url": "https://libraries.ou.edu/dsl",
"photo": "https://gregorlove.com/site/assets/files/3540/7b18424a52c27dd97c63eb6058f00d124763b644ce66a97f0db70dfbe312e49d.jpg"
},
"post-type": "note"
}
},
"_id": "728457",
"_source": "95",
"_is_read": true
}
Replies can’t be updated, but original posts within 24 hours can. They are updated at a regular interval by Micro.blog or if your feed supports WebSub, then Micro.blog will update your posts as soon as you send a WebSub update ping to your hub. It’s a great app idea, but the tell “Micro.blog to update” part probably doesn’t need to be part of it.
{
"type": "entry",
"published": "2018-08-03T19:31:48-04:00",
"summary": "Replies can\u2019t be updated, but original posts within 24 hours can. They are updated at a regular interval by Micro.blog or if your feed supports WebSub, then Micro.blog will update your posts as soon as you send a WebSub update ping to your hub. It\u2019s a great app idea, but the tell \u201cMicro.blog to update\u201d part probably doesn\u2019t need to be part of it.",
"url": "https://eddiehinkle.com/2018/08/03/15/reply/",
"in-reply-to": [
"https://boffosocko.com/2018/08/03/reply-to-becky-hansmeyer-about-a-micro-blog-app-idea/"
],
"content": {
"text": "Replies can\u2019t be updated, but original posts within 24 hours can. They are updated at a regular interval by Micro.blog or if your feed supports WebSub, then Micro.blog will update your posts as soon as you send a WebSub update ping to your hub. It\u2019s a great app idea, but the tell \u201cMicro.blog to update\u201d part probably doesn\u2019t need to be part of it.",
"html": "<p>Replies can\u2019t be updated, but original posts within 24 hours can. They are updated at a regular interval by Micro.blog or if your feed supports WebSub, then Micro.blog will update your posts as soon as you send a WebSub update ping to your hub. It\u2019s a great app idea, but the tell \u201cMicro.blog to update\u201d part probably doesn\u2019t need to be part of it.</p>"
},
"author": {
"type": "card",
"name": "Eddie Hinkle",
"url": "https://eddiehinkle.com/",
"photo": "https://aperture-proxy.p3k.io/cc9591b69c2c835fa2c6e23745b224db4b4b431f/68747470733a2f2f656464696568696e6b6c652e636f6d2f696d616765732f70726f66696c652e6a7067"
},
"post-type": "reply",
"refs": {
"https://boffosocko.com/2018/08/03/reply-to-becky-hansmeyer-about-a-micro-blog-app-idea/": {
"type": "entry",
"url": "https://boffosocko.com/2018/08/03/reply-to-becky-hansmeyer-about-a-micro-blog-app-idea/",
"name": "https://boffosocko.com/2018/08/03/reply-to-becky-hansmeyer-about-a-micro-blog-app-idea/",
"post-type": "article"
}
},
"_id": "728015",
"_source": "226",
"_is_read": true
}
Catching up on the Distributed Web Summit. Great lightning talk from @t introducing the IndieWeb. Here’s a link directly to the start of his talk in the YouTube stream.
{
"type": "entry",
"author": {
"name": null,
"url": "https://www.manton.org/",
"photo": null
},
"url": "https://www.manton.org/2018/08/03/165743.html",
"content": {
"html": "<p>Catching up on the Distributed Web Summit. Great lightning talk from <a href=\"https://micro.blog/t\">@t</a> introducing the IndieWeb. <a href=\"https://www.youtube.com/watch?v=u-XtbUEiL38&t=1h20m37s\">Here\u2019s a link</a> directly to the start of his talk in the YouTube stream.</p>",
"text": "Catching up on the Distributed Web Summit. Great lightning talk from @t introducing the IndieWeb. Here\u2019s a link directly to the start of his talk in the YouTube stream."
},
"published": "2018-08-03T11:57:43-05:00",
"post-type": "note",
"_id": "725543",
"_source": "12",
"_is_read": true
}
{
"type": "entry",
"published": "2018-08-03T07:51:10-07:00",
"url": "https://snarfed.org/2018-08-03_rip-facebook-for-bridgy",
"syndication": [
"https://news.indieweb.org/en/snarfed.org/2018-08-03_rip-facebook-for-bridgy"
],
"name": "RIP Facebook for Bridgy",
"content": {
"text": "As planned, Facebook turned off some of its key APIs for posting and fetching data on Wednesday, and I disabled Facebook for Bridgy entirely.\nIt\u2019s a sad day. Facebook was the single biggest reason I came up with Bridgy way back in 2011. I\u2019ve always wanted to own my data online, on my own web site, but my friends and family generally used social networks like Facebook instead. I didn\u2019t care too much about dogma or evangelizing, but I still wanted to connect with them wherever they were, and if they were online, more often than not they were on Facebook.\nSocial networks are under siege in the press right now, so it\u2019s easy to forget all the ways they\u2019ve made our lives better. Not only have they brought us indispensable tools for day to day life, they\u2019ve also enriched our ties to many real people, not just those we care about most but also entirely new people, across the globe, who we may never have met otherwise.\nWe regularly look to big social networks for inspiration and motivation in the IndieWeb. We analyze and document features, UI designs, and yes, even antipatterns\u2026but more importantly, we work hard to interoperate. We may try to live on our web sites, but we still treasure and value the relationships we have with everyone else. They\u2019re still on the social networks, Facebook above all.\nI\u2019ll still use Facebook directly now and then. Friends will get engaged, colleagues will start new jobs, cousins will have babies. I\u2019ll still expect to see someone at a party whose name I\u2019ve forgotten \u2013 you know, we met her at that place, for that thing \u2013 and look it up on Facebook first. Embarrassment avoided, life improved. But I\u2019ll use it less. I wish there was another way.\nSo long for now. See you on the web!",
"html": "<p>\n <a href=\"https://brid.gy/\">\n <img src=\"https://aperture-proxy.p3k.io/ba5fa097747514d3123a876799eae62921760991/68747470733a2f2f736e61726665642e6f72672f772f77702d636f6e74656e742f706c7567696e732f6a65747061636b2f6d6f64756c65732f6c617a792d696d616765732f696d616765732f3178312e7472616e732e676966\" alt=\"1x1.trans.gif\" /></a></p><img src=\"https://aperture-proxy.p3k.io/58b00808619d02e2b00da815e8c6e79858a816cc/68747470733a2f2f736e61726665642e6f72672f6272696467795f6c6f676f2e6a7067\" alt=\"bridgy_logo.jpg\" />\n<p>As planned, <a href=\"https://developers.facebook.com/blog/post/2018/05/01/facebook-login-updates-further-protect-privacy/\">Facebook turned off some of its key APIs for posting and fetching data</a> on Wednesday, and I <a href=\"https://snarfed.org/2018-06-07_turning-off-facebook-for-bridgy\">disabled Facebook for Bridgy entirely</a>.</p>\n<p>It\u2019s a sad day. Facebook was the single biggest reason I came up with Bridgy <a href=\"https://brid.gy/about#history\">way back in 2011</a>. I\u2019ve always wanted to own my data online, <a href=\"https://snarfed.org/2012-07-25_why_i_have_my_own_web_site\">on my own web site</a>, but my friends and family generally used social networks like Facebook instead. I didn\u2019t care too much about dogma or evangelizing, but I still wanted to connect with them wherever they were, and if they were online, more often than not they were on Facebook.</p>\n<p>Social networks are under siege in the press right now, so it\u2019s easy to forget all the ways they\u2019ve made our lives better. Not only have they brought us indispensable tools for day to day life, they\u2019ve also enriched our ties to many real people, not just those we care about most but also entirely new people, across the globe, who we may never have met otherwise.</p>\n<p>We regularly look to big social networks for inspiration and motivation in the <a href=\"https://indieweb.org/\">IndieWeb</a>. We analyze and document features, UI designs, and yes, even <a href=\"https://indieweb.org/antipatterns\">antipatterns</a>\u2026but more importantly, we work hard to <em>interoperate</em>. We may try to live on our web sites, but we still treasure and value the relationships we have with everyone else. They\u2019re still on the social networks, Facebook above all.</p>\n<p>I\u2019ll still use Facebook directly now and then. Friends will get engaged, colleagues will start new jobs, cousins will have babies. I\u2019ll still expect to see someone at a party whose name I\u2019ve forgotten \u2013 you know, we met her at that place, for that thing \u2013 and look it up on Facebook first. Embarrassment avoided, life improved. But I\u2019ll use it less. I wish there was another way.</p>\n<p>So long for now. <a href=\"https://indieweb.org/\">See you on the web!</a></p>"
},
"author": {
"type": "card",
"name": "Ryan Barrett",
"url": "https://snarfed.org/",
"photo": "https://aperture-proxy.p3k.io/7e644a0ecb0339b875f998fc405c685591d80cd7/68747470733a2f2f7365637572652e67726176617461722e636f6d2f6176617461722f39343762356633663332336461306566373835623666303264396332363564363f733d393626643d626c616e6b26723d67"
},
"post-type": "article",
"_id": "725139",
"_source": "3",
"_is_read": true
}
{
"type": "entry",
"published": "2018-08-02T18:11:53-04:00",
"summary": "The server he talks about is now available with limited history, and all of the current Microsub clients are free. But you do need a website to login because IndieAuth uses a URL: https://indigenous.abode.pub/ios/help/#indieauth",
"url": "https://eddiehinkle.com/2018/08/02/26/reply/",
"category": [
"indieauth",
"indieweb",
"microsub"
],
"in-reply-to": [
"https://twitter.com/jan_koeppen/status/1025079478500909056?s=12"
],
"content": {
"text": "The server he talks about is now available with limited history, and all of the current Microsub clients are free. But you do need a website to login because IndieAuth uses a URL: https://indigenous.abode.pub/ios/help/#indieauth",
"html": "<p>The server he talks about <a href=\"https://aperture.eddiehinkle.com/pricing\">is now available with limited history</a>, and all of the current Microsub clients are free. But you do need a website to login because IndieAuth uses a URL: <a href=\"https://indigenous.abode.pub/ios/help/#indieauth\">https://indigenous.abode.pub/ios/help/#indieauth</a></p>"
},
"author": {
"type": "card",
"name": "Eddie Hinkle",
"url": "https://eddiehinkle.com/",
"photo": "https://aperture-proxy.p3k.io/cc9591b69c2c835fa2c6e23745b224db4b4b431f/68747470733a2f2f656464696568696e6b6c652e636f6d2f696d616765732f70726f66696c652e6a7067"
},
"post-type": "reply",
"refs": {
"https://twitter.com/jan_koeppen/status/1025079478500909056?s=12": {
"type": "entry",
"url": "https://twitter.com/jan_koeppen/status/1025079478500909056?s=12",
"name": "https://twitter.com/jan_koeppen/status/1025079478500909056?s=12",
"post-type": "article"
}
},
"_id": "721628",
"_source": "226",
"_is_read": true
}
Welp! As of today, none of my posts, links, or notes can be syndicated to Facebook:
The publish_actions permission will be deprecated. This permission granted apps access to publish posts to Facebook as the logged in user. Apps created from today onwards will not have access to this permission. Apps created before today that have been previously approved to request publish_actions can continue to do so until August 1, 2018.
If you’re reading this on Facebook: so long, it’s been good to know ya.
{
"type": "entry",
"published": "2018-08-02T16:26:47Z",
"url": "https://adactio.com/links/14228",
"category": [
"facebook",
"api",
"posse",
"publishing",
"indieweb",
"syndication"
],
"bookmark-of": [
"https://developers.facebook.com/blog/post/2018/04/24/new-facebook-platform-product-changes-policy-updates/"
],
"content": {
"text": "New Facebook Platform Product Changes and Policy Updates - Facebook for Developers\n\n\n\nWelp! As of today, none of my posts, links, or notes can be syndicated to Facebook:\n\n\n The publish_actions permission will be deprecated. This permission granted apps access to publish posts to Facebook as the logged in user. Apps created from today onwards will not have access to this permission. Apps created before today that have been previously approved to request publish_actions can continue to do so until August 1, 2018.\n\n\nIf you\u2019re reading this on Facebook: so long, it\u2019s been good to know ya.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://developers.facebook.com/blog/post/2018/04/24/new-facebook-platform-product-changes-policy-updates/\">\nNew Facebook Platform Product Changes and Policy Updates - Facebook for Developers\n</a>\n</h3>\n\n<p>Welp! As of today, none of my posts, links, or notes can be syndicated to Facebook:</p>\n\n<blockquote>\n <p>The <code>publish_actions</code> permission will be deprecated. This permission granted apps access to publish posts to Facebook as the logged in user. Apps created from today onwards will not have access to this permission. Apps created before today that have been previously approved to request <code>publish_actions</code> can continue to do so until August 1, 2018.</p>\n</blockquote>\n\n<p>If you\u2019re reading this on Facebook: so long, it\u2019s been good to know ya.</p>"
},
"post-type": "bookmark",
"_id": "719707",
"_source": "2",
"_is_read": true
}
Updated my inline micropub client a little. So now it includes a more subtle button in your browser rather than a floating button to create and edit posts.
{
"type": "entry",
"published": "2018-08-02T14:39:51.339Z",
"url": "https://grant.codes/2018/08/02/5b6317b7b83b374d52782679",
"syndication": [
"https://twitter.com/grantcodes/status/1025028410693824513"
],
"content": {
"text": "Updated my inline micropub client a little. So now it includes a more subtle button in your browser rather than a floating button to create and edit posts.",
"html": "<p>Updated my inline micropub client a little. So now it includes a more subtle button in your browser rather than a floating button to create and edit posts.<br /></p>"
},
"author": {
"type": "card",
"name": "Grant Richmond",
"url": "https://grant.codes",
"photo": "https://aperture-proxy.p3k.io/be31049af9884a65289b2d14300adafc0e4030c6/68747470733a2f2f6772616e742e636f6465732f696d672f6d652e6a7067"
},
"post-type": "note",
"_id": "718587",
"_source": "11",
"_is_read": true
}