Google en Open Source

Google heeft meer dan 20 miljoen regels programmeercode vrijgegeven in meer dan 900 projecten. Veel programmeurs werken full-time aan open source projecten, anderen maken gebruik van het Google beleid dat elke werknemer 20% van zijn of haar tijd mag besteden aan eigen projecten om aan open source te werken. Een korte lijst van Google’s beste open source projecten: Android, Angular, Bazel, Brotli, Chromium, Closure Tools, Course Builder, Dart, Flutter, Ganeti, Gerrit, Go, gRPC, Google Web Toolkit, Guava, Kubernetes, LiquidFun, Native Client, TensorFlow, Tesseract OCR, V8 JavaScript Engine, WebM en ZXing.

Android (het mobiele telefoonplatform) en Chromium (webbrowser) springen er direct uit als projecten die iedereen kent. Maar ook Angular wordt heel veel gebruikt op diverse websites, van LEGO tot Healthcare.gov, en natuurlijk door Google zelf. De Google Course Builder, door Google gebruikt om online cursussen te maken rond Google producten, is ook open source en biedt dus de mogelijkheid voor iedereen om online educatief materiaal te produceren. Zonder extra kosten! Met Tensorflow kan je machine-learning software maken en Go! is een programmeertaal voor programmeurs die snel en efficiënt willen werken. LiquidFun is een animatieprogramma voor 3D games en Tesseract OCR is Optical Character Recognition software en wordt gebruikt om boeken te ‘lezen’. Gedrukte tekst wordt omgezet in digitale tekst, die dan later doorzocht kan worden.

Google is één van de bedrijven die haar groei en ontwikkeling te danken heeft aan Open Soure, en ook gul en vrijgevig aan de hele wereld teruggeeft wat ze zelf heeft gekregen: software, hele goeie software.

http://developers.google.com/open-source/projects

https://www.madewithangular.com/#/

https://www.google.com/edu/openonline/

Software Freedom Day

Zaterdag 17 september 2016 was het weer Software Freedom Day. Sinds 2005 wordt wereldwijd elk jaar de vrijheid van software gevierd. Dit jaar in meer dan 100 steden met meer dan 300 lezingen en bijeenkomsten. Op Curaçao wordt Software Freedom Day maar sporadisch gevierd. Toch zet de enige organisatie die zich bezighoudt met vrije software zich op de achtergrond voortdurend in. Stichting ‘Curaçao Open‘ oftewel Fundashon ‘Kòrsou Habrí’ is in 2011 opgericht, en in dat jaar werd Software Freedom Day gevierd met het lanceren van de papiamentstalige spellingscontrole voor Libre/OpenOffice. We vieren dit jaar dus het eerste lustrum van Kòrsou Habrí!

In 2011 werd de opensource spellchecker gelanceerd, dit in samenwerking met Fundashon pa Planifiká di Idioma (FPI). FPI leverde de 18.000 woorden uit het ‘gouden boekje’ onder een Creative Commons licensie en daarmee kon de stichting aan de slag. Een maand later kwam uit onverwachte hoek hulp: Manuel Ortega uit Spanje gebruikte dezelfde woordenlijst voor Firefox en Thunderbird. In 2015 werd met behulp van het Participation Programma van UNESCO een conferentie belegd op Curaçao met als titel ‘Papiamentu/o in de digitale wereld’. Behalve een conferentie met verschillende sprekers uit Bonaire, Aruba, Nederland en Curaçao, werd er ook een update van de open source spellingscontrole uitgebracht.

Een ander project van de stichting is ‘Nos Ta Konektá’, een project waarbij kinderen uit een achterstandswijk een jaar lang een laptop in bruikleen krijgen en elke twee weken lessen volgen. De laptops zijn ‘Chromebooks’ en bevatten dus geen Windows maar open source software. In 2014/15 werd het pilot project in de wijk Rif te Otrobanda gehouden, dit jaar zijn we net begonnen met de wijken Souax, Nieuw Nederland en Seru Domi.

http://www.softwarefreedomday.org/
http://opencuracao.com/
http://www.nos-ta-konekta.com/

Open Source wordt volwassen!

Free Software en Open Source bestaat al sinds de jaren ’80 van de vorige eeuw. In het begin dachten velen dat open source iets voor nerds, hippies, communisten en idealisten was. Men dacht dat het onmogelijk was om kwalitatief goede software te maken zonder daar geld voor te vragen. Eind jaren ’90 werd er jacht gemaakt op open source softwareontwikkelaars. Via rechtszaken, patenten en de claim op ‘intellectueel eigendom’ werd open source in het verdoemhoekje geplaatst en menig ICT manager brandde liever zijn of haar vingers niet aan deze nieuwigheid. Open source was absoluut niet populair. Behalve bij de start-ups, de nieuwe generatie whizkids die vanuit Silicon Valley het Internet bestormden. Zij zagen in dat open source zorgt voor een ‘level playing field’, en dat kleine bedrijfjes met weinig kapitaal net zo krachtig en veel flexibeler kunnen opereren dan de grote ICT-bedrijven door gebruik te maken van open source. Rond 2000 schoten de dot-com bedrijven als mangrovewortels uit de grond, en na een turbulente tijd ontstonden er een aantal grote ICT-bedrijven die hun groei en omvang helemaal te danken hebben aan open source en die net zo machtig, of zelfs machtiger werden dan de ‘gesloten’ bedrijven. Vanaf de jaren ’10 van deze eeuw zijn de grote gesloten bedrijven ook begonnen het open source ontwikkelmodel te omarmen en draagt de grootste tegenstander van open source bij aan de ontwikkeling van gratis en vrije software. Bij de grotere bedrijven begint nu het besef te leven dat open source software ook goed gemanaged moet worden, dat er regels en wetten zijn, en dat wildgroei niet altijd bevorderlijk is voor de kwaliteit en duurzaamheid van software. De grote bedrijven hebben nu mensen in dienst die programmeurs helpen met de legale kant van open source, en om keuzes te maken binnen het enorme aanbod op basis van het bedrijfbeleid. Open Source wordt volwassen!

http://www.linux.com/news/how-google-uses-and-contributes-open-source

Open Source Gezichtsherkenning

‘t Is alweer Facebook dat met een bijzonder open source project komt. Deze keer is het de gezichtsherkenningssoftware die U al kent. Tenminste, als u foto’s op Facebook zet, en de vraag krijgt om uzelf en anderen te ‘taggen’. Facebook vergelijkt de foto dan met de vele opgeslagen profielen en ‘herkent’ bepaalde personen in de foto. Magie? Het lijkt er wel op maar het blijkt dus een op Kunstmatige Intelligentie (AI) gebaseerd stukje programmeerwerk te zijn dat nu als open source beschikbaar is. Deze software kan ook gebruikt worden om tools te maken voor blinden en slechtzienden. Wat te denken van een app die beschrijft wat je op een foto ziet? Volgens Piotr Dollar, een wetenschapper betrokken bij het project, is het belangrijk dat de software open source gemaakt wordt, omdat iedereen het dan kan gebruiken en meer mensen belang hebben bij verbeteringen. Als er een goede ‘community’ rond het product onstaat, wordt de software veel sneller beter, vervolgt hij. Uiteraard zijn er meer bedrijven en instellingen die dit soort software maken, zoals Google en de FBI. Facebook is echter de eerste en de enige die gebruik maakt van het open source ontwikkelmodel. ‘Facebook heeft een cultuur die open source hardware en software ondersteunt,’ zegt Dollar in een mail naar USA TODAY. ‘Vooruitgang in wetenschap en techniek gaat sneller als wetenschappers en techneuten niet alleen resultaten delen maar ook gereedschap en methodes.’

Dat open source een prima ontwikkelmodel is voor software is inmiddels al lang bewezen. Jammer dat de meerderheid van het IT-onderwijs op ons eiland daar heel ver achteraan komt hobbelen. Gelukkig zijn jongeren niet meer volledig afhankelijk van scholen en universiteiten en kunnen ze via open source en open courseware leren van diegenen die voorop lopen in de ontwikkelingen op dit gebied!

http://github.com/facebookresearch/deepmask
http://www.usatoday.com/story/tech/news/2016/08/25/facebook-open-sources-ai-image-recognition-software/89306084/
http://www.usatoday.com/story/tech/news/2016/03/23/facebook-accessibility-people-with-disabilities/82026554/

Open Source CPU

De Central Processing Unit of CPU is het ‘hart’ van elke computer. Een 2.1 gigaHerz Quadcore Xeon is een heel verschil met een 1 megaHerz 6502, zullen we maar zeggen. Ongeveer het verschil tussen de motor in de nieuwste Ferrari en die van een Solex brommer. Maar net zoals je het wel uit je hoofd zou laten om zelf een motor voor je auto te bouwen, kom je ook niet gauw op het idee om een CPU te maken. CPU’s worden gemaakt in grote fabrieken die in een ver land staan, ontworpen door honderden mannen in witte jassen en gebouwd door robots. Maar ook hier slaat open source onverbiddelijk toe.

Er is inmiddels een hele lijst met open source CPU specificaties, zoals OpenSPARC, OpenRISC, RISC-V en sinds kort OpenPiton. Meestal worden deze projecten op universiteiten bedacht en uitgewerkt, om van te leren, maar deze ontwerpen kunnen wel degelijk in een echte chip worden omgezet en ingezet worden in computerprojecten waarbij intensief gerekend moet worden. Is je ontwerp klaar en getest, dan kun je beginnen aan het ‘tape-out’ proces. De digitale blauwdruk van je nieuwe chippie stuur je dan naar een Foundry, dat is een fabriek in een ver land, waar de door jou ontworpen CPU geproduceerd wordt (door robots natuurlijk). Dit kan ook in kleine hoeveelheden, en dan moet je denken aan enkele honderden guldens per chip. Open Source maakt het mogelijk dat je tijdens je studie precies leert hoe een CPU in elkaar zit, en stelt je in staat om goedkoop een chip te produceren. En dat is altijd handig!

http://parallel.princeton.edu/openpiton
http://en.wikipedia.org/wiki/Central_processing_unit
http://www.sifive.com/
http://www.oracle.com/technetwork/systems/opensparc/index.html
www.pcworld.com/article/3111693/hardware/open-source-25-core-chip-can-be-stringed-into-a-200000-core-computer.html
http://en.wikipedia.org/wiki/Tape-out
http://en.wikipedia.org/wiki/Foundry_model
http://www.adapteva.com/andreas-blog/semiconductor-economics-101/

Powershell

Voor mensen die niet met Microsoft Windows werken, maar met een variant van Unix, is de command-line ofwel de ‘shell’ een bekend fenomeen. Bijna alles wat een systeembeheerder doet, gaat via deze interface waarbij geen muis nodig is. Windows had een heel beperkte shell, die eigenlijk bijna niets kan en alleen in noodgevallen gebruikt werd. De rest van Windows werd bediend door met de muis allerlei knopjes aan te klikken. Zo’n grafische interface is leuk, vooral voor diegenen die niet echt goed snappen wat er achter de schermen gebeurt, maar ook moelijk te automatiseren. Stel je wil elke computer elke week op vrijdag opnieuw opstarten. Je zou dan een programma moeten schrijven in deze trant: “Ga naar het start-menu linksonder (als het linksonder zit tenminste) en klik dan op Start. Ga drie vakjes naar boven en klik dan op ‘Afsluiten’.” Uiteraard gaat dat niet lukken! Daarom begon Microsoft in 2002 met het ontwikkelen van Monad, dat later PowerShell genoemd werd. Dat maakt het mogelijk om grafische elementen te bedienen vanuit een command-line interface. Dankzij PowerShell kunnen er onder Windows dingen gedaan worden die daarvoor niet mogelijk waren.

Sinds 18 augustus is PowerShell open source geworden! Deze gebeurtenis is een teken dat Microsoft inderdaad open source omarmt als een ontwikkelmodel voor software. De ‘strijd’ tussen Microsoft en Open Source lijkt langzaam beslecht, in het voordeel van Open Source. Op globaal niveau worden er steeds meer essentiële tools open source gemaakt, van webservers tot netwerkswitches aan toe. Daarom is het des te vreemder dat op Curaçao de meeste IT-ers nog steeds in het Windows-only tijdperk werken; dat er op scholen nauwelijks aandacht wordt besteed aan open source; en dat CORE nog steeds minder dan 1% open source software in haar datacenter gebruikt. Curaçao wil meedoen met de technologische ontwikkelingen volgens VVRP, BTP, en MEO – begin dan met het stimuleren van open source in alle hoeken en gaten van het overheidsapparaat en de scholen.

http://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/

Netflix en Vizceral

Netflix is één van de grootste ‘content-streaming’ bedrijven op het Internet. Netflix zorgt ervoor dat je films en series kan kijken via Internet, wanneer je maar wil. ‘Video on Demand’ wordt het ook wel genoemd, omdat je het programma kan starten en stoppen wanneer je wilt. Je bent niet gebonden aan de uitzendtijden van de TV. Nu zijn er miljoenen mensen over de hele wereld die tegelijkertijd via Netflix naar een film of serie kijken. En die kijken allemaal iets anders. In tegenstelling tot TV, waarbij op elk moment maar één signaal wordt uitgezonden waar we allemaal op af moeten stemmen, bestaat de stream van Netflix uit miljoenen individuele signalen. En dat kost heel veel bandbreedte, maar ook heel veel technisch vernuft.

Netflix heeft verschillende plekken over de hele wereld waar de films en series opgeslagen zijn. Maar als de verbindingen tussen die plekken niet goed werken, dan merkt de kijker dat. Dus zorgt Netflix ervoor dat er meerdere ‘wegen’ naar ‘Rome’ leiden. Als er dus ergens een verbinding uitvalt, nemen andere verbindingen dit zoveel mogelijk over. Om nu een mooi overzicht te krijgen over deze datastromen, heeft Netflix software gemaakt die nu open source is: Vizceral. Vizceral betekent zoiets als ‘instinctief’ of ‘onderbuikgevoel’, en de naam geeft aan dat het beheren van deze grote datastromen eerder intuïtief plaatsvindt dan via strakke formules. De Vizceral software helpt daarbij door strakke formules om te zetten in een grafisch aantrekkelijk geheel waarbij je direct het gevoel krijgt: daar gaat het goed, en daar gaat het mis. En dan is het zaak om daarop te reageren, correcties aan te brengen, nieuwe, snellere verbindingen aan te leggen en de problemen te voorzien en op te lossen. Vizceral zou gebruikt kunnen worden door telecombedrijven, door Aqualectra, en ook door VVRP om verkeersstromen te analyzeren.

http://github.com/Netflix/vizceral
http://github.com/Netflix/
http://techblog.netflix.com/2016/08/vizceral-open-source.html

Facebook steeds meer Open Source

Facebook timmert serieus aan de weg door een flink aantal projecten open source te maken. Dat past ook in de filosofie van open source, want als je het gebruikt, wordt je ook geacht terug te geven. En Facebook doet dat met volle overtuiging. Op de pagina ‘projecten’ worden de bijdragen van Facebook ingedeeld naar soort: Android, iOS, Web, Backend en zelfs Hardware. Ik zou me zo voor kunnen stellen dat hier op de UoC volop aandacht gegeven wordt aan dit fenomeen, want van wie kan je nou beter leren dan van een groot bedrijf dat miljoenen gebruikers elke seconde van de dag bedient? Facebook vindt echter ook dat open source ‘volwassen’ moet worden, en daarmee bedoelen ze: beter gedocumenteerd, beter beheerd, en betere code. De kwaliteit van open source software verschilt namelijk van project tot project. Een hoeksteen van het Web, de webserver Apache, heeft een enorm goede reputatie als het om kwaliteit, beheer en documentatie gaat. Er zit een grote stichting achter, die door verschillende top-tien bedrijven gesponsord wordt, en er zijn meerdere subprojecten ontstaan die allen van zeer hoog niveau zijn. Ook Postfix, Firefox, OpenOffice en OpenLDAP zijn voorbeelden van goed gedocumenteerde en goed beheerde software. Maar er zijn ook projecten die maar half af zijn, waar documentatie ontbreekt en waar te weinig mensen aan werken. De Facebook Incubator (alleen voor Facebook projecten) probeert hier wat aan te doen door geld beschikbaar te stellen om dit soort projecten te begeleiden op die gebieden waar briljante programmeurs vaak niet zo goed in zijn, namelijk documentatie en beheer. Of het idee aanslaat, weten we nog niet, maar het is in ieder geval verfrissend om te zien dat een organisatie op een heel ander niveau naar open source kijkt, en de processen die ermee samenhangen probeert te verbeteren.

http://code.facebook.com/projects
http://github.com/facebookincubator
http://tech.economictimes.indiatimes.com/news/internet/facebook-incubator-wants-to-change-the-way-open-source-works/53498339

 

Apollo 11 nu open source!

Apollo 11 – het ruimtevaartuig dat de eeste mens op de maan zette, als je dat gelooft – werd bestuurd door software. Die software is nu open source, en op github te vinden. De originele software is uitgeprint en gescand, en daarna in 2009 handmatig overgetypt en recentelijk op github gezet. (Github is dé plek voor open source!) Natuurlijk werd er in 1969 niet in Java of C# of PHP geprogrammeerd, maar in het wat moeilijker te volgen ‘assembly’. Die assembly was ook nog heel erg specifiek voor de chips die gebruikt werden in de maanlandingsmodule, maar desalniettemin voor de gevorderde nerd goed te begrijpen. Commentaar (opmerkingen die door programmeurs in software worden geplaatst om de software beter te kunnen begrijpen) laten ook voor leken zien wat nerd-humor is. Opmerking als ‘Tijdelijk! Hoop ik! Hoop ik! Hoop ik!’ of ‘Mysterieus getal’ zijn gewoon meegevlogen naar de maan en terug. En natuurlijk is er wel iemand zo gedreven om een simulator te maken en die online te zetten (in JavaScript notabene), dus als je de Apollo Guidance Computer zelf wil bedienen, dan kan dat. Hou wel rekening met zonnewind, 0.6 keer de aardse zwaartekracht en het feit dat je het oppervlak van de maan alleen via een telescoop kan zien. (Of, via Google Moon). Margaret Heafield Hamilton (1936) was de directeur van het MIT Instrumentation Laboratory, en ontwikkelde deze software. Dat is toch ook wel bijzonder, dat een vrouw de eerste man op de maan heeft gezet!

http://github.com/chrislgarry/Apollo-11

http://en.wikipedia.org/wiki/Apollo_Guidance_Computer

http://googlecode.blogspot.com/2009/07/apollo-11-missions-40th-anniversary-one.html
http://svtsim.com/moonjs/agc.html
http://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist)

 

Machines die Leren (2)

Machine learning (ML) is een deelgebied van de informatica dat voortkwam uit de studie van patroonherkenning en kunstmatige intelligentie. Arthur Samuel zei in 1959: machine learning geeft computers de mogelijkheid om te leren zonder dat ze expliciet worden geprogrammeerd. Dat klinkt misschien eng, maar aan de andere kant is het hartstikke handig voor zelfrijdende auto’s en allerlei andere toepassingen. Als u, net als ik, tien, twintig of dertig jaar geleden bent begonnen met programmeren, dan weet u niks van ML. Dat soort programmeren was misschien al wel in ontwikkeling op een prestigieuze universiteit, maar zeker niet op de miljoenen homecomputers die toen hun opmars begonnen. Intussen is het landschap veranderd. Met behulp van open source software zoals Tensorflow (oorspronkelijk gemaakt door Google) en ‘scikit-learn’, een Python bibliotheek, kunnen u en ik, en ook de nieuwe generatie whizkids, eenvoudig aan de slag met Machine Learning. Op het Internet staat een serie goede instructievideo’s waarmee iedereen zo aan de slag kan. Er zijn verschillende hoofdgroepen in ML, zoals ‘leren onder begeleiding’, ‘leren Zonder begeleiding’, en een mengvorm van de twee. Bij leren zonder begeleiding krijgt de computer een berg data en onttrekt daaruit bepaalde patronen. Een heel mooi voorbeeld daarvan is hoe Deep-Q (Googles kunstmatige intelligentie netwerk) Space Invaders heeft leren spelen puur op basis van de beelden op het scherm. ML houdt een belofte in voor de toekomst: op basis van enorme hoeveelheden data, voorspellingen te kunnen doen die het menselijk brein te boven gaan.

http://www.youtube.com/watch?v=cKxRvEZd3Mw&feature=youtu.be
http://www.youtube.com/watch?v=Ja2hxBAwG_0&feature=youtu.be
http://www.telegraph.co.uk/news/science/science-news/11435688/Google-network-learns-to-play-Space-Invaders-in-breakthrough-for-artificial-intelligence.html