The Free Software Movement is facing a dangerous evolution: Free Software Fetishism. For some Free Software developers, adoration of technologies such as vi, emacs, git, POSIX, glibc, linux kernel, etc. has become more essential to their identity than Free Software ideals. They ignore social risks posed by proprietary Web services built by large employers of Free Software developers, as long as their employer sponsors their favourite software or conference. They disregard opportunities that an emerging non-POSIX Web creates for wider acceptance of Free Software ideals, because it is not POSIX nor command line based. And they curse the development of new Web technologies as "diverting community resources to recreate what already exists" yet have adored git rather than contributing to svn, bz or hg.
Free Software Fetishism has reached its apogee with hurds of developers who prefer for example using emacs on a fully proprietary MacOS laptop rather than using a fully Free Software laptop without emacs.
Two people have opened my eyes on this evolution. The first person is the developer of a famous bootloader who could use equally well vi, emacs, kate, KDE, GNOME, Windows, MacOS, command line, GUI, etc. used for the first time the word "Fetishism" to qualify the lack of mental flexibility of some Free Software developers who isolate themselves into the adoration of a single tool rather than open their mind and leverage diverse tools and approaches at the same time. The second person is Tariq Krim, just before he launched Joli OS at a time Chome OS did not exist yet; he was the first person that I heard regretting the lack of understanding of modern Web by Free Software developers or their refusal to adopt it.
If you are a Free Software developer, if you suffer from Free Software Fetishism, if you are willing to cure yourself and if you think your brain is still capable of learning something different than vi, emacs or git, then this article is for you. You will learn in about 6 months how to adopt new Web technologies and how use your talent to contribute to the wider acceptance of Free Software ideals through the Web.
The fastest way to experience modern Web technologies is to purchase a reasonable chromebook (4 GB RAM, 32 GB SSD, reasonable screen and keyboard), register to Google service and jail yourself into "Google life". From now on, you are going to experience the full "Google life" (or "Google hell" if one considers privacy) during 3 to 6 months. It is the typical time required to learn what modern web can do and discover new technologies that combine modern Web and Free Software ideals.
During that time, please ignore any privacy problems posed by chromebooks. Do not even try to solve them or think about them: it would prevent you from learning what must be learnt at this step. Try to become a normal user, the kind of user that only cares if the GUI is beautiful or if the application is cool. Be assured anyway that the question of privacy will be addressed later.
You are an emacs fan: forget it. You are a vi fan: forget it too. Do not even think about recreating in your chromebook your beloved GNU/Linux environment. One purpose of this tutorial is to change your habits an learn how and why the Web can be a great alternative to POSIX that can boost the adoption of Free Software ideals. Trust yourself: your mind is still flexible and you can still learn new things with an open heart.
Each time you face a problem and would like to solve it, do not think "which command line" but think about "which web site can solve my problem". Google your problem and use a web site to solve it.
Here are some exercises to test yourself:
During the 3 to 6 months period of Google life, try to play a lot with a lot of different tools that can run on chromebook. Install extensions and applications. Here is a short list of "must try":
Here are now some hints to better use a Chromebook:
And now some suggestions of exercise to validate your knowledge:
After playing some time with Chromebook, it is time to try crouton, a set of scripts that can be used to run a chroot of Debian or Ubuntu next to Chrome OS and can ease the transition to Chrome OS. Crouton comes with an extension that can integrate legacy applications to the Chrome OS desktop.
In order to use crouton, you will have to turn on developer mode. On Toshiba CB30, hitting at the same time the power button, escape and the "refresh" button brings to a dialog that asks whether the Chromebook should enter developer mode. Read the documentation of your device to know which key strokes bring to developer mode (http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices)
Developer mode and chroot can be useful if you want to run a small web server or a MariaDB database. It is also useful to access a full ssh client, store some keys, use screen, etc. I still need crouton myself because I have to use the original version of LibreOffice/OpenOffice to write big documents. I hope however that I will soon be able to use OfficeJS instead.
chroot should however be considered as the last option during a transition phase between traditional POSIX style environment and pure Web. It can help a lot during the transition, but it goes against the goal of this tutorial and may actually prevent the transition to happen if it is used too much.
Here are some more links to understand what are the long term alternatives to chroot that you can already use today:
The idea of Free Web was invented in 2014 by Cédric Le Ninivin after he experienced "Google Life" on a Chromebook every day during 3 months. He was witnessing the growing adoption of Chromebook ins schools in United States, which now amount for 35% of PC sales in education (see "Why Chromebooks are schooling iPads in education" or "Chromebook Sales to K-12 Schools Reach New Heights"). And while using his Chromebook for his daily ERP5 developer job at Nexedi (using SlapOS open source PaaS), he found that everything in a Chromebook was "one click away" except one thing: software contribution. Even through great IDEs exist, such as Chrome Dev Editor, and even though the learning materials found on the Web with sites such as Codeacademy are awsome, the transition from being a Web user to being a Free Software contributor is not at all "one click away".
Compared to Apple device which until recently dominated education market in USA, the introduction of Chromebooks in schools may actually further widen the gap between the "ease of use" of thousands of Web applications and the "complexity of contribution" to Free Software. Le Ninivin's key idea is that code contribution should become "one click away", just like everything else, and should include a social experience that fun.
This is how the Free Web started. A Free Web site is a Web site that includes a button "Script Me" that opens instantly a window with source code that can be modified by the Web user, used only by him or shared with his friends. Imagine something like Greasemonkey but without extension, completely universal and built-in into every Web site that intends to join the Free Web movement.
Nexedi is now developing technologies to make this happen:
This tutorial is over. It is now time to quit Google life and to think again about privacy. A recipe for a free enviroment with better privacy can be found in the article "My First Fully Free Laptop: a Chromium Book". It is based on a standard feature of Chrome OS: Guest Mode. What's next? Use and develop free web applications that do care of user privacy. Let us now act as active developers by create better applications for the Web that will protect user's data.
Most developers still develop server based software in python, PHP, Java, etc. Most Free Software developers still use their own laptop or PC to develop. Obvisouly, existing legacy of server based software can not be ignored nor eliminated in one day. A solution is therefore needed to support legacy without slowing down the transition to the Free Web ideals.
This is why the approach I recommend is to put away any legacy laptop in a server room or in a closet, add to it a global IPv6 (with re6st for example) and never touch it again. Instead, use ssh or - better - a web based terminal optimized for high latency such as GateOne to access it, support legacy code or access legacy data. For new developments, use a Web based Platform as a Service (PaaS). If you are looking for a fully Free PaaS that supports any programming stack, use for example SlapOS Web Runner. SlapOS Web Runner can help a lot the transition to happen in a fully Web and devops spirit yet supports all legacy server based stacks with reasonable effort. If you need to quickly try some sofware in a legacy GNU/Linux distribution with minimal effort, use a Virtual Machine such as SlapOS VM For personal use, consider a dedicated server such as Kimsufi (4.99€ / month) or Online (5.99€ / month).
Last, you will need good networking to support legacy. Take a 4G phone and use USB tethering to connect your chromebook to Internet from anywhere. If data connection of your telecommunication company is too poor, then change company or complement it. For example, users of Free in France get a great 3G connectivity outside France at low cost and a very poor one inside France outside 4G areas. Owning a Bbox Nomad in addition to a Free smartphone can be a good solution to get European-wide connectivity. Same happens in Germany where many rural areas get poor 3G or 4G connectivity. Combining multiple mobile data providers can be a solution sometimes. If one needs global roaming at reasonable price, then consider products such as youyoumob. It works everywhere, even in China, and has a reasonable cost. And if one needs connectivity virtually anywhere, then Thuraya is one of the ways to go.
I would like to thank Rafael Monnerat for teaching me the basics of Chromebook usage and for demonstrating how to use Chrome OS Guest mode in daily life. I would like to thank Cédric Le Ninivin for the idea of Free Web because it brings back hope for mass adoption of Free Software in a world dominated by Cloud services.