This is not suited for the official outlet, so it will be posted here.My main activity in the last weeks has been thinking about order, structure, organization, expansion and start of infrastructure, and the many aspects of the system including how to maintain this the best way so that relevant parts of code can be shared with GuixSD.

Nothing is really “static” and fixed to what I wrote in the Email many weeks ago, the only fixed fact is that the goal is to make GNUnet universal usable.

At the moment I am writing a documentation handbook. I could simply develop on my own and wait for more people to ask where they could contribute, but infotropique maintenance and development will soon run on shared time.

Development is just a one person job at the moment, so I can’t really calculate any deadlines for first releases.

We are still discussing the source code repository location and workflow, so I’m sitting on some unreleased material, specifically the master repository.

Within the next months you should be able to:

Comments Off on The state of infotropique OS and infotropique LIVE

GuixSD: mastodon. An experiment in theoretic packaging. (very early draft/thoughtcollection)

April 18th, 2017 — draft, guix

Today we are going to “package” Mastodon, as requested. Or at least document the theory before being put to practice (I actually lack the resources to run a public test node).

We are going the “No Docker” route here first:

Missing packages in Guix: pidentd, node 4.x. We do have node 6.x though and 4.x (in theory) is only a matter of getting back to it.

And set up the database for the first time, this will create the tables and basic data:
RAILS_ENV=production bundle exec rails db:setup
Finally, pre-compile all CSS and JavaScript files:
RAILS_ENV=production bundle exec rails assets:precompile

Breaking up the language specific requirements

(as this is the Guix way, unbundling where possible)
gem ‘pkg-config’
gem ‘rails’, ‘~> 5.0.2’
gem ‘sass-rails’, ‘~> 5.0’
gem ‘uglifier’, ‘>= 1.3.0’
gem ‘jquery-rails’
gem ‘puma’
gem ‘hamlit-rails’
gem ‘pg’
gem ‘pghero’
gem ‘dotenv-rails’
gem ‘font-awesome-rails’
gem ‘best_in_place’, ‘~> 3.0.1’
gem ‘paperclip’, ‘~> 5.1’
gem ‘paperclip-av-transcoder’
gem ‘aws-sdk’, ‘>= 2.0’
gem ‘addressable’
gem ‘devise’
gem ‘devise-two-factor’
gem ‘doorkeeper’
gem ‘fast_blank’
gem ‘goldfinger’
gem ‘hiredis’
gem ‘htmlentities’
gem ‘http’
gem ‘http_accept_language’
gem ‘httplog’
gem ‘kaminari’
gem ‘link_header’
gem ‘nokogiri’
gem ‘oj’
gem ‘ostatus2’, ‘~> 1.1’
gem ‘ox’
gem ‘rabl’
gem ‘rack-attack’
gem ‘rack-cors’, require: ‘rack/cors’
gem ‘rack-timeout’
gem ‘rails-i18n’
gem ‘rails-settings-cached’
gem ‘redis’, ‘~>3.2’, require: [‘redis’, ‘redis/connection/hiredis’]
gem ‘rqrcode’
gem ‘ruby-oembed’, require: ‘oembed’
gem ‘sidekiq’
gem ‘sidekiq-unique-jobs’
gem ‘simple-navigation’
gem ‘simple_form’
gem ‘sprockets-rails’, :require => ‘sprockets/railtie’
gem ‘statsd-instrument’
gem ‘twitter-text’
gem ‘tzinfo-data’
gem ‘whatlanguage’
gem ‘react-rails’
gem ‘browserify-rails’
gem ‘autoprefixer-rails’
gem ‘rails_12factor’
gem ‘redis-rails’
gem ‘lograge’

Most of these gems and their dependencies are not available. So it’s mostly a matter of spending time to package gems.

For npm / nodejs the current recommendation seems to be: Give up, just embed a large binary blob for each direct dependency.

1. Packaging mastodon is not trivial.
2. Packaging the gems: I stopped setting deadlines in packaging, but my first impression is that it will take long.
3. The other effort will be to get the npm build system merged or get enough info so that we can rebase and use a branch based on jelle’s GSoC branch. Get more info on the state of it, etc.

Comments Off on GuixSD: mastodon. An experiment in theoretic packaging. (very early draft/thoughtcollection)

GuixSD on servers: How to run a tor-relay (draft)

April 15th, 2017 — guix

Obligatory Disclaimer: Read the upstream documentation and notices, especially the legal ones, about running tor relays.

Today in GuixSD on servers, we are going to run a tor-relay.

I assume you already went through the joy of installing a basic GuixSD somehow, somewhere and all you need is a system config which gives some insight into how to run this one-service specific server.
With the recent introduction of containers for system services in GuixSD, this adds some safety to running tor relays (not legal one though).

Please keep in mind that this is a theoretic construction, it will be put to practice once I can run a relay again for a short moment.

It also features no notice of adding your OpenSSH keys to the machine + setting a password.
Someone is working on making SSH keys an option in the system config, this post will be updated once it’s possible.

Comments Off on GuixSD on servers: How to run a tor-relay (draft)

GuixSD: further thoughts about servers

April 13th, 2017 — guix

Multiple people are documenting their efforts and fights with clouds, kvm, xen, and other virtual systems to run GuixSD on.
Most of these platforms don’t differ from each other very much, so this serves also as a test to improve GuixSD to make the individual tweaks unnecessary.

However in the meantime, a centralized place to gather all the documentation is important. I’ll write down my own attempts, and I will collect emails from the list about initial server setups. For now I will collect them here on this web log.

Currently I’m working on:

Limitations are:

Eventually this should end up in a series of finalized posts which are easy to read (easy, non-technical language) and extend or work together with the pretty good documentation of Guix. You wonder how to install GuixSD at your hoster/cloudcastle XY? No problem, read this. Ideally it will be like my current experience with GuixSD where the basic setup is done in less than 30 minutes (depending on the status of hydra).
Eventually these guides will be moved over to some subdomain at pragmatique.xyz

Comments Off on GuixSD: further thoughts about servers

Installing GuixSD… the Borg way

April 11th, 2017 — guix

We are the Guix. Your biological and technological distinctiveness will
be added to our own. Resistance is futile.

This post briefly describes how to install GuixSD on Debian 8, the Borg way.
Please be aware that this post is a draft as the system I am using is still building. Currently this means what exactly you need to remove from /etc/ must be documented otherwise you boot into a non-functional system with mounting issues.

Comments Off on Installing GuixSD… the Borg way

I take packaging requests (for Guix packages)

April 9th, 2017 — General, guix

If you lack the time to work on a package and you have no specific deadline for it,
you can message me with your requests.
Please mark the email with accordingly so that I can filter them later on, I suggest starting the subject line with “[packaging request]”.
If you do this, please support me on either flattr or patreon (more platforms will eventually be added).

Currently I work on an 1:1 port of torbrowser for Guix (longterm fun project), and completion of the mailman3 packages. Other work in progress packages can be found here.

Comments Off on I take packaging requests (for Guix packages)

opinion: misconceptions about non-commercial federated networks in the press (draft)

April 8th, 2017 — offtopic, opinion

This is a response to mashable.com – mastodon-wont-survive. It’s an early public draft, later versions will go more into depth of explaining certain concepts of networks which I do imply knowing here.

As a personal information, I’m neither involved with mastodon development nor do I speak for the project. In fact I’m advocating methods to make the majority of server based networks obsolete in the long run.

Shel Raphen, one of the people who are actively contributing to Mastodon’s codebase wrote an essay here. It was so obvious that I failed to include in this text the fixation of “killing networks” and “financial support” in the press.

This news post reads like a mixture of misunderstanding of federation and just mocking.

Let’s look at everything Mastodon gets wrong.

1) Terrible name

Mastodon implies large, slow, frozen, and dead for thousands of years. The logo is cute, but the service right now stinks almost as badly as a thawing woolly mammoth.

What’s in a name anyway? Softwareprojects and companies don’t have a record for original names (look at twitter, facebook, diaspora), and when they do have original names they tend to be way over the top with too much rocket gear added to the name finding process.

2) There is no single Mastodon

In trying to satisfy a spike of new users, Mastodon broke the cardinal rule of social media: it separated them into silos and made it hard if not impossible for them to all socialize. This unfortunate design makes Mastodon feel more like a bunch of chat rooms rather than a cohesive, growing social network. The Federated Timeline helps, but it’s not the default view.

And I get that having a decentralized social media platform, Mastodon creator Eugen Rochko’s big idea, helps create safe zones from groups and topics, but it’s really a terrible approach that will lead to a stagnant growth and way more opinion bubbles, which is the last thing we need.

(Growth for the growth deity.)
But my dear author, it is federation by design. Let me first introduce this with a picture: Socialmedia networks do not have to re-use models we currently know as succesful as they get rich by making money of your metadata. Twitter, Facebook, and GooglePlus all are corporate networks with a centralized structure. Mastodon is not the first federated network. Other kinds of networks exists and are in the making (distributed ones). The overall concept of the internet and its earliest usecases was a federation. Email as we know it today is federation. Fidonet, started in 1984, still has 3,652 active nodes and it is federated. Diaspora, even if there might be no longer that much coverage in the press, is federated, has 328 active nodes and around 17.000 users.

To present a more precise usecase of federation you can experience, here’s a diagram by @vhf I am allowed to use (click to see the full size): 3) Toots

In trying to be the anti-twitter, Mastodon’s Rochko chose the dumbest and most ridiculous post name possible: Toots. This too-cute take-off on Tweets literally hurts me every time I say and do it on Mastodon.

See above, regarding names. It’s a personal opinion, I think toots are as random as tweets.

4) Handles are meaningless

User handles do show up in Toots (blech!) but not in the URLs for users’ Mastodon homepages. Giving users numbers (mine is 995) instead of identifiable website addresses makes Mastodon feel amateurish.

Actually they do: @vhf has the handle vhf and the public URL https:// techn.ical.ist/@vhf. What precisely is amateur when it comes to how you format URLs for profiles? In the end you do not interact with the URLs, you interact with the people. I did not see the issue the author of the post raised, so I suppose this is just mocking.

5) Where is everyone?

If you can’t find people by name, then how can you follow them on Mastodon? Someone in one local Mastodon timeline may not appear in another (Sorry, Mr. Shatner). To see everyone (at least I think you see everyone), you have to troll the Federated timeline, open a Toot (blech!) and add them there. Twitter and other social networks already have this stuff figured out. Why is Mastodon better? It’s not!

It’s not as obvious as it is, and should be explained better. You know that for software project bugs can be reported. This is a known (?) documentation bug, for a current explanation take a look at the 2nd image here.

6) Apps feel like a science project

I started using Mastodon in Safari. It was not a good experience. At least there’s an app…or apps.

There is no one app called Mastodon. Instead, you can find a Github list of apps for the open-source project. Apps like the iOS-based Amaroq let you log into any of the many Mastodon “instances” by typing in the name. Nope, there’s no list of instances because I don’t think anyone knows just how many Mastodon instances are out there.

One app per child!
Why is having no centralization of client applications considered bad? It’s about the freedom to create an application and choosing one of many compatible clients, and not being forced to use THE mastodon app.
There is a list of instances and it is being advertised on most instances sign up pages:
https://mastodon.social/about displays a link to this https://instances.mastodon.xyz/ public listing of instances which chose to be displayed.

The Internet is a big place — universe-big — so there’s room for another social media platform, but the Internet can also feel like a very small place, one that targets the weak and consumes them quickly.

Mastodon cannot live on hype alone.

Mastodon has potential. It can be easy to use and there are clearly a lot of people trying it right now. But its weaknesses are glaring. It’s more project than product. Unless someone buys the code off Rochko today and consolidates this mess ASAP, it can’t survive.

This implies that succees can only be achieved if you are throwing money at a project. You have facebook. Companies and other investors have decided to throw money at it, yet it is a threat to democratic systems and human rights. Still people use it. You an throw money at it, but what makes a good project is passion and community interaction. I don’t see a future where facebook opens up contributions to its core code by volunteers with no hidden intentions.

And, no, Mastodon cannot live on hype alone.

I fully agree. But does it have to grow that much? Federated social networks do not scale to world population sizes. Forms of distributed networks can achieve this. Federation still features the same trust issues (points of authority) as centralized networks. The advantage of federation is that you can be transparent about what you publicly state you do, don’t do and if people don’t agree they can move on. I would not say we are at the point where anyone can run a server. Among SysOps knowledge this requires skills and time to debug software, failures etc which normally happen in operation of any software on any network. A small step in the right direction would be a Guix package for Mastodon and system services for it on GuixSD, so that it can be as easy as putting a couple of configuration lines into your local system configuration, run guix system reconfigure, reboot and have a a functional Mastodon node!

Remember Peach? It, too, was a fun social network that let you keep track of friends and share funny images. It was a crappy version of Snapchat without all the sexting.

Peach enjoyed a solid two weeks of being the hottest thing on the social media planet. Then, as I predicted, it fizzled. The last time we talked about Peaches and technology was when Apple changed the peach emoji so it no longer looked like a butt (and then changed it back). No one even mentioned the now mostly forgotten Peach social network.

Late last night on Twitter, we quickly reached the same conclusion: Mastodon is more Peach than Twitter, Less Snapchat than Path.

I was already ready to move on. So was Shatner.

I suspect thousands of other Tooters (blech!) will soon do the same and Mastodon will lay down beside all other other fossilized social media platforms and fade from existence.
[null, {"document_url": "https://n0is.noblogs.org/", "unformatted_src": "https://n0is.noblogs.org/files/2017/04/networktypes-300x208.png", "src": "https://n0is.noblogs.org/files/2017/04/networktypes-300x208.png", "formatted_filename": "networktypes", "alt_text": "network types in a picture: centralized, decentralized, distributed. copyright or copyleft unknown, assumed to be public domain.", "rendered_width": 300, "rendered_height": 208}, null, {"document_url": "https://n0is.noblogs.org/", "unformatted_src": "https://n0is.noblogs.org/files/2017/04/federation-of-toots-in-mastodon-300x163.png", "src": "https://n0is.noblogs.org/files/2017/04/federation-of-toots-in-mastodon-300x163.png", "formatted_filename": "federation of toots in mastodon", "alt_text": "diagram: federation of toots in mastodon. created by https://techn.ical.ist/@vhf", "rendered_width": 300, "rendered_height": 163}, null]