inklusiv disjunktion

eller inkluderande disjunktion – ett logiskt villkor som betyder ”A eller B eller båda”. När logiker säger bara disjunktion brukar de mena inklusiv disjunktion. – Inklusiv disjunktion betecknas i boolesk algebra med OR. I symbolisk logisk används tecknet ∨. – Vill­koret ”Sverige OR Norge” ger, om man söker i en databas, träff på alla poster som enbart nämner Sverige, alla som enbart nämner Norge och på alla sidor som nämner båda länderna. – Jäm­för med ex­klu­siv dis­junk­tion. – En sannings­värde­tabell för inklusiv disjunktion ser ut så här:

– Minst ett av påståendena A och B är sant (A ∨ B) :

A B A ∨ B
sant (Sverige) sant (Norge) sant (Sverige eller Norge)
sant (Sverige) falskt (inte Norge) sant (Sverige eller Norge)
falskt (inte Sverige) sant (Norge) sant (Sverige eller Norge)
falskt (inte Sverige) falskt (inte Norge) falskt (varken Sverige eller Norge)

[logik] [programmering] [ändrad 4 december 2022]

XMPP

eXtensible messaging and presence protocol – protokoll för snabbmeddelanden och närvarobaserade tjänster, skrivet i öppen källkod. Tidigare känt som Jabber. – XMPP är en öppen standard skriven i XML, och det an­vändes bland annat av Google i snabbmeddelandetjänsten Google Talk†. – XMPP skapades för att bli ett fritt alternativ till tjänster som ICQ och AIM. Vem som vill får använda XMPP och sätta upp ett XMPP‑baserat nätverk, och alla XMPP‑baserade klienter kan kommunicera med var­andra. – Standarden utvecklas av XMPP standards foundation (länk, tidigare Jabber soft­ware foundation).

[förkortningar på X] [meddelanden] [xml] [ändrad 16 augusti 2017]

C++

ett av de viktigaste program­språken, utformat för objektorienterad program­mering. – C++ utvecklades 19791985 av dansken Bjarne Stroustrup (stroustrup.com), då på Bell Labs. Han var inspirerad av Simula 67, men han skrev språket i C. (C++ betyder C+1.) C++ fick snabbt stor spridning, bland annat för att AT&T införde C++ som standardspråk. – Liksom föregångaren C är C++ kraftfullt och ger programmeraren goda möjligheter till detaljstyrning, och liksom C har C++ brister, främst dålig minneshantering. – Angående ryktet om att Bjarne Stroustrup uppfann C++ bara för att skapa välbetalda jobb åt programmerare, se webbplatsen Snopes (länk).

[c] [skvaller och rykten] [ändrad 31 juli 2019]

heisenbugg

(heisenbug) – en bugg som för­svinner eller ändrar beteende när man försöker kart­lägga den eller rätta till den. En vanlig orsak är race condition. – Ordet syftar på Werner Heisenberg (19011976, se Wikipedia), den tyska fysikern och nobelpristagaren som bland annat är känd för sin osäkerhetsrelation (ju mer noggrant man fastställer en partikels position, ju mindre vet man om dess hastighet, och omvänt). Närmare bestämt syftar ordet heisenbugg på principen inom kvantfysiken att varje försök att iaktta och mäta elementarpartiklar påverkar det man försöker mäta. – Läs också om mandelbugg och schrödinbugg.

[fel] [jargong] [programmering] [ändrad 7 juni 2022]

ctrl-alt-delete

samtidig nertryckning av tangenterna ctrl, alt och delete. – Det var datorns nöd­broms i äldre versioner av Windows och DOS. I senare versioner av Windows (från Windows Vista†) öppnar ctrl‑alt‑delete i stället ett fönster som visar användaren vilka program och processer som är aktiva, belastningen på processor och minne samt ifall något program har låst sig. Användaren kan då stoppa krånglande program eller stänga av datorn helt. – Men i äldre versioner av DOS och Windows stoppade ctrl‑alt‑delete aktiva program direkt. I senare versioner av Windows använder man tangentkombi­na­tionen ctrl‑skift‑esc för att stoppa en programkörning direkt. – Det var David Bradley (se Wikipedia), då på IBM, som hittade på ctrl‑alt‑delete 1980 eller 1981. Den aviga tangentkombinationen är vald för att man inte ska komma åt den av misstag. (Se också tröga tangenter.) – På Mac­intosh mot­svaras ctrl‑alt‑delete av cmd‑alt‑esc.

[användargränssnitt] [programkörning] [tangentbord] [ändrad 29 december 2019]

agil systemutveckling

(agile software development) – arbetssätt för systemutveckling som betonar snabb­­het, informellt samarbete, täta kundkontakter och möjlighet att ändra under arbetets gång. (Se agil.) Även kravspecifikationen bör kunna omprövas. Det är en rörelse, inte en enhetlig metod. – Manifestet för agil systemutveckling (länk) publicerades 2001 av en grupp programmerare som hade reagerat på strävan efter detaljerade kravspecifikationer, omfattande dokumentation och byråkratiserande metoder och processer. De bildade Agile Alliance (länk), och har sedan dess utvecklat verk­tyg och andra hjälpmedel. – Jämför med devops, chatops, noops, extremprogrammering, lean software development, Scrum och DSDM. – Se också artikeln ”Agile software development is dead. Deal with it” från 2020.

[systemutveckling] [ändrad 3 februari 2020]

Hopper, Grace

Grace Murray Hopper
Datorpionjären amiral Grace Murray Hopper.

Grace Murray Hopper (19061992), amerikansk datorpionjär och amiral. – Grace Hopper var på 1940‑talet med och utvecklade, tillsammans med Howard Aiken†, en av de första datorerna, Mark I†. Efter kriget blev hon chefsmatematiker på Eckert‑Mauchly Computer Corporation†. Hon utvecklade där 1949 programspråket B‑O, som hon sedan vidareutvecklade till Flowmatic. (Det kallas ibland för det första programspråket, men Konrad Zuses† Plankalkül kom före.) Flowmatic blev i sin tur grunden till Cobol, som utvecklades delvis under Grace Hoppers ledning. – Grace Hopper är känd för att ha infört ordet bugg i datorspråket, enligt legenden efter att hennes kollegor (inte hon själv) hade hittat en död mal (länk) i en krånglande räknemaskin. Ordet bug hade dock använts i liknande betydelser i flera hundra år, men debugging är Grace Hoppers skapelse. – Grace Hopper utbildade sig som ung i matema­tik och fysik, och var universitetslärare när andra världskriget bröt ut. Hon tog då värvning i flottan, som ansåg att hon skulle göra mest nytta som matematiker. Amirals­­titeln fick hon 1986 vid den ofrivilliga pensioneringen från flottan. Hon blev 1980 heders­­doktor vid Linköpings tekniska högskola (länk – se en bit ner). 2016 fick hon postumt USA:s Presidential medal of freedom, se denna länk. – Ända till sin död 1992 arbetade hon som konsult åt Digital†. – Utmärkelsen Grace Murray Hopper Award delas ut årligen av ACM till hennes ära. – Se också Grace Hopper Celebration. – 2020 meddelade Google (cloud.google.com/blog…) att företaget ska dra en undervattenskabel med namnet Grace Hopper Subsea Cable från New York till Bilbao i Spanien och Bude i Cornwall. Den togs i drift i september 2022.  – En intervju från 1986 med Grace Hopper i The late show med David Letterman finns på Youtube.

[datorpionjärer] [grace hopper] [it-historia] [programspråk] [undervattenskablar] [ändrad 2 januari 2023]

cellautomat

mönster av rutor (celler) som förändras genom att varje ruta påverkar sina närmaste grannar. – Cellautomater realiseras oftast som datorprogram, men de kan i princip köras med papper och penna. Man börjar med ett godtyckligt valt mönster – man fyller i siffror eller andra värden i några av cellerna – och ett antal regler. En regel kan till exempel säga att om summan av värdena i en cells granncell­er är över 10, ändra värdet i cellen till 1. Man tillämpar reglerna på alla rutor, och börjar sedan om på nytt med samma regler, så att nya mönster uppstår. Detta upprepas tills mönstret inte förändras längre. Det kan också sluta med en slinga (ett antal mönster upp­repas om och om igen). I sällsynta fall tycks mönstret förändras i oändlig­het. – Cellautomater kan köras i ett begränsat rutmönster eller på en obegränsad yta. Cellerna behöver inte vara rutor, utan kan ha andra former, och cellautomaten kan ha fler än två dimensioner. – Vissa enkla cellautomater upp­visar ett oväntat komplicerat beteende (emergent beteende). Det beror på vilka värden man har i utgångs­läget och vilka regler cellautomaten följer. – Det har bevisats att cellautomater är ett slags datorer (universella Turingmaskiner) och kan i princip programmeras för att lösa alla problem som kan lösas med datorer. – John von Neumann† hittade på cellautomater på 1940‑talet. Hans mål var att hitta en mekanism för att bygga strukturer som kan göra kopior av sig själva. (Detta hade händelsevis koppling till DNA, som upptäcktes 1953.) – Idén med cellautomater har vidareutvecklats av datorpionjären Konrad Zuse† i boken Rechnender Raum (Calculating space), från 1969 och av matematikern Stephen Wolfram i boken A new kind of science från 2002. Den mest kända tillämpningen av cellautomatens princip är John Horton Conways (19372020, se h2g2länk) program Game of life (se Wikipedia) från 1970 (se artikel i Scientific American). – Läs också om ZigZag. – Mer i Wikipedia. – På engelska: cellular automaton, plural: cellular automata.

[datorvetenskap] [programmering] [ändrad 27 mars 2023]

klass

i objektorienterad systemutveckling: ett antal objekt med gemensamma egenskaper. – Exempel: varje enskilt sparkonto i en bank tillhör klassen ”sparkonton” i bankens it‑system – de är instanser av den klassen. Varje sparkonto (varje objekt) innehåller individuell information (kontoställning, kontohavare, etcetera) som kan bearbetas av den programkod som alla objekt i klassen har gemensamt (metoder). Sparkonton kan i sin tur vara en subklass av klassen Konton. – Varje klass (utom den översta) ärver sina egenskaper, inklusive programkoden (metoderna) från närmast överordnade klass samt har ett antal egna tillägg och uteslutningar. Det innebär att en ändring i en högre klass automatiskt sprider sig (ärvs) till alla objekt i underordnade klasser. – Jämför med språket, där vanliga substantiv (som bil) motsvarar klasser. Individuella exemplar (min bil CPU 286) motsvarar objekt. Min bil är en instans av klassen bil. Om jag lär mig något nytt om bilar i allmänhet vet jag att det nya (troligen) gäller även för min bil CPU 286. – Klasserna kan ha subklasser (personbil). En klass har attribut (egenskaper, värden) och metoder (operationer som kan utföras). – På engelska: class.

[programmering] [systemutveckling] [ändrad 26 september 2018]