From 7a0d3dddfdfe15018662e55b77b7f9afbdb281f9 Mon Sep 17 00:00:00 2001 From: rra Date: Thu, 1 Feb 2018 15:16:37 +0100 Subject: [PATCH 1/5] past events are now automagically grayed-out --- pelicanconf.py | 4 +++- themes/cetcat/static/css/main.css | 5 ++++- themes/cetcat/templates/index.html | 11 +++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pelicanconf.py b/pelicanconf.py index f18e5366..8c010774 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -30,7 +30,7 @@ DEFAULT_PAGINATION = 25 # Uncomment following line if you want document-relative URLs when developing PLUGIN_PATHS = ['./plugins', './plugins-custom'] -PLUGINS = ['extract_toc', 'i18n_subsites', 'summary', 'events_ics'] +PLUGINS = ['dateish','extract_toc', 'i18n_subsites', 'summary', 'events_ics'] MD_EXTENSIONS = ['codehilite','extra','toc'] STATIC_PATHS = ['extra/favicon.ico', 'images', 'pdfs'] @@ -61,3 +61,5 @@ PLUGIN_EVENTS = { 'default_location' : '', 'calendar_per_category': True } + +DATEISH_PROPERTIES = ['event_start', 'event_end'] diff --git a/themes/cetcat/static/css/main.css b/themes/cetcat/static/css/main.css index cdbbaad0..ea446c77 100644 --- a/themes/cetcat/static/css/main.css +++ b/themes/cetcat/static/css/main.css @@ -171,6 +171,9 @@ pre{ width: 100%; margin:0 0 1em 0; } +.long-read .hentry{ + width:calc(400px + 2em); +} .hentry{ display: inline-block; width: 200px; @@ -273,7 +276,7 @@ pre{ } /* add a monochrome filter over past events */ -.past-event{ +.past-event img{ filter:opacity(0.1); /*filter: url("/images/filter.svg#monochrome"); -webkit-filter: url("/images/filter.svg#monochrome");*/ diff --git a/themes/cetcat/templates/index.html b/themes/cetcat/templates/index.html index 35632f99..99096bff 100644 --- a/themes/cetcat/templates/index.html +++ b/themes/cetcat/templates/index.html @@ -8,16 +8,23 @@ {% endif %}
{% for article in articles_page.object_list %} -
+ {% if article.category %} +
+ {% endif %} -
{{ article.summary }} +
{{ article.summary }} {% if DEFAULT_LANG == 'en' %} From ad47fef7a940f3ee55e6a9424f0b1133a025725e Mon Sep 17 00:00:00 2001 From: rra Date: Thu, 1 Feb 2018 15:17:38 +0100 Subject: [PATCH 2/5] test for long article --- content/long-article.md | 181 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 content/long-article.md diff --git a/content/long-article.md b/content/long-article.md new file mode 100644 index 00000000..66d54f36 --- /dev/null +++ b/content/long-article.md @@ -0,0 +1,181 @@ +Title: Social Media Critique +Category: long-read test +Slug: federation +lang: en + +> This is in the end what Silicon Valley tries to prevent at all cost: +> resistance and exodus. How can such a momentum be unleashed? + +So aside from the discussion of who listens (or didn't listen) to whose +opinion it can be interesting to have a closer look at action and momentum. + +Three projects caught my attention and I think could be an interesting +case for this 'next steps' discussion: + +Mastodon (2016) en Conversations (2014) and Peertube (2015) * + +All three are projects that during the past twelve months have somehow +reinvigorated (the work on, attention for) their underlying protocols. +Protocols that have been proclaimed dead or unsuccessful for many years. +And probably will be for more to come. + +The first one, Mastodon (https://joinmastodon.org/), you may have read +about or even tried out. It is essentially a twitter clone / +alternative. Technically it is based on Ostatus, which is a protocol to +distribute +status updates across networks. Ostatus is the protocol that powered +early 'alternative 2.0 style' social networks such as Friendica and +Lorea. The latter was a product of and important site of organization +for the Spanish Indignados and 15M movements. Mastodon also supports +ActivityPub which is the likely successor of Ostatus as a protocol for +further ongoing work on so-called federated publishing. The interesting +thing is that Mastodon managed to attract a good chunk of the recent Twitter +refugees. These where mostly voices which aren't white, loud or extreme +right wing and for those reasons felt themselves increasingly out of +place on twitter. Mastodon communities managed to involve so many of +these people by focusing on developing tools for community moderation, +content warnings and the ability to block other instances in the +network. As a result (the english language) Mastodon became a site that +is predominantly populated by the queer, PoC, left and artistic, or +anyone that would otherwise be at risk of being on the receiving end of +the Gamergate-style interactions on twitter. The decentralized nature of +mastodon has created a culture of 'thematic mastodon servers (see +https://instances.social/list) that have become a large part of what +makes the network interesting and relevant to its several hundred +thausand users. + + +Conversations (https://conversations.im/) is a messaging application +that is based on the very old XMPP protocol. This is a chat protocol +which has at one point also been the underlying technology of both +Google and Facebook chat before they closed it down and made it +proprietary. From the onset Conversations focused on a combination of +user friendliness, security and ultimately visual design to be on par +with mobile messengers such as whatsapp and telegram. The work of +Conversations has reinvigorated the XMPP protocol. Partly because it +focused on implementing the double-ratchett encryption algorithm almost +immediately after it was open-sourced. This is the modern userfriendly +end-to-end encryption algorithm developed by Moxie Marlinspike for +Signal and licensed to companies like Whatsapp. Another effect of the +work of Conversations is that the decades old protocol has been updated +in the span of a few years to work very well for mobile usage. For me +one of the interesting aspects of the development of Conversations is +the role that modern thinking on UIs, design and user friendliness +played in its popularity. This especially becomes apparent in the very +technical and awkward world of XMPP software. The developer has +mentioned multiple times that he 'bases' his design on that of his GAFA +'competitors'. Apropos tactical media, this project's appropriation of +corporate design, yet very clear and +solid political stance (see https://gultsch.de/objection.html) leading +to an increase in popularity and community involvement is an interesting +development. + + +Lastly, Peertube (https://github.com/Chocobozzz/PeerTube) is an attempt +at making the hosting of video content accessible to small +organizations. The sheer amount of infrastructure and thus capital +required to set up an alternative to the monopoly position of Youtube, +forces any project trying to replace Youtube to use peer-to-peer +technologies. Peertube does so by trying to implement WebTorrents. Like +the older 'BitTorrent' protocol it is based on, WebTorrent tries to +mitigate the sheer amount of data and bandwith involved with exchanging +online media, by making sure these are streamed from many sources at +once. Unlike torrents, which need separate applications, WebTorrents run +in familiar web browsers. One could say the conceptual forbearer of this +approach was a project called Popcorn Time (2014). An app that convinced +many with its good UI and design to do 'Netflix-like' streaming on top +of the torrent network. Again this is something that lead to a +reinvigoration of the decaying (use-wise) torrenting protocol. (I'd also +argue though, that Popcorn Time was simultaneously the nail in the +coffin for torrenting because of the individualistic streaming mentality +built into it. This also meant the definite end of what remained of +-collectivist?- seeding/sharing culture on public trackers.) + +The position of the Peertube as a viable alternative or successful +project is the most tenuous of the three. However, one might argue that +our definition of success in this context should also be readjusted - +away from the Silicon Valley, venture capitalist sense of success using +metrics like usage counts, market cap, patent value etc. By nature of +being built upon open, compatible and federative technologies, +developments happening in all three projects could, and probably will, +end up supporting one another. They do so to the extent that one project +could even become an integral part of the other. As an example both +Mastodon and Peertube use the same underlying ActivityPub, allowing one +to become the underlying video delivery function of the other. As was +the case with Friendica, Lorea and Mastodon, projects might stop but +then become stepping stones and inspirations for newer generations of +projects. In this sense definitions of success should consider the +quality of longer term technological ecosystems within larger +socio-political contexts. + +So the striking things for me to take away from these projects are: + +All three projects have managed to reinvigorate 'decaying' protocols in +large part through their focus on UX, language and interestingly design. +Which seems to me a huge opportunity for the arts which has been left +largely unused in the first round of social media critique. Perhaps the +model of artistic production in this domain should move away from the +artists being on the forefront, sensing out emerging tendencies and +taking the spotlight by creating mostly harmless critical and +speculative works +around these tendencies. Next steps for artistic social media critique +should instead take a much more humble and supportive role contributing +expertise, time and exposure to people working in and with these ecosystems. + +All three projects are based on federation. Which is the idea that +various actors making up a network decide to cooperate in a collective +fashion. Distributing responsibility and power as they do so. The future +of social media has to be federated or there won't be any (for those +privileged enough to retreat..). I think the case of Mastodon, where +servers in the Ostatus federation are experimenting with blocking +hostile content altogether from other servers in the federation (while +still maintaining technical compatibility) are interesting experiments. +For one, the debates over on-line harassment and fake news show that the +grand 'electronic agoras', where one can find anyone and everyone +clearly aren't conducive to productive interchange of ideas. Perhaps +smallish, self caring communities are a good answer to the profit driven +model of infinite interconnectedness. + +Lastly, I think it is no coincidence that two out of three of the +projects have Germans leading development and all three are European +based projects. I guess the following is anecdotal and partial evidence. +Yet, I've not seen Google and Facebook run full page advertorials in +leading daily newspapers except in the German ones. Ostensibly, part of +an attempt on their side to prevent mass user exodus out of discomfort +with the platform. It is in part German historical sensibility that +leads to this kind of sensitivity on the issues of privacy, but it is +also a sensitivity that is actively nurtured in public discourse. No +Silicon Valley apologies are required for there to be scepsis. At the +same time the European context apparently provides good enough living +conditions for people to risk investing time in this kind of work. Risk +which is also partly mitigated by initiatives such as German Prototype +Fund and other European funding streams. However, testament to the fact +that these projects have healthy communities and are part of wider +ecosystems of support is that all projects finance themselves from +diverse revenue streams, user contributions being the main one. + +So I'd say next steps for a social media critique would be to be more +involved in (and involve more) these communities. To use positions of +power to create opportunities for people working on these projects. +While the center of development of these projects is Western-Europe they +have many contributors outside of Europe as well, that could benefit +even more from such opportunities. At the same time, doing close +readings of the technical underpinnings of these media will also improve +understanding of what is (not) going on. Now obviously all this was a +news flash from within a very specific filter bubble, but actually from +there 2017 was a very promising year for alternative media. + +> I still believe in vital methods to mass delete Facebook accounts. +I'd say start doing so, but help your friends. Use your network effect +to transition together to different kind of media. This is slow and +laborious so mutual support is important. The time is always right, but +now more than ever. + +* these are the dates of the project's source code first appearing in +public, they are still actively updated and used. + +greetings, + +Roel + + From 41e01701ff03bdded118aab83e55463e541bc2b0 Mon Sep 17 00:00:00 2001 From: rra Date: Thu, 1 Feb 2018 15:28:22 +0100 Subject: [PATCH 3/5] resetting submodules --- .gitmodules | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index 68e6206b..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +0,0 @@ -[submodule "plugins"] - path = plugins - url = https://github.com/getpelican/pelican-plugins.git -[submodule "plugins-custom"] - path = plugins-custom - url = https://git.vvvvvvaria.org/varia/plugins-custom.git From 254961717d66241892a30f4b54b1bd38e663a802 Mon Sep 17 00:00:00 2001 From: rra Date: Thu, 1 Feb 2018 15:32:05 +0100 Subject: [PATCH 4/5] readding submodules? --- .gitmodules | 6 ++++++ README.md | 4 ++-- pelican-plugins | 1 + pelicanconf.py | 2 +- plugins-custom | 1 + 5 files changed, 11 insertions(+), 3 deletions(-) create mode 160000 pelican-plugins create mode 160000 plugins-custom diff --git a/.gitmodules b/.gitmodules index e69de29b..75913d64 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "plugins-custom"] + path = plugins-custom + url = https://git.vvvvvvaria.org/varia/plugins-custom +[submodule "pelican-plugins"] + path = pelican-plugins + url = https://github.com/getpelican/pelican-plugins diff --git a/README.md b/README.md index 7f7e4544..682ec020 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,8 @@ The folder 'plugins' is linked to the Pelican project '[pelican-plugins](https:/ We are currently using two submodules: -* plugins ([https://github.com/getpelican/pelican-plugins](https://github.com/getpelican/pelican-plugins)) -* plugins-custom ([https://git.vvvvvvaria.org/rra/plugins-custom](https://git.vvvvvvaria.org/rra/plugins-custom)) +* pelican-plugins ([https://github.com/getpelican/pelican-plugins](https://github.com/getpelican/pelican-plugins)) +* plugins-custom ([https://git.vvvvvvaria.org/varia/plugins-custom](https://git.vvvvvvaria.org/varia/plugins-custom)) To update these submodules within your (already) cloned repository, first init the submodule, and then update it: diff --git a/pelican-plugins b/pelican-plugins new file mode 160000 index 00000000..8de8e847 --- /dev/null +++ b/pelican-plugins @@ -0,0 +1 @@ +Subproject commit 8de8e847ce78e53b62dfdcd7e0e1923614adead5 diff --git a/pelicanconf.py b/pelicanconf.py index 8c010774..5a745b6c 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -29,7 +29,7 @@ AUTHOR_FEED_RSS = None DEFAULT_PAGINATION = 25 # Uncomment following line if you want document-relative URLs when developing -PLUGIN_PATHS = ['./plugins', './plugins-custom'] +PLUGIN_PATHS = ['./pelican-plugins', './plugins-custom'] PLUGINS = ['dateish','extract_toc', 'i18n_subsites', 'summary', 'events_ics'] MD_EXTENSIONS = ['codehilite','extra','toc'] diff --git a/plugins-custom b/plugins-custom new file mode 160000 index 00000000..466d35a8 --- /dev/null +++ b/plugins-custom @@ -0,0 +1 @@ +Subproject commit 466d35a876bceae4b8a3429b0121703ba8366067 From b27ee2bb52ac31d08cf7209a3f7d9901901e8d63 Mon Sep 17 00:00:00 2001 From: rra Date: Thu, 1 Feb 2018 15:36:08 +0100 Subject: [PATCH 5/5] change plugin name --- pelicanconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pelicanconf.py b/pelicanconf.py index 5a745b6c..894c62d3 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -30,7 +30,7 @@ DEFAULT_PAGINATION = 25 # Uncomment following line if you want document-relative URLs when developing PLUGIN_PATHS = ['./pelican-plugins', './plugins-custom'] -PLUGINS = ['dateish','extract_toc', 'i18n_subsites', 'summary', 'events_ics'] +PLUGINS = ['dateish','extract_toc', 'i18n_subsites', 'summary', 'events-ics'] MD_EXTENSIONS = ['codehilite','extra','toc'] STATIC_PATHS = ['extra/favicon.ico', 'images', 'pdfs']