torsdag, august 17, 2023

So, Nim (the programming language)

So what's up with Nim?

Nim is the only modern programming language that has understood the lessons coming out of the last 70 years of trials in the computational arena. There, I said it...

Nim grasps the essence of the concepts which has, at one time - or another been elevated to paradigm status and reduces them to useful tools. The OO and Functional paradigms are both dissected and anything superfluous removed with surgical precision.

Nim OO:

Since Nim modules provide encapsulation on a granular level it can dispense with the class oriented tyranny of managed languages like C# and Java. As well: with Uniform Function Call Syntax (UFCS) member functions are no longer relevant.

So what's left?

Well, an Object of course. Nims Objects are by default value types (structs) with unordered constructor semantics, encapsulation and optional inheritance (extend Root Obj). This is quite different from a Java Object, which can always only be a reference Object. This was such a problem for Java that recently a Record type with value semantics was introduced to that language. This of course as the realization dawned that modern CPU caches become completely inefficient when they're forced to pointer chase  - and that enforced reference semantics in OO relies on the v-table lookup - another abhorrently inefficient mechanism. 

Nims default dispatch is static (compiletime). To get multiple dynamic dispatch (runtime) one must use Object references (garbage collected pointer semantics) and explicitly stated methods. That's right: Nim identifies the actual purpose of a method (to provide runtime polymorphism via inheritance) and then demands that you use the keyword "method" to explicitly state your intent.

Functional Nim:

In Nim functions are first class citizens: a Nim function can take other functions as parameters and return functions as Closures all using arrow syntax (if you like). If you've ever written an anonymous class in Java to satisfy some interface simply to pass a callback - you've seen the pits of ritual hell and understand on a visceral level the deep burning pain inflicted by nested verbosity. Again, this was such a problem that Java had to come up with the "functional interface", which very simple definition is: an interface allowing only a single method. Surely, I have no business pointing out what a Freudian slip the concept of a "functional interface" constitutes.

Anyways - with the dissing Java business to one side (the OO bad side) -: the interest in functional was spawned by the nesecity for parallel due to the multicore solution to the death of Moores law. The hype cycle then predictably proceeded to elevate Functional to deity status - all the while now trashing the once upon a time equally deified OO "paradigm". But aside from the convenience of first class functions, closures and generic Filter, Map, Reduce what was the appeal of functional?

Well, the only truly relevant Functional proposition is the concept of purity. Where as the Class is the flawed instrument of OO encapsulation - that doesn't work: the lowly function and its derivative Closure is the Functional ditto that actually - functions. 

A function is considered pure when two conditions are met: 

1) given a specific input it must always return the same output, so that: it cannot rely on any state outside its scope that is not certifiably invariant. 

2) under no condition - what so ever - must the inner workings of the function - ever - result in any state change of any kind outside the scope of the function - ever! 

When these conditions are compiletime enforced you are guarantied to have no data-races no matter how many of these things you spawn in parallel. When you write a Nim function these guaranties are compiletime enforced.

So where are we at?

var c = 1

const d = 1

proc impureAdder(a:int):int = a+c

func pureAdder(a:int):int = a+d

method multipleDynamicDispatchAdder(a:Nr,b:AnotherNr):int = a.val + b.val


Likewise:

#invariant identifier - expression resolved at compiltime.

const a = [1,2,3,4,5,5].filterIt(it mod 2 == 0) 

#invariant identifier - expression resolved at runtime

let b = newHttpClient.getContent url 

#runtime variable initialization

var c = 1 

Do you know any language that make these distinctions? Probably not. Because they're all busy praying at the alter of some purism or other - driving themselves insane wandering the age old labyrinthic halls of pure mind and impure matter. Pragmatism is the rarest of commodities when dealing with human beings...

Per

tirsdag, maj 09, 2023

DW lies

Kommentar til DW:

 

"And we will all conquer the world! Because we will have a job - they [the Separatists] don't have it. We will have pensions - they don't have them. We will have the support of people - children and pensioners - they will not have it. Our children will go to schools and kindergartens, and they will sit in their basements [bomb shelters]. Because they can't do anything! That's how, that's how we're going to win this war. " - Petro Porosjenko - President of Ukraine from 2014 to 2019  

The war, which started in 2014, was a bloody Ukrainian effort to deny freedom and the right to their own language to the people of the Don Bass - which their Fascist volunteer battalions - like The Azov battalion, Ukrainian volunteer army and Right Sector shelled indiscriminately for 8 long years .  

 If you want to see former presidential candidate John McCain, Lindsey Graham and Petro Porosjenko further plan and instigate violence against the people of the Don Bass you can search for: "john mccain lindsey graham ukraine" 

  DW is telling lies and ignores the fact that Germany is once again sending its tanks to the eastern front to kill Russians - exactly 80 years ago the Tigers arrived for the offensive on Kursk, today the Leopards are arriving in preparation for the Spring Offensive: the blood debt (for those poor soldiers will likely end up dead) Ukrainians must pay to the West to secure further support.

 Per

tirsdag, marts 28, 2023

Lidt om konspirationsteorier

 PET fremlægger de neoliberales konspirationsteorier:

Ifølge PET er der personer med kapacitet, hensigt og mulighed for at planlægge angreb mod Danmark og danske interesser.

Joe Biden nævnes naturligvis ikke med navn..

Da Center for Terroranalyse sidste år fremlagde sin trusselsvurdering, dukkede begrebet anti-myndighedsekstremisme for første gang op. Ifølge PET er der nemlig personer, som mener, det er nødvendigt at bruge vold mod for eksempel folkevalgte og fagpersoner. Fænomenet blev set særligt på sociale medier i forbindelse med myndighedernes håndtering af corona-pandemien. Igen i år er begrebet nævnt som et fokusområde.

Det nævnes naturligvis ikke at denne "anti-myndighedsterrorisme" kunne have været affødt af en stødt stigene myndighedsterrorisme, aka: indgriben i den personlige ejendomsret og retten til at føre erhverv, trusler fremført mod borgere med den hensigt at tvinge dem til at efterkomme ulovlige ordrer. Indtrængning og indgriben i borgernes ret til at holde fest, vinterbade eller i øvrigt udføre deres erhverv. Jeg kunne blive ved, men hvad formål tjener det? -: Ingen, absolut ingen myndigheder bliver nogensinde holdt ansvarlige for deres kriminalitet. - Men måske det er derfor, at folk hidser sig op på internettet; jeg gætter bare...

I USA er stormløbet mod kongressen den 6. januar 2021 blevet fremhævet som en begivenhed, der viste en hybridisering af ekstremister.

Hvis der er nogen, der er forvirrede så forstår jeg det godt:

"This situation arose because of the refusal of the Ukrainian government to listen to and take seriously the concerns of the Ukrainian people," Carney said, adding that the U.S. supported dialogue between the government and the opposition.

Så hvornår er det man må? - : Jo, det giver PET selvfølgelig et indirekte svar på:

Niveauet af terrortruslen fra venstreekstremister vurderes til at være 'minimal', mens terrortruslen fra højreekstremister i Danmark følger det generelle trusselsniveau i vesten og fortsat vurderes til at være 'generel'.

 Og det er naturligvis ikke fordi, at venstreekstremister og folkene i PET deler paranoide vrangforestillinger; nej slet ikke: det er simpelthen fordi, de (venstreekstremister og PET) er ordentlige mennesker, og hvis man er uenig med ordentlige folk, ja så er man i sagens natur fortaler for uorden.

Kultledere udvikler typisk det samme patologiske mønster, hvor enhver modsigelse sanktionerer extreme reaktioner:

Kort sagt giver hybridiseringen ifølge CTA en ny form for ekstremisme, hvor særligt konspirationsteorier og desinformation på internettet spiller en stor rolle.

Hvor "konspirationsteorier og desinformation på internettet" er kode for et andet syn på tingene end det venstreekstremister og PET finder ordentligt. PET er i sagens natur legeanstalt for personer med psykopatiske træk, så deres paranoide forestillingsverden skal man tage yderst alvorligt.

Per

tirsdag, februar 21, 2023

Så kom Berlingske ud af busken

 

Berlingske mener: Løgn på løgn. Putins psykopatiske tale afslører hans svaghed

Hvornår får russerne nok af Putins syge krigspropaganda? Vi skal gøre det klart for den russiske elite, at der findes et alternativ til den mørke blindgyde, smadremanden Putin har ført Rusland ind i.

...

Den russiske magtelite var samlet tirsdag for at lytte, nikke og klappe til diktatorens tale, og seancen var som et gensyn med den uhyggelige stemning i Kreml i sovjettiden.

Mens den store leder fremsagde åbenlyse usandheder og meningsløse ideologiske fraser, så man tomme ansigtsudtryk og mekaniske reaktioner blandt publikum.

Talen indeholdt en perlerække klassiske Vladimir Putin-uhyrligheder, som han har gentaget, siden han 24. februar sidste år satte en blodig storkrig mod Ukraine i gang:


- Snippet fra Berlingskes leder d. 21-02-2023

Præcis hvad, der har afstedkommet denne infantile og besynderligt følelsesmæssigt labile tirade, udover selvfølgelig den indlysende afmagt, skal jeg ikke gøre mig klog på. Men det er i sig selv sigende, at den svaghed Berlingske her afslører og projicerer ud på det onde selv, synes at være en delt oplevelse blandt danske bladsmørere. Berlingske taler om løgn, men det er jo journalistisk praksis og skulle i sig selv ikke give anledning til ophidselse på en dansk (og nu er jeg høflig) såkaldt nyhedsredaktion...

Samlet er tilliden faldet med 11 procentpoint – sidste år mente 57 procent af alle danskere, at man generelt kunne have tillid til journalister – nu er det kun 46 procent.

Tallene fremgår af den årsrapport om medier i Vesten, som det ledende nyhedsbureau Reuters udgør. Her fremgår det, at tabet i tilliden kun overgås af få lande. Og typisk lande som vi ikke umiddelbart har lyst til at sammenligne os med.

Der gives absolut ingen gode grunde til på nogen måde at tage Berlingskes meninger alvorligt, og det demonstrerer denne sørgelige nedsmeltning på redaktionen jo så udmærket. 

Men så langt fra at gribe i egen barm og indse sin egen fallit, så vil Washingtons lille puddel hellere hidse sig op over problemer på østfronten - problemer som man i det regi selv har været med til at skabe: med løgne og fortielser af værste skuffe. - Og måske det er der, at skoen for alvor trykker: måske det, der ligger til grund for denne mærkværdigt hysteriske leder, er en gryende og højst ubehagelig følelse af skyld og skam? Men det ville naturligvis forudsætte at Berlingskes redaktion ikke består af en flok psykopater, der gladeligt og velvilligt ofrer hundreder af tusinder af ukraineres liv og levned på østfronten; efter sigende i forsvaret for et demokrati som man gladeligt lader Bruxelles  og Washington afmontere i smug - og en frihandel som man afskaffer med et pennestrøg, når lige det passer. 

Og det var vel egentligt det spørgsmål man burde ihukomme på redaktionen næste gang man copy paster sine "meninger" fra NYT: hvor i alverden blev de ting af som vi påstod at kæmpe for? Som de fordums kæmper, de teutonske riddere på østfronten med vold og magt udbredte den tro, at man skal vende den anden kind til, således foregiver Berlingske, at man kan sende skarpe våben til en krigszone uden at gøre sig til morder...

Per