Mirroring free and open source software matters

Featured image: Patrick Tomasso | Unsplash (photo)

Post theme song: Mirror mirror by Blind Guardian

A mirror is a local copy of a website that’s used to speed up access for the users residing in the area geographically close to it and reduce the load on the original website. Content distribution networks (CDNs), which are a newer concept and perhaps more familiar to younger readers, serve the same purpose, but do it in a way that’s transparent to the user; when using a mirror, the user will see explicitely which mirror is being used because the domain will be different from the original website, while, in case of CDNs, the domain will remain the same, and the DNS resolution (which is invisible to the user) will select a different server.

Free and open source software was distributed via (FTP) mirrors, usually residing in the universities, basically since its inception. The story of Linux mentions a directory on ftp.funet.fi (FUNET is the Finnish University and Research Network) where Linus Torvalds uploaded the sources, which was soon after mirrored by Ted Ts’o on MIT’s FTP server. The GNU Project‘s history contains an analogous process of making local copies of software for faster downloading, which was especially important in the times of pre-broadband Internet, and it continues today.  Many Linux distributions, including this author’s favorite Debian and Fedora use mirroring (see here and here) to be more easily available to the users in various parts of the world. If you look carefully at those lists, you can observe that the universities and institutes host a significant number of mirrors, which is both a historical legacy and an important role of these research institutions today: the researchers and the students in many areas depend on free and open source software for their work, and it’s much easier (and faster!) if that software is downloadable locally.

Furthermore, my personal experience leads me to believe that hosting a mirror as a university is a great way to reach potential students in computer science. For example, I heard of TU Vienna thanks to ftp.tuwien.ac.at and, if I was willing to do PhD outside of Croatia at the time, would certainly look into the programs they offered. As another example, Stanford has some very interesting courses/programs at the Center for Computer Research in Music and Acoustics (CCRMA). How do I know that? They went even a bit further than mirroring, they offered software packages for Fedora at Planet CCRMA. I bet I wasn’t the only Fedora user who played/worked with their software packages and in the process got interested to check out what else they are doing aside from packaging those RPMs.

That being said, we wanted to do both at University of Rijeka: serve the software to the local community and reach the potential students/collaborators. Back in late 2013 we started with setting up a mirror for Eclipse; it first appeared at inf2.uniri.hr/mirrors and later moved to mirrors.uniri.hr, where it still resides. LibreOffice was also added early in the process, and Cygwin quite a bit later. Finally, we started mirroring CentOS‘s official and alternative architectures as a second mirror in Croatia (but the first one in Rijeka!), the first Croatian one being hosted by Plus Hosting in Zagreb.

University’s mirrors server already syncs a number of other projects on a regular basis, and we will make sure we are added to their mirror lists in the coming months. As it has been mentioned, this is both an imporant historical legacy role of a university and a way to serve the local community, and a university should be glad to do it. In our case, it certainly is.

Fly away, little bird

Featured image: a-shuhani | Unsplash (photo)

The last day of July happened to be the day that Domagoj Margan, a former student teaching assistant and a great friend of mine, set up his own DigitalOcean (note: affiliate link) droplet running a web server and serving his professional website on his own domain domargan.net. For a few years, I was helping him by providing space on the server I owned and maintained, and I was always glad to do so. To understand why, let’s start the story a little before those times.

During the early years of Mozilla (video recording of my 2015 talk in Croatian, a really nice article at ExtremeTech), I would follow Planet Mozilla to be up to date with the happenings in the community. Over time I became aware of the fact that, while some people hosted their pages or blogs on free services or their company/university domains and servers, others owned their domain names and servers used for the same purpose.

At that time (and for a while after that) I wasn’t aware of the value of owning a domain name, but I roughly understood the main argument for self-hosting your website, which is independence from a particular organization you might cease to be affiliated with. In addition, with social networks centralizing interactions on the web and creating walled gardens of content, having your own domain and setting up your own communication services (be it web, e-mail, or XMPP) is a good way to contribute to Internet remaining decentralized.

It still took me until late 2014 to bite the bullet and move from Department of Informatics‘s www.inf.uniri.hr/~vmiletic to my own domain (vedran.miletic.net at the moment) and my own hosting. At the time, I already had some experience with setting up and troubleshooting Apache. It was mostly coming from a few years of maintaining the Department’s inf2 server, where MoinMoin used to be the prime tenant, but a number of PHP applications also found their home.

Despite being lazy about registering my own domain and setting up my own web server, I must mention that I did keep my page reasonably up to date, i.e. at least once a year I would make sure that all the content (courses, scientific work, interests, software etc.) is still correct. (It’s not the only instance where I work hard not to repeat the mistakes of my professors observed while being their student.)

I mentioned my decision to Domagoj, suggested to him to do the same, and offered my help and support if he would decide to register his own domain and set up his own website. (I also wished my professors would have explained to me the value of the domain names and encouraged me to get one, so there is that trying to improve on what they did.) To my pleasant surprise, he was convinced by the arguments about decentralization and independence that I brought up at the time and also detailed above.

From that moment I knew that a day will come when a little bird will grow up and decide to leave the nest and create their own, i.e. Domagoj will want to set up his own hosting that he will have complete control of, and in the future use it to help others walk the same path. That’s precisely how things should be, that’s exactly how new Internet nodes should appear, and that’s exactly how Internet should grow towards becoming more decentralized.

Fly away, little bird, the world is awaiting you.

Why use reStructuredText and Sphinx static site generator for maintaining teaching materials

Featured image: Les Anderson | Unsplash (photo)

Yesterday I was asked by Edvin Močibob, a friend and a former student teaching assistant of mine, the following question:

You seem to be using Sphinx for your teaching materials, right? As far as I can see, it doesn’t have an online WYSIWYG editor. I would be interested in comparison of your solution with e.g. MediaWiki.

While the advantages and disadvantages of static site generators when compared to content management systems have been written about and discussed already, I will outline our reasons for the choice of Sphinx below. Many of the points have probably already been presented elsewhere.

Starting with MoinMoin

Teaching materials for the courses some of my colleagues and I used to teach at InfUniRi and RiTeh, including laboratory exercises for the Computer Networks 2 course developed during early 2012, were initially put online using MoinMoin. I personally liked MoinMoin because it used flat text files and required no database and also because it was Python-based and I happen to know Python better than PHP.

During the summer of 2014, the decision was made to replace MoinMoin with something better because version 1.9 was lacking features compared to MediaWiki and also evolving slowly. Most of the development effort was put in MoinMoin version 2.0, which, quite unfortunately, still isn’t released as of 2017. My colleagues and I especially cared about mobile device support (we wanted responsive design), as it was requested by students quite often and, by that time, every other relevant actor on the internet had it.

The search for alternatives begins

DokuWiki was a nice alternative and it offered responsive design, but I wasn’t particularly impressed by it and was also slightly worried it might go the way of MoinMoin (as of 2017, this does not seem to be the case). It also used a custom markup/syntax, while I would have much preferred something Markdown/reStructuredText-based.

We really wanted to go open with the teaching materials and release them under a Creative Commons license. Legally, that can be done with any wiki or similar software. Ideally, however, a user should not be tied to your running instance of the materials to contribute improvements and should not be required to invest a lot of effort to set up a personal instance where changes can be made.

MediaWiki was another option. Thanks to Wikipedia, MediaWiki’s markup is widely understood, and WYSIWYG editor was at the time being created.

In an unrelated sequence of events I have set up a MediaWiki instance in BioSFLab (where I also participated in research projects for almost two years) and can say that setting up such an instance presents a number of challenges:

When migrating a MediaWiki instance from a server to another server, you have to dump/restore the database and adjust the config files (if you’re lucky it won’t be required to convert Apache configuration directives to Nginx ones or vice versa). None of this is especially complicated, but it’s extra work compared to flat file wikis and static websites.

Finally, my favorite MediaWiki theme (skin in its terminology) is Vector, so my potential wiki with teaching materials would look exactly like Wikipedia. While nice and trendy, it is not very original to look like Wikipedia.

Going static, going reStructured

Therefore, we opted to use Sphinx and reStructuredText, as it was and still is a more powerful format than Markdown. We specifically cared about the built-in admonitions, which made it easier for us to convert the existing contents (Python socket module lecture is a decent example). The advantages of Sphinx were and still are the following:

There is a number of issues which affected us:

  • the time to deployment after the change: varies depending on the change, but it’s in the order of tens of seconds in the worst case,
  • the need to automate the deployment upon git push (note that this does not increase attack surface, since git uses SSH or HTTPS for authentication and transfer).
  • learning curve to add content: MediaWiki’s WYSIWYG editor beats using git and reStructuredText in terms of simplicity.

Conclusion

A rule of thumb here would be:

  • if many people inside of an organization are going to edit content a lot and the content is more like notes than a proper documentation, then MediaWiki (or DokuWiki) is the choice,
  • if the content has an obvious hierarchy of parts, chapters, sections etc. and/or it is evolving like a piece documentation changes with software it documents, then Sphinx (or any of Markdown-based generators, e.g. HotDoc or MkDocs) will do a better job.

Enabling HTTP/2, HTTPS, and going HTTPS-only on inf2

Featured image: John Moore | Unsplash (photo)

Inf2 is a web server at University of Rijeka Department of Informatics, hosting Sphinx-produced static HTML course materials (mirrored elsewhere), some big files, a WordPress instance, and an internal instance of Moodle.

HTTPS was enabled on inf2 for a long time, using a self-signed certificate. However, with Let’s Encrpyt coming into public beta, we decided to join the movement:

HTTPS was optional. Almost a year and a half later, we also enabled HTTP/2 for the users who access the site using HTTPS. This was very straightforward.

Mozilla has a long-term plan to deprecate non-secure HTTP. The likes of NCBI (and the rest of the US Federal Government), Wired, and StackOverflow have already moved to HTTPS-only. We decided to do the same.

Configuring nginx to redirect to https:// is very easy, but configuring particular web applications at the same time can be tricky. Let’s go through them one by one.

Sphinx-produced static content does not hardcode local URLs, and the resources loaded from CDNs in Sphinx Bootstrap Theme are already loaded via HTTPS. No changes were needed.

WordPress requires you to set the https:// URL in Admin, Settings/General. If you forget to do so before you go HTTPS only, you can still use the config file to adjust the URL.

Moodle requires you to set $CFG->wwwroot in the config file to https:// URL of your website.

And that’s it! Since there is a dedicated IP address used just for the inf2.uniri.hr domain, we can afford to not require SNI support from the clients (I’m sure that both of our Android 2.3 users are happy for it).

How to watch Russia Today RT Live On Air without Flash

Featured image: Gianpaolo La Paglia | Unsplash (photo)

What is RT?

RT (formerly Russia Today) is an international TV network operated by the Russian government. Right now, it fits among a number of alternative media sources which are on the rise given the falling trust in the mainstream media among the western world (as an example, here is 2015 data for the USA).

RT’s content has been criticized from multiple angles. Regardless, I find it to be a valuable source of news; among other things, I particularly like that they frequently feature commentators like Ron Paul (for nearly 8 years already!) and John McAfee.

RT requires Flash Player plugin for watching their live audio/video streams

(Update 25th of May 2017: RT Live does not require Flash anymore! Just open it in any HTML5-compliant browser and the video stream will start playing.)

However, RT Live (so called On Air) requires you to use Flash Player plugin and does not offer HTML5 video, which is sub-optimal at best. RT uses HTTP Live Streaming (HLS) in JW Player for 5 channels (News, USA, UK, Arabic, and Documentary) and YouTube for one (Spanish). Knowing how JW Player HLS configuration looks allows us to use some hackery to dig up the stream URL.

On Air page embeds the player from another page and the URLs are in variable streams.hls which is set in static/libs/octoshape/js/streams/news.js. Digging through the same file for each of the other channels will uncover their URLs as well (I have listed all of the URLs below). A simpler solution would be to have Flash Player plugin installed (yuck, proprietary software!) and use Video DownloadHelper, which can uncover the URLs accessed by Flash Player plugin while the video is playing.

To play the streams from URLs listed, you can use an open source media player such as mpv, MPlayer, or VLC. I have tested and confirmed all three work with the URLs listed below. If you don’t like those three, there are plenty more options.

RT News

RT News, as well as RT America and RT UK, are served using a CDN from Level 3 Communications. Unfortunately, we are limited to receiving the stream over the unencrypted HTTP.

HD: http://rt-eng-live.hls.adaptive.level3.net/rt/eng/index2500.m3u8
Hi: http://rt-eng-live.hls.adaptive.level3.net/rt/eng/index1600.m3u8
Medium: http://rt-eng-live.hls.adaptive.level3.net/rt/eng/index800.m3u8
Low: http://rt-eng-live.hls.adaptive.level3.net/rt/eng/index400.m3u8
Audio: http://rt-eng-live.hls.adaptive.level3.net/rt/eng/indexaudio.m3u8

RT America

HD: http://rt-usa-live.hls.adaptive.level3.net/rt/usa/index2500.m3u8
Hi: http://rt-usa-live.hls.adaptive.level3.net/rt/usa/index1600.m3u8
Medium: http://rt-usa-live.hls.adaptive.level3.net/rt/usa/index800.m3u8
Low: http://rt-usa-live.hls.adaptive.level3.net/rt/usa/index400.m3u8
Audio: http://rt-usa-live.hls.adaptive.level3.net/rt/usa/indexaudio.m3u8

RT UK

HD: http://rt-uk-live.hls.adaptive.level3.net/rt/uk/index2500.m3u8
Hi: http://rt-uk-live.hls.adaptive.level3.net/rt/uk/index1600.m3u8
Medium: http://rt-uk-live.hls.adaptive.level3.net/rt/uk/index800.m3u8
Low: http://rt-uk-live.hls.adaptive.level3.net/rt/uk/index400.m3u8
Audio: http://rt-uk-live.hls.adaptive.level3.net/rt/uk/indexaudio.m3u8

RT Arabic

RT Arabic and RT Documentary use a different CDN (though operated by Level 3 Communications, just like the CDN for the first three channels). This CDN offers HTTPS in addition to the unencrypted HTTP.

HD: https://rt-ara-live-hls.secure.footprint.net/rt/ara/index2500.m3u8
Hi: https://rt-ara-live-hls.secure.footprint.net/rt/ara/index1600.m3u8
Medium: https://rt-ara-live-hls.secure.footprint.net/rt/ara/index800.m3u8
Low: https://rt-ara-live-hls.secure.footprint.net/rt/ara/index400.m3u8
Audio: https://rt-ara-live-hls.secure.footprint.net/rt/ara/indexaudio.m3u8

RT Documentary

HD: https://rt-doc-live-hls.secure.footprint.net/rt/doc/index2500.m3u8
Hi: https://rt-doc-live-hls.secure.footprint.net/rt/doc/index1600.m3u8
Medium: https://rt-doc-live-hls.secure.footprint.net/rt/doc/index800.m3u8
Low: https://rt-doc-live-hls.secure.footprint.net/rt/doc/index400.m3u8
Audio: https://rt-doc-live-hls.secure.footprint.net/rt/doc/indexaudio.m3u8

RT Spanish

RT Spanish is broadcasted live via YouTube, therefore it already does not require Flash Player plugin. If you want to watch it outside the browser, the players mentioned above should be able to do that.

And that’s it. No Flash Player plugin required! Hopefully, RT will start offering HTML5 video at some point and allow watching live content without requiring Flash Player plugin. You can try bugging them about it, as I did over Twitter.

(Update: added the note regarding RT Spanish.)

Ideological purge: Curtis Yarvin yesterday, Peter Thiel today, and you tomorrow

Featured image: Benjamin Child | Unsplash (photo)

Back in June 2015 a computer scientist named Curtis Yarvin got booted off Strange Loop, a technology conference. Reason: his political views. He is a part of and arguably one of the leaders in an essentially decentralized movement called the neoreaction, also known as NRx or the Dark Enlightenment. His ideas, presented at his blog Unqualified Reservations (archive), were deemed objectionable and concerning. Before I go any further, I should note that I have not studied his ideas in particular, but I have skimmed through the NRx.

I believe in the free speech, but also in the right of any private business to deny their service at will. Therefore him getting booted off within those rights. However, given that his talk at the conference was not related to his politics, and with full belief that he would respect the topic and not abuse the time slot to try to present his political ideas at the conference, I find it hard to understand the reason why he was removed from the program. Detailed analysis and reasoning of the situation, which I fully agree with, is presented at Popehat.

Fast forward to October 2016 and Peter Thiel‘s 1.25 million dollar donation to Donald Trump. One might expect that, since this is mainstream and everyday politics, there is no reason why it should be considered “controversial”. Thiel chose to support a candidate he considers worth supporting with his private money. But one would be wrong.

The issue stirred a long and interesting discussion on Hacker News, splitting the HN-ers into two camps on the issue of tolerance of ideas they find very different from theirs. Personally, I have no problem with people refusing to do business with those that hold ideas they disagree with. As an employee, I aim to work mostly or entirely on free and open source software, without patent protection. As a consumer, I avoid and speak against Microsoft’s non-free software whenever I can. And I speak about those attitudes openly.

Peter Thiel was expectedly criticized by Ellen Pao and David Heinemeier Hansson for what he did. I find Ellen Pao’s reasoning unnecessarily verbose and screaming “please agree with me”, yet I still don’t agree with it. I would, however, have no problem if she openly said “I don’t like Thiel’s political views and how he uses his money so I refuse to deal with him” without trying to sugarcoat it. DHH, on the other hand, is trying (and failing) to be cool and provocative.

Others, like Anselm Hannemann, took the issue as far as “I don’t want to have anything to do with anything Thiel has ever touched”, which I find extreme and unnecessary, but to each his own. Personally, I have no problem using the Linux kernel, and I know that at least two of the kernel developers are social justice warriors. I am sure many free software developers and users are socialists. They have different ideas about the world they want to build and inhabit, and that’s fine. We agree on the idea of free software, so let’s build on it and ignore the rest.

What surprised me however was Paul Graham stepping up publicly to defend Peter Thiel’s freeedom from DHH’s criticism. Not because of his ideas (he is at least leaning libertarian), but because of the pressure of current political climate of censorship and purge of almost anyone who opposes social liberalism under the false premise of “hate speech” and “non inclusiveness” and “opposition to diversity”. Mark Zuckerberg also unexpectedly defended Thiel.

As for why would a self-proclaimed libertarian such as Thiel support an authoritarian canididate such as Donald Trump, I will quote Timur Vural‘s comment from the Hacker News thread mentioned above:

[Peter Thiel] believes that most of Silicon Valley is naive politically, and that the popularity of social liberalism there is just a moral fashion. He is a liberarian, and believes that the Valley’s instincts are libertarian, not liberal. He has a slightly pessimistic outlook on the future, and believes that America has been falling behind since 1969, “when Woodstock started… and the hippies took over the country”. That aligns well with the central point of Trump’s campaign – America has started losing and we need to “make it great again”.

He’s often said that one of his favorite interview questions is, “tell me something you believe to be true but which nobody agrees with you on”. His support of Trump falls into that category. 40% of the population agrees with him, but the people closest to him see his opinion as unthinkable. He seems to take pleasure in having opinions like that.

Furthermore, Donald Trump represents a giant middle finger to political correctness, identity politics and related anti-meritocratic ideas such as affirmative action. This way, his eventual presidency can be seen as a swing from the present left (social liberalism) back to the middle, which happens to be in the same direction which a libertarian would like to take. Peter Thiel certainly knows that very well and, unfortunately for him, his enemies do know it too.

Just like Trump, Thiel is rich enough to do basically whatever he wants because he does not have to seek employment afterwards and see his applications being rejected due to his political views. Another glorious comment from Hacker News, from AvenueIngres, explains Thiel’s financial status very well:

People don’t risk openly supporting Trump unless they have the kind of fuck-you money/assets [like Peter Thiel does] that allows them to do so. Truth is that the tech industry is probably leaning toward the Democratic party a lot less than it actually seems simply because of the politically motivated discrimination you would face should you endorse the wrong candidate (or embrace the “wrong” opinions in public).

I have seen what happened to a couple folks who told “unappropriate” jokes in a private discussion to their friends while at a public event. They lost their job.

I have seen how tons of progressives (not to say most) are so entrenched in their own bias that they fail to realize that dissenting opinions to their beliefs are not morally reprehensible. And that their cultish attitude with respect to diversity is as stupid as the white nationalistic obsession of homogeneity.

You might be next. Yes, you, no matter who you are and what you do. No matter how much you agree with the ever changing dominant narrative, how religiously you accept the mainstream ideas, and how peaceful and tolerant you are to those you disagree with. Something you wrote somewhere might be “inappropriate” for whatever reason under whatever narrative is active at present. The argument for “inappropriateness” does not even have to be rational. It does not matter at all.

To fight this insanity and restore freedom of speech, we should call out all those who propagate the idea of “tolerance” and then limit their personal tolerance to exclude people they politically disagree with. We should call out those who claim that “diversity” excludes diversity of “wrong” ideas. They, of course, have every right to invent whatever definition of those words that works to suit whatever agenda they want to push at that moment, but should expect to be regularly called out on it.

These anti-meritocratic and anti-freedom actions have to be exposed to the scrutiny every time they occur because, should we forget to do so and fail to carry on the ideas of Ronald Reagan and many before him, “we will spend our sunset years telling our children and our children’s children what it was once like in the United States where men were free”.

How to get Facebook Messages working in Firefox for Android without the Messenger app

Featured image: Loic Djim | Unsplash (photo)

When one tries to use Facebook Messages from a browser on a phone or tablet running a relatively recent Android, the website (m.facebook.com or touch.facebook.com) will open the Google Play store. Some of us prefer using browsers and avoid installing apps when possible. Unfortunately for us, Messenger does not offer a mobile website, only a link to download the app.

Luckily for us, there a are a few tricks that will help get Facebook Messages working from a browser on Android.

Google Chrome

The trick to avoid Facebook’s nagging is to enable “Request Desktop Site” in Chrome Menu. The explanation of what this option does is available on Stack Overflow.

Mozilla Firefox

Firefox also has the “Request Desktop Site” but, unfortunately, it doesn’t do the job; you actually get the desktop version of Facebook and it’s quite unusable.

One option is to use mbasic.facebook.com. Unfortunately, mbasic is neither as functional nor as pretty as m, let alone touch.

The way to get Messages working on m or touch is to pretend to be running a version of Android that is unsupported by the Messenger app. In my experiments, anything older than 4.4 will do the trick, so I picked 4.3.1. You can pick your poison from Wikipedia, but bear in mind that using very old versions might get Facebook mobile website to use workarounds which are no longer needed and will break stuff if used.

To pretend to be using an old version of Android, we will alter the Firefox’s user agent string. In Firefox, go to about:config. Add a new String option called general.useragent.override the and set it to e.g.

Mozilla/5.0 (Android 4.3.1; Mobile; rv:48.0) Gecko/48.0 Firefox/48.0

Compare this with the default usera gent string which is in my case

Mozilla/5.0 (Android 6.0.1; Mobile; rv:48.0) Gecko/48.0 Firefox/48.0

Note that this string will not be automatically updated when Firefox is updated, so you should take care to update it manually. For more information about the user agent override option, check out this Super User question.

Što je prvi hrvatski predsjednik rekao o prijetnjama slobodi softvera otvorenog koda?

Naslovna slika: Justin Luebke | Unsplash (fotografija)

Poznati govor prvog hrvatskog predsjednika dr. Franje Tuđmana u Zračnoj luci Zagreb 23. studenog 1996. je jako dobro strukturiran. Stoga je na tekstu govora vrlo lako izvesti search&replace koji mijenja njegov sadržaj, ali zadržava formu. Rezultat nakon nepretjeranog drljanja mi izgleda prilično upotrebljivo:

Mi nećemo dopustiti ostacima vlasničkih Unixa, niti Microsofta, stanje kakvo smo bili zatekli u računarstvu uspostavom slobode softvera i otvorenog koda. Nećemo dopustiti da nam sve to dovedu u pitanje. Nećemo to dopustiti tim ostacima vlasničkih Unixa, ali ni onim tehnološkim redikulima, bezglavim smušenjacima koji ne vide o čemu se zapravo radi danas u slobodnom softveru i u svijetu sa kojekakvim GitHub projektima… Nećemo dopustiti onima koji se vežu i s raznobojnim vragom protiv slobode softvera i otvorenog koda, ne samo s raznobojnim, nego i crvenim i crnobijelim vragovima… Nećemo dopustiti onim koji se povezuju sa svima protivnicima slobodnog softvera, ne samo povezuju nego im se nude, ne samo da im se nude nego im se prodaju za Secure Boot, DRM i softverske patente, kao što se i sami hvale da dobivaju tehnologiju iz svih laboratorija svijeta, a povezuju se od ekstremista zatvorenosti, do kojekakvih lažnih hipstera, pseudootvorenih obmanjivača koji nam danas propovijedaju velike ideje o pravima korisnika i otvorenim standardima.

Da! Mi smo stvarali svoju slobodu za prava korisnika i za otvorene standarde, ali za prava korisnika prije svega većine korisnika slobodnog softvera. Ali ćemo, razumije se, mi sa tom slobodom softvera i otvorenim kodom osigurati i korisnicima neslobodnog softvera ta prava i otvorene standarde. Ali nećemo dopustiti da nam ti sa strane rješavaju, odnosno nameću rješenja. Slobodan softver neće biti pod kontrolom nijedne kompanije. Unix je dosta bio i pod Berkeleyem i pod AT&T-em, i pod Sunom i pod IBM-om, i pod SGI-em. Zajednica oko Linuxa je izborila svoju slobodu, svoju samostalnost, svoje pravo da sama odlučuje o svojoj sudbini.

Izvorni tekst moguće je pronaći na Wikiizvoru.

Komentari na Nacrt pravilnika o uvjetima za izbor u znanstvena zvanja u području tehničkih znanosti

Naslovna slika: Jeff Sheldon | Unsplash (fotografija)

Pred nekoliko tjedana priupitan sam da dam komentare na Nacrt pravilnika o uvjetima pravilnika o uvjetima za izbor u znanstvena zvanja. Svoje komentare na uvjete u području tehničkih znanosti objavljujem i ovdje, kako bih bio siguran da će ostati sačuvani dugoročno.

Interdisciplinarnost

Za razliku od nekih drugih područja, interdisciplinarno područje znanosti koje uključuje tehničke znanosti ni na koji način nije spomenuto. Konkretno, potrebno je precizirati kako će se bodovati radovi u interdisciplinarnom području tehničkih znanosti i prirodnih znanosti ili biomedicine, za znanstvenika koji se bira u području tehničkih znanosti.

Višeautorski radovi

Brojanje višeautorskih članaka u tehničkim znanostima koje rad do 4 autora boduje svakom autoru sa 100% je korak u pravom smjeru u odnosu na prošli pravilnik. Međutim, problem postoji kod interdisciplinarnih radova u području tehničkih znanosti i području prirodnih znanosti polja fizike, kemije, biologije, geologije, geofizike i interdisciplinarnih prirodnih znanosti.

Znanstveniku koji se bira u području prirodnih znanosti broj autora na radu se ne gleda, što je razumno obzirom da u kolaboracijama teoretiračara i eksperimentalaca često bude i do 10 autora na radu (pa čak i više u nekim poljima). S druge strane, znanstveniku koji se bira u području tehničkih znanosti se gleda broj autora i rad se sukladno boduje. Ovo destimulira kolaboraciju znanstvenika kojemu je cilj izbor u tehničkim znanostima sa znanstvenicima koji rade u području prirodnih znanosti. Potrebno je za znanstvenika koji se bira u području tehničkih znanosti definirati adekvatno bodovanje višeautorskih radova u interdisicplinarnom području tehničkih i prirodnih znanosti.

Razvoj znanstvenih softvera

U polju računarstva prvenstveno, ali i u drugim poljima tehničkih i prirodnih znanosti, znanstvena istraživanja ovise o znanstvenim softverima. Neka od istraživanja vrše razvoj softvera tako da ga vežu uz znanstveni rad koji provode. Razvoj softvera se tada boduje kod izbora u zvanje samo ako su objavljeni članci o novim značajkama u softveru, što nije uvijek moguće. Takav destimulira doprinošenje inkrementalnim promjenama u postojećim softverima; između ostalog, to ograničava suradnju s industrijom koja traži poboljšanja u postojećim softverima sukladno potrebama poslovanja. Potrebno je razviti model bodovanja doprinosa razvoju znanstvenog softvera. Primjer bodovanja koji već postoji i koristi se kod zapošljavanja u industriji su profili na OpenHubu i GitHubu.

The academic and the free software community ideals

Featured image: davide ragusa | Unsplash (photo)

Today I vaguely remembered there was one occasion in 2006 or 2007 when some guy from the academia doing something with Java and unicode posted on some mailing list related to the free and open source software about a tool he was developing. What made it interesting was that the tool was open source, and he filed a patent on the algorithm.

Few searches after, boom, there it is

Google is a powerful tool. The original thread from March 2007 on (now defunct) linux-utf8 mailing list can be found on The Mail Archive. The software website is still up. The patent is out there as well.

Back in 2007 I was in my 3rd year of undergraduate study of mathematics (major) and computer science (minor), used to do Linux workshops in my spare time, and was aiming to do a PhD in mathematics. I disliked the usage and development of proprietary research software which was quite common in much of computer science research I saw back then. Unlike these researchers, I believed that that academia and free software community agreed that knowledge should be free as in freedom, and I wanted to be a part of such a community.

Academic ideals

As a student, you are told continuously that academia is for idealists. People who put freedom before money. People who care about knowledge in and of itself and not how to sell it. And along with these ideas about academia, you are passed one more very important idea: the authority of academia. Whatever the issue, academia (not science, bear in mind) will provide a solution. Teaching? Academia knows how to do it best. Research? You bet. Sure, some professor here and other professor there might disagree on whatever topic, and one of them might be wrong. Regardless, the academia will resolve whatever conflict that arises and produce the right answer. Nothing else but the academia.

The idea, in essence, is that people outside of academia are just outsiders and their work is not relevant because it is not sanctioned by academics. They do not get the right to decide on relevant research. Their criticism of the work of someone from the academia does not matter.

Free software community ideals

Unlike academia, free software community is based on decentralization, lack of imposed hierarchy, individual creativity, and strong opposition to this idea of requiring some sanction from some arbitrary central authority. If you disagree, you are free to create software your way and invite others to do the same. There is no “officially right” and “officially wrong” way.

Patent pending open source code

“Some guy from the academia” in the case I mentioned above was Robert D. Cameron from Simon Fraser University, asking free software community to look at his code:

u8u16-0.9  is available as open source software under an OSL 3.0 license at http://u8u16.costar.sfu.ca/

Rich Felker was enthusiastic at first, but quickly saw the software in question was patent pending:

On second thought, I will not offer any further advice on this. The website refers to “patent-pending technology”. Software patents are fundamentally wrong and unless you withdraw this nonsense you are an enemy of Free Software, of programmers, and users in general, and deserve to be ostracized by the community. Even if you intend to license the patents obtained freely for use in Free Software, it’s still wrong to obtain them because it furthers a precedent that software patents are valid, particularly stupid patents like “applying vectorization in the obvious way to existing problem X”.

There were also doubts presented regarding relevance of this research at all, along with suggestions for better methods. While interesting, they are outside the scope of this blog post.

A patent is a state-granted monopoly designed to stimulate research, yet frequently used to stop competition and delay access to new knowledge. Both Mises Institute and Electronic Frontier Foundation have written many articles on patents which I highly recommend for more information. In addition, as an excellent overview of the issues regarding the patent system, I can recommend the Patent Absurdity: How software patents broke the system movie.

So, there was a guy from the idealistic academia, who from my perspective seemed to take the wrong stance. And there was a guy outside of the idealistic academia, and was seemingly taking the right stance. It made absolutely no sense at first that the academia was working against freedom and an outsider was standing for freedom. Then it finally hit me: the academia and the free software community do not hold the same ideals and do not pursue the same goals. And this was also the moment I chose my side: the free software community first and the academia second.

However, academics tend to be very creative in proving they care about freedom of knowledge. Section 9 of the paper (the only part of the paper I read) goes:

A Simon Fraser University spin-off company, International Characters, has been formed to commercialize the results of the ongoing parallel bit stream research using an open source model. Several patent applications have been filed on various aspects of parallel bit stream technology and inductive doubling architecture.

Whoa, open source and patents. What’s going on here?

However, any issued patents are being dedicated to free use in research, teaching, experimentation and open-source software. This includes commercial use of open-source software provided that the software is actually publically available. However, commercial licenses are required for proprietary software applications as well as combinations of hardware and software.

Were it not for the patents, but for the licenses, I would completely agree with this approach. “If you are open sourcing your stuff, you are free to use my open source stuff. If you are not open source, you are required to get a different license from me.” That is how copyleft licenses work.

The problem is, as Rich says above, every filling of a patent enforces the validity of the patent system itself. The patent in question is just a normal patent and this is precisely the problem. Furthermore:

From an industry perspective, the growth of software patents and open-source software are both undeniable phenomena. However, these industry trends are often seen to be in conflict, even though both are based in principle on disclosure and publication of technology details.

Unlike patents, free and open source software is based on the principle of free unrestricted usage, modification, and distribution. These industry trends are seen in conflict, and that is the right way to see them.

It is hoped that the patentleft model advanced by this commercialization effort will be seen as at least one constructive approach to resolving the conflict. A fine result would ultimately be legislative reform that publication of open source software is a form of knowledge dissemination that is considered fair use of any patented technology.

While it would certainly be nice if open source was protected from patent lawsuits, this tries to shift the focus from the real issue, which is the patent itself and restrictions it imposes.

Opening the patents

First possible solution is not to patent at all.

Second possible solution is to license the patent differently. Instead of being picky about the applications of the patent to decide whether royalties ought to be paid, which is the classical academic approach and also used above, one can simply license it royalty-free to everyone. This way, one prevents innovations from being patented and licensed in a classical way. This is what Tesla Motors does.

Third possible solution is to use the copyleft-style patent license, which allows royalty-free use of knowledge given that you license your developments under the same terms. The approach uses the existing patent system in a reverse way, just like the copyleft licenses use the copyright system in a reverse way. This can be seen as an evolution of what Open Invention Network and BiOS already do.

This approach still relies on giving validity to the patent system, but unlike the classical academic approach it also forces anyone to either go copyleft with their derivative patents or not use your technology. Effectively, this approach uses the patent system to expand the technology commons accessible to everyone, which is an interesting reverse of its originally intended usage.