Read more of this story at Slashdot.
Kleyguerth was having a hard time tracking down a bug. A _hasPicked flag was "magically" toggling itself to on. It was a bug introduced in a recent commit, but the commit in question was thousands of lines, and had the helpful comment "Fixed some stuff during the tests".
In several places, the TypeScript code checks a property like so:
if (!this.checkAndPick)
{
// do stuff
}
Now, TypeScript, being a Microsoft language, allows properties to be just, well, properties, or it allows them to be functions with getters and setters.
You see where this is going. Once upon a time was a property that just checked another, private property, and returned its value, like so:
private get checkAndPick() {
return this._hasPicked;
}
Sane, reasonable choice. I have questions about why a private getter exists, but I'm not here to pick nits.
As we progress, someone changed it to this:
private get checkAndPick() {
return this._hasPicked || (this._hasPicked = true);
}
This forces the value to true, and returns true. This always returns true. I don't like it, because using a property accessor to mutate things is bad, but at least the property name is clear- checkAndPick tells us that an item is being picked. But what's the point of the check?
Still, this version worked as people expected it to. It took our fixer to take it to the next level:
private get checkAndPick() {
return this._hasPicked || !(this._hasPicked = true);
}
This flips _hasPicked to true if it's not already true- but if it does, returs false. The badness of this code is rooted in the badness of the previous version, because a property should never be used this way. And while this made our fixer's tests turn green, it broke everything for everyone else.
Also: do not, do not use property accessors to mutate state. Only setters should mutate state, and even then, they should only set a field based on their input. Complicated logic does not belong in properties. Or, as this case shows, even simple logic doesn't, if that simple logic is also stupid.
Na een aardbeving van zo'n tien seconden met een kracht van 6,9 gisteravond op het Filipijnse eiland Cebu is het dodental hedenochtend opgelopen tot 69, en een verdere stijging wordt verwacht. Ook zijn er ruim 150 gewonden, waardoor de plaatselijke ziekenhuizen overbelast zijn. Ondanks meerdere naschokken, waarvan de sterkte met een kracht van 6, is er geen tsunamiwaarschuwing afgegeven. Ook bleef het vliegveld gewoon open, waardoor het vliegverkeer van de populaire toeristische bestemming niet gehinderd is. Veel meer beeld na de breek.
SocialSocialSocialSocial
Blockchains are still synonymous with the wild world of cryptocurrencies, but on Monday, 30 banks and SWIFT – the world’s most important cross-border payment service – made them an utterly mainstream part of the global financial system.…
Twee Nederlandse jongens van 17 jaar zijn aangehouden op verdenking van spionage voor Rusland middels een ‘wifisniffer’. Dat meldde RTL Nieuws vorige week. De aanhoudingen zijn het gevolg van een tip van de AIVD. Het gaf vele vragen over wat er dan strafbaar is aan wifisniffing.
Het plaatje bij de post (opklikken voor groot) is een willekeurige wifi sniffer tool. Technisch is het niet zo heel spannend: wifi is een vorm van radio, zodat je alle signalen kunt opvangen als je binnen bereik van een zender bent. Aan de pakketjes kun je aardig wat informatie zien, zoals je op het plaatje ziet.
Veel netwerken maken gebruik van encryptie, zoals WPA3 of voorheen WPA2. In zo’n geval kun je nog steeds wel de signalen opvangen, maar heb je alleen een versleutelde brij aan data. Daar kun je verder niets mee, tenzij misschien je de capaciteiten hebt van een staatsveiligheidsdienst zoals onze AIVD – of de Russische FSB of GRU natuurlijk.
Dat is relevant, want het nieuwsbericht noemt ‘spionage’, en dat zien we in artikel 98 Wetboek van Strafrecht:
Hij die een inlichting waarvan de geheimhouding door het belang van de staat of van zijn bondgenoten wordt geboden, een voorwerp waaraan een zodanige inlichting kan worden ontleend, of zodanige gegevens opzettelijk verstrekt aan of ter beschikking stelt van een tot kennisneming daarvan niet gerechtigd persoon of lichaam, wordt, indien hij weet of redelijkerwijs moet vermoeden dat het een zodanige inlichting, een zodanig voorwerp of zodanige gegevens betreft, gestraft met gevangenisstraf van ten hoogste acht jaren of geldboete van de vijfde categorie.Een datadump van een netwerk kan daar onder vallen, al is natuurlijk de vraag waaruit blijkt dat daarvan “de geheimhouding door het belang van de staat of van zijn bondgenoten wordt geboden”. Dat het versleuteld is of zelfs te herleiden is tot de ambassade van Canada, politiedienst Europol en Eurojust, is volgens mij wat weinig daarvoor. Aan de andere kant is ook weer niet vereist dat de informatie formeel gerubriceerd is als staatsgeheim.
Sinds afgelopen mei is daar nog een extra artikel bijgekomen, artikel 98d:
Met gevangenisstraf van ten hoogste acht jaren of geldboete van de vijfde categorie wordt gestraft hij die, wetende dat daarvan gevaar is te duchten voor de veiligheid van de staat, van zijn bondgenoten of van een volkenrechtelijke organisatie, voor de vitale infrastructuur, voor de integriteit en exclusiviteit van hoogwaardige technologieën, of voor de veiligheid van een of meer personen, opzettelijk in heimelijke betrokkenheid met een buitenlandse mogendheid … 2°.aan die buitenlandse mogendheid onmiddellijk of middellijk inlichtingen, een voorwerp of gegevens verstrekt.Dit artikel vereist dus enige samenwerking of aansturing door een buitenland, maar hier is dan weer niet vereist dat het gaat om geheimen zoals in artikel 98. De eis is nu of het gevaar voor de staat oplevert, of voor specifieke personen, of voor vitale infrastructuur. Dus: wat onthult die getapte data?
Een suggestie die ik her en der lees is dat de jongens wellicht met een evil twin aanval bezig waren. Daarbij doet hun kastje zich voor als een accesspoint van de organisatie zoals Europol. Werknemers van die organisatie zien dan dat accesspoint eerder (want sterker signaal) en hun laptop of telefoon probeert daar dan verbinding mee te maken. Afhankelijk van de configuratie kán het dan zijn dat het kastje wachtwoorden of certificaten toegezonden krijgt. Ook leuk voor de Russen natuurlijk.
Gezien de aard van het delict ben ik benieuwd of dit werkelijk tot vervolging zal leiden. Bovendien zal het waarschijnlijk dan het jeugdstrafrecht worden, waarbij het vonnis in principe vertrouwelijk is.
Arnoud
Het bericht Twee Nederlandse jongens (17) aangehouden om ‘spionage voor Rusland’ verscheen eerst op Ius Mentis.
NIEUWS - Sinds drie dagen wordt Marokko geconfronteerd met de grootste demonstraties sinds jaren. In 11 steden, waaronder Rabat, Casablanca, Marrakesh en Agadir gingen met name jongeren de straat op.
Er waren clashes met de politie die in grote getale was uitgerukt en er werden ten minste 200 mensen her en der opgepakt. De demonstraties waren georganiseerd, misschien moeten we zeggen aangejaagd, door een groepering, GenZ 212. Dat is een nieuwe groep en een nieuwe vorm van organisatie, omdat het gaat via ongenoemde figuren die zich manifesteren via een nieuw medium, dat pas enkele weken bestaat en waarop mensen met een gekozen naam kunnen communiceren via een zogenoemde Discord Server. Discord is uitermate populair bij jongeren – dat is namelijk de grootste bevolkingsgroep in Marokko, die is geboren tussen 1995 en 2010. En omdat GenZ 212 geen duidelijke leiders kent is het voor de regering moeilijk om haar reactie te bepalen.
De jongeren roepen leuzen tegen de corruptie en vallen de regering aan vanwege de miljarden die worden geïnvesteerd in drie nieuwe stadions en de modernisering van een aantal oudere, in verband met de wedstrijden voor de Afrikaanse Cup, later dit jaar, en de wereldcup in 2030 die Marokko gaat organiseren. Eén van de slogans is: “We willen ziekenhuizen, geen stadions” en betere gezondheidszorg is één van de eisen. De Wereldgezondheidsorganisatie geeft aan dat 25 artsen er 1.000 inwoners wenselijk is, maar Marokko komt niet verder dan 7,7. Er waren eerder wat verspreide onlusten over het feit dat veel slachtoffers van de aardbeving van 2023 nog steeds niet geholpen zijn. Maar het overlijden van acht vrouwen in Agadir eerder deze maand in een ziekenhuis waar ze hoopten een kind te krijgen, voerde de spanning op. Betere scholen en meer werk voor jongeren behoren ook tot de eisen.
Marokko’s premier, de biljonair Aziz Akhannouch, die tevens burgemeester van Agadir is, prees eerder deze maand de grootse verrichtingen van de regering in de gezondheidszorg waar ”vernieuwingen waren doorgevoerd, meer geld werd uitgegeven en waar in alle regio’s van het land ziekenhuizen werden gebouwd”. Maar de minister van Gezondheid Amine Tahraoui ontsloeg naar aanleiding van het overlijden van de acht vrouwen de directeur van het ziekenhuis en een aantal regionale gezondheidsfunctionarissen.
Het mocht niet baten. Hakim Sikouk van de Marokkaanse Vereniging voor de Mensenrechten bekritiseerde de harde manier waarop de politie tegen de demonstranten is opgetreden. Hij veroordeelde deze aanpak tegen jongeren die met sociale wensen de straat op gingen. Oppositiepartijen deden oproepen aan de regering om met de protesteerders een dialoog aan te gaan.