25 years of Linux

The 25th anniversary of Linux has been celebrated recently. I can’t remain silent about it because Linux has been playing an important role in my life.

In 1980’s, Richard Stallman started a heroic and successful effort to create a free operating system in response to the unfortunate dominance of proprietary operating systems. But in 1990’s, his GNU project was still missing a very important part – the operating system kernel. This gap was filled in by Linus Torvalds when he started working on a new operating system kernel called Linux and decided to publish it under the GNU General Public License.

I’m not sure why exactly Linux took the place and became so popular. Perhaps it was the right thing coming at the right moment. When I first heard about Linux, it was IIRC around 1993, it looked like an amazing alternative to the world dominated by the unbelievably inferior Microsoft systems, complemented by proprietary Unix systems that were anything but a suitable operating systems for a student’s PC. The only real alternative to DOS and its graphical add-on called Windows was the BSD family of systems. But Linux, perhaps due to being a young system, was less hardware demanding and I could run it, including the X Window System, on my PC equipped with 4 MB RAM. I abandoned DOS/Windows and soon switched to using GNU/Linux exclusively.

It was a lucky choice and it founded the direction of my professional carrier. I didn’t bother to pick the best things from different worlds and to use different operating systems for different purposes. I instead focused on the right thing and solving the numerous problems I faced when I started using GNU/Linux. I learned that freedom has its price but when one is ready to pay it without looking aside, it brings a great revenue.

I’ve been a GNU/Linux user for more than half of my life. The proprietary vendors who tried to lock users inside their proprietary systems, similarly as they try to do today with e.g. smartphones and IoT devices (despite they often run on top of the Linux kernel!), have failed to put the advancing free operating system to irrelevance. I can still use GNU/Linux and I can make my living by developing free software on Linux.

Fairphone owner

I own a Fairphone now. When I first heard about the Fairphone project it looked interesting to me, but I haven’t thought about it seriously for two reasons: 1. price, 2. I wanted the phone to be fair not only in the production chain but also to its users. When I recently started looking for a possible replacement of my old smartphone, I found out that the second problem has been fixed.

Now how about the price? A smartphone with similar hardware specifications can be obtained maybe for half the price. But Fairphone has some unique features:

  • It officially supports a free operating system with optional root access. You can freely choose whether you want to use a restricted proprietary system with Google applications or a free operating system without them. Both the options are officially supported.
  • You may also install another operating system on the phone without voiding the warranty. You’re still responsible for damages caused by malware or improper use of the root access, but the mere fact that you install another system on the phone doesn’t void your warranty.
  • Some parts of the smartphone are replaceable and they may be (in theory) upgraded in the future. And you can replace them yourself easily.
  • The smartphone is designed to last. I think nobody can tell whether it will really last, but there is at least some effort to make it more likely to happen.
  • And of course, the production of the smartphone tries to be fair. Ethics matters.

Fairphone is not perfect, but it’s the only reasonable smartphone I’m aware of that provides such a level of fairness. Considering that fact, the price is actually reasonable – freedom and ethics have their price. We must be ready to pay it, otherwise we lose those basic values. Fairphone is very unique on the distorted smartphone market, where harsh restrictions, previously rejected on the PC market, were successfully introduced without any big protests. Consider my previous smartphone:

  • It occasionally rebooted itself. Well, I could live with that.
  • The provided operating system was proprietary and contained proprietary applications that I didn’t want to use, that wasted the small storage space available and that I couldn’t remove. This is not acceptable.
  • The provided operating system was already obsolete when I bought the smartphone, even security upgrades weren’t provided. Using an old operating system is debatable, lack of security patches is not acceptable.
  • Installing an alternative operating system was possible but only with a clear message from the vendor that it would void my warranty. I’m not sure it’s legal in the E.U. but it’s not acceptable in any case.
  • Nothing was advertised about how the smartphone was produced and what harm it caused to workers or regions of the world.

Would I like to pay any money for such a device again? The obvious answer is “no”. And that was one of the better smartphones on the market, where additional restrictions such as impossibility to install a different operating system or even just unapproved applications were present.

There are some problems with Fairphone too, for instance:

  • Not everything in the supply chain is fair. The nice fact is that the vendor admits it and tries to do what’s possible in the current world.
  • Proprietary binary blobs are used in the operating system. This is the sad reality of the current market that Fairphone can’t change itself. We all must call for the change.
  • There’s no waterproof version, I miss that feature from my previous smartphone. The nice fact is that the vendor explains why the phone is not waterproof, with good arguments. (Compare it to an approach of a well known company that sells more expensive smartphones without offering a waterproof version; it officially sells an expensive waterproof case instead, which is not very useable according to the user reviews.)
  • It doesn’t provide the best hardware and the newest Android available today. But it still provides all I need and is much modern than my previous smartphone, so I don’t care much.
  • When the smartphone is charged, the touch screen works very unreliably with most chargers (charging from a computer USB port works fine for me). It was scary at first, it’s very annoying and it must be a design problem.
  • Switching from Cyanogenmod, which I used on my old smartphone, to something close to the stock Android is frustrating, many useful features are missing.
  • Fairphone can’t change that much. But it raises the awareness and makes some important steps towards a better society.

No smartphone is perfect and I like the fact that the company tries to be transparent about problems.

So I decided to buy a Fairphone. I dislike how most other vendors treat their customers and I don’t like paying them for that. I’m sad that many people pay big money to companies that mislead users and try to restrict their freedom and privacy. Fairphone 2 reviews often complain about the hardware etc. and don’t mention how nice it is to its users. That pretty well illustrates what we care most about – having funny toys without caring about our freedom.

One of good ways of fighting evil behavior is to support good behavior. And this is one of the major reasons why I decided to buy the Fairphone. I still can’t equip my whole family with Fairphones, it’s not affordable. But I wish that would change one day, so I should support the project.

Did I say that I own my Fairphone? Yes, it’s a great feeling of owning the device, instead of being owned by the device. The phone is fair.

Who cares about Web accessibility?

I was at a Web development presentation some time ago. The presenters from certain company talked about many competencies needed for development of complex Web applications, such as knowledge of Web standards, JavaScript toolkits, Java programming, databases, photo editing, etc.

Many things were mentioned, but one important competency was completely omitted: understanding Web accessibility, i.e. making the Web applications accessible to handicapped users. So I asked about that. The answer was that understanding Web accessibility is indeed an important Web development competency but quite difficult and the company’s customers (such as banks, insurance companies, phone operators, media groups) don’t ask for it. So the company doesn’t care about it when making the applications.

I couldn’t find a better response than “Thank you for your answer.”. Is the Web development company to blame? Probably not. They are asked to make applications attractive for most users. The customers don’t care whether the applications are attractive or at least usable for handicapped users as well. Why should the Web development company implement features nobody pays for? Perhaps they can just suggest considering accessibility when negotiating with the customers (which they probably don’t do).

So companies want to invest much money into making their Web portals more attractive for the majority while they don’t care a bit that their portals can’t be used by persons with various disabilities. They exclude those users from common life and make their lives even harder.

Probably only law can fix that discrimination. But if you make Web pages or applications, please don’t forget that there are people who can’t see, who are colorblind, who can’t hear, who have reading problems, who have various motor skill impairments. It’s not easy to live with those handicaps, let’s not make lives of those people even harder by building yet another barriers to them and excluding them from the society.

Turris Omnia router

Turris Omnia is an open hardware & free software high performance home router. You can still get it for a reduced price for a few days if you contribute to its Indiegogo campaign.

I think this is a good deal. Although the router is not cheap, it’s worth the money. There are not many alternatives. And Turris is no vaporware, it’s based on a previous product manufactured for a CZ.NIC security research project.

I’m glad the project is successful and we are going to have high performance, reliable and secure home router designed from start as an open device.

Software Freedom Conservancy needs our help

Software Freedom Conservancy makes useful work for free software. One of their important activities is GPL enforcement. Whether you think the principle “I give you my source code and if you further distribute it, do so under the same conditions you originally received it” is right or wrong, the fact that some organizations care a lot about their proprietary possessions while violating the terms of the free software they use is alarming.

If we tolerate stealing GPLed software, we’ll lose another piece of our freedom. I think this is one of very important reasons to support the Software Freedom Conservancy.

Software Freedom Conservancy is certainly not the only organization working hard to protect our software freedom. I’m aware of at least the following important non-profit organizations doing that:

Electronic Frontier Foundation
Defends our overall digital rights, doing very competent, important and useful work in the areas of freedom and privacy.
Free Software Foundation
Promotes free software and computer user freedom, its GNU project was a free software revolution and we might be locked into proprietary software completely today without the work the FSF has done.
Free Software Foundation Europe
Makes some important, especially lobbying, work for software freedom in Europe. IMHO Europe is the place where the future of our civilization may be saved or given up.
Software Freedom Law Center
The lawyers, providing important services related to free software in the areas of licenses, patents, trademarks, etc.
Software Freedom Conservancy
Provides shelter and services to some free software projects and works on enforcing GPL compliance (e.g. Linux).

In my opinion, all these organizations are very important and need sustainable financial contributions from individuals. They do a lot with little. Not everyone can support them all, but everyone who cares about software freedom and can support at least one of those non-profits should do so.

BTW, (limited number of) the Software Freedom Conservancy supporters who sign up by January 31 will count twice.

Capturing Web content from Firefox to Org

Emacs is a powerful tool but it’s better to use other means for Web browsing, such as Firefox. Now the question is how to transfer pieces of Web content from Firefox to Org mode. Org mode already provides means for communication with external applications. org-protocol.el is a general mechanism for importing information to Org mode via emacsclient, but its setup is not instant and I hadn’t bothered to configure it until I met org-protocol-capture-html. The screenshot of the captured content converted to Org markup was irresistible so I decided to give capturing Web content another try.

That attempt reminded me that I hadn’t ranted about software setup and bugs for quite long time here. I’m not going to fix that now, it suffices to say that utilizing a relatively simple function shouldn’t require advanced technical knowledge and/or several hours of googling and experimenting; I really can’t imagine how a non-advanced user could get that thing run without losing his patience at early stages of the process. Well, so I’ll try to make a summary of how I got it working.

Emacs part

I assume you already can use Org mode and emacsclient.

Plain text capture

Add org-protocol to org-modules variable.

Define entry for capturing Web content in org-capture-templates variable, e.g.:

(add-to-list 'org-capture-templates
             ("w" "Web site" entry (file "~/org/notes.org")
              "* %?\n%c\n%:initial"))

Of course, this is just an example. Look at org-protocol.el documentation for another example and for explanation what %:initial means.

If you’d like to use a letter different from w for the template, you can do so but you must replace it in Firefox bookmarklets and helpers below. See also org-protocol-default-template-key variable.

Capture with HTML conversion

First, configure plain text capture as described above. Then fetch org-protocol-capture-html.el from its home page and put it into your site-lisp directory. Add the following lines to your ~/.emacs or other Emacs initialization file:

(require 'org-protocol)
(require 'org-protocol-capture-html)

Note that org-protocol must be already loaded at the time org-protocol-capture-html is loaded, otherwise the corresponding subprotocol won’t be registered.

Firefox part

The easy way

Install Org-capture for Firefox. It allows capturing content without the need to register org-protocol: handler in Firefox. However, org-protocol-capture-html or other custom captures won’t work this way.

The advanced way

The following installs universal capturing mechanism via org-protocol: handler in Firefox. It works independently (with or without it) of Org-capture Firefox extension mentioned above.

Register org-protocol: handler as described in MozillaZine Knowledge Base (replace foo with org-protocol). One important thing they forgot to emphasize is that you must use real link to invoke the application dialog, typing org-protocol:something into the address bar doesn’t work. For your convenience, I provide an org-protocol link here. Select something like /usr/bin/emacsclient in the Firefox dialog as the application handling org-protocol.

Then define your capturing bookmarklets. If you don’t have Bookmarks Toolbar enabled, enable it by right clicking on a Firefox toolbar and selecting Bookmarks Toolbar. Then create new bookmark in Bookmarks Toolbar section and insert the following code as its URL:

javascript:location.href='org-protocol:/capture:/w/'+encodeURIComponent(location.href)+'/'+encodeURIComponent(document.title)+'/'+encodeURIComponent(window.getSelection())

This is for plain text capture. If you want HTML capture, define another toolbar bookmark and use the code from org-protocol-capture-html home page (it’s also available in the introductory comments in org-protocol-capture-html.el) as its URL. Just make sure that:

  • The bookmark URL starts with javascript:.
  • Pandoc is installed.

Now you can (optionally) select part of an HTML page and press one of the newly created bookmark buttons in Bookmarks Toolbar. If everything is set up correctly, the selected part of the page (or just page URL and title if nothing is selected) should appear in your Emacs capture buffer.

Getting rid of Bookmarks Toolbar

If you don’t use Bookmarks Toolbar in Firefox, you probably don’t want to waste screen space on it just for Org capture bookmarks. The remedy is easy, invoke Firefox Customize and drag Bookmarks Toolbar to another place. Alternatively, you can use Custom Buttons Firefox extension.

Notes

Some Web pages can’t be captured, I don’t know why. I have more important things to do than playing with Org and Firefox further.

Another useful Org related Firefox extension is Copy as Org-mode. It doesn’t capture content via org-protocol but can copy some objects such as page or link URLs to kill ring, in the Org format. This is what I used to insert links into this article! It’s easier with this nice helper than performing all the copy&paste&edit by hand.

Privacy Badger

Privacy Badger 1.0 has been released some time ago. If I could install a single Firefox extension only, it would be this one. It’s very easy to use, effective (AFAICT) and doesn’t cause problems; much better than the other privacy extensions I used (although they can still be useful for special purposes). I can recommended using it, as well as reading the FAQ and supporting the Electronic Frontier Foundation (EFF). BTW, another very useful web browser extension by EFF is HTTPS Everywhere. Good work, EFF! Looking forward an Android version as there is currently very little one can do to protect his privacy in Firefox for Android.

I think I want that keyboard (and mouse)

KeyMouse keyboard looks interesting. It seems to be better than any of the other ergonomic keyboards I looked at as it provides all of the following:

  • Everything seems to be reasonably reachable (maybe after remapping some keys).
  • It’s curved.
  • The left and right parts of the keyboard are completely separated, permitting to position the hands freely.
  • Wireless operation.
  • The mouse of course (even better: two mice!), no need to leave the keyboard to use it.

There may be some drawbacks:

  • Stability of the keyboard(s) when typing.
  • Mouse jitter when typing.
  • Not possible to use on one’s lap.

KeyMouse is expensive, but its price is in the price range of other (mouseless) ergonomic keyboards, and the keyboard is still cheaper than a good chair or a good display.

Checoeslovaquia

Our former country, Czechoslovakia, was replaced by two new countries, Czech Republic and Slovakia, in 1993. When I was in Belgium (country separated from the Czech Republic just by a single neighboring country – Germany) several years later they didn’t know where the Czech Republic was but they knew about Czechoslovakia. It’s interesting the change has still not been propagated to some relevant places, even in the area of postal services.

The last FSF bulletin has arrived to me recently with a hand written note below my address on the envelope:

fsf-envelope.jpg

The word “Checoeslovaquia” looks like a Spanish version, maybe it was already added in the U.S. or the letter was mistakenly sent to Chile or the letter arrived to Europe through Spain, who knows. It’s funny that a post officer somewhere didn’t know about the Czech Republic but someone was able to resolve the problem by identifying the target country as the former Czechoslovakia.

Anyway the June FSF bulletin has reached me!

Dunajská vlna & Čankišou

I’d like to promote two of the current music crowdfunding campaigns on Hithit that are approaching their ends. They ask money for new CDs and while they’ve already gathered more than two thirds of the target amounts, they haven’t reached the targets yet (as of today). IMO both the campaigns are very much worth to support.

Dunajská vlna was founded by two members of the former legendary band Dunaj (the best known representative of the so called Brno alternative) and one new member. They’d like to make a CD of Dunaj songs that haven’t been available to buy for long time. They also start working on new music. I’m sure they won’t disappoint us and we can look forward great music of true Dunaj roots.

Čankišou is a Brno band making great music, let’s say some very special sort of world music. They are great on CDs and they are even better live. I’ve been twice at their live shows and they were superb experiences. So if you are in the Czech Republic, I can recommend choosing one of the contributions containing tickets.