Rune Glerup

Aprilsnar: Datalogisk brøler - C er alligevel ikke Turing-komplet

Det er en velkendt workaround at bruge embedded brainfuck til den type programmer. Alternativt kan man simulere en Turing maskine i preprocessoren.

1. april 2016 kl. 06:47
Statens It: Opdeling i 3 lag væsentligere end at skelne mellem fysiske og virtuelle servere

Det ser selvfølgelig lækkert ud med 3 tier i PowerPoint. Man skal bare huske på at ekstra kompleksitet i sig selv kan være en kilde til sikkerhedsproblemer.

19. august 2015 kl. 09:26
Heartbleed udnyttet til at stjæle patientinformationer fra amerikansk hospital

Adgang til hospitalspersonalets login-oplysninger via Heartbleed. Det lyder ikke som en bagatel i mine ører.

18. august 2015 kl. 16:33
Nu kommer bøden i e-Boks: Politiet tester Digital Post

Gider det overskud at digitalisere vidneindkaldelser? Jeg kan forestille mig at besparelsen er lille sammenlignet med det spild der opstår hvis bare få procent ikke opdager at de er indkaldt og derfor ikke fremmøder.

17. juni 2015 kl. 15:43
Ansatte vidste besked: Holdt på opkøbshemmelighed i to uger

administrerende administrerende direktør Torben Frigaard Rasmussen

Det kræver vist et wide format visitkort.

12. maj 2015 kl. 17:25
DR-vært glemte password og udskrev folketingsvalg ved en fejl

Her er et praktisk UI tip: Brug en tekst sammen med et farvekodet banner eller anden markering til at gøre det nemt for brugeren at se om det er et produktions- eller træningsmiljø.

11. maj 2015 kl. 10:33
Facebook vil selv hoste indhold for at forbedre brugeroplevelsen

Fordelen er trefoldig. Indholdsleverandørerne får nemlig lov til at beholde 100 procent af den annonceomsætning, de selv skaber på Facebook, mens det sociale medie vil tage 30 procent af de annoncekroner, som det genererer for medierne. Det er endnu uklart, hvordan dette skel sættes.

Er der nogen der kan foreklare dette så selv en programmør kan forstå det?

5. maj 2015 kl. 12:00
OneDrive for Business får bedre filstyringsmuligheder i browseren

Tillykke til Microsoft med lidt gratis (?) reklame i Version2.

11. marts 2015 kl. 13:05
NemID-pilfinger kritiserer test af NemID uden Java: 1 megabyte obfuskeret kode

Når man ser på outputtet af Pantons deobfuscator, ser det ud til at noget af koden er placeret i strengværdier der klistres sammen og afvikles med eval().

Det er normalt ikke en god idé i JavaScript fordi man skal overbevise sig selv om at man ikke kan komme til at afvikle kode fra en usikker kilde.

4. juni 2014 kl. 11:09
Oracle vinder over Google i Java-retssag - men kun halvt

Det er så vidt jeg kan forstå ikke præcist at tale om en sejr endnu.

Det dommeren har bedt juryen tage stilling til er om det er nødvendigt for dommeren at vurdere om API'er er beskyttet af ophavsret.

Juryen har vurderet at under forudsætning af at API'er er beskyttet af ophavsret så krænker Android denne ophavsret. Men dommeren vil senere træffe afgørelse om hvorvidt API'er er beskyttet af ophavsret. Og det er altså kun hvis dommeren afgør at det er tilfældet at Oracle har vundet på dette punkt.

Det er i øvrigt navne/signaturer på pakker/klasser/metoder der betegnes Structure, Sequence and Organization -- og altså ikke noget med "programmeringssprogets overordnede struktur".

8. maj 2012 kl. 11:28
Offer for stort ScanNet-nedbrud: Dedikeret server var ikke nok

5-10% omsætningstab over 2 dage er vel ikke helt i hegnet.

Selvom det bliver muligt at modtage betalinger igen efter 6 timer kan det godt tænkes at skade omsætningen hvis grafik og billeder ikke bliver vist på shoppen.

27. maj 2011 kl. 11:43
375.000 lønudbetalinger i fare på grund af CSC-konflikten

Det er mere at få "anvist et beløb" der har en betonstatslig klang over sig.

6. maj 2011 kl. 09:37
375.000 lønudbetalinger i fare på grund af CSC-konflikten

I dag har jeg lært at "få anvist et a conto-beløb" er statsligt teknokratjargon for "penge ind på kontoen i slutningen af måneden".

5. maj 2011 kl. 11:40
Lønkonflikt: CSC truer med lockout af 136 Prosa-medlemmer

Jeg mener at beskyttelse af frihedsrettigheder som ytringsfrihed og privatliv uden overvågning - også globalt - er en god liberal sag.

Der er så arbejdsmarkedsspørgsmål hvor PROSA er mere rød, men en samling socialistiske ballademagere kan man vist ikke med rimelighed kalde dem.

27. januar 2011 kl. 08:51
Scala-folk får 17 mio. kr. til at gøre sproget mere parallelt

Scala er ikke bare mere objektorienteret, det er mere type-sikkert end de fleste andre mainstream sprog. Det betyder desværre netop at flere koncepter introduceret, som f.eks. forskellen på Null, null, nil, Nothing og None. Så dette punkt er jeg nok ret uenig med dig i.

Med koncepter mente jeg i grove træk "language features". Alene det at objektsystemet i Scala er mere generelt end det i Java (fx ingen statics) betyder at antallet af koncepter er mindre.

Et andet eksempel er void. void er et keyword i Java, der betyder at en metode ikke har nogen returværdi. Det betyder at der findes to forskellige koncepter for metoder, som ikke passer ret godt sammen.

Hvis du fx har et interface Visitor hvor T er returværdien af visit metoderne, så kan du ikke have en Visitor instans af den type. (Man kan have en Visitor, men den eneste værdi der kan konstrueres af typen Void er null så man er nød til at skrive 'return null' i hver af visit metoderne.)

I Scala har alle metoder har en returværdi. Der er altså skåret ét koncept væk, så vi kun har én slags metoder at arbejde med. Man kan vælge at returnere værdien () af typen Unit, som er en singleton-værdi der ikke indeholder nogen information. Det svarer i alle henseender til en metode uden returværdi, men uden at introducere et særligt koncept for det.

Mht. de konkrete eksempler du nævner så findes null i Java. nil er et objekt, der repræsenterer den tomme liste, som også findes i Java via Collections.emptyList(). None er ikke en language feature, men én case for Option-typen der er en slags collection der kan indeholde ingen eller netop ét element. Java har næsten tilsværende Collections.singletonList(element) og Collections.emptyList(), og man kan sagtens implementere og bruge Option i Java.

Så hvis du med "koncepter" mener language features så har Scala lidt færre*, men mere generelle language features. Hvis du mener standardfunktioner og -typer, så har Scala flere idet det har sine egne og alle Java's.

  • mit bedste gæt for jeg har ikke talt efter

Jeg er ikke 100% sikker på hvad du mener her, men jeg gætter på det er din fortolkning af Fantom's middle-road approach med at binde til dynamiske typer hvor og når man ønsker. Det er ellers netop her vi har muligheden for at begrave stridsøksen imellem static og dynamic, en tendens man iøvrigt ser i andre mainstream sprog også som f.eks. C#.

Jeg hentydede egentlig til hensigtserklæringen om at typehuller ikke nødvendigvis er noget problem: http://fantom.org/sidewalk/topic/254

Fantom har ligesom Java (usikker) support for kovarians i collections. Det gælder dog så vidt jeg kan forstå kun for Map og List. For mig at se giver sådanne særtilfælde og ad-hoc regler et mere kompliceret sprog end ét med færre og mere generelle koncepter. Ref: http://fantom.org/doc/docLang/TypeSystem.html

Med hensyn til at bilægge stridsøksen mellem dynamisk så er det et spændende, aktivt forskningsområde at lave udtryksfulde typesystemer der kombinerer statisk og dynamisk typning.

Fantom er ikke state-of-the-art i det rum. Det som man typisk vil opnå er automatisk at få en høj grad af statisk sikkerhed og statisk dispatch hvor det er muligt (dynamisk dispatch baseret på et type tag er langsommere end et statisk dispath). Fantom's særlige dynamiske metodekaldsoperator -> gør at programmøren skal skelne mellem forskellige typer dispath og lave casts. Det er altså en lækker syntaks for manuelt at programmere med reflection og casts.

Jeg synes også at Fantom er et hyggeligt hack-as-we-go sprog. Jeg er dog uenig i at Fantom - i kraft af at det har et svagt og usikkert typesystem med ad-hoc regler og en lækker syntaks for reflection - bliver "simpelt" og dermed fortjener noget af Scala's opmærksomhed og ressourcer.

18. januar 2011 kl. 18:12
Scala-folk får 17 mio. kr. til at gøre sproget mere parallelt

Det rigtige svar er at sproget ikke er særligt minimalt. Scala blander en masse koncepter - hvilket får skeptikeren til at betvivle sproget. Der er simpelthen for meget blandet ind i sproget allerede nu til at der er meget rum for videre udvidelse. Scala er for Java hvad C++ er for C. Naturligvis har det både fordele og ulemper.

Jeg anerkender spektikerens vurdering at sproget ikke er "minimalt" på samme måde som fx Scheme er minimalt. Spørgsmålet er om det i de fleste sammenhænge er et mål i sig selv.

Det er misvisende at påstå, at Scala skulle være for Java, hvad C++ er for C. Faktisk klarer den objektorienterede kerne af Scala sig med færre koncepter end Java, fordi der er tænkt over at gøre de koncepter der er i spil generelle og kompositionelle.

I Java har man fx både (statiske og instans-) felter, metoder, initializers og konstruktorer. Der er indre klasser, statisk indlejrede klasser og anonyme klasser (med et sæt af regler for hvordan disse strukturer kan indlejres i hinanden og referere værdier i konteksten).

Scala befinder sig - sammenlignet med andre sprog i samme designrum (Java, C#) - slet ikke ude på overdrevet i antallet af koncepter. Scala's sprogspecifikation er da også en lille sag på mindre end 200 sider. :-)

Så alt i alt kan jeg godt forstå skeptikerens umiddelbare førsteindtryk at det er kompliceret. Men jeg vil hævne at hvad der opleves som kompliceret afhænger af hvad man sammenligner med og hvad man kender i forvejen. Min påstand er, at Java på mange punkter er langt mere kompliceret end Scala.

Go har faktisk nedarvning (konceptet er en embedding af en subtype i en anden, men essensen i det er det samme som nedarvning). Desuden har Go dynamisk dispatch

+1 og tak for den forklaring! Det gjorde mig klogere.

18. januar 2011 kl. 14:29
Scala-folk får 17 mio. kr. til at gøre sproget mere parallelt

Hej Casper

Nu har du selvfølgelig ret til din vurdering af Scala, men jeg synes det er lidt for letkøbt at kalde sproget for et miskmask.

Scala er mere objektorienteret end Java (og Fantom) idet det erstatter statiske funktioner og værdier med singleton-objekter, hvilket nedsætter antallet af koncepter og gavner kompositionaliteten.

Scala har derudover formået at trække på tidligere arbejde med at låne nyttige elementer fra funktionsorienterede sprog og har ikke blot funktioner, men også algebraiske datatyper og pattern matching. Det gør at rigtig mange typiske programmeringsopgaver kan implementeres i en meget ligefrem stil i stedet for at bruge mere komplicerede patterns.

At der er gjort et stort arbejde for at lave et rigt typesystem som muliggør mange programmer, kan vist også kun tale til sprogets fordel.

Go er et helt andet dyr der er interessant fordi det udelader komplicerede, men allestedsnærværende elementer som nedarvning og dynamisk dispatch.

Fantom har modsat Scala et "simpelt" typesystem og udviklerne bag er ikke kede af at det ikke er sundt.

Med hensyn til ressourcer, så har F# og Go store, pengestærke firmaer i ryggen, mens Scala udvikles af en teknisk højskole i Schweiz. Det er nok derfor du hører mere om hver gang Scala-teamet får lidt småpenge at udvikle for.

18. januar 2011 kl. 11:31
Er du softwareudvikler? Så har du verdens bedste job

Jeg synes også at softwareudvikler er verdens bedste job!

Der er nok få andre professioner der i lige så høj grad er en passion og en hobby som et job.

Men kære Version2 ... det er selvfølgelig helt fint at låne nyheden fra et amerikansk medium, men hvor er det dødssygt at læse et referat af et interview som Jesse Severe fra San Diego i Californien giver til WSJ. Det kan man jo læse meget bedre i originalartiklen.

Hvorfor ikke lige krydre sådan en artikel med et selvgjort interview eller spørge Prosa eller en dansk pendant til CareerCast om resultatet kan overføres til DK?

10. januar 2011 kl. 17:28