Pingora * Dans van 6 planeten * Veilig programmeren * Nucleair, mens en natuur * KDE Plasma 6
i-nieuws 6 na 6 ** February 29th, 2024 by wim.webgang **Pingora
Cloudflare zit in ieder geval al goed met de aanbevelingen van het witte huis op gebied van programeren. In 2022 heeft Cloudflare aangekondigd om Nginx (webserver-proxy-loadbalancer) te vervangen door een eigen software, geschreven in Rust met de naam Pingora.
Nginx werd oorspronkelijk geschreven in C, en diende eerst als snelle webserver. Maar al snel werd het meer dan dat, en het verkeer naar en van de webserver regelen, load balancer, werd een belangrijk onderdeel van nginx. Veel bedrijven gebruikten nginx als tussenpersoon voor websites die heel veel verkeer te verwerken kregen.
Maar Cloudflare werd zo groot, dat zelfs de mogelijkheden van nginx niet genoeg waren.
Wat konden ze doen?
Een optie was overstappen op een ander project, zoals envoy, dat meer aan de noden voldoet, maar dat houdt natuurlijk geen garanties in voor de toekomst.
Tot nu toe hadden ze allerlei eigen aanpassingen gedaan aan en rond nginx, dus ze hadden er wel wat kennis van, en ze zouden kunnen investeren in bv een fork van nginx, een eigen versie van nginx zeg maar.
Maar, merken ze op in hun blog, is nginx volledig in C geschreven, wat risico’s inhoudt wat veiligheid betreft, omdat C niet “memory-safe” is.
Dus blijft de optie om zelf iets te maken, om te beginnen vanaf nul. Dat is een grote investering natuurlijk, maar ze hebben voor deze weg gekozen. Ze begonnen aan het ontwerp van wat voor hen de ideale proxy zou zijn. Die moet toelaten om miljoenen aanvragen te verwerken op een snelle, efficiënte en veilige manier.
Daarbij dringen zich een paar principiële keuzes op, en één daarvan is de taal. Er werd gekozen voor Rust, omdat dat kan doen wat C kan doen, maar op een geheugen-veilige manier, zonder aan snelheid in te boeten.
Ze kozen er ook voor om hun eigen http library te schrijven. Er is altijd een conflict tussen het gebruiken van externe libraries, en daar helemaal conform mee blijven, of eigen software schrijven die misschien de http verbindingen afhandeld op een manier die afwijkt van de standaard.
Maar Cloudflare heeft veel verkeer tussen eigen servers en wil daar de volledige vrijheid hebben om te vernieuwen in de manier waarop ze die communicatie afhandelen.
Ze programmeerden het op zo’n manier dat hun “business logic” gescheiden is van de technische kant van de zaak.
Dat liet hen nu to om Pingora te “open sourcen”.
Het resultaat is een Rust framework voor het bouwen van programmeerbare network diensten.
https://www.nginx.com/
https://github.com/nginx/nginx/blob/master/src/core/nginx.c
https://github.com/cloudflare/pingora
https://one.one.one.one/
Dans van 6 planeten
HD 110067 is een ster die een beetje lijkt op onze zon, maar een beetje kleiner, zo’n 80 procent van de massa van onze zon.
Ze werd in 2017 voor het eerst beschreven en staat op een afstand van 100 lichtjaar van onze ster, de zon. Bij de observatie van het licht van de ster HD 110067 werd in 2020 een onderbreking van het licht vastgesteld om de negen dagen. Blijkbaar draaide er een planeet rond die ster, en die bleek zowat dubbel zo groot als onze aarde. In 2022 werd op dezelfde manier nog een planeet gevonden die rond de ster draaide. Met extra observatietechnieken werd nog een derde planeet gevonden die in 20 dagen rond de ster draait. Er bleek ook een verband te zijn tussen de omlooptijd van de planeten. Als de ene planeet drie keer rond de ster draait, draait de volgende planeet twee keer rond. Dat klopt van de eerste naar de tweede, maar ook voor de tweede naar de derde.
Stel dat er nog een vierde planeet zou zijn, en stel dat die ook volgens die 3/2 regel zou ronddraaien, dan kan je afleiden met welke frequentie die ronddraait. Er werd met andere methoden gericht gezocht, en gevonden: in totaal zijn er zes planeten, die volgens een systeem ronddraaien, dat overgaat in een 4/3 verhouding. Het hele systeem is een demonstratie van een theoretisch model, en het is sinds zijn ontstaan miljarden jaren geleden niet noemenswaardig verstoord geraakt.
Veilig programmeren
Het witte huis mengt zich met de software-ontwikkeilng. Het spoort ontwikkelaars aan om veilige programmeertalen te gebruiken.
Het gaat daarbij vooral over “geheugen-veilig”, en dat om de veiligheid van de resulterende software te verbeteren. Typische fouten in software die nefast zijn voor de veiligheid van de software zijn geheugenfouten als “buffer overflow”. Dit soort fouten teistert al tientallen jaren de softwarewereld, en het internet is een dankbaar platform om ze te misbruiken om binnen te geraken in een server.
Het is af te wachten wat die oproep oplevert, want in 2022 riep de NSA al op tot hetzelfde.
Typische bron van de onveiligheden zijn pointers in de programmeertaal C en C++. Een voorbeeld van een programmeertaal die dat probleem voorkomt is Rust, een “memory safe programming language”.
Het afblokken van die onveiligheden kan gebeuren in compile time en runtime checks. Maar er bestaat enorm veel code die geschreven is in C/C++ en die nog tientallen jaren zal gebruikt en verder onderhouden worden.
andere voorbeelden naast Rust: Java, Python, Swift, Go… (en Gambas?)
Nucleair, mens en natuur
De natuurbranden in de VS zijn niet alleen een ramp voor de natuur. In Texas hebben ze ertoe geleid dat een fabriek van kernwapens moest ontruimd worden. Alle niet-essentiële personeel werd geëvacueerd.
De overheid beklemtoonde dat het goed uitgeruste en getrainde brandweerkorps van de fabriek paraat bleef.
De wild om zich heen grijpende brand heeft de naam “Smokehouse Creek” gekregen.
KDE Plasma 6
De KDE community publiceerde woensdag trots de aankondiging van het uitbrengen van KDE Plasma 6.
Plasma 6 is aangepast aan de laatste versie van Qt, het application framework waarop het gebouwd is, en aan Wayland, de nieuwe grafische server voor Linux.
Ze zijn erg voorzichtig te werk gegaan met de veranderingen onder de motorkap. Als je deze versie installeert en gebruikt zou je niet mogen merken wat er veranderd is intern. Het enige wat je zou mogen merken is meer veiligheid, betrouwbaarheid, snelheid en aangepassing aan nieuwe hardware. Ze blijven ook voorzien in X11 sessies voor wie dat nodig heeft.
Meer details op…
https://kde.org/announcements/megarelease/6/
compiled by BCP v.0.6.4