Jesper Vingborg Andersen

Enormt forskningsprojekt konkluderer: Flere eksterne konsulenter giver bedre kode

Har de slet ikke hørt om det studie fra Oxford Deductics, hvor en gruppe forskningskonsulenter matchede programmørernes git commits i mere end 300 offentlige udviklingsprojekter op med de tilhørende Jira tickets, og ved hjælp af machine learning i skyen udviklede en AI, der kunne skrive kode automatisk, alene baseret på mødereferater i den politisk udpegede styregruppe?

1. april 2018 kl. 08:03
Programmering i skolen deler eksperter: Skal der kode på skemaet?

Synes ikke at start med filosofi, etik, moral ud over at opfører sig ordenligt

  1. Hvis man tror, at filosofi bare er "moral og etik", så tager man grundigt fejl. Det er en forståelig fejl, for det er næsten altid de emner, filosoffer bliver bedt om at udtale sig om af vores journalister (som efterfølgende konsekvent fejlciterer dem), men alligevel. Filosofi er også disse emner, men det er også erkendelsesteori, videnskabsteori, idéhistorie og -- som nævnt -- logik. Hård, nådesløs logik, som i øvrigt også er afsættet for alle de moralske og etiske overvejelser. Logik er ganske enkelt et selvstændigt fag på studiets første år, og man kommer ikke videre, før man har bestået det.

  2. Jeg taler selvsagt ikke om filosofi på universitetsniveau. Det er på ingen ikke egnet til 0. klasses elever, men det er næppe en uovervindelig udfordring af tillempe et pensum, der indfanger essensen. Lidt ligesom at de lærer at læse "Søren og Mette" inden de går i gang med Martin Andersen Nexø.

Hvad angår resten af kommentaren, så er jeg faktisk ude i omtrent samme ærinde, jeg holder bare fokus på programmering på skoleskemaet.

16. februar 2018 kl. 21:52
Programmering i skolen deler eksperter: Skal der kode på skemaet?

Personligt mener jeg, at vi bør indføre filosofi allerede i indskolingen, og egentlig programmering kun bør tilbydes som valgfag fra mellemtrinnet og opefter.

Filosofi, spørger du? Ja. Essensen af filosofi, til forskel fra fx hyggediskussioner i kantinen, er målrettet begrebsanalyse, anvendelse af logik og rationelle ræsonnenter over komplekse problemstillinger med henblik på udledningen af nye erkendelser (meget kort opsummret), og det er i store træk det samme, man gør, når man udvikler software, hvad enten det er spil eller forretningskritiske systemer. Logik er iøvrigt et obligatorisk fag på filosofistudiet, så det er ikke en spor fremmed tanke for folk i de kredse.

Eller sagt på en anden måde: vi skal lære vores børn at tænke.

Men når dét er sagt, så bør vi bestemt -- og på alle tænkelige måder -- integrere IT i den øvrige undervisning, og i den sammenhæng kan forskellige former for programmering sagtens indgå i større eller mindre omfang, ikke bare i de "tekniske" fag, men over hele spektret.

Ydermere bør vi også overveje, om de nuværende fagstrukturer (der stammer fra 1800-tallet, og langt hen ad vejen er baseret på et forældet "Industri 1.0" paradigme) giver mening i disse tider, og hvordan IT kan hjælpe os i den forbindelse. Det virker absurd, at fx Wikipedia stadig ikke er fast -- og officielt -- integreret i samtlige fag, på linje med andre undervisningsmaterialer. Der er utallige lavthængende frugter i samme boldgade, og samlet set finder jeg dén udvikling langt vigtigere end spørgsmålet om programmering på skoleskemaet.

Under alle omstændigheder er jeg indædt modstander af, at programmering bliver reduceret til et spørgsmål om at lære det ene eller det andet programmeringssprog, men det er der vist heller ingen i dette forum, der er uenige i. Vi skal bare huske at minde vores politikere om det, ellers tror de, at Javascript-på-skoleskemaet er guld og grønne skove.

Og til Laila Jasmin Pedersen: LOGO (som er en simpel form for LISP) ville faktisk være et aldeles fremragende sprog til at lære generel programmering den dag i dag, men det er vist en anden snak :-)

16. februar 2018 kl. 13:23
Jo, vi skal tænke IT og sikkerhed på en ny måde

Jeg er ganske enig i dine principielle betragtninger, men jeg mener nu ikke, at vi ligefrem behøver at danne etiske komiteer og fagbevægelser og alt sådan. Jeg er ganske vist ideologisk farvet i det perspektiv (det er du vist også, så det går nok lige op ;-) ), men i kølvandet på den seneste tids voldsomme malware/virus/whatever angreb, hacker-spøgelset fra Rusland og valgtaktiske lækage-sager, er det blevet umådeligt meget nemmere at råbe politikerne op ... ja, de er ligefrem begyndt at råbe i munden på hinanden. De vrøvler stadig (bl.a. om overvågning), men i det mindste er det relevant vrøvl.

Mange virksomheder, store som små, har efterhånden også mærket følgerne af dårlig IT-sikkerhed direkte på bundlinjen ... senest Mærsk, der prisværdigt valgte at være helt åbne omkring affæren.

Der er stadig lang vej, før din punktliste er "standard operating procedure" (og derefter vil der stadig været meget at gøre), men der er da noget at arbejde med. Om ikke andet har vi professionelle fået en perlerække af højt profilerede rædselssager, som vi kan losse de sendrægtige i røven med.

3. juli 2017 kl. 13:52
Regeringen vil bruge internetfilter mod ekstremistisk propaganda

Er jeg den eneste der kommer i tanke om årene op til 2. verdenskrig? Og nej, det er ikke en nazi-reference.

Det er regeringen, der bygger en Maginot-linje, mens fjenden ruster sig til blitzkrieg.

11. oktober 2016 kl. 17:52
Politistaten Danmark ruller ensidigt spin udover alt

I de seneste år har jeg fulgt udviklingen på dette og beslægtede områder nøje, og jeg er nået frem til følgende konklusion:

Den første dag en nyslået minister sætter sig bag skrivebordet, ligger der en kuvert og venter. Ministeren åbner denne kuvert, ser indholdet og kaster et forvildet blik rundt i rummet, mens tanken "hvordan h..... har de fundet ud af det?" suser gennem deres hoved.

Hvem denne kuvert kommer fra, og hvad den konkret indeholder, det kan jeg kun gisne om, men jeg forestiller mig, at den også indeholder en lille note med noget i retning af følgende besked: "Vi holder fortsat øje med dig. Nærmere instrukser følger".

Det stinker langt væk af konspirationsteori, men det er efterhånden den eneste forklaring, jeg kan få til at give mening.

9. oktober 2016 kl. 20:32
Afskaf togene

De selvsamme teknologier (AI'ere, gode batterier, effektive ladestationer, bæredygtige transducere og meget, meget andet), der vil gøre selvkørende biler til en praktisk og relevant mulighed, vil gørealle transportformer mere effektive. Busser, fx, vil stadig være mindre bekvemme end autobiler, men de vil også stadig være meget effektive af cirka de samme årsager. Endnu mere, faktisk. Det samme gælder alle andre former for "transport pooling". De vil blive nemmere, hurtigere og -- fremfor alt -- allerhelvedes meget billigere.

Når dét er sagt, så glæder jeg mig helt vildt. Det vil være et kæmpe fremskridt. For mit vedkommende vil udsigten til billige taxaer, som jeg kan tilkalde ved at råbe til min smartphone, og hvor jeg ikke skal forholde mig til en tvær chauffør klokken fire om natten, når jeg bare vil hjem og pusle om mine begyndende tømmermænd, være en væsentlig forbedring af min livskvalitet. I resten af min dagligdag kan det da også få en vis indflydelse, men ellers gør jeg nok, som jeg altid har gjort: bruger apostlenes heste. Det er sådan, jeg har indrettet mit liv, og det fungerer rigtig fint for mig.

Andre har sikkert andre behov (der er faktisk folk, der cykler fordi de kan lide det), og det har jeg det helt fint med, men jeg vil ikke udvise nogen form for nåde, hvis en AI'er tror, at den er vigtigere end mig, uanset hvor mange mennesker, den slæber rundt på. Igen, jeg er totalt cool med selvkørende biler ... træerne vokser bare ikke ind i himlen, og hvis man tror andet, så er man i mine øjne en idiot, der ikke kan se udover ens egen næsetip.

Alt andet lige, så bliver jeg dog ikke rigtig lykkelig på transportområdet, før vi har flyvende biler.

12. september 2016 kl. 22:15
Hvad er det lige, der er så godt ved Lisp?

Hvad mener du? Så vidt jeg kan se udførte selv den første oversætter (FORTRAN I) constant-folding (side 9 i PDFen, højre søjle). Det er også noget der bliver gjort af stort set enhver oversætter nutildags,

Du har fuldstændig ret! Af en eller anden bizar grund blev "constant folding" til "currying" oppe i mit hoved, og det var det, jeg havde i tankerne, da jeg skrev løs.

I øvrigt kan min anbefaling for at "lære sig lidt LISP" udvides til " eller lidt Haskell", da sidstnævnte nok er betydeligt mere praktisk anvendeligt :-)

26. maj 2016 kl. 10:36
Hvad er det lige, der er så godt ved Lisp?

Problemet med at komme med konkrete eksempler er nok, at de fleste er "problem-problemer", der stammer fra den akademiske verden.

Constant folding (og en lang række lignende teknikker) er et klassisk eksempel på noget, der ville være hysterisk bøvlet at lave i et "normalt" programmeringssprog, men som nærmest er trivielt i LISP. Det er da netop også derfor, at folk, som roder med programmeringssprog, ofte bruger LISP. Vi andre får først glæde af det, når resultatet af den slags eksperimenter når frem til vores oversættere og fortolkere.

Alt i alt vil jeg dog anbefale, at man lærer sig lidt LISP af cirka de samme grunde som når Poul-Henning Kamp anbefaler, at man lærer sig maskinkode: Man bliver simpelhen en bedre udvikler, fordi man forstår mere af, hvad der foregår :-D

26. maj 2016 kl. 00:32
Hvad er det lige, der er så godt ved Lisp?

Dette svar falder velsagtens i kategorien ""Det forstår man ikke, før man har prøvet det", men hør mig til ende ;-)

Fordi LISP er et "programmerbart programmeringssprog" (kode er data, som kan manipuleres af kode), så kan man skrive programmer, som kan optimeres på virkeligt sjove (og værdifulde) måder.

Et klassisk eksempel er implementationen af en algoritme, der kan tegne en 3D-scene med et vilkårligt antal belysningkilder (en såkaldt raytracer). Den kan skrives i LISP på en sådan måde, at man kan skrive et andet LISP program, som indlæser det første program og spytter et nyt program ud, som er optimeret til eksempelvis to belysningskilder. Dette nye program vil altså være en specialiseret udgave af det generelle program, optimeret til et bestemt vinkling af input. Det sjove (og værdifulde) er da også, at det nye program vil være meget hurtigere.

Man kan altså skrive en generel implementation af en algoritme, og derefter spytte alle mulige varianter ud, som er specialiseret (og optimret) til særlige formål.

The bottom line: Det er lettere at skrive partielle evaluatorer i LISP end i noget andet sprog, og det kan -- for visse typer problemer -- øge en udviklers produktivitet med en faktor helt-vildt-meget.

Og, nej, selvom de færreste af os (inklusive undertegnede) nogensinde bliver stillet opgaver, hvor brugen af en partiel evaluator er lige til højrebenet, så bruger de fleste af os resultatet af partielle evaluatorer hver eneste dag: De fleste compilere har nemlig, på et eller andet tidspunkt i deres udviklingsforløb, været en tur igennem en partiel evaluator ... som oftest skrevet i en variant af LISP. Det viser sig nemlig, at en compiler er en partiel evaluering af en fortolker, og at det er meget nemmere at skrive en fortolker end en compiler.

25. maj 2016 kl. 14:53
Version 2’s læsere efter chatbotten Tay: Computeren mangler en frontallap!

Anne-Marie Krogsbøll:

Jeg har ingen generelle indvendinger mod dine betragtninger (og de specifikke er off-topic i.f.t. artiklen), min kommentar gik mere på den filosofiske side af sagen. De problemer, du peger på, er ganske vist en følge af udviklingen indenfor AI/machine learning/Big Data, men som de fleste andre af slagsen, er det stadig problemer, der hører hjemme i menneskenes verden ... indtil videre ;-)

30. marts 2016 kl. 12:47
Version 2’s læsere efter chatbotten Tay: Computeren mangler en frontallap!

Vi glemmer ofte, at maskinernes grundlæggende "problem" er, at de ikke har deres egne hensigter. Derfor har de heller ingen muligheder for at vurdere, om deres indlæring er hensigtsmæssig. Eller om deres handlinger "bærer frugt".

Et gennemgående træk ved alle de spektakulære eksempler på "maskinintelligens", som vi har set de sidste 10-15 år -- helt tilbage til Deep Blue -- er jo, at maskinerne aldrig er alene. De er omgivet af store teams af både maskineksperter (hardware såvel som software) og domæneeksperter (skak, medicin og alt muligt), som konstant giver dem alt muligt feedback. Disse teams svarer vel egentlig til de frontallapper, som denne artikel nævner, men det også fra dem, at maskinernes hensigter (deres målsætninger) stammer. De er deres lillehjerne, for at blive i terminologien.

Maskinerne har indtil videre ikke noget selvstændigt formål. De har ingen drifter, om man så må sige. Indtil de får det, så kan vi egentlig tage det ganske roligt, men derefter er alle scenarier mulige.

30. marts 2016 kl. 10:03
Programmører frygter machine learning: Computere overtager vores arbejde

Tre minutter efter, at den sidste udvikler bliver erstattet af noget AI, vil det meste af resten af menneskeheden også blive arbejdsløse ... dem, der overlever, altså :-D

9. marts 2016 kl. 17:07
Iværksætter: It-talenter skyr det offentlige

Jeg har ofte observeret, at når et medlem af et team, der udvikler hjemmesider, får børn, som rammer skolealderen, så vil følgende spørgsmål indfinde sig efter en ganske kort periode: "Skoleintra? Det kunne vi s'gu da lave på en weekend!"

Det slår næsten aldrig fejl. Hvad enten det er projektledere, grafikere, udviklere og hvad, der ellers huserer af jobtitler rundt omkring i IT-branchen.

Jeg er helt enig i, at myndigheder (og affilierede organisationer) generelt er temmeligt dårlige til at implementere IT-løsninger, og at de kunne lære meget startups (og af UK), men jeg tror ikke, at problemet er kravspecs i sig selv. Problemet er, at det er de forkerte kravspecs. Man støder da også ofte på den samme slags kvaler i private virksomheders IT-løsninger. Ikke i helt samme skala, men ikke desto mindre.

Efter min mening ligger hunden begravet i et meget simpelt forhold: Mange IT-løsninger er ikke tænkt som svar på brugernes udfordringer. Det er en løsning på beslutningstagernes (politikere såvel som virksomhedsledere) oplevede problemer. Og de befinder sig ofte på en helt anden planet.

Et klassisk eksempel er de vidt udbredte tidsregistreringssystemer, der i virkeligheden slet ikke skal bruges til at registrere tid. De skal nemlig først og fremmest bruges til at understøtte udsendelse af fakturaer (eller -- i offentligt regi -- som kontrolsystem), hvilket næsten uværgeligt medfører uoverskuelige grænseflader, der ikke har ret meget med brugernes virkelighed at gøre.

Og fordi offentlige IT-løsninger bliver besluttet udfra politiske mål, så er beslutningstagerne så godt som aldrig opmærksomme på, om brugerne er med på vognen. Der står sjældent noget om "user experience" i kravspecifikationer fra det offentlige.

Grunden til at de fleste private virksomheder er så meget bedre til det her er, at det er billigt at fejle. Dels fordi det er nemt at erkende, når man er på vildspor (bundlinjen skeler ikke til ideologiske kæpheste), dels fordi det ikke har kostet ret meget at gå igang, og sidst -- men ikke mindst -- fordi det simpelthen ikke bliver en success, hvis der ikke er nogen, der gider at bruge skidtet. Og så prøver man bare noget andet.

Hvis det offentlige skal blive bedre til at implementere IT-løsninger så må og skal det første og største punkt i alle kravspecifikationer handle om, at systemet rent faktisk er relevant for brugernes dagligdag, og gør den så smertefri og gnidningsfri som overhovedet muligt, hvad enten det er borgere, virksomheder eller det offentliges egne medarbejdere.

2. marts 2016 kl. 23:13
Applikationsudvikling rykker ud af it-afdelingen og bliver hvermandseje

Jeg elsker, når de siger "vi har lavet en Excel database" :-D

23. februar 2016 kl. 10:35
Applikationsudvikling rykker ud af it-afdelingen og bliver hvermandseje

Som professionel udvikler gennem mere end 20 år hilser jeg denne udvikling velkommen med et stort smil. Ligesom Excel og Visual Basic var det i 90'erne, og WordPress og Drupal er det i disse år, så vil den slags værktøjer blive en uudtømmelig kilde til nye, velbetalte opgaver.

Når lægfolk har brugt dage, uger eller måneder på at bakse en prototype sammen, og de enten mister overblikket eller indser, at deres ambitioner ikke står mål med deres evner ud i applikationsudvikling, så er de ofte mere end villige til at kaste gode penge efter nogen, der kan hjælpe dem med at gøre det ordentligt.

Der er utallige aspekter af programmering og udvikling, som ikke har ret meget at gøre med de konkrete værktøjer, man bruger i en given sammenhæng, og det er dilettantens adelsmærke, at han ikke erkender det, før det er for sent.

Bring it on! :-D

23. februar 2016 kl. 06:51
Livet uden Dr. Dobbs

Jeg har ikke så meget at tilføje, for det er cirka den samme historie her. Vi er jo også omtrent jævnaldrende. Jeg var dog mere til Abrash end til Jolitz'erne, men jeg læste dem begge med ildhu.

Those were the days :-)

17. december 2014 kl. 09:10
Er backendudviklere en uddøende race?

Lige præcis dén opdeling har længe irriteret mig, specielt når jeg for 117'nde gang skal "ud" i frontend og rydde op i en lidt for ambitiøs bunke HTML/CSS/Javascript, der bare ikke hænger sammen, og som ingen længere tør røre ved af frygt for at det hele brager sammen.

At være udvikler er i bund og grund et spørgsmål om tankegangen, ikke om hvilket substrat koden bliver afviklet i. De bedste (eller bare de nogenlunde kompetente) udviklere bevæger sig ubesværet gennem protokollerne, hele vejen fra præsentation over logik til lagring ... og hele vejen tilbage igen.

I 90'erne, da jeg lavede Windows applikationer, underholdte jeg ofte med at cirka halvdelen af mine projekter startede med at en kunde havde fået brygget noget sammen i Excel eller Access, som de ikke længere selv kunne overskue. I starten af 00'erne var det blevet til Dreamweaver/Frontpage, og de sidste 6-7 år har det mest været WordPress/Drupal. Jeg tænker at BaaS er det næste. Jeg frygter ikke fremtiden :-)

3. december 2014 kl. 12:43
Nationaliser KMD

Man kan jo diskutere, om borgerne vitterligt får mere indflydelse ved at nationalisere. Jeg, for mit vedkommende, er ret uenig i det synspunkt ;-)

21. august 2012 kl. 11:26
Nationaliser KMD

Argumentet omkring privatisering går ikke på, om private virksomheder er mere effektive end offentlige, men på at (ærlig) konkurrence leverer de ønskede incitamenter, hvad enten de går på pris, serviceniveau, sikkerhed eller andet.

Men, ja, der er mange myter vedrørende forskellene på private og offentlige virksomheder. De har alle dét til fælles, at de ikke holder til et nærmere eftersyn ... dette gælder fx også myten om at private virksomheder alene handler om at tjene flest mulige penge.

21. august 2012 kl. 11:24