Når børn dør…

To af mine gode venner, som tilfældigvis er et par fordi jeg har introduceret dem for hinanden, mistede i sidste uge deres ufødte barn 9 dage før terminen. I dag var vi så samlet i kirken, på terminsdatoen, ikke for en barnedåb, men for at se en mor og far tage i hver deres side af en lille kiste, og bære den det sidste stykke.

Det er så åbenlyst uforståeligt, urimeligt og ubarmhjertigt som noget kan være, og jeg vil ikke ønske for nogen at noget tilsvarende skal ske for dem.

Jeg har naturligvis ikke den fjerneste idé om alle de triste situationer, ubekvemme spørgsmål og ting de skal ordne. Jeg gør mig ingen tanker om, at jeg nogensinde kommer til at kunne sætte mig i deres sted, og føle den smerte de føler. Det eneste lyspunkt jeg ser er, at de i det mindste har hinanden og kan gå det igennem sammen.

Den triste begivenhed har også startet tankerne hos mig. Bettina og jeg traf et valg om abort af vores datter Bella fordi hun desværre havde arvet mit gen for Huntingtons Sygdom. Uden at situationerne i øvrigt kan sammenlignes, så kom alle tankerne frem igen, og de har i et eller andet omfang nok skulle bundfælde.

Bellas eksistens, forløbet og tankerne omkring det er ikke hemmelige, heller ikke for drengene. Benjamin har vi haft med på kirkegården to gange, og Bertram en enkelt gang. Benjamin tænker, han er jo også ældst, en del over det, og kan godt ud af det blå spørge til hende, sige han savner hende eller stille opklarende spørgsmål i stil med: hvorfor døde hun, hvorfor var hun syg og så videre.

Intet er hemmeligt, ej heller at Bella var syg fordi jeg bliver det og fordi min mor er det. Når vi når dertil at jeg bliver syg, så har Benjamin dog ikke lyst til snakke mere. Det er naturligvis helt i orden, og det er også helt i orden at være ked af det, gerne ville putte lidt inden sengetid og så videre. Der er ingen tvivl om at drengenes bevidsthed om hele situationen er stor, men at de fortærer det i det tempo de selv synes.

Og så tilbage til Bella…

Jeg tænker tit på hende, vi taler om hende, og selvom jeg véd beslutningen var den rigtige, så knager det alligevel det sted i hjertet hvor kærligheden til hende sidder. Hun vil jo altid være Fars pige.
På den anden side heraf står, at hun sandsynligvis ville have fået sygdommen som barn og at vi som forældre ville have lavet genetisk forskelsbehandling på vores børn hvis ikke vi havde truffet den sværeste beslutning af alle.

Sagt på en anden måde, så følte jeg at en del af min sjæl døde med hende. Det bliver aldrig det samme igen.

Når det er sagt, er jeg også nødt til at nævne Bettina. Havde jeg ikke været gift med hende, så ved jeg ikke hvad jeg skulle have gjort. Der er, og har været, mange aftener med lange snakke om fremtidsplaner, korte og lange horisonter og meget andet. Uden hende var der dage, hvor jeg ikke ville have magtet at stå op.

Posted in Huntingtons Chorea | 2 Comments

Er der håb for Huntingtons Sygdom?

Jeg har været i Barcelona til det årlige møde i EHDN, det europæiske netværk for Huntingtons, denne weekend. En weekend fyldt med videnskabelige fakta og dybt rørende personlige historier.

Men vigtigst af alt, også håb… for der ér håb om at vi snart får skovlen under Huntingtons.

Der er fuld tryk på udviklingen af mange ting, men det jeg synes har størst potentiale er hæmning af specifikke gener. Mit problem er at et sygt gen medfører forkerte udgaver af et protein, Huntingtin, som er giftigt for cellerne og da det samtidigt ophobes over tid medfører det celledød.

Ved at hæmme/forhindre mit syge gen vil produktionen af forkert protein stoppe, og da jeg samtidigt har et normalt gen fra min far, så burde jeg kunne fortsætte ret normalt. I princippet vil vi så have et forhold til Huntingtons Sygdom, som vi også har til Hiv/AIDS, hvor man sagtens kan leve med tilstanden og dø af noget andet i høj alder.

Det tekniske er HDBuzz meget bedre til at forklare, så læs mere her: ASO-genhæmning spredes bedre i hjernen og virker længere.

Posted in Huntingtons Chorea | 7 Comments

Videnskaben er mit eneste håb

Jeg har for længst affundet mig med, at jeg sandsynligvis skal dø af Huntingtons Sygdom, og at det ikke bliver et drømmeforløb. Selvom det måske lyder mærkeligt, så er det okay for mig.
Mit liv er planlagt efter det – mine børn sat i verden tidligt (og testet!), pensionsopsparingen tilpasset – og langt de fleste dage leves efter det.

Processen er ikke unik for mig, alle burde gøre det, men det er nok de færreste som i den grad forholder sig til livets afslutning. I det mindste i min relativt (31,9 år) unge alder.

Men jeg har noget, som kun de færreste har. Håb! Et håb om, at der en dag bliver trykket på den store knap på Rigshospitalet, hvorefter der skal masseudstedes recepter på ét eller andet medicin som gør godt. I dag er det begrænset hvad vi har at gøre godt med, men en dag sker det. Selv blinde høns kan finde et korn, og de forskere, som leder, er langt fra blinde eller høns.

Det behøver ikke helbrede mig, det tog er nok kørt for mig. Mindre kan også gøre det. Hvad er et år værd for dig? 365 solopgange – hvad vil du give?
For mig er de meget værd, men jeg kender ikke dagskursen.

Heldigvis kan jeg til en vis grad påvirke hvornår det sker noget gennem bidrag til forskning. Det kan både være økonomisk, men også mere praktisk ved at lægge krop til når forskernes ‘skøre’ ideer skal prøves af.

IMG_0573I den forgangne uge var Bettina og jeg i Stockholm, hvor de manglede forsøgspersoner med Huntingtons, men uden sygdom og symptomer. De er svære at skaffe i Sverige, hvor sundhedsvæsnet er mere decentralt, men det gav plads til danskere og hollændere.

Formålet var at teste noget medicin, som desværre ikke virkede mod Skitsofreni, men som måske kan bedre nogle symptomer ved Huntington
s. Hypotesen er blandt andet, at jo tidligere man starter med at normalisere hjernen ved at tage det, jo bedre. (Hvis der var noget at gøre, så forudser jeg antallet af gentests ville stige markant!)

IMG_0572Det forløb godt, og jeg fik lavet En MR-scanning – som ikke viste begyndende Huntingtons – og en PET både uden og med medicin. Nu går der så en rum tid med at analysere de mange data, men forhåbentligt er der nyt om et års tid.

Hjemme ved køkkenbordet taler Bettina og jeg naturligvis med drengene om Huntingtons, og også at jeg skulle afsted. Benjamin forstår det godt, og stiller ret engagerede spørgsmål. Derfor har jeg blandt andet hjelmen fra PET-scanneren med hjem, og Bettina har også taget et par billeder så der er noget at snakke ud fra.IMG_0574

Posted in Huntingtons Chorea | 2 Comments

Improve HTML compression ratio

This is my first post on web performance. I have been wanting to write it for a while, and preparing the data for it has taken quite some time. Hope you like it, please give me feedback.

Squeezing the bytes

We can do all kinds of stuff to our page source to improve its performance. But if the page source was given, what could we do to minimize its pay load? Just a few examples to get things warmed up:

  • Remove whitespace
    An easy fix would be to remove whitespace since it don’t affect browser rendering. Whitespace is highly redundant in itself, but removing it will have an impact.
  • Remove comments
    Also an easy fix, and if you are not already doing it, you should be doing it.
  • Externalize/Combine JavaScript/CSS
    This would not only reduce the number of requests, but comes with the possibility to reduce the page source itself a bit.
  • Remove quotes in some cases
    While it may be a bit extreme, and leave the result non-valid, there are certainly cases where all those quotes are not needed – at least from the browsers perspective. mod_pagespeed comes with a filter, Elide Attributes, that does this.

While these kinds of optimizations may not mean a lot – typically only 1-2% – it still adds up, especially on mobile devices with low bandwidth and high latency.

What else can we do?

I think there is more to be done than outlined above. The data inside a HTML document can be categorized as either:

  • elements, like <html>
  • attributes, like id=”value”
  • whitespace
  • comments
  • content

Reducing the amount of elements can only be done to a certain degree, but is pretty hard to do. Whitespace and comments on the other hand is a no-brainer – they should simply go. Focusing on the content is also a bit out of scope, so lets assume that the page contains exactly the content that the page should present. No more, no less.

This leaves us with attributes, and their importance and weight haven’t really had that much attention. I did a quick count on some pages to check the share taken up by attributes, and the results surprised me a bit.

Share of attributes on various sites
Website Page Size Attributes (1+) Attributes (2+)
Amazon.com 251.972 79.948 (31,73%) 58.967 (23,40%)
Facebook.com 41.682 17.348 (41,62%) 13.593 (32,61%)
Google.com 119.297 9.662 (8,10%) 7.704 (6,46%)
Wikipedia.org 47.687 29.230 (61,30%) 27.159 (56,95%)
Yahoo.com 121.751 64.748 (53,18%) 42.034 (34,52%)
YouTube.com 103.188 69.396 (67,25%) 55.439 (53,73%)
Bilka.dk 94.297 56.881 (60,32%) 42.450 (45,02%)
DanskSupermarked.dk 13.789 8.364 (60,66%) 6.394 (46,37%)
Føtex.dk 56.027 26.007 (46,42%) 21.054 (37,58%)
Netto.dk 80.078 36.340 (45,38%) 25.268 (31,55%)
Salling.dk 62.369 37.472 (60,08%) 24.590 (39,43%)

When calculating this, I took the length of the entire attribute – both key, value, equals sign and quotes if they were present. The sum is made twice, one for attributes on all elements, and one for elements with two or more attributes. I will explain why in a while.

The sum of it all is that attributes on average make up approx. 35% of a document! And I don’t think we give them enough attention. So lets do that.

Compression: Another aspect to this

By now everyone know that compression should be enabled to minimize the payload. And that goes for about 76% of the resources delivered. I am no expert on compression, but I do know that it takes the redundancies in a text, I know it from a high level perspective: it looks for redundancies and “reuses” them in the output.

Compression is good for our payload, and we should try to get the most benefit from it. If we want to maximize the compression ratio, we should aim to maximize the number and length of patterns found by the compression algorithm.

We are locked on most of our document, but lucky for us the W3C specified in the recommendation for XML that the order of attributes is not significant. This means that we can move around about 35% of the page size without too many constraints. The individual elements must maintain their semantical meaning, which essential leads to a few contraints:

  • Two attributes with the same key would have to remain in the order they were specified
  • Obviously, we can’t remove any attributes

But does attributes matter in a compressed document?

To test if the order of attributes matters, I set up an experiment. Based on the same websites as above, I tried shuffling all attributes on all elements – making the order totally random – and compressing it all. As a control, I used the unaltered compressed original.

Experimenting with order of attributes
Website Control Experiment
Size Gain/Loss
Amazon.com 56.637 57.290 653 (1,15%)
Facebook.com 11.905 12.201 296 (2,49%)
Google.com 32.350 32.415 65 (0,20%)
Wikipedia.org 9.446 10.282 836 (8,85%)
Yahoo.com 27.327 27.789 462 (1,69%)
YouTube.com 15.026 16.348 1.322 (8,80%)
DanskSupermarked.dk 3.673 3.758 85 (2,31%)
Bilka.dk 20.041 21.123 1.082 (5,40%)
Føtex.dk 15.425 15.684 259 (1,68%)
Netto.dk 18.578 18.997 419 (2,26%)
Salling.dk 11.049 11.889 840 (7,60%)

As seen above, the order of attributes is important, and the increase in compressed page size seems to correlate to the total size of attributes – at least to some degree. All in all, attributes are very important if we want to squeeze the number of bytes as low as possible.

Can ordering of attributes improve compression ratio?

Since we now know the order of attributes can hurt a compressed page, it should also be possible to use this for our advantage. What if there were some dominant way of ordering attributes? This would allow us to use output mechanisms like mod_pagespeed or Servlet Filters to apply this ordering for us, and improve compression ratio.

So I sat down, and thought about possible strategies for ordering the attributes, and this is the list I came up with:

  • byName
    Sorts attributes by name
  • byValueLength
    Sorts an elements attributes by the length of their value. The idea here is to get attributes with short values to appear first
  • analytic-x
    Analyses the document for elements with more than X attributes, and sorts them based on the number of unique values. If two attributes share the same number of unique values, they are sorted by name. X can be either 0 or 2.

And the results are in…

Effect of strategies for arranging attributes
Website byName byValueLength analytic-0 analytic-2
Amazon.com -89 (-0,16%) 40 (0,07%) -34 (-0,06%) -70 (-0,12%)
Facebook.com -9 (-0,08%) 62 (0,52%) -7 (-0,06%) -15 (-0,13%)
Google.com -11 (-0,03%) 17 (0,05%) 9 (0,03%) 8 (0,02%)
Wikipedia.org 45 (0,48%) 220 (2,33%) 294 (3,11%) 296 (3,13%)
Yahoo.com -1 (0,00%) 48 (0,18%) 39 (0,14%) 45 (0,16%)
YouTube.com -164 (-1,09%) 155 (1,03%) 0 (0,00%) 2 (0,01%)
Bilka.dk -20 (-0,10%) 84 (0,42%) 58 (0,29%) 41 (0,20%)
DanskSupermarked.dk -12 (-0,33%) 1 (0,03%) -2 (-0,05%) -1 (-0,03%)
Føtex.dk -62 (-0,40%) -35 (-0,23%) -52 (-0,34%) -39 (-0,25%)
Netto.dk -58 (-0,31%) -7 (-0,04%) -61 (-0,33%) -90 (-0,48%)
Salling.dk -76 (-0,69%) -20 (-0,18%) 5 (0,05%) -2 (-0,02%)

Sorting by length of value is – maybe not surprisingly – the worst of the strategies. analytic-2 does really well and the big joker is byName, which provides pretty solid results with a less complex algorithm.

The results also show that there is no dominant strategy since re-ordering does not improve compression ratio in all cases. As for the effect of doing it in the first place, some of the websites listed above is among the most optimized worldwide.

The lack of a dominant strategy kind of disappoints me, but I have a few ideas that I will try out and see how the results look. Please leave a comment if you liked my post.

Posted in Web Performance | Tagged , | Leave a comment

Bertram Nørremark

Det er nu 1,25 år siden Bertram kom til verden. Når jeg nu ser drengene lege – og slås – kan jeg ikke andet end være glad. Men vejen hertil har været hård, og det vil jeg prøve at sætte nogle ord på.

Her, over to år efter Bella blev aborteret, gør det stadigvæk utrolig ondt. Personligt har jeg haft megen glæde af min søster fordi vi begge havde den samme syge mor. Men nu stod jeg der, vi havde lige fået aborteret et barn som havde arvet genet efter mig, og skulle vi så prøve igen?

For at gøre det talte naturligvis et brændende ønske om at udvide familien, ikke mindst for børnenes egen skyld. Imod, rigtig meget imod, talte, at jeg ikke var sikker på, jeg kunne klare at skulle igennem processen igen, og slet ikke hvis svaret er dårligt.

Måske er jeg svag, men det blev ved snak og bekymringer og inden længe var Bettina gravid. Og det var hårdt at gå igennem – helt til den dag, hvor en venlig sygeplejerske i Skejby kortsluttede kommunikationen og gav os svaret: Barnet er rask! Det bliver en dreng!
Den eneste som ikke græd af glæde var Benjamin; han så sine forældre græde og fangede ikke det var godt, og begyndte så selv at græde.

Jeg synes vi løb en utrolig stor risiko, og jeg ville nødig gøre det igen, men omvendt gik det jo godt, og det er det eneste som tæller.
Benjamin har nu en lillebror, som nok tit er irriterende, men de får utrolig megen glæde af hinanden fremover. Bertram til gengæld, han siger endnu ikke så meget, men så snart Benjamin giver den første lyd fra sig om morgenen, så står Bertram ved siden af sengen og siger “Hej!”

20130914-213921.jpg

Posted in Huntingtons Chorea | Leave a comment

Da Brian mødte Herman

20130113-213045.jpg

Der sker så meget i Indien, og jeg kan ikke nå at skrive det hele. Én histore I dog ikke skal snydes for er historien om min nye cykel, Herman.
Continue reading

Posted in Livet i Indien | 1 Comment

Snart med cykel…

Det skal ikke være negativt om Indien hele tiden – der ér faktisk lyspunkter:

  • Det eneste udenlandske par er tilfældigvis vores nabo
  • Det indiske svar på BabySam leverede og samlede to børnesenge klokken 21 om aftenen
  • Det nærmeste vegetar-sted laver faktisk god mad
  • ‘Gadens’ faste chauffør er pålidelig og taler engelsk

Og nu det vigtige: Jeg har – vist nok – købt en cykel. Jeg skal ikke arbejde så forfærdelig langt væk fra huset, men med varmen og så videre så er det mere end man lige går. En del af mine forsikringsbetingelser er at jeg ikke må køre bil selv, og at bruge chauffør virker lidt overdrevet.

Så da manageren alligevel var her spurgte jeg om han ikke kunne skaffe mig en cykel. Først troede han det var en motorcykel, det har alle andre, men nej, en ganske almindelig cykel.

Næste spørgsmål var om den skulle være ny eller brugt, for en ny var nok lidt dyr, men omvendt ville jeg nok ikke skrue i en brugt. Prisen for en ny viste sig at være RS 3.500-4.000 (350-400 kroner), den udgift kan jeg godt forsvare!

Det spændende bliver så hvordan jeg får den, for det er lidt svævende ud fra samtalen. Enten køber han en eller anden (det var mit forslag), får mig kørt ud til boden – eller også tropper de op med hele sortimentet. Jeg håber på en af de to første – den sidste virker forkert i min verden.

Af øvrige nyheder kan det nævnes at Bertram takket være det glatte gulv, nu har regnet ud hvordan han kommer fremad. Til stor irritation for storebror, som nu ikke længere kan undgå savl på favoritterne.

20130105-203041.jpg

Posted in Livet i Indien | Leave a comment