Ole Lynge Sørensens Blog

Sunday, November 15, 2015

Sabbatical - English version

I got a present from eBay this year: sabbatical; four weeks off work, in which I would recharge and get new energy, new ideas and new insights.


Calendar

I considered to go on sabbatical either as an extension of the summer holidays or in the autumn.

If sabbatical was in the summer, it would have given me a summer holiday during the entire school holidays.

If sabbatical was later, it could be in the middle of the period extending from summer holidays in early August and until the Christmas holidays in late December. Sabbatical could be combined with school holiday in week 42. We would also have the opportunity to visit more southerly latitudes in a cooler time of year, with temperatures well below 30 degrees.

The final choice was sabbatical from late September to late October.



Blank

What would I do in sabbatical?

It ​​would be different than the summer holidays.

I would like a few weeks in Italy with the family.

I wanted to be alone for a while. I had an idea to go alone somewhere here in Denmark.


Weekend

I drove home by train. I turned off mail, calendar and messages.

We bought a car; the old had been rejected at inspection. We went for a drive and celebrated sabbatical and having a car again.

We went to the swimming pools and swam in the warm water, and Karoline jumped from tilting out in the deep water.

We played Mancala and "guess who you are."



Bathing bridge

I went to Funen and lived in a lonely house. There were trees and birds and sun and water. There was no television, no wifi, no stereo and no computer. I turned off the phone.

I went down to the beach. I sat on a bench on a bathing bridge. I looked out over the bay.

I walked along the coast, inland, through forests, through fields, past pigs and cows and horses and deer, up to a listed hilltop overlooking the forests and the fields and the sea.

I ran to the eternity trees. Water trickled out of the forest. A squirrel crossed the brook.

I closed my eyes and breathed a hundred times.

I saw past and future flowing together in this moment.

The summer continued into October.

Unrest appeared. I drew a map of the turmoil, and looked at the different areas.

I meditated. Meditation dissolves the world's hustle and bustle, and pulls the veil away from the eternal peace and harmony.

Here I am. Thoughts and turmoil I place in boxes all around me. I'm looking at a box and see it sticking out in several directions. I put the box a little to the side. Here I am, and there are thoughts and unrest.

I visualized. Visualizations heals, and gives answers to my questions, like the oracle who directs my gaze inward into myself to find the answer.

One day it was calm, no wind or water or animal or human was heard. The water was blank, and crabs and starfish slipped silently under me.

I do not worry about what happens.



Italy

We flew to Italy. Karoline and William cheered on their first flight. We rode in a taxi with Joe. We sang "We'll never see Joe again, he is driven to Barcelona."

We lived in Firenze. We saw the city and the bridge and the dome. Karoline and William drove the carousel on the square. We saw the city from the small buses in the narrow streets. We found the ice cream shops. We laughed at the street performer in the square and at people he joked with.

We played on all playgrounds. We ate pizza and pasta. Janne baked Italian buns. We said "Ciao Bella" and "Buon journo Bambini". We jumped with surprise when we saw the lizards on the wall.

Later, we lived on a small mountain. We swam in the outdoor swimming pool. We woke up when thunder rolled over the mountain. We caressed the affectionate cat. We gave water to the hungry dog.

We visited Lucca and Pisa and Fosdinovo. We cycled on the city wall. We saw the leaning tower. We saw the sea from the castle on the mountain. We buried sticks in the sea and rescued them again. We lurched up the tower. Karoline and William went up and down the stairs we walked past.

William had 30 Lego bricks in his suitcase. William and Karoline built stairs and houses and people and animals and airplanes and cars.



Odder

We flew home.

We packed sandals and sunglasses away. We took scarves and hats on.

Karoline and William threw themselves into the Lego bricks. Now there were many bricks, not just 30, and the creativity that had been challenged and ransacked with 30 bricks, now had no limits.

We were catching a cold. The cold disappeared again.

Karoline went to school. William went to kindergarten.

One morning before school Karoline woke up and said, "Dad, we shall play chess." We played chess and Nine Men's Morris.

I cut the last grass before winter.

Eternity rests in every moment. The children play in the living room, are born and grow.

I gathered my notes. I went for a walk in the woods. I went for a walk on the beach. Jeg er bølgerne der vugger.

bølger mod kysten
smil og åndedrag
i himlen



Now

I hear music in the car. I see the sun rising above the horse in the fog. I work, I create, I learn. I see the moon above the harbor.

Karoline says "Good morning, Dad. Bye Dad. See you at dinner."


Gallery

Tourists in Firenze

Firenze seen from Piazzale Michelangelo

Ponte Vecchio

Duomo Firenze

The ocean seen from Fosdinovo


The castle in Fosdinovo

View from the castle in Fosdinovo

The leaning tower in Pisa

Duomo Pisa

Emaa

Piazza Anfiteatro

Olive grove

At Lucca

Tourists in Lucca

Tuesday, November 10, 2015

Sabbatical

Jeg fik en gave af eBay i år: sabbatical; fire uger fri, hvori jeg ville lade op og få ny energi, ny inspiration og ny indsigt.


Kalender

Jeg overvejede at holde sabbatical enten i forlængelse af sommerferien eller om efteråret.

Hvis sabbatical blev i forlængelse af sommerferien, ville det have givet mig fri i hele skoleferien.

Hvis sabbatical blev senere, kunne den lægges midt i perioden som strækker sig fra sommerferien i starten af august og indtil juleferien i slutningen af december. Sabbatical kunne lægges i kombination med skolernes efterårsferie. Vi ville desuden have mulighed for at besøge sydligere breddegradder på en køligere årstid med temperaturer et godt stykke under 30 grader.

Det endelige valg blev sabbatical fra slutningen af september til slutningen af oktober.



Blank

Hvad ville jeg lave i sabbatical?

Det ville blive anderledes end sommerferierne.

Jeg ville gerne et par uger sydpå sammen med familien, til Italien.

Jeg ville være alene i en periode. Jeg havde en idé om at tage alene et sted hen i Danmark.


Weekend

Jeg kørte hjem med toget. Jeg slukkede for mails, kalender og meddelelser.

Vi købte en bil; den gamle var blevet afvist ved syn. Vi kørte en tur og fejrede sabbatical og at have en bil igen.

Vi tog i svømmehallen og svømmede i det varme vand, og Karoline sprang fra vippen ud i det dybe vand.

Vi spillede kalaha og "gæt hvem du er".



Badebroen

Jeg tog til Fyn og boede i et ødehus. Der var træ og fugle og sol og vand. Der var intet tv, intet wifi, intet stereoanlæg og ingen computer. Jeg slukkede for telefonen.

Jeg gik ned til stranden. Jeg satte mig på en bænk på en badebro. Jeg så ud over bugten.

Jeg gik langs kysten, ind i landet, gennem skovene, gennem marker, forbi grise og køer og heste og hjorte, op til en fredet bakketop med udsigt over skovene og markerne og havet.

Jeg løb hen til evighedstræerne. Vandet strømmede ud af skoven. Et egern krydsede bækken.

Jeg lukkede øjnene og trak vejret hundrede gange.

Jeg så fortid og fremtid flyde sammen i dette øjeblik.

Sommeren fortsatte ind i oktober.

Uro dukkede op. Jeg tegnede et kort over uroen, og så på de forskellige områder.

Jeg mediterede. Meditation opløser verdens larm og uro, og trækker sløret bort fra evighedens fred og harmoni.

Her er jeg. Tanker og uro placerer jeg i kasser rundt omkring mig. Jeg kigger på en kasse og ser det stikke ud i flere retninger. Jeg sætter kassen lidt til siden. Her er jeg, og dér er tanker og uro.

Jeg visualiserede. Visualiseringer helbreder, og giver svar på mine spørgsmål, som oraklet der retter mit blik indad i mig selv for at finde svaret.

En dag blev det blikstille, hverken vind eller vand eller dyr eller menneske hørtes. Vandet var blankt, og krabber og søstjerner gled lydløst under mig.

Jeg bekymrer mig ikke om hvad der sker.



Italien

Vi fløj til Italien. Karoline og William jublede over deres første flyvetur. Vi kørte i taxi med Joe. Vi sang "Vi ser aldrig Joe igen, han er kørt til Barcelona".

Vi boede i Firenze. Vi så byen og broen og kuplen. Karoline og William kørte i karrusellen på torvet. Vi så byen fra de små busser i de smalle gader. Vi fandt isboderne. Vi lo ad gøgleren på pladsen og ad dem han lavede sjov med.

Vi legede på alle legepladserne. Vi spiste pizza og pasta. Janne bagte italienske boller. Vi sagde "Ciao Bella" og "Buon Journo Bambini". Vi hoppede af overraskelse over firbenene på muren.

Senere boede vi på et lille bjerg. Vi svømmede i "svømmingpoolen". Vi vågnede da tordenen rullede over bjerget. Vi kælede for den kælne kat. Vi gav vand til den sultne hund.

Vi besøgte Lucca og Pisa og Fosdinovo. Vi cyklede på bymuren. Vi så det skæve tårn. Vi så havet fra borgen på bjerget. Vi begravede pinde i havet og reddede dem igen. Vi slingrede op i tårnet. Karoline og William gik op og ned ad de trappetrin vi gik forbi.

William havde 30 legoklodser med i sin kuffert. William og Karoline byggede trapper og huse og mennesker og dyr og flyvemaskiner og biler.



Odder

Vi fløj hjem.

Vi pakkede sandaler og solbriller væk. Vi tog halstørklæde og hue på.

Karoline og William kastede sig over legoklodserne. Nu var der mange klodser, ikke bare 30, og den kreativitet, der var blevet udfordret og endevendt med 30 klodser, havde nu ingen grænser.

Vi blev forkølede. Forkølelsen forsvandt igen.

Karoline tog i skole. William tog i børnehave.

En morgen før skole stod Karoline op og sagde "Far, skal vi spille skak". Vi spillede skak og mølle.

Jeg slog det sidste græs inden vinter.

Evigheden hviler i hvert øjeblik. Børnene leger i stuen, bliver født og vokser.

Jeg samlede mine noter. Jeg gik en tur i skoven. Jeg gik en tur ved stranden. Jeg er bølgerne der vugger.

bølger mod kysten
smil og åndedrag
i himlen



Nu

Jeg hører musik i bilen. Jeg ser solen stige op over hesten i tågen. Jeg arbejder, jeg skaber, jeg lærer. Jeg ser månen over havnen.

Karoline siger "Godmorgen Far. Farvel Far. Vi ses til aftensmaden."


Galleri

Turister i Firenze

Firenze set fra Piazzale Michelangelo


Ponte Vecchio


Duomo Firenze


Havet set fra Fosdinovo


Borgen i Fosdinovo

Udsigt fra borgen i Fosdinovo

Det skæve tårn i Pisa

Duomo Pisa

Emaa

Piazza Anfiteatro

Olivenlund

Ved Lucca

Turister i Lucca

Monday, November 19, 2012

git local


The following alias sets up a command that displays branches where the newest commit is only in the local repository and not yet pushed to a remote:
git config --global --add alias.local "log --simplify-by-decoration --all --not --remotes --decorate --oneline"
It can subsequently be used simply like:
git local

Saturday, October 6, 2012

Continuous Delivery Wishes


Dear colleague, 

Please implement the following at your nearest software development company:

Product owner:
- make stories sequentially deployable

Architecture:
- architect for continous delivery
- create small units
- let each component access only its own data and otherwise call other components' APIs
- share services/infrastructure (leads to low impact deployments)

Design:
- design for continous delivery
- make it easy to release
- make it easy to change
- make it easy to deploy
- reduce risk of deployment
- leave the system always runnable
- manage 'traffic':
-- fast lane for weekly releases
-- slow lane for less frequent releases, using feature switches and dark launches
- use feature switches
- branch by abstraction = branch in code (not in version control)

Tests:
- test for continous delivery
- create predictable tests
- run system on development environment
- acceptance-test in non-integrated environment

Development:
- integrate with main line every day

Infrastructure:
- keep short build times
- script to rebuild environment from scratch (phoenix environments)
- parallelize builds
- split builds from deployments
- use a configuration server
- use a package repository

Deployment (of code changes):
- deploy in small steps
- make non-breaking database expansions
- separate deployment from release
- use blue-green deployment
- run smoke tests
- use canary releases

Release (of a feature):
- flip a feature flag
- launch in the dark
- split test

Production feedback:
- let developers follow product into production
- monitor and study usage in production
- data mine and analyse feedback
- get real user feedback
- allow everyone fast feedback on effect of change

Process:
- deploy daily
- release when features are done
- create a 'devops' mentality
- keep the software releasable on-demand

Continuous improvement:
- remember that the delivery process is never perfect
- measure improvements
- create intermediate goals
- take small steps towards continous delivery
- automate what you're doing manually
- get measurable change fast, even if goal takes years

Possible measurements:
- how many lines of code gets deployed per week?
- how long does it take from feature development is 'dev done' to it reaches production?
- how long after deployment does it take to discover new errors?
- how many man-hours does it take to quality-assure before each deployment?
- how many man-hours does it take to sign-off each deployment?
- how many man-hours does it take to deploy per week?
- how many manual steps are involved in a deployment?

Thanks to Sam Newman, Josh Graham, Michael Nygard, Mike Brittain and Jez Humble at GOTO Århus 2012.

Wednesday, April 4, 2012

TortoiseGit and ssh keys

If you use TortoiseGit to access via ssh, then follow these steps to setup the 'putty key':
- Start putty key generator: C:\Program Files\TortoiseGit\bin\puttygen.exe
- Choose Load (Load an existing private key file)
- Navigate to C:\Users\\[your user name\]\.ssh
- In 'filnavn' choose id_rsa (NB! *not* id_rsa.pub)
- Choose 'Åbn' or 'Open'
- You should get a message box like 'Successfully imported foreign key (OpenSSH SSH-2 private key)...'. Press 'OK'.
- Then choose 'Save private key'
- Are you sure you want to save this key without a passphrase to protect it? Yes or No at your own decision...
- Save the file as 'C:\Users\\[your user name\]\.ssh\tortoisegit-putty.ppk'
- In tortoisegit choose Git clone
- In Url write an ssh url
- Choose load putty key and select the file you just generated 'C:\Users\\[your user name\]\.ssh\tortoisegit-putty.ppk'

Monday, February 27, 2012

Setting up NuGet for a new project

When setting up a solution to fetch from NuGet automatically:
1) Install-Package NuGetPowerTools
2) Enable-PackageRestore
4) Ignore packages folder from version control
3) Include .nuget folder in version control

More tips here:
http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

Saturday, July 2, 2011

CA1024: Use properties where appropriate

For a long time I had no understanding of the code analysis rule CA1024: "Use properties where appropriate."

I have often violated this rules with methods named Get*, without parameters, that returns a list of items, like

public interface IBlogRepository
{
IEnumerable GetBlogPosts();
}


I have now realized that this is probably an error, since there should always be some kind of paging (see also Ayendes comments on this).

So the correct solution is something like

public interface IBlogRepository
{
IEnumerable GetBlogPosts(int pageSize, int pageNumber);
}