Blogging again, question mark!

Funny how things work sometimes. I neglect this blog for a couple of years and of course it gets hacked, as outdated WordPress does. Luckily I discovered the defacement within hours, moved the site over to a new server and did some quick maintenance. While updating, re-uploading stuff and poking around old posts I get inspired to write this new post. The proverbial creation within destruction is doing overtime here. It’s almost midnight.

I’ve been busy building SatoshiPay, starting around the end of 2014. It’s a fun ride and we are only getting started. Growing the idea into a company kept me pretty occupied and not updating my beloved blog (est. 1999) was the smallest thing I neglected. Part of creating our nanopayments empire was releasing a pretty sweet WordPress plugin. It allows easy monetisation of content and I might do some more dogfooding here in the future.

Screenshot of my site from earlier today. A bloody cat with headphones hacked my blog?!

OK, back to the “hack”. Somehow the “attackers” gained access to files that are writeable by the web server and replaced one single file: index.php. Obviously, I blame the Russians! Possibly with the help of some North Koreans. The previous server being an old PHP box, I didn’t even bother looking into the root cause of the breach, but abandoned it faster than you can say “who is still using PHP”. Turns out half of the world is, so I will keep this site running on WordPress for now, but on a fully managed web hosting instead.

I had to throw away the nice white and green design theme I created 10 years ago, because it was outdated beyond repair. Big surprise there. I went for the 2017 standard WordPress theme and will most likely not modify it in the near future ever. I uploaded a few travel photos of mine, and if you hit reload on the start page they will randomly appear. Enjoy! 🙂

Oh, for people that don’t follow my Twitter: I actually did some SatoshiPay related blogging on my Medium recently. But unfortunately Medium doesn’t have a plugin or extension strategy SatoshiPay could exploit. So there, good old open source workhorse WordPress it is. Clip clop and neigh! 🐎

Aaaaand, post! 💥

Beatcoin at Disrupt Berlin 2013

Just in case you are wondering what I am up to these days, read Beatcoin Is A Music Jukebox Hack Powered By Bitcoin Micropayments. 🙂 Well, actually this was all created within the last 24 hours by a team of 5 and I only played a relatively small part, working on the Android app and doing some minor design work.

To read the rest of this article, I am asking you to pay a small fee, via SatoshiPay.

A tropical London

imageLast night I arrived to Hong Kong. For my way into the city I decided to take the bus – a slooow magical carpet ride with lots of bumpy stops on the upper deck of the cheapest option, the local “tower cruiser” line E21. It reminded me of my time in the UK a lot: exact same buses, road signs, round-abouts, people from all over Asia getting on and off all the time. But in a place that has palm trees instead of weeping willows. Bewildering.

imageTo get to Hong Kong I took my first flight on this trip. I would have preferred the ferry to Qingdao again, but because  it is no longer possible to get a China visa for tourists in South Korea and I wanted to go to a warmer climate I had not other option. If you look at a map you realise I was stuck, sandwiched by water and countries with difficult-to-get visas.

Green politics in South Korea – File Not Found

Since I am spending some time in this lovely country I looked into connecting to my environmental activism roots a few days ago and checked out what’s going on with tree huggers in the Chaebol kingdom.

It came as a small surprise that green opposition politics don’t really exist here or are at least gravely underdeveloped for a country with recent annual GDP growth around 5%, dramatically growing energy needs and ever increasing urbanisation – a country that is member of the friendly G20 and that features beautiful nature all around.

There was an attempt to establish a Korean Greens party starting in 2003, which failed in 2008. Right now the party is re-establishing itself, after being terminated yet again following a meagre 0.43% result in general elections earlier this year. It looks like the general public in South Korea has no interest in a green party. Now, why is that?

It appears that the current government lulls the population with plans like Green Growth (which Green Korea has solid criticism on) and tries to silence foreign critics of their nuclear energy strategy by simply not allowing them into the country. Details on the recent Greenpeace activist deportation also mention a 30% budget increase to more than $10 million USD after the Fukushima disaster for KONEPA, the South Korean agency for promoting nuclear energy with faces of playing children. This money will most likely not go into spreading information about incidents like the recent shut-down of two reactors in the south of the country on 2 Oct 2012.

The Energy Korea portal aggregates an interesting mix of general environmental news, including critical Greenpeace reports and at the same time greenwashes fossil fuels and nuclear energy, both of which -oops- the maintainer of the site, Daesung Group is heavily invested in.

However, there are people working on change for the better, for example prize-winning Yul Choi, a white-collar activist involved in various South Korean environmental projects since many years. Aforementioned Greenpeace Korea twitters daily, organic farming definitively exists and the Asia-Pacific Economic Cooperation Virtual Center for Korean Environmental Exchange (catchy name!) helps to flog off green technology. Friends of the Earth Korea also seem to be doing a lot of things including information centres and an organic online shop, but unfortunately don’t have an English website at the moment.

Also you can contribute by either getting involved with existing groups, or for starters by signing the Nuclear-free Samcheok petition. 🙂

When writing this I relied mostly on websites written in English. If you have pointers to websites in Korean or other languages, please send them to me and I will include links here!

Makerplatz live documentation

A week ago various “makers” from around Moritzplatz in Berlin Kreuzberg hacked the public space surrounding them and celebrated Makerplatz. During two days dozens of micro events and performances took place between different locations in the area. To capture the decentralised nature of Makerplatz, to document and to give orientation while things are happening throughout the day, performer Brina Stinehelfer inspired a live internet broadcast performance.

Following the everyone-is-a-publisher spirit of the early internet days a DIY set-up was quickly cooked up using available technology: A smartphone with a free live-streaming app, the app’s website repeating and archiving the streams and the Makerplatz website to announce content. Done. The videos were played live on a battery-powered mobile info point and projected in the Betahaus café. All what was needed now was Brina to walk around and report live. See the 83 videos she took at qik.com/makerplatz.

Making Of

Initially I was not even going to be at Makerplatz, but invited by Judith of Trial&Error and lured by free food I hung around a preparation meeting hosted by Platoon in Mitte three days before the event. Suddenly I found myself in a discussion about wireless mesh clouds on Moritzplatz and video streams from mobile phones. I decided quickly that I want to be part of the performance, shuffled around my travel plans a little and agreed to give technical support on site.

After a quick evaluation of alternatives the centrepiece of the broadcast became Qik, a freemium live video sharing site with apps for all major mobile platforms, recently bought by $kype. We used a recent Android phone by HTC with 2 cameras. Once the app was installed and a Qik account was created we could already record video on the phone and view it on qik.com a few seconds later. We tested with a free Qik account first, but it’s limited to 20-something clips, so we upgraded to a free premium trial. Note to self: Don’t forget to cancel premium account in 2 weeks from now.

On this particular phone a live broadcast was lacking video and fluent audio when viewing it on qik.com during recording. But once recording was stopped and the clip was completely uploaded, sound and video were fine. Other Android phones had no problem broadcasting video while it was being recorded, so you might want to try different handsets and see which one works best for you. Also make sure to share videos publicly by tapping the padlock in the record screen to open it, otherwise you won’t see the videos on the public channel. This was a gotcha for us a few times. 😉

Brina’s phone was connected to the internet via roaming between 3G, HSDPA and wireless, which worked out quite well. The screen at the mobile info-point however was relying on a wireless connection of a café at Moritzplatz, which faded away in the afternoon. Next time we’ll make sure to have a USB dongle for mobile internet and then be able to move around independently.

On the morning of the second day I wrote a small HTML page (benn.org/makerplatz) which plays the latest video from the qik.com/makerplatz/latest-videos RSS stream when loaded. I am using jFeed with its PHP RSS proxy for parsing the feed. Due to the lack of JavaScript events fired by the Qik player and missing playing time in the RSS feed, the page simply refreshes every few minutes to play the next video if it’s there. This is less than ideal, but it’s the only solution I could come up with in the little time I gave myself for this. Initially I tried using the Qik JavaScript API, which proved to be pretty useless due to cross-domain security limitations, and I highly doubt that anyone ever successfully implemented it. A friendly email to request an API key still hasn’t been replied to. In summary: Forget about the Qik JavaScript API.

Yay, that was a fun 3 day hack. I wish I could have done this using free/open-source technology, but I’ll leave this for next time. 🙂 Thanks to Judith, Brina, Manuela, Jay, Marcello and all other makers at Makerplatz! 🙂

Fair PC mouse project

Yesterday I was invited to join some friends visiting the Good Goods trade fair about sustainable consumption here in Hamburg. Next to the usual suspects such as clothing manufacturers, financial services vendors, energy traders, governmental organisations, publishers, food producers and about half a dozen different organic lemonade brands (samples, yeah!), my personal highlight was the tiny booth of PHeFE (de). Phefe is the ambitious project of researcher Susanne Jordan, aiming to create fair (as in fair-trade) alternatives for consumer electronics, starting with a self-designed computer mouse.

Phefe continues where Goliath corporations fail to deliver again and again, to go beyond labelling energy saving and recyclable devices as “Green IT” and make the entire production of electronics a process that respects basic human rights. As an example the documentary Blood in the Mobile illustrates vividly how mining minerals used in mobile phones is directly linked to local wars. But also sweatshop like labour conditions in product assembly lines are very common, with Foxconn (Apple, Asus, Nokia, Sony Ericsson) controversies unfortunately only being the tip of the iceberg.

The fair PC mouse is not yet available for purchase, but production is planned to start in 2011. So look forward to the Phefe mouse becoming what coffee was to fair-trade foods and hopefully initiating a paradigm shift in the consumer electronics sector. I will keep you updated!

Phefe and Blood in the Mobile are supported by  Make IT Fair, a campaign by several consumer watchdogs and other NGOs – well worth checking out. Wow, things are happening! 🙂

Other Good Goods I like:

  • Nabu environment phone tariff (de) – a bit expensive compared to other discounters, but a good idea, will stay with my current provider – English summary
  • Biobob (de) – organic fruits crate to your office, met one of the founders, lovely people, will order there next time
  • Next Hamburg (de) – participatory city planning, fresh approach, I filed a complaint about run-down cycle tracks
  • Glore (de) – organic clothing, I got stuff from their Karoviertel shop a month ago

My first glider flight

Today a dream of mine came true – I was passenger in a 39 minutes glider flight! We were lucky with thermal updraft and reached 1800 metres within a few minutes. “Yeehaa, this one is like an elevator!”, Bernd, the pilot cheered while spiraling us up into the sky.

The tiny airfield in Pinnow near Schwerin/Germany is just minutes from the house I grew up in. When I was young I spent many weekends watching the gliders go up and lying in the grass to get the thrill of them flying extremely close over my head when landing. On competition days I counted up to 50 gliders in one big spiral. My mum and my dad used to fly them as well. Yet I never dared to get onto one myself. Until today. 🙂

I am fascinated by how gliders fly with updraft just like big birds. The glider is pulled up by a winch on the ground, unlinks the metal rope (drops a good bit right afterwards, ugh!) and then it’s up to the skill of the pilot and the weather conditions how long you will stay in the air. Free like a bird. No fumes, no noise.

It’s an art to find those updrafts. When like today there are no clouds that indicate updraft, you need to either find some circling big birds to follow or search for it by

flying one direction until you are pushed up a little. You then need to create a mental image of where the column of rising air stands and spiral up in it. You can also “fall” out of the column. That’s fun! Think roller coaster. 🙂

One of the things that made this trip so unreal is how fast you move around space. You are circling over the old city one minute, then a few moments later you are racing down towards the runway and before you can think you are standing on grass again and hear birds twitter. That seriously messes with your head, man. Well, that and the large quantities of adrenalin in your system I assume.

Enjoy some nice views of my home town from above and lots of whistling and howling in this video that I made with my phone.

Legal Warning

Section 6 Criminal Law Act 1977, as amended by Criminal Justice and Public Order Act 1994 (United Kingdom, applies to England and Wales)

Take notice

  • That we live in this property, it is our home and we intend to stay here.
  • That at all times there is at least one person in this property.
  • That any entry or attempt to enter into this property without our permission is a criminal offence as any one of us who is in physical possession is opposed to entry without our permission.
  • That if you attempt to enter by violence or by threatening violence we will prosecute you. You may receive a sentence of up to six months imprisonment and/or a fine of up to £5,000.
  • That if you want to get us out you will have to issue a claim in the County Court or in the High Court, or produce to us a written statement or certificate in terms of S.12A Criminal Law Act, 1977 (as inserted by Criminal Justice and Public Order Act, 1994).
  • That it is an offence under S.12A (8) Criminal Law Act 1977 (as amended) to knowingly make a false statement to obtain a written statement for the purposes of S. 12A. A person guilty of such an offence may receive a sentence of up to six months imprisonment and/or a fine of up to £5,000.

Signed

The Occupiers

(To be posted at the entrance of a squatted property, also valid if not signed by name)

This states the current squatter’s rights in England and Wales and basically means that the owner or landlady/landlord of a property can not evict you from your squat without going through court, proving that they are the owners and that the last tenancy has ended. Court procedures usually take weeks or months, so once you are in you will have a home for a while. If they try to evict illegally they can end up in prison for 6 months and having to pay £5,000 (currently around €6000) in fines. This makes squatting more or less legal in England and Wales. Sweet.

We have an upcoming court case for one flat in our squat on 3 September 2010. Visiting the Advisory Service For Squatters (ASS) office at Whitechapel today should allow us to get a good defense going. We suspect that the owner (council) wants to save some paperwork by getting an eviction warrant for one flat and evict the other flat while they are at it on eviction day. Which, of course, is not legal..

Until then we will continue to take good care of the building: keep it clean, fix little damages, trim plants in the garden, prevent decay and be good neighbours — while enjoying a free home with a garden in Brixton. 🙂

XMPP: Private XML storage with strophe.js and ejabberd

During the last days I was playing around with a Javascript web chat application using strophe.js. To save user preferences on the ejabberd XMPP server I use Private XML storage (XEP-0049). The specification is pretty straight forward, but due to the lack of a real world example it still took me a while to get it working — hence this post. Thanks to badlop from the ejabberd@conference.jabber.ru XMPP chat room for valuable pointers. Here is how I did it:

1. Make sure mod_http_bind and mod_private are activated in ejabberd.cfg:

{modules,
 [
  {mod_http_bind, []},
  {mod_private, []},
  ...
 ]}.

2. Open BOSH connection to XMPP server (in your Javascript application):

sc = new Strophe.Connection('/http-bind/');
sc.connect('user@example.org', 'password');

3. Build and send IQ stanza for storing data:

var stanza = $iq({type: 'set', id: '_set1'})
  .c('query', {xmlns: 'jabber:iq:private'})
  .c('myclient', {xmlns: 'myclient:prefs'})
  .c('mypreference', 'yes')
  .tree();
sc.sendIQ(stanza);

Replace “myclient” and “myclient:prefs” with your own invented namespace and use your key/value names instead of “mypreference”/”yes”.

The IQ stanza sent to the server will look something like this:

<iq type='set' id='_set1' xmlns='jabber:client'>
  <query xmlns='jabber:iq:private'>
    <myclient xmlns='myclient:prefs'>
      <mypreference>yes</mypreference>
    </myclient>
  </query>
</iq>

Server response:

<iq xmlns='jabber:client' from='...' to='...' id='_set1' type='result'>
  <query xmlns='jabber:iq:private'/>
</iq>

4. Build and send IQ stanza for retrieving data:

var stanza = $iq({type: 'get', id: '_get1'})
  .c('query', {xmlns: 'jabber:iq:private'})
  .c('myclient', {xmlns: 'myclient:prefs'})
  .tree();
sc.sendIQ(stanza, parsePrefs);

function parsePrefs(element) {
  ...
}

Sent to server:

<iq type='get' id='_get1' xmlns='jabber:client'>
  <query xmlns='jabber:iq:private'>
    <myclient xmlns='myclient:prefs'/>
  </query>
</iq>

Server response:

<iq xmlns='jabber:client' from='...' to='...' id='_get1' type='result'>
  <query xmlns='jabber:iq:private'>
    <myclient xmlns='myclient:prefs'>
      <mypreference>yes</mypreference>
    </myclient>
  </query>
</iq>

5. Write parsePrefs() function and enjoy your XML storage! 🙂

Questions?

FOSDEM, meeting Robin Upton

I am so glad to have met Robin Upton at this year’s FOSDEM conference in Brussels. Robin initiated Altruists International a few years back and is doing elaborate non-formal research in the field of gift economies.

While at FOSDEM (where the only other talk I attended was about strophe.js, an XMPP library designed for the real-time web I was playing with recently) and visiting a chocolate factory outlet a bit outside Brussels, Robin, Dante and I mainly discussed his ongoing project Friend2Friend — a possible technical back-end to a fully independent and distributed gift economy. The software is still a prototype, but I believe it is important pioneering work that encourages new ways of thinking about our data, how it is processed and stored.

Robin is a kind and loving altruist and an inspiring thinker with a strong mathematics background. Believe it or not, his black framed glasses are actually fixed with sticky tape, hehe. Please do invite him to talk about his ideas! He will roam about Europe a bit longer and return to East Asia at some point.

Thanks to Petter, Dante and Kasper for connecting us.