PROJET AUTOBLOG


Okhin

Archivé

source: Okhin

⇐ retour index

My lover is dying

mardi 20 août 2013 à 18:22

My lover is dying

In 1997, when I was in high-school, I fell in love, like a lot of people of my age it seems. I fell in love with the internet. At that time, Google didn't exists and I remember using altavista, coding in HTML and PHP3 (and using torch and diggers on a perpetually under construction website).

I fell in love with someone who was there to talk at all time, to exchange with, to contradict me, to teach me, to share secrets. I was more or less on my own at this time, and I really think that without Internet I wouldn't have made it alive until now.

More than once, I've felt the silent but comforting presence of them, just in there, iddling quietly on IRC chans, or telling jokes about life and math, or trolling just for the sake of it. I mean, it's not the people on the internet that I am in love with, they're just people and there's a lot of them around me already.

No, I fell in love with internet. I dedicated them a bigger part of my life, spending night with them, days, weeks. Most of the people I know today I wouldn't have known them without Internet. I've been in wonderfull places, and in weird ones. I've done and dreamed of things you wouldn't expect, and they're the reason for what I'm vaguely balanced today.

But they're dying. It's a degenerative disease and it's too late now for a cure. They're dying. Internet is dying.

Diagnostic

For at least 20 years, cypherpunks have tried to reach out, they've diagnosed the disease at a time it would have been possible to cure it. Cryptography for anyone and anywhere, full decentralisation, free software and hardware. Those are the cures to stop the infection.

It worked, for a time. While my lover wasn't everyone's lover. I can live with that, really. I'm not exclusive, and I can fully understand that a lot of people loved Internet. What I do not accept is people hurting the ones I love. But that's what you did.

You've created cancers. Degenerative and centralised amount of data for no reason. You've prostituted them and twisted their mind to think that they must earn their right to live. You then told us that Internet - which I loved, even at this time - has became ill and contagious and that they must be kept under quarantine for our own safety.

You protituted and severed parts of their body just because you were scared of them. You didn't tried to understand them and you've done it. You've bought the hype, and you wouldn't listen at the cyperpunks because they were dramatic. You've raped the Internet, you've subverted them and, really, I'm angry at you.

You'll argue that you didn't know. That you just wanted to be their ‑ or my ‑ friend. But you didn't respected them. You didn't want to learn the way they work, you just wanted to put your claws in their flesh to get wat you wanted. You wanted to not be offended, you wanted to not be insulted, you wanted to be safe.

But there's only one way to be safe, it's called privacy. Solitude, intimacy, anonymity are keys to privacy and you've destroyed it. Without privacy, you're under constant monitoring, you must behave because someone will watch you and consider you as a threat and so will endanger you.

Without privacy, there's no safety. I was able to be lonely with Internet back in the time, it's getting harder because you're raping them. I was able to have some intimacy, using mail or IRC with encryption, but you're ruining it by stocking a pile of data in the cancers GAFA's are. I was able to have any identity I wanted and built characters for the sake of it, imagining different life or discussing with other being without giving them any personnal details, but the social non-networks you massively use are destroying that also.

This is the end

You accepted to kill your privacy and by doing so you killed my right to it The privacy provided by SMTP is now dead, even with strong encryption ‑ which you're still not using. Because a rogue agency in a former state decided so, because they had the opportunity of doing so, because you wanted a whore to manage your life instead of enjoying the Chaos of it.

It's not Google, Facebook, Apple or Amazon who's responsible. It's not the USofA or the NSA, neither the USGC or the DGSI or any other secret services who's spying on anyone ‑ because they are spying on you, it's a fact. No, it's you and you're egotic need of control.

You couldn't understand my love for Internet. You couldn't understand them, and you wanted it because us ‑ Internet's lovers ‑ were happy and enjoying ourselves and that was scaring the hell out of you.

Email is dead since Lavabit and other privacy minded email provider are closing. Riseup will follow one day, they're fighting a lost battle. Even the traditionnal media can't win those battle since investigative journalists are being threatened all over the world.

Private communication now relies on the nerves connected to those tumors. And you're happy with it, you have no privacy anymore. And you have no safety.

There's nothing to be done, this is an uncurable disease and my lover will die. I will stand by their side until the end. I will fiercely fight for them because that's the only thing I know to do, because I can't imagine a life without them, but in the end they'll die.

No technical trick will do it. Encryption just grants you time. What grants you privacy is trust, decentralisation and freedom, which you destroyed. You should prepare for dark times because they're coming.

The infocalypse is not nigh. Not anymore. It is the infocalypse right now it's too late for avoiding it. Drug, Pedobear, Terrorism and Organised crimes have already been summonned and they now rides among us, destroying everything they can.

If you really want to save Internet, then help me ease the pain. Go work on decentralised service, provide services to friends. And prepare yourself for the death of Internet, because it's happening right now.

There is no hope

lundi 10 juin 2013 à 16:29

Opening

So, my post about software has generate some comments. The most detailed answer I can find until now is the one from Ju (sorry people, it's written in baguette's speech). Go and read it, it's interesting.

So, you are telling me:

But, what if I want to learn, but do not have the time? You won't help me!

First, that's not what I said. I said that I won't install you any software, because you must do it to learn. If you need to asks question, go ahead, and asks, we even have axioms for that on IRC and other places:

Don't ask to ask, just ask

But, a more important one:

Think before asking

Yeah, I won't help you if what you're asking me can be found on seeks or in less than 10 second of reflexion. I will not think for you. I will not make your life better, you will. Well, you will later, for now, you're about to jump in the abysmal depth of knowledge. I know that it can be intimidating and if you are not scared, well, it means you're knee deep into it.

Take the red pill. And the blue one. And the yellow one too.

Learning and understanding will eat your time and soul, it will forces you to change your perception of the world around you. Knowing how it work and how you can change it will not makes your life easier or nicer. It will makes you see how fucked things are.

I wasn't in the protests last Saturday to say no to ACTA. First, because if protest could actually change things, the things will be in motion motion now, the Greek government had refused the ultimatum we gave him, people of Homs won't be under heavy ordnance and the asshole at the head of the different countries will be demised. Second, because a lot of people are saying no to ACTA and that did not make government stepping out of the things they do not understand.

I do not want to takes you by the hand, walking in the My little poney fields, with cloud made of candy and a sunshine smiling at your face. We do not live in cuddlebears kingdom.

There is no hope the world will get better anytime soon. If someone tells you anything different, he's lying to you. Hope is waiting passively for things to get better. Hope is the same thing as prayer. Hoping is what government and mass medias are giving you to keep you under control.

So, forget about hope. That's not hope that brings Syria in this state, it's the fact that people actually wanted to do things and to change their world. Yeah, believing that things will get better probably helped them to go into the street and to start changing their environment.

There is no chance things will get better if you think they will, and if it's the only thing you do about it. ACTA will not pass, but the media industry and governments will come back with another thing to crush on us. It's an endless battle which will not end, or one we can't win.

I do not want to tell you lies. You do not need hope, you need to stand up on your legs and to walk in whatever direction you want. And you do not need me for that.

Broadcasting news

lundi 10 juin 2013 à 16:29

A little introduction

Everything started from an non-planing stuff done on #opsyria. To give you some context, we have a bot there, named ii, that's help us with information management.

Birth and death of a bot

ii's birth dates back to the second phase of opsyria, the phase were we go wild and try to get some contacts with Syrians. It was first a greetings bots, telling new comers some safety tips in Syrian (because we still do not speak Syrian).

Then, we fired up a tweeter account, and so, we add twitter functions to ii. And status.net also (for our status.net platform). And then, we added it the possibility to repeat interesting stuff ii saw on those platform (publishing on IRC the thing he saw in its following list on both platforms).

Then, we had some problem with the micro bloging thing. 140 characters is short, especially when you use arabic and weird unicode chars. So, we build a news functionality, that leads us to our news website where we still publish real time news form the ground, due to our contacts help.

After that, things went crazy. Lots of videos were posted online and we started indexing them. here came the videos functionality (and later on the pics one, same thing, but with pictures) and we started building an index of all videos related to Syrian events.

So, this is how we built on 6 month, our database of information, with dates, places and comments of each videos, pictures or news we can find. We build different websites using these and, one day, we realized that, it could be nice for preservation of the data, to extract them from the website they are located to be sure they will always be online.

We had fears that Syrian officials (or Assad's supporters) could manage to get youtube or facebook accounts closed, and then have the videos unavailable and lost for everyone.

The archiving idea

At the 28C3, we already had a somewhat big databases. And a script that could download each video, and stores them on a website, as 'static file' with a non-friendly user interface (apache directory listing) located here: http://syria-videos.ceops.eu/

Some journalists just told us that it was nice, but not really usable (no way to easily parse stuff, or to find events related to one particular date, and so on). So, we started to think about how we could do that.

Parsing it by hand was out of questions, there was more than 600 videos, that is more than 4GB of files to watch, and some of them are harsh and crude to watch. Besides, we're still unable to understand arabic in the text, so the only data we could use was the one in the flat files provided by ii.

Let's compile html

And, at the time, I was playing a lot with ikiwiki, which is a markdown compilation to build static html page. So, I started looking at that. After all, it can generate html5, so it should be easy to add some <video> tag inside a template, generating the pages form flat text is easy to do in bash and then, I just have to use git to push it and make the magic of ikiwiki works.

We will have pure html website, with smart URL, easily mirrorable (hey, no ?static=yes&wtf=ya&unknownparam&yetanotherfrckingstuff url, just 2012/02/11 for the 11st of February of 2012 events page), with a tagging system and full html5.

This was the concept. And since ikiwiki provides a local.css system, we could even asks gently and harass some designers to have a logo and some design around it (I can leave with pure HTML, but a lot of people do like fancy and rounded stuff...)

Enough talk, do it

So, first, installing what we need. I'm on a debian openvz squeeze kernel and I'm gonna use nginx to serve it. Ineed to add the unstable version of ffmpeg to support .ogv

aptitude install ikiwiki nginx ffmpeg

Th setup of ikiwiki is preety easy to do, I'll paste you all the uncommented line of TelecomixBroadcastSystem.setup:

So, let's start with some naming stuff, the name of the wiki, the mail of the admin and the username of the admin/

wikiname => 'Telecomix Broadcast System',
adminemail => 'okhin@bloum.net';
adminuser => [qw{a_user_admin}],

Since there's no user function available, this should be empty.

banned_users => [],

Where I'll puth the markdown files

srcdir => '/var/ikiwiki/TelecomixBroadcastSystem',

Where ikiwki will put the

destdir => '/var/www/tbs',

What will be teh url of the website

url => 'http://broadcast.telecomix.org',

The plugins I wanna add. Goodstuff is a package with a lot of usefull plugins for ikiwki. The goodstuff plugins page on ikiwiki website will give you more details.

I wanted a sidebar (for hosting the navigation), a calendar (to enable the calendar generation) and a favicon (because they are nice). As I do not want the site to be editable, I deactivate the recentchanges plugin.

add_plugins => [qw{goodstuff sidebar calendar favicon}],
disable_plugins => [qw{recentchanges}],

Some system directory and default that I've kept.

templatedir => '/usr/share/ikiwiki/templates',
underlaydir => '/usr/share/ikiwiki/basewiki',
indexpages => 0,
discussionpage => 'Discussion',
default_pageext => 'mdwn',
timeformat => '%c',
numbacklinks => 10,
hardlink => 0,
wiki_file_chars => '-[:alnum:]+/.:_',
allow_symlinks_before_srcdir => 0,

HTML 5 is nice and fun to play with, we should use it more

html5 => 1,

A link for the post-update git wrapper (that is, once the repo received an update, automatically generates the new wiki)

git_wrapper => '/var/git/TelecomixBroadcastSystem.git/hooks/post-update',
atom => 1,

I want a sidebar for all the pages

global_sidebars => 1,

I want to autogenerate tagpage, and to stores them in the tag/ directory.

tagbase => 'tag',
tag_autocreate => 1,

There's a lot more things to change, but you should have a look at the ikiwiki documentation.

Now, we have to create the various directory ''/var/ikiwiki/TelecomixBroadcastSystem'' and ''/var/www/tbs'', making them writable and owned by the user you're going to use to generate it, and to give ''/var/www/tbs'' permission to be read by the nginx user.

And let(s setup the wiki:

ikiwiki --setup /path/to/your/Wiki.setup file

Let's tweak some templates

So, now, I need some templates to work with the videos repo. One for video, one for pictures (to add a specific CSS class around them), and one for the 'regular' page, because I wanted a logo in top of all of them.

Video template

I added a ''template'' directory into the wiki root (so, //var/ikiwiki/TelecomixBroadcastSystem/template) and I create the video.tmpl file.

The tempaltes of ikiwiki use the HTML::Toolkit system to create the needed templates, and the one I need were realtively simples one. OI think comments are not needed

<article class="video">
    <video controls="controls" type="video/ogg" width="480" src="/videos/<TMPL_VAR file>" poster="/pics/SVGs/tbs_V1.svg"><TMPL_VAR alt></video>
    <p><TMPL_VAR alt></p>
    <p><a href="/videos/<TMPL_VAR file>">Direct Link to the file</a> ||
    <a href="<TMPL_VAR original>">Original link</a></p>
</article>

So, fixed width video, in HTML5, the files must be in a /videos/ webdir and there will be a poster displayed on the video before playing it with one nice logos. Some more links to add context, and we're set-up.

Notice the mime format used here: video/ogg, I want to use really free web format, that will need transcoding (but that's a later problem). The same goes for the pictrues template.

Page template

So, the page template is a huge (and complex) one, so just a patch:

--- templates/page.tmpl 2012-03-07 15:35:45.000000000 +0000
+++ /usr/share/ikiwiki/templates/page.tmpl      2011-03-28 23:46:08.000000000
+0000
@@ -30,7 +30,6 @@
 </head>
 <body>

-<div id="logo"><a href="/" title="Dirty Bytes of Revolutions Since 1337"><img src="./media/868997d1.tbs_V2.png" data-original-source="http://about.okhin.fr/pics/PNGs/tbs_V2.png" alt="Dirty Bytes of Revolutions  Since 1337" /></a></div>
 <TMPL_IF HTML5><article class="page"><TMPL_ELSE><div class="page"></TMPL_IF>

 <TMPL_IF HTML5><section class="pageheader"><TMPL_ELSE><div class="pageheader"></TMPL_IF>
@@ -134,7 +133,6 @@
 </TMPL_UNLESS>

 </div>
-<div class="clearfix"></div>

 <TMPL_IF HTML5><footer id="footer" class="pagefooter"><TMPL_ELSE><div id="footer" class="pagefooter"></TMPL_IF>
 <TMPL_UNLESS DYNAMIC>

The clearfix div is here for the goddamn IE browser (at least, that's why the CSS integrator guy told me). And above, there's the pictures.

Let's build special pages

Sidebar.mdwn

So, the sidebar plugins, grants me the use of a sidebar.mdwn file in the root folder of the wiki.

First, some useful links (back to home, the pure text news and our webchat)

\# Quick Links
\* \[Back to Home\](/index.html)
\* \[News from the ground\](http://syria.telecomix.org)
\* \[Webchat\](https://new.punkbob.com/chat)

What did happened this month

\# This month events
[[!calendar  type="month" pages="2011/* or 2012/*"\]]

And all the page since the start of the year.

\# Events month by month
[[!calendar  type="year" year="2011" pages="2011/*"\]]
[[!calendar  type="year" year="2012" pages="2012/*"\]]

Index.mdwn

Next step is to build a nice index.mdwn page with some speech, the tag cloud and a global map of everything. I'll skip to the interesting parts (maps and tagcloud).

Thepage list use the map directive to find all the page under 2011 and 2012 directories (one per year), that will lead to a list of all the daily pages

# Page list
[[!map  pages="2011/* or 2012/*"\]]

This will go through all of the tag of the page, and do some computational to generate a nice cloud

# Tag cloud
[[!pagestats  pages="tag/*" \]]

Fancyness

I then added a favicon.ico file along with a local.css to the repository, the local.css need to be copied manually into the ''/var/www/tbs'' directory. And now, the basic setup is done.

Commiting

So, now use git to add all those files and commit and push them. Easy to do, that will generates some files into /var/www/tbs/.

Yeepee, now, we need to populate this.

Bashing accross videos

So, I have a list of videos soemwhere here of the form:

2011-12-04 homs/al-meedan http://www.youtube.com/watch?v=-qjNo0uqSM8 Random gunfires during the night

(And yes, sometimes, Arabic characters all over the place). So, I have, date, location (that will be used for tags), URL and some comments to add. Thanks to ii's magic (and the huge work done for month). We already add some python scripts for downloading the video, but, for this kind of things, I wanted to use something I know: bash. It will be split in 2. One half to parse the youtube's hell pages and to download the .webm, this part is still inpython, works well and I was too lazy to rewrite it; the second half will get the video info and add the necessary information to the wiki.

And then, I'll need to transcode it.

So, script. Let's start with some variable, will need them later

#!/bin/bash
# We want to download everything.
export VIDEOS_LINK='https://telecomix.ceops.eu/material/ii/videos.txt'
export VIDEOS_RAW_DIR='/var/tbs/tbs/raw/'
export VIDEOS_OGV_DIR='/var/tbs/tbs/videos/'
export VIDEOS_WIKI_ROOT='/var/ikiwiki/TelecomixBroadcastSystem'
export VIDEOS_LIST=${VIDEOS_WIKI_ROOT}/videos.lst
export VIDEOS_NEW=${VIDEOS_WIKI_ROOT}/new_videos.lst

Let's make some cleaning, and backup, needed to now what's new

<span class="createlink"><a href="/ikiwiki.cgi?page=_-e___36____123__VIDEOS_LIST__125__.old_&amp;from=posts%2FBroadcasting&amp;do=create" rel="nofollow">?</a> -e &#36;&#123;VIDEOS LIST&#125;.old </span> && rm -rf ${VIDEOS_LIST}.old
<span class="createlink"><a href="/ikiwiki.cgi?page=_-e___36__VIDEOS_LIST_&amp;from=posts%2FBroadcasting&amp;do=create" rel="nofollow">?</a> -e &#36;VIDEOS LIST </span> && mv $VIDEOS_LIST ${VIDEOS_LIST}.old

Get the new version of the file list

cd $VIDEOS_WIKI_ROOT
wget $VIDEOS_LINK --no-check-certificate -O $VIDEOS_LIST

Update the git repository (we probably add tags since last time, so new pages) and find the new videos part (a dirty diff, with only the added lines).

git pull 2>&1 > /dev/null
diff -N $VIDEOS_LIST ${VIDEOS_LIST}.old | grep -e '^<' > $VIDEOS_NEW

Loop in all the news videos to add them to the wiki.

while read LINE
do

This is a bash array if you did not know how they worked

        VIDEO=( $LINE )
        DATE=${VIDEO[1]}
        TTAGS=${VIDEO[2]}

Let's split TAGS in different words separated by space not by slash

        TAGS=$(echo $TTAGS | tr '/' ' ')
        LINK=${VIDEO[3]}

This is how I get the same thing than [4:] in python (from 4th fields to the end of teh array)

        COMMENTS=${VIDEO[@]:4:${#VIDEO[@]}}

The date is YYYY-MM-DD in the file, I want it to be YYYY/MM/DD for creating my file in the good place (YYYY/MM/DD.mdwn), like that I have an automagick hierarchy, plus, you can get to /2012/02/14 URL quite easily.

The filename is the video link with only alphanumeric characters, will be good enough for me.

        VIDEO_PATH=$(echo ${DATE}.mdwn | tr '-' '/')
        VIDEO_FILENAME=$(echo $LINK | tr -dc '[:alnum:]')

So, if the directory (which is YYYY/MM) dos not exist, let's create it. If the file does not exist, it means this is the first time we see something for the day. We must create the page, and add some stuff (notably the date of creation must be juked, also we add a nice title). Once the file is create, git add it to the repo.

        # We have only updates which is nice, no need to check if the videos already exist
        <span class="createlink"><a href="/ikiwiki.cgi?page=___33___-d___36____40__dirname___36____123__VIDEOS_WIKI_ROOT__125__%2F__36____123__VIDEO_PATH__125____41___&amp;from=posts%2FBroadcasting&amp;do=create" rel="nofollow">?</a>&#36;&#123;VIDEO PATH&#125;&#41; </span> && mkdir -p $(dirname ${VIDEOS_WIKI_ROOT}/${VIDEO_PATH})
        if [ ! -e ${VIDEOS_WIKI_ROOT}/${VIDEO_PATH} ]
        then
                echo "[[!meta  title=\"TBS - $DATE\" \]]" > ${VIDEOS_WIKI_ROOT}/${VIDEO_PATH}
                echo "[[!meta  date=\"$DATE\" \]]" >> ${VIDEOS_WIKI_ROOT}/${VIDEO_PATH}
                git add ${VIDEOS_WIKI_ROOT}/${VIDEO_PATH}
        fi

Add some tags to the page, along with the video template (one line, really fun), note the .ogv part added to the filename.

        echo "[[!tag  $TAGS\]]" >> ${VIDEOS_WIKI_ROOT}/${VIDEO_PATH}
        echo "[[!template  id=\"video\" file=\"/${VIDEO_FILENAME}.ogv\" alt=\"$COMMENTS\" original=\"$LINK\"\]]" >> ${VIDEOS_WIKI_ROOT}/${VIDEO_PATH}

And now, download the file. I need to add a dot at the end of it, because the download scripts add the extension (without the .) to the file. I download it in a raw dir, where I'll next transcode all the video into the proper format and directory.

        # And now, download it
        python ${VIDEOS_WIKI_ROOT}/scripts/multiproc_videos_dl.py ${VIDEOS_RAW_DIR} "${VIDEOS_RAW_DIR}/${VIDEO_FILENAME}." "$LINK" 2>&1 > /dev/null &

done < $VIDEOS_NEW

Commit al the change at once, and push it.

# While we're at it, just publish the file
git commit -a -m "VIDEO updated" 2>&1 > /dev/null
git push 2>&1 > /dev/null

We're done, just transcoding now, which is pretty easy, and done in another script. Nothing special here, looping across all the file in raw dir to transcode them into the video dir.

#!/bin/bash
# Transcoding a video into ogv
export ORIG='/var/tbs/tbs/raw'
export DEST='/var/tbs/tbs/videos'

for RAW in $(ls -1 $ORIG)
do
        NAME=${RAW%.*}
        echo "transcoding $NAME"
        <span class="createlink"><a href="/ikiwiki.cgi?page=_-e___36__DEST%2F__36____123__NAME__125__.ogv_&amp;from=posts%2FBroadcasting&amp;do=create" rel="nofollow">?</a>&#36;&#123;NAME&#125;.ogv </span> || ffmpeg -i $ORIG/$RAW -acodec libvorbis -ac 2 -ab 96k -b 345k -s 640x360 $DEST/${NAME}.ogv
        rm $ORIG/$RAW
done

Bashing across pictures

Same format as video, so same scripts, almost. Won't detail it, just do sed VIDEO/PICTURE and you're almost done. Also, the dl is done using wget --no-check-certificate.

Bashing the news

Same kind of things, except that I add the timstamp to it, but besides that, just the same thing.

Cronjobs everywhere

I just now need to auto-exec the 3 jobs above, the transcoding and some ikiwki-internal command to update the calendars, I've got 2 cronjobs for that executed every 6 hours

0 */6 * * * /var/ikiwiki/TelecomixBroadcastSystem/scripts/dl_news.bash 2>&1 > /dev/null && /var/ikiwiki/TelecomixBroadcastSystem/scripts/dl_pictures.bash 2>&1 > /dev/null && /var/ikiwiki/TelecomixBroadcastSystem/scripts/dl_video.bash 2>&1 > /dev/null && /var/tbs/transcode.sh > /dev/null 2>/dev/null
0 1/6 * * * ikiwiki-calendar /var/ikiwiki/TelecomixBroadcastSystem.setup "2011/* or 2012/*" 2012

This is the end

Now the wiki auto-build itself. I then just needed to tweak the nginx to suit my needs bt that was really easy to do. I just need to keep in mind that I'm in need of two aliases (one for /videos, one for /pictures) because I did not wanted to commit all the videos in the git directory (that eat a lot of space), and to tell it that .ogv aare indeed video files.

server {

        listen   80; ## listen for ipv4
        listen   [::]:80 default ipv6only=on; ## listen for ipv6

        server_name  broadcast.telecomix.org;

        access_log off;

        location / {
                root   /var/www/tbs;
                index  index.html index.htm;
        }

        location /pictures {
                alias   /var/tbs/pictures;
                autoindex off;
        }

        location /videos {
                alias   /var/tbs/videos;
                autoindex off;
        }

}

And I just need to edit the mime.types file to add those line at the end of the file:

    video/ogg                             ogm;
    video/ogg                             ogv;
    video/ogg                             ogg;

That's it, everything worked fine now. A final thing was needed, to spread it easily (and that's why I wanted static pages), ease the process of mirroring. The best way to do this is to use rsync in daemon mode with three modules read-only.

Installation of rsync is piece of cake:

aptitude install rsync

You then need to enable it in debian, for this, editing the file /etc/default/rsync is the way to go. I wanted to throttle it down and to keep it nice on the I/O (because I already have too much process that eat my cpu like, transcoding), so I've enabled those options in the same file:

RSYNC_ENABLE=true
RSYNC_OPTS='--bwlimit 200'
RSYNC_NICE='10
RSYNC_IONICE='-c3'

And then, in the /etc/rsyncd.conf, I've added those modules

max connections = 10
log file = /dev/null
timeout = 200

[tbs]
comment = Telecomix Broadcast System
path = /var/www/tbs
read only = yes
list = yes
uid = nobody
gid = nogroup

[videos]
comment = Telecomix Broadcast System - videos
path = /var/tbs/videos
read only = yes
list = yes
uid = nobody
gid = nogroup

[pictures]
comment = Telecomix Broadcast System - pictures
path = /var/tbs/pictures
read only = yes
list = yes
uid = nobody
gid = nogroup

ANd that's it, people can now duplicate the whole thing on a simple web server (they just need space) without anything else on it that serving webpage.

Telecomix

lundi 10 juin 2013 à 16:29

Precompiling

It's been almost two years that I'm hanging with the Telecomix crew of amazing people/jellyfish. And I think it's the first time I'm writing about it. I've discussed it a lot recently, mainly because a lot of media here wanna speak with us, also because I heard of, at least, two more long term project about Hacktivists.

Also we have an interesting discussion inside the 'core' team, about the whereabouts of the cluster, along with more and more interesting questions coming from people.

Hence, this post. And, well, since Telecomix is the sum of the people inside it, it is not an insight of a unique mind, but more a part of this hydra of jelly.

Follow the white rabbit

One question I have a lot is how do I ended up in Telecomix. The answer I generally do is that it just happened. I was not looking for entering such a group of people. I do not think any one with a sane mind, would voluntarily enter a group that will eat your time and nights, will put you in front of a lot of unwanted attention (and I'm not speaking about the media here), will raise the expectation that people will have about you and will confront you to tough choices (going to sleep or having people killed).

If you put it that way, no one will accept it. Besides some wannabe heroes maybe. And sociopaths (but heroes are sociopath anyway).

So, I ended up in Telecomix at the same time I decide to enter a hackerspace. I entered in this place, meeting a lot of people. The Telecomix name was already in the media (due to Hosny Moubarak shutting down the intertubes in Egypt) and I was helping with some Streisand already.

I think you do not enter inside Telecomix. It's not a place mainly because a place would let you leave it, so you cannot neter it. You do not join it for it has no registering system (and anyone telling you there's one might want to lure you, but that's not the point, not now). You just evolve into something that is Telecomix. Your mindset change, and evolve into it.

So, you just wake up one day, and it's like: 'OMG!!!!!! I'M TELECOMIX NAO!!!!!'. Once the caffeine is getting slow into your organism, and after the morning passed, you just found that all people in there are more or less normal people.

There's no crypto-anarchists, speaking in tongues, bashing everyone that do not use strong crypto system, and crypto social conventions; there no supra-intelligent AI that tries to take over the world; there's no pure-hackers that feeds on data and caffeine; there's no one that want to save the world.

Enter the Matrix

Well, that's partly true. We do have bots that can be quite schizophrenic and sociopath some time. There's a lot of different and unique person, from all over the cyberspace. There's sociologist, computer scientist, slackers, hackers, beer makers, paranoiac and conspiracy theories adept, politic-minded and a-politic ones, and I suspect some aliens to participate in the cluster.

Some might wonder what's a regular day in a hacktivist group. I don't know, I can barely speak for mines and, well, a lot of people will be disappointed I guess. Have you seen the movie Hackers? No? You should, it's fun. But it's not like that.

I spend a lot of time simply sitting in front of a computer, starring at console-like screens (and yes, I do take pleasure having a computer that no one else besides me can understand or use). I do that for my work, and for my hobbies.

If you can get behind the screens, you'll see that I'm connected on a lot of chat rooms, not saying that much quantity of things. Even when writing stuff, either for work or, like this piece of text, for my personal use, I'm on a console. Sipping some black coffee, while not noticing that it's two in the morning, you can spend a lot of time chatting with people, while writing some software, scanning some infrastructure, or just crawling the intertubes. That's what I do all day. My job requires it, I do enjoy it, and I'm doing it with the Telecomix crew.

This is my daily routine. Waking up too late, spending way to much time on IRC and intertubes, spending not enough time with people around, going to sleep too late. And hanging around in hackerspaces and conferences also, to make things and to exchange knowledge and skills with people in the meat space. Oh, and playing a lot of games (pen and paper RPG, video games, etc), and spending time with the media when they ask for it.

So, you see, I have a kind of regular life. I'm not crawling undercover in highly secured area to steal a computer, I'm not hacking through governement systems just to find your credit card. I'm just trying to find new way to let the data flow, because that's what matters to me.

Meet the cluster

Asking an agent what is Telecomix will get you in an abyss of perplexity, for none of us have the same definitions. For one, we do asks this questions ourselves quite a lot, and the answer still changes and we have no consensus (but we're not looking for it).

We agreed on the fact that we're not an organisation, meaning we have no identified head, agenda, plan or funding. We believe we are a too much centralized acentric cluster. Why too much? Because people rely on us instead of trying to build their things. Or at least, it is the perception I have from the inside.

We can do a lot more of thing if we had 35h a day and/or a way to work for Telecomix as a full-time worker. But then, I think we're gonna loose a lot of fun. And that's the important part in Telecomix. The fun. We're in here to have a lot of good time, doing things we like, things that are important (like decentralize the planet), but you can do that at this rhythm only if you have the opportunity to laugh and having fun.

This is the part where people can feel uncomfortable. We're not changing the world because we must. Hell, who the fuck are we to think we must change the world? The only one that can do that is you. We're changing the world because it's fun. The most amazing things we've done, we've done it only because we've enjoyed doing it.

I do enjoyed working on VPN and darknets issues for Syrians. I haven't done it because someone had to step-up, this is not my fight and this revolution belong to the Syrians. I've done it because I wanted to learn about it, I wanted to tests how communication networks can works under harsh conditions. When the network was attacked by Hosni Mubarak, the cluster just tested if we could work using the old lines, and how to spread it.

We just having fun with weird and unexpected situations, because if we were doing it because we thought we must do it and that no one would step-up, we will burned ourselves.

The hardest lesson

And this is hard to learn. When working with a group of people where there's always someone connected and discussing interesting issue, while helping people through the world trying to communicate and getting arrested and probably killed for having done so, you'll go through ugly mental states. Caffeine and stress doesn't mix well, if you add sleep deprivation you'll go technical.

The strength of a cluster is redundancy. Working with so different people, working on so different topics (from ham-radio, to darknets, to drones, to ACTA) grants you the possibility to just leave and disconnect.

You won't feel comfortable, especiallay when there's live at stakes. But you'll be up to no good after 36h of wake, filled with caffeine and alcohol and Cameron knows what. You need a life out of the cluster, or you'll become a bot.

The strength of this small group of hacktivist (we're 220 connected on #telecomix at the time of writing this) are the differences of its members. We often disagree on a lot of topics, but that's not a problem, we're in a doocracy and if I want something to be done, I just need to do it myself. And we have a lot to learn from the ones that are different.

Living with people that shares your ideal, and all your opinion, is boring. We had some crisis, and we'll have more of them because that's how a chaotic and unplanned system should grow.

Execute

And we have no plan. We have no agenda. We have some back channel that exist mainly for technical purposes. Those purposes includes shouting your rage about someone, hopping that someone will get agree with you, finding that you're alone and that you're an asshole and a bastard and then just calm down, find the /ignore command again, and going back to normality mumbling some things about cthulluh returns or equivalent.

The thing is, I perceive Telecomix as an idea. A powerful, always changing one. Or as a virtual bar, where you'll have free virtual drinks, served by nice-looking waiter, waitress and octopus, all being virtual. But you've got the point. Or not. I do not care.

I'm not sure I've been anywhere with that, but I think I've enjoyed writting it. That makes me wonder if you'll have fun reading it. Not sure it makes sense.

Let's git push this for the sake of it.

Achievement Unlocked

lundi 10 juin 2013 à 16:29

Yeepee

http://streisand.okhin.fr is, according to Mr. Claude Guéant, French Minister of Interior Affairs a website that must be blocked along with https://copwatchnord-idf.org.eu (yeah, I know, they must learn how to do SSL) which is a copwatching website that has been previously censored (with a different domain name).

I need to add that I'm not a full supporter of this copwatching website, I do not like the tone of it and, while I think copwatching must be done, I do not think this is the best ethical way to do it.

So, the assignation is here and the lawyers of the main ISP are currently fighting it.

The funny part of this assignation is the §2.1.2 (page 6) where they said that collecting public information without the consent of the person concerned by those information is a violation of the 6th of January, 1978 law about personal data. Which is the case. But it's also the case of almost all of the 'official' police files (as the CNIL [FR] repeatedly told them), and I'm not speaking about the shadow file that most probably exist.

The worst part is that, beyond the 34 mirrors listed (mine is the first one, Wooooot!!!), Mister Claude Guéant do want that all the ISP must extend the blockade list dynamically and without asking further details to a competent authority (so, a judge).

The way they'll do that will probably be a DNS blockade. I'll probably move my domain name to something else when it won't be available. The funny part is, that my personal emails and calendar are hosted on the same domain name.