emergens

uppkomst av komplexa företeelser genom samverkan mellan enklare komponenter. – Emergens innebär bland annat att fåtal lämpliga enkla regler kan ge upphov till oförutsedda och ändamålsenliga fenomen. Ett exempel är att en fågelflocks snabba kursändringar, som länge har ansetts svårförklarliga, kan simuleras med tre regler – se boids. Emergenta fenomen kan givetvis också vara oönskade och skadliga. – I programmering är det önskvärt att kunna utveckla styrsystem och andra program som bygger på ett fåtal väl valda instruktioner. Samspelet mellan dessa instruktioner ska då kunna hantera händelser som inte är beskrivna i systemet, eller kanske inte ens förutsedda – se emergent beteende. – På engelska: emergence.

[ai] [programmering] [23 april 2021]

inversion of control

(IoC) – det att koden i ett ramverk styr programflödet. – I traditionell programmering är det bara applikationerna som styr programflödet. Man kan säga att applikationens programkod anropar ett bibliotek eller ramverk för att köra programkod för rutinartade uppgifter. Men inversion of control innebär att det i stället är ramverket som anropar applikationen för verkställande av uppgifter. Det har att göra med utvecklingen av det grafiska användargränssnittet och webbaserade och molnbaserade applikationer. Många applikationer är nämligen byggda på ramverk och sammansatta av komponenter. Ramverket innehåller så att säga applikationens stomme. Programmerarens uppgift är då att specificera hur applikationen ska fungera, dels genom att välja komponenter (se bindning), dels genom att skriva programkod för särskilda uppgifter. Ramverket beskriver vad som ska göras, men komponenter och programkod anger hur det ska gå till. – Någon etablerad svensk översättning finns inte. Rakt översatt blir det invertering av styrning.

[programmering] [16 mars 2021]

verktygskedja

(toolchain) – en uppsättning programmeringsverktyg som används för att utföra en komplex programvaruutvecklingsuppgift eller för att skapa en programvaruprodukt. Det är ofta underförstått att verktygen används i en bestämd ordning.

[programmering] [4 februari 2021]

ordo

beteckning på ett sätt att uppskatta komplexiteten i typer av beräkningar. Noteras med bokstaven O och används för jämförelser av algoritmers effektivitet. – Antalet element i beräkningen, till exempel antalet ord som ska sorteras i bokstavsordning, ställs mot antalet steg i beräkningen. Då menar man inte antalet steg i ett specifikt fall, utan generellt för en typ av beräkning. Om det till exempel gäller att hitta ett ord i en lista som innehåller n ord är ordo O(n). Det vill säga att antalet steg i sökningen är proportionellt mot antalet ord i listan (n). Sedan kan det ju vara så att ordet man söker efter står först i listan, och då går sökningen fort, eller att ordet står sist i listan, och då tar sökningen lång tid. Det påverkar inte värdet på ordo. Det viktiga är att man aldrig behöver gå igenom listan mer än en gång för att hitta det sökta ordet. Ordo anger det största möjliga antalet steg i beräkningen (värsta fallet). – Andra beräkningar, till exempel att sortera tal i storleksordning eller ord i bokstavsordning, kräver att mängden tal respektive ord gås igenom flera gånger (om mängden inte redan står i rätt ordning). Då får man värden på ordo som O(n2), O(n3) eller O(2n). – När man beräknar ordo brukar man bortse från konstanter, och om beräkningen innehåller höga potenser kan man också bortse från lägre potenser. Att beräkna ordo är en överslagsberäkning, inte en exakt beräkning. – Man skiljer mellan stora O och lilla o: stora O anger det högsta möjliga värdet för antalet moment i en beräkning av viss typ, medan lilla o anger ett övre värde som inte kan uppnås, men nästan (ett asymptotiskt värde). – Det finns också omega (Ω), som anger det lägsta möjliga värdet, samt theta (θ) som säger att antalet moment i beräkningen är exakt proportionellt med funktionen av n.

[matematik] [programmering] [22 december 2020]

programming socks

Två ben iklädda tvärrandiga långstrumpor i blått och svart.
Andra färger finns.

programmerarstrumpor – tvärrandiga hellånga strumpor, ofta i vitt och rosa, som påstås göra bäraren till en bättre programmerare. – Programmerarstrumpor kan sägas vara ett mem som kan spåras till 2016, då ett företag publicerade en annons för något som, av någon anledning, kallades för ”programming socks”. De är särskilt vanliga i Kina och Japan.

[kuriosa] [ändrad 16 december 2020]

polymorf

som kan förekomma i många olika former. – När det gäller programmering, se polymorfism. (I andra sammanhang är substantivformen polymorfi.) Polymorfa datavirus – polymorphic viruses är datavirus som antar olika form i varje dator som de infekterar. De blir därför svåra att upptäcka. – På engelska: polymorphous eller polymorphic.

[programmering] [skadeprogram] [5 november 2020]

Ren’Py

ett programmeringsverktyg för berättelser och spel som ska visas med bilder. Programmering görs med ett ”skärmspråk” (screen language) som bygger på vanlig engelska. Man skriver skript ungefär som när man skriver filmmanus. Ren’Py utvecklades 2004 av Tom Rothamel (på Twitter) och har blivit mycket spritt. Ren’Py är skrivet i fri och öppen källkod. – Se renpy.org.

[programmering] [spel] [18 oktober 2020]