While I think a Gallery object would be nice, eventually, I am not convinced that its necessarily the best way to go here. Its my understanding that pretty much all Entities support attachments, so doing it in the near-term in a more cross-cutting way would enable any type of post created via Micropub that contains multiple attachments to elegantly display the images.
{
"type": "entry",
"published": "2018-02-09T20:33:23+00:00",
"url": "https://cleverdevil.io/2018/while-i-think-a-gallery-object-would",
"in-reply-to": [
"https://github.com/idno/Known/issues/1991"
],
"content": {
"text": "While I think a Gallery object would be nice, eventually, I am not convinced that its necessarily the best way to go here. Its my understanding that pretty much all Entities support attachments, so doing it in the near-term in a more cross-cutting way would enable any type of post created via Micropub that contains multiple attachments to elegantly display the images."
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://cleverdevil.io/file/2fa19f964fb8970faaf20b909c69d6cb/thumb.png"
},
"_id": "49435",
"_source": "71",
"_is_read": true
}
{
"type": "entry",
"published": "2018-02-09T02:06:03+00:00",
"url": "https://miklb.com/blog/2018/02/09/3409/",
"syndication": [
"https://twitter.com/miklb/status/961783010604605441"
],
"name": "02:06# \n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\nBeen in a dev rut, so to break out going to see how quickly I can go from 0 to live #indieweb site sending/receiving webmentions with @eleven_ty. Since it supports liquid, I can use my work from jekyll-indieweb as a heads start https://github.com/miklb/jekyll-indieweb",
"content": {
"text": "Been in a dev rut, so to break out going to see how quickly I can go from 0 to live #indieweb site sending/receiving webmentions with @eleven_ty. Since it supports liquid, I can use my work from jekyll-indieweb as a heads start https://github.com/miklb/jekyll-indieweb",
"html": "<p>Been in a dev rut, so to break out going to see how quickly I can go from 0 to live #indieweb site sending/receiving webmentions with <a href=\"https://twitter.com/eleven_ty\">@eleven_ty</a>. Since it supports liquid, I can use my work from jekyll-indieweb as a heads start <a href=\"https://github.com/miklb/jekyll-indieweb\">https://github.com/miklb/jekyll-indieweb</a>\n</p>"
},
"_id": "44475",
"_source": "42",
"_is_read": true
}
I've said before that I would like to bring a record of the things I mark at reading.am back to my notes website as Bookmarks. In theory, WithKnown makes this very easy, because every type of entry (Posts, Status updates, Bookmarks etc) has its own API, to which you can send correctly formatted POST requests. You can also send POST requests to Known's micropub endpoint. Unfortunately, neither option works for Bookmarks (and probably not for Likes and Reposts, but I haven't played with them).
More this way ...
{
"type": "entry",
"published": "2018-02-08T16:00:00+0100",
"summary": "I've said before that I would like to bring a record of the things I mark at reading.am back to my notes website as Bookmarks. In theory, WithKnown makes this very easy, because every type of entry (Posts, Status updates, Bookmarks etc) has its own API, to which you can send correctly formatted POST requests. You can also send POST requests to Known's micropub endpoint. Unfortunately, neither option works for Bookmarks (and probably not for Likes and Reposts, but I haven't played with them). \n\n More this way ...",
"url": "https://www.jeremycherfas.net/blog/why-i-cannot-post-bookmarks-to-known-automatically",
"name": "Why I cannot post bookmarks to Known automatically",
"content": {
"text": "I've said before that I would like to bring a record of the things I mark at reading.am back to my notes website as Bookmarks. In theory, WithKnown makes this very easy, because every type of entry (Posts, Status updates, Bookmarks etc) has its own API, to which you can send correctly formatted POST requests. You can also send POST requests to Known's micropub endpoint. Unfortunately, neither option works for Bookmarks (and probably not for Likes and Reposts, but I haven't played with them).\n\n More this way ...",
"html": "<p>I've said before that I would like to bring a record of the things I mark at reading.am back to my notes website as Bookmarks. In theory, WithKnown makes this very easy, because every type of entry (Posts, Status updates, Bookmarks etc) has its own API, to which you can send correctly formatted POST requests. You can also send POST requests to Known's micropub endpoint. Unfortunately, neither option works for Bookmarks (and probably not for Likes and Reposts, but I haven't played with them).</p>\n\n <p><a href=\"https://www.jeremycherfas.net/blog/why-i-cannot-post-bookmarks-to-known-automatically\">More this way ...</a></p>"
},
"_id": "100319",
"_source": "202",
"_is_read": true
}
Thanks Chris for expanding on Dries' super-welcome post about using Drupal to participate in the independent web first, and push to locked-down privatized pieces of the Internet like Facebook, Twitter, et. al. secondarily!
{
"type": "entry",
"published": "2018-02-07T23:53:22+0000",
"url": "https://mlncn.withknown.com/2018/thanks-chris-for-expanding-on-dries-super-welcome-post-about-using",
"category": [
"IndieWeb"
],
"syndication": [
"https://twitter.com/mlncn/status/961387444741419008",
"https://facebook.com/10152328966186123/posts/10155066805111123"
],
"in-reply-to": [
"http://boffosocko.com/2018/02/07/reply-to-to-pesos-or-to-posse-by-dries-buytaert/"
],
"content": {
"text": "Thanks Chris for expanding on Dries' super-welcome post about using Drupal to participate in the independent web first, and push to locked-down privatized pieces of the Internet like Facebook, Twitter, et. al. secondarily!\n\n\nI'm sure you didn't mean it this way \u2013 and honestly i was happy to be alerted to your post by https://withknown.com/ \u2013 but you seem to have pioneered a sort of webmention spam! I couldn't figure out where in your post you actually referenced me, like Known claimed, until i viewed source and saw that in empty links you had my https://mlncn.withknown.com/ blog and indeed my cooperative's post http://agaric.com/blogs/marking-drupals-blog-posts-indieweb as well as a link to the fantastic http://hongpong.com (he is more active on http://twitter.com/hongpong but is indeed working to push the #IndieWeb movement forward).\n\n\nWere you intending to alert us through webmentions, or had we come up in research but didn't end up being included in the finished post?",
"html": "Thanks Chris for expanding on Dries' super-welcome post about using Drupal to participate in the independent web first, and push to locked-down privatized pieces of the Internet like Facebook, Twitter, et. al. secondarily!<br /><br />\nI'm sure you didn't mean it this way \u2013 and honestly i was happy to be alerted to your post by <a href=\"https://withknown.com/\">https://withknown.com/</a> \u2013 but you seem to have pioneered a sort of webmention spam! I couldn't figure out where in your post you actually referenced me, like Known claimed, until i viewed source and saw that in empty links you had my <a href=\"https://mlncn.withknown.com/\">https://mlncn.withknown.com/</a> blog and indeed my cooperative's post <a href=\"http://agaric.com/blogs/marking-drupals-blog-posts-indieweb\">http://agaric.com/blogs/marking-drupals-blog-posts-indieweb</a> as well as a link to the fantastic <a href=\"http://hongpong.com\">http://hongpong.com</a> (he is more active on <a href=\"http://twitter.com/hongpong\">http://twitter.com/hongpong</a> but is indeed working to push the <a href=\"https://mlncn.withknown.com/tag/IndieWeb\" class=\"p-category\">#IndieWeb</a> movement forward).<br /><br />\nWere you intending to alert us through webmentions, or had we come up in research but didn't end up being included in the finished post?"
},
"author": {
"type": "card",
"name": "benjamin melan\u00e7on",
"url": "https://mlncn.withknown.com/profile/mlncn",
"photo": "https://mlncn.withknown.com/file/00c7d8e67682303419851cd5bf04d11d/thumb.jpg"
},
"_id": "123958",
"_source": "234",
"_is_read": true
}
{
"type": "entry",
"published": "2018-02-07T11:30:16-08:00",
"url": "https://aaronparecki.com/2018/02/07/7/indieauth",
"category": [
"indieauth",
"indieweb"
],
"name": "IndieAuth-Client-PHP 0.3.1",
"content": {
"text": "This release includes two new methods for quickly developing an IndieAuth client.\n\nThe library can now handle all the boilerplate work of generating a state parameter, URL canonicalization, and state management between the request and callback.\n\nDeveloping an IndieAuth client now requires just setting a few configuration variables and deciding how to show error messages in your application. See the code below for an example of using the new features!\n\nindex.php\n\n<form action=\"/login.php\" method=\"post\">\n <input type=\"url\" name=\"url\">\n <input type=\"submit\" value=\"Log In\">\n</form>\n\n\nlogin.php\n\n<?php\nrequire('vendor/autoload.php');\nif(!isset($_POST['url'])) {\n die('Missing URL');\n}\n\n// Start a session for the library to be able to save state between requests.\nsession_start();\n\n// You'll need to set up two pieces of information before you can use the client,\n// the client ID and and the redirect URL.\n// The client ID should be the home page of your app.\nIndieAuth\\Client::$clientID = 'https://example.com/client/';\n\n// The redirect URL is where the user will be returned to after they approve the request.\nIndieAuth\\Client::$redirectURL = 'https://example.com/client/redirect.php';\n\n// Pass the user's URL and your requested scope to the client.\n// If you are writing a Micropub client, you should include at least the \"create\" scope.\n// If you are just trying to log the user in, you can omit the second parameter.\nlist($authorizationURL, $error) = IndieAuth\\Client::begin($_POST['url']);\n// or list($authorizationURL, $error) = IndieAuth\\Client::begin($_POST['url']);\n\n// Check whether the library was able to discover the necessary endpoints\nif($error) {\n echo \"<p>Error: \".$error['error'].\"</p>\";\n echo \"<p>\".$error['error_description'].\"</p>\";\n} else {\n // Redirect the user to their authorization endpoint\n header('Location: '.$authorizationURL);\n}\n\n\nredirect.php\n\n<?php\nrequire('vendor/autoload.php');\n\nsession_start();\nIndieAuth\\Client::$clientID = 'https://example.com/client/';\nIndieAuth\\Client::$redirectURL = 'https://example.com/client/redirect.php';\n\nlist($user, $error) = IndieAuth\\Client::complete($_GET);\n\nif($error) {\n echo \"<p>Error: \".$error['error'].\"</p>\";\n echo \"<p>\".$error['error_description'].\"</p>\";\n} else {\n // Login succeeded!\n // If you requested a scope, then there will be an access token in the response.\n // Otherwise there will just be the user's URL.\n echo \"URL: \".$user['me'].\"\n\";\n if(isset($user['access_token'])) {\n echo \"Access Token: \".$user['access_token'].\"\n\";\n echo \"Scope: \".$user['scope'].\"\n\";\n }\n}",
"html": "<p>This release includes two new methods for quickly developing an IndieAuth client.</p>\n\n<p>The library can now handle all the boilerplate work of generating a state parameter, URL canonicalization, and state management between the request and callback.</p>\n\n<p>Developing an IndieAuth client now requires just setting a few configuration variables and deciding how to show error messages in your application. See the code below for an example of using the new features!</p>\n\n<h3>index.php</h3>\n\n<pre><code><form action=\"/login.php\" method=\"post\">\n <input type=\"url\" name=\"url\">\n <input type=\"submit\" value=\"Log In\">\n</form>\n</code></pre>\n\n<h3>login.php</h3>\n\n<pre><code><?php\nrequire('vendor/autoload.php');\nif(!isset($_POST['url'])) {\n die('Missing URL');\n}\n\n// Start a session for the library to be able to save state between requests.\nsession_start();\n\n// You'll need to set up two pieces of information before you can use the client,\n// the client ID and and the redirect URL.\n// The client ID should be the home page of your app.\nIndieAuth\\Client::$clientID = 'https://example.com/client/';\n\n// The redirect URL is where the user will be returned to after they approve the request.\nIndieAuth\\Client::$redirectURL = 'https://example.com/client/redirect.php';\n\n// Pass the user's URL and your requested scope to the client.\n// If you are writing a Micropub client, you should include at least the \"create\" scope.\n// If you are just trying to log the user in, you can omit the second parameter.\nlist($authorizationURL, $error) = IndieAuth\\Client::begin($_POST['url']);\n// or list($authorizationURL, $error) = IndieAuth\\Client::begin($_POST['url']);\n\n// Check whether the library was able to discover the necessary endpoints\nif($error) {\n echo \"<p>Error: \".$error['error'].\"</p>\";\n echo \"<p>\".$error['error_description'].\"</p>\";\n} else {\n // Redirect the user to their authorization endpoint\n header('Location: '.$authorizationURL);\n}\n</code></pre>\n\n<h3>redirect.php</h3>\n\n<pre><code><?php\nrequire('vendor/autoload.php');\n\nsession_start();\nIndieAuth\\Client::$clientID = 'https://example.com/client/';\nIndieAuth\\Client::$redirectURL = 'https://example.com/client/redirect.php';\n\nlist($user, $error) = IndieAuth\\Client::complete($_GET);\n\nif($error) {\n echo \"<p>Error: \".$error['error'].\"</p>\";\n echo \"<p>\".$error['error_description'].\"</p>\";\n} else {\n // Login succeeded!\n // If you requested a scope, then there will be an access token in the response.\n // Otherwise there will just be the user's URL.\n echo \"URL: \".$user['me'].\"<br>\";\n if(isset($user['access_token'])) {\n echo \"Access Token: \".$user['access_token'].\"<br>\";\n echo \"Scope: \".$user['scope'].\"<br>\";\n }\n}\n</code></pre>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aaronparecki.com/images/profile.jpg"
},
"_id": "42695",
"_source": "16",
"_is_read": true
}
{
"type": "entry",
"published": "2018-02-05T10:12:51-08:00",
"url": "https://aaronparecki.com/2018/02/05/6/ownyourgram",
"category": [
"ownyourgram",
"indieweb",
"changelog"
],
"name": "OwnYourGram Updates",
"content": {
"text": "Just pushed a few changes to OwnYourGram this morning! Here's what changed:\nYou can now see the schedule of your account so you know when to expect photos! You'll see which tier you're at, and how long until your account is next polled.\nYou can now add a list of tags that will be sent along with every photo! This is useful if you want all your photos to be tagged \"photo\" or \"instagram\" for example.\n\n I also updated the documentation to include an example of the JSON post format that OwnYourGram can send.\u00a0\n \nIf your site has a Media Endpoint, then OwnYourGram will first upload your photos to your Media Endpoint, and include those URLs in the Micropub request.\u00a0\nThat's it for now! Happy OwnYourGramming!",
"html": "<p>Just pushed a few changes to OwnYourGram this morning! Here's what changed:</p>\n<p>You can now see the schedule of your account so you know when to expect photos! You'll see which tier you're at, and how long until your account is next polled.</p>\n<img src=\"https://aaronparecki.com/2018/02/05/6/image-1.png\" alt=\"\" /><p>You can now add a list of tags that will be sent along with every photo! This is useful if you want all your photos to be tagged \"photo\" or \"instagram\" for example.</p>\n<img src=\"https://aaronparecki.com/2018/02/05/6/image-2.png\" alt=\"\" /><p>\n I also updated the <a href=\"https://ownyourgram.com/docs\">documentation</a> to include an example of the JSON post format that OwnYourGram can send.\u00a0\n </p>\n<p>If your site has a <a href=\"https://www.w3.org/TR/micropub/#media-endpoint\">Media Endpoint</a>, then OwnYourGram will first upload your photos to your Media Endpoint, and include those URLs in the Micropub request.\u00a0</p>\n<p>That's it for now! Happy OwnYourGramming!</p>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aaronparecki.com/images/profile.jpg"
},
"_id": "41032",
"_source": "16",
"_is_read": true
}
Wrapping up the next Micro.blog iOS update, which has more control over cross-posting. Decided to focus on Micro.blog’s own cross-posting for this release, and consider Micropub syndication later. (They are very different models. Just need to focus on the immediate need first.)
{
"type": "entry",
"author": {
"name": "manton",
"url": "http://www.manton.org",
"photo": null
},
"url": "http://www.manton.org/2018/02/6421.html",
"content": {
"html": "<p>Wrapping up the next Micro.blog iOS update, which has more control over cross-posting. Decided to focus on Micro.blog\u2019s own cross-posting for this release, and consider Micropub syndication later. (They are very different models. Just need to focus on the immediate need first.)</p>",
"text": "Wrapping up the next Micro.blog iOS update, which has more control over cross-posting. Decided to focus on Micro.blog\u2019s own cross-posting for this release, and consider Micropub syndication later. (They are very different models. Just need to focus on the immediate need first.)"
},
"published": "2018-02-04T15:28:27+00:00",
"updated": "2018-02-04T15:28:27+00:00",
"_id": "38768",
"_source": "12",
"_is_read": true
}
Remy outlines the process he uses for POSSEing to Medium now that they’ve removed their IFTTT integration.
At some point during 2017, Medium decided to pull their IFTTT applets that allows content to be posted into Medium. Which I think is a pretty shitty move since there was no notification that the applet was pulled (I only noticed after Medium just didn’t contain a few of my posts), and it smacks of “Medium should be the original source”…which may be fine for some people, but I’m expecting my own content to outlast the Medium web site.
{
"type": "entry",
"published": "2018-02-01T16:15:38Z",
"url": "https://adactio.com/links/13371",
"category": [
"indieweb",
"posse",
"medium",
"syndication",
"ifttt",
"rss"
],
"bookmark-of": [
"https://remysharp.com/2018/02/01/how-to-cross-post-to-medium"
],
"content": {
"text": "How to cross post to Medium\n\n\n\nRemy outlines the process he uses for POSSEing to Medium now that they\u2019ve removed their IFTTT integration.\n\n\n At some point during 2017, Medium decided to pull their IFTTT applets that allows content to be posted into Medium. Which I think is a pretty shitty move since there was no notification that the applet was pulled (I only noticed after Medium just didn\u2019t contain a few of my posts), and it smacks of \u201cMedium should be the original source\u201d\u2026which may be fine for some people, but I\u2019m expecting my own content to outlast the Medium web site.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://remysharp.com/2018/02/01/how-to-cross-post-to-medium\">\nHow to cross post to Medium\n</a>\n</h3>\n\n<p>Remy outlines the process he uses for POSSEing to Medium now that they\u2019ve removed their IFTTT integration.</p>\n\n<blockquote>\n <p>At some point during 2017, Medium decided to pull their IFTTT applets that allows content to be posted into Medium. Which I think is a pretty shitty move since there was no notification that the applet was pulled (I only noticed after Medium just didn\u2019t contain a few of my posts), and it smacks of \u201cMedium should be the original source\u201d\u2026which may be fine for some people, but I\u2019m expecting my own content to outlast the Medium web site.</p>\n</blockquote>"
},
"_id": "35539",
"_source": "2",
"_is_read": true
}
{
"type": "entry",
"published": "2018-01-30T15:22:56-08:00",
"url": "https://aaronparecki.com/2018/01/30/23/",
"category": [
"indieweb"
],
"content": {
"text": "\"A photoblog is like Instagram, only it's harder to use, your friends aren't on it, and it's owned by you, not a megacorp.\" \ud83d\ude02 https://www.kickstarter.com/projects/davidfg/you-have-to-see-this-place",
"html": "\"A photoblog is like Instagram, only it's harder to use, your friends aren't on it, and it's owned by you, not a megacorp.\" <a href=\"https://aaronparecki.com/emoji/%F0%9F%98%82\">\ud83d\ude02</a> <a href=\"https://www.kickstarter.com/projects/davidfg/you-have-to-see-this-place\">https://www.kickstarter.com/projects/davidfg/you-have-to-see-this-place</a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aaronparecki.com/images/profile.jpg"
},
"_id": "41039",
"_source": "16",
"_is_read": true
}
I’m not a regular WordPress user, but willing to help however I can. There was some discussion in #indieweb-wordpress about capturing these in such a way they can be individually worked on.
{
"type": "entry",
"published": "2018-01-27 18:39-0800",
"url": "https://gregorlove.com/2018/01/im-not-a-regular-wordpress/",
"in-reply-to": [
"https://islandinthenet.com/indieweb-wordpress-feedback/"
],
"content": {
"text": "I\u2019m not a regular WordPress user, but willing to help however I can. There was some discussion in #indieweb-wordpress about capturing these in such a way they can be individually worked on.",
"html": "<p>I\u2019m not a regular WordPress user, but willing to help however I can. There was some discussion in #indieweb-wordpress about capturing these in such a way they can be individually worked on.</p>"
},
"author": {
"type": "card",
"name": "gRegor Morrill",
"url": "https://gregorlove.com/",
"photo": "https://gregorlove.com/site/assets/files/3473/profile-2016-med.jpg"
},
"refs": {
"https://islandinthenet.com/indieweb-wordpress-feedback/": {
"type": "entry",
"url": "https://islandinthenet.com/indieweb-wordpress-feedback/",
"content": {
"text": "gRegor, I agree with everything you wrote as it is similar to my initial experience with the IndieWeb \u201cGetting Started on WordPress\u201d page. Do you want to work together on fixing this?"
},
"author": {
"type": "card",
"name": "Kh\u00fcrt Williams",
"url": false,
"photo": "https://gregorlove.com/notes/"
}
}
},
"_id": "29812",
"_source": "95",
"_is_read": true
}
{
"type": "entry",
"published": "2018-01-26T08:49:05Z",
"url": "https://adactio.com/links/13356",
"category": [
"rss",
"syndication",
"reading",
"publishing",
"indieweb",
"blogging",
"sharing",
"writing",
"feedbin",
"reeder",
"history",
"personal"
],
"bookmark-of": [
"https://robinrendle.com/notes/how-to-read-the-internet/"
],
"content": {
"text": "Robin Rendle \u203a How to Read the Internet\n\n\n\nThe past, present and future of RSS.\n\n\n If I had to choose my Twitter account over my RSS setup I wouldn\u2019t hesitate for a second \u2014 I\u2019d throw Twitter right into the ocean.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://robinrendle.com/notes/how-to-read-the-internet/\">\nRobin Rendle \u203a How to Read the Internet\n</a>\n</h3>\n\n<p>The past, present and future of RSS.</p>\n\n<blockquote>\n <p>If I had to choose my Twitter account over my RSS setup I wouldn\u2019t hesitate for a second \u2014 I\u2019d throw Twitter right into the ocean.</p>\n</blockquote>"
},
"_id": "27685",
"_source": "2",
"_is_read": true
}
Paul weighs up the pros and cons of using silos (like Twitter and Facebook) and using the Indie Web. This bit made me want to stand on my desk and cry, “Oh captain, my captain!”:
“The market has proven that consumers want freely available social networks that are easy to use, and used by everyone else. Only centralised services can provide this, not familiarity with a command line and a succession of acronyms and protocols”, says my not entirely fictional naysayer.
I’m not sure this argument follows. While the human desire to connect and communicate easily with each other has been proven many times over, it’s becoming clear that all-encompassing centralised networks are not the solution. That way lies algorithmically-skewed streams of consciousness, layered upon sordid business models and Californian ideology. Fuck that.
The web is agreement, but that doesn’t mean we agree to use the same websites.
{
"type": "entry",
"published": "2018-01-25T13:14:43Z",
"url": "https://adactio.com/links/13354",
"category": [
"indieweb",
"twitter",
"microblogging",
"publishing",
"personal",
"writing",
"sharing",
"decentralisation"
],
"bookmark-of": [
"https://paulrobertlloyd.com/2018/01/microblogging"
],
"content": {
"text": "Microblogging / Paul Robert Lloyd\n\n\n\nPaul weighs up the pros and cons of using silos (like Twitter and Facebook) and using the Indie Web. This bit made me want to stand on my desk and cry, \u201cOh captain, my captain!\u201d:\n\n\n \u201cThe market has proven that consumers want freely available social networks that are easy to use, and used by everyone else. Only centralised services can provide this, not familiarity with a command line and a succession of acronyms and protocols\u201d, says my not entirely fictional naysayer.\n \n I\u2019m not sure this argument follows. While the human desire to connect and communicate easily with each other has been proven many times over, it\u2019s becoming clear that all-encompassing centralised networks are not the solution. That way lies algorithmically-skewed streams of consciousness, layered upon sordid business models and Californian ideology. Fuck that.\n \n The web is agreement, but that doesn\u2019t mean we agree to use the same websites.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://paulrobertlloyd.com/2018/01/microblogging\">\nMicroblogging / Paul Robert Lloyd\n</a>\n</h3>\n\n<p>Paul weighs up the pros and cons of using silos (like Twitter and Facebook) and using the Indie Web. This bit made me want to stand on my desk and cry, \u201cOh captain, my captain!\u201d:</p>\n\n<blockquote>\n <p>\u201cThe market has proven that consumers want freely available social networks that are easy to use, and used by everyone else. Only centralised services can provide this, not familiarity with a command line and a succession of acronyms and protocols\u201d, says my not entirely fictional naysayer.</p>\n \n <p>I\u2019m not sure this argument follows. While the human desire to connect and communicate easily with each other has been proven many times over, it\u2019s becoming clear that all-encompassing centralised networks are not the solution. That way lies algorithmically-skewed streams of consciousness, layered upon sordid business models and Californian ideology. Fuck that.</p>\n \n <p>The web is agreement, but that doesn\u2019t mean we agree to use the same websites.</p>\n</blockquote>"
},
"_id": "26441",
"_source": "2",
"_is_read": true
}
{
"type": "entry",
"published": "2018-01-24T18:44:32Z",
"url": "https://adactio.com/links/13346",
"category": [
"indieweb",
"posse",
"syndication",
"indieauth",
"relme",
"publishing"
],
"bookmark-of": [
"https://www.godaddy.com/garage/indieweb-facebook-opportunities/"
],
"content": {
"text": "The IndieWeb outside of Facebook is full of opportunities - The Garage\n\n\n\nA nice description of syndication via POSSEing.\n\n(I never thought I\u2019d find myself linking to quality content on Go Daddy.)",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://www.godaddy.com/garage/indieweb-facebook-opportunities/\">\nThe IndieWeb outside of Facebook is full of opportunities - The Garage\n</a>\n</h3>\n\n<p>A nice description of syndication via POSSEing.</p>\n\n<p>(I never thought I\u2019d find myself linking to quality content on Go Daddy.)</p>"
},
"_id": "25956",
"_source": "2",
"_is_read": true
}
{
"type": "entry",
"published": "2018-01-23T18:28:04-08:00",
"url": "https://aaronparecki.com/2018/01/23/34/w3c-websub-indieauth",
"category": [
"websub",
"indieauth",
"w3c",
"standards"
],
"syndication": [
"https://www.linkedin.com/pulse/websub-indieauth-published-w3org-aaron-parecki/"
],
"name": "WebSub and IndieAuth Published on w3.org!",
"content": {
"text": "Today, we published the last of the two W3C specs I am editing! WebSub was published as a W3C Recommendation, and IndieAuth was published as a Working Group Note.\n\nWebSub\n\n WebSub is a standardized way for publishers to notify subscribers when new content is available. It was formerly known as PubSubHubbub, which was hard to say, so I'm glad we renamed it.\u00a0\n \nhttps://www.w3.org/TR/websub/\n One of our goals with WebSub was to ensure that existing PubSubHubbub implementations would still be compliant, so there are already lots of implementations in the wild! If you're publishing content online, want to receive realtime updates when feeds are updated, or are building a tool to facilitate either of these, WebSub is a great fit! You can use the tool at\u00a0websub.rocks\u00a0while building your implementation to get immediate feedback!\n \nThanks to everyone who contributed to the spec, and especially my co-editor Julien!\nIndieAuth\nIndieAuth is an identity layer on top of OAuth 2.0, and used by Micropub clients. Micropub was published as a W3C Recommendation in May of last year. Today, IndieAuth was published as a W3C Working Group Note.\u00a0\nhttps://www.w3.org/TR/indieauth/The Social Web Working Group did not set out with the goal to standardize any sort of authentication mechanism, but since almost all of the Micropub implementations already supported the same mechanism, we decided to publish a \"Note\" to that effect. (The Micropub implementations that don't use IndieAuth use hard-coded tokens as a shortcut.) Notes are quite different from Recommendations in the eyes of the W3C, as described by this sentence: \"The publication of a NOTE by the Consortium implies no endorsement of any kind.\" The goal of publishing this Note was to capture the current state of interoperable implementations.\nOne of the things I like most about the W3C standardization process is that specs are published after they describe things that are working, rather than published as an aspirational blueprint. We kind of pushed that definition to an extreme with IndieAuth, since there have been live interoperable IndieAuth implementations for several years now. Previously, I had written up several guides for how to implement the various roles in the IndieAuth flow, but never written it down as its own spec. The guides were certainly useful, as was clearly demonstrated by the fact that people were following them to build out various parts of the ecosystem. But there is also a need for a spec to lay things out and remove any ambiguities along the way.\nThanks to everyone who helped iron out the details of the language in the spec! We made a lot of good progress over the last few months!\n\n\nWhat's Next?\nSo with these two specs published today, we've taken quite a lot of the IndieWeb building blocks through the W3C process!\n\n Webmention - enables direct site-to-site commenting and other interactions\n \n \nPost Type Discovery - once you receive a Webmention, this algorithm helps your site know what to do with the contents\n \nMicropub - enables apps to create content on a website\n \n WebSub - enables real-time subscriptions to web pages and feeds\n \n \nIndieAuth - a way to log in to sites with your domain name, and allow Micropub apps to post to your site\n \njf2 - a post serialization format used by some Webmention services and other tools\nSo here's a few specs and tools that I'm working in the immediate future:\n\nIndieAuth test suite - Like webmention.rocks, micropub.rocks and websub.rocks, I plan to make a tool that will help test your IndieAuth implementation. It will do things like throw tricky situations at your client to ensure you're handling the edge cases properly.\n\nFinally finish renaming indieauth.com - I never should have called it that, since it's doing two completely separate things. You can read about the details\u00a0here.\n\nMicrosub - Microsub is currently an early draft spec. The goal of Microsub is to do for reader interfaces what Micropub did for publishing interfaces. A Microsub server provides a standardized API that reader clients can use to show content. This will help make developing IndieWeb readers a lot easier, and also allows you to keep your subscription list in a server that you control rather than letting the reader own the list.\n\nMonocle - Monocle is my Microsub implementation. It subscribes to feeds and presents a them as a Microsub server so that I can use any Microsub client to view everything. There's still a lot of work ahead for me here, but it's my goal to finally stop using IRC as a reader by getting Monocle to the point of being functional enough to cover all my use cases.\n\n\n\nAs always, you can help me and the rest of the IndieWeb out by adding support for any of these specs on your own website! We are always excited to welcome new people to the IndieWeb chat if you have any questions!",
"html": "<p>Today, we published the last of the two W3C specs I am editing! <a href=\"https://www.w3.org/TR/websub/\">WebSub</a> was published as a W3C Recommendation, and <a href=\"https://www.w3.org/TR/indieauth/\">IndieAuth</a> was published as a Working Group Note.</p>\n\n<img src=\"https://aaronparecki.com/2018/01/23/34/websub-cover.jpg\" alt=\"websub-cover.jpg\" /><h3>WebSub</h3>\n<p>\n <a href=\"https://www.w3.org/TR/websub/\">WebSub</a> is a standardized way for publishers to notify subscribers when new content is available. It was formerly known as PubSubHubbub, which was hard to say, so I'm glad we renamed it.\u00a0\n </p>\n<img src=\"https://aaronparecki.com/2018/01/23/34/image-1.png\" alt=\"\" /><a href=\"https://www.w3.org/TR/websub/\">https://www.w3.org/TR/websub/</a><p>\n One of our goals with WebSub was to ensure that existing PubSubHubbub implementations would still be compliant, so there are already lots of implementations in the wild! If you're publishing content online, want to receive realtime updates when feeds are updated, or are building a tool to facilitate either of these, WebSub is a great fit! You can use the tool at\u00a0<a href=\"https://websub.rocks/\">websub.rocks</a>\u00a0while building your implementation to get immediate feedback!\n </p>\n<p>Thanks to everyone who contributed to the spec, and especially my co-editor <a href=\"https://www.ouvre-boite.com/\">Julien</a>!</p>\n<h3>IndieAuth</h3>\n<p><a href=\"https://www.w3.org/TR/indieauth/\">IndieAuth</a> is an identity layer on top of OAuth 2.0, and used by <a href=\"https://www.w3.org/TR/micropub/\">Micropub</a> clients. Micropub was published as a W3C Recommendation in May of last year. Today, IndieAuth was published as a W3C Working Group Note.\u00a0</p>\n<img src=\"https://aaronparecki.com/2018/01/23/34/image-2.png\" alt=\"\" /><a href=\"https://www.w3.org/TR/indieauth/\">https://www.w3.org/TR/indieauth/</a><p>The <a href=\"https://www.w3.org/Social/WG\">Social Web Working Group</a> did not set out with the goal to standardize any sort of authentication mechanism, but since almost all of the Micropub implementations already supported the same mechanism, we decided to publish a \"Note\" to that effect. (The Micropub implementations that <i>don't</i> use IndieAuth use hard-coded tokens as a shortcut.) Notes are <a href=\"https://www.w3.org/Consortium/Process/NOTE.html\">quite different</a> from Recommendations in the eyes of the W3C, as described by this sentence: \"The publication of a NOTE by the Consortium implies no endorsement of any kind.\" The goal of publishing this Note was to capture the current state of interoperable implementations.</p>\n<p>One of the things I like most about the W3C standardization process is that specs are published after they describe things that are working, rather than published as an aspirational blueprint. We kind of pushed that definition to an extreme with IndieAuth, since there have been live interoperable IndieAuth implementations for several years now. Previously, I had written up several guides for how to implement the various roles in the IndieAuth flow, but never written it down as its own spec. The guides were certainly useful, as was clearly demonstrated by the fact that people were following them to build out various parts of the ecosystem. But there is also a need for a spec to lay things out and remove any ambiguities along the way.</p>\n<p>Thanks to everyone who helped iron out the details of the language in the spec! We made a lot of good progress over the last few months!</p>\n\n\n<h3>What's Next?</h3>\n<p>So with these two specs published today, we've taken quite a lot of the IndieWeb building blocks through the W3C process!</p>\n<ul><li>\n <a href=\"https://www.w3.org/TR/webmention/\">Webmention</a> - enables direct site-to-site commenting and other interactions\n </li>\n <li>\n<a href=\"https://www.w3.org/TR/post-type-discovery/\">Post Type Discovery</a> - once you receive a Webmention, this algorithm helps your site know what to do with the contents</li>\n <li>\n<a href=\"https://www.w3.org/TR/micropub/\">Micropub</a> - enables apps to create content on a website</li>\n <li>\n <a href=\"https://www.w3.org/TR/websub/\">WebSub</a> - enables real-time subscriptions to web pages and feeds\n </li>\n <li>\n<a href=\"https://www.w3.org/TR/indieauth/\">IndieAuth</a> - a way to log in to sites with your domain name, and allow Micropub apps to post to your site</li>\n <li>\n<a href=\"https://www.w3.org/TR/jf2/\">jf2</a> - a post serialization format used by some Webmention services and other tools</li>\n</ul><p>So here's a few specs and tools that I'm working in the immediate future:</p>\n\n<p><b>IndieAuth test suite</b> - Like webmention.rocks, micropub.rocks and websub.rocks, I plan to make a tool that will help test your IndieAuth implementation. It will do things like throw tricky situations at your client to ensure you're handling the edge cases properly.</p>\n\n<p><b>Finally finish renaming indieauth.com</b> - I never should have called it that, since it's doing two completely separate things. You can read about the details\u00a0<a href=\"https://indieweb.org/IndieAuth#naming_confusion\">here</a>.</p>\n\n<p><b><a href=\"https://indieweb.org/Microsub-spec\">Microsub</a></b> - Microsub is currently an early draft spec. The goal of Microsub is to do for reader interfaces what Micropub did for publishing interfaces. A Microsub server provides a standardized API that reader clients can use to show content. This will help make developing IndieWeb readers a lot easier, and also allows you to keep your subscription list in a server that you control rather than letting the reader own the list.</p>\n\n<p><a href=\"https://monocle.p3k.io\"><b>Monocle</b></a> - Monocle is my Microsub implementation. It subscribes to feeds and presents a them as a Microsub server so that I can use any Microsub client to view everything. There's still a lot of work ahead for me here, but it's my goal to <a href=\"https://aaronparecki.com/2015/08/29/8/why-i-live-in-irc\">finally stop using IRC as a reader</a> by getting Monocle to the point of being functional enough to cover all my use cases.</p>\n\n\n\n<p>As always, you can help me and the rest of the IndieWeb out by adding support for any of these specs on your own website! We are always excited to welcome new people to the <a href=\"https://indieweb.org/discuss\">IndieWeb chat</a> if you have any questions!</p>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aaronparecki.com/images/profile.jpg"
},
"_id": "24569",
"_source": "16",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": null,
"url": "https://strugee.net/blog/",
"photo": null
},
"url": "https://strugee.net/blog/2018/01/winter-break-retrospective",
"published": "2018-01-23T20:51:03+00:00",
"content": {
"html": "<p>Tonight I'll have been back at college for a full week, and I wanted to write up a little retrospective of winter break to see what I accomplished (and in particular, which <a href=\"https://strugee.net/blog/2017/12/winter-break-priorities-2017-18\">goals</a> I completed or missed).</p>\n<p>You may wish to skip directly to the <a href=\"https://strugee.net/blog/#executive-summary\">executive summary</a>.</p>\n<h1>Resolved goal: Node.js manpage PR</h1>\n<p>I didn't <em>complete</em> this goal per se, but I did at least resolve it <a href=\"https://github.com/nodejs/node/pull/14164#issuecomment-357909699\">by closing the Pull Request</a>. I felt pretty bad about it (especially because I kept saying I intended to finish it) but honestly, it became clear to me that I'd just lost the motivation to keep going with it. I would love it if this was included in Node.js core, but I just consistently have higher priorities. So rather than leave it hanging and cluttering up the Pull Requests view, I just closed it to reflect reality. I made sure not to delete the branch though, in case someone (distant future me?) wants to pick it up again.</p>\n<h1>Failed goal: deal with GPG keysigning</h1>\n<p>I did nothing to push this goal forward. While I made <a href=\"https://strugee.net/blog/2018/01/improving-gpg-security\">numerous improvements to my GPG setup</a>, I did not actually sign anyone's key, which was what this goal was about. This feels unfortunate. (I also do not have access to the private key material in college, and am <em>certainly</em> not about to ask that it be shipped to me.)</p>\n<h1>Partially completed goal: push Debian packaging work forward</h1>\n<p>There were two components to this: <a href=\"https://tracker.debian.org/pkg/profanity\">Profanity packaging</a> upgrades and getting the new <a href=\"https://github.com/strugee/filter-other-days\">filter-other-days</a> packaging into Debian. I made no progress on the Profanity packaging. However, I did <a href=\"https://github.com/strugee/dots/commit/2b477a7079de9ff675fd4e2d22f58938ffbb7bc9\">fix a misconfiguration in my <code>.reportbugrc</code></a> (which annoyingly had previously sent my incredibly detailed email about Profanity packaging to <code>/dev/null</code>) and then submitted <a href=\"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886310\">an ITP</a> (Intent To Package bug, which is a Debian thing) for filter-other-days. I then used that ITP bug number <a href=\"https://github.com/strugee/filter-other-days/commit/d09943c6ac4eea07720cc88596bed3594c3f4644\">to fix the last <code>.deb</code> Lintian warning</a> (although see below). Then I paired with <a href=\"https://github.com/anjakefala\">Anja</a> who is, as always, an angel, and we figured out the weirdness that is <code>dput</code> and <a href=\"https://mentors.debian.net/\">mentors.debian.net</a>. Finally I was able to upload filter-other-days(!) BUT I was in for a rude awakening - apparently Lintian checks for <code>.deb</code>s and <code>.dsc</code>s are different. So while my binary package was Lintian-clean, my source package unfortunately wasn't. This is something I will need to work on in the weeks to come. That being said, I'm still pretty proud of what I've accomplished here! I've made significant progress on this front.</p>\n<h1>Completed goal: lazymention v1</h1>\n<p>One of the first things I did was ship lazymention 1.0.0 - and I wrote <a href=\"https://strugee.net/blog/2017/12/announcing-lazymention-elegant-outbound-webmention-for-static-sites\">an announcement blog post</a> to accompany it! (In fact, I syndicated that blog post to <a href=\"https://news.indieweb.org/\">IndieNews</a> <em>using lazymention</em>, which felt pretty damn awesome.) I got some great feedback on it from the IndieWeb community, and my <a href=\"https://lobste.rs/s/kip3yk/announcing_lazymention_elegant\">lobste.rs submission</a> - which also got some great engagement - even made the front page, which was pretty unreal! I still have a lot more work to do with lazymention - in particular, it doesn't actually respect edits (so it'll resend Webmentions with every job submission) - but for now it works well. I'm super pleased with it, and have integrated it into my site deployment workflow. I even wrote <a href=\"https://github.com/strugee/ping-lazymention/\">a module</a> so other people can do this, too!</p>\n<h1>Failed goals: ActivityPub in pump.io core, pump.io PR review</h1>\n<p>No progress on this front. I did start hacking on a <a href=\"https://github.com/pump-io/telemetry\">telemetry server</a> which will eventually be helpful for our ActivityPub rollout, but that did not in any way <em>directly</em> help fulfill these goals. I also <a href=\"https://strugee.net/blog/2018/01/pump.io-5.1-stable-published-to-npm\">released 5.1 stable</a>, but that's pretty routine by this point.</p>\n<h1>Partially completed goal: two blog posts per week</h1>\n<p>I stuck with this goal all the way up until the final week, where I didn't write any. (Although I wrote about my <a href=\"https://strugee.net/blog/2018/01/improving-gpg-security\">GPG keys</a> around the time I actually flew back to college.) The first week, I wrote about <a href=\"https://strugee.net/blog/2017/12/shell-script-is-one-of-the-purest-forms-of-human-expression\">my thoughts on shell script</a> and about <a href=\"https://strugee.net/blog/2017/12/announcing-lazymention-elegant-outbound-webmention-for-static-sites\">lazymention</a>; the second, I wrote about the <a href=\"https://strugee.net/blog/2018/01/pump.io-5.1-stable-published-to-npm\">pump.io 5.1 stable release</a> and about <a href=\"https://strugee.net/blog/2018/01/tell-your-pr-reviewers-theyre-wrong\">talking to Pull Request reviewers if you think they're wrong</a>.</p>\n<h1>Failed stretch goal: paper editing</h1>\n<p>I did absolutely no editing on the paper I intend to get published (which I originally wrote for a writing class). This was a stretch goal though, so that's totally fine.</p>\n<h1>Additional activity: steevie maintenance</h1>\n<p>After I finally found the cable I needed, I swapped out the cable that connects steevie's motherboard with the drives' SATA ports. This seemed to significantly improve disk performance, although there are still noticeable performance problems. I'm very, <em>very</em> happy to have finally gotten this done.</p>\n<h1>Additional activity: Tor relay migration from Amazon EC2 to DigitalOcean</h1>\n<p>After getting some advice on <a href=\"https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-relays\">tor-relays</a>, I <em>finally</em> sat down and looked into moving my relay away from Amazon Web Services. This is because AWS bills by usage, which for a Tor relay ends up being incredibly inefficient. It turned out to actually be way easier than I thought, which only served to make me mad that I hadn't done it sooner. In any case, I now save approximately $240/year AND I can push 1000GB/month as opposed to the 10GB/month I pushed before. In the words of <a href=\"https://github.com/strugee/torrc/commit/8b9fe85378adc834b8b7a9953de45f508b76bc3e\">the commit where I made this change</a>: \"this change made possible by the fact that I'm no longer getting billed up the wazoo by Amazon Web Services.\" Here's a of <a href=\"https://atlas.torproject.org/#details/C3CFCC9B5993A6F0D1349858C598C4A78AFE51F9\">a Tor Metrics graph</a> (captured today) that shows the jump:</p>\n<p><img src=\"https://strugee.net/images/tor-relay-graph.svg\" alt=\"Tor Metrics graph\" /></p>\n<p>Anyway, I'm super happy I can contribute more to the Tor network <em>and</em> save lots of money in the process. That being said I am pretty damn salty I didn't realize this in the four <em>years</em> I've been running a Tor relay.</p>\n<h1>Additional activity: offandonagain.org maintenance</h1>\n<p>After turning on <a href=\"https://nodesecurity.io/\">NodeSecurity</a> monitoring for <a href=\"https://offandonagain.org/\">offandonagain.org</a>, I found out that the module that underlies it, <a href=\"https://github.com/strugee/node-serve-random\">node-serve-random</a>, had some vulnerable dependencies. Not only did I fix this, I wrote a large test suite for the module and found (and fixed!) <a href=\"https://github.com/strugee/node-serve-random/blob/master/CHANGELOG.md#200---2018-01-13\">several bugs</a> in the process. Writing a test suite also allowed me to turn on <a href=\"https://greenkeeper.io/\">Greenkeeper</a> for the module, which will be a huge help to me in keeping the module up-to-date.</p>\n<h1>Additional activity: Stratic work</h1>\n<p>First off, I released <a href=\"https://github.com/straticjs/generator-stratic/blob/master/CHANGELOG.md#100-beta-7---2017-12-3\">beta 7</a> of <a href=\"https://github.com/straticjs/generator-stratic\">generator-stratic</a>! Nothing major, just some polishing stuff. Stratic is getting very close to the point where I might want to start promoting it more aggressively, or declaring it stable, and (with a <em>lot</em> of super-helpful feedback from my family) I worked on something that's super important before we get there: <a href=\"https://github.com/straticjs/RFCs/issues/22\">a logo</a>!</p>\n<p>Here are two of my favorites so far:</p>\n\n<p><img src=\"https://strugee.net/images/stratic-logo-asteroid-with-pipe.svg\" alt=\"Yellow background with a centered black file icon and a asteroid coming up from earth in the midddle and a pipe to the right\" /><img src=\"https://strugee.net/images/stratic-logo-rocket-with-pipe.svg\" alt=\"Yellow background with a centered black file icon and a rocket coming up from earth in the midddle and a pipe to the right\" /></p>\n\n<p>These are based off the JS logo, in case you hadn't seen it before:</p>\n<p><img src=\"https://strugee.net/images/js-logo.svg\" alt=\"Black JS text in the bottom-right corner of a yellow background\" /></p>\n<p>Anyway, I have to post another iteration in the <a href=\"https://github.com/straticjs/RFCs/issues/22\">GitHub issue</a> based on some feedback from <a href=\"http://saul.pw/\">Saul</a> (who I had a lovely lunch with) - he thinks I should reverse it so the pipe is on the left, so it looks like the file is coming out of the pipe. But anyway you should comment there if you have feedback!</p>\n<h1>Additional activity: IndieWeb stuff</h1>\n<p>I attended Homebrew Website Club in San Fransisco, which was <em>incredible</em>. I got to meet a bunch of new people, as well as say hi to <a href=\"http://snarfed.org/\">Ryan</a> and <a href=\"http://tantek.com/\">Tantek</a> again, which was so nice - it's always just <em>better</em> to talk in real life. Tantek said (at least if I recall correctly) that my laptop was one of the best-stickered laptops he'd ever seen, which made me feel just unbelievably special. He also gave me a <a href=\"http://microformats.org/\">microformats</a> sticker (and helped me figure out where to put it), which I had on my old laptop and had been really missing, as well as a <a href=\"https://letsencrypt.org/\">Let's Encrypt</a> sticker. The latter was so special I elected to put it on the inside of my laptop, which I reserve only for <em>really</em> special things (basically a <a href=\"https://www.recurse.com/\">Recurse Center</a> refucktoring sticker and a sticker of <a href=\"https://github.com/SwartzCr\">Noah</a> in <a href=\"https://www.eff.org/encrypt-the-web\">this video</a>, which he handed to me like a business card the first time we met). Anyway, every time I look at the Let's Encrypt sticker I just feel so happy. I love Let's Encrypt so damn much.</p>\n<p>Homebrew Website Club was super inspiring, so when I got back to where I was staying (at my mom's boyfriend's house) I started implementing an <a href=\"https://indieweb.org/\">IndieWeb</a>-style social stream for strugee.net. It still needs some polishing but is actually pretty close to being done. Who knows when I'll have time to finish it, but it's getting there! I'm so freaking excited, honestly. Also, I added proper timestamp mf2 metadata to my site, as well as a visual display for post edits, and I expanded what type of Webmentions the display code recognizes too!</p>\n\n\n<h1>Executive summary</h1>\n<p>I resolved or completed 2 goals, partially completed 2 goals, failed 3 goals, and failed 1 stretch goal. Additionally I did significant work in 5 other areas. Out of the goals I set for myself, I completed 51% (Debian packaging work is ~2/5 complete; blog posts were written 2/3 of the time); not counting the stretch goal, I completed 61.2%. I'm pretty happy with what I got done during this period; however, while I was productive, the numbers show that I did a mediocre job sticking to my goals. In the future I should focus on making more realistic goals and then sticking to them (though not too much - it is a break, after all!).</p>\n<p>Speaking of which, partway through break I felt like I was on the edge of burnout, which to me was a <em>very</em> clear sign that I was pushing myself way too hard during a time I should have been unwinding. Because of that I cut what I was doing a <em>lot</em>, which helped pretty dramatically. In fact, I think without that I wouldn't have been able to do some of the later stuff, like all the IndieWeb work. So that's another reason I have to find a way to balance sticking to goals and just relaxing (which doesn't necessarily mean not coding, just doing whatever coding I feel like in the moment) - I feel like I was pushing myself too hard to meet my goals (and then getting distracted and not meeting them) and that's what led to the feeling. Obviously there are different constraints for e.g. schoolwork; here I'm referring <em>only</em> to free time like breaks.</p>\n<h1>Spring semester goals</h1>\n<p>With that in mind, I want to set some very broad goals for spring semester. I may update this list as time goes on, but for now I have four overarching goals I want to accomplish (besides the usual day-to-day code maintenance stuff):</p>\n<ul><li>Finish editing the paper I wrote last semester on freedom-respecting software and intersectionality, and get it published</li>\n<li>Make <em>some</em> measurable progress on my <a href=\"https://github.com/strugee/draft-webpush-2fa\">Push-based Two-factor Authentication IETF draft</a></li>\n<li>Get access to the University of Rochester darkroom and start developing/printing photos again</li>\n<li>Start pushing the University of Rochester library (and <em>maybe</em> the journalism department?) to start adopting Tor technologies</li>\n</ul><p>I'm excited to see how it goes!</p>",
"text": "Tonight I'll have been back at college for a full week, and I wanted to write up a little retrospective of winter break to see what I accomplished (and in particular, which goals I completed or missed).\nYou may wish to skip directly to the executive summary.\nResolved goal: Node.js manpage PR\nI didn't complete this goal per se, but I did at least resolve it by closing the Pull Request. I felt pretty bad about it (especially because I kept saying I intended to finish it) but honestly, it became clear to me that I'd just lost the motivation to keep going with it. I would love it if this was included in Node.js core, but I just consistently have higher priorities. So rather than leave it hanging and cluttering up the Pull Requests view, I just closed it to reflect reality. I made sure not to delete the branch though, in case someone (distant future me?) wants to pick it up again.\nFailed goal: deal with GPG keysigning\nI did nothing to push this goal forward. While I made numerous improvements to my GPG setup, I did not actually sign anyone's key, which was what this goal was about. This feels unfortunate. (I also do not have access to the private key material in college, and am certainly not about to ask that it be shipped to me.)\nPartially completed goal: push Debian packaging work forward\nThere were two components to this: Profanity packaging upgrades and getting the new filter-other-days packaging into Debian. I made no progress on the Profanity packaging. However, I did fix a misconfiguration in my .reportbugrc (which annoyingly had previously sent my incredibly detailed email about Profanity packaging to /dev/null) and then submitted an ITP (Intent To Package bug, which is a Debian thing) for filter-other-days. I then used that ITP bug number to fix the last .deb Lintian warning (although see below). Then I paired with Anja who is, as always, an angel, and we figured out the weirdness that is dput and mentors.debian.net. Finally I was able to upload filter-other-days(!) BUT I was in for a rude awakening - apparently Lintian checks for .debs and .dscs are different. So while my binary package was Lintian-clean, my source package unfortunately wasn't. This is something I will need to work on in the weeks to come. That being said, I'm still pretty proud of what I've accomplished here! I've made significant progress on this front.\nCompleted goal: lazymention v1\nOne of the first things I did was ship lazymention 1.0.0 - and I wrote an announcement blog post to accompany it! (In fact, I syndicated that blog post to IndieNews using lazymention, which felt pretty damn awesome.) I got some great feedback on it from the IndieWeb community, and my lobste.rs submission - which also got some great engagement - even made the front page, which was pretty unreal! I still have a lot more work to do with lazymention - in particular, it doesn't actually respect edits (so it'll resend Webmentions with every job submission) - but for now it works well. I'm super pleased with it, and have integrated it into my site deployment workflow. I even wrote a module so other people can do this, too!\nFailed goals: ActivityPub in pump.io core, pump.io PR review\nNo progress on this front. I did start hacking on a telemetry server which will eventually be helpful for our ActivityPub rollout, but that did not in any way directly help fulfill these goals. I also released 5.1 stable, but that's pretty routine by this point.\nPartially completed goal: two blog posts per week\nI stuck with this goal all the way up until the final week, where I didn't write any. (Although I wrote about my GPG keys around the time I actually flew back to college.) The first week, I wrote about my thoughts on shell script and about lazymention; the second, I wrote about the pump.io 5.1 stable release and about talking to Pull Request reviewers if you think they're wrong.\nFailed stretch goal: paper editing\nI did absolutely no editing on the paper I intend to get published (which I originally wrote for a writing class). This was a stretch goal though, so that's totally fine.\nAdditional activity: steevie maintenance\nAfter I finally found the cable I needed, I swapped out the cable that connects steevie's motherboard with the drives' SATA ports. This seemed to significantly improve disk performance, although there are still noticeable performance problems. I'm very, very happy to have finally gotten this done.\nAdditional activity: Tor relay migration from Amazon EC2 to DigitalOcean\nAfter getting some advice on tor-relays, I finally sat down and looked into moving my relay away from Amazon Web Services. This is because AWS bills by usage, which for a Tor relay ends up being incredibly inefficient. It turned out to actually be way easier than I thought, which only served to make me mad that I hadn't done it sooner. In any case, I now save approximately $240/year AND I can push 1000GB/month as opposed to the 10GB/month I pushed before. In the words of the commit where I made this change: \"this change made possible by the fact that I'm no longer getting billed up the wazoo by Amazon Web Services.\" Here's a of a Tor Metrics graph (captured today) that shows the jump:\n\nAnyway, I'm super happy I can contribute more to the Tor network and save lots of money in the process. That being said I am pretty damn salty I didn't realize this in the four years I've been running a Tor relay.\nAdditional activity: offandonagain.org maintenance\nAfter turning on NodeSecurity monitoring for offandonagain.org, I found out that the module that underlies it, node-serve-random, had some vulnerable dependencies. Not only did I fix this, I wrote a large test suite for the module and found (and fixed!) several bugs in the process. Writing a test suite also allowed me to turn on Greenkeeper for the module, which will be a huge help to me in keeping the module up-to-date.\nAdditional activity: Stratic work\nFirst off, I released beta 7 of generator-stratic! Nothing major, just some polishing stuff. Stratic is getting very close to the point where I might want to start promoting it more aggressively, or declaring it stable, and (with a lot of super-helpful feedback from my family) I worked on something that's super important before we get there: a logo!\nHere are two of my favorites so far:\n\n\n\nThese are based off the JS logo, in case you hadn't seen it before:\n\nAnyway, I have to post another iteration in the GitHub issue based on some feedback from Saul (who I had a lovely lunch with) - he thinks I should reverse it so the pipe is on the left, so it looks like the file is coming out of the pipe. But anyway you should comment there if you have feedback!\nAdditional activity: IndieWeb stuff\nI attended Homebrew Website Club in San Fransisco, which was incredible. I got to meet a bunch of new people, as well as say hi to Ryan and Tantek again, which was so nice - it's always just better to talk in real life. Tantek said (at least if I recall correctly) that my laptop was one of the best-stickered laptops he'd ever seen, which made me feel just unbelievably special. He also gave me a microformats sticker (and helped me figure out where to put it), which I had on my old laptop and had been really missing, as well as a Let's Encrypt sticker. The latter was so special I elected to put it on the inside of my laptop, which I reserve only for really special things (basically a Recurse Center refucktoring sticker and a sticker of Noah in this video, which he handed to me like a business card the first time we met). Anyway, every time I look at the Let's Encrypt sticker I just feel so happy. I love Let's Encrypt so damn much.\nHomebrew Website Club was super inspiring, so when I got back to where I was staying (at my mom's boyfriend's house) I started implementing an IndieWeb-style social stream for strugee.net. It still needs some polishing but is actually pretty close to being done. Who knows when I'll have time to finish it, but it's getting there! I'm so freaking excited, honestly. Also, I added proper timestamp mf2 metadata to my site, as well as a visual display for post edits, and I expanded what type of Webmentions the display code recognizes too!\n\n\nExecutive summary\nI resolved or completed 2 goals, partially completed 2 goals, failed 3 goals, and failed 1 stretch goal. Additionally I did significant work in 5 other areas. Out of the goals I set for myself, I completed 51% (Debian packaging work is ~2/5 complete; blog posts were written 2/3 of the time); not counting the stretch goal, I completed 61.2%. I'm pretty happy with what I got done during this period; however, while I was productive, the numbers show that I did a mediocre job sticking to my goals. In the future I should focus on making more realistic goals and then sticking to them (though not too much - it is a break, after all!).\nSpeaking of which, partway through break I felt like I was on the edge of burnout, which to me was a very clear sign that I was pushing myself way too hard during a time I should have been unwinding. Because of that I cut what I was doing a lot, which helped pretty dramatically. In fact, I think without that I wouldn't have been able to do some of the later stuff, like all the IndieWeb work. So that's another reason I have to find a way to balance sticking to goals and just relaxing (which doesn't necessarily mean not coding, just doing whatever coding I feel like in the moment) - I feel like I was pushing myself too hard to meet my goals (and then getting distracted and not meeting them) and that's what led to the feeling. Obviously there are different constraints for e.g. schoolwork; here I'm referring only to free time like breaks.\nSpring semester goals\nWith that in mind, I want to set some very broad goals for spring semester. I may update this list as time goes on, but for now I have four overarching goals I want to accomplish (besides the usual day-to-day code maintenance stuff):\nFinish editing the paper I wrote last semester on freedom-respecting software and intersectionality, and get it published\nMake some measurable progress on my Push-based Two-factor Authentication IETF draft\nGet access to the University of Rochester darkroom and start developing/printing photos again\nStart pushing the University of Rochester library (and maybe the journalism department?) to start adopting Tor technologies\nI'm excited to see how it goes!"
},
"name": "Winter break retrospective & spring semester goals",
"_id": "123836",
"_source": "227",
"_is_read": true
}