Zaboravite na PCChipovo mišljenje o Linuxu

Naslovna slika: Annie Spratt | Unsplash (fotografija)

Moja je generacija klinaca u Hrvatskoj zainteresiranih za računalnu tehnologiju kasnih 90-ih i ranih 00-ih odrastala uz informatičke časopise kao što su VIDI, Bug, PCChip i (danas nepostojeći) Hacker. Kako su računalni zasloni tada bili izrazito loši, tekst i slike su puno bolje izgledali prikazani na papiru pa su časopisi bili prikladan medij za prenošenje informacija. U doba prije široke dostupnosti širokopojasnog interneta (ADSL je u Hrvatskoj postao dostupan u većim gradovima tek tijekom 2003. i 2004. godine), preuzimanje softvera i multimedijskih sadržaja s interneta bilo je izrazito sporo i pripadni CD-i koju su dolazili uz časopise bili su odličan način za doći do istih.

Naravno, svi su časopisi bili prisutni i na internetu i ondje također objavljivali vijesti. Vremenom, porastom brzine interneta, popularnosti blogova, foruma i društvenih mreža, popularnost i fizičkih i digitalnih časopisa je opala, a pitate li klince danas, vjerojatno će vam reći da preferiraju video sadržaj pred tekstualnim.

Bio sam nemalo iznenađen PCChipovim ovotjednim člankom 5 fundamentalnih razlika između Windowsa 10 i Linuxa u kojem je izvjesni B.P. usporedio ta dva operacijska sustava u terminima otvorenosti i zatvorenosti, privatnosti, sigurnosti, ažuriranja i podrške za starije i/ili slabije mašine.

Uzimajući u obzir ciljanu publiku, radi se o solidno napisanom i nepristranom članku koji nakon argumentacije po svakoj od točaka čitatelju ostavlja na izbor koji će operacijski sustav koristiti:

No, na kraju dana vi odlučujete – Windowsi ili Linux?

Vrijedi naglasiti da je većina ovdje navedenih časopisa vrlo rijetko pisala o Linuxu i softveru otvorenog koda, fokusirajući se umjesto toga na Windowse i pripadni ekosustav softvera. To je jedan od razloga zašto sam ih osobno prestao kupovati: nakon Mozillinih inicijalnih uspjeha, postao sam uvjeren da na isti način možemo razviti i paket uredskih alata i operacijski sustav. Kako sam htio biti dio te priče, ovi časopisi bi me držali fokusiranog na teme iz Windowsa i pripadnog ekosustava softvera koje me nisu zanimale.

Još sam se više iznenadio po izlasku drugog nedavnog članka na temu Linuxa pod naslovom Zaboravite na Linux. Ovo su razlozi zbog kojih biste trebali ostati na Windowsima iz pera… ovaj, tipkovnice izvjesnog I.H. Taj je članak izrazito traljavo napisan i često težak za čitati, ali ovdje se nećemo baviti narativnom i pravopisnom sposobnošću autora, već isključivo kvalitetom argumenata koje nudi. Analizirajmo redom tvrdnje koje iznosi u članku.

Velik broj korisnika i danas lomi koplja na relaciji Windows – Linux. Neki kažu kako je Linux ono što bi svi korisnici na globalnom nivou trebali koristiti i to iz više razloga: besplatan je, radi se o ”open source” operativnim sustavima koji je podoban za izmjene i dopune korisnika i navodno za Linux postoji manje virusa i ostalih štetnih programa nego što je to slučaj kod Windowsa.

Ovo je točno.

No je li to zaista tako i jesu li pobornici Linuxa u pravu kada sve ovo navode kao glavne razloge zbog kojih je, da tako kažemo- Linux platforma bolja i više ”user friendly” od Windowsa?

Linux je više “user friendly”, samo je vrlo izbirljiv po pitanju toga koga smatra svojim prijateljima. 😉

Windows još od davnih dana slovi kao operativni sustav koji je osmišljen od jedne od ”onih tvrtki”, odnosno od tvrtki kojima je cilj proširiti se na što veći broj osobnih računala i bez da pritom vode stvarnu brigu o potrebama korisnika.

Jest, ali isto je i Red Hat Enterprise Linux i SUSE Linux Enterprise, Joyentov SmartOS, a zašto ne i Android.

Za razliku od Windowsa, Linux čim je ugledao svjetlo dana nekako je dočekao kao ”svjetlo na kraju tunela”, odnosno kao platforma koja će korisnicima biti adekvatna zamjena. S obzirom da je puno godina prošlo otkako je Linux prvi puta ugledao svjetlo dana i s obzirom da smo od tada do današnjih dana imali prilike usporediti nekoliko Linux-a i Windowsa, konačan odgovor ne ide baš na korist Linux-u.

Zbog čega je ipak Windows operativni sustav koji je isplativiji za korištenje (pogotovo na dugoročnom planu) i što je to gdje se Linux jednostavno ne može nositi s Windowsima – pročitajte u nastavku.

Ovdje nema argumenata.

Što je ono što vi kao korisnik želite od operativnog sustava koji koristite, bez obzira o kojem operativnom sustavu se radilo? Odgovor je vjerojatno da je operativni sustav kompatibilan i da za taj operativni sustav postoji adekvatan broj programa i aplikacija koje su kompatibilne s tim operativnim sustavom.

Ovo je točno.

Da, istina je da postoji određen broj programa koji su jednako kompatibilni i dostupni za Linux kao i za Windows (recimo 7-Zip i Irfan View), no činjenica jest da za Windows postoji cijelo mnoštvo programa i aplikacija koje na različite načine služe korisnicima za bolje upoznavanje računalom, računalnim sustavom, dok to kod Linuxa jednostavno nije slučaj.

Aktualna verzija Fedore, verzija 26, imala je na dan izlaska 53912 paketa softvera u svojem službenom repozitoriju (možete vjerovati na riječ ili ih prebrojati na nekom od brojnih mirrora), a za dodatne softvere postoje repozitoriji RPM Fusion, Copr i drugi. Vjerujem da bi i druge popularne distribucije imale slične statistike. Štogod “upoznavanje računalom” značilo (računam da autor ne misli na aplikacije za upoznavanje ljudi putem interneta za druženje i veze) tvrditi da na Linuxu “ne postoji čistavo mnoštvo aplikacija koje na različite načine služe korisnicima za bolje upoznavanje računalom” je naprosto pogrešno.

Što je s videoigrama? Opet, istina, postoji određen broj videoigara koje su dostupne za Linux (nešto više o njima možete pročitati u jednom od naših proteklih članaka, odnosno ovdje), no ako ćemo iskreno, to je kap u moru u usporedbi sa brojem i kvalitetom igara koje su dostupne za Windows (još pogotovo ako uzmemo u obzir da je velik broj starijih igara potpuno kompatibilan i sa Windowsima 10 zahvaljujući modu kompatibilnosti).

U Steamovoj biblioteci autora ovog teksta približno 50% igara radi na Linuxu, a slično je i kod drugih korisnika Linuxa s kojima ima kontakt i koje zanima gaming. Zatim, Steam za Windowse i neke igre u njemu, kao i velik broj igara van Steama je moguće pokrenuti preko Winea. To, dakako, ne pokriva sve igre koje postoje na Windowsima, ali reći da je broj igara koje se mogu igrati na Linuxu “kap u moru u usporedbi sa brojem i kvalitetom igara koje su dostupne za Windows” ne stoji, osim ako je kap veličine više od pola mora.

Koliko je mod kompatibilnosti koji postoji u Windowsima 10 uspješno izveden ne mogu reći, međutim, autor ovdje ne navodi jedan veliki problem izravno vezan uz kompatibilnost, a to je Microsoftov vendor lock-in inherentan u DirectX-u 12 i Windows Storeu. Naime, sve novije igre koje koriste DirectX 12 mogu se distribuirati samo kao UWP aplikacije putem Windows Storea, što ograničava njihovu prenosivost na Android, Linux i macOS. DirectX 12 nije podržan niti na jednom operacijskim sustavu osim Windowsa 10. Windows Store ne postoji niti na jednom operacijskim sustavu osim Windowsa i gotovo sigurno neće ni postojati. Nerealno je očekivati da će se taj problem u budućnosti riješiti, tako da možemo tvrditi da su igre koje koriste DirectX 12 zaključane i na Windows 10 i na distribuciju putem Windows Storea (ne možete ih, recimo, prodavati putem Steama ili Uplaya).

Otvoreni standard koji je alternativa DirectX-u 12, Vulkan, nema te probleme: uz Android i Linux, podržava Windowse od XP-a nadalje (što uključuje i 7, 8, 8.1 i 10). Upravo je podrška za Windows 7 vrlo značajan faktor obzirom da, dvije godine nakon izlaska verzije 10, podjednak broj gamera na Steamu koristi 7 i 10. Veliku podršku Vulkanu pred DirectX-om 12 daju legendarni studio za razvoj igara id Software, koji kaže da im odgovara upravo ta podrška za više platformi i starije verzije Windowsa, i hrvatski studio za razvoj igara Croteam, koji je, uzgred budi rečeno, prvi studio u svijetu koji je na tržište izbacio AAA igru s podrškom za Vulkan, The Talos Principle.

Istina je da i na Steamu postoji određen broj Linux igara koje su čak i besplatne, no to je još uvijek daleko od platformske podrške koju uživaju svi drugi operativni sustavi, ne samo Windows. Sve u svemu- softversko područje je za Windows platformu odlično pokriveno, dok za Linux, bez obzira na toliki broj godina koliko je Linux dostupan na tržištu, to isto ne može reći.

Pogledamo li podatke o broju igara, pritom ne razlikujući AAA i indie igre i brojeći svaku igru kao jednu igru, nalazimo 8547 igara za Linux i 13421 igara za macOS; macOS ih ima 50% više, ali radi se o istom redu velične. Naravno, 36169 igara za Windows je sasvim druga priča, ali treba uzeti u obzir da se mnoge indie igre rade prvo za Windowse, a zatim nikad za ostale operacijske sustave.

Obzirom da je Valve tek 2010. godine na Linux prebacio prvu igru (Team Fortress 2) i klijent za Steam, o gamingu na Linuxu nema smisla pričati o van tog sedmogodišnjeg razdoblja (uz časnu iznimku nekoliko ranijih naslova već spomenutog id Softwarea koji su prebačeni na Linux isključivo zahvaljujući entuzijazmu Johna Carmacka). U tih 7 godina, Steam je došao od jednog naslova do 8547, podršku za Linux je dodao i GOG.com, AMD je uspostavio sustav koji je donio visokokvalitne upravljačke programe otvorenog koda za grafičke procesore (NVIDIA i Intel su nastavili biti standardno kvalitetni kako su bili i ranije), pokrenut je GamingOnLinux koji mjesečno ima preko pola milijuna pogleda (u pojedinim mjesecima i bliže milijun), a dva subreddita na temu gaminga na Linuxu imaju desetke tisuća pretplatnika.

Je li ovo usporedivo s gaming scenom na Windowsima? Ni blizu. Je li vrijedno spomena? Smatram da svakako jest. Pokazuje li trend rasta? Bez daljnjega.

Još jedna vrlo važna stvar na koju korisnici vrlo često obraćaju pozornost jest dostupnost nadogradnji baze podataka operativnog sustava, odnosno dostupnost istih.

Znači, prosječan korisnik jako brine o nadogradnji MySQL-a/MariaDB-a i PostgreSQL-a? /s

Koliko često je neka nadogradnja baze podataka dostupna za Linux? Čak i kada jest dostupna, često se zna dogoditi da ta nadogradnja ”debelo” kasni za nadogradnjom koja je dostupna za Windows. Što je razlog tomu što nadogradnje za Linux kasne? Razlog, odnosno uzrok toga je logičan.

Pogledajmo. Fedorine nadogradnje PostgreSQL-a i MariaDB-a. Meni se, nakon brzinskog pregleda, čini da nadogradnje ne kasne za nadogradnjama koje su dostupne na stranicama proizvođača tih softvera, ali mi je vrlo jasno da autora zapravo ne zanimaju samo baze podataka i da vjerojatno ne zna o čemu priča.

Korisnici Windows operativnih sustava- i to samo ovih novijih Windowsa 7, 8, 8.1 i Windowsa 10 čine više od osamdeset posto sveukupnih korisnika računala na svijetu tako da je logično da će nadogradnje za te operativne sustave biti češće dostupne nego nadogradnje za Linux, čijih korisnika ima oko dva posto. Veća potražnja – veća dostupnost – što zajedno čini da neki operativni sustav bude ”iznad” nekog drugog.

Fedora 26 je imala 6389 nadogradnji u malo više od 3 mjeseca od izlaska. Kada bi Windowsi imali sličan broj nadogradnji, to bi značilo da Windows 10 od datuma izlaska (pred više od dvije godine) do današnjeg dana ima najmanje 50000 nadogradnji. Nažalost, podatke o broju nadogradnji za Windows 10 ne pronalazim, ali kada se priča o 20000+ nadogradnji za Windows 7, radi se o toliko operacija koje nadogradnje izvode, pri čemu svaka nadogradnja izvodi desetke, stotine ili tisuće operacija. Tako da je teško povjerovati da je Microsoft dosad izbacio najmanje 50000 nadogradnji za Windows 10, unatoč “većoj potražnji” posljedica koje je nekakva apstraktna “veća dostupnost”.

Kao što sam rekao, Windows operativni sustavi koji se danas najčešće koriste kod velikog broja korisnika su Windows 10, 7 i 8, s time da se Windows 8 slabije koristi od navedena tri. To je u svakom slučaju manje ako usporedimo ovaj broj sa brojem Linuxa koji se koriste.

Naime, prema nekim mjerenjima, postoji više od 100 ”podvrsta” ili verzija Linux operativnih sustava od kojih korisnik može odabrati onaj koji njemu najviše odgovara, ovisno o njegovim potrebama.

Kako je Linux softver otvorenog koda, realno je za očekivati da će svatko tko ima znanja i interesa napraviti distribuciju savršeno prilagođenu vlastitim potrebama. No, većina korisnika i dalje koristi neku od desetak (usudio bih se reći i manje) glavnih distribucija ili neku od njihovih derivata.

Kako odabrati Linux koji ”meni najviše odgovara?”

Vrlo jednostavno: iskoristite Distrochooser ili neki sličan alat, pročitajte neki od brojnih članaka na temu pa odlučite, a možete i pitati članove lokalne grupe korisnika Linuxa koje distribucije koriste i preporučaju.

Nemojte misliti da je odabir Linux operativnog sustava jednostavan. Za razliku od Windowsa čija se srž niti kroz posljednjih deset godina nije osjetnije promijenila, kod Linuxa to nije tako. Prije nego što korisnik odluči koji će Linux OS koristiti potrebno je dobrano proučiti koji bi bio najprikladniji za ono što korisniku treba. Naravno da će pobornici Linuxa reći da je bez obzira na sve Linux ”bolji”, ali treba biti realan.

Ako je problem u tome da treba dati zadani izbor za prosječnog desktop korisnika zainteresiranog za gaming, autor ovog teksta bezrezervno preporučuje Fedoru. Fedora se nije osjetnije promijenila od 2003. godine, osim što su temeljne vrijednosti u nekom trenutku formalno napisane i što je zajednica korisnika i doprinositelja projektu prilično narasla.

To je sve?

Ono što je uobičajeno jest da Windowsi budu ti koji će prvi dobiti najnovije drivere, nakon čega drivere dobivaju Mac OS. Linux-bazirani operativni sustavi su vrlo često ”sretni” ako uopće dobiju drivere kao takve. Jedino što Linux koliko-toliko tu drži uz bok s Windowsima i Mac OS-om je zajednica koja podržava Linux i čiji se članovi često sami potrude napraviti drivere za neke verzije Linuxa, što je i za svaku pohvalu.

Ovo je u prosjeku možda bilo točno 2002. godine, ali danas svakako nije. Nažalost, još uvijek postoji manji broj proizvođača hardvera koji ne daje upravljačke programe za Linux za svoj hardver, ali čak i tada zajednica problem često riješi sama. Što se tiče hipoteze da Linux dobiva drivere nakon Windowsa i macOS-a, bilo bi dobro da autor navede primjer za to što tvrdi. Naime, već navedeni NVIDIA i Intel dokazuju da više od desetljeća to nije slučaj u domeni grafičkih procesora, a AMD pokazuje da i druge kompanije razumiju važnost izrade kvalitetnih upravljačkih programa za Linux istovremeno kad i za Windows.

Ipak, koji se problem može javiti ako neki programer sam želi napraviti neki driver? Najčešći problem jest taj da driveri koje on osmisli i kreira budu bugoviti. Naravno da i Windows platforma, bez obzira na svu podršku ima problema s bugovima, o tome nema govora. No, Windows za razliku od Linuxa ima cijeli tim stručnjaka koji, odmah nakon što se neki bug pojavi, rade na rješavanju istoga, dok je kod različitih i mnogobrojnih verzija Linuxa to drugačije.

Točno je, recimo, da su 2007. upravljački programi za neke zvučne kartice bili bugoviti, ali ne i danas. Točno je, isto tako i primjera radi, da Qualcomm, jedan od proizvođača bežičnih mrežnih kartica, ima kod sebe zaposlene ljude koji na redovnoj bazi i to izravno u jezgru Linuxa dodaju poboljšanja upravljačkih programa za hardver koji proizvode i prodaju. Opet, ako autor ne priča napamet, bilo bi dobro da navede primjer za to što tvrdi.

Mislite li da je Linux jednostavan ili jednostavniji nego što je bio prije deset godina ili mislite da je jednostavniji za korištenje od Windowsa? Što god od ove tri mogućnosti da mislite, opet naravno mišljenja se razlikuju od korisnika do korisnika (naravno da će korisnici koji su naviknuli na Linux reći kako je on jednostavniji od Windowsa), no treba opet nekako pokušati biti realan i reći kako stvari stoje.

Da ste korisnik-laik, znači da nemate nikakvog posebnog iskustva u korištenju niti jednog operativnog sustava i da imate priliku koristiti Linux i Windows, koji bi vam bio jednostavniji? Odgovor je- Windows.

Windows je jednostavno puno više ”user-friendly”, pogotovo za korisnike-početnike nego što je Linux i to je jednostavno tako.

Ovdje nažalost nema argumenata.

Ako se niste dosad sreli s desktopima na Linuxu, pogledajte GNOME 3 i KDE Plasma i procijenite sami koliko je to više ili manje “user friendly” od neke verzije Windowsa.

Posljednje i najvažnije pitanje za kraj – Linux ili Windows? Koji je bolji? Ovisi. Ovisi jeste li korisnik kojemu je glavni cilj programiranje i rad sa ”open source” programima (kakav je Linux) ili ste korisnik koji želi da njegov operativni sustav ima kompatibilnost, jednostavnost sučelja i korištenja, široku dostupnost u pogledu programa i igara i operativni sustav na kojem ćete, recimo moći kliknuti na BS Player i bez problema pokrenuti neki film.

Na Fedori nećete imati BS Player, ali ćete  korištenjem aplikacije Softver lako naći neku od aplikacija koja izvodi video sadržaj. Aplikacija Softver je svojevrsni ekvivalent Google Playa i App Storea; kad imate trgovinu slobodnog softvera otvorenog koda nadohvat ruke, ne morate tražiti po internetu i instalirati softver sa slučajno nađenih web stranica te preuzimati sve rizike koji pritom postoje.

Sve ovisi o ukusima, o kojima se ne raspravlja. No ako spaate pod većinu običnih ili ”casual” korisnika – odaberite Windows.

Naravno da svatko od vas treba birati za sebe. No, ako spadate pod korisnike kojima je dosta već spomenutog Microsoftovog vendor lock-ina na Windows 10, DirectX 12 i Windows Store kojim bi oni sebi zauvijek osigurali tržište u doba kad više nisu konkuretni, Microsoftovog narušavanja vaše privatnosti kroz takozvanu “telemetriju” i toga da Microsoft odlučuje umjesto vas što će biti instalirano na vašem računalu, odaberite Fedoru.

tl;dr radi se izrazito lošem članku obzirom da većina stvari koje autor tvrdi su možda i bile točne 2002. godine, ali već 2007. godine su dobrim dijelom bile netočne i zasigurno su netočne danas.

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.