I'd like to be able to consume content from https://micro.blog and comment on peoples posts and get back their comments but without actually the need to use their software. It's kind of close because they use webmentions and I've seen some links to RSS feeds, but the UI if you're not logged in is quite awful.
I think they would get much more traction if they did some homework on not putting up those walls around their garden like everyone else does. I'll follow this one guy now and we'll see if I can get into this community with just my own software and without signing up for a username there.
{
"type": "entry",
"published": "2018-04-01T18:45:42Z",
"url": "https://jeena.net/notes/913",
"content": {
"text": "I'd like to be able to consume content from https://micro.blog and comment on peoples posts and get back their comments but without actually the need to use their software. It's kind of close because they use webmentions and I've seen some links to RSS feeds, but the UI if you're not logged in is quite awful.\n\nFor example, I found https://micro.blog/jthingelstad by randomly typing https://manton.micro.blog/ which turned out to be the test blog of the creator of Micro.blog all the way down in the footer I found a link to https://micro.blog/manton which for some reason has compleatly different content than the subdomain. There I saw him mentioning https://micro.blog/jthingelstad so I rewrote the URL to https://jthingelstad.micro.blog and was looking for a link to their RSS. The footer didn't have one but the HTML head has one which luckily my browser shows. https://micro.blog/jthingelstad didn't have a link to that RSS feed nor to the subdomain where I can find the link to the RSS feed.\n\nI think they would get much more traction if they did some homework on not putting up those walls around their garden like everyone else does. I'll follow this one guy now and we'll see if I can get into this community with just my own software and without signing up for a username there.",
"html": "<p></p><p>I'd like to be able to consume content from <a href=\"https://micro.blog\">https://micro.blog</a> and comment on peoples posts and get back their comments but without actually the need to use their software. It's kind of close because they use webmentions and I've seen some links to RSS feeds, but the UI if you're not logged in is quite awful.</p>\n\n<p>For example, I found <a href=\"https://micro.blog/jthingelstad\">https://micro.blog/jthingelstad</a> by randomly typing <a href=\"https://manton.micro.blog/\">https://manton.micro.blog/</a> which turned out to be the test blog of the creator of Micro.blog all the way down in the footer I found a link to <a href=\"https://micro.blog/manton\">https://micro.blog/manton</a> which for some reason has compleatly different content than the subdomain. There I saw him mentioning <a href=\"https://micro.blog/jthingelstad\">https://micro.blog/jthingelstad</a> so I rewrote the URL to <a href=\"https://jthingelstad.micro.blog\">https://jthingelstad.micro.blog</a> and was looking for a link to their RSS. The footer didn't have one but the HTML head has one which luckily my browser shows. <a href=\"https://micro.blog/jthingelstad\">https://micro.blog/jthingelstad</a> didn't have a link to that RSS feed nor to the subdomain where I can find the link to the RSS feed.</p>\n\n<p>I think they would get much more traction if they did some homework on not putting up those walls around their garden like everyone else does. I'll follow this one guy now and we'll see if I can get into this community with just my own software and without signing up for a username there.</p>"
},
"author": {
"type": "card",
"name": "Jeena",
"url": "https://jeena.net/",
"photo": "https://aperture-media.p3k.io/jeena.net/d265fd0a7b0bc15c7d4df4534b596d15b6039da1eab9482dda49db1a62fe1919.jpg"
},
"_id": "180295",
"_source": "201",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-31T19:52:40-04:00",
"url": "https://martymcgui.re/2018/03/31/195240/",
"category": [
"podcast",
"IndieWeb",
"this-week-indieweb-podcast"
],
"audio": [
"https://aperture-media.p3k.io/media.martymcgui.re/25afd1269b03299149434c9eef9696221d42ac4cd70e5be7a40954096ca27158.mp3"
],
"syndication": [
"https://huffduffer.com/schmarty/468889",
"https://twitter.com/schmarty/status/980232138049060865",
"https://www.facebook.com/marty.mcguire.54/posts/10211755682749518"
],
"name": "This Week in the IndieWeb Audio Edition \u2022 March 24th - 30th, 2018",
"content": {
"text": "Show/Hide Transcript \n \n Audio edition for This Week in the IndieWeb for March 24th - 30th, 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>Audio edition for <a href=\"https://indieweb.org/this-week/2018-03-30.html\">This Week in the IndieWeb for March 24th - 30th, 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-media.p3k.io/martymcgui.re/4f9fac2b9e3ae62998c557418143efe288bca8170a119921a9c6bfeb0a1263a2.jpg"
},
"_id": "178680",
"_source": "175",
"_is_read": true
}
This is a great analysis on the ability to import and export posts via Micropub/mf2. The benefit of that is even private posts can be exported! I definitely want to think through this more
{
"type": "entry",
"published": "2018-03-31T20:00:05-04:00",
"summary": "This is a great analysis on the ability to import and export posts via Micropub/mf2. The benefit of that is even private posts can be exported! I definitely want to think through this more",
"url": "https://eddiehinkle.com/2018/03/31/10/reply/",
"category": [
"indieweb",
"micropub"
],
"in-reply-to": [
"https://overcast.fm/ Io4VpyYPk/32:42"
],
"content": {
"text": "This is a great analysis on the ability to import and export posts via Micropub/mf2. The benefit of that is even private posts can be exported! I definitely want to think through this more",
"html": "<p>This is a great analysis on the ability to import and export posts via Micropub/mf2. The benefit of that is even private posts can be exported! I definitely want to think through this more</p>"
},
"author": {
"type": "card",
"name": "Eddie Hinkle",
"url": "https://eddiehinkle.com/",
"photo": "https://aperture-media.p3k.io/eddiehinkle.com/cf9f85e26d4be531bc908d37f69bff1c50b50b87fd066b254f1332c3553df1a8.jpg"
},
"refs": {
"https://overcast.fm/ Io4VpyYPk/32:42": {
"type": "entry",
"url": "https://overcast.fm/ Io4VpyYPk/32:42",
"name": "https://overcast.fm/ Io4VpyYPk/32:42"
}
},
"_id": "178544",
"_source": "226",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-30T20:10:41+00:00",
"url": "https://cleverdevil.io/2018/going-serverless-with-python-wsgi-apps",
"syndication": [
"https://twitter.com/cleverdevil/status/979815338085879809"
],
"name": "Going Serverless with Python WSGI Apps",
"content": {
"text": "I've been writing web applications and services in Python since the late 1990s, and enjoy it so much that I created the Pecan web application framework way back in 2010. Configuring and deploying Python web applications, especially WSGI compliant applications, is fairly straightforward, with great WSGI servers like Gunicorn and uWSGI, and excellent Apache integration via mod_wsgi. But, for many use cases, creating and maintaining one or more cloud servers creates unnecessary cost and complexity. Security patches, kernel upgrades, SSL certificate management, and more, can be a real burden.Since the creation of AWS Lambda, \"serverless\" has become a pretty popular buzzword. Could Lambda provide a way to deploy Python WSGI applications that helps reduce cost, complexity, and management overhead? First, let's consider what serverless really means.Introducing LambdaAWS Lambda is a cloud service that lets developers deploy and run code without provisioning or managing servers. Under the hood, there is of course still a server where code is run, but its existence is largely abstracted away. Lambda, and other services in the category, are likely better defined as \"functions as a service\" (FaaS).Lambda provides built-in Python support, and invoking Lambda functions can be done manually, or via an event triggered by an another AWS service, including Amazon S3, Amazon DynamoDB, and even Amazon Alexa, just to name a few.Lambda functions can also be invoked via HTTP through the use of the Amazon API Gateway, which opens up the possibility that WSGI applications could be exposed through Lambda. That said, the complexity of setting up a WSGI application to run within a Lambda execution environment is daunting.The Serverless FrameworkEnter the Serverless Framework, a toolkit for creating, managing, deploying, and operating serverless architectures. Serverless supports AWS Lambda, and other FaaS platforms, and makes the process of getting your code deployed to Lambda much easier. Serverless is written in JavaScript, and is easily installable through npm:$ npm install serverless -gOnce installed, you can use the serverless tool from the command line to perform a whole host of tasks, such as creating new functions from templates, deploying functions to providers, and invoking functions directly.Serverless WSGIThe serverless-wsgi plugin for the Serverless Framework allows you to take any Python WSGI application, and deploy it to Lambda with ease. Let's take a look at how!I've been working on a Python-based IndieAuth implementation called PunyAuth for a few weeks, and as an infrequently accessed web service, its a perfect candidate for a FaaS-backed deployment.First, I installed the serverless-wsgi plugin:$ npm install serverless-wsgi -gThen, I created a file called punywsgi.py that exposes PunyAuth as a WSGI application:from pecan.deploy import deploy\napp = deploy('my-config.py')In order to bundle up PunyAuth and all of its dependencies, serverless-wsgi needs a requirements.txt file, which is easily done using pip:$ pip freeze > requirements.txtFinally, I created a serverless.yml file that defines the service:service: serverless-punyauth\n\nplugins:\n - serverless-wsgi\n\ncustom:\n wsgi:\n app: punywsgi.app\n\nprovider:\n name: aws\n runtime: python3.6\n region: us-east-1\n iamRoleStatements:\n - Effect: \"Allow\"\n Action:\n - s3:*\n Resource:\n - arn:aws:s3:::cleverdevil-punyauth-testing/*\n\nfunctions:\n app:\n handler: wsgi.handler\n events:\n - http: ANY /\n - http: 'ANY {proxy+}'The serverless.yml file declares a service called serverless-punyauth, enables the serverless-wsgi plugin, and directs it to expose the WSGI app defined in punywsgi.app. When using serverless-wsgi, the bundled wsgi.handler can automatically map requests and responses coming in through the Amazon API Gateway to the deployed WSGI app.In the case of PunyAuth, the function itself needs read/write access to a particular AWS S3 bucket, which is accomplished here by defining an AWS IAM role that explicitly grants this access.At this point, the application is ready to be deployed to AWS Lambda.$ serverless deploy\nServerless: Packaging Python WSGI handler...\nServerless: Packaging required Python packages...\nServerless: Linking required Python packages...\nServerless: Packaging service...\nServerless: Excluding development dependencies...\nServerless: Unlinking required Python packages...\nServerless: Uploading CloudFormation file to S3...\nServerless: Uploading artifacts...\nServerless: Uploading service .zip file to S3 (2.08 MB)...\nServerless: Validating template...\nServerless: Updating Stack...\nServerless: Checking Stack update progress...\n................\nServerless: Stack update finished...\nService Information\nservice: serverless-punyauth\nstage: dev\nregion: us-east-1\nstack: serverless-punyauth-dev\napi keys:\n None\nendpoints:\n ANY - https://rpmchol040.execute-api.us-east-1.amazonaws.com/dev\n ANY - https://rpmchol040.execute-api.us-east-1.amazonaws.com/dev/{proxy+}\nfunctions:\n app: serverless-punyauth-dev-app\nServerless: Removing old service versions...Tada! We've deployed PunyAuth as a Lambda function!Use Cases and BenefitsDeploying WSGI applications on Lambda is certainly cool, but its also not appropriate for all use cases. Typically, WSGI applications are deployed in always-running WSGI servers. With Lambda, the behind-the-scenes server that represents the environment for your application is magically started and stopped on an as-needed basis, and the application itself will need to be loaded during the function invokation on-demand. This adds some additional overhead, so in the case of high-performance or frequently-accessed applications, you'll likely want to go another route.That said, for applications like PunyAuth, where performance isn't super critical, and the application is accessed relatively infrequently, this approach has a multitude of benefits.Benefit: CostDeploying a Python WSGI application the traditional way, with always-on infrastructure, will certainly result in higher performance, but also in significantly higher cost. With Lambda, you only pay for the actual execution time of your functions, rather than paying for, say, an EC2 instance that is always on. That means that hosting a low-traffic WSGI app in Lambda could cost you pennies a month.Benefit: ManagementWhile servers have certainly become easier to manage over the years, and managed hosting providers exist that will handle operating system updates and security patches, there's no question that deploying to Lambda will reduce your management overhead. The Lambda execution environment is entirely managed by Amazon, allowing you to focus on your application code, rather than on managing a fleet of servers.Benefit: SecurityWith AWS handling the heavy lifting of keeping the execution environment up-to-date with security patches, and the ability to apply fine-grained controls using AWS IAM roles, keeping your application secure is a bit easier.ConclusionAWS Lambda and the Serverless Framework provide a whole new way to host Python WSGI applications that can help reduce cost, eliminate management, and improve security.",
"html": "<p>I've been writing web applications and services in <a href=\"http://www.python.org\">Python</a> since the late 1990s, and enjoy it so much that I created the <a href=\"https://github.com/pecan/pecan\">Pecan web application framework</a> way back in 2010. Configuring and deploying Python web applications, especially <a href=\"http://wsgi.readthedocs.io/en/latest/\">WSGI</a> compliant applications, is fairly straightforward, with great WSGI servers like <a href=\"http://gunicorn.org\">Gunicorn</a> and <a href=\"http://projects.unbit.it/uwsgi\">uWSGI</a>, and excellent Apache integration via <a href=\"http://www.modwsgi.org/\">mod_wsgi</a>. But, for many use cases, creating and maintaining one or more cloud servers creates unnecessary cost and complexity. Security patches, kernel upgrades, SSL certificate management, and more, can be a real burden.</p><p>Since the creation of AWS <a href=\"https://aws.amazon.com/lambda/\">Lambda</a>, \"serverless\" has become a pretty popular buzzword. Could Lambda provide a way to deploy Python WSGI applications that helps reduce cost, complexity, and management overhead? First, let's consider what serverless really means.</p><h2>Introducing Lambda</h2><p>AWS Lambda is a cloud service that lets developers deploy and run code without provisioning or managing servers. Under the hood, there is of course still a server where code is run, but its existence is largely abstracted away. Lambda, and other services in the category, are likely better defined as \"functions as a service\" (FaaS).</p><p>Lambda provides <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html\">built-in Python support</a>, and <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-functions.html\">invoking Lambda functions</a> can be done manually, or via an event triggered by an another AWS service, including <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-s3\">Amazon S3</a>, <a href=\"https://aws.amazon.com/dynamodb/\">Amazon DynamoDB</a>, and even <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-echo\">Amazon Alexa</a>, just to name a few.</p><p>Lambda functions can also be invoked via HTTP through the use of the <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-api-gateway\">Amazon API Gateway</a>, which opens up the possibility that WSGI applications could be exposed through Lambda. That said, the complexity of setting up a WSGI application to run within a Lambda execution environment is daunting.</p><h2>The Serverless Framework</h2><p>Enter the <a href=\"https://serverless.com\">Serverless Framework</a>, a toolkit for creating, managing, deploying, and operating serverless architectures. Serverless supports AWS Lambda, and other FaaS platforms, and makes the process of getting your code deployed to Lambda much easier. Serverless is written in JavaScript, and is easily installable through <code>npm</code>:</p><pre>$ npm install serverless -g</pre><p>Once installed, you can use the <code>serverless</code> tool from the command line to perform a whole host of tasks, such as creating new functions from templates, deploying functions to providers, and invoking functions directly.</p><h2>Serverless WSGI</h2><p>The <a href=\"https://github.com/logandk/serverless-wsgi\">serverless-wsgi</a> plugin for the Serverless Framework allows you to take any Python WSGI application, and deploy it to Lambda with ease. Let's take a look at how!</p><p>I've been working on a Python-based <a href=\"https://indieweb.org/IndieAuth\">IndieAuth</a> implementation called <a href=\"https://github.com/cleverdevil/punyauth\">PunyAuth</a> for a few weeks, and as an infrequently accessed web service, its a perfect candidate for a FaaS-backed deployment.</p><p>First, I installed the <code>serverless-wsgi</code> plugin:</p><pre>$ npm install serverless-wsgi -g</pre><p>Then, I created a file called <code>punywsgi.py</code> that exposes PunyAuth as a WSGI application:</p><pre>from pecan.deploy import deploy\napp = deploy('my-config.py')</pre><p>In order to bundle up PunyAuth and all of its dependencies, serverless-wsgi needs a <code>requirements.txt</code> file, which is easily done using <code>pip</code>:</p><pre>$ pip freeze > requirements.txt</pre><p>Finally, I created a <code>serverless.yml</code> file that defines the service:</p><pre>service: serverless-punyauth\n\nplugins:\n - serverless-wsgi\n\ncustom:\n wsgi:\n app: punywsgi.app\n\nprovider:\n name: aws\n runtime: python3.6\n region: us-east-1\n iamRoleStatements:\n - Effect: \"Allow\"\n Action:\n - s3:*\n Resource:\n - arn:aws:s3:::cleverdevil-punyauth-testing/*\n\nfunctions:\n app:\n handler: wsgi.handler\n events:\n - http: ANY /\n - http: 'ANY {proxy+}'</pre><p>The <code>serverless.yml</code> file declares a service called <code>serverless-punyauth</code>, enables the <code>serverless-wsgi</code> plugin, and directs it to expose the WSGI app defined in <code>punywsgi.app</code>. When using <code>serverless-wsgi</code>, the bundled <code>wsgi.handler</code> can automatically map requests and responses coming in through the Amazon API Gateway to the deployed WSGI app.</p><p>In the case of PunyAuth, the function itself needs read/write access to a particular AWS S3 bucket, which is accomplished here by defining an AWS IAM role that explicitly grants this access.</p><p>At this point, the application is ready to be deployed to AWS Lambda.</p><pre>$ serverless deploy\nServerless: Packaging Python WSGI handler...\nServerless: Packaging required Python packages...\nServerless: Linking required Python packages...\nServerless: Packaging service...\nServerless: Excluding development dependencies...\nServerless: Unlinking required Python packages...\nServerless: Uploading CloudFormation file to S3...\nServerless: Uploading artifacts...\nServerless: Uploading service .zip file to S3 (2.08 MB)...\nServerless: Validating template...\nServerless: Updating Stack...\nServerless: Checking Stack update progress...\n................\nServerless: Stack update finished...\nService Information\nservice: serverless-punyauth\nstage: dev\nregion: us-east-1\nstack: serverless-punyauth-dev\napi keys:\n None\nendpoints:\n ANY - <a href=\"https://rpmchol040.execute-api.us-east-1.amazonaws.com/dev\">https://rpmchol040.execute-api.us-east-1.amazonaws.com/dev</a>\n ANY - <a href=\"https://rpmchol040.execute-api.us-east-1.amazonaws.com/dev/%7Bproxy+%7D\">https://rpmchol040.execute-api.us-east-1.amazonaws.com/dev/{proxy+}</a>\nfunctions:\n app: serverless-punyauth-dev-app\nServerless: Removing old service versions...</pre><p>Tada! We've deployed PunyAuth as a Lambda function!</p><h2>Use Cases and Benefits</h2><p>Deploying WSGI applications on Lambda is certainly cool, but its also not appropriate for all use cases. Typically, WSGI applications are deployed in always-running WSGI servers. With Lambda, the behind-the-scenes server that represents the environment for your application is magically started and stopped on an as-needed basis, and the application itself will need to be loaded during the function invokation on-demand. This adds some additional overhead, so in the case of high-performance or frequently-accessed applications, you'll likely want to go another route.</p><p>That said, for applications like PunyAuth, where performance isn't super critical, and the application is accessed relatively infrequently, this approach has a multitude of benefits.</p><h3>Benefit: Cost</h3><p>Deploying a Python WSGI application the traditional way, with always-on infrastructure, will certainly result in higher performance, but also in significantly higher cost. With Lambda, you only pay for the actual execution time of your functions, rather than paying for, say, an EC2 instance that is always on. That means that hosting a low-traffic WSGI app in Lambda could cost you pennies a month.</p><h3>Benefit: Management</h3><p>While servers have certainly become easier to manage over the years, and managed hosting providers exist that will handle operating system updates and security patches, there's no question that deploying to Lambda will reduce your management overhead. The Lambda execution environment is entirely managed by Amazon, allowing you to focus on your application code, rather than on managing a fleet of servers.</p><h3>Benefit: Security</h3><p>With AWS handling the heavy lifting of keeping the execution environment up-to-date with security patches, and the ability to apply fine-grained controls using AWS IAM roles, keeping your application secure is a bit easier.</p><h2>Conclusion</h2><p>AWS Lambda and the Serverless Framework provide a whole new way to host Python WSGI applications that can help reduce cost, eliminate management, and improve security.</p>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://aperture-media.p3k.io/cleverdevil.io/abdf4969f052cb64177f73cda9be6a709931eb55607f8c1fb2c69eb135841acf.jpg"
},
"_id": "175873",
"_source": "71",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-30T17:15:12+0000",
"url": "http://known.kevinmarks.com/2018/come-to-homebrew-website-club-in-sf",
"syndication": [
"https://twitter.com/kevinmarks/status/979769024354504704"
],
"in-reply-to": [
"https://twitter.com/stubbornella/status/979751186990432256?s=19"
],
"content": {
"text": "Come to Homebrew Website Club in sf this Wednesday and people will help with that feeling https://indieweb.org/events/2018-04-04-homebrew-website-club",
"html": "Come to Homebrew Website Club in sf this Wednesday and people will help with that feeling <a href=\"https://indieweb.org/events/2018-04-04-homebrew-website-club\">https://indieweb.org/events/2018-04-04-homebrew-website-club</a>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "175367",
"_source": "205",
"_is_read": true
}
Over the last year, especially, it has seemed much more like “blog to write, tweet to fight.” Moreover, the way that our writing and personal data has been used by social media companies has become more obviously problematic—not that it wasn’t problematic to begin with.
Which is why it’s once again a good time to blog, especially on one’s own domain.
But on the other hand…
It is psychological gravity, not technical inertia, however, that is the greater force against the open web. Human beings are social animals and centralized social media like Twitter and Facebook provide a powerful sense of ambient humanity—the feeling that “others are here”—that is often missing when one writes on one’s own site.
That’s true …which is why brid.gy is such an incredibly powerful service for, well, bridging the gap between your own personal site and the silos, allowing for that feeling of ambient humanity.
{
"type": "entry",
"published": "2018-03-30T17:06:59Z",
"url": "https://adactio.com/links/13650",
"category": [
"indieweb",
"blogging",
"blogs",
"writing",
"personal",
"publishing",
"silos",
"twitter",
"facebook",
"social",
"networks",
"ambient",
"humanity"
],
"bookmark-of": [
"https://dancohen.org/2018/03/21/back-to-the-blog/"
],
"content": {
"text": "Back to the Blog \u2013 Dan Cohen\n\n\n\nOn moving from silos to your own website:\n\n\n Over the last year, especially, it has seemed much more like \u201cblog to write, tweet to fight.\u201d Moreover, the way that our writing and personal data has been used by social media companies has become more obviously problematic\u2014not that it wasn\u2019t problematic to begin with.\n \n Which is why it\u2019s once again a good time to blog, especially on one\u2019s own domain.\n\n\nBut on the other hand\u2026\n\n\n It is psychological gravity, not technical inertia, however, that is the greater force against the open web. Human beings are social animals and centralized social media like Twitter and Facebook provide a powerful sense of ambient humanity\u2014the feeling that \u201cothers are here\u201d\u2014that is often missing when one writes on one\u2019s own site.\n\n\nThat\u2019s true \u2026which is why brid.gy is such an incredibly powerful service for, well, bridging the gap between your own personal site and the silos, allowing for that feeling of ambient humanity.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://dancohen.org/2018/03/21/back-to-the-blog/\">\nBack to the Blog \u2013 Dan Cohen\n</a>\n</h3>\n\n<p>On moving from silos to your own website:</p>\n\n<blockquote>\n <p>Over the last year, especially, it has seemed much more like \u201cblog to write, tweet to fight.\u201d Moreover, the way that our writing and personal data has been used by social media companies has become more obviously problematic\u2014not that it wasn\u2019t problematic to begin with.</p>\n \n <p>Which is why it\u2019s once again a good time to blog, especially on one\u2019s own domain.</p>\n</blockquote>\n\n<p>But on the other hand\u2026</p>\n\n<blockquote>\n <p>It is <em>psychological gravity</em>, not technical inertia, however, that is the greater force against the open web. Human beings are social animals and centralized social media like Twitter and Facebook provide a powerful sense of <em>ambient humanity</em>\u2014the feeling that \u201cothers are here\u201d\u2014that is often missing when one writes on one\u2019s own site.</p>\n</blockquote>\n\n<p>That\u2019s true \u2026which is why <a href=\"https://brid.gy/\">brid.gy</a> is such an incredibly powerful service for, well, <em>bridging</em> the gap between your own personal site and the silos, allowing for that feeling of ambient humanity.</p>"
},
"_id": "175353",
"_source": "2",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-30T11:15:12+0000",
"url": "http://known.kevinmarks.com/2018/sarahjamielewis-this-sounds-a-lot-like-dat",
"category": [
"indieweb"
],
"syndication": [
"https://twitter.com/kevinmarks/status/979678425098014720"
],
"in-reply-to": [
"https://twitter.com/SarahJamieLewis/status/978059988349288449"
],
"content": {
"text": "@SarahJamieLewis This sounds a lot like dat - have you looked at Beaker Browser https://beakerbrowser.com/ and Fritter? https://fritter.hashbase.io/ #indieweb",
"html": "<a href=\"https://twitter.com/SarahJamieLewis\">@SarahJamieLewis</a> This sounds a lot like dat - have you looked at Beaker Browser <a href=\"https://beakerbrowser.com/\">https://beakerbrowser.com/</a> and Fritter? <a href=\"https://fritter.hashbase.io/\">https://fritter.hashbase.io/</a> <a href=\"http://known.kevinmarks.com/tag/indieweb\" class=\"p-category\">#indieweb</a>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "174317",
"_source": "205",
"_is_read": true
}
@SarahJamieLewis I agree that we don't need to keep reinventing protocols. DNS and web serving are decentralized and robust. We can layer protocols on top for social subscription and notification - WebPub, WebMention and more #indieweb ones
{
"type": "entry",
"published": "2018-03-30T11:04:46+0000",
"url": "http://known.kevinmarks.com/2018/sarahjamielewis-i-agree-that-we-dont-need",
"category": [
"indieweb"
],
"syndication": [
"https://twitter.com/kevinmarks/status/979675798679445505"
],
"in-reply-to": [
"https://twitter.com/SarahJamieLewis/status/978057959686078464"
],
"content": {
"text": "@SarahJamieLewis I agree that we don't need to keep reinventing protocols. DNS and web serving are decentralized and robust. We can layer protocols on top for social subscription and notification - WebPub, WebMention and more #indieweb ones",
"html": "<a href=\"https://twitter.com/SarahJamieLewis\">@SarahJamieLewis</a> I agree that we don't need to keep reinventing protocols. DNS and web serving are decentralized and robust. We can layer protocols on top for social subscription and notification - WebPub, WebMention and more <a href=\"http://known.kevinmarks.com/tag/indieweb\" class=\"p-category\">#indieweb</a> ones"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "174295",
"_source": "205",
"_is_read": true
}
Posting on your own site, POSSEd to twitter and using brid.gy to turn the replies on twitter into webmentions works rather well - not sure if it catches replies to replies though #Indieweb
{
"type": "entry",
"published": "2018-03-30T07:54:33+0000",
"url": "http://known.kevinmarks.com/2018/posting-on-your-own-site-possed-to",
"category": [
"Indieweb"
],
"syndication": [
"https://twitter.com/kevinmarks/status/979627929213652992"
],
"in-reply-to": [
"https://twitter.com/stubbornella/status/979617851580366848?s=19"
],
"content": {
"text": "Posting on your own site, POSSEd to twitter and using brid.gy to turn the replies on twitter into webmentions works rather well - not sure if it catches replies to replies though #Indieweb",
"html": "Posting on your own site, POSSEd to twitter and using brid.gy to turn the replies on twitter into webmentions works rather well - not sure if it catches replies to replies though <a href=\"http://known.kevinmarks.com/tag/Indieweb\" class=\"p-category\">#Indieweb</a>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "174023",
"_source": "205",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-29 22:35-0700",
"url": "https://gregorlove.com/2018/03/new-release-of-mf2-to-icalendar/",
"category": [
"indieweb",
"microformats"
],
"syndication": [
"https://news.indieweb.org/en"
],
"name": "New release of mf2 to iCalendar",
"content": {
"text": "I\u2019ve released version 0.0.2 of mf2 to iCalendar, a library to convert h-event microformats into iCalendar.\n\nIt now supports dates with local time (no timezone) and it prefers the content property over the description property. Also, unit tests. Because test ALL THE THINGS!",
"html": "<p>I\u2019ve released version 0.0.2 of <a href=\"https://github.com/gRegorLove/mf2-to-iCalendar\">mf2 to iCalendar</a>, a library to convert h-event microformats into iCalendar.</p>\n\n<p>It now supports dates with local time (no timezone) and it prefers the <code>content</code> property over the <code>description</code> property. Also, unit tests. Because test ALL THE THINGS!</p>"
},
"author": {
"type": "card",
"name": "gRegor Morrill",
"url": "https://gregorlove.com/",
"photo": "https://gregorlove.com/site/assets/files/3473/profile-2016-med.jpg"
},
"_id": "173989",
"_source": "95",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-29T22:38:38-07:00",
"url": "https://aaronparecki.com/2018/03/29/46/pdxnode",
"category": [
"pdxnode",
"indieweb",
"okta",
"oauth"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/5de4ba35a21419800584a9851ff8bedce227d0af80b58e848d8ba0d8efff2a13.jpg"
],
"syndication": [
"https://twitter.com/aaronpk/status/979593884828184576"
],
"content": {
"text": "Had a great time at the @pdxnode meetup tonight! Here are some of the resources I talked about!\n\nhttps://indieweb.org\n\nhttps://indieweb.org/webmention\n\nOkta APIs which I used to log in to my website\nhttps://developer.okta.com\n\nhttps://indieauth.spec.indieweb.org\n\nMonocle\nhttps://aaronparecki.com/2018/03/12/17/building-an-indieweb-reader",
"html": "Had a great time at the <a href=\"https://twitter.com/pdxnode\">@pdxnode</a> meetup tonight! Here are some of the resources I talked about!<br /><br /><a href=\"https://indieweb.org\">https://indieweb.org</a><br /><br /><a href=\"https://indieweb.org/webmention\">https://indieweb.org/webmention</a><br /><br />Okta APIs which I used to log in to my website<br /><a href=\"https://developer.okta.com\">https://developer.okta.com</a><br /><br /><a href=\"https://indieauth.spec.indieweb.org\">https://indieauth.spec.indieweb.org</a><br /><br />Monocle<br /><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>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/2b8e1668dcd9cfa6a170b3724df740695f73a15c2a825962fd0a0967ec11ecdc.jpg"
},
"_id": "173873",
"_source": "16",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-29T22:49:14+0000",
"url": "http://known.kevinmarks.com/2018/as-i-have-said-for-many-years",
"category": [
"indieweb"
],
"syndication": [
"https://twitter.com/kevinmarks/status/979490699073617920"
],
"content": {
"text": "\u201cAs I have said for many years \u2013 \u201cI am my own system of record\u201d.\u201d https://people-first.net/2018/03/29/the-second-innings-of-the-internet #indieweb",
"html": "\u201cAs I have said for many years \u2013 \u201cI am my own system of record\u201d.\u201d <a href=\"https://people-first.net/2018/03/29/the-second-innings-of-the-internet\">https://people-first.net/2018/03/29/the-second-innings-of-the-internet</a> <a href=\"http://known.kevinmarks.com/tag/indieweb\" class=\"p-category\">#indieweb</a>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "173655",
"_source": "205",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-29T22:33:48+0000",
"url": "http://known.kevinmarks.com/2018/the-novelty-and-connection-facebook-offered-in",
"category": [
"indieweb"
],
"syndication": [
"https://twitter.com/kevinmarks/status/979486814510637056"
],
"content": {
"text": "\u201cthe novelty and connection Facebook offered in its early days is gone. In its place is that constant feeling that it\u2019s 3am in a Reno, Nevada casino when we\u2019d like to stop playing the slot machines, but can\u2019t quite do it.\u201d -@ginab https://medium.com/@ginab/dont-just-deletefacebook-let-s-build-something-better-6bf5caad6965 #indieweb",
"html": "\u201cthe novelty and connection Facebook offered in its early days is gone. In its place is that constant feeling that it\u2019s 3am in a Reno, Nevada casino when we\u2019d like to stop playing the slot machines, but can\u2019t quite do it.\u201d -@ginab <a href=\"https://medium.com/@ginab/dont-just-deletefacebook-let-s-build-something-better-6bf5caad6965\">https://medium.com/@ginab/dont-just-deletefacebook-let-s-build-something-better-6bf5caad6965</a> <a href=\"http://known.kevinmarks.com/tag/indieweb\" class=\"p-category\">#indieweb</a>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "173656",
"_source": "205",
"_is_read": true
}
“As danah points out, though, the vulnerable people are banding together and speaking out loudly — with the support of a lot of privileged people as well. ” http://www.talesfromthe.net/jon/?p=2948#indieweb
{
"type": "entry",
"published": "2018-03-29T22:03:00+0000",
"url": "http://known.kevinmarks.com/2018/as-danah-points-out-though-the",
"category": [
"indieweb"
],
"syndication": [
"https://twitter.com/kevinmarks/status/979479063189274624"
],
"content": {
"text": "\u201cAs danah points out, though, the vulnerable people are banding together and speaking out loudly \u2014 with the support of a lot of privileged people as well. \u201d\nhttp://www.talesfromthe.net/jon/?p=2948 #indieweb",
"html": "\u201cAs danah points out, though, the vulnerable people are banding together and speaking out loudly \u2014 with the support of a lot of privileged people as well. \u201d<br /><a href=\"http://www.talesfromthe.net/jon/?p=2948\">http://www.talesfromthe.net/jon/?p=2948</a> <a href=\"http://known.kevinmarks.com/tag/indieweb\" class=\"p-category\">#indieweb</a>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "173658",
"_source": "205",
"_is_read": true
}
@bphogan Ryan and I are posting on our own sites and sending copies to the ephemeral twitter. You could be too, you have the space for it https://bphogan.com/ join the #indieweb
{
"type": "entry",
"published": "2018-03-29T21:36:03+0000",
"url": "http://known.kevinmarks.com/2018/bphogan-ryan-and-i-are-posting-on",
"category": [
"indieweb"
],
"in-reply-to": [
"https://twitter.com/bphogan/status/979467496993501184"
],
"content": {
"text": "@bphogan Ryan and I are posting on our own sites and sending copies to the ephemeral twitter. You could be too, you have the space for it https://bphogan.com/ join the #indieweb",
"html": "<a href=\"https://twitter.com/bphogan\">@bphogan</a> Ryan and I are posting on our own sites and sending copies to the ephemeral twitter. You could be too, you have the space for it <a href=\"https://bphogan.com/\">https://bphogan.com/</a> join the <a href=\"http://known.kevinmarks.com/tag/indieweb\" class=\"p-category\">#indieweb</a>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "173659",
"_source": "205",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-29T21:04:07+0000",
"url": "http://known.kevinmarks.com/2018/bphogan-come-on-over-to-to",
"syndication": [
"https://twitter.com/kevinmarks/status/979464244549754880"
],
"in-reply-to": [
"https://twitter.com/bphogan/status/978822534509596673"
],
"content": {
"text": "@bphogan come on over to https://chat.indieweb.org to talk about it instead of using a closed silo like twitter",
"html": "<a href=\"https://twitter.com/bphogan\">@bphogan</a> come on over to <a href=\"https://chat.indieweb.org\">https://chat.indieweb.org</a> to talk about it instead of using a closed silo like twitter"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-media.p3k.io/known.kevinmarks.com/f893d11435a62200ec9585e0ea3d84b2bdc478aa0a056dda35a43ce4c04d58a0.jpg"
},
"_id": "173660",
"_source": "205",
"_is_read": true
}
B: We need a better social network.
A: Do you like ads?
B: No!
A: Can I sell your data?
B: No!
A: Can I have your data anyway?
B: No!
A: Do you want to host it yourself?
B: No!
A: Do you want to pay for this better social network?
B: No!
A: OK, bye!
{
"type": "entry",
"published": "2018-03-28T21:48:25-04:00",
"url": "https://kartikprabhu.com/notes/better-social-networks",
"category": [
"web",
"indieweb"
],
"syndication": [
"https://twitter.com/kartik_prabhu/status/979175639268888577"
],
"content": {
"text": "B: We need a better social network.\nA: Do you like ads?\nB: No!\nA: Can I sell your data?\nB: No!\nA: Can I have your data anyway?\nB: No!\nA: Do you want to host it yourself?\nB: No!\nA: Do you want to pay for this better social network?\nB: No!\nA: OK, bye!"
},
"author": {
"type": "card",
"name": "Kartik Prabhu",
"url": "https://kartikprabhu.com/about#me",
"photo": "https://aperture-media.p3k.io/kartikprabhu.com/981e0000045eab42b01b65701176ae41915fc92f36edd0137979ffd4af0c00d1.jpg"
},
"_id": "172785",
"_source": "204",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-29T11:42:15-07:00",
"url": "https://aaronparecki.com/2018/03/29/11/php-mf2",
"category": [
"microformats"
],
"syndication": [
"https://github.com/indieweb/php-mf2/releases/tag/v0.4.3"
],
"name": "php-mf2 v0.4.3: Optional HTML5 Support",
"content": {
"text": "This release includes support for using an alternative HTML parser that understands HTML5 tags.\n\nv0.4.3\n\nThe built-in HTML parser does not understand some HTML5 tags such as <article>, which causes issues when those tags are adjacent to elements that can be automatically closed, such as <p>. A simple example that is incorrectly parsed with a non-HTML5 parser is below.\n\n<div class=\"h-entry\">\n <p class=\"p-name\">Hello World\n <article class=\"e-content\">The content of the blog post</article>\n</div>\n\n\nWithout proper knowledge of HTML5 tags such as <article>, the contents of that tag ends up inside the p-name in this example. Using an HTML5 parser will properly close the <p> tag and return the expected result.\n\nThe php-mf2 library does not automatically install the HTML5 parser, since it does not want to impose additional dependencies on your code base. If you wish to use the HTML5 parser, you can include it in your project explicitly, either by loading it manually or using composer:\n\ncomposer require masterminds/html5\n\n\nIf this library is present, then the php-mf2 parser will use it when parsing HTML.",
"html": "<p>This release includes support for using an alternative HTML parser that understands HTML5 tags.</p>\n\n<p><a href=\"https://github.com/indieweb/php-mf2/releases/tag/v0.4.3\">v0.4.3</a></p>\n\n<p>The built-in HTML parser does not understand some HTML5 tags such as <code><article></code>, which causes issues when those tags are adjacent to elements that can be automatically closed, such as <code><p></code>. A simple example that is incorrectly parsed with a non-HTML5 parser is below.</p>\n\n<pre><code><div class=\"h-entry\">\n <p class=\"p-name\">Hello World\n <article class=\"e-content\">The content of the blog post</article>\n</div>\n</code></pre>\n\n<p>Without proper knowledge of HTML5 tags such as <code><article></code>, the contents of that tag ends up inside the <code>p-name</code> in this example. Using an HTML5 parser will properly close the <code><p></code> tag and return the expected result.</p>\n\n<p>The <code>php-mf2</code> library does not automatically install the HTML5 parser, since it does not want to impose additional dependencies on your code base. If you wish to use the HTML5 parser, you can include it in your project explicitly, either by loading it manually or using composer:</p>\n\n<pre><code>composer require masterminds/html5\n</code></pre>\n\n<p>If this library is present, then the <code>php-mf2</code> parser will use it when parsing HTML.</p>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/2b8e1668dcd9cfa6a170b3724df740695f73a15c2a825962fd0a0967ec11ecdc.jpg"
},
"_id": "172455",
"_source": "16",
"_is_read": true
}
@johnjohnston This presentation makes my itch for a public multisite #WordPress install with an #IndieWeb stack even worse... I may have to pick your brain a bit more on it. #pressedconf18
{
"type": "entry",
"published": "2018-03-29T18:27:37+00:00",
"url": "http://stream.boffosocko.com/2018/johnjohnston-this-presentation-makes-my-itch-for-a-public-multisite",
"category": [
"WordPress",
"IndieWeb",
"pressedconf18"
],
"syndication": [
"https://twitter.com/ChrisAldrich/status/979424875386417152"
],
"in-reply-to": [
"https://twitter.com/johnjohnston/status/979423141830291458?s=09",
"http://johnjohnston.info/blog/word-press-for-weans-2018-pressedconf18/"
],
"content": {
"text": "@johnjohnston This presentation makes my itch for a public multisite #WordPress install with an #IndieWeb stack even worse... I may have to pick your brain a bit more on it.\n#pressedconf18",
"html": "@johnjohnston This presentation makes my itch for a public multisite <a href=\"http://stream.boffosocko.com/tag/WordPress\" class=\"p-category\">#WordPress</a> install with an <a href=\"http://stream.boffosocko.com/tag/IndieWeb\" class=\"p-category\">#IndieWeb</a> stack even worse... I may have to pick your brain a bit more on it.<br /><a href=\"http://stream.boffosocko.com/tag/pressedconf18\" class=\"p-category\">#pressedconf18</a>"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "https://aperture-media.p3k.io/stream.boffosocko.com/d0ba9f65fcbf0cef3bdbcccc0b6a1f42b1310f7ab2e07208c7a396166cde26b1.jpg"
},
"_id": "172387",
"_source": "192",
"_is_read": true
}
{
"type": "entry",
"published": "2018-03-29T17:51:25+00:00",
"url": "http://stream.boffosocko.com/2018/openetc-have-you-considered-adding-the-webmention-plugins-for-site",
"syndication": [
"https://twitter.com/ChrisAldrich/status/979415801051648000"
],
"in-reply-to": [
"https://twitter.com/openetc/status/979405324653334528?s=09"
],
"content": {
"text": "@openetc Have you considered adding the webmention plugins for site to site conversation between participants? https://indieweb.org/Webmention\nhttps://indieweb.org/Wordpress_Webmention_Plugin",
"html": "<a href=\"https://twitter.com/openetc\">@openetc</a> Have you considered adding the webmention plugins for site to site conversation between participants? <a href=\"https://indieweb.org/Webmention\">https://indieweb.org/Webmention</a><br /><a href=\"https://indieweb.org/Wordpress_Webmention_Plugin\">https://indieweb.org/Wordpress_Webmention_Plugin</a>"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "https://aperture-media.p3k.io/stream.boffosocko.com/d0ba9f65fcbf0cef3bdbcccc0b6a1f42b1310f7ab2e07208c7a396166cde26b1.jpg"
},
"_id": "172255",
"_source": "192",
"_is_read": true
}