Browse Source

merge

master
mb @ ts 7 years ago
parent
commit
3fe0decb3a
  1. 8
      Makefile
  2. 8
      content/federations.md
  3. BIN
      content/images/fi.jpg
  4. BIN
      content/images/fi_im.jpg
  5. 8
      content/meet_the_dev_1.md
  6. 18
      content/pages/agenda.md
  7. 6
      content/pages/colophon.md
  8. 10
      pelicanconf.py
  9. 2
      publishconf.py
  10. 27
      theme/wttf/static/main.css
  11. 8
      theme/wttf/templates/article.html
  12. 18
      theme/wttf/templates/base.html
  13. 2
      theme/wttf/templates/index.html
  14. 59
      theme/wttf/templates/syndication.html

8
Makefile

@ -12,10 +12,10 @@ FTP_HOST=localhost
FTP_USER=anonymous FTP_USER=anonymous
FTP_TARGET_DIR=/ FTP_TARGET_DIR=/
SSH_HOST=localhost SSH_HOST=varia.zone
SSH_PORT=22 SSH_PORT=12345
SSH_USER=root SSH_USER=r
SSH_TARGET_DIR=/var/www SSH_TARGET_DIR=/var/www/wttf/
S3_BUCKET=my_s3_bucket S3_BUCKET=my_s3_bucket

8
content/federations.md

@ -3,7 +3,7 @@ Category: an introduction
slug: welcome-to-the-federation slug: welcome-to-the-federation
tags: Wtt�F, software, design tags: Wtt�F, software, design
Over the past few years[^1] there has been a renewed interest in 'alternative' on-line services such as social media and chat. These are services that promise to provide different experiences and models to the ones we are used to seemingly for free from corporations like Google, Facebook and Apple. Over the past few years there has been a renewed interest in 'alternative' on-line services such as social media and chat[^1]. These are services that promise to provide different experiences and models to the ones we are used to seemingly for free from corporations like Google, Facebook and Apple.
Some of these alternatives are that in name only. These alternatives promise to be something else from the start, but often end up being more of the same since they use similar or identical business models as the platform they pretend to be an alternative to. In essence a different brand serving the same product. Some of these alternatives are that in name only. These alternatives promise to be something else from the start, but often end up being more of the same since they use similar or identical business models as the platform they pretend to be an alternative to. In essence a different brand serving the same product.
@ -21,14 +21,14 @@ The Wtt�F question is to explore how arts and design communities can play a su
Wtt�F will host a series of two-day gatherings that invite developers of these software projects and people active in arts and design. After an evening of presentation and discussion on the first day, the second day will be dedicated to a hands-on worksession. Wtt�F will host a series of two-day gatherings that invite developers of these software projects and people active in arts and design. After an evening of presentation and discussion on the first day, the second day will be dedicated to a hands-on worksession.
For these worksessions the invited developers will introduce outline a few issues in the context of language, design and ux that participantes are invited to address. Concrete *contributions* are explored as a way to introduce these critical software practices in a tangible way. For these worksessions the invited developers will introduce and outline a few issues in the context of language, design and ux that participantes are invited to address. Concrete *contributions* are explored as a way to introduce these critical software practices in a tangible way.
## Coming gatherings ## Coming gatherings
### June 1st 2018: ['The Ecosystem Is Moving'](/conversations-gultsch.html) ### June 1st 2018: ['The Ecosystem Is Moving'](conversations-gultsch.html)
an evening on XMPP, federated chat and Conversations with Daniel Gultsch. an evening on XMPP, federated chat and Conversations with Daniel Gultsch.
### June 2nd 2018: 'The Ecosystem Is Moving' worksession. ### June 2nd 2018: ['The Ecosystem Is Moving'](conversations-gultsch.html) - worksession.
A hands-on dive into the affordances and challenges of Conversations as part of a larger free software ecosystem. A hands-on dive into the affordances and challenges of Conversations as part of a larger free software ecosystem.

BIN
content/images/fi.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
content/images/fi_im.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

8
content/meet_the_dev_1.md

@ -1,15 +1,15 @@
Title: 'The Ecosystem is Moving' a gathering with Daniel Gultsch Title: 'The Ecosystem is Moving' a gathering with Daniel Gultsch
Category: a meeting with a developer Category: a meeting with a developer
slug: conversations-gultsch slug: conversations-gultsch
tags: instant messaging, conversations, xmpp tags: instant messaging, conversations, xmpp
featured_image: images/fi_im.jpg
On the 1st and 2nd of June [*varia*](https://varia.zone) will host 'The Ecosystem Is Moving', a lecture by and worksession with Daniel Gultsch about federated instant messaging, open source software and the sustainability of open systems.
On the 1st and 2nd of june [*varia*](https://varia.zone) will host 'The Ecosystem Is Moving', a lecture by and worksesion with Daniel Gultsch about federated instant messaging, open source software and the sustainability of open systems.
* June 1st, 19.00 - 22.00 - introduction to XMPP and lecture by Daniel Gultsch * June 1st, 19.00 - 22.00 - introduction to XMPP and lecture by Daniel Gultsch
* June 2nd, 10.00 - 18.00 - hands on worksession on design and federated chat systems. Please register for the worksession via `info * varia.zone` * June 2nd, 10.00 - 18.00 - hands on worksession on design and federated chat systems. Please register for the worksession via `info * varia.zone`
Daniel Gultsch is the developer behind [Conversations](https://conversations.im), an open source instant messaging application for Android. In 2014 he decided to work full time on Conversations and try to <!-- PELICAN_END_SUMMARY --> make a living from it. Rather than starting from scratch with Conversations, he built it as a client for the existing federated messaging protocol XMPP. Daniel Gultsch is the developer behind [Conversations](https://conversations.im), an open source instant messaging application for Android. In 2014, he decided to work full time on Conversations and try to <!-- PELICAN_END_SUMMARY --> make a living from it. Rather than starting from scratch with Conversations, he built it as a client for the existing federated messaging protocol XMPP.
Since an XMPP messenger can, in a way, only be as good as the entire ecosystem, Daniels work on Conversations also meant work on expanding and improving that larger XMPP ecosystem. This work includes helping to draft and implement protocol standards, such as OMEMO, a modern and user-friendly end-to-end encryption based on Signal's protocol. He also contributed code to other XMPP servers and clients in the ecosystem to bring them up to speed with modern uses. Additionally, [through his critical essays](https://gultsch.de/xmpp_2016.html) he is a vocal defender of XMPP and open standards in general. Since an XMPP messenger can, in a way, only be as good as the entire ecosystem, Daniels work on Conversations also meant work on expanding and improving that larger XMPP ecosystem. This work includes helping to draft and implement protocol standards, such as OMEMO, a modern and user-friendly end-to-end encryption based on Signal's protocol. He also contributed code to other XMPP servers and clients in the ecosystem to bring them up to speed with modern uses. Additionally, [through his critical essays](https://gultsch.de/xmpp_2016.html) he is a vocal defender of XMPP and open standards in general.

18
content/pages/agenda.md

@ -1,26 +1,20 @@
Title: agenda Title: agenda
slug: agenda slug: agenda
*Coming gatherings* ##Upcoming events
------------ ### Friday, June 1st 2018
⟿ Friday, June 1st 2018 **['The Ecosystem Is Moving'](conversations-gultsch.html)**
**['The Ecosystem Is Moving'](/conversations-gultsch.html)**
An evening on XMPP, federated chat and Conversations with Daniel Gultsch. An evening on XMPP, federated chat and Conversations with Daniel Gultsch.
Start: 20:00h Start: 19:00h
------------
Saturday, June 2nd 2018 ### Saturday, June 2nd 2018
**'The Ecosystem Is Moving' - worksession** **['The Ecosystem Is Moving'](conversations-gultsch.html) - worksession**
A hands-on dive into the affordances and challenges of Conversations as part of a larger free software ecosystem. A hands-on dive into the affordances and challenges of Conversations as part of a larger free software ecosystem.
Start: 10:00h, end: 18:00h Start: 10:00h, end: 18:00h
------------

6
content/pages/colophon.md

@ -1,7 +1,9 @@
Title: colophon Title: colophon
slug: colophon slug: colophon
*Welcome to the � Federation* is a project by [Roel Roscam Abbing](http://roelof.info/), in collaboration with [Manetta Berends](http://manettaberends.nl). [*Welcome to the � Federation*](/welcome-to-the-federation.html) is a project by [Roel Roscam Abbing](http://roelof.info/), in collaboration with [Manetta Berends](http://manettaberends.nl).
This project is made possible with the support of [Varia](https://varia.zone), [CBK Rotterdam](https://www.cbkrotterdam.nl/).
This project is made possible with the support of [Varia](https://varia.zone) and [CBK Rotterdam](https://www.cbkrotterdam.nl/).

10
pelicanconf.py

@ -4,8 +4,10 @@ from __future__ import unicode_literals
AUTHOR = 'rra' AUTHOR = 'rra'
SITENAME = 'Wtt�F' SITENAME = 'Wtt�F'
SITEURL = '' SITEURL = 'https://varia.zone/wttf/'
SUBTITLE=" a project about federated social media and open source design" SUBTITLE="how arts and design can contribute to open source and federated social media"
FEATURED_IMAGE = SITEURL + 'images/fi.jpg'
PATH = 'content' PATH = 'content'
THEME = 'theme/wttf' THEME = 'theme/wttf'
@ -34,7 +36,7 @@ AUTHOR_FEED_RSS = None
PLUGIN_PATHS = ["plugins"] PLUGIN_PATHS = ["plugins"]
PLUGINS = ['summary'] PLUGINS = ['summary']
DEFAULT_PAGINATION = 500 DEFAULT_PAGINATION = 50
# Uncomment following line if you want document-relative URLs when developing # Uncomment following line if you want document-relative URLs when developing
RELATIVE_URLS = True #RELATIVE_URLS = True

2
publishconf.py

@ -10,7 +10,7 @@ import sys
sys.path.append(os.curdir) sys.path.append(os.curdir)
from pelicanconf import * from pelicanconf import *
SITEURL = '' SITEURL = 'https://varia.zone/wttf/'
RELATIVE_URLS = False RELATIVE_URLS = False
FEED_ALL_ATOM = 'feeds/all.atom.xml' FEED_ALL_ATOM = 'feeds/all.atom.xml'

27
theme/wttf/static/main.css

@ -39,8 +39,8 @@ body{
margin:0px; margin:0px;
font-size: 14px; font-size: 14px;
font-family: "serif"; font-family: "serif";
/*background-color: #ccd1cab3;*/ background-color: #ccd1cab3;
background: linear-gradient(to bottom right, #c2c2c2, #fff7f7, #e4e3e3); /*background: linear-gradient(to bottom right, #c2c2c2, #fff7f7, #e4e3e3);*/
word-break: normal; word-break: normal;
} }
h1{ h1{
@ -108,12 +108,15 @@ header{
line-height: 1.35; line-height: 1.35;
color:white; color:white;
background-color: #fb4817; background-color: #fb4817;
background: linear-gradient(to bottom, #7e2502, #ff4800, #e2dede); background: linear-gradient(to bottom, salmon, #ff7f4d, #ccd1cab3);
} }
#menu.main{ #menu.main{
position: relative; position: relative;
z-index: 10; z-index: 10;
} }
#menu a{
text-decoration: none;
}
#menu.main .indent{ #menu.main .indent{
padding-left:60px; padding-left:60px;
} }
@ -168,19 +171,25 @@ header{
#content{ #content{
margin-bottom:5em; margin-bottom:5em;
} }
#agenda{ #agenda{
width: calc(50% - 6em); width: calc(50% - 6.5em);
float: left; float: left;
padding: 2em; padding: 1em 1.5em 2em 4em;
margin:0 0 2em 0; margin:0 0 2em 0;
background-color: #6ade4e; background-color: #6ade4e;
color:#3c0e02; color:#3c0e02;
border-radius: 15px; border-radius: 15px;
} }
#agenda hr{ #agenda h2{
margin:2em 0; margin-bottom:-1em;
border-color:#3c0e02; }
#agenda h3{
margin:2em 0 0.5em 0;
}
#agenda h3:before{
content:'⟿';
margin-left:-1.8em;
padding-right: 0.5em;
} }
#agenda strong{ #agenda strong{
font-family: "headers"; font-family: "headers";

8
theme/wttf/templates/article.html

@ -8,14 +8,14 @@
{% block header %} {% block header %}
<h1 id="menu" class="sticky"> <h1 id="menu" class="sticky">
<a href="/{{SITEURL}}">Welcome to <a href="{{ SITEURL }}/">Welcome to
the the <span id="character"></span></a>
<select onchange="window.location.href=this.value"> <select onchange="window.location.href=this.value">
{%- for t, article in tags|sort %} {%- for t, article in tags|sort %}
<option value="{{SITEURL}}/{{ t.url }}" {% if t == tag %}selected{% endif %}>{{ t }}</option> <option value="{{SITEURL}}/{{ t.url }}" {% if t == tag %}selected{% endif %}>{{ t }}</option>
{% endfor %} {% endfor %}
</select> </select>
Federation</a> <a href="{{ SITEURL }}/">Federation</a>
</h1> </h1>
{% endblock %} {% endblock %}
@ -32,7 +32,7 @@
<span class="entry-tags"> <span class="entry-tags">
{% for tag in article.tags %} {% for tag in article.tags %}
<span itemprop="keywords"> <span itemprop="keywords">
<a href="/{{ tag.url }}" rel="tag">{{ tag }}</a> <a href="{{ SITEURL }}/{{ tag.url }}" rel="tag">{{ tag }}</a>
</span> </span>
{% endfor %} {% endfor %}
</span> </span>

18
theme/wttf/templates/base.html

@ -6,7 +6,9 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="{{SITEURL}}/{{ THEME_STATIC_DIR }}{{ CSS_FILE }}" /> <link rel="stylesheet" type="text/css" href="{{SITEURL}}/{{ THEME_STATIC_DIR }}{{ CSS_FILE }}" />
<link rel="icon" href="{{ SITEURL}}/{{ THEME_STATIC_DIR }}img/favicon.png" type="image/x-icon"> {% from 'syndication.html' import syndication with context %}
{{ syndication(article) }}
<link rel="icon" href="{{ SITEURL }}/favicon.ico" type="image/x-icon">
{% if FEED_ALL_ATOM %} {% if FEED_ALL_ATOM %}
<link href="{{ FEED_DOMAIN }}/{% if FEED_ALL_ATOM_URL %}{{ FEED_ALL_ATOM_URL }}{% else %}{{ FEED_ALL_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" /> <link href="{{ FEED_DOMAIN }}/{% if FEED_ALL_ATOM_URL %}{{ FEED_ALL_ATOM_URL }}{% else %}{{ FEED_ALL_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
{% endif %} {% endif %}
@ -40,29 +42,29 @@
{% block header %} {% block header %}
<h1 id="menu" class="main"> <h1 id="menu" class="main">
<div id="title"> <div id="title">
Welcome <a href="{{ SITEURL }}/">Welcome
<div class="indent">to the <div class="indent">to the</a>
<select onchange="window.location.href=this.value"> <select onchange="window.location.href=this.value">
{%- for t, article in tags|sort %} {%- for t, article in tags|sort %}
<option value="{{ SITEURL }}/{{ t.url }}" {% if t == tag %}selected{% endif %}>{{ t }}</option> <option value="{{ SITEURL }}/{{ t.url }}" {% if t == tag %}selected{% endif %}>{{ t }}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
<div class="indent">Federation</div> <div class="indent"><a href="{{ SITEURL }}/">Federation</a></div>
</div> </div>
<div id="subtitle"> <div id="subtitle">
{{ SUBTITLE }} {{ SUBTITLE }}
</div> </div>
</h1> </h1>
<h1 id="menu" class="sticky"> <h1 id="menu" class="sticky">
<a href="{{SITEURL}}">Welcome to <a href="{{ SITEURL }}/">Welcome to
the <span id="character"></span> the <span id="character"></span></a>
<select onchange="window.location.href=this.value"> <select onchange="window.location.href=this.value">
{%- for t, article in tags|sort %} {%- for t, article in tags|sort %}
<option value="{{ SITEURL }}/{{ t.url }}" {% if t == tag %}selected{% endif %}>{{ t }}</option> <option value="{{ SITEURL }}/{{ t.url }}" {% if t == tag %}selected{% endif %}>{{ t }}</option>
{% endfor %} {% endfor %}
</select> </select>
Federation</a> <a href="{{ SITEURL }}/">Federation</a>
</h1> </h1>
{% endblock %} {% endblock %}
</header> </header>
@ -84,7 +86,7 @@
var t = getRandom(-5,95); var t = getRandom(-5,95);
var l = getRandom(-5,98); var l = getRandom(-5,98);
var s = getRandom(1,6); var s = getRandom(1,6);
$('header #menu.main').append('<img class="shape" src="/theme/img/shape'+s.toString()+'.svg" style="top:'+t.toString()+'%; left:'+l.toString()+'%;"/>'); $('header #menu.main').append('<img class="shape" src="{{ SITEURL }}/theme/img/shape'+s.toString()+'.svg" style="top:'+t.toString()+'%; left:'+l.toString()+'%;"/>');
} }
</script> </script>
</html> </html>

2
theme/wttf/templates/index.html

@ -73,7 +73,7 @@
<span class="entry-tags"> <span class="entry-tags">
{% for tag in article.tags %} {% for tag in article.tags %}
<span itemprop="keywords"> <span itemprop="keywords">
<a href="/{{ tag.url }}" rel="tag">{{ tag }}</a> <a href="{{ SITEURL }}/{{ tag.url }}" rel="tag">{{ tag }}</a>
</span> </span>
{% endfor %} {% endfor %}
</span> </span>

59
theme/wttf/templates/syndication.html

@ -0,0 +1,59 @@
{#This template is for syndicating across the fucked up part of the web. It implements Open Graph and Twitter Card metadata to display links to HBSC well on social media
# This code is mostly taken from Talha Mansoor's Elegant pelican theme https://github.com/talha131/pelican-elegant
#}
{# Thumbnail image to show when homepage is shared on social media. It also
serves as the default image for posts whose featured_image is not set. #}
{% if not FEATURED_IMAGE %}
{% set FEATURED_IMAGE = 'https://roelof.info/~r/wttf/images/fi.jpg' %}
{% else %}
{% set FEATURED_IMAGE = FEATURED_IMAGE %}
{% endif %}
{% macro syndication(article) %}
{% if article %}
<meta property="og:title" content="{{ article.title|striptags|e }} {%if article.subtitle %} - {{ article.subtitle|striptags|e }} {% endif %}"/>
<meta property="og:url" content="{{ SITEURL }}/{{ article.url }}" />
<meta property="og:description" content="{% if article.summary %}{{article.summary|striptags}}{% endif %}" />
<meta property="og:site_name" content="{{ SITENAME|striptags|e }}" />
<meta property="og:article:author" content="{{ article.author }}" />
{% if article.date %}
<meta property="og:article:published_time" content="{{ article.date.isoformat() }}" />
{% endif %}
{% if article.locale_modified and article.modified %}
<meta property="" content="{{ article.modified.isoformat() }}" />
{% endif %}
<meta name="twitter:title" content="{{ article.title|striptags|e }} {%if article.subtitle %} - {{ article.subtitle|striptags|e }} {% endif %}">
<meta name="twitter:description" content="{% if article.summary %}{{article.summary|striptags}}{% endif %}">
{% if article.featured_image %}
<meta name="twitter:card" content="summary_large_image">
<meta property="og:image" content="{{SITEURL}}/{{article.featured_image}}" />
<meta property="og:image:secure_url" content="{{SITEURL}}/{{article.featured_image}}" />
<meta name="twitter:image" content="{{SITEURL}}/{{article.featured_image}}" >
{% else %}
{% if FEATURED_IMAGE %}
<meta property="og:image" content="{{FEATURED_IMAGE}}" />
<meta name="twitter:image" content="{{FEATURED_IMAGE}}" >
<meta name="twitter:card" content="summary" />
{% endif %}
{% endif %}
{% endif %}
{% if not article %}
<meta property="og:title" content="{{ SITENAME|striptags|e }}"/>
<meta name="twitter:title" content="{{ SITENAME|striptags|e }}">
<meta name="twitter:card" content="summary" />
<meta property="og:url" content="{{ SITEURL }}" />
<meta property="og:description" content="{{ SUBTITLE }}">
<meta property="twitter:description" content=" {{ SUBTITLE }}">
<meta property="og:site_name" content="{{ SITENAME|striptags|e }}" />
<meta property="og:article:author" content="{{ AUTHOR }}" />
{% if FEATURED_IMAGE %}
<meta property="og:image" content="{{FEATURED_IMAGE}}" />
<meta name="twitter:image" content="{{FEATURED_IMAGE}}" >
{% endif %}
{% endif %}
{% endmacro %}b
Loading…
Cancel
Save