Why Richard Stallman doesn’t matter

Too many people have joined the chorus of cacophonous conversations online about booting Richard Stallman from the free software movement. They claim that his social behavior has prevented more people from joining. There are conspiracy theories claiming a hit job by an evil corp. The point that everybody misses is that Stallman’s views on software don’t matter anymore. The FSF should have nurtured and grown new leaders a long time ago, leaders who looked into the future, understand cloud and mobile computing and their threats to a free society. This crisis is a dramatic opportunity to inject new blood in the organization that shaped information technology.

Anyone who has met Stallman in person carries a story of how he made them uncomfortable. He is socially inept, whether incapable because of his Asperger brain or poorly socialized because nobody taught him manners is a moot point. What he says and does in view of other functioning humans can make you sad, amuse you and disgust you. He has mental issues and nobody cared enough about them to help him. That’s the saddest part for me when it comes to Stallman, the person.

When it comes to the organization and the movement that Stallman started, I get even sadder. There, the lack of support for Stallman is less visible but even more damaging.

I had the first inkling that the Free Software Foundation and the free software movement was heading to for a crash when the GPLv3 was being drafted in 2005. At the time, I was leading the Italian chapter of Free Software Foundation Europe and it was clear to me that RMS didn’t have a grasp of where the industry was going. He was laser focused on closing the embedded device loophole, preventing what he called the TiVoization of free software. All around him, not a single voice could argue strongly enough about the Google issue that later would become the *-as-a-service loophole and cloud issue.

That’s because Stallman’s world was and still is, stuck in the 80s: computers are physical devices that users can own and keep in their homes. For that use case, the four freedoms, the definition of source code and installation tooling introduced in GPLv3 made a lot of sense. Nothing else seemed to matter to him. The decision for the Linux kernel not to adopt GPLv3 wasn’t considered a problem and it was often downplayed by FSF leadership.

Right after the GPLv3 came out, Google was relieved they could continue doing business as usual, Linux kept its license and the FSF waged war against Debian and Mozilla. Stallman led the FSF out of the most important focus for the future because he wanted a pure free software operating system for his laptop? Definitely feels that way: he wanted zero binary blobs in device drivers, zero non-free Javascript. His dream of a pure operating system was there, almost close enough to touch. Meanwhile, the concept of computers evolved to include mobile phones and cloud. And those are just evil.

Nobody at the FSF cared about cloud or mobile

Folks closest to the FSF community were so myopic about completing GNU for Stallman’s laptop that nobody did anything about the big picture. I never heard anyone at the FSF ask what it means for a digital society that Facebook has been legally using free software to develop algorithms that modify human behavior. Quite the opposite, the problem was javascript in the browser for apps like Gmail.

Soon after GPLv3 came out, both Eben Moglen and Lawrence Lessig left the FSF board of directors. Moglen shaped the GNU GPLv2 and navigated the v3 together with Stallman. Lessig founded Creative Commons, bringing the concept of digital freedom to art. Both have vision and charisma. Those voices were silenced didn’t resonate inside the FSF. That’s where I dropped too, sadly realizing we weren’t going anywhere with that structure and those leaders.

My impression is that after GPLv3 was ratified, the FSF closed itself in a cocoon of integralism that didn’t help Stallman the person and damaged the movement he created.

For over 30 years, Stallman has been a tireless advocate of a world that hasn’t mattered for the past 15 years. If he had friends at the FSF, he would have been put in a position of doing no harm. Just like in any organized religion the appointed spiritual leader may be crazy but the foot soldiers on the ground in the community know what they need to do to carry out the teachings that matter.

The FSF should have been nurturing such respected teachers. New leaders with deeper connection to the real world could have helped evolve the message of Chief GNUisance, go beyond the dogmas and prioritize the research for new licenses, new definitions for freedom on post-80s computer era, invent new business models for young entrepreneurs, educate the wider public and politicians to prevent the rise of Facebook and other abominations.

It didn’t happen and that makes me sad. The movement that ate the world is also responsible for building the most perfect shackles that society has ever had.

What now?

My dream scenario is Shoshana Zuboff to be invited to the board and elected president of the FSF. The Harvard professor who wrote The Age of Surveillance Capitalism, the most exciting research on the damage to society imparted by Zuckerberg and his spyware cronies at Google. If free software is necessary for a free society then the FSF needs to focus on the algorithms that change people behavior rather than binary blobs in wireless cards.

How to effectively merge free software advocacy with data privacy activism

I have been prodded to read Shoshana Zuboff Surveillance Capitalism and now I tell you to do the same. Her arguments are a perfect complement to Stallman’s GNU Manifesto (1983) and Moglen’s dotCommunist Manifesto (2003). Free software has a good chance to be at the center of the debate around Facebook’s power over democratic societies.

Zuboff’s argument is that the Google and later, Facebook, Amazon, etc feed on our personal data to predict and change our behaviors. In today’s editorial on The Guardian, she writes:

Surveillance capitalism is not the same as digital technology. It is an economic logic that has hijacked the digital for its own purposes. The logic of surveillance capitalism begins with unilaterally claiming private human experience as free raw material for production and sales.

The software behind the tech giant’s walls, whose same existence would not be possible without open source software, has enabled the surveillance capitalists to create systems that can

[…] tune and herd our behaviour towards the most profitable outcomes. Data scientists describe this as a shift from monitoring to actuation. The idea is not only to know our behaviour but also to shape it in ways that can turn predictions into guarantees.

Despite all the efforts to build software that can be “owned” by anybody, subverting copyright, 35+ years of shared innovation:

The big picture reveals extreme concentrations of knowledge and power. Surveillance capitalists know everything about us, but we know little about them.

This is a damning view of what winning for the open source movement looks like. If we won, why does it feel more like failing, like John Mark Walker argued in 2016?

Now go (re)read the dotCommunist Manifest and this passage in particular:

The liberation of information from the control of ownership liberates the worker from his imposed role as custodian of the machine. Free information allows the worker to invest her time not in the consumption of bourgeois culture, with its increasingly urgent invitations to sterile consumption, but in the cultivation of her mind and her skills. Increasingly aware of her powers of creation, she ceases to be a passive participant in the systems of production and consumption in which bourgeois society entrapped her.

Moglen talks about the power of the creators of software, music, poems against the big Disneys of the world. But you could read it in a wider sense: the bourgeois is one who shares her pictures and location and list of her contacts and… on Instagram. The dotcom era has made us all creators. What we create is being used against us by software that we don’t control.

And this passage from the GNU Manifesto:

Users will no longer be at the mercy of one programmer or company which owns the sources and is in sole position to make changes.

The manifesto somewhat predicted this shift in power and nevertheless, this happened. We knew the dangers of leaving software in the hands of powerful corporations and out of reach of digital citizens.

Yet, as a movement we agreed to swim with sharks, like Alessandro Rubini used to say talking about IBM’s first investment in Linux. And the sharks bit us. They may have even enabled surveillance capitalists to thrive, preventing to close the web app loophole during GPLv3 drafting.

We can fix this imbalance problem. Zuboff suggests solutions after warning that the current debate is heading in the wrong direction. Privacy laws are aiming at “data ownership” but it’s a red herring:

Even if we achieve “ownership” of the data we have provided to a company like Facebook, we will not achieve “ownership” of the predictions gleaned from it, or the fate of those products in its prediction markets.

Free software has the chance to get back to the center of the conversation about data privacy and democratic access to knowledge. Much like open source was at the center of anti-trust debate in the first decade of 2000s.

Zuboff solutions require legislation and collective actions to educate legislators. The free software movement has experience with those.

We may never get Shoshana Zuboff keynoting at OSCON (obviously) so how about inviting her to speak at FOSDEM? It’d be the start of a great conversation.

Of course Twitter is not representative of America

A new Pew study finds a gulf between the general population and Twitter users.

This report is interesting because they interviewed actual people. There is one fundamental statement in it but it’s not mentioning a fundamental piece of context.

The one interesting piece of data by Pew is that 10% of users create 80% of tweets, unsurprisingly. Twitter struggled for years on this and only when Dick Costolo came aboard I remember him saying this is a fact and designed the Twitter experience around it.

The most fundamental context worth adding is that Twitter audience is 9-15% made of bots and these bots are programmed to amplify those 10% top users. It’s worth repeating this fundamental fact every time social media channels are mentioned: robots are an important part of them, algorithms decide what’s published, when and what humans see at what time.

Twitter is the dumpster fire near Facebook’s radioactive wasteland.

Source: Twitter Is Not America

OpenStack releases its most important artifact

The strongest legacy of OpenStack Foundation is showing how to do open source at scale, with millions of dollar budget. Going well beyond the garages, the university labs, the funded startups and the small non-profits of the years before. OpenStack its practice on top of past experiences like the Apache way and the Ubuntu community habits. On top of those, the original teams at Rackspace and NASA built a solid fund-raising campaign, business development and marketing never seen before for an open source project.

At the core of all that effort stood four strong principles, today published in a book embedding the practice of open source. These are what makes OpenStack different and as of today, it’s the only place where open source projects get help with their open collaboration practice, beyond IP and events management.

OpenStack was started with the belief that a community of equals, working together in an open collaboration, would produce better software, more aligned to the needs of its users and more largely adopted. It was therefore started from day 0 as an open collaboration model that includes as many individuals and organizations as possible, on a level playing field, with everyone invited to design open infrastructure software.

It was from these conditions that “The Four Opens” were born:

  • Open source

  • Open Design

  • Open Development

  • Open Community

Read the book Four Opens just released by the OpenStack Foundation.

Fornetto publishes to WordPress with Raspberry Pi and Python

Finally I took the time to clean up the Python code that publishes to images from the modified microwave toy to a WordPress site. I’m lying: the code is not clean at all but it serves its purpose… ship it!

In the process I learned a few things about WordPress REST API, Python and the Raspberry Pi. All fun. Python is basically the default language for Raspberry Pi. There are numerous modules to access all the hardware functions of the board and countless examples, tutorials, blog posts, wiki pages, meetups all about Python. The REST API Handbook is the main resource I used.  Many tutorials online were written when the WP APIs were a separate plugin and they seem outdated. The handbook seems to be written with developers working within WordPress, with all examples provided in PHP and Javascript. I ended up writing a brief tutorial on how to create a post with images to WordPress using Python.

There are lots of photobooth applications targeting Raspberry Pis out there. I ended up forking drumminhands_photobooth which seemed polished enough. It’s originally designed to snap 4 pictures at the press of a button, blink a LED and show previews of the pictures on a screen, then create an animated GIF from the snapped poses and publish them to tumblr. Alternatively, publishes 4 independent JPEGs, based on a configuration option.

One cool thing about tumblr APIs is that they have a Python library dealing with authentication and the basic publishing operations. WordPress REST API don’t have anything like that (yet). Even authentication from a Python app requires an external plugin, which is not ideal.

The core of the photobooth app is the function publishing to WordPress:

def wp_make_post(gif, wp_title, wp_content):
        wpupload = requests.post(config.wpurl + "/media", headers=wpheaders, files=gif)
	print "Your image is on " + json.loads(wpupload.content)['link']
	# get the post ID from WP
	wpimg = json.loads(wpupload.content)['id']
	print wpimg
	# prepare the post content in json
	wppost = {'categories':'3', \
                  'title':wp_title, \
                  'content':wp_content, \
                  'format':'image', \
                  'featured_media':wpimg, \
                  'author':'1', \
	print wppost
	# post the json to WP
	wpdopost = requests.post(config.wpurl + "/posts", headers=wpheaders, json=wppost)
displayStatus("Your image is on " + json.loads(wpdopost.content)['link'], 14)

Now every time someone pushes the Start button on the toy microwave, its light blinks and the screen shows instructions while snapping pictures and uploading them.

On the WordPress side, I picked Morphology Lite because of how the home page can be turned into a mosaic of images from the Featured image of the post. That’s it! I’ll update this post once I have enough images from an event.

Be careful about how much efforts you put on Twitter

After many experiments to increase engagement with brands on Twitter, I have collected enough evidence that Twitter is not worth much. From now on, the main focus of my social media marketing efforts will be other channels like Reddit, Hacker News, LinkedIn and other well targeted forums. My Twitter efforts are now down to the bottom of pile, down with Facebook (which doesn’t drive anything for the brands I’ve managed).

Massive increase in acquisition from social, most from Reddit and Hacker News

When I managed the launch of DreamHost DreamCompute, Twitter was a crucial part of the social media mix. We ran a small ad campaign on it with the objective to drive early signups to the cloud. Another ‘organic’ campaign revolved around  DreamCompute’s nomination as finalist in OpenStack Superuser Awards, with hashtag #makecloudgreatagain and a micro-site cloning what looked like a joke towards a political campaign (in hindsight, not funny). The results of the Twitter campaign were impressive by Twitter standards: lots of retweets and comments, DreamHost account gained new followers. But from the business indicators, we got almost nothing: the high Twitter engagement drove little spurs of traffic to web properties and no conversions. I blamed the website for being poorly optimized for conversion and concluded that Twitter can be useful to drive traffic and that call to actions need to be optimized for mobile in order to get business results.

In my next experiment at DreamHost I played with Hacker News. After a couple of attempts, I lucked out and got a blog post on HN front page for a few hours: that drove traffic! Lots of traffic and a much better conversion rate than other sources. I learned that the results/effort ratio is so much higher for Hacker News but hitting the front page is obviously a hit-and-miss.

Fast-forward a couple of years, I started a new social media experiment mix for Zenko . The results are in and LinkedIn, Reddit and Hacker News are a much bigger generator of traffic to our website than Twitter. For example, posts on LinkedIn either from the official Scality account or personal profilestend to have a long shelf life, opposed to the very very short live of tweets. New posts on Hacker News and Reddit are usually short lived, few hours but they tend to drive an insane amount of traffic, even if they’re not voted up at all. Also visitors from Reddit and HN tend to bounce less and read more than one page. The few visitors from Twitter instead have a high bounce rate and rarely go beyond one page visit.

My experience with Zenko and DreamCompute tells me that Twitter shouldn’t be the first social media channel but rather LinkedIn, Reddit and Hacker News are more worth the time. Twitter is something you have to play with and may only be worth it for real-time interactions, like during events to drive traffic to a booth or a speaking session.

Mozilla blew it with the Mr. Robot add-on

I trust Mozilla to do the right things… in general. I trust so much that I agree to share Firefox telemetry data to its server. I trust Mozilla to hold my traffic data, bookmarks etc with Sync. The thing is that I remember being informed of those options the first time I start Firefox on a new machine. Trusting Mozilla and Firefox is a choice I make, even if it’s the default one.

I didn’t like waking up and reading that Mozilla partnered with a TV show and silently installed an add-on on my computer. I don’t care what that add-on does: Mozilla sneaked it in on my computer. I don’t remember seeing any notification upon restarting Firefox, like “Hey, we partnered with XYZ Corp to collect anonymous data and do something great with it” or “Sorry, we just need to make money… It’s all good, we keep everything private as usual and no marketing bozos will bother you… Do you mind not changing the default and let this add-on run?

Mozilla blew it today and as a result, no more ‘Studies’ from me. Just disable them in about:preferences#privacy:

PowerPC (and Amiga) is still around and may one day power your desktop!

Speaking of surprises, an old friend contacted me to let me know of an ongoing campaign to raise fundings to build a Power-based motherboard for a laptop. The association hopes to raise 12,000EUR to complete the design of the motherboard as phase I, and their website lists the ranges for the other milestones. It’s pretty cool that nowadays one can design a whole new system basically from scratch and with such little investments.

While reading the PowerPC Notebook website, I realized that Amiga also is still producing new PowerPC motherboards and Amiga OS runs on them. Quite incredible… Loved that machine.

Would you like to have a laptop powered by PowerPC? Go fund it.

Building a photobooth with Raspberry Pi and a toy microwave

A few weeks ago I found an old first-generation Raspberry Pi hiding in a closet. At the same time I started investigating WordPress REST API at work. I also wanted an excuse to buy a Dremel. Everything seemed to align when I was strolling by the local Goodwill where my wife found an old toy microwave. Perfect excuses assembled, I had to buy a Dremel to fit a Raspberry Pi, its camera and a screen in a toy microwave to build a photobooth machine.

Several nights after, the hardware is ready. I found a used Dremel on Craigslist: great machine to cut the plastic quickly. I carved an opening in the microwave’s front door and mounted the Landzo display on it. For holding the Pi in place, I used a very low tech hack of wood sticks and glue, plus a rubber band. Unfortunately the first-gen Pi doesn’t have mounting holes on its base and I didn’t want to spend more money on a case. Good enough.

The microwave came with buttons and a LED that I connected to the board’s GPIO: the Start button starts the photobooth app, and the LED blinks while taking pictures. There are 4 more buttons that I will probably connect too for something fun, like show a video of actual food being cooked in the microwave… something for version 2 though.

In the next post I’ll talk a little more about the Python code I modified to use WordPress REST API.

Configure Landzo 7″ Display for Raspberry Pi

I’ve started building a photobooth using one of the first generation Raspberry Pi I found in a drawer. More details are to come. Meanwhile, here are some notes to configure the Landzo 7″ touchscreen display.

The display is sold as compatible with Raspberry Pi and probably it is but it didn’t work out of the box. The box comes with a CD-ROM but I don’t have any way to read that old stuff anymore. The landzo.com website doesn’t seem to host the content of that CD-ROM either.

The Pi doesn’t use the correct video modes for the display out of the box so I had to read the documentation. The gist of it is that you need to add a new custom mode to /boot/config.txt as below:

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_cvt=800 480 60 3 0 0 0

If you’re interested, here is how I got to those numbers. I rebooted the Pi in VGA mode (hdmi_group=1 & hdmi_mode=1) and then ran the tools to interrogate the display:

pi@raspberrypi:~ $ /opt/vc/bin/tvservice -d edid.dat
Written 128 bytes to edid.dat

Parsed the file with the edidparser:

pi@raspberrypi:~ $ /opt/vc/bin/edidparser edid.dat 
Enabling fuzzy format match...
Parsing edid.dat...
HDMI:EDID version 1.3, 0 extensions, screen size 15x10 cm
HDMI:EDID features - videodef 0x80 !standby !suspend !active off; colour encoding:RGB444|YCbCr422; sRGB is not default colourspace; preferred format is native; does not support GTF
HDMI:EDID ignored unknown descriptor tag 0x10
HDMI:EDID ignored unknown descriptor tag 0x10
HDMI:EDID ignored unknown descriptor tag 0x10
HDMI:EDID does not yet know monitor vertical range, setting to default 24 to 120Hz
HDMI:EDID failed to find a matching detail format for 800x480p hfp:40 hs:48 hbp:40 vfp:13 vs:3 vbp:29 pixel clock:32 MHz
HDMI:EDID calculated refresh rate is 66 Hz
HDMI:EDID guessing the format to be 800x480p @70 Hz
HDMI:EDID found unknown detail timing format: 800x480p hfp:40 hs:48 hbp:40 vfp:13 vs:3 vbp:29 pixel clock:32 MHz
HDMI:EDID established timing I/II bytes are 00 00 00
HDMI:EDID standard timings block x 8: 0x0101 0101 0101 0101 0101 0101 0101 0101 
HDMI:EDID adding mandatory support for DMT (4) 640x480p @ 60Hz
HDMI:EDID filtering formats with pixel clock > 162 MHz or h. blanking > 1023
HDMI:EDID no known preferred format has been set
HDMI:EDID filtering preferred group has been changed from Invalid to DMT
HDMI:EDID best score mode initialised to DMT (4) 640x480p @ 60 Hz with pixel clock 25 MHz (score 0)
HDMI:EDID best score mode is now DMT (4) 640x480p @ 60 Hz with pixel clock 25 MHz (score 36864)
HDMI:EDID preferred mode is updated to DMT (4) 640x480p @ 60 Hz with pixel clock 25200000 Hz
HDMI:EDID has only DVI support and no audio support
edid_parser exited with code 0

From there I saw this interesting line:

HDMI:EDID guessing the format to be 800x480p @70 Hz

I know the display’s resolution is 800×480 so that has to be my clue for the new mode. The docs gave me the rest.

hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>

Value Default Description
width (required) width in pixels
height (required) height in pixels
framerate (required) framerate in Hz
aspect 3 aspect ratio 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9
margins 0 0=margins disabled, 1=margins enabled
interlace 0 0=progressive, 1=interlaced
rb 0 0=normal, 1=reduced blanking

The next challenge is to enable the touchscreen: the driver is probably in the CD-ROM and I haven’t found it online yet.