extremprogrammering

(extreme programming, XP) – i programmering: ett arbetssätt som bygger på dagligt nära samarbete, ansikte mot ansikte, mellan en grupp programmerare och beställare. – Programmerarna arbetar i par. Man testar skriven kod mycket ofta (se test‑driven development), och utvecklar snabbt ett grovt fungerande komplett system som sedan finslipas i iterationer, det vill säga genom att hela systemet gång på gång omarbetas innan det levereras. Detta gör att man lätt kan anpassa systemet till ändrade krav. –  Extremprogramme­ring kan ses som ett sätt att systematisera det sätt att arbeta på som programmerarna själva brukar föredra. – Läs mer på webbplatsen XProgramming. (Se också Dilbert) – Jäm­för med agil systemutveck­ling.

[programmering] [systemutveckling] [ändrad 10 juni 2020]

inklusiv disjunktion

eller inkluderande disjunktion – logiskt villkor som betyder ”A eller B eller båda”. – Det 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 och 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 sant sant
sant falskt sant
falskt sant sant
falskt falskt falskt

[logik] [programmering] [ändrad 8 oktober 2019]

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 objek­torien­terad program­mering. – C++ utvecklades 1979—1985 av dansken Bjarne Stroustrup (stroustrup.com), då på Bell Labs. Han var in­spi­rerad av Simula 67, men han skrev språket i C. (C++ betyder C+1.) C++ fick snabbt stor sprid­ning, bland annat för att AT&T införde C++ som standard­språk. – Liksom före­gångaren C är C++ kraft­fullt och ger pro­gram­me­raren stora möjlig­heter till detaljstyrning, och liksom C har C++ brister, främst dålig minnes­hantering. – Angående ryktet om att Bjarne Stroustrup uppfann C++ bara för att skapa väl­betalda jobb åt programmerare, se webbplatsen Snopes (länk).

[programspråk] [skvaller och rykten] [ändrad 31 juli 2019]

heisenbugg

(heisenbug) – en bugg som för­svinner eller ändrar be­te­ende 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 Heisen­berg (1901—1976, se Wikipedia), den tyska fysikern som bland annat är känd för sin osäker­hets­relation (ju mer noggrant man fast­ställer en partikels position, ju mindre vet man om dess hastig­het, och omvänt). Närmare bestämt syftar ordet heisenbugg på principen inom kvant­­fysiken 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 28 maj 2018]

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 Vista) öppnar ctrl-alt-delete i stället ett fönster som visar användaren vilka program och processer som är aktiva, be­last­ningen på pro­cessor och minne samt ifall något pro­gram 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 tangent­­kombi­na­tionen ctrl-skift-esc för att stoppa en programkörning direkt. – Det var David Bradley (länk), då på IBM, som hittade på ctrl‑alt‑delete 1980 eller 1981. Den aviga tangentkombi­na­tionen ä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]

Hopper, Grace

Grace Murray Hopper
Datorpionjären amiral Grace Murray Hopper.

Grace Murray Hopper (1906—1992), amerikansk dator­pionjär och amiral. – Grace Hopper var på 1940‑talet med och utvecklade till­sammans med Howard Aiken på Harvard en av de första dator­er­na, Mark I. Efter kriget blev hon chefsmatematiker på Eckert-Mauchly Computer Corporation. Hon utvecklade där 1949 programspråket B‑O, som hon sedan vidare­utvecklade till Flowmatic. (Det kallas ibland för det första program­­språket, men Konrad Zuses Plan­­kalkül kom före.) Flow-matic blev i sin tur grunden till Cobol, som ut­veck­lades 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 ut­bildade sig som ung i mate­ma­tik och fysik, och var universitets­­lärare när andra världs­kriget bröt ut. Hon tog då värvning i flottan, som ansåg att hon skulle göra mest nytta som matema­tiker. Amirals­­titeln fick hon 1986 vid den ofri­vill­iga pensioneringen. Hon blev 1980 heders­­doktor vid Lin­kö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är­kel­sen Grace Murray Hopper Award delas ut årligen av ACM till hennes ära. – Se också Grace Hopper Celebration. – En intervju från 1986 med Grace Hopper i The late show med David Letterman finns på Youtube.

[grace hopper] [it-historia] [personer] [programspråk] [ändrad 25 januari 2018]

agil systemutveckling

(agile software development) – arbetssätt för system­utveckling som betonar snabb­­het, informellt samarbete, täta kund­kontakter och möjlig­het att ändra under arbetets gång. (Se agil.) Även krav­specifikationen bör kunna revideras. Det är en rörelse, inte en en­­hetlig metod. – Manifestet för agil system­­utveckling (länk) publicerades 2001 av en grupp pro­grammerare 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äm­­för med devops, chatops, noops, extrem­programmering, 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]

cellautomat

(cellular automaton, plural cellular automata) – mönster av rutor (celler) som förändras genom att varje ruta påverkar sina närmaste grannar. Cellautomater realiseras oftast som dator­­program, men de kan i princip köras med papper och penna. Man börjar med ett god­tyckligt 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 grann­cell­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 upp­­repas 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änd­lig­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 cell­automater 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. – En cell­automat är ett slags dator (en universell Turingmaskin) och kan i princip programmeras för att lösa alla problem som kan lösas med en dator. – 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. 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 är John Horton Conways (1937–2020, se h2g2) program Game of life (se Wikipedia) från 1970 (se artikel i Scientific American). – Läs mer i Wikipedia.

[datorvetenskap] [programmering] [ändrad 4 maj 2020]