Let’s try a Saturday afternoon!
From 1-3pm, join us for an IndieWeb Meetup at Think Coffee on 8th Av at 14th St in Manhattan!
Come work on your personal website, whether it exists yet or not!
{
"type": "entry",
"published": "2019-05-10T13:13:55-0400",
"rsvp": "yes",
"url": "https://martymcgui.re/2019/05/10/131355/",
"in-reply-to": [
"https://indieweb.org/events/2019-05-11-homebrew-website-club-nyc"
],
"content": {
"text": "I'm going!Let\u2019s try a Saturday afternoon!\n\nFrom 1-3pm, join us for an IndieWeb Meetup at Think Coffee on 8th Av at 14th St in Manhattan!\n\nCome work on your personal website, whether it exists yet or not!",
"html": "I'm going!<p>Let\u2019s try a Saturday afternoon!</p>\n\n<p>From 1-3pm, join us for an IndieWeb Meetup at Think Coffee on 8th Av at 14th St in Manhattan!</p>\n\n<p>Come work on your personal website, whether it exists yet or not!</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://aperture-proxy.p3k.io/8275f85e3a389bd0ae69f209683436fc53d8bad9/68747470733a2f2f6d617274796d636775692e72652f696d616765732f6c6f676f2e6a7067"
},
"post-type": "rsvp",
"refs": {
"https://indieweb.org/events/2019-05-11-homebrew-website-club-nyc": {
"type": "entry",
"summary": "Join us for an afternoon of IndieWeb personal site demos and discussions!",
"url": "https://indieweb.org/events/2019-05-11-homebrew-website-club-nyc",
"photo": [
"https://res.cloudinary.com/schmarty/image/fetch/w_960,c_fill/https://indieweb.org/images/b/b1/2017-hwc-80s-retro.jpg"
],
"name": "\ud83d\uddfd Homebrew Website Club NYC",
"author": {
"type": "card",
"name": "indieweb.org",
"url": "http://indieweb.org",
"photo": null
},
"post-type": "photo"
}
},
"_id": "3396940",
"_source": "175"
}
This post from Calum finally brought out the FOMO I had been suppressing for IndieWebCamp Berlin.
Really looking forward to the 2019 IndieWeb Summit June 29-30th in Portland!
{
"type": "entry",
"published": "2019-05-10T13:01:42-0400",
"url": "https://martymcgui.re/2019/05/10/130142/",
"content": {
"text": "This post from Calum finally brought out the FOMO I had been suppressing for IndieWebCamp Berlin.\n\nReally looking forward to the 2019 IndieWeb Summit June 29-30th in Portland!\n\nhttps://calumryan.com/blog/indiewebcamp-berlin-2019/",
"html": "<p>This post from <a href=\"https://calumryan.com/\">Calum</a> finally brought out the FOMO I had been suppressing for IndieWebCamp Berlin.</p>\n\n<p>Really looking forward to <a href=\"https://2019.indieweb.org/summit\">the 2019 IndieWeb Summit</a> June 29-30th in Portland!</p>\n\n<p><a href=\"https://calumryan.com/blog/indiewebcamp-berlin-2019/\">https://calumryan.com/blog/indiewebcamp-berlin-2019/</a></p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://aperture-proxy.p3k.io/8275f85e3a389bd0ae69f209683436fc53d8bad9/68747470733a2f2f6d617274796d636775692e72652f696d616765732f6c6f676f2e6a7067"
},
"post-type": "note",
"_id": "3396942",
"_source": "175"
}
{
"type": "entry",
"published": "2019-05-10T12:50:18-0400",
"url": "https://martymcgui.re/2019/05/10/archiving-rooms-from-a-matrixorg-homeserver-including-end-to-end-encrypted-rooms/",
"category": [
"matrix",
"matrix.org",
"export",
"self-hosting",
"ownyourdata",
"archive",
"pantalaimon"
],
"name": "Archiving rooms from a Matrix.org Homeserver (including end-to-end encrypted rooms)",
"content": {
"text": "I'm in the middle of a Forever Project, migrating stuff and services off of an old server in my closet at home onto a new (smaller, better, faster!) server in my closet at home.\nOne such service is a Matrix.org Synapse homeserver that was used as a private Slack-alternative chat for my household, as well as a bridge to some IRC channels. I set it up by hand in haste some years ago and made some not-super-sustainable choices about it, including leaving the database in SQLite (2.2GB and feelin' fine), not documenting my DNS and port-forwarding setup very well, and a few other \"oopsies\".\nI had been keeping the code up to date via \"pip install\" and the latest \"master\" tarballs, but when the announcement came about needing valid TLS for federation starting in 0.99.X, I wasn't sure if I was good to upgrade. (I later found out that I was okay, ha!)\nI found some docs on the most recent ways to set up Matrix on a new server, and even on how to migrate from SQLite to PostgreSQL. However, I don't know if I'll be able to set aside the time to do it all at once, or if it'll be easier just to set it up fresh, or even if I need a homeserver right now. So, I decided to figure out how to make archives of the rooms I cared about, which included household conversations, recipes, and photos from around the house and on travels.\n\n Overview\n\nThe process turned out to be pretty involved, which is why it gets a blog post! It boils down to needing these three things:\n\n osteele/matrix-archive - Export a Matrix room message archive and photos.\n \n \nmatrix-org/pantalaimon - A proxy to handle end-to-end encrypted (E2EE) room content for matrix-archive\n \n matrix-org/Olm - C library to handle the actual E2EE processing. Pantalaimon relies on this library and it's Python extensions.\n \nGetting all the tools built required a pretty recent system, which my old server ain't. I ended up building and running them on my personal laptop, running Ubuntu 19.04.\n\n Since both matrix-archive and pantalaimon are Python-based, I created a Python 3.7 virtualenv to keep everything in, rather than installing everything system-wide.\n\n\n Olm\n\nThe Olm docs recommend building with CMake, but as someone unfamiliar with CMake I could get it to build and run tests, but could not actually get it installed on my system.\nI ended up installing the main lib with:\n\n make && sudo make install\n\nThe Python extensions were a challenge and I am not sure that I remember all the details to properly document them here. I spent a good amount of time trying to follow the Olm instructions to get them installed into my Python virtualenv.\nIn the end, the pantalaimon install built its own version of the Python Olm extensions, so I'm going to guess this was enough for now.\nPantalaimon\nThe pantalaimon README was pretty straightforward, once I installed Olm system-wide. I activated my virtualenv and ran:\n\n python setup.py install\n\nThat resulted in a \"pantalaimon\" script installed in my virtualenv's bin dir, so I could (in theory) run it on the command line, pointing it at my running Synapse server:\n\n pantalaimon https://matrix.example.com:8448\n\nThat started a service on http://127.0.0.1:8009/ which matrix-archive would connect over, with pantalaimon handling all the E2EE decryption transparently.\nmatrix-archive\nThe matrix-archive setup instructions suggest using a dependency manager called \"Pipenv\" that I was not familiar with. I installed it in my virtualenv, then ran it to setup and install matrix-archive:\n\n pip install pipenv\n pipenv install\n\nPipenv \"noticed\" it was running in a virtualenv, and said so. This didn't seem to be much of a problem, but any command I tried to run with \"pipenv run\" would fail. I worked around this by looking in the \"Pipfile\" to see what commands were actually being run, and it turns out it was just calling specific Python scripts in the matrix-archive directory. So, I resolved to run those by hand.\nMongoDB\nmatrix-archive requires MongoDB. I don't use it for anything else, so I had to \"sudo apt install mongodb-server\".\n\n Running the Import\n\nFirst, I set the environment variables needed by matrix-archive:\n\n export MATRIX_USER=<my username>\n export MATRIX_PASSWORD=<my password>\n export MATRIX_HOST=http://127.0.0.1:8009\n\nThen confirmed it was working by getting a list of rooms with IDs:\n\n python list_rooms.py\n\nI set up the list of room IDs in an environment variable:\n\n export MATRIX_ROOM_IDS=!room@server,!room2@server,...\n\nAnd slurped in all the messages with:\n\n python import_messages.py\n\nAt the end, it said it had a bunch of messages. Hooray!\nRunning the Export\nThis is where things kind of ran off the rails. In trying to export messages I kept seeing Python KeyErrors about a missing 'info' key. It seems like maybe the Matrix protocol was updated to make this an optional key, but the upshot was that matrix-archive seemed to assume that every message with an image attached would have an 'info' with info about a thumbnail for that image.\n\n Additionally, the script to download images had some naive handling for turning attachment URLs like \"mxc://example.com/...\" into downloadable URLs. Matrix supports DNS-based delegation, so you can say \"the Matrix server for example.com is matrix.example.com:8448, and this script didn't handle that.\n\nI did some nasty hacks to only get full-sized images, and from the right host:\nupdated the schema to return the full image URL instead of digging in for a thumbnail\n added handling to export_messages.py to handle missing 'info', which was used to guess image mimetypes\n added some hardcoding to map converted \"mxc://\" URLs to the right host.\nAfterwards I was able to do an export of alllllll the images to a \"images/\" folder:\n\n python download_images.py --no-thumbnails\n\n\n And could then export a particular room's history with:\n\n\n python export_messages.py --room-id ROOM-NAME --local-images --filename ROOM-NAME.html\n\nNote that the \"--room-id\" flag above actually wants the human-readable room name, unless it's actually a room on the main matrix.org server.\n\n Afterwards, I could open room-name.html in my browser, and see the very important messages and images I worked so hard to archive.\n\nScreenshot from the (very minimal) HTML export, including an image (of a pug, sourced by a chat bot).What's Next?\nFor now, I'll be putting these files and images in a safe backup and not worrying about them too much, because I have them. I've already stopped my old Synapse server, and can tackle setting up the new one at my leisure. We've moved our house chats to Signal, and I've moved my IRC usage over to bridged Slack channels.\n\n Running a Matrix Synapse homeserver for the past couple of years has been quite interesting! I really appreciate the hard working community (especially in light of their recent infrastructure troubles), and I recognize that it's a ton of work to build a federating network of real-time, private communication. I enjoyed the freedom of having my own chat service to run bots, share images, and discuss private moments without worrying about who might be reading the messages now or down the road.\n\nThat said, there are still some major usability kinks to work out. The end-to-end encryption rollout across homeservers and clients hasn't been the smoothest, and it can be an issue juggling E2EE keys across devices. I look forward to seeing how the community addresses issues like these in the future!\n\n TL;DR - saving an archive of a room's history and files should not be this hard.",
"html": "<p>I'm in the middle of a Forever Project, migrating stuff and services off of an old server in my closet at home onto a new (smaller, better, faster!) server in my closet at home.</p>\n<p>One such service is a <a href=\"https://matrix.org/\">Matrix.org</a> <a href=\"https://github.com/matrix-org/synapse#readme\">Synapse homeserver</a> that was used as a private Slack-alternative chat for my household, as well as a bridge to some IRC channels. I set it up by hand in haste some years ago and made some not-super-sustainable choices about it, including leaving the database in SQLite (2.2GB and feelin' fine), not documenting my DNS and port-forwarding setup very well, and a few other \"oopsies\".</p>\n<p>I had been keeping the code up to date via \"pip install\" and the latest <a href=\"https://github.com/matrix-org/synapse/releases\">\"master\" tarballs</a>, but when the <a href=\"https://matrix.org/blog/2019/04/01/synapse-0-99-3-released/\">announcement came about needing valid TLS for federation starting in 0.99.X</a>, I wasn't sure if I was good to upgrade. (I later found out that I was okay, ha!)</p>\n<p>I found some docs on the most recent ways to <a href=\"https://www.howtoforge.com/tutorial/how-to-install-matrix-synapse-on-ubuntu-1804/\">set up Matrix on a new server</a>, and even on <a href=\"https://github.com/matrix-org/synapse/blob/master/docs/postgres.rst\">how to migrate from SQLite to PostgreSQL</a>. However, I don't know if I'll be able to set aside the time to do it all at once, or if it'll be easier just to set it up fresh, or even if I <i>need</i> a homeserver right now. So, I decided to figure out how to make archives of the rooms I cared about, which included household conversations, recipes, and photos from around the house and on travels.</p>\n<h2>\n Overview\n</h2>\n<p>The process turned out to be pretty involved, which is why it gets a blog post! It boils down to needing these three things:</p>\n<ul><li>\n <a href=\"https://github.com/osteele/matrix-archive\">osteele/matrix-archive</a> - Export a Matrix room message archive and photos.\n </li>\n <li>\n<a href=\"https://github.com/matrix-org/pantalaimon\">matrix-org/pantalaimon</a> - A proxy to handle end-to-end encrypted (E2EE) room content for matrix-archive</li>\n <li>\n <a href=\"https://gitlab.matrix.org/matrix-org/olm/\">matrix-org/Olm</a> - C library to handle the actual E2EE processing. Pantalaimon relies on this library and it's Python extensions.\n </li>\n</ul><p>Getting all the tools built required a pretty recent system, which my old server ain't. I ended up building and running them on my personal laptop, running Ubuntu 19.04.</p>\n<p>\n Since both matrix-archive and pantalaimon are Python-based, I created a Python 3.7 virtualenv to keep everything in, rather than installing <i>everything</i> system-wide.\n</p>\n<h2>\n Olm\n</h2>\n<p>The <a href=\"https://gitlab.matrix.org/matrix-org/olm/blob/master/README.rst\">Olm docs</a> recommend building with CMake, but as someone unfamiliar with CMake I could get it to build and run tests, but could not actually get it <i>installed</i> on my system.</p>\n<p>I ended up installing the main lib with:</p>\n<pre>\n make && sudo make install\n</pre>\n<p>The Python extensions were a challenge and I am not sure that I remember all the details to properly document them here. I spent a good amount of time trying to follow the Olm instructions to get them installed into my Python virtualenv.</p>\n<p>In the end, the pantalaimon install built its own version of the Python Olm extensions, so I'm going to guess this was enough for now.</p>\n<h2>Pantalaimon</h2>\n<p>The <a href=\"https://github.com/matrix-org/pantalaimon#readme\">pantalaimon README</a> was pretty straightforward, once I installed Olm system-wide. I activated my virtualenv and ran:</p>\n<pre>\n python setup.py install\n</pre>\n<p>That resulted in a \"pantalaimon\" script installed in my virtualenv's bin dir, so I could (in theory) run it on the command line, pointing it at my running Synapse server:</p>\n<pre>\n pantalaimon https://matrix.example.com:8448\n</pre>\n<p>That started a service on http://127.0.0.1:8009/ which matrix-archive would connect over, with pantalaimon handling all the E2EE decryption transparently.</p>\n<h2>matrix-archive</h2>\n<p>The <a href=\"https://github.com/osteele/matrix-archive#Setup\">matrix-archive setup instructions</a> suggest using a dependency manager called \"Pipenv\" that I was not familiar with. I installed it in my virtualenv, then ran it to setup and install matrix-archive:</p>\n<pre>\n pip install pipenv\n pipenv install\n</pre>\n<p>Pipenv \"noticed\" it was running in a virtualenv, and said so. This didn't seem to be much of a problem, but any command I tried to run with \"pipenv run\" would fail. I worked around this by looking in the \"Pipfile\" to see what commands were actually being run, and it turns out it was just calling specific Python scripts in the matrix-archive directory. So, I resolved to run those by hand.</p>\n<h3>MongoDB</h3>\n<p>matrix-archive requires MongoDB. I don't use it for anything else, so I had to \"sudo apt install mongodb-server\".</p>\n<h3>\n Running the Import\n</h3>\n<p>First, I set the environment variables needed by matrix-archive:</p>\n<pre>\n export MATRIX_USER=<my username>\n export MATRIX_PASSWORD=<my password>\n export MATRIX_HOST=http://127.0.0.1:8009\n</pre>\n<p>Then confirmed it was working by getting a list of rooms with IDs:</p>\n<pre>\n python list_rooms.py\n</pre>\n<p>I set up the list of room IDs in an environment variable:</p>\n<pre>\n export MATRIX_ROOM_IDS=!room@server,!room2@server,...\n</pre>\n<p>And slurped in all the messages with:</p>\n<pre>\n python import_messages.py\n</pre>\n<p>At the end, it said it had a bunch of messages. Hooray!</p>\n<h3>Running the Export</h3>\n<p>This is where things kind of ran off the rails. In trying to export messages I kept seeing Python KeyErrors about a missing 'info' key. It seems like maybe the Matrix protocol was updated to make this an optional key, but the upshot was that matrix-archive seemed to assume that every message with an image attached would have an 'info' with info about a thumbnail for that image.</p>\n<p>\n Additionally, the script to download images had some naive handling for turning attachment URLs like \"mxc://example.com/...\" into downloadable URLs. Matrix supports <a href=\"https://github.com/matrix-org/synapse/blob/9ffadcdbadd1d480a23a8fc46111bba211089006/docs/federate.md#dns-srv-delegation\">DNS-based delegation</a>, so you can say \"the Matrix server for example.com is matrix.example.com:8448, and this script didn't handle that.\n</p>\n<p>I did some <a href=\"https://github.com/martymcguire/matrix-archive/commit/054bfba36344d0e40b3de4a8fdf9c4de96bc8f25\">nasty hacks</a> to only get full-sized images, and from the right host:</p>\n<ul><li>updated the schema to return the full image URL instead of digging in for a thumbnail</li>\n <li>added handling to export_messages.py to handle missing 'info', which was used to guess image mimetypes</li>\n <li>added some hardcoding to map converted \"mxc://\" URLs to the right host.</li>\n</ul><p>Afterwards I was able to do an export of alllllll the images to a \"images/\" folder:</p>\n<pre>\n python download_images.py --no-thumbnails\n</pre>\n<p>\n And could then export a particular room's history with:\n</p>\n<pre>\n python export_messages.py --room-id ROOM-NAME --local-images --filename ROOM-NAME.html\n</pre>\n<p>Note that the \"--room-id\" flag above actually wants the human-readable room name, unless it's actually a room on the main matrix.org server.</p>\n<p>\n Afterwards, I could open room-name.html in my browser, and see the very important messages and images I worked so hard to archive.\n</p>\n<img src=\"https://aperture-proxy.p3k.io/f9177e9dbfed7374361adc018248f5c77ac47f69/68747470733a2f2f6d656469612e6d617274796d636775692e72652f38612f31352f37312f32342f35393935343365636562383962343666383333666261646535326339313437326562393265393862363937663230396137623236663233362e706e67\" alt=\"a message exchange. marty asks maktrobot to 'pug me'. maktrobot responds with an image of a pug.\" />Screenshot from the (very minimal) HTML export, including an image (of a pug, sourced by a chat bot).<h2>What's Next?</h2>\n<p>For now, I'll be putting these files and images in a safe backup and not worrying about them too much, because I have them. I've already stopped my old Synapse server, and can tackle setting up the new one at my leisure. We've moved our house chats to Signal, and I've moved my IRC usage over to bridged Slack channels.</p>\n<p>\n Running a Matrix Synapse homeserver for the past couple of years has been quite interesting! I really appreciate the hard working community (especially in light of their <a href=\"https://matrix.org/blog/2019/05/08/post-mortem-and-remediations-for-apr-11-security-incident/\">recent infrastructure troubles</a>), and I recognize that it's a ton of work to build a federating network of real-time, private communication. I enjoyed the freedom of having my own chat service to run bots, share images, and discuss private moments without worrying about who might be reading the messages now or down the road.\n</p>\n<p>That said, there are still some major usability kinks to work out. The end-to-end encryption rollout across homeservers and clients hasn't been the smoothest, and it can be an issue juggling E2EE keys across devices. I look forward to seeing how the community addresses issues like these in the future!</p>\n<p>\n TL;DR - saving an archive of a room's history and files should <i>not be this hard</i>.\n</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://aperture-proxy.p3k.io/8275f85e3a389bd0ae69f209683436fc53d8bad9/68747470733a2f2f6d617274796d636775692e72652f696d616765732f6c6f676f2e6a7067"
},
"post-type": "article",
"_id": "3396943",
"_source": "175"
}
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20190510/1",
"published": "2019-05-10T07:48:40-07:00",
"content": {
"html": "<img alt=\"\" src=\"https://aperture-proxy.p3k.io/42a402f27ec384f9936d42535f45a56ba80b9d2d/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f6d617269706f7374612f696d6167652f75706c6f61642f775f313230302c635f6c696d69742c715f36352f46384342334531392d444643352d343445352d413933312d4139463439304435463336445f6477776e78612e6a7067\" /><p>On a family outing in <a href=\"https://jaredwhite.com/tag/portland\">#portland</a> last weekend, we saw this classic Buick parked along the street\u2014gleaming in the sunlight and in absolutely imacculate condition inside and out. Now I\u2019ve never had a particular interest in owning and maintaining classic cars, but if I did\u2026I\u2019d want this one. \ud83d\ude0e</p>",
"text": "On a family outing in #portland last weekend, we saw this classic Buick parked along the street\u2014gleaming in the sunlight and in absolutely imacculate condition inside and out. Now I\u2019ve never had a particular interest in owning and maintaining classic cars, but if I did\u2026I\u2019d want this one. \ud83d\ude0e"
},
"name": "Picture for Friday, May 10, 2019 at 7:48 AM",
"post-type": "article",
"_id": "3903236",
"_source": "2783"
}
{
"type": "entry",
"published": "2019-05-10T16:41:09+02:00",
"url": "https://aaronparecki.com/2019/05/10/22/",
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/7844080d7cf3c48978fa2de43e0a0d6f0e2cc5c664497b16ee265c809a62d86c.jpg"
],
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/5cd58d85d4cc98002cbb5bc7"
],
"content": {
"text": "Here again!"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "NH D\u00fcsseldorf City",
"latitude": "51.217202",
"longitude": "6.802951",
"url": "https://foursquare.com/v/4b0baae3f964a520ef3223e3"
},
"post-type": "checkin",
"_id": "3393650",
"_source": "16"
}
{
"type": "entry",
"author": {
"name": "Cathie",
"url": "https://cathieleblanc.com/",
"photo": null
},
"url": "https://cathieleblanc.com/2019/05/10/what-is-tackling-a-wicked-problem/",
"published": "2019-05-10T14:23:22+00:00",
"content": {
"html": "<p>Starting this fall, Plymouth State University is embarking on a new curricular initiative called <em>Tackling a Wicked Problem</em> (TWP). This is a course required of all first year students, designed to provide experiences in our cluster learning model. We have taken a lot of steps to get to the point where we\u2019re offering the course for the first time so I thought it might be useful to remember where we came from in developing this course and why we have made the choices that we have. The course replaces our former requirement that all first year students take First Year Seminar and our work to revise that course led to the development of TWP.</p>\n<p>Back in the Fall 2016 semester, then-Dean of the First Year Experience Mark Fischler reconvened the First Year Seminar Coordinating Council, a group of faculty that had long overseen our First Year Seminar but which had become a bit dormant. The charge to the group was to rethink our First Year Seminar so that it could fulfill President Birx\u2019s vision of the <a href=\"https://campus.plymouth.edu/president/the-four-tools-of-clusters/\">Four Tools of Clusters</a>.</p>\n<p>As we were developing and teaching this new(ish) version of the First Year Seminar, a group of faculty were working on articulating the learning outcomes for the General Education program. The group came up with a set of four <a href=\"https://psugened.pressbooks.com/chapter/habits-of-mind/\">Habits of Mind</a>, or usual ways of engaging with the world, that have now been approved by the full faculty as the learning outcomes for the program. Because the First Year Seminar (and now TWP) is the first course in the General Education program, it necessarily focuses on providing experiences for students to practice these Habits of Mind, which are shown below:</p>\n<p><a href=\"https://i1.wp.com/cathieleblanc.com/wp-content/uploads/2019/05/Habits-of-Mind-Infographic.png?ssl=1\"><img src=\"https://i1.wp.com/cathieleblanc.com/wp-content/uploads/2019/05/Habits-of-Mind-Infographic.png?resize=576%2C747&ssl=1\" alt=\"\" /></a></p>\n<p>The idea of students owning their education or being able to tell the story of their educational journey was a topic that came up a lot as we were developing the First Year Seminar. This idea is related to the Self-Regulated Learning Habit of Mind. Self-Regulated Learning is characterized by students taking ownership over their own learning, being fully engaged in the learning process, and having meta-cognitive awareness in that they understand how they learn best and seek out and create situations to aid in their own learning.</p>\n<p>To provide opportunities for students to engage with this Habit of Mind, the First Year Seminar Coordinating Council decided to focus the First Year Seminar (and now TWP) on project-based learning. The group talked about how meaningful it is when students engage in experiences related to <a href=\"http://nsse.indiana.edu/html/high_impact_practices.cfm\">high impact practices</a> like working on \u201creal world\u201d projects and what we would need to change in our existing course for that to happen. <a href=\"https://cathieleblanc.com/2016/11/07/continued-cluster-communication/\">Here\u2019s what I wrote at the time</a>:</p>\n<blockquote><p>The changes are not huge but we think they represent a good first step toward a FYS that supports the kind of project-based learning experiences that we want more of our students to have. First, we want to change some of the processes we use for students to enroll in FYS so that they are truly choosing the course section based on their interest in the topic rather than choosing based on the time that the section is offered. Second, the course will continue to focus on critical thinking. But we think that moving from a question for each section to a kind of challenge or issue for each section will help to inform the projects that students might work on. For example, instead of choosing a question like \u201cWhy do people believe weird things?\u201d (which is the question I have used when I teach the course), I might choose a challenge or issue (or what some people call \u201c<a href=\"http://www.cognexus.org/id42.htm\">wicked problems</a>\u201c) like \u201cPeople\u2019s distrust of the media.\u201d The question that I previously focused on in my class is related to the issue of distrust in the media. I might even use some of the same materials to introduce students to the topic. But now, instead of focusing on answering the question posed by the course, students will focus on improving the situation related to the issue. In other words, we wouldn\u2019t focus on solving the problem of people not trusting the media. In fact, that problem defies easy solutions. Instead, we will focus on understanding the issue (because these problems are ill-structured and complex) and then trying to have some impact by working on a project related to the issue. We won\u2019t \u201csolve\u201d the problem, again because the problem defies easy solutions. There has been a lot written about \u201cwicked problems\u201d and I encourage anyone interested in FYS to do a bit of research about the topic. Third, every section of the course should have extended discussions about general education. This is already supposed to be a part of the FYS but it isn\u2019t clear that these discussions are helping students to choose an intentional path through their Gen Ed requirements and so we want to make sure that all sections include this piece.</p></blockquote>\n<p>Around this time, some of us also read David Wiley\u2019s <a href=\"https://opencontent.org/blog/archives/2975\">blog post</a> about open pedagogy and disposable assignments about which, he says, \u201cThese are assignments that students complain about doing and faculty complain about grading. They\u2019re assignments that add no value to the world \u2013 after a student spends three hours creating it, a teacher spends 30 minutes grading it, and then the student throws it away. Not only do these assignments add no value to the world, they actually suck value out of the world.\u201d Wiley\u2019s thoughts about engaging students in meaningful work permeated the development of the revised FYS. As I was teaching the class in Fall 2017, I <a href=\"https://cathieleblanc.com/2017/11/16/general-education-and-clusters-revisited/\">wrote</a> about this idea:</p>\n<blockquote><p>In a typical class, a student might be asked to write a research paper. The student writes the paper and submits it to a learning management system (or hands it in in hard copy form). The instructor of the course writes comments on it and gives it a grade. The student reads the comments (or doesn\u2019t). If the paper was handed in as a hard copy, the student is then likely to throw it away. If the paper was submitted to a learning management system, the instructor ensures that this is the only kind of information that is NOT imported into the course for the next offering. In other words, this paper has no life beyond the class, no audience beyond the instructor. It is \u201cthrow-away\u201d work. Who gets excited about doing \u201cthrow-away\u201d work? The thing that NSSE\u2019s high impact experiences have in common is that none of them ask the students to engage in \u201cthrow-away\u201d work. They are all about work that matters in some way to the world. If we change our pedagogy in our Gen Ed classes so that at least one assignment is not \u201cthrow-away,\u201d we can now ensure that students have multiple significant high impact experiences. All of our students.</p></blockquote>\n<p>As we continued our discussions about these changes, we began to read about Design Thinking as a methodology for approaching these problems. In December 2016, <a href=\"https://cathieleblanc.com/2016/12/15/design-thinking-and-wicked-problems/\">I wrote</a>:</p>\n<blockquote><p>Design thinking is a methodology for working on complex problems. It is <a href=\"http://www.creativityatwork.com/design-thinking-strategy-for-innovation/\">solution focused</a> rather than problem focused. It is an iterative process with five clearly defined stages that we move around in non-linearly. The first stage is about empathy. We need to know the people involved in the problem, especially the \u201cend-users,\u201d those most affected by the problem. We need to know about their needs and the contexts in which they live. We need to put ourselves, as much as possible, in their shoes to think about what would be helpful. The second stage involves defining the problem as one whose solution will satisfy a human-centered need. Notice that this definition of the problem has moved from the larger, complex problem that we are trying to work on to a smaller, more focused problem that expresses the needs of a particular group of people. The third step is about ideation, where the designers (in this case, the students) generate many ideas about how to satisfy the need identified in the definition stage. The fourth stage is to build several small-scale prototypes where particular aspects of the solution to the problem are chosen for implementation. This is an experimental phase where the goal is to identify the best solution to the needs with the constraints identified in the other phases. The fifth stage involves testing the prototypes and often involves the development of more insights into the problem that can then be iteratively incorporated into redefining the problem or into new ideation and prototyping stages. This is a non-linear process where each stage may lead to paths forward or backward to any other stage in the process.</p>\n\n<p><img src=\"https://aperture-proxy.p3k.io/105325dba402b249a1ca5ac501a32d34abe3e0e9/68747470733a2f2f69312e77702e636f6d2f6361746869656c65626c616e632e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031362f31322f64657369676e7468696e6b696e672e6a70673f726573697a653d393430253243353337\" alt=\"designthinking\" /></p>\n<p><a href=\"https://www.interaction-design.org/literature/article/5-stages-in-the-design-thinking-process\">Design Thinking Steps</a></p>\n\n<p>One thing that I particularly like about the design thinking mindset is that there is a <em><a href=\"https://dschool.stanford.edu/groups/k12/wiki/548fb/Bias_Toward_Action.html\">bias towards action</a></em>. This core principle of design thinking means that the focus is on action-oriented work rather than discussion-oriented work. The team is then unlikely to get stuck because they can\u2019t figure something out. Instead, they are encouraged to move in new directions, to think about things differently, and become unstuck.</p></blockquote>\n<p>From these conversations, we developed the idea of cluster pedagogy (for which we subsequently received <a href=\"https://cathieleblanc.com/2018/12/03/implementing-cluster-pedagogy-in-the-general-education-program/\">the grant</a> from The Davis Educational Foundation that supports our Cluster Pedagogy Learning Community (CPLC)). Cluster pedagogy is the set of characteristics that bring the <a href=\"https://campus.plymouth.edu/president/the-four-tools-of-clusters/\">four tools of clusters</a> together into a coherent curriculum. Those characteristics are:</p>\n\n<ul><li>Interdisciplinarity and integration: Students are challenged to understand and use various disciplinary perspectives and to integrate those perspectives to create new and unique projects and/or solutions.</li>\n</ul><ul><li>Project-based work that extends beyond the walls of the classroom: Students work on projects that impact the world outside of the classroom in some way.</li>\n</ul><ul><li>Sharing with an external audience: Student work is shared with an audience external to the course.</li>\n</ul><p>As I wrote in the application for the grant:</p>\n<blockquote><p>Our vision of cluster pedagogy is informed by the wider movement toward open pedagogy that we see taking hold in higher education. We subscribe to the definition of open pedagogy articulated by DeRosa and Jhangiani in \u201c<a href=\"http://openpedagogy.org/open-pedagogy/\">What is Open Pedagogy</a>?\u201d. They write that open pedagogy is advocacy for the use of open educational resources merged with pedagogical approaches that emphasize \u201ccollaboration, connection, diversity, democracy, and critical assessment of educational tools and structures.\u201d Cluster pedagogy is PSU\u2019s particular implementation of open pedagogy in which we emphasize work on projects that reach beyond the walls of the classroom in a variety of ways. We believe that our particular implementation of open pedagogy can be a model for other universities interested in better preparing their students for success.</p></blockquote>\n<p>In fact, as we have developed the CPLC, we have changed the third characteristic of cluster pedagogy to explicitly name open pedagogy more generally.</p>\n<p>To facilitate students sharing their work with an external audience, we have built an end of semester experience into TWP. At the moment, we have a common assignment in which students create posters to explain to an external audience the activities that they undertook in their project development and implementation and what they learned from those activities. This is a group poster since the project is a collaborative one. The students present their poster at a public poster symposium during the last week of the semester. In addition, students write an individual essay in which they reflect on their development of the Habits of Mind.</p>\n<p>Because the FYS, and now TWP, are so local to PSU, the First Year Seminar Fellows decided to create an open educational resource (OER) for use in the class. The original version of that OER is <a href=\"https://psufys.pressbooks.com/\">here</a>. We are currently working on a new OER for the new course. It is not yet complete but you can watch the development of it <a href=\"https://wicked-problem.press.plymouth.edu/\">here</a>. The generic syllabus of the new course can be found <a href=\"http://cathieleblanc.com/files/index.php/s/x5mmvpMkLVknBUI\">here</a>.</p>\n<p><em>Tackling a Wicked Problem</em> is a cornerstone course in Plymouth State University\u2019s Integrated Cluster learning model. I think it represents the direction in which more of our courses should head so that PSU graduates have the chance to develop the Habits of Mind that will help them succeed in their personal and professional lives. I\u2019m looking forward to the lessons we learn about how to teach the class well.</p>\n<p>Image Credit: I took the featured image of Rounds Hall on the PSU campus on April 11, 2019. <a href=\"https://creativecommons.org/licenses/by/4.0/deed.ast\">CC-BY-4.0</a></p>",
"text": "Starting this fall, Plymouth State University is embarking on a new curricular initiative called Tackling a Wicked Problem (TWP). This is a course required of all first year students, designed to provide experiences in our cluster learning model. We have taken a lot of steps to get to the point where we\u2019re offering the course for the first time so I thought it might be useful to remember where we came from in developing this course and why we have made the choices that we have. The course replaces our former requirement that all first year students take First Year Seminar and our work to revise that course led to the development of TWP.\nBack in the Fall 2016 semester, then-Dean of the First Year Experience Mark Fischler reconvened the First Year Seminar Coordinating Council, a group of faculty that had long overseen our First Year Seminar but which had become a bit dormant. The charge to the group was to rethink our First Year Seminar so that it could fulfill President Birx\u2019s vision of the Four Tools of Clusters.\nAs we were developing and teaching this new(ish) version of the First Year Seminar, a group of faculty were working on articulating the learning outcomes for the General Education program. The group came up with a set of four Habits of Mind, or usual ways of engaging with the world, that have now been approved by the full faculty as the learning outcomes for the program. Because the First Year Seminar (and now TWP) is the first course in the General Education program, it necessarily focuses on providing experiences for students to practice these Habits of Mind, which are shown below:\n\nThe idea of students owning their education or being able to tell the story of their educational journey was a topic that came up a lot as we were developing the First Year Seminar. This idea is related to the Self-Regulated Learning Habit of Mind. Self-Regulated Learning is characterized by students taking ownership over their own learning, being fully engaged in the learning process, and having meta-cognitive awareness in that they understand how they learn best and seek out and create situations to aid in their own learning.\nTo provide opportunities for students to engage with this Habit of Mind, the First Year Seminar Coordinating Council decided to focus the First Year Seminar (and now TWP) on project-based learning. The group talked about how meaningful it is when students engage in experiences related to high impact practices like working on \u201creal world\u201d projects and what we would need to change in our existing course for that to happen. Here\u2019s what I wrote at the time:\nThe changes are not huge but we think they represent a good first step toward a FYS that supports the kind of project-based learning experiences that we want more of our students to have. First, we want to change some of the processes we use for students to enroll in FYS so that they are truly choosing the course section based on their interest in the topic rather than choosing based on the time that the section is offered. Second, the course will continue to focus on critical thinking. But we think that moving from a question for each section to a kind of challenge or issue for each section will help to inform the projects that students might work on. For example, instead of choosing a question like \u201cWhy do people believe weird things?\u201d (which is the question I have used when I teach the course), I might choose a challenge or issue (or what some people call \u201cwicked problems\u201c) like \u201cPeople\u2019s distrust of the media.\u201d The question that I previously focused on in my class is related to the issue of distrust in the media. I might even use some of the same materials to introduce students to the topic. But now, instead of focusing on answering the question posed by the course, students will focus on improving the situation related to the issue. In other words, we wouldn\u2019t focus on solving the problem of people not trusting the media. In fact, that problem defies easy solutions. Instead, we will focus on understanding the issue (because these problems are ill-structured and complex) and then trying to have some impact by working on a project related to the issue. We won\u2019t \u201csolve\u201d the problem, again because the problem defies easy solutions. There has been a lot written about \u201cwicked problems\u201d and I encourage anyone interested in FYS to do a bit of research about the topic. Third, every section of the course should have extended discussions about general education. This is already supposed to be a part of the FYS but it isn\u2019t clear that these discussions are helping students to choose an intentional path through their Gen Ed requirements and so we want to make sure that all sections include this piece.\nAround this time, some of us also read David Wiley\u2019s blog post about open pedagogy and disposable assignments about which, he says, \u201cThese are assignments that students complain about doing and faculty complain about grading. They\u2019re assignments that add no value to the world \u2013 after a student spends three hours creating it, a teacher spends 30 minutes grading it, and then the student throws it away. Not only do these assignments add no value to the world, they actually suck value out of the world.\u201d Wiley\u2019s thoughts about engaging students in meaningful work permeated the development of the revised FYS. As I was teaching the class in Fall 2017, I wrote about this idea:\nIn a typical class, a student might be asked to write a research paper. The student writes the paper and submits it to a learning management system (or hands it in in hard copy form). The instructor of the course writes comments on it and gives it a grade. The student reads the comments (or doesn\u2019t). If the paper was handed in as a hard copy, the student is then likely to throw it away. If the paper was submitted to a learning management system, the instructor ensures that this is the only kind of information that is NOT imported into the course for the next offering. In other words, this paper has no life beyond the class, no audience beyond the instructor. It is \u201cthrow-away\u201d work. Who gets excited about doing \u201cthrow-away\u201d work? The thing that NSSE\u2019s high impact experiences have in common is that none of them ask the students to engage in \u201cthrow-away\u201d work. They are all about work that matters in some way to the world. If we change our pedagogy in our Gen Ed classes so that at least one assignment is not \u201cthrow-away,\u201d we can now ensure that students have multiple significant high impact experiences. All of our students.\nAs we continued our discussions about these changes, we began to read about Design Thinking as a methodology for approaching these problems. In December 2016, I wrote:\nDesign thinking is a methodology for working on complex problems. It is solution focused rather than problem focused. It is an iterative process with five clearly defined stages that we move around in non-linearly. The first stage is about empathy. We need to know the people involved in the problem, especially the \u201cend-users,\u201d those most affected by the problem. We need to know about their needs and the contexts in which they live. We need to put ourselves, as much as possible, in their shoes to think about what would be helpful. The second stage involves defining the problem as one whose solution will satisfy a human-centered need. Notice that this definition of the problem has moved from the larger, complex problem that we are trying to work on to a smaller, more focused problem that expresses the needs of a particular group of people. The third step is about ideation, where the designers (in this case, the students) generate many ideas about how to satisfy the need identified in the definition stage. The fourth stage is to build several small-scale prototypes where particular aspects of the solution to the problem are chosen for implementation. This is an experimental phase where the goal is to identify the best solution to the needs with the constraints identified in the other phases. The fifth stage involves testing the prototypes and often involves the development of more insights into the problem that can then be iteratively incorporated into redefining the problem or into new ideation and prototyping stages. This is a non-linear process where each stage may lead to paths forward or backward to any other stage in the process.\n\n\nDesign Thinking Steps\n\nOne thing that I particularly like about the design thinking mindset is that there is a bias towards action. This core principle of design thinking means that the focus is on action-oriented work rather than discussion-oriented work. The team is then unlikely to get stuck because they can\u2019t figure something out. Instead, they are encouraged to move in new directions, to think about things differently, and become unstuck.\nFrom these conversations, we developed the idea of cluster pedagogy (for which we subsequently received the grant from The Davis Educational Foundation that supports our Cluster Pedagogy Learning Community (CPLC)). Cluster pedagogy is the set of characteristics that bring the four tools of clusters together into a coherent curriculum. Those characteristics are:\n\nInterdisciplinarity and integration: Students are challenged to understand and use various disciplinary perspectives and to integrate those perspectives to create new and unique projects and/or solutions.\nProject-based work that extends beyond the walls of the classroom: Students work on projects that impact the world outside of the classroom in some way.\nSharing with an external audience: Student work is shared with an audience external to the course.\nAs I wrote in the application for the grant:\nOur vision of cluster pedagogy is informed by the wider movement toward open pedagogy that we see taking hold in higher education. We subscribe to the definition of open pedagogy articulated by DeRosa and Jhangiani in \u201cWhat is Open Pedagogy?\u201d. They write that open pedagogy is advocacy for the use of open educational resources merged with pedagogical approaches that emphasize \u201ccollaboration, connection, diversity, democracy, and critical assessment of educational tools and structures.\u201d Cluster pedagogy is PSU\u2019s particular implementation of open pedagogy in which we emphasize work on projects that reach beyond the walls of the classroom in a variety of ways. We believe that our particular implementation of open pedagogy can be a model for other universities interested in better preparing their students for success.\nIn fact, as we have developed the CPLC, we have changed the third characteristic of cluster pedagogy to explicitly name open pedagogy more generally.\nTo facilitate students sharing their work with an external audience, we have built an end of semester experience into TWP. At the moment, we have a common assignment in which students create posters to explain to an external audience the activities that they undertook in their project development and implementation and what they learned from those activities. This is a group poster since the project is a collaborative one. The students present their poster at a public poster symposium during the last week of the semester. In addition, students write an individual essay in which they reflect on their development of the Habits of Mind.\nBecause the FYS, and now TWP, are so local to PSU, the First Year Seminar Fellows decided to create an open educational resource (OER) for use in the class. The original version of that OER is here. We are currently working on a new OER for the new course. It is not yet complete but you can watch the development of it here. The generic syllabus of the new course can be found here.\nTackling a Wicked Problem is a cornerstone course in Plymouth State University\u2019s Integrated Cluster learning model. I think it represents the direction in which more of our courses should head so that PSU graduates have the chance to develop the Habits of Mind that will help them succeed in their personal and professional lives. I\u2019m looking forward to the lessons we learn about how to teach the class well.\nImage Credit: I took the featured image of Rounds Hall on the PSU campus on April 11, 2019. CC-BY-4.0"
},
"name": "What is \u201cTackling a Wicked Problem\u201d?",
"post-type": "article",
"_id": "3903180",
"_source": "2782"
}
{
"type": "entry",
"published": "2019-05-10T15:06:15+02:00",
"url": "https://aaronparecki.com/2019/05/10/13/",
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/5cd57747787dba0038f4e933"
],
"content": {
"text": "Made it to D\u00fcsseldorf!"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "D\u00fcsseldorf Airport (DUS) (D\u00fcsseldorf Airport)",
"latitude": "51.279244",
"longitude": "6.766107",
"url": "https://foursquare.com/v/4ab20257f964a520a96a20e3"
},
"post-type": "checkin",
"_id": "3392358",
"_source": "16"
}
{
"type": "entry",
"published": "2019-05-10T00:00:00-07:00",
"summary": "We (Workshop 3D) have just released a new version of propellAR, which is free and fun and you should try it out! Even if you think it won\u2019t work on your phone, try it anyway \u2013 its device requirements are a lot lower than most AR apps.\nAlso, we\u2019re going to be showing it off at Tacoma Mini Maker Faire this weekend.\nFinally, we are running a photography contest for those who are so inclined.\nAnyway. Try out our app and tell your friends, so we can keep on making cool fun toys like propellAR!",
"url": "https://beesbuzz.biz/blog/2868-New-version-of-propellAR-released",
"name": "New version of propellAR released",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "3903095",
"_source": "2778"
}
{
"type": "entry",
"published": "2019-05-10T16:17:44+10:00",
"url": "https://unicyclic.com/mal/2019-05-10-There_was_something_else_I_wanted_to_mention_in_my",
"category": [
"indieweb"
],
"content": {
"text": "There was something else I wanted to mention in my post the other day, but left it out because it was getting a bit long. The first screenshot contains the unexplained piece of text: \"To follow indieweb add a reader\" followed by a settings link. (Here it is again...)\n\n\n\n\nI added this because it's an easy way to add a rel=feed to the page. It's a separate module in Dobrado that allows setting some values for the account. One of the options allows specifying what feeds you want to make discoverable, so in this case I have it set to indieweb/directory which is the microformats feed list for all the feeds shown on that page.\n\n\nThe module renders that link, marked up with rel=feed, along with the logo and account name as an h-card for the account. The other thing it does is provide a webaction, which is why rather than just being a link it mentions adding a reader. Clicking the settings link opens a dialog that lets you specify your web action config. If the dialog finds a valid config it will trigger an update to any indie-action tags it finds on the page. There just happens to be one in the module I've just mentioned, so it will now looks like this:\n\n\n\n\nThe link \"follow indieweb\" is now using my config! It's pointing at my own reader with a follow action set, so if I click on that link all I have to do is click ok in my reader to add the feed. As it turns out I'm already following the indieweb directory on unicyclic.com, and my webaction config has checked this too!\n\n\nOne of the options set in my config is status and it happens to work a little differently from the other actions. This config option supports CORS requests, and will provide information about urls when I'm logged in. The request is made during the config check mentioned above, so the page actually looks like this for me:\n\n\n\n\nThe status endpoint supports multiple urls at a time, so it gets called for all indie-action tags on a page, and returns information for other actions too such as likes, replies and reposts. When it finds an action set for a url, that action will also be highlighted on the page.",
"html": "There was something else I wanted to mention <a href=\"https://unicyclic.com/mal/2019-05-07-On_planets_and_reading_lists\">in my post the other day</a>, but left it out because it was getting a bit long. The first screenshot contains the unexplained piece of text: \"To follow indieweb add a reader\" followed by a settings link. (Here it is again...)<br /><br /><img alt=\"\" src=\"https://aperture-proxy.p3k.io/4474127354a9495ab68e2b2a43e3b8674b8b5d37/68747470733a2f2f756e696379636c69632e636f6d2f6d616c2f7075626c69632f706c616e6574312e706e67\" /><br /><br />\nI added this because it's an easy way to add a <strong>rel=feed</strong> to the page. It's a separate module in <a href=\"https://dobrado.net\">Dobrado</a> that allows setting some values for the account. One of the options allows specifying what feeds you want to make discoverable, so in this case I have it set to <a href=\"https://unicyclic.com/indieweb/directory\">indieweb/directory</a> which is the microformats feed list for all the feeds shown on that page.<br /><br />\nThe module renders that link, marked up with rel=feed, along with the logo and account name as an h-card for the account. The other thing it does is provide a <a href=\"https://indieweb.org/webactions\">webaction</a>, which is why rather than just being a link it mentions adding a reader. Clicking the settings link opens a dialog that lets you specify your <a href=\"https://indieweb.org/webaction_handler\">web action config</a>. If the dialog finds a valid config it will trigger an update to any indie-action tags it finds on the page. There just happens to be one in the module I've just mentioned, so it will now looks like this:<br /><br /><img alt=\"\" src=\"https://aperture-proxy.p3k.io/65aa5fac3f7ede37dfc6f89aa35fc6497acbe517/68747470733a2f2f756e696379636c69632e636f6d2f6d616c2f7075626c69632f706c616e6574322e706e67\" /><br /><br />\nThe link \"follow indieweb\" is now using my config! It's pointing at my own reader with a follow action set, so if I click on that link all I have to do is click ok in my reader to add the feed. As it turns out I'm already following the indieweb directory on unicyclic.com, and my webaction config has checked this too!<br /><br />\nOne of the options set in my config is <strong>status</strong> and it happens to work a little differently from the other actions. This config option supports CORS requests, and will provide information about urls when I'm logged in. The request is made during the config check mentioned above, so the page actually looks like this for me:<br /><br /><img alt=\"\" src=\"https://aperture-proxy.p3k.io/f567d90c2edde15b3bd3c5b8faf1cb2e9f826c7e/68747470733a2f2f756e696379636c69632e636f6d2f6d616c2f7075626c69632f706c616e6574332e706e67\" /><br /><br />\nThe status endpoint supports multiple urls at a time, so it gets called for all indie-action tags on a page, and returns information for other actions too such as likes, replies and reposts. When it finds an action set for a url, that action will also be highlighted on the page."
},
"author": {
"type": "card",
"name": "Malcolm Blaney",
"url": "https://unicyclic.com/mal",
"photo": "https://aperture-proxy.p3k.io/4f46272c0027449ced0d7cf8de31ea1bec37210e/68747470733a2f2f756e696379636c69632e636f6d2f6d616c2f7075626c69632f70726f66696c655f736d616c6c5f7468756d622e706e67"
},
"post-type": "note",
"_id": "3390965",
"_source": "243"
}
{
"type": "entry",
"published": "2019-05-09T22:16:19-07:00",
"summary": "Hm, it\u2019s been a while since I\u2019ve posted anything of substance. I guess I could check in for those of you who still read this for whatever reason.",
"url": "https://beesbuzz.biz/blog/6219-General-life-updates",
"name": "General life updates",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "3903096",
"_source": "2778"
}
{
"type": "entry",
"published": "2019-05-09T13:18:06-07:00",
"url": "https://aaronparecki.com/2019/05/09/17/",
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/5cd48afe4c9be600338c6e1b"
],
"content": {
"text": "Heading to D\u00fcsseldorf!"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-proxy.p3k.io/b9bf7ba2fc92f42254d415cdfd780d41a1964c26/68747470733a2f2f6161726f6e70617265636b692e636f6d2f696d616765732f70726f66696c652e6a7067"
},
"checkin": {
"type": "card",
"name": "Portland International Airport (PDX)",
"latitude": "45.588991",
"longitude": "-122.59404",
"url": "https://foursquare.com/v/45f412e6f964a520f6431fe3"
},
"post-type": "checkin",
"_id": "3382782",
"_source": "16"
}
{
"type": "entry",
"published": "2019-05-09T12:31:47-07:00",
"url": "https://aaronparecki.com/2019/05/09/28/",
"category": [
"csvconf"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/84a456e3d7c63e59ad19ec63a127415fa227a46fae7defe6df86e571a038640f.jpg",
"https://aperture-media.p3k.io/aaronparecki.com/ab3a671c3c119f95aa7c8feaffdca4e52c53727c0bbf40a784a2d709e67399ad.jpg"
],
"syndication": [
"https://www.instagram.com/p/BxQOzlQBAfY/"
],
"content": {
"text": "Made a new friend today at #csvconf \nRoja the comma llama!",
"html": "Made a new friend today at <a href=\"https://aaronparecki.com/tag/csvconf\">#<span class=\"p-category\">csvconf</span></a> <br />Roja the comma llama!"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "3386189",
"_source": "16"
}
{
"type": "entry",
"published": "2019-05-09T07:29:43-07:00",
"url": "https://aaronparecki.com/2019/05/09/8/",
"category": [
"csvconf"
],
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/5cd4395751950e002cd3c8bb"
],
"content": {
"text": "#csvconf",
"html": "<a href=\"https://aaronparecki.com/tag/csvconf\">#<span class=\"p-category\">csvconf</span></a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "First Unitarian Church",
"latitude": "45.518147",
"longitude": "-122.685546",
"url": "https://foursquare.com/v/4b2e4ecdf964a52020de24e3"
},
"post-type": "checkin",
"_id": "3377317",
"_source": "16"
}
{
"type": "entry",
"author": {
"name": "Cathie",
"url": "https://cathieleblanc.com/",
"photo": null
},
"url": "https://cathieleblanc.com/2019/05/08/is4220-wrap-up/",
"published": "2019-05-08T18:54:29+00:00",
"content": {
"html": "<p>Today was the final exam period for my section of IS4220\u2013Signature Project. The students presented their final project to members of various offices across campus, including Admissions and MCCS, as well as President Birx and Associate Provost Mears. Their project, an Interactive Journey Map to help prospective students navigate the journey from inquiring about PSU to enrolling in PSU, can be seen <a href=\"http://cathieleblanc.com/is4220Student/wp-content/uploads/2019/04/Journey-Map-Twine-Final-2.html\">here</a>. Their final project report is <a href=\"https://cathieleblanc.com/wp-content/uploads/2019/05/Final-Design-Report.docx\">here</a>.</p>\n<p>The students also wrote end of semester essays in which they reflected on what they learned this semester. I found their posts insightful. For example, Alie Louie <a href=\"http://alisonlouie.plymouthcreate.net/uncategorized/is-4220-01-final-reflection/\">wrote</a>: \u201cThis semester I have gotten out of my comfort zone and truly was in charge of my own learning. What I put into the class was what I was going to get out of it. This class pushed me and tested my limits. I am extremely proud of the work my classmates and I did this semester. I have never had the ability to work on something that goes farther than a Moodle page, something that could actually be implemented into real life. These Habits of Mind will stay with me throughout my last year here at PSU, and hopefully will remain in the back of my head as I develop in my desired profession.\u201d</p>\n<p>Sam Knapton <a href=\"http://samrknapton.plymouthcreate.net/uncategorized/is-4220-reflection/\">wrote</a>: \u201cThis class has been a catalyst to me learning and understanding how I can implement each of the habits of mind into my personal and professional development. Coming into this class, I did not know what to expect. This class was something really new to me because it was not like one that I had ever taken or anyone I know has taken before, so I had no basis to judge it off of, which wasn\u2019t a bad thing; I was able to develop my very own perspective and opinions of the class without any sway from other people who have taken the class. I really liked having this experience and being able to, essentially, create the class myself along with the others in the class was something that not many people get to be involved in, but should be. Having a very vague and simple direction for what the class should be like was intimidating at first. I didn\u2019t know what we could and couldn\u2019t do, but soon I learned that there was not much we could not do. If we thought about something or had an idea about one thing, if it was feasible for us to work on it, we could do it.\u201d</p>\n<p>Alexis Fagan <a href=\"http://alexisfagan.plymouthcreate.net/uncategorized/final-reflection-is4220/\">wrote</a>: \u201cThis semester I really learned a lot about myself. I pushed myself out of my comfort zone and took charge of what needed to be done in the class. I learned that I just need confidence and then it\u2019s okay to make mistakes. I mean hey, we\u2019re only human. My communication skills have improved immensely since starting this class. I also learned a lot about four habits of mind and I now understand how I can use them to continue improving my communication skills. When I signed up for the class, I didn\u2019t know what I was getting myself into, but I knew I was ready for it. It was such an opportunity to work with the people that I worked with and to receive the help that I did. I didn\u2019t know that students could make such an impact on the school. I pushed myself, we pushed ourselves, we did it. We\u2019re making a difference.\u201d</p>\n<p>Megan Toman <a href=\"https://mkt1006.wordpress.com/2019/05/08/my-journey-of-creating-a-journey-map/\">wrote</a>: \u201cThis class has been a challenge for me this semester. In the first time in my fifteen years of schooling, I wasn\u2019t working towards a letter grade for each project. A main motivator for me has always been a gold star when I was younger, to now getting a good grade point average. Since this was different for me, I struggled with finding self-motivation to complete the assignments. When an assignment was given to me, I wouldn\u2019t feel inclined to complete it, and instead put it off. What had always been a backbone of motivation, was suddenly gone. While at work, I strive to work hard, get a promotion, or get a good reference. Although I found it hard to get motivated to complete projects, I believe that the overall lessons learned from this course are far more important than the letter grade I get for it.\u201d</p>\n<p>Finally, Julie Nagel <a href=\"http://julienagel.plymouthcreate.net/uncategorized/final-reflection-is4220/\">wrote</a>: \u201cWhen engaging in the learning process you need to have confidence showing that you have the ability to learn and you are open to new ideas and learning different things. For example, I would consider my own strengths and weakness when being about of (sic) the learning process. I would try to reflect on what I was good at and not the best at. I think posting blogs about this course and what I have learned let me understand my personal goals and what I need to do in order to be responsible for my learning process.\u201d</p>\n<p>These excerpts give a glimpse into what the students wrote about their learning. I encourage you to read their full posts. It\u2019s been a wonderful experience to be able to witness their growth in the Habits of Mind and I look forward to seeing how they carry the lessons of the class forward into their future endeavors.</p>\n<p>Image Credit: I took this photo of my students on May 2, 2019. <a href=\"https://creativecommons.org/licenses/by/4.0/deed.ast\">CC-BY-4.0</a></p>",
"text": "Today was the final exam period for my section of IS4220\u2013Signature Project. The students presented their final project to members of various offices across campus, including Admissions and MCCS, as well as President Birx and Associate Provost Mears. Their project, an Interactive Journey Map to help prospective students navigate the journey from inquiring about PSU to enrolling in PSU, can be seen here. Their final project report is here.\nThe students also wrote end of semester essays in which they reflected on what they learned this semester. I found their posts insightful. For example, Alie Louie wrote: \u201cThis semester I have gotten out of my comfort zone and truly was in charge of my own learning. What I put into the class was what I was going to get out of it. This class pushed me and tested my limits. I am extremely proud of the work my classmates and I did this semester. I have never had the ability to work on something that goes farther than a Moodle page, something that could actually be implemented into real life. These Habits of Mind will stay with me throughout my last year here at PSU, and hopefully will remain in the back of my head as I develop in my desired profession.\u201d\nSam Knapton wrote: \u201cThis class has been a catalyst to me learning and understanding how I can implement each of the habits of mind into my personal and professional development. Coming into this class, I did not know what to expect. This class was something really new to me because it was not like one that I had ever taken or anyone I know has taken before, so I had no basis to judge it off of, which wasn\u2019t a bad thing; I was able to develop my very own perspective and opinions of the class without any sway from other people who have taken the class. I really liked having this experience and being able to, essentially, create the class myself along with the others in the class was something that not many people get to be involved in, but should be. Having a very vague and simple direction for what the class should be like was intimidating at first. I didn\u2019t know what we could and couldn\u2019t do, but soon I learned that there was not much we could not do. If we thought about something or had an idea about one thing, if it was feasible for us to work on it, we could do it.\u201d\nAlexis Fagan wrote: \u201cThis semester I really learned a lot about myself. I pushed myself out of my comfort zone and took charge of what needed to be done in the class. I learned that I just need confidence and then it\u2019s okay to make mistakes. I mean hey, we\u2019re only human. My communication skills have improved immensely since starting this class. I also learned a lot about four habits of mind and I now understand how I can use them to continue improving my communication skills. When I signed up for the class, I didn\u2019t know what I was getting myself into, but I knew I was ready for it. It was such an opportunity to work with the people that I worked with and to receive the help that I did. I didn\u2019t know that students could make such an impact on the school. I pushed myself, we pushed ourselves, we did it. We\u2019re making a difference.\u201d\nMegan Toman wrote: \u201cThis class has been a challenge for me this semester. In the first time in my fifteen years of schooling, I wasn\u2019t working towards a letter grade for each project. A main motivator for me has always been a gold star when I was younger, to now getting a good grade point average. Since this was different for me, I struggled with finding self-motivation to complete the assignments. When an assignment was given to me, I wouldn\u2019t feel inclined to complete it, and instead put it off. What had always been a backbone of motivation, was suddenly gone. While at work, I strive to work hard, get a promotion, or get a good reference. Although I found it hard to get motivated to complete projects, I believe that the overall lessons learned from this course are far more important than the letter grade I get for it.\u201d\nFinally, Julie Nagel wrote: \u201cWhen engaging in the learning process you need to have confidence showing that you have the ability to learn and you are open to new ideas and learning different things. For example, I would consider my own strengths and weakness when being about of (sic) the learning process. I would try to reflect on what I was good at and not the best at. I think posting blogs about this course and what I have learned let me understand my personal goals and what I need to do in order to be responsible for my learning process.\u201d\nThese excerpts give a glimpse into what the students wrote about their learning. I encourage you to read their full posts. It\u2019s been a wonderful experience to be able to witness their growth in the Habits of Mind and I look forward to seeing how they carry the lessons of the class forward into their future endeavors.\nImage Credit: I took this photo of my students on May 2, 2019. CC-BY-4.0"
},
"name": "IS4220 Wrap Up",
"post-type": "article",
"_id": "3903181",
"_source": "2782"
}
{
"type": "entry",
"published": "2019-05-08T07:54:41-07:00",
"url": "https://aaronparecki.com/2019/05/08/7/",
"category": [
"csvconf"
],
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/5cd2edb11f8ed6002c92f90e"
],
"content": {
"text": "#csvconf",
"html": "<a href=\"https://aaronparecki.com/tag/csvconf\">#<span class=\"p-category\">csvconf</span></a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "First Unitarian Church",
"latitude": "45.518147",
"longitude": "-122.685546",
"url": "https://foursquare.com/v/4b2e4ecdf964a52020de24e3"
},
"post-type": "checkin",
"_id": "3362347",
"_source": "16"
}
We found a Science Mike after the Gungor show last night!
These lovely people are new friends from the Liturgists Singles group. @mikemchargue and @michaelgungor host The Liturgists podcast. Michael is also in the band Gungor, as his name suggests. So members of our group from around the country have been respectfully stalking — er, “sharing breath with” — the band on this final tour. Last night was their finale show in LA. It was fantastic; a moving and spiritual experience.
{
"type": "entry",
"published": "2019-05-07 20:44-0700",
"url": "https://gregorlove.com/2019/05/we-found-a-science-mike/",
"category": [
"litfam"
],
"photo": [
"https://aperture-proxy.p3k.io/ef503f9e41232a0df41fcffc60d473f7dab7b9ef/68747470733a2f2f677265676f726c6f76652e636f6d2f736974652f6173736574732f66696c65732f353433362f6c697473696e676c65732d736369656e63652d6d696b652e3130303078302d69732e6a7067"
],
"content": {
"text": "We found a Science Mike after the Gungor show last night!\n\nThese lovely people are new friends from the Liturgists Singles group. @mikemchargue and @michaelgungor host The Liturgists podcast. Michael is also in the band Gungor, as his name suggests. So members of our group from around the country have been respectfully stalking \u2014 er, \u201csharing breath with\u201d \u2014 the band on this final tour. Last night was their finale show in LA. It was fantastic; a moving and spiritual experience.",
"html": "<p>We found a Science Mike after the Gungor show last night!</p>\n\n<p>These lovely people are new friends from the Liturgists Singles group. @mikemchargue and @michaelgungor host <a href=\"https://theliturgists.com\">The Liturgists</a> podcast. Michael is also in the band Gungor, as his name suggests. So members of our group from around the country have been respectfully stalking \u2014 er, \u201csharing breath with\u201d \u2014 the band on this final tour. Last night was their finale show in LA. It was fantastic; a moving and spiritual experience.</p>"
},
"author": {
"type": "card",
"name": "gRegor Morrill",
"url": "https://gregorlove.com/",
"photo": "https://aperture-proxy.p3k.io/929c8777d059069a2a16a064d96f4c29b65548f8/68747470733a2f2f677265676f726c6f76652e636f6d2f736974652f6173736574732f66696c65732f333437332f70726f66696c652d323031362d6d65642e6a7067"
},
"post-type": "photo",
"_id": "3355263",
"_source": "95"
}
{
"type": "entry",
"author": {
"name": "Lillian",
"url": "http://anomalily.net/",
"photo": null
},
"url": "http://anomalily.net/april-2019-report-motivation-not-found/",
"published": "2019-05-07T22:00:49+00:00",
"content": {
"html": "<p>Good things that happened I started figure skating again Yessss\u2026I did this. After a 15 year break, I went back to skating this month. I\u2019m not positive I\u2019ll stick with it long-term, but for now it\u2019s providing me with some fun, a good workout, and the opportunity to do something that I see significant improvement\u2026 <a href=\"http://anomalily.net/april-2019-report-motivation-not-found/\">Read more April 2019 Report: Motivation Not Found </a></p>",
"text": "Good things that happened I started figure skating again Yessss\u2026I did this. After a 15 year break, I went back to skating this month. I\u2019m not positive I\u2019ll stick with it long-term, but for now it\u2019s providing me with some fun, a good workout, and the opportunity to do something that I see significant improvement\u2026 Read more April 2019 Report: Motivation Not Found"
},
"name": "April 2019 Report: Motivation Not Found",
"post-type": "note",
"_id": "3354374",
"_source": "199"
}
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/20190507/1",
"published": "2019-05-07T14:55:08-07:00",
"content": {
"html": "<p>I tend to be very skeptical of any study, teaching, or philosophy that contains language like \u201cwomen tend to be like this\u201d or \u201cwomen tend to want to do that\u201d or \u201cwomen will think like this rather than that\u201d. Why? Because women have been so marginalized throughout history that many have internalized what societal expectations are <em>for</em> them, rather than who they <em>really</em> are. So don\u2019t look at the average results. Look at the outliers. The women kicking butt and taking names. The women defying all expectations. <em>Those</em> women are far more indicative of the future of humanity!<br /><a href=\"https://jaredwhite.com/tag/bigotry\">#bigotry</a></p>",
"text": "I tend to be very skeptical of any study, teaching, or philosophy that contains language like \u201cwomen tend to be like this\u201d or \u201cwomen tend to want to do that\u201d or \u201cwomen will think like this rather than that\u201d. Why? Because women have been so marginalized throughout history that many have internalized what societal expectations are for them, rather than who they really are. So don\u2019t look at the average results. Look at the outliers. The women kicking butt and taking names. The women defying all expectations. Those women are far more indicative of the future of humanity!\n#bigotry"
},
"name": "Thought for Tuesday, May 7, 2019 at 2:55 PM",
"post-type": "article",
"_id": "3903237",
"_source": "2783"
}
A while back I stayed up late listening to Autechre, contemplating their utter disinterest in humanizing the sounds of machines or in producing legible musical forms. It inspired me to make a wall of machine sound, too.
{
"type": "entry",
"author": {
"name": null,
"url": "https://davepeck.org/micro/",
"photo": null
},
"url": "https://davepeck.org/2019/05/06/dionology-search/",
"published": "2019-05-06T21:57:00-07:00",
"content": {
"html": "<p>A while back I stayed up late listening to Autechre, contemplating their utter disinterest in humanizing the sounds of machines or in producing legible musical forms. It inspired me to make a wall of machine sound, too.</p>\n\n\n \n <img src=\"https://aperture-proxy.p3k.io/1f200d051f10fa247b56f980be47e1a9099b73c8/68747470733a2f2f646176657065636b2e6f72672f696d672f626c616e6b3178312e706e67\" alt=\"blank1x1.png\" /><a href=\"https://davepeck.org/content/audio/2019/05/06/Dionology%20Search.mp3\">Dionology Search</a><img src=\"https://aperture-proxy.p3k.io/1f200d051f10fa247b56f980be47e1a9099b73c8/68747470733a2f2f646176657065636b2e6f72672f696d672f626c616e6b3178312e706e67\" alt=\"blank1x1.png\" />",
"text": "A while back I stayed up late listening to Autechre, contemplating their utter disinterest in humanizing the sounds of machines or in producing legible musical forms. It inspired me to make a wall of machine sound, too.\n\n\n \n Dionology Search"
},
"post-type": "note",
"_id": "3903139",
"_source": "2781"
}
{
"type": "entry",
"published": "2019-05-07T14:38:32+10:00",
"url": "https://unicyclic.com/mal/2019-05-07-On_planets_and_reading_lists",
"category": [
"https://news.indieweb.org/en"
],
"syndication": [
"https://twitter.com/malcolmblaney/status/1125620969261928449"
],
"name": "On planets and reading lists",
"content": {
"text": "This is going to be a long one, so the short version is summed up in this screenshot:\n\n\n\n\nThat's from the top of this page: unicyclic.com/indieweb, which is a feed combined from different sources, commonly referred to as a planet. Up until now I've been adding new feeds to that page as people join the IndieWeb community, but I've now automated that process using follow webmentions.\n\n\nWhat is a follow webmention? Well you start by writing a post on your own website containing a link to someone you've started following in your reader, with an extra bit of microformats in the markup of the link: class=\"u-follow-of\". Then you would send webmentions for the post, so that the recipient can check your content and discover that you have indeed started following them.\n\n\nThat is what the indieweb account on unicyclic.com is now looking for, but with one extra step. When it receives a follow webmention, it will follow you back by adding you to the planet it manages. It does this by looking at the author of the post, and then doing feed discovery based on that URL. If it all works out you will be notified in the response to your webmention.\n\n\nIf you don't want to be listed in the planet you can unfollow the indieweb account too, no hard feelings! This is done by removing your follow post and re-sending webmentions, which should result in a 410 Gone status code from your site.\n\n\nSo that's how this planet now works, but what is really fun is connecting this to reading lists. I'm not sure what the right terminology is here... reading lists are also known as subscriptions lists, or dynamic OPML files. Whatever they are Dobrado now supports them, so you can subscribe to unicyclic.com/indieweb and stay up to date with the feeds of whoever happens to have joined.\n\n\nBoth OPML and microformats versions are available to subscribe to and are linked from that page for discovery. Since microformats is just HTML it is also a nice web page to browse, and adds to the growing list of directories in a year that is widely regarded as the year of the indieweb directory. If you parse the microformats on that page you will notice the reading list is an h-feed of h-cards. Whichever version you subscribe to, if your reader supports this type of subscription it should add feeds to your reader when they are added to the list, and remove the feed when they are taken off.\n\n\nWhen thinking about implementing this I realised I didn't always want to stop following people just because they were removed from a reading list, so I added an extra option to manually add feeds that you're automatically subscribed to. Dobrado now provides a dialog that looks like this when viewing a reading list:\n\n\n\n\nEvery feed allows setting a channel, the new bit here is the description at the bottom of the dialog that mentions manually adding the feeds below. Scrolling down allows you to go through the feeds you've been subscribed to and manually add them, which just means they won't be removed from your reader if they are removed from the reading list or if you unsubscribe from that list completely. If you're already following a feed that just happens to be on a reading list you subscribe to, this also means your original subscription will be kept.\n\n\nUp until now I've been reading feeds from some indieweb members in my own reader, and then also visiting the indieweb page to check out the rest, which of course meant reading things twice! Pretty happy that I can now just set a channel for it and also provide a version for others to check out or subscribe to themselves.",
"html": "This is going to be a long one, so the short version is summed up in this screenshot:<br /><br /><img alt=\"\" src=\"https://aperture-proxy.p3k.io/4474127354a9495ab68e2b2a43e3b8674b8b5d37/68747470733a2f2f756e696379636c69632e636f6d2f6d616c2f7075626c69632f706c616e6574312e706e67\" /><br /><br />\nThat's from the top of this page: <a href=\"https://unicyclic.com/indieweb\">unicyclic.com/indieweb</a>, which is a feed combined from different sources, commonly referred to as a <em>planet</em>. Up until now I've been adding new feeds to that page as people join the <a href=\"https://indieweb.org\">IndieWeb community</a>, but I've now automated that process using <em>follow webmentions</em>.<br /><br />\nWhat is a follow webmention? Well you start by writing a post on your own website containing a link to someone you've started following in your reader, with an extra bit of microformats in the markup of the link: <strong>class=\"u-follow-of\"</strong>. Then you would send webmentions for the post, so that the recipient can check your content and discover that you have indeed started following them.<br /><br />\nThat is what the indieweb account on <a href=\"https://unicyclic.com\">unicyclic.com</a> is now looking for, but with one extra step. When it receives a follow webmention, it will follow you back by adding you to the planet it manages. It does this by looking at the author of the post, and then doing feed discovery based on that URL. If it all works out you will be notified in the response to your webmention.<br /><br />\nIf you don't want to be listed in the planet you can unfollow the indieweb account too, no hard feelings! This is done by removing your follow post and re-sending webmentions, which should result in a <strong>410 Gone</strong> status code from your site.<br /><br />\nSo that's how this planet now works, but what is really fun is connecting this to <em>reading lists</em>. I'm not sure what the right terminology is here... reading lists are also known as subscriptions lists, or dynamic OPML files. Whatever they are <a href=\"https://dobrado.net\">Dobrado</a> now supports them, so you can subscribe to <a href=\"https://unicyclic.com/indieweb\">unicyclic.com/indieweb</a> and stay up to date with the feeds of whoever happens to have joined.<br /><br />\nBoth OPML and microformats versions are available to subscribe to and are linked from that page for discovery. Since microformats is just HTML it is also <a href=\"https://unicyclic.com/indieweb/directory\">a nice web page to browse</a>, and adds to the growing list of directories in a year that is widely regarded as <em>the year of the indieweb directory</em>. If you parse the microformats on that page you will notice the reading list is an <strong>h-feed</strong> of <strong>h-cards</strong>. Whichever version you subscribe to, if your reader supports this type of subscription it should add feeds to your reader when they are added to the list, and remove the feed when they are taken off.<br /><br />\nWhen thinking about implementing this I realised I didn't always want to stop following people just because they were removed from a reading list, so I added an extra option to manually add feeds that you're automatically subscribed to. Dobrado now provides a dialog that looks like this when viewing a reading list:<br /><br /><img alt=\"\" src=\"https://aperture-proxy.p3k.io/13ea918fb94b5c1b1d53e9dd70619c8f367fe24d/68747470733a2f2f756e696379636c69632e636f6d2f6d616c2f7075626c69632f6368616e6e656c5f6c6973742e706e67\" /><br /><br />\nEvery feed allows setting a channel, the new bit here is the description at the bottom of the dialog that mentions manually adding the feeds below. Scrolling down allows you to go through the feeds you've been subscribed to and manually add them, which just means they won't be removed from your reader if they are removed from the reading list or if you unsubscribe from that list completely. If you're already following a feed that just happens to be on a reading list you subscribe to, this also means your original subscription will be kept.<br /><br />\nUp until now I've been reading feeds from some indieweb members in my own reader, and then also visiting the indieweb page to check out the rest, which of course meant reading things twice! Pretty happy that I can now just set a channel for it and also provide a version for others to check out or subscribe to themselves.<a href=\"https://brid.gy/publish/twitter\"></a><a href=\"https://twitter.com/malcolmblaney/status/1125620969261928449\" class=\"u-syndication\"></a>"
},
"author": {
"type": "card",
"name": "Malcolm Blaney",
"url": "https://unicyclic.com/mal",
"photo": "https://aperture-proxy.p3k.io/4f46272c0027449ced0d7cf8de31ea1bec37210e/68747470733a2f2f756e696379636c69632e636f6d2f6d616c2f7075626c69632f70726f66696c655f736d616c6c5f7468756d622e706e67"
},
"post-type": "article",
"_id": "3338713",
"_source": "243"
}