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 both 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


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.)

Guest post: celebrating Graphics and Compute Freedom Day

Featured image: Wesley Caribe | Unsplash (photo)

Hobbyists, activists, geeks, designers, engineers, etc have always tinkered with technologies for their own purposes (in early personal computing, for example). And social activists have long advocated the power of giving tools to people. An open hardware movement driven by these restless innovators is creating ingenious versions of all sorts of technologies, and freely sharing the know-how through the Internet and more recently through the social media. Open source software and more recently hardware is also encroaching upon centers of manufacturing and can empower serious business opportunities and projects.

The free software movement is cited as both an inspiration and a model for open hardware. Free software practices have transformed our culture by making it easier for people to become involved in producing things from magazines to music, movies to games, communities to services. With advances in digital fabrication making it easier to manipulate materials, some now anticipate an analogous opening up of manufacturing to mass participation.

It is important to keep sharp open hardware’s more transformational edges, on agendas such as dismantling intellectual property and releasing investment for alternative business models. Only through a mix of craft, politics, and the support of social movements, will open hardware fully realise its potential to democratise technology.

There are numerous organizations and initiatives voiced and supported by the Open Source Hardware Association and a vast thriving community of supporters and technological enthusiasts that are doing to advance this core value. The Open Source Hardware Association aims to be the voice of the open hardware community, ensuring that technological knowledge is accessible to everyone, and encouraging the collaborative development of technology that serves education, environmental sustainability, and human welfare.

Technology and culture ought to respect user freedom. A year ago, AMD made a giant leap towards a fully open source Linux graphics and compute stack driver stack. While still offering proprietary hardware running proprietary firmware, having the driver and the libraries as open source opens potential for modification and performance optimization. In addition, it gives other GPU manufacturers, including NVIDIA and Intel, a standard to aim for. Finally, it gives hope that there will be further openness in the future.

This is why we celebrate Graphics and Compute Freedom Day, GCFD. We want to take one day every year to remember all the open standards, open source software, and open hardware that have made it into the mainstream in the field of computer graphics and GPU computing. It has been exactly one year since AMD has unveiled GPUOpen on 15th December 2015; let’s celebrate GCFD and let’s hope that this year is just a start of many more successful years of graphics and compute freedom.

GCFD will be hosting a livestream starting at 14:30 in Central European Time. Join at www.gcfd.stream.

Š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.

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.