Anne-Sofie Nielsen

DrivingIT 2016 - det glæder jeg mig til at høre

Skal helt klart ind og høre Phil Zimmermann, og så er jeg også nysgerrig på Ole Winthers case stories om deep learning.

Jeg kan godt lide konceptet med mange relativt korte (25 min) foredrag, så er der god mulighed for at samle inspiration. :-)

Mange hilsner Anne-Sofie

31. oktober 2016 kl. 20:54
Lange tekster i JTable-celler

Jeg kæmper lidt med at få vist lange tekster i JTable-celler. Jeg ville gerne få dem vist i flere linjer.

DefaultTableCellRenderer'en bruger en JLabel som renderer-komponent, og den klipper jo bare teksten af, når der ikke kan være mere. Derfor ville jeg gerne bruge et JTextArea som renderer på de celler, hvor jeg vil vise lange tekster. Men jeg kan ikke få JTextArea'et til at "svare rigtigt" på, hvor høj den vil blive, når jeg giver den en given tekst (højden skal jeg nemlig bruge til efterfølgende at kalde table.setRowHeight()).

Hvis jeg f.eks. gør følgende:

JTextArea textArea = new JTextArea(text);
textArea.setLineWrap(true);

og efterfølgende spørger på textArea.getPreferredSize(), så får jeg altid præcis samme svar, uanset hvor lang en tekst, jeg putter ind.

Det gør ikke nogen forskel at sætte f.eks. textArea.setColumns(30).

Er der nogen, der har et godt forslag?

27. september 2016 kl. 15:01
Kan I anbefale en editor?

Jeg er gået i gang med at rode med Ruby, og har indtil videre bare siddet og hygget mig i Notepad. Men der MÅ være noget, der er bedre!
Er der nogen, der kan anbefale en editor (til Windows)?

Hilsen
Anne-Sofie

27. september 2016 kl. 15:01
Valgfri migrations/scripts

Jeg har en Rails-applikation, som skal kunne køre i to "modes".

Jeg har lavet en migration, som kan fylde nogle data ind i systemet, som skal bruges i den ene "mode", men ikke i den anden.

Men migrations er jo tilsyneladende kun versionsstyrede - kan man ikke have migrations, som kun køres under visse betingelser? Eller bør jeg strukturere det på en anden måde? Migrations er jo ellers et rart værktøj til at oprette de nødvendige data.

Jeg har sendt en kopi af denne post til Ruby-gruppen også, da vi jo ikke er så mange medlemmer (2!) i Rails-gruppen endnu.

27. september 2016 kl. 15:01
Valgfri migrations? (Rails)

Jeg har en Rails-applikation, som skal kunne køre i to "modes".

Jeg har lavet en migration, som kan fylde nogle data ind i systemet, som skal bruges i den ene "mode", men ikke i den anden.

Men migrations er jo tilsyneladende kun versionsstyrede - kan man ikke have migrations, som kun køres under visse betingelser? Eller bør jeg strukturere det på en anden måde? Migrations er jo ellers et rart værktøj til at oprette de nødvendige data.

Jeg har sendt en kopi af denne post til Rails-gruppen også, men Rails-gruppen har ikke så mange medlemmer (kun 2!) endnu.

27. september 2016 kl. 15:01
Intel laver talentshow for computernørder

Vi har også haft en del fornøjelse herhjemme af at se Genikampen på svensk TV: http://www.svt.se/genikampen/

En hold naturvidenskabsnørder af forskellig observans dyster i hold forskellige ingeniørmæssige og intelligensmæssige udfordringer.

Inklusive en 19-årig kvindelig ingeniørstuderende, som er med på det svenske programmeringslandshold. :-)

28. oktober 2014 kl. 14:46
Opkøbet af en generation

står der ikke den første juli 2013? har de stakkels børn ikke fået opdateret deres minecraft i over et år?

Jeg er sikker på, at der allerede er nogen, der har ringet til kommunen...

26. september 2014 kl. 15:22
Sommersjov med Minecraft og 3D-print

Ah, faldt lige over det her tweet:https://twitter.com/seriouspony/status/483953790874583040

Tak, @seriouspony, for at få 3D-print-begejstringen en smule ned på jorden igen... ;-)

1. juli 2014 kl. 15:50
API’er og socialisme

Kom med et eksempel på et produkt som ikke en eller anden dag kunne stå og mangle en funktion som en anden udvikler gerne vil lave.

Spørgsmålet er dog, om man kan forudsige behovene tilstrækkeligt på forhånd til at lave en API, der også dækker fremtidige behov? I den objektorienterede verden har jeg ofte set folk lave fine abstraktioner over et enkelt eksempel, som så reelt viser sig ikke at have abstraheret over de relevante aspekter, når eksempel nummer to dukker op.

Det er ikke nødvendigvis nemt at lave et godt API, som dækker en bred vifte af anvendelser. Og derfor bliver det så også vigtigt, at man tænker over f.eks. versionering, så man kan have flere versioner af API'et kørende uden at trække tæppet alt for hurtigt væk under applikationer, som bruger en tidlig version.

27. marts 2014 kl. 08:57
API’er og socialisme

Det interessante problem er imho ikke at få API'er på alting, men at få standardiserede API'er, som kan bruges på tværs af de forskellige systemer, der findes.

Der er ingen tvivl om, at et API ikke bare er et API. Der kan f.eks. være enorm forskel på, hvor brugervenligt det er, hvor god dokumentationen er osv. Og hvis man tror, at OAuth er en standard, der betyder, at man kan genbruge sin kode til at authenticate mod Facebook til også at authenticate mod LinkedIn og Twitter, så bliver man slemt skuffet.

27. marts 2014 kl. 08:54
Tomcat og hvad jeg lærte af den arrogante softwareudvikler

Hvad siger ledelsen i Kapow til at få evnerne og teamet udstillet i mere eller mindre gennemtænkte blogindlæg her?

Det er så mig ;-)

Jeg synes, at det er meget modigt af Bolette, at hun tør dele sine oplevelser i et forum, hvor man er næsten garanteret at få en masse negative kommentarer tilbage - og selvfølgelig bliver det langt mere firkantet og stillet-på-spidsen i et blogindlæg, end virkeligheden er. Jeg tror ikke, at Bolette havde turdet at skrive eller publicere sådan et blogindlæg, hvis hun ikke i forvejen havde et rigtig godt forhold til sine kolleger, inklusive Klaus.

Det er efter min mening ærgerligt, at diskussionen i høj grad har handlet om, hvem der er "galt på den", er det nu udvikleren, testeren eller ledelsen? Hvis man leder efter syndebukke, så får man ikke det ud af blogindlægget, som jeg mener er dets intention, nemlig at vi kan opleve den samme situation meget forskelligt afhængigt af vores eget perspektiv. Og at det uanset om man er udvikler, tester, leder eller noget fjerde er muligt at blive klogere af at høre en oplevelse fra den anden side.

11. december 2013 kl. 20:15
Uge 1: Skal vi være stolte?

Umiddelbart lyder det lidt om det produkt, clipboard.com havde inden de på mærkværdig vis blev opkøbt af Salesforce og derefter lukket ned.

http://techcrunch.com/2013/05/09/clipboard-acquired-by-salesforce-will-be-shuttered-on-june-30th/

16. september 2013 kl. 15:56
Hacking, hacking og hackerkultur.

En anden god bog om "hacker"-kulturen er "The Hacker Crackdown" fra start-90'erne.

Den kan læses frit her: http://www.mit.edu/hacker/hacker.htmlmen man bør ikke snyde sig selv for købe en papir-udgaven, da det triste layout af onlineversionen ikke giver helt samme læseoplevelse som den lækre, lidt støvede, store bog, jeg husker: http://www.amazon.com/The-Hacker-Crackdown-Disorder-Electronic/dp/055356370X ($7 på Amazon)

1. juli 2013 kl. 15:12
Check dit JavaScript

Vi bruger også IntelliJ, som er rimeligt god til at advare om problemer, men det er meget rart at have den ekstra sikkerhed på CI-serveren.

Desuden er noget at vores JavaScript embedded i Velocity-templates, så den unit test, jeg har lavet, sørger for at instantiere Velocity-templaten og dermed får genereret det rigtige JavaScript, inkl. de dependencies, som det kommer til at have, når det kører i produktion.

4. juni 2013 kl. 13:40
JavaScript: Det mest mærkværdige

Der har været nogle få ting der har irriteret mig ved JS, den der bugger mig mest i praksis er nok den måde NaN fungerer. Der kan du finde nogle eksempler på mærkelighed, som folk rent faktisk vil støde på i deres hverdag med JS.

Der er selvfølgelig de klassiske "WTF" med at

  1. typeof(NaN) == "number"
og
  1. NaN != NaN

og så at NaN dukker op på tidspunkter, hvor man mindst venter det, fordi JavaScript i mange tilfælde er "venligt" og ikke kaster exceptions:

  1. var d = new Date("vrøvl");
  2. alert(d.getMonth());
hvor det, man får ud af at kalde d.getMonth() på en date, der er konstrueret med en ugyldig værdi, bliver NaN.

8. maj 2013 kl. 09:30
JavaScript: Det mest mærkværdige

Ifølge det link om JS memory leaks, som jeg skrev om lige før, så behøvede man ikke engang at referere "a" i Jacobs eksempel; der ville alligevel være et memory leak:

JavaScript interpreter has no idea which variables may be required by the inner function, so it keeps everything. In every outer LexicalEnvironment. I hope, newer interpreters try to optimize it, but not sure about their success.

Jeg har dog ikke efterprøvet det; det var måske værd at gøre, da siden er fra 2011.

5. maj 2013 kl. 20:18
JavaScript: Det mest mærkværdige

Jacob skrev:

Hvilken giver et tilsvarende møster helt uden brug af eval.

Ja, men jeg synes da nok, at det i Jespers eksempel er sværere at gennemskue, at man har et memory leak, fordi a ikke kan garbage collectes. I eksemplet uden eval er det lidt mere lige til at se, at man holder en reference til a.

IE8 og tidligere havde i øvrigt et endnu mere uigennemskueligt memory leak-problem i forbindelse med XMLHttpRequests, men det har de da heldigvis fikset i 9'eren.

Fald for resten over et interessant skriv om typiske memory leaks i JavaScript her: http://javascript.info/tutorial/memory-leaks

5. maj 2013 kl. 18:43
JavaScript: Det mest mærkværdige

Dit første eksempel virker i øvrigt ikke som det ser ud til

Hm, nu har jeg lige prøvet igen og det ser da ud til at virke fint - har prøvet i Chrome og IE, da jeg ikke lige har Firefox installeret på den computer, jeg sidder ved her.

Der er det pyntesmølfen, der får lov at sige noget, altså lokalt scope. I dit eksempel - som er en anden måde at lave indirekte kald af eval end at lave et alias - er det det globale scope, man rammer, som der jo også står i artiklen. Og det synes jeg godt nok er forvirrende!

5. maj 2013 kl. 14:59
JS og regulære udtryk - do you feel lucky, punk?

... skrive "The so-called ('?)internet\1" i stedet for "The so-called (')?internet\1"? Så vil ('?) jo altid matche et eller andet (den tomme tegnfølge eller et anførselstegn).

Jo, det burde man. Men med dette blogindlæg ville jeg gerne fortælle skrækhistorien om, hvad der sker, hvis man ikke gør det ;-)

2. april 2013 kl. 14:20