Browse Source

migrated old blog to proton

deleted md files

converted files to adoc

deploy script

modified about.adoc
master
Vincent Truchseß 1 year ago
parent
commit
2699d8e4fc
21 changed files with 814 additions and 25 deletions
  1. +0
    -1
      .gitignore
  2. +28
    -1
      about.adoc
  3. +32
    -2
      contact.adoc
  4. +3
    -0
      deploy.sh
  5. +5
    -4
      index.adoc
  6. +7
    -0
      posts/2019-04-08-day-zero.adoc
  7. +19
    -0
      posts/2019-04-10-commenting.adoc
  8. +67
    -0
      posts/2019-04-11-poor-mans-comment-section.adoc
  9. +67
    -0
      posts/2019-04-17-off-the-grid.adoc
  10. +75
    -0
      posts/2019-04-25-git-gcrypt.adoc
  11. +164
    -0
      posts/2019-04-28-rust-environment.adoc
  12. +28
    -0
      posts/2019-05-11-caddy.adoc
  13. +12
    -0
      posts/blogpause.adoc
  14. +104
    -0
      posts/distributed-web.adoc
  15. +0
    -6
      posts/post0.adoc
  16. +0
    -5
      posts/post1.adoc
  17. +9
    -0
      posts/proton.adoc
  18. +148
    -0
      posts/ssb.adoc
  19. +40
    -0
      posts/updates.adoc
  20. BIN
      site/logo.png
  21. +6
    -6
      src/proton/site.clj

+ 0
- 1
.gitignore View File

@@ -12,5 +12,4 @@ pom.xml.asc
.hg/
/site/*
/input/*
*.adoc
/templates/custom

+ 28
- 1
about.adoc View File

@@ -1,3 +1,30 @@
= About

You can add information about your site here.
== Who am I?

I am a 30Yo Nerd, Dad and technically still enrolled for Computer
Science at my local University. Usually I am concerned with
computer-networks, operating servers and having fun in my day-to-day
computing. +
Apart from operations, I do have quite an interest in functional
programming (mostly Haskell and LISP), Documantation and Decentralized
Software.

Also, I am the author of link:https://git.fyber.space/vincent/proton[*Proton*],
an *asciidoc* based Static-Site-Generator that is also used to generate this
website.

== What do I do?

Whilst being a Student I do work for my University, maintaining our
linux-computerpools. Apart from that I was operating linux-servers over
the course of the last 8 years. At the moment I am taking a bit of time
for myself, starting to write down some of my experience as an operator
and linux-user.

== Blogs / Podcasts

The blogs I read regularly can be found link:files/feeds.opml[here].

A collection of (mostly german) podcasts I usually listen to can be
found link:files/podcasts.opml[here].

+ 32
- 2
contact.adoc View File

@@ -1,3 +1,33 @@
=Contact/Impress
= Contact/Impress

You can add your contact and impress-information here.
== How to contact me

If you want to give me feedback on my blog or something similar, there
ars serveral ways to get in touch with me.

xmpp: `vi@xmpp.fyber.space`

ssb: `+@enYnrAbM4s4BVadGY7VC0suQ48QitTkE4PlQYTtNT+4=.ed25519+`

=== SSB Pub

I am operating a semi-private ssb pub on *fyber.space*. To get an invite
code please contact me on *ssb* or *xmpp*.

=== Gossip

If you like to talk gossip, there is a gossip-MUC I am reguarly hangin
out: +
gossip@muc.fyber.space

== Impress

*_This website is exclusively run for private and noncommercial
purposes._*

Vincent Truchseß +
Rechenzentrum +
Am Hubland +
97074 Würzburg

mailto:redtux+blog@posteo.net[]

+ 3
- 0
deploy.sh View File

@@ -0,0 +1,3 @@
#!/bin/sh

rsync -r site/ leviathan:/var/www/blog/

+ 5
- 4
index.adoc View File

@@ -1,7 +1,8 @@
= Proton
= VI's Blog
Vincent Truchseß <redtux@posteo.net>

This is proton. A simple yet powerful static site generator with
blogging-support.
This is my personal little Blog.
It is still WIP, so you won't find much useful content here, but it will grow over time.
Eventually I'll mostly write about tech-stuff such as my experiences as a Gnu/Linux Operator, Free Software a little programming and the occasional nerdy commandline magic.

Here are the most recent posts:
Latest posts:

+ 7
- 0
posts/2019-04-08-day-zero.adoc View File

@@ -0,0 +1,7 @@
= Day Zero
:date: 2019-04-08T00:00:00+02:00

This is *_Post 0_* on my blog.

Nothing big to read about but if you can read this it means, building my
html and perhaps rss seems to work.

+ 19
- 0
posts/2019-04-10-commenting.adoc View File

@@ -0,0 +1,19 @@
= Commenting
:date: 2019-04-10T00:00:00+02:00

This blog contains only static html and no interactive elements and I
really like it that way. Nevertheless I also would like to have a way to
discuss a blogpost with my readers (if any). To solve this dilemma I
have quickly hacked together a small script that creates posts on my
pleroma-server linking to a new blogpost and includes the url of the
pleroma post at the bottom of every blogpost. +
So, If you want to comment on one of my blogposts and have a you have
some kind of fediverse-account somewhere *_(which you should. It’s 2019,
dammit!)_* just click the *_``Discussion''_*-link at the bottom of the
page. +
Within the next day I will make my small script nice and less hacky and
write a more detailed blogpost about it. +
I am sorry for my language, but it is late and I am happy this works
right now.

https://social.fyber.space/notice/9hfrAyRkzjDPVCORVo[Discussion]

+ 67
- 0
posts/2019-04-11-poor-mans-comment-section.adoc View File

@@ -0,0 +1,67 @@
= A poor Mans Comment Section
:date: 2019-04-11T00:00:00+02:00

In my previous blogpost I mentioned that I hacked together a small
script stitching my blog and the fediverse together. Now I’ll go a
little more into details. +
You can find a copy of my script link:../files/stitch.sh[here].

Hakyll, in the default configuration, has a `+posts+`-folder containing
blogposts as markdown, having the publishing-date set in their filename.
I usually keep unfinished blogposts as `+.md+`-files in my `+drafts+`
folder, without having the timestamp in the filename yet. It’s still
quite hacky, but it works for now and I don’t have the freetime right
now to build a better fediverse-integration.

== Dependencies

There are only two external programs used:

* curl
* jq

== Configuring the script

In the beginning, I have to setup some parameters. I use `+pass+` as my
passwordmanager to store the password to my blog’s fediverse-account.
Since my domains and stuff are no secret I’ll just use them as an
example here.

[source,bash]
----
POSTS_DIR="$HOME/blog/posts"
USER="blog"
PASSWD="$(pass internet/social.fyber.space/blog)"
INSTANCE="social.fyber.space"
BLOG_DOMAIN="blog.fyber.space"
----

== Running it

The script takes one commandline-parameter, the path to the draft to
stitch and publish. When executed it basically does the following
things:

* Copy the draft to the `+posts+`-folder, setting the date in the
filename.
* Send a `+POST+`-request posting a new Status on your
fediverse-account.
* Parse the response and extract the url of the new status.
* Append a *_Discuss_*-link at the end of the post pointing to the
status in the fediverse.

Afterwards, you just havt to run the usual

[source,bash]
----
stack exec site build
stack exec site deploy
----

== Considerations

It would be cool to integrate this functionality directly into
*_Hakyll_*. Eventually this comes on my list with things to code on the
next CCC-Event which would be the GPN19 in Karlsruhe for me this year.

https://social.fyber.space/notice/9hhtQVj3bXcb7uS0rg[Discussion]

+ 67
- 0
posts/2019-04-17-off-the-grid.adoc View File

@@ -0,0 +1,67 @@
= Off the Grid
:date: 2019-04-17T14:32:00+02:00

In my previous blogpost I mentioned that I hacked together a small
script stitching my blog and the fediverse together. Now I’ll go a
little more into details. +
You can find a copy of my script link:../files/stitch.sh[here].

Hakyll, in the default configuration, has a `+posts+`-folder containing
blogposts as markdown, having the publishing-date set in their filename.
I usually keep unfinished blogposts as `+.md+`-files in my `+drafts+`
folder, without having the timestamp in the filename yet. It’s still
quite hacky, but it works for now and I don’t have the freetime right
now to build a better fediverse-integration.

== Dependencies

There are only two external programs used:

* curl
* jq

== Configuring the script

In the beginning, I have to setup some parameters. I use `+pass+` as my
passwordmanager to store the password to my blog’s fediverse-account.
Since my domains and stuff are no secret I’ll just use them as an
example here.

[source,bash]
----
POSTS_DIR="$HOME/blog/posts"
USER="blog"
PASSWD="$(pass internet/social.fyber.space/blog)"
INSTANCE="social.fyber.space"
BLOG_DOMAIN="blog.fyber.space"
----

== Running it

The script takes one commandline-parameter, the path to the draft to
stitch and publish. When executed it basically does the following
things:

* Copy the draft to the `+posts+`-folder, setting the date in the
filename.
* Send a `+POST+`-request posting a new Status on your
fediverse-account.
* Parse the response and extract the url of the new status.
* Append a *_Discuss_*-link at the end of the post pointing to the
status in the fediverse.

Afterwards, you just havt to run the usual

[source,bash]
----
stack exec site build
stack exec site deploy
----

== Considerations

It would be cool to integrate this functionality directly into
*_Hakyll_*. Eventually this comes on my list with things to code on the
next CCC-Event which would be the GPN19 in Karlsruhe for me this year.

https://social.fyber.space/notice/9hhtQVj3bXcb7uS0rg[Discussion]

+ 75
- 0
posts/2019-04-25-git-gcrypt.adoc View File

@@ -0,0 +1,75 @@
= Git Gcrypt
:date: 2019-04-25T14:32:34+02:00

== The Problem

The problem I was facing lately was quite simple. +
I use https://github.com/vimwiki/vimwiki[vimwiki] to keep my notes
organized. Now, I want to synchronize my notes with other devices,
having them available wherever I might need them. Since *vimWiki* stores
plaintext files in a folder, that sounds like a perfect job for *git*. +
Now, I like to have my git-repos accessible from the internet. That
leaves me with the problem of storing my personal notes in plaintext on
a server in someone else’s datacenter.

== The Solution

Searching allover the internet for a solution that doesn’t involve some
extra sync-client (like a VeraCrypt-Container in a dropbox) and that
doesn’t break the ability to cleanly solve conflicts between edits on
different devices I found
https://github.com/spwhitton/git-remote-gcrypt[git-remote-gcrypt]. +
This nice little tool let’s you have pgp-encrypted git-remotes, which
was exactly what I was looking for.

=== Installation

On Arch-Linux there is an AUR-package available, so no further
explanation needed. +
On other systems, just use the supplied `+install.sh+` -script as
mentioned in the project’s readme. Since it’s written in `+POSIX+`
-shell it should run on every modern OS without problems.

=== Usage

==== Setting up an encrypted remote

To add a git-remote as an encrypted one, just prefix it’s git-uri with
`+gcrypt::+`, like this:

[source,bash]
----
git remote add <remote> gcrypt::ssh://user@server.tld:secrets
----

==== Setting up keys

In order for `+gcrypt+` to properly encrypt your data you should
configure the proper keys in the local repository’s config. Here is an
example:

[source,bash]
----
git config remote.remotename.<remote>.gcrypt-participate "key1 key2"
----

This will make gcrypt encrypt the remote for the keys `+key1+` and
`+key2+`.

=== A word of warning

Since every push on the remote is effectively a force-push, make sure to
always pull before you push!

Using a plain git-uri (like GitHub or similar do) to push-access your
repository effectively transfers the whole repository-content on every
push. For larger repo, consider to choose a server that supports
rsync-transfer or similar.

== First Impressions

I have been playing around with this tool for quite some time now,
testing different use-cases. It definitely has it’s place on my toolbelt
now.

https://social.fyber.space/notice/9iAvXuKWHsWIq8NrtI[Discussion]

+ 164
- 0
posts/2019-04-28-rust-environment.adoc View File

@@ -0,0 +1,164 @@
= A working Rust Environment with NeoVIM
:date: 2019-06-28T14:33:13+02:00

This is a short writeup on how to setup a Rust Environment in *neovim*
that provides:

* Autocompletion
* Live-linting
* Autoformatting
* Syntax-highlighting

Most of the documentation I used referred to *vim8* as well but I
haven’t tested that.

== Installing the rust toolchain(s)

First, we need to install the rust installer *rustup*. On Arch-Linux,
rustup is packaged within the standard repositories. For other Operating
Systems just follow the rustup
https://www.rust-lang.org/tools/install[installation guide].

Don’t forget add `+~/.cargo/bin+` to your `+PATH+` variable.

Having the installer ready, we need to install the toolchains, sources
and docs. +
I want to use the `+stable+` toolchain to write code, but some of the
development tools are only available for the `+nightly+` toolchain so
we’re simply going to install them both.

[source,bash]
----
rustup toolchain install stable
rustup toolchain install nightly
rustup default stable
rustup component add rust-src
----

== Installing the Rust Language Server

*https://github.com/rust-lang/rls[RLS]* provides a backend for
IDEs/editors to support their features for Rust. It is advised by it’s
documentation to install it from the `+nightly+` toolchain. We’ll use
rustup to install it via

[source,bash]
----
rustup component add rls --toolchain nightly
----

In my case this command failed with a message telling me that rls is not
part of the current `+nightly+` distribution. It also pointed me to have
a look at https://rust-lang.github.io/rustup-components-history/[this
site] to find the last nightly build containing it. +
There I found out which `+nightly-YYYY-MM-DD+` toolchain I need to use,
so I simply installed it.

[source,bash]
----
rustup toolchain install nightly-YYYY-MM-DD
----

Now I could install rls via:

[source,bash]
----
rustup component add rls --toolchain nightly-YYYY-MM-DD
----

== Installing racer

*https://github.com/racer-rust/racer[Racer]* is a tool providing
autocompletion for rust’s standard library. +
We can simply install it via:

[source,bash]
----
cargo +nightly install racer
----

Afterwards we have to set the `+RUST_SRC_PATH+` variable to

[source,$home/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src```.]
----

## Installing rustfmt

**[rustfmt](https://github.com/rust-lang/rustfmt)** performs autoformatting on
rust-code. At first I installed just ```rustfmt``` via cargo. While using it, it
was showing me lots of deprication-warnings so I installed ```rustfmt-nightly```
via:

```bash
cargo install rustfmt-nightly
----

== Installing NeoVIM plugins

There are some `+vim+`/`+neovim+` plugins needed to integrate all those
tools into neovim. I won’t go into details on how to install plugins on
your neovim-setup since everyone has one’s own preferences about this.
Instead I’ll just list them here:

* https://github.com/w0rp/ale[w0rp/ale]
* https://github.com/Shougo/deoplete[Shougo/deoplete.nvim]
* https://github.com/racer-rust[racer-rust/vim-racer]

=== Setting up ALE

*https://github.com/w0rp/ale[ALE]* is a linting-engin for neovim that
implements a language-server client. To comfigure it to use the
*rls*-server we previously installed, put the following lines into your
`+init.vim+`:

[source,vim]
----
let g:ale_fixers = {
\ 'rust': ['rustfmt'],
\}

let g:ale_linters = {
\'rust': ['rls'],
\}

let g:ale_rust_rls_toolchain = 'nightly-YYYY-MM-DD'

let g:ale_fix_on_save = 1
let g:airline#extensions#ale#enabled = 1
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
----

Where `+g:ale_rust_rls_toolchain+` needs to correspond to the
`+nightly+` build you used to unstall rls. +
This sets up ALE to use rls for linting as well as rustfmt for
autoformatting.

=== Setting up deoplete

*https://github.com/Shougo/deoplete[deoplete]* provides
live-autocompletion in neovim. We have two sources for autocompletion
installed right now; ALE and racer, so we must configure deoplete to use
those two when editing rust-files.

[source,vim]
----
let g:deoplete#enable_at_startup = 1
let g:deoplete#sources = {'rust': ['ale', 'racer']}
----

== Additional Plugins

In addition to this particular rust-setup I also use some more plugins
that help me writing code in neovim that might be worth a look.

* https://github.com/scrooloose/nerdtree[nerdtree] - File tree in a
sidebar
* https://github.com/majutsushi/tagbar[tagbar] - Code Outline in a
sidebar
* https://github.com/tpope/vim-fugitive[vim-fugitive] - Git integration

I won’t go too much into details about how to set them up, just read the
documentation and you’re good to go.

https://social.fyber.space/notice/9iHJmSZBMD42vPTQdU[Discussion]

+ 28
- 0
posts/2019-05-11-caddy.adoc View File

@@ -0,0 +1,28 @@
= The Caddy Webserver
:date: 2019-05-11T14:33:57+02:00

This is going to be a very short post. I just have successfully migrated
my services on *fyber.space* to use caddy as webserver and I am very
happy about this so I am going to share my tremendous amount of shear
happyness with you.

Just on a short notice - I have been pointed to take a look at the
https://caddyserver.com[caddy] webserver, since it has a reputation of
being extremely easy to set up, especially if you want to use
*LetsEncrypt* anyway.

My first impression after adding caddy support to the Ansible-Roles I
use to setup my pleroma, blog, gitea and radicale was like ``Ooooh, this
is really nice''. For most services All I need is a reverse-proxy that
terminates TLS and multiplexes http. – With *caddy*, this is about two
lines of config for each service including the webserver taking care of
obtaining and renewing certificates for every domain since TLS and
automatic LetsEncrypt magic is the default setting here. It also takes
care of redirecting requests on port 80 automatically to port 443
properly and without any additional config. If you run webservers, take
a look at it yourself and find yourself with a less messy configuration
(including not having the hustle with certbot anymore at all).

That’ll be all so far, happy computing!

https://social.fyber.space/notice/9igHqk1Sx3dcUz9qtM[Discussion]

+ 12
- 0
posts/blogpause.adoc View File

@@ -0,0 +1,12 @@
= Summer Break
:date: 2019-07-17T14:34:47+02:00

I have decided to take a break from many computer-related things I am
usually concenred with until aproximately the end of this summer so the
fequency of posts on this blog might decrease noticiably.

After my short-sabbatical I promise to come back with new exciting and
thrilling posts about life, the universe and all the rest. Until then,
there are a few things in the pipeline which I might release in between.

Have a nice summer, everyone!

+ 104
- 0
posts/distributed-web.adoc View File

@@ -0,0 +1,104 @@
= A distributed Web
:date: 2019-07-22T14:35:41+02:00

This is not a _real_, well contemplated article. It’s just two posts on
*SSB* in which I shared my vision of a distributed web (I know, the
irony is that this blog is not available via dat yet).

'''''

`+%bh7GPg6oaLAc3eZw/TNrNvRWNM0LRtJy8Ycni3YfPEM=.sha256+` _, posted on
Jun 30._

== Thoughts on how to build a gossip-web

=== Abstract

==== Motivation

I think we can all agree that building a decentralized web, based on p2p
technology is one of our major goals when it comes to internet-ish
applications. Not only do we object the idea of central authorities, nor
do we accept the fragility of the current technology. +
Right now, the building blocks for the next-generation web are at our
hands, enabling us to build a network that reflects and embraces the
strength of our social connections. +
If we want to declare the Cyberspace as independent, we must pursuit the
technology that makes independence become reality.

In the future, resilience will be of the essence. While governments and
cooperations are putting more and more effort in fighting the free
internet, both for different reasons, we as a community cannot re-do the
effort that has been taken to build the net as it is right now. +
In a self-sustaining future, we may have a number of networks that
eventually won’t be interconnected by hi-speed fiber-links or won’t have
global reachability. This is where gossip protocols come in play. Since
people travel around, visiting a number of different communities on the
way, there is a way to implement a sneaker-internet connecting local
networks by transporting data from one place to another in an automated
fashion. +
While we already have _scuttlebutt_ as a gossip-based social-network,
we’ll need a similar approach to form a gossip-based web.

==== Goals

The main goal of the gossip-web is to establish the tools we’d need to
keep information flow freely, even without the regular Internet
underneath.

=== An Idea for an Implementation

To explain my thoughts on the _gossip-web_, let me explain how I thought
one could implement it using current tech.

==== Content distribution

If we want to distribute and consume content we need a protocol that
takes care of replicating, locating and distributing it. I found the
*dat*-protocol to fit well for our needs. It let’s you access content
from other computers in reach and it let’s you replicate it, so others
can access it from your machine. +
*Note*: _From here on, I may use some dat-related terminology_.

==== Content propagation

Without permanent global interconnection, we’ll need a way to propagate
content. Here the gossip-model comes in play by publishing links and
metadata (more on this later) to every site you seed into ssb. Ideally,
you would build a local search-index containing links, descriptions,
etc. This search-index would then be published via dat and a link to it
would be posted on ssb. As your node finds links to your friends’
search-indexes on ssb, it can download them (if currently available) and
merge them into it’s own index. Additionally, you could publish
subscriptions to specific topics, keywords, authors, etc. on ssb as
well. Everyone would then download websites from the local search-index
that match its own or their friends’ subscriptions. +
This models how we would propagate links as human beings. When we
recommend books, magazines or articles to each other that’s basically
what we’re doing.

'''''

`+%IujUftuYJ/4h0KPCP2YhRPXFmYS3b/glCgILSHY69oU=.sha256+`, _posted on Jul
17._

== More thoughts on the distributed Web

As I imagine a utopian future of the web based on the technology
existing/emerging at the time I consider #dat and #ssb having two
distinct but important roles:

* *SSB* modeling us as individuals, including our social graphs
* *DAT* transporting content that may or may not be associated with an
individual but in any case has a role on it’s own (websites etc…)

What we miss here is something replacing the traditional concept of
namespaces and domains as provided by traditional DNS. In the past I
have played around a bit with GNS (from #GNUNet) and it’s concepts.
Domains are something tied to an entity or person, so maybe it might be
a cool Idea using SSB to manage namespaces mapping human-readable names
to dat-links. (e.g. dat://blog.vi.ssb/index.html mapping to a dat-link I
posted in a special-formatted message). All it would take is a
message-format for SSNS (Secure Scuttlebutt Name Service, I just came up
with this..) and a local dns-proxy resolving .ssb tlds locally by
querying the flumedb.

+ 0
- 6
posts/post0.adoc View File

@@ -1,6 +0,0 @@
= Post 0
VI
:date: 2019-09-13T11:12:47+02:00

This is the first test-post. The date-attribute is mandatory or sorting the
posts and generating the rss-feed.

+ 0
- 5
posts/post1.adoc View File

@@ -1,5 +0,0 @@
= Post 1
:date: 2019-09-13T11:14:06+02:00

This is the second test-post. As you see, if you don't set an author's name,
Everything is still OK.

+ 9
- 0
posts/proton.adoc View File

@@ -0,0 +1,9 @@
= Proton
VI
:date: 2019-09-13T14:12:33+02:00

So, this Blog was successfully migrated to
link:https://git.fyber.space/vincent/proton[*Proton*]! +
This could result in your rss-reader showing all previous posts as new since I'm
using a different method to generate the guids. Otherwise, everything is pretty
much the same at the moment.

+ 148
- 0
posts/ssb.adoc View File

@@ -0,0 +1,148 @@
= Secure Scuttlebutt
:date: 2019-06-08T14:36:33+02:00

As mentioned in my
https://blog.fyber.space/posts/2019-04-17-off-the-grid.html[post] about
off-grid computing I learned about *secure scuttlebutt* a few months
ago. I have been using it for some time now and I’m going to share that
experience with you.

== WTF is Scuttlebutt?

*Secure Scuttlebutt* or *ssb* is a gossip-protocol facilitating a
decentralized communication platform. There are several applications
built on top of this protocol from which I am currently using
https://github.com/ssbc/patchwork[*patchwork*] _(desktop client)_ and
https://www.manyver.se/[*manyverse*] _(android client)_. +
Patchwork let’s you follow people, post messages, subscribe and
participate in channels and generally interact with others. Manyverse
only has very basic features so far but it seems to be the only client
available for my phone at the moment.

=== How it works (compared to a client-server model)

==== Gossip

The term _gossip_ refers to the way messages get passed along throughout
the network. +
In a traditional client-server protocol a client application would have
to know how to connect the server on the network. This has two
implications:

* The client has to know _where_ the server is
* The client has to be able to connect directly to the server

In a gossip-protocol, no direct connection is necessary. Instead
messages are passed on from client to client, just like real-life
gossip. +
This makes it possible to work seamlessly when a single node or a
partition of the network gets cut off the _global network_ and rejoins
later. +
*Patchwork* and *Manyverse* by default replicate feeds two hops far.
This means you fetch the feeds from those you follow and those your
follows follow.

==== Identities

In the _regular web_, you would delegate authority over your identity to
some server, holding account information, messages etc. In *ssb* your
identity lives entirely on your own device in the form of an asymmetric
key-pair. +
Therefore, there is no such thing as registering an account or logging
in somewhere.

==== Append only feed

When you post a message (private or public) it is simply appended to
your feed (Also called stream sometimes). The feed is basically a
cryptographically secured linked-list (just like a
[line-through]*blockchain* git repository), meaning it’s essentially a
linked list where every element contains the content-hash of the
previous one and is signed by the identities’ private-key.

==== How do I see other feeds and vise versa?

===== In a local area network

*Ssb*-clients use IP-multicasting to find each other on the same
ethernet-segment or wifi.

===== Over the internet (using pubs)

Since most clients run behind firewalls, NAT-gateways, etc. it is
difficult to make any computer with a consumer-grade uplink accessible
from the internet. Therefore, people have come up with the idea of
*pubs*. +
A *pub* is simply a ssb-node that’s running 24/7 on a public IP-address
(acting as a server in this case). _Joining a pub_ means following it
and having it follow you back as well. This way the pub will replicate
your posts and keep them available publicly.

==== How to find new people

If you join the _scuttleverse_, it is most likely you don’t know anybody
who uses it. +
To find people to follow (and people to follow you as well) it is useful
to join one or more public pubs. Also it is useful to post an
introduction to yourself in the *#new-people* channel. +
In general, subscribing to channels is a good Idea to find content you
might be interested in. +
As you start to interact with people and follow them some will follow
you back and you’ll get integrated into the network.

=== My Experience so far

I’ve been using *ssb* more than the *fediverse* lately and had some
interesting impressions.

* The tone is much more decent and polite than in regular social
networks.
* The speed of communication is quite slow and less stressful.
* People seem to take more time to put their thoughts into their posts.

All together, as a person suffering from constant _femo_ and _horror
vaccui_ this style of communication feels way more healthy to me than,
let’s say, the fediverse or twitter.

==== Finding the right Pub

There is a https://github.com/ssbc/ssb-server/wiki/Pub-Servers[list of
pubs on github].

==== Onboarding

Creating your first identity, joining a pub and syncing up with the
network is often referred to as _onboarding_. +
This usually includes downloading and indexing all feeds from everyone
on your pub and can take from 30 minutes up to 2 hours (my experience)
on a regular laptop.

==== Introducing yourself

After finishing the _onboarding_-process, you should write a quick
introduction to yourself in the *#new-people* channel as mentioned
above.

==== Multi-device Setup

In general, a ssb-identity is bound to one device. While you could _(in
theory)_ simply copy your private-key onto another device there is no
mechanism in dealing with conflicting posts (forking your feed). There
is a lot of discussion in the *#same-as* channel about how to manage
multiple identities on different devices. My solution so far is:

* Using *patchwork* on my laptop as my main identity.
* Using manyverse on my phone as a secondary identity.
* Having my secondary identity only follow my main identity.
* Cross-referencing my identities by mentioning them in each other’s
profile descriptions.

This allows me to see posts from everyone my main-identity follows (mind
the 2-hop replication) without pulling in too much data from others.

== Useful Resources

If I managed to point your attention to trying out *scuttlebbutt*, have
a look at the project’s https://www.scuttlebutt.nz/[website]. +
Also read the https://www.scuttlebutt.nz/faq/[FAQ]. +
Anyways, there are lots of helpful people out in the *scuttleverse*.

+ 40
- 0
posts/updates.adoc View File

@@ -0,0 +1,40 @@
= Updates
:date: 2019-09-08T14:37:11+02:00

It’s time to give you some updates and write a little about what’s going
at the moment and in the near future.

== The Fediverse

Maybe you noticed that I have suddenly disappeared from the fediverse
without any goodbye. Simply, I found myself spending way too much time
on my hone doing _pull-to-refresh_. Maybe I’m getting old, maybe I’m
just not the Person for this but I started to get the same feeling that
drove me away from twitter a couple of years ago. Also,
`+https://social.fyber.space+` got closed for good since I was the only
user there.

== This Blog

There are a few changes planned concerning this wonderful, little blog
which you enjoy so much.

=== Proton

If you follow me on *SSB*, you might have heard that I am programming my
own static-site-generator called Proton. It’s written in Clojure and
based on the Asciidoctor-toolchain. You won’t notice any difference in
the beginning except the footer of this site will state _``Site proudly
generated by Proton''_ instead of _Hakyll_. At the moment I am able to
build this blog and have it being compatible to my current css.
Migrating this blog to Proton is planned for the end of next week.

=== YAFOTB (Yet another Fork of this Blog)

I have thought to start the Experiment and start a sub-section of this
blog. This will be the place where I’ll write about non-IT stuff,
probably in German sometimes. This is more of an experiment but there
have been some things I just didn’t write about because they don’t fit
into the general topic here. But since there is enough space on the
internet foe everything I might as well expand and explore this section
of the *fyberspace*.

BIN
site/logo.png View File

Before After
Width: 172  |  Height: 60  |  Size: 1.9KB Width: 306  |  Height: 56  |  Size: 4.5KB

+ 6
- 6
src/proton/site.clj View File

@@ -11,12 +11,12 @@
;; proton.rss rss
(let [t proton.templates/default-template
posts (wr/compile-posts t tpl/default-post-template)
rss-opts {:title "Test"
:link "https://test.foo"
:host "test.foo"
:description "This is a test feed"
:rss-link "https://test.foo/rss.xml"
:author "MEeeeee"
rss-opts {:title "VI's Blog"
:link "https://blog.fyber.space"
:host "blog.fyber.space"
:description "VI's small tech-blog"
:rss-link "https://blog.fyber.space/rss.xml"
:author "Vincent Truchseß"
:max-items 20}]
(wr/compile-page t "about.adoc" "about.html")
(wr/compile-page t "contact.adoc" "contact.html")


Loading…
Cancel
Save