Browse Source

Add blog

master
Jakub Valenta 2 years ago
parent
commit
3421e19544
  1. 3
      content/blog/2020-07-27-gift-economy/gift-economy-bandcamp-screenshot--600x.png
  2. 3
      content/blog/2020-07-27-gift-economy/gift-economy-bandcamp-screenshot.png
  3. 70
      content/blog/2020-07-27-gift-economy/index.md
  4. 48
      content/blog/2020-09-25-covid-test/index.md
  5. 71
      content/blog/2020-11-23-election-game/index.md
  6. 5
      content/blog/_index.md
  7. 1
      images.csv
  8. 22
      sass/assets/main.scss
  9. 41
      templates/base.html
  10. 42
      templates/blog.html
  11. 45
      templates/index.html
  12. 2
      templates/page.html
  13. 37
      templates/post.html
  14. 23
      templates/section.html

3
content/blog/2020-07-27-gift-economy/gift-economy-bandcamp-screenshot--600x.png

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e508034c0d55dd81d810e4378e704d40ceea3f408d7f4f16701ecbe966aeed58
size 216884

3
content/blog/2020-07-27-gift-economy/gift-economy-bandcamp-screenshot.png

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9bcb60acc9ee0d4f2fe526d0c529e632b87fe4395a7967e7a4c4d4d6aca01156
size 736128

70
content/blog/2020-07-27-gift-economy/index.md

@ -0,0 +1,70 @@
+++
title = "Gift economy"
template = "post.html"
+++
_thinking about products financed via donations, quoting Fully Automated Luxury
Communism_
<!-- more -->
Is the future of capitalism getting stuff for free and only paying in donations?
You know, paying just because you feel morally obliged to, not because you get
any extra value. It certainly seems like that with music, news or software. Pic
related
{{ image(link='blog/gift-economy/gift-economy-bandcamp-screenshot.png', path='blog/gift-economy/gift-economy-bandcamp-screenshot--600x.png', width=600, alt='Bandcamp screenshot') }}
1. Let me make my previous question more precise and also sketch an idea I came
up with after spending too much money on Bandcamp and listening to some
British guys talk on the internet.
2. It seems that gift economy might work for music, journalism and free
software. But could it also work for other non-rival goods?
3. Aaron Bastani, the author of Fully Automated Luxury Communism, says[^1] that
more products will soon become non-rival (consuming such a product doesn't
take it away from someone else, because there is an abundance of it, like
breathing air, since there is enough air for everyone).
4. The abundance will be a result of a massive reduction of marginal costs
(costs to create more copies of the products). Examples are lab-grown meat or
curing diseases using gene editing. Keyword: post-scarsity society.
5. Bastani says that we don't want a few people to own patents for these
technologies and sell the products for high prices (collect rent), but we
want everyone to enjoy the free luxury. To achieve that, we could nationalize
the research and fund it from national investment banks.
6. Music, news & free software are products that already have zero marginal cost
and people are enjoying for free (despite patent=copyright enforcement
efforts in case of music). The difference from Luxury Comm is that it's not
nationalization but the gift economy who saves the day.
7. So what if we don't nationalize synthetic biology and gene editing research
but rather finance it from donations. Manufacturers could then compete by
presenting the most moral and altruistic business (much like brands already
compete in their support of social justice).
8. Next episode: How moralizing also saves the planet.
---
To further clarify: What I have in mind is the particular music, news and
software that is free and ad-free and is financed by voluntary gifts. That's of
course minority of music, news and software, but it seem to be on the rise and
seems to be (close to) working for everyone (the creators, the platform, the
consumers). Examples are Bandcamp (compare to Spotify that indeed has the
VC-funded, exploitative, predatory pricing business model), The Guardian,
Wikipedia, Patreon-sponsored independent writers/podcasters, and all open-source
software.
If such a financing is viable in the long term is of course a question, but I
have some hope in it, because I think consumers are increasingly willing to
spend a considerable part of a price (maybe even 100%) for moral value. For
instance when taking a 150€ train instead of a 20€ flight or switching to an
environmentally friendly electricity provider.
---
[^1] <https://www.youtube.com/watch?v=PugN3t2QvWs>

48
content/blog/2020-09-25-covid-test/index.md

@ -0,0 +1,48 @@
+++
title = "Covid test"
template = "post.html"
+++
_a report on how I got tested for covid in Berlin_
<!-- more -->
Let me write a report on how a covid test is done in Berlin. Maybe it can be
useful if you're awaiting a test. Or as a historic record. Anyway, there is no
moral to the story.
It happened more than a week ago, but I didn't have time to repnort, because I've
been enjoying life.
1. I found out I had met a friend who had covid, so I called the Berlin-Neukölln
corona hotline and was ordered into a quarantine. I asked for a test but if I
hand't, I wouldn't get one.
2. A person from a test centre called me back the next work day and made an
appointment with me for a precise time (like 8:35). I was only allowed to use
a car or a bike to get there, no public transport. So bike it was.
3. The centre had been established in the grounds of a district office, in an
outdoors space that had probably been used as a parking lot before. There was
a single person queuing by the gate. Obligatory distancing marks were painted
on the sidewalk.
4. I was assigned an id number and went to the testing facility itself, which
was built in a standard metal shipping container. It had two doors, one for
the doctor and another one for the patient. Inside, the container was divided
in two halves by an acrylic glass.
5. The doctor handed me the test (stick with cotton wool in a tube) through a
slot in the glass. Then she instructed me (with the help of a chart with nice
illustrations) how I must wipe my throat and nose with the stick. When I was
done, I returned the test through the slot.
6. The doctor told me I was brave. I told her she was very nice. She told me I
was very nice too. I wanted to add that if we can't stay nice to each other,
then it makes no sense to save humanity, but I didn't find the right words in
German.
7. To check the results, I went to the web of the test centre (which is just one
page under the official site of the city). There, a PDF is published once a
day with the results from the previous day, very low-tech, it's just id
numbers and positive/negative. Mine was negative.

71
content/blog/2020-11-23-election-game/index.md

@ -0,0 +1,71 @@
+++
title = "Last man standing"
template = "post.html"
+++
_a report on how I managed to not find out who won the US elections for 12 days_
<!-- more -->
I lost on Sunday, Nov 15 at 19:30. In a game with a lot of participants but no
real rivals; just against the environment. The rules were simple: I had to be
the last person on Earth to find out who won the US elections. It took me a
while to write this report but here you go...
I forgot the name of the game or where I first heard of it, but I believe it's
traditionally played with the Superbowl results in a group of friends. Any
spectacular, unavoidable event will do though. (Why there are few such events in
Czech or German culture is another topic.)
Last time I played was in 2016. Back then I survived only until noon after the
election night but enjoyed the weirdest startup stand-up meeting ever. That's
the main thrill of the game -- it messes up your mind so nice. Or shifts the
perspective, if you will.
This year the conditions were ideal: working from home, not much to do outside.
So to make it more interesting, I set to go on with my social life as I would
normally do. I was meeting people and didn't try to avoid any conversation
themes. But there was plenty of dos and donts:
First, avoid all news sites and social media, obviously. Second, hide email
subjects from your email program -- a newsletter that spills the secret could
arrive any minute. Not messaging with people seemed like too much isolation, so
I just continued chatting as usual.
Walking outside turned out to be fine too (no news-stands thesedays), same with
most of online activity: magazines, blogs, searching, music... Just watch out
for "trending topics" sections. In general, I'm grateful to everyone who's not
trying to shove politics down your throat 24/7.
The first two days were the hardest: I felt as if excluded from a fun
party. Also I lost a source of distraction -- I realized I had been checking the
news each time I needed a short break from work. But I soon found many
replacement activities:
Longform articles, exhibition leaflets, notes from 2018, German vocabulary from
2017... I was occupied with some quality stuff but also just procrastinated. You
see, the point was not to become a more focused and efficient person. This said,
I did learn a few things:
For instance letting people tell you international news in person is great. At
some point a friend explained me everything about the latest development in the
covid vaccine research that had apparently been happening. In his own words.
Super enjoyable.
But the most important moment came when the game was over and I started going
through all that I missed. Excellent fresh look on what is relevant.
Surprisingly, there was only about 20 articles I ended up reading. Nothing about
the election itself. Plus a pile of memes.
Funny thing is how the emotional aspect of the news got lost. It's barely
possible to see 2 weeks old social media content. And if you do find it, you
just don't feel it: I guess the waiting for the results was suspenseful? Being
slow really breaks the news cycle engagement game.
Two more findings: Content curation is great -- a weekly newsletter compiled by
a human is an ideal news format. And then categorization -- the web needs more
of it. I wish it was easier to filter only content (news, social media) about
let's say art and new music.
Anyway... that was the game. I lost quite unspectacularly: A friend mentioned
that she had this wish for Trump to lose and that it came true. I was like: Hm.

5
content/blog/_index.md

@ -0,0 +1,5 @@
+++
title = "Blog"
sorted_by = "date"
template = "blog.html"
+++

1
images.csv

@ -54,3 +54,4 @@ content/projects/2020-04-02-website-colors/jakub-valenta-website-colors-google.p
content/projects/2020-04-02-website-colors/jakub-valenta-website-colors-wikipedia.png,400,
content/projects/2020-04-24-covid-chance/jakub-valenta-covid-chance.png,1080,1080
content/projects/2020-04-24-covid-chance/jakub-valenta-covid-chance.png,500,
content/blog/2020-07-27-gift-economy/gift-economy-bandcamp-screenshot.png,600,

1 content/projects/2014-06-06-saloun/jakub-valenta-saloun-cz.png 1080 1080
54 content/projects/2020-04-02-website-colors/jakub-valenta-website-colors-wikipedia.png 400
55 content/projects/2020-04-24-covid-chance/jakub-valenta-covid-chance.png 1080 1080
56 content/projects/2020-04-24-covid-chance/jakub-valenta-covid-chance.png 500
57 content/blog/2020-07-27-gift-economy/gift-economy-bandcamp-screenshot.png 600

22
sass/assets/main.scss

@ -70,6 +70,13 @@ img {
}
figure {
margin: 0;
a {
display: inline-block;
}
}
sup a {
text-decoration: none;
}
@media screen and (max-width: 1023px) {
@ -203,7 +210,8 @@ header {
h4,
h5,
h6,
blockquote {
blockquote,
hr {
max-width: 30em;
margin-left: auto;
margin-right: auto;
@ -217,6 +225,18 @@ header {
h6 {
font-weight: bold;
}
hr {
display: block;
}
article + article {
margin-top: 2em;
}
ol {
padding-left: 0;
}
.e-content div {
background: #e2e2e2; // hsluv(0, 0%, 90%)
}
}
footer {

41
templates/base.html

@ -52,45 +52,6 @@
</p>
</nav>
</div>
<footer>
<div class="container">
<h2>Contact</h2>
<div itemscope itemtype="https://schema.org/Person">
<meta itemprop="name" content="{{ config.extra.author }}" />
<p>
{{ email::email(address='wnxho@wnxhoinyragn.pm') }}<br />
PGP: {{ config.extra.pgp | replace(from='_', to='&nbsp;') | safe }}
</p>
<ul>
{% for link in config.extra.links -%}
<li>
<a
href="{{ link.url | safe }}"
target="_blank"
rel="noreferrer noopener"
itemprop="url"
>{{ link.name }}</a>
</li>
{% endfor -%}
</ul>
</div>
<div itemscope itemtype="https://schema.org/WebPage">
<meta itemprop="name" content="{{ config.title }}" />
<meta itemprop="url" content="{{ config.base_url | safe }}" />
<p>{% include "includes/feed_link.html" %}</p>
<p>
modified:
<time itemprop="dateModified">
{{- now() | date(format='%Y-%m-%dT%H:%M:%S%z') -}}
</time>
</p>
</div>
</div>
</footer>
<nav>
<ul>
<li><a href="#">scroll to top</a></li>
</ul>
</nav>
{% block footer %}{% endblock %}
</body>
</html>

42
templates/blog.html

@ -0,0 +1,42 @@
{% extends "section.html" %}
{% block section_extra -%}
{% for page in section.pages | reverse -%}
<article class="h-entry" itemscope itemtype="https://schema.org/BlogPosting">
{% if page.extra.date_created -%}
{% set date = page.extra.date_created -%}
{% else -%}
{% set date = page.date -%}
{% endif -%}
<h2>
<a
href="{{ page.permalink | safe }}"
itemprop="url"
>{{ page.title | safe }}</a>
{% if date -%}
(
{%- if page.extra.ongoing %}since {% endif -%}
{{- date | date(format='%Y-%m-%d') -}}
)
{%- endif %}
</h2>
<meta itemprop="name" class="p-name" content="{{ page.title }}" />
<div itemprop="creator" itemscope itemtype="https://schema.org/Person">
<meta
class="p-author"
itemprop="name"
content="{{ config.extra.author }}"
/>
</div>
{% if date -%}
<meta
class="dt-published"
itemprop="dateCreated"
content="{{ date | date(format='%Y-%m-%dT%H:%M:%S%z') }}"
/>
{%- endif %}
<div class="p-summary" itemprop="abstract">
{{ page.summary | safe }}
</div>
</article>
{%- endfor %}
{%- endblock section_extra %}

45
templates/index.html

@ -13,6 +13,9 @@
<p>
<a href="#latest-projects">scroll to latest projects</a>
</p>
<p>
<a href="{{ get_url(path='@/blog/_index.md') | safe }}">blog</a>
</p>
</header>
<div class="projects projects--featured">
{% set featured_projects_pages = projects.pages | filter(attribute='extra.featured', value=true) -%}
@ -30,3 +33,45 @@
</div>
</main>
{%- endblock content %}
{% block footer %}
<footer>
<div class="container">
<h2>Contact</h2>
<div itemscope itemtype="https://schema.org/Person">
<meta itemprop="name" content="{{ config.extra.author }}" />
<p>
{{ email::email(address='wnxho@wnxhoinyragn.pm') }}<br />
PGP: {{ config.extra.pgp | replace(from='_', to='&nbsp;') | safe }}
</p>
<ul>
{% for link in config.extra.links -%}
<li>
<a
href="{{ link.url | safe }}"
target="_blank"
rel="noreferrer noopener"
itemprop="url"
>{{ link.name }}</a>
</li>
{% endfor -%}
</ul>
</div>
<div itemscope itemtype="https://schema.org/WebPage">
<meta itemprop="name" content="{{ config.title }}" />
<meta itemprop="url" content="{{ config.base_url | safe }}" />
<p>{% include "includes/feed_link.html" %}</p>
<p>
modified:
<time itemprop="dateModified">
{{- now() | date(format='%Y-%m-%dT%H:%M:%S%z') -}}
</time>
</p>
</div>
</div>
</footer>
<nav>
<ul>
<li><a href="#">scroll to top</a></li>
</ul>
</nav>
{%- endblock footer %}

2
templates/page.html

@ -2,7 +2,7 @@
{% block nav -%}
<nav>
<ul>
<li><a href="{{ get_url(path='@/_index.md') | safe }}">back</a></li>
<li><a href="{{ get_url(path='@/_index.md') | safe }}">{{ config.title }}</a></li>
</ul>
</nav>
{%- endblock nav %}

37
templates/post.html

@ -0,0 +1,37 @@
{% extends "page.html" %}
{% block nav -%}
<nav>
<ul>
<li>
<a href="{{ get_url(path='@/_index.md') | safe }}">{{ config.title }}</a> &gt;
<a href="{{ get_url(path='@/blog/_index.md') | safe }}">blog</a>
</li>
</ul>
</nav>
{%- endblock nav %}
{% block main -%}
<article class="h-entry" itemscope itemtype="https://schema.org/BlogPosting">
<header>
<h1 class="p-name" itemprop="name">{{ page.title }}</h1>
</header>
<meta
class="dt-published"
itemprop="dateCreated"
content="{{ page.date | date(format='%Y-%m-%dT%H:%M:%S%z') }}"
/>
<div class="e-content" itemprop="articleBody">
{{ page.content | safe }}
</div>
<div itemprop="creator" itemscope itemtype="https://schema.org/Person">
<p class="p-author" itemprop="name">{{ config.extra.author }}</p>
</div>
<p>{{ page.date | date(format='%Y-%m-%d') }}</p>
</article>
{%- endblock content %}
{% block footer -%}
<nav>
<ul>
<li><a href="#">scroll to top</a></li>
</ul>
</nav>
{%- endblock footer %}

23
templates/section.html

@ -1,14 +1,17 @@
{% extends "base.html" %}
{% block nav -%}
<nav>
<ul>
<li><a href="{{ get_url(path='@/_index.md') | safe }}">{{ config.title }}</a></li>
</ul>
</nav>
{%- endblock nav %}
{% block content %}
<article itemscope itemtype="https://schema.org/BlogPosting">
<header class="article-header">
<h2>{{ section.title }}</h2>
<main class="page">
<header>
<h1>{{ section.title }}</h1>
</header>
<div
itemprop="articleBody"
class="article-body article-section{% block extra_classes %}{% endblock extra_classes %}"
>
{{ section.content | safe }}
</div>
</article>
{{ section.content | safe }}
{% block section_extra %}{% endblock section_extra %}
</main>
{% endblock content %}

Loading…
Cancel
Save