Inlägg

Inlägg som selotodo har skrivit i forumet
Av selotodo

När man behöver kunna lägga till, ta bort, byta prio på element osv så brukar det väl handla om någon form av träd eller länkad datastruktur, men om iteration är den operation som du vill optimera för så blir det lite svårare att välja eftersom iteration över länkade datastrukturer är långsamt på moderna processorer. Att du använder Java gör det ännu svårare att säga något bestämt eftersom vi inte vet hur garbage collectorn packar ihop objekten i trädet. Det jag tänker på är alltså cacheprestandan. Inget är snabbare att iterera över än en array, så om de andra operationerna är tillräckligt sällsynta kanske du kan använda en array och sortera om den vid behov?

Nu läste jag om Javas prioritetskö och de verkar ju tycka att man ska sortera kön till en array när man vill iterera över den. Det borde väl passa bra?
http://java.sun.com/j2se/1.5.0/docs/api/java/util/PriorityQue...

Av selotodo
Citat:

Ursprungligen inskrivet av nienithaur
Awk känns intressant då det dels verkar rätt skysst, dels för att det finns tillgängligt i nästan alla unixmiljöer.
[/B]

Awk är väl bara en sämre och äldre Perl.. Står du ut med Awks eller Perls syntax och typsystem så är nog Perl ett bättre val än Awk, speciellt om du ska prata med databaser.

Jag röstar för Haskell, men om Antlr är overkill så är Parsec antagligen också det.

Av selotodo

Re: Bra språk för text processing, tips?

Citat:

Ursprungligen inskrivet av nienithaur
Letar efter ett språk som lämpar sig för att extrahera och manipulera textdata och tex. fylla en databas eller strukturera upp på annat vis. Regular expressions är ju trevligt, men det finns ju väldigt många olika implementationer samt andra intressanta tekniker. Kommer ihåg att Haskell var rätt kul och effektivt att jobba i. Har också hört mycket gott om (G)AWK, Python/Perl funkar också antar jag? Är tex. Gawk jobbigt att lära sig? Tips välkomnas tacksamt.

Om det räcker med reguljära uttryck så kan du ju använda vilket språk som helst eftersom alla kan göra det. Behöver du kunna parse'a klurigare språk än reguljära så kan jag tipsa om att Antlr är en ganska bra parsergenerator som kan generera parsers i många olika språk (fast den funkar nog bäst med Java).

Av selotodo
Citat:

Ursprungligen inskrivet av echo
Följdfrågan blir då, är man ansvarig själv att ta bort uppenbara upphobsbrott eller räcker det med att det påpekas av trejde part?
Hur lång tid man har på sig att ta bort berörda inlägg efter upptäckt är också intressant.

Aftonbladet (har för mig det var aftonbladet i alla fall) torskade väl rätt hårt på det, där hade man dock inte lyckats ta bort det berörda inlägget efter flertalet påtryckningar på rimlig tid. Minns att det satte dessa lagar i fokus och att sweclockers stängde av forumet i ett första-april skämt (där man påstod sig inte kunna ta de juridiska riskerna som ett forum innebar (eller något sådant))

Kommentarsfunktionen försvann (till stor del i alla fall) rätt snabbt från de flesta tidningars hemsidor efter den händelsen.

Handlade inte det mer om svårigheten att hålla förtal och hets mot folkgrupp borta från kommentarerna än om upphovsrättsliga problem? Det är väl sällan någon postar något som han inte har skrivit själv och som är för långt för att citaträtten inte ska gälla, i en liten kommentarsruta på en tidnings webbsida? Dessutom kan det ge tidningen dåligt rykte om kommentarerna på deras sida är för oseriösa.

Av selotodo

Nu gissar jag iofs bara, men jag tror att våra högskolor är helt okända utomlands, men att själva landet däremot får folk att tänka på högteknologi och rationalitet. Så reagerade iaf folk från andra delar av europa när jag läste spanska i Spanien och sa att jag var svensk.

Av selotodo
Citat:

Ursprungligen inskrivet av humledumle
Det är rätt enkelt att upphovsrättsskydda bilder

Ja, allt man behöver göra är att fortsätta andas (varje skapare har automatiskt upphovsrätt till sitt verk, så han måste antingen dö eller göra en aktiv handling (sälja) för att bli av med rätten till verket).

Av selotodo

Den enda jag återvänder till gång på gång är Johan Norbergs.

Av selotodo

Re: Fråga C#

Citat:

Ursprungligen inskrivet av Edholm
Ifall jag har ett booleskt värde.

bool b = true;

Om jag senare i till exempel en if-sats sätter värdet till true igen, kommer då kompilatorn sätta värdet till true igen, eller kommer den hoppa över denna instruktion eftersom värdet redan är true?

Det beror på om kompilatorn kan se att värdet alltid kommer att vara oförändrat eller inte. Om du gör

bool b = true; if (whatever) { b = true; }

så kan du nog räkna med att den andra tilldelningen tas bort eftersom ingenting kan ha ändrat värdet på b sedan den första tilldelningen. Det beror iofs på hur hårt kompilatorn bestämmer sig för att optimera funktionen. Eftersom kontrollflödet mellan tilldelningarna är villkorligt och detta gör det tyngre för kompilatorn att analysera funktionen så kan man tänka sig att tilldelningen inte optimeras bort för funktioner som inte körs ofta (och därför inte är värda tiden för en tung analys) Det är dock lätt att få bort tilldelningen om kompilatorn bestämmer sig för att optimera funktionen på allvar.

Av selotodo
Citat:

Ursprungligen inskrivet av sech
Mycket märkligt det där, då tyskarna själva har bokstaven ü som uttalas väldigt likt ett svenskt y.

Mvh

Ljuden ligger nära, men uttalar man My precis som Mü så blir det fel.
http://sv.wikipedia.org/wiki/Tyska

Av selotodo

Spanska har mycket knepigare grammatik än svenska. De kan uttrycka mycket finare nyanser genom att böja verben lite än vad vi kan i svenskan. Att lära sig att göra sig förstådd tar inte så lång tid men att lära sig att välja rätt verbnyans när det finns flera att välja på lär ta mycket tid. Men spanskan har väldigt få fonem -- bara typ 5 vokaler -- medans svenskan har massor. Vi väl nästan 20 vokalljud tror jag att jag har läst. Det är nog det största problemet för invandrare. Jag försökte lära ett par tyskar att uttala namnet My en gång men det var helt lönlöst -- det blev antingen Mo, mu eller Mi. Sedan är ju också intonationen betydelseskiljande i svenskan till skillnad från i de flesta andra europeiska språk, som flera andra redan har nämnt.

Av selotodo
Citat:

Ursprungligen inskrivet av azoapes
Löneskillnaderna är inte heller astronomiska, men civilare/masters har en tendens att ha en längre lönekurva, dvs. lönen stiger med åren även efter att en datavetares lön slutat stiga. Men det har ju till kanske 60 % att göra med vilket jobb man lyckas/råkar få, och inte vilken utbildning som ligger i grunden. Snittvärdena ska inte tas på för stort allvar inom såhär liknande yrkesområden som vi pratar om.

Har du någon länk till statistik om det? Jag undrar eftersom många av datavetarna (LiTH) jag känner har ett genuint intresse för programmering och därför tenderar att få väldigt krävande tjänster med tiden. Deras karriärer har tagit fart inte på grund av deras examen utan pga deras intresse. Jag kan tänka mig att det är en ganska vanlig utveckling för datavetare.

Av selotodo

Åtminstone förr i tiden så tolkade de flesta Moores lag som att "datorerna blir dubbelt så snabba var 16:e månad". Denna lag, eller missförstådda lag, har redan upphört att gälla eftersom minnets hastighet bildar en flaskhals och det inte längre går att hitta tillräckligt med parallellism i normala enkeltrådade program för att dölja fördröjningen. Tillverkarna kommer kanske att kunna fortsätta att packa transistorer exponentiellt tätare ett tag till, men detta kommer inte att resultera i exponentiellt förbättrad prestanda för vanliga enkeltrådade program eller algoritmer. Istället kommer vi att få massor av processorkärnor per chip. Det kommer säkert att bli användbart, men det vi får ut av Moores lag är något annat än det har varit förr om åren.

Av selotodo

Rita boxar för att representera noder och pilar mellan boxarna för att representera bågar mellan noderna. Markera vilken box som motsvarar head. Rita hur det ser ut både före och efter ändring av datastrukturen.

Av selotodo

Kul att se att det finns några i alla fall. Sådant som har fått kommersiell tillämpning (realtids-gc) eller finns med i kursböcker (AA-träd) smäller extra högt, tycker jag.

Av selotodo
Citat:

Ursprungligen inskrivet av Psionicist
På rak arm kan jag bara komma på en artikel som refereras till ofta och det är "Why Functional Programming Matters" som John Hughes@Chalmers skrev på 80-talet. Detta är inte direkt forskning men är i alla fall känt inom programmeringsspråk-kretsar. http://www.math.chalmers.se/~rjmh/Papers/whyfp.html

Mycket intressant fråga förresten!

John Hughes är helt klart ett stort namn inom vissa kretsar. Finns det fler stora namn aktiva vid svenska universitet?

Av selotodo

Svensk datavetenskaplig forskning

Jag läser många datavetenskapliga uppsatser i jobbet, men har vad jag kan minnas inte stött på en enda betydelsefull uppsats som har skrivits av någon på ett svenskt universitet. Så gott som allt verkar produceras vid amerikanska universitet.

Jag bestämde mig för att kolla upp mitt gamla universitet (Linköping) för att se om de gör något som faktiskt spelar roll, men hittade inte mycket. De verkar mest publicera uppsatser vid små europeiska konferenser som få bryr sig om.

ACM är den dominerande arrangören av konferenser inom datavetenskap, så att söka efter svenska uppsatser som har accepterats på någon av deras konfereser borde ge en bra bild av läget. Jag sökte t.ex. efter uppsatser som har accepterats på PLDI (en betydelsefull konferens) genom åren och innehåller liu.se eller chalmers.se men hittade knappt något.

http://portal.acm.org/results.cfm?CFID=43688754&CFTOKEN=91136...

Stämmer min bild av att svenska universitet inte producerar mycket datavetenskaplig forskning av vikt? Vad beror det i så fall på, tror du? Har någon forskare på ditt universitet fått stort internationellt genomslag?

Av selotodo

Jag tycker det ser rätt ut .. men + kan ta fler än två argument så du kan skriva det lite snyggare:

(defun summa-pnr (x) (cond ((endp x) 0) (t (+ (heltal (first x)) (tiotal (first x)) (summa-pnr (rest x))))))

Av selotodo
Citat:

Ursprungligen inskrivet av PenPusher
Se: http://sv.wikipedia.org/wiki/Programmering

Wow, det var verkligen en fantastiskt dåligt sida. Svenska Wikipedia visar än en gång hur mycket den suger. Avsnittet om funktionell programmering var ju helt uppåt väggarna.

Av selotodo
Citat:

Ursprungligen inskrivet av Chimaira
Det har redan tagits upp i tråden att både Java och .NET JIT-kompileras till maskinkod (för den processorarkitekturen man kör på) vid startup, detta är samma maskinkod som c++ skapar vid kompilieringen och därför är språken i sig i princip lika snabba.

Den maskinkod som Suns klientkompilator skapar är klart sämre än den maskinkod som en optimerande C++-kompilator skapar. Serverkompilatorn däremot kommer nog nära den prestanda som C++ har, men de flesta som klagar på Javas låga prestanda syftar antagligen på klientversionen.

Den finns många anledningar till det här, till exempel semantiska skillnader i hur exceptions funkar, hur metodanrop går till, javas säkerhetsmodell osv, men den största anledningen är att tunga optimeringar tar för lång tid att utföra för att man ska vilja göra det under runtime när en användare sitter och väntar. Därför kör klientkompilatorn bara relativt enkla optimeringar som går snabbt att utföra. Med servrar är det en annan femma dock, eftersom den typen av program är igång väldigt länge och därför hinner tjäna in kostnaden.

Å andra sidan behöver man ju inte alltid köra Java med en JIT eftersom det faktiskt finns vanliga statiska kompilatorer för Java också (gnu). Fast du pratade om jittar.

Av selotodo

Angående användning av GC i C++ så vill jag säga att valet av collector är begränsat för C++. Det går inte att använda en "precise" GC i språk där man inte kan hitta alla alias till en minnesposition. Hur stor roll det spelar beror på applikationen.

I språk som har en inbyggd GC kan man ju iofs inte heller välja, men i dessa fall har de förhoppningsvis lagt ner mer tid på att integrera GC'n med språket än man själv har möjlighet att avvara.

Förresten, nu kom jag ihåg att man faktiskt kan välja GC i t.ex. Java (Suns server kompilator).