Ungdomsredaktionen afslører: Mærsks ukendte søn og arvtager (eller blot: Forsmag på Halvsent og Pirat TV)

July 17th, 2008

Vi har netop lanceret dr.dk/pirat med en lille forsmag på Halvsent, som er noget af det som vi selv er rigtigt stolte af kommer til at ligge på vores kommende net-tv-kanal, Pirat TV. Jeg vil ikke beskrive det nærmere, blot copy/paste fra den e-mail der røg rundt da vi var klar for en halv times tid siden:
Kære alle.

Det er ikke alle, der genudsender i disse sommertider. Hos Ungdomsredaktionen er vi i gang med at gøre klar til vinterlaunchen af vores netvideokanal, Pirat TV.

Her har du som den første en eksklusiv premiere på formatet “Halvsent med Hasse Luxboe”, hvor de kendte viser deres ukendte sider.

dr.dk/pirat/

Keywords: Mærsk, Hells Angels, Jønke, Olie, Irak, Satire, Ungdomsredaktionen

God sommer!

ViewState optimering

June 16th, 2008

Da jeg for mange år siden var en lille dreng der gik ude på DTU og lærte hvordan man blev ingeniør, var en af de ting jeg synes var rigtigt sjovt at hukommelsesoptimere. Præcis hvorfor ved jeg ikke, men det tiltalte mig på en eller anden måde rigtigt meget at få vredet lige otte bytes mere ud af et eller andet minimalt embedded system, eller at få en datastruktur til at fylde lige to bytes mindre pr. entry.

Det er mig en gåde hvorfor jeg dengang syntes at det var skægt, og efterhånden som jeg blev ældre lagde min fascination af den her helt særlige form for totur sig, og blev afløst af en langt mere naturlig foragt for den slags programmering. Ikke at jeg synes man skal svine unødigt med hukommelse, men inden for moderne udvikling så kan det simpelthen ikke være rigtigt at programmøren selv skal side og manuelt tilrette hver eneste datastruktur, og selv sidde og finde hver eneste lille ekstra byte ud af hukommelsen – og det ER selv følgelig heller ikke rigtigt. Med garbage collection, smartere compilere og nærmest uendelig performance og hukommelse så er det ikke noget programmører i dag nogensinde prøver at beskæftige sig med.

Derfor har det også overrasket mig pænt meget, når jeg tænker tilbage på hvad jeg har lavet den sidste uge. Jeg har siddet og kigget på lange, lange stackdumps, aflæst hvor meget hukkomelse hver enkelt object bruger, flyttet rundt på kode, tænkt datastrukturer om og klappet i mine små hænder hver gang jeg har sparet 15-20 bytes. Præcis som da jeg var en lille dreng på DTU – forskellen er bare at i dag hader jeg det som pesten.

Det jeg laver er at gå alle vores ASP.NET controls igennem og få styr på hvor meget de plads de bruger når de er serialiseret ud i ASP.NETs ViewState. 200 controls, hvoraf hveranden gemmer bare 100 bytes i viewstate giver 10kb i ViewState, og det bliver overført frem og tilbage mellem server og klient hvert eneste gang siden forsager et postback – og med moderne ting som AJAX og asynkrone postbacks, så kan det ske masser af gange i minuttet. I Skum 3 har vi nogen widgets (Skum fiduser) og hver gang de bliver flyttet melder de tilbage til serveren, at de bor et andet sted igennem et postback: Med et ViewState på 10kb skal man kun flytte en widget 50 gange, før man har overført en megabyte data. Ingen billeder, ingen ting, bare retursvar til serveren om hvor den her widget bor nu.

Med andre ord, hvis man ikke passer ekstremt meget på hvad man har i ViewState laver man meget, meget nemt den største og tungeste website nogensinde – uden at man får noget ekstra funktionalitet ud af det.

Så nu går jeg altså alle vore controls igennem en for en og sikrer mig at de ikke sviner i ViewState, ligesom programmørene i 1978 gik deres C eller Fortran kode igennem funktion for funtion, og datastruktur for datastruktur for at sikre sig de ikke svinede med hukommelsen. Jeg har lært mig følgende regler som alle folk burde følge når de udvikler ASP.NET controls:

  1. Det eneste der skal bo i ViewState er information som er direkte forsaget af en brugers handlinger, og ikke er gemt i databasen endnu.
  2. Alt, hvis værdi på nogensomhelst måde kan sættes før eller under en controls init-event skal sættes der. Efter Init event’et tracker ViewState og så bliver alting serialiseret ud til klienten.
  3. I UserControls skal alle værdier der overhovedet kan sættes i .ascx filen (som properties på et tag) sættes der. Den slags properties bliver sat før ViewState begynder og tracke, og derfor sviner de ikke i ViewState.
  4. Hvis man endelig ikke kan undgå at noget skal være i ViewState, så vær ekstremt omhyggelig med hvad du kommer derind. Alt andet end strings, bytes, bools og andre simple typer bliver serialiseret med en byteserializer der er ekstremt ueffektiv. Controls i ViewState er især super forbudt – brug ID’er i stedet. Overload hellere SaveViewstate og LoadViewstate en gang for meget end en gang for lidt.

ViewState kan være svært at forstå, og det er svært at læse sig frem til hvad det er og hvad det gør, hvis man kun bruger Microsofts dokumentation. Den her artikel er absolut den bedste jeg har set om ViewState og det bør være “required reading” for alle der har med ASP.NET at gøre:

Infinities Loop: Truly Understanding Viewstate

Pris til Yallahrup

June 13th, 2008

Vi får en hel del fin omtale for tiden. Vi har knapt nok redet stormen omkring Miss Tørklæde 2008 af (som også fik en hel del international opmærksomhed) før vi igen markerer os.

Denne gang er det vores site for Yallahrup Færgeby, DR2’s julekalender fra sidste år, der har vundet prisen for bedste netunderholdning ved Mediernes Internetprisden danske internetbranches svar på pladenbranchens DMA. Altså en fest hvor branchen klapper sig selv på skuldrene, dyrker lidt gruppeonani og fortæller hinanden hvor fede man er. Vi er selvfølgelig pissestolte.

Her følger et sakseri fra DR Kommunikations artikel om prisen:

På dr.dk/yallahrup, der sikrede sig prisen for ’Bedste underholdning’ kan man blandt andet lave sin egen Yallahrup-sætning og sende den til sine venner, spille ’Orn’li syg streetfighter’, quizze, se afsnit fra Yallahrup og meget andet. Det benyttede mange sig også af, for dr.dk/yallahrup havde cirka to millioner besøg i juleugerne, og samtidig var dukkeserien et af de første eksempler på, at danskerne også gerne ser DRs programmer online i stor stil. I en periode foregik over 20 procent af seningen af programmet via dr.dk/yallahrup.

Det er Ungdomsredaktionen i DR Perspektiv, der har udviklet sitet, og her fremhæver redaktionschef Ulrik Skotte, at afdelingen har samarbejdet om hele processen, hvor man tidligere har hentet hjælp ude i byen.

Det var Frederik Dam Sunne og Lars Vilhelmsen, der modtog prisen på vegne af Ungdomsredaktionen, og i juryens begrundelse hed det blandt andet, at vinderen er underholdning med en kant af læring på sin helt egen måde.

“Det er skarpt, men rammer bredt og fik en stor del af den danske befolkning til at spille spil, se tv på nettet og ikke mindst tilegne sig mange nye sproglige udtryk. Samtidig tager vinderen fat på et altid aktuelt emne og sætter det i humoristisk perspektiv,” hed det i motiveringen.

Facebook Open?

May 30th, 2008

Det er ikke officielt og måske kun et rygte, men man kan flere steder læse om at Facebook snart vil åbne yderligere op for tredjeparts udviklere.  Mere om hvordan og hvor meget på TechCrunch

Source Safe – Det er ikke et versionstyringssystem

April 14th, 2008

Dette indlæg er min galde som spildes. Og min afsky for det monstrum, der er Source Safe, kommer råt og usødet til udtryk.

Visual Studio Source Safe er IKKE et versionsstyringssoftware! Det er et filkontrolsystem designet til at kun én person kan arbejde på en fil samtidigt. Sletter man filer fra ens kodetræ, så skal man først ofre 7 jomfruer og derefter håbe på at ingen andre har problemer med at få opdateret deres træ. Jeg har endnu ikke oplevet noget tidspunkt, hvor en refaktorering af selv en mindre stump af koden ikke er gået galt og er endt i et projekt der ikke ville kompilere, for alle andre, som efterfølgende forsøger at bruge rettelserne.

Og fordi det er så meget forskelligt fra alle andre VCS’er så er der åbenbart ikke rigtigt nogen der kan finde ud af det heller, eftersom tingene selvfølgeligt ikke har navne som stemmer overens med alle andre former for vcs’er. Det resulterer i at nogle filer bliver checket ind mens andre ikke gør. Som eksempel kan jeg jo tage .csproj som er filer der styrer enkelte projekter i en visual studio solution. Åbenbart er der nogen der ikke checker rettelserne i den fil ind, hvis de f.eks. sletter en fil. Og hvorfor skal man have ting checket ud hele weeken den? Kan man ikke have lavet ens ændringer og lagt dem op? Det giver bare konflikter på så mange niveauer.

Der er ingen mulighed for at eksludere filer såsom binaries (.dll’er eller .pdb’er), som jo ikke behøver versionskontrol eftersom de genereres hver gang man bygger projektet. At man har disse filer i ens “pending check ins” gør at folk der arbejder med systemet bliver mistroiske over hvilke filer de skal checke ind.

Og dertil kommer at klient programmet fylder 212 mb (eller noget i den stil). sammenligner man det med Tortoisesvn (8,9 mb installer) så fylder det 23,5 gang så meget.

Hvis du ikke er blevet udsat for Source Safe, så vil jeg på det kraftigste fraråde dig at ønske det. Det giver ikke andet end problemer langt hen ad vejen.

Et lille skridt for menneskeheden, men et stort skridt for mig

April 7th, 2008

Jeg har netop fået strikket min første ASP.NET Control sammen næsten uden hjælp. Den kan ikke alt hvad den skal kunne endnu, og den ser heller ikke helt ud som den skal. Men begge dele skal nok komme.

Den er ikke så satans avanceret: Det er bare en lille menu til – fx. – brugersider. Så som sådan er det ikke det vilde. Næh, det vilde ligger i at jeg endeligt, grundlæggende har forstået (og haft tid til at forstå) hvordan hele det her ASP.NET-cirkus fungerer.

Jeg er stadigt ikke vildt begejstret for det. Men det er heldigvis heller ikke det jeg får mine penge for at være.

Nå, men se den fine menu i aktion her:

Menu

Svensk data

February 28th, 2008

Vi sidder lige for tiden og kigger Skums database igennem for at se hvilke data vi gerne vil have med over i et kommende, nyt Skum. Det er svenske Netstar der i sin tid har lavet det nuværende system, baseret på ASP 3.0, til os. I koden her de benyttet sig af Hungarian Notation, og dette har de taget mig sig i databasen. Således er alle tabeller prefixet med “tbl” – fx. “tblUser” og “tblForumRooms” – og felterne hedder ting som “intID” og “strName”.

På Skum kan brugerne – som så mange andre steder – sende private beskeder til hinanden. Disse ligger i tabellen “tblMessage”. Vel at mærke kun de ulæste af slagsen, for læste beskeder flyttes – på snedigste vis – til tabellen “tblMessageRead”. Normalt ville man nok have et felt i tabellen der angav om beskeden var læst eller ej, men i Sverige giver det åbenbart mere mening at fordele det på 2 tabeller.

I “tblMessage” og dens søstertabel er vi faldet over et spøjst felt. Det hedder “blnDoNotShowAsNotInList”, og værdien af dette felt er altid False. Er der mon nogen der kan gætte hvad dette felt er til?

Pownce goes live

January 22nd, 2008

OPDATERET

Kevin R. fra Digg.com har åbnet sit nye påfund i social-soft genren for fri tilmelding. Jeg er lige kommet ind og vil kigge på det i løbet af ugen – og opdatere denne post hvis der er noget at fortælle.

Pownce er:

Meget simplere end facebook – mere lig Jaiku. Du kan poste beskeder, filer og billeder til Public eller kun til Friends.

Pownce er ret nem at kombinere med Facebook, LinkedIn og et væld af andre services. Du kan bruge søgefunktioner til at finde venner du også har i de andre services og samtidig kan du linke til dine andre sociale netværksprofiler. dine websites, skype og andre instant messaging profiler.

Dialogue – det skulle være nemt og naturligt at føre samtaler om filer og billeder, men jeg har ikke prøvet det endnu.

Jeg har heller ikke prøvet den desktop-klient de averterer, men den skulle angiveligt gøre det endnu nemmere og hurtigere at sende og skrive til kontakterne.

Pro-medlemskab er muligt for 20$ om året: Share files (music, img., etc.) – filstørrelse op til 100MB, byg egne themes og et par andre ting er muligt for Pro-members.

Foreløbig konklusion:
Pownce kunne se ud til at være en slags meta-socialapp, men måske har den også noget i sig selv. Jeg har dog kun 1 ven derinde lige nu, så måske hvis man er nogle stykker, det kan blive ordentligt testet (nudge-nudge).

(to be expanded)

TV 2 overvejer samspil med Facebook og YouTube

January 16th, 2008

Video, video og atter video. Det er hovedtendensen for TV 2 Interaktiv i 2008. På tale er samarbejder med sociale netværk som YouTube, Facebook og danske Freeway. En række nye niche-sites lanceres snart.

http://www.journalisten.dk/tv-2-overvejer-samspil-med-facebook-og-youtube

Open Social vs. Facebook

December 13th, 2007

Interessant artikel om hvordan USA’s 3. største community Beebo hellere vil kode op omkring Facebook platform end at bruge Googles nyetablerede Open Social. Interessant er det også er de skriver:

“Facebook has come out and officially supported
the use of its platform on other social networks, saying “we’ll even
license the Facebook Platform methods and tags to other platforms.”

Måske noget vi skulle kigge på på DR også.

http://www.techcrunch.com/2007/12/12/bebo-warmly-welcomes-facebook-developers-with-new-platform/

Mere om Facebook’s planer http://mashable.com/2007/12/12/facebook-opens-platform-architecture/