Open source

Door mrlammers op woensdag 27 augustus 2014 11:44 - Reacties (25)
CategorieŽn: Maatschappij, Software, Views: 5.049

Open source is overal. Je ziet het iedere dag. In je auto, telefoon, navigatie, NAS, etc. Veel embedded systemen en servers draaien op een variant van Linux. Voor zo ongeveer alle internetprotocollen (welke veelal open zijn) bestaan open source implementaties, denk aan Ethernet drivers, WLAN drivers, TCP/IP stacks, maar ook netwerk applicaties. Zonder open standaarden en bronnen zou het internet niet kunnen bestaan. 80% van bellend Nederland gebruikt Android. Firefox, FileZilla en WordPress genieten grote populariteit. Ik ken bijna niemand die niet af en toe Wikipedia ergens op naslaat. Iedereen heeft weleens gehoord van Apache, FrostWire, Wireshark, VLC, OpenOffice en het ODF formaat. Tor en TrueCrypt zijn de laatste tijd genoeg in de publiciteit geweest. Linux gebruikers kennen allemaal GRUB, KDE, Gnome en applicaties als Wine, GParted, GIMP, VNC, etc. De lijst is oneindig lang. Er bestaan ook open hardware initiatieven zoals Arduino.

Open source lijkt een vlucht te nemen. Een paar jaar geleden hoorde je mensen zeggen: "Open Source? Nou, dat weet ik niet, hoor", en: "Is Open Source wel veilig genoeg?". Vandaag is dat niet langer een issue. De industrie lijkt open source te omarmen. Open source lijkt synoniem met innovatie en er is steeds meer ondersteuning uit diverse windrichtingen. De vraag of er open source in de infrastructuur mag worden opgenomen wordt eigenlijk niet meer gesteld.
Mensen lijken na te denken over veiligheid en de afhankelijkheid die commerciŽle gesloten producten met zich meebrengen. Mensen die zich niet met open source bezighouden, vinden het ook niet erg dat producten open source zijn.
Een veelgehoord geluid is dat open source projecten niet succesvol zouden zijn. Slechts 17% van alle open source projecten is een succes - lees: een commercieel succes. Bijna de helft van de open source projecten sterft een vroege dood, maar levert vaak technologische innovaties, optimalisaties van bestaande technologie, of nieuwe inzichten. De andere helft levert een bruikbaar product. Het is maar hoe je succes meet.

De meeste economen zijn het erover eens dat open source publiek goed is. Het originele werk kost geld, maar de kosten (en vaak ook de baten) van reproductie zijn laag. Het idee van open source is om de kosten te drukken door het verminderen van de beperkingen van auteursrecht. Dit zal leiden tot mťťr producten die op het voorafgaand werk gebouwd zijn en daarmee een groot sociaal en maatschappelijk voordeel opleveren.
Aanhangers van open source zien een lastenverlichting voor de maatschappij en een efficiŽntie voordeel wanneer er gebruikgemaakt wordt van licenties met beperkte rechten (GNU, CC), omdat we dan geen last hebben van een duur auteursrechtensysteem. Daarnaast lijken open source bewegingen transparantie en vrijheid boven inkomsten van auteursrechten te stellen.
Tegenstanders wijzen erop dat dit publieke goed verlies lijdt, en dat er daardoor geen nieuwe producten zullen ontstaan. Dit argument schijnt in het bijzonder op te gaan voor bedrijfsmodellen uit de vorige eeuw. Ondanks dat hier uitgebreid onderzoek naar is gedaan, lijkt het fenomeen terrein te winnen en zijn er blijkbaar andere drijfveren die de levensvatbaarheid van open source producten bepalen.

Nog geen 15 jaar geleden was de algemene opvatting dat je met open source software geen geld kon verdienen, omdat je de bron immers weggaf? Bill Gates zei ooit: "We think of Linux as a competitor in the student and hobbyist market but I really don't think in the commercial market we'll see it in any significant way." Grappig toch, dat Microsoft nu een eigen open source platform heeft en dat de open source boeren nu miljarden verdienen. En laten we ook niet vergeten dat de producten van Google, Facebook, Square, LinkedIn en Twitter hun succes mede te danken hebben aan open source.

Open source initiatieven blijken vaak beter te werken als de ontwikkelaars ook de gebruikers zijn. Zo krijg je producten die naadloos aansluiten bij de functionele behoeften van de community en worden daarom vaak als succesvol beschouwd. We kennen allemaal SourceForge. Daarnaast bestaan er initiatieven als de Apache Software Foundation, IBM DeveloperWorks, Google Developers, Apple Developer en CodePlex. Hier komen ieder jaar honderden nuttige stukken code vandaan die soms ook nog terug te vinden zijn in commerciŽle producten.
Door globalisatie en het internet is het makkelijker om de grote gemeenschappelijke deler te vinden en aan te sluiten bij bestaande initiatieven. Het succes van open source zit blijkbaar niet in onderwerping van de wereld, of uit te groeien tot een miljardenorganisatie, maar technologisch significant bijdragen aan het landschap door innovatie, optimalisatie en standaardisatie en daar het verschil kunnen maken. Maatschappelijk is het ook belangrijker dat er een ecologie bestaat waarin ruimte is voor een veelheid aan producten, die transparant en uitwisselbaar zijn, alleen dan is er ruimte voor innovatie, groei en intellectuele rijkdom.
In tegenstelling tot wat je bij proprietaire software ziet, zie je in de open source wereld regelmatig afgeleiden en afsplitsingen, 'forks' genaamd. En in tegenstelling tot wat je vaak hoort, zijn forks niet slecht; Afsplitsen is een uitdrukking van de vrijheid die vrije software biedt. Naast dat het soms nieuwe inzichten geeft, is het ook een politiek instrument. Soms dwingt het ontwikkelaars bepaalde keuzes te maken, die uiteindelijk zullen leiden tot een beter product. Het zal niet de eerste keer zijn dat door politieke interventie een feature uit een fork de weg terug vindt naar het oorspronkelijke product.

De huidige verschuiving van client/server modellen naar cloud en mobiel zorgt voor nieuwe kansen en andere keuzes. CommerciŽle open source initiatieven zijn druk bezig om open source producten de voor de hand liggende keuze te maken. Belangrijk is dat bij vergelijking met de gesloten concurrent er net zoveel vakjes afgevinkt kunnen worden. Waar de closed source producten volledig op zichzelf zijn aangewezen, genieten open source producten de steun van de community en werken ze vaak samen met tal van andere open source initiatieven. Keuzevrijheid en samenwerking, dat zijn de toverwoorden die de open source scheidt van proprietary.
Maar hoe goed het product ook is, uiteindelijk valt en staat succes toch met marketing. De marketing van de proprietary producent laat je al gauw geloven dat er behalve hun product weinig goeds in de markt te verkrijgen is. Hoe zorg je als organisatie dat je weet welke open source producten er zijn en hoe onderscheid je het kaf van het koren? Daar ligt een schone taak voor de commerciŽle open source boeren en system integrators.

Vechten met de commerciŽle propriŽtaire producenten heeft weinig zin, maar aansluiting zoeken, samenwerken met andere spelers in het veld en kansen pakken - dat zorgt ervoor dat je concurrerend kunt zijn. Openstack, Nebula, Drupal, Automattic, Android, OSSEC, en de Open Security Foundation hebben dat inmiddels bewezen.

Niet alleen de industrie heeft vrede gesloten met open source. Ook consumenten(producten) lijken gretig gebruik te maken van open platforms. Een mooi voorbeeld vind ik Steam. Het online game platform dat afgelopen jaar games voor Linux aan het assortiment heeft toegevoegd. Vandaag telt Steam meer dan 900 titels voor Linux en de SteamBox. Doordat dit steeds meer vaste vorm begint te krijgen, verschijnen er ook steeds meer grote titels. Zo gaan open source en closed source hand in hand.

We leven in een tijdperk van informatie technologie (big data, cloud computing, etc.) dat hťt platform bij uitstek is voor grootschalige samenwerking. Ik hoop dan ook dat de maatschappij de open source principes zal gaan begrijpen en zich zal realiseren wat een kansen er nu voor onze neus liggen. Stel je nou toch eens voor dat het open source model zal doordringen in de geneesmiddelen industrie en productie…

Ik ben in elk geval groot fan van de open source gedachte. Het idee van delen en ťchte samenwerking zal leiden tot innovatie en evolutie tot een ecologie waarin problemen sneller worden opgelost dan ze ontstaan. Dat is de toekomst.

Zenders in een vliegtuig

Door mrlammers op woensdag 1 februari 2012 12:09 - Reacties (17)
CategorieŽn: Maatschappij, Software, Views: 4.270

Waarom mag je nou ook alweer niet computeren of mobiel telefoneren in een vliegtuig? De maatschappijen willen ons graag laten geloven dat dit te maken heeft met de navigatie- en landingssytemen, etc. Maar helaas: Uit een onderzoek van het Nationaal Lucht- en Ruimtevaartlaboratorium (http://www.nlr.nl/?id=10377&l=en) blijkt dat communicatie en landingsgeleidingsystemen gebruik maken van ven frequenties tussen 1,5 MHz en 334 MHz. En dat de systemen in een vliegtuig tot 100 microvolts afgeschermd zijn. Met andere woorden: het apparaat in kwestie moet dus in dit specifieke frequentiegebied met meer dan 100 microvolts per meter interfereren.
De telefoons en laptops etc. gaan toch al gauw in de GigaHertzen en produceren geen velden die groot genoeg zijn om in de cockpit apparaten in de war te sturen. Er is daarom geen enkele wetenschappelijke reden om aan te nemen dat mobiele telefoons of laptops daadwerkelijk storingen kunnen veroorzaken in het domein van de luchtkapitein.

Maar wat is er dan wťl aan de hand? Nou, dat weet meneer Craig S. Wright: http://au.linkedin.com/in/craigswright. Wright was in dienst genomen door Boeing om de computer systemen van de 747 door te lichten. Zijn conclusie:
"For those who do not know, 747's are big flying Unix hosts. At the time, the engine management system on this particular airline was Solaris based. The patching was well behind and they used telnet as SSH broke the menus and the budget did not extend to fixing this. The engineers could actually access the engine management system of a 747 in route. If issues are noted, they can re-tune the engine in air."

Concreet: De Boeing 747 heeft een video systeem dat gebruikt maakt van het TCP/IP protocol. Dit video systeem is door een layer 2 VLAN gescheiden van de rest van de systemen: zo ook het Engine Management Systeem dat eenvoudig bereikt kon worden door source routing. Source Routing is een techniek waarbij de zender bepaalt welke route een pakketje volgt over een netwerk. Als het pakketje de router bereikt, dan gebruikt de router het pakketje in de header en stuurt het dan naar de volgende bestemming. Als je pakketjes dan instructies meegeeft, dan kunnen deze op de plaats van bestemming uitgevoerd worden. Dat is de simpele versie. ;) Zie ook: http://www.cisco.com/en/U...nd/reference/i1bookgt.pdf. De oplossing is simpel. Zorg ervoor dat de routing vastligt. Bij Boeing hadden ze nog nooit van TCP wrappers gehoord: ftp://ftp.porcupine.org/pub/security/tcp_wrapper.pdf.

Enniewee, het Engine Management systeem draaide op Solaris en gebruikte telnet in plaats van SSH, omdat de EM software vastliep op de SSH verbinding. Dit kwam door een bezuiniging op het ontwerp (nee, dat is geen grap). Het Engine Control Systeem was gescheiden van de rest van het LAN door NAT filters, die alleen het binnenkomende verkeer filterde, maar niet het uitgaande. Hierdoor was het systeem vatbaar voor shell shoveling. Shell shoveling is een techniek waarbij je met een remote sessie code uit kunt voeren op een ander systeem en de uitvoer weer op je eigen systeem terugkomt. Deze methode vereist enige kennis van de kwetsbaarheden in het systeem en je moet een script kunnen uploaden, maar de rest in kinderspel. Tools hiervoor zijn vrij beschikbaar. Populair zijn netcat: http://netcat.sourceforge.net/ en back-track: http://www.backtrack-linux.org/, fora (of is het forums?) genoeg (http://www.backtrack-linux.org/forums/showthread.php?t=23437) en je kunt dit gewoon op een regenachtige zondagmiddag leren.

Dus, wat betekent dit nu precies? Het betekent dat in theorie, mensen met minimale hacker skills en een laptop een Boeing naar beneden kunnen halen. Misschien als dit soort nieuws eens wat vaker de publiciteit raakte dat bijvoorbeeld de FAA de beveiliging iets strakker aanhaalt en haar systemen eens goed door laat lichten, voor het geval dat script kiddies dit ook lezen en zich dingen in hun hoofd gaan halen…
Dus, ingrediŽnten genoeg om minder professioneel een Boeing aan de grond te zetten. En daarom mag je geen apparaten met zenders gebruiken in een vliegtuig. :)

OpenGL

Door mrlammers op woensdag 30 juni 2010 15:13 - Reacties (3)
Categorie: Software, Views: 1.201

OpenGL is de markt uitgedrukt door Microsoft en heeft haar ‘moment’ gemist. Is het niet gemakkelijker om OpenGL te vergeten en DirectX te gebruiken, net zoals de rest van de wereld?
Het antwoord is nee. De simpele reden is dat OpenGL krachtiger is dan DirectX en door bijna alle platformen ondersteund wordt.

Het is publieke kennis dat OpenGL snellere ‘draw calls’ heeft dan DirectX. (Zie ook onafhankelijke publicaties van Nvidia) en het heeft vaak als eerste toegang tot nieuwe GPU features door API extensies van derde partijen.
OpenGL geeft je direct toegang tot de nieuwste grafische features op alle platformen, terwijl DirectX slechts eens in de zoveel tijd geŁpdate wordt; meestal met een nieuwe versie van Windows.
Neem nou de “tesselation technology”, waar Microsoft nu druk mee aan het promoten is, was al drie jaar aanwezig in OpenGL 2.0 extensies (met dank aan AMD). Zelfs jaren daarvoor was het al mogelijk om met behulp van ‘fast instancing’ en ‘vertex-texture-fetch’ gelijksoortige acties uit te voeren.
Ik heb geen idee welke nieuwe technologieŽn de komende jaren het daglicht zullen gaan zien, maar ik weet dat deze als eerste in OpenGL(-extensies) zullen zitten.

Microsoft heeft hard gewerkt aan DirectX 10 en 11, en veel performance issues zijn inmiddels opgelost, en bijna alle OpenGL functionaliteit is hierin ondergebracht. MAAR, er is 1 probleem: het werkt niet onder Windows XP! Heden ten dage gebruikt de helft van de gamers nog steeds Windows XP en daarom is DX10/11 geen optie. Als je dus op dit platform (en eigenlijk geldt dat voor alle platformen) voor de beste grafische ondersteuning wilt gaan, kies je voor OpenGL.

Als ik met ontwikkelaars praat, zeggen ze dat het ondersteunen van Linux of Mac verspilde tijd is. Maar, ik heb hier nooit bewijzen voor gezien. Blizzard zorgt er bijvoorbeeld altijd voor dat de release van de Mac-versies van hun games altijd tegelijk gaan met andere platformen; en zij zijn een van de meest succesvolle game ontwikkelaars ter wereld.
Toen John Carmack gevraagd werd op Rage een DirectX game was, antwoordde hij: "It’s still OpenGL, although we obviously use a D3D-ish API (on the Xbox 360), and CG on the PS3. It’s interesting how little of the technology cares what API you’re using and what generation of the technology you’re on. You’ve got a small handful of files that care about what API they’re on, and millions of lines of code that are agnostic to the platform that they’re on."
Als je elk platform kunt bedienen met OpenGL, waarom zou je je dan beperken door jezelf afhankelijk te maken van DirectX?
Zelfs als er voor jou alleen maar Windows bestaat (en voor veel mensen is dat helaas zo) bedenk dan dat de tijd komt dat je straks misschien je favoriete spel niet meer kunt spelen, omdat deze niet draait onder DX11, of omdat je doordat je WinXP gebruikt niet over de laatste DirectX versie kunt beschikken…
Bummer. Of niet dan?

OpenGL is een non-profit open standaard die gemaakt is om op elk platform over de hoogste grafische kwaliteit te kunnen beschikken die de hardware toelaat.
Het gebruik hiervan wordt verguisd door de monolithische monopolist die deze jonge markt domineert. Direct3D wordt de enige grafische API – enkel ondersteund door Windows en Microsoft houdt hiermee de game industrie in een wurggreep.
Volgens mij is de wereld is toe aan competitie en vrijheid om te kiezen, transparantie en hogere kwaliteit tegen lagere prijzen en een Microsoft-monopolie op gaming is als het hierom gaat slecht voor de gebruiker en voor de industrie.

Grappig hoe de geschiedenis zich lijkt te herhalen. Naast bijvoorbeeld de DeLorean en Betamax, zagen we in 1997 weer een mooi voorbeeld: Microsoft was bezig met een grootschalige campagne om Direct3D te promoten en snel “wist” iedereen dat het sneller en beter was dan OpenGL. Tot de dag dat Chris Hecker een boekje open deed over DirectX. Kort daarna deed John Carmack een duit in het zakje en zorgde ervoor dat alle games van Id Software op OpenGL gebaseerd werden en bewees daarmee dat je DirectX niet nodig had om high-end 3D games te maken.
Helaas had Microsoft de grotere zak geld en door het goed geoliede marketingapparaat was de wereld OpenGL snel vergeten.

Ik denk dat het weer eens tijd wordt dat iemand de sluier optilt, door de mooie advertenties heenprikt, en de wereld laat zien wat er nu echt aan de hand is.
Als je voor DirectX kiest, dan kies je of voor het gedateerde DX9, of voor DX10/11 waar nog geen user-base voor is.
Als je voor OpenGL kiest, krijg je de snellere en krachtigere grafische features voor alle versies van Windows, Mac en Linux, maar ook PS3, Wii, PSP, DS, en de iPhone!

Als je een game ontwikkelaar bent, doe dan je onderzoek, vergelijk de getallen en beslis dan voor jezelf wat het betere platform is. Sommige programmeurs prefereren de DirectX 11 API boven OpenGL, maar deze low-level APIs verdwijnen toch in een abstract layer, dus dat kan nooit de doorslaggevende factor zijn. Als er iets is aan OpenGL dat je niet aanstaat, kun je dat aangeven bij de OpenGL ABR – die zijn er voor jou!

Als je een Windows XP, Mac, of Linux-gamer bent, dan hoop ik dat je ziet dat DirectX de enige beperkende factor is en ervoor zorgt dat nieuwe games jouw platform niet zullen bereiken. Het enige dat jij eraan kunt doen is games kopen die OpenGL ondersteunen…