Twitter

  • Let’s Encrypt is a new Certificate Authority that is automated and free to use. This makes it possible to obtain domain validated (DV) certificates for your domain names as no cost!

    I registered for the closed beta, and got a few of my domain names authorised. This meant that I could now obtain certificates for them. The process was fairly simple. I chose to use the webroot authentication method, which means that the Let’s Encrypt client should be able to place files under my webroot to prove that I control the domain.

    Since my webroot is /var/www I created the /var/www/acme/.well-known/acme-challenge folders for the webroot plugin to use. My web server is Nginx so I placed the following code in the server blocks for the domains I want to obtain certificates for and reloaded the Nginx configuration.

    location ~ ^/\.well-known/acme-challenge {
      root /var/www/acme;
      default_type application/jose+json;
    }

    Now it was time to install and run the Let’s Encrypt client to obtain the certificates. When prompted I used /var/www/acme as the webroot path.

    git clone https://github.com/letsencrypt/letsencrypt
    cd letsencrypt
    ./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory certonly

    So far so good. I now had my certificates under /etc/letsencrypt/live and could configure Nginx to use them. Great! For those who are curious this is my SSL configuration for Nginx:

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA";
    ssl_ecdh_curve secp384r1;
    ssl_dhparam /etc/ssl/dhparams.pem;
    add_header Strict-Transport-Security max-age=31536000;

    The certificates are valid for 90 days, so they need to be renewed fairly often. I wanted to automate this process, so I wrote the following script. Basically it checks all certificates under /etc/letsencrypt/live and if one is about to expire in less than 4 weeks it is automatically renewed. I named this script certrenew.

    #!/bin/bash

    if [ ! -d /etc/letsencrypt/live ]; then
      exit 1
    fi

    function issueCert {
      /root/.local/share/letsencrypt/bin/letsencrypt certonly --renew-by-default --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory --authenticator webroot --webroot-path /var/www/acme $1
    }

    exitcode=1
    while IFS= read -r -d cert; do
      if ! openssl x509 -noout -checkend $((4*7*86400)) -in "${cert}"; then
        subject="$(openssl x509 -noout -subject -in "${cert}" | grep -o -E ‘CN=[^ ,]+’ | tr -d ‘CN=’)"
        subjectaltnames="$(openssl x509 -noout -text -in "${cert}" | sed -n ‘/X509v3 Subject Alternative Name/{n;p}’ | sed ’s/\s//g’ | tr -d ‘DNS:’ | sed ’s/,/ /g’)"
        domains="-d ${subject}"
        for name in ${subjectaltnames}; do
          if [ "${name}" != "${subject}" ]; then
            domains="${domains} -d ${name}"
          fi
        done
        issueCert "${domains}"
        exitcode=0
      fi
    done < <(find /etc/letsencrypt/live -name cert.pem -print0)

    exit ${exitcode}

    The script can be downloaded here.

    To automate everything I run the following script via cron every day. It calls the certrenew script and if certificates are renewed it reloads the Nginx configuration after the renewal process. This will produce output so you will get an e-mail from the cron daemon when certificates are renewed. If you don’t what that then just send the output of certrenew to /dev/null.

    #!/bin/bash

    if /usr/local/bin/certrenew; then
      /usr/sbin/nginx -t && systemctl reload nginx
    fi

    exit 0

    That’s it. Fully automated renewal of Let’s Encrypt certificates 🙂

  • Jeg faldt over denne smarte, og lidt specielle tekande, og kunne ikke lade være med at købe et par stykker 🙂 Nu har vi brugt dem derhjemme i et par uger, så her kommer en kort anmeldelse af den.

    Tekanden hedder IngenuiTEA, er fra Adagio Teas, kan indeholde 450 ml og ser således ud:

    OLYMPUS DIGITAL CAMERA

    Den ser måske ikke ud af meget, men det specielle ved denne tekande, er hvordan den bruges:

    1. Åben låget og put tebladene i den.

    OLYMPUS DIGITAL CAMERA

    2. Hæld kogende vand i den (eller lidt køligere afhængigt af hvilken te du vil lave). Luk låget og lad teen stå og trække så længe som den nu skal.

    OLYMPUS DIGITAL CAMERA

    3. Når teen er færdig stiller man blot kanden oven på en kop, og teen løber ned i koppen.

    OLYMPUS DIGITAL CAMERA

    Herefter smider man blot tebladene ud, skyller kanden og den er klar til brug igen. Når den trænger til at blive vasket, så ryger den bare i opvaskemaskinen.

    Den virker perfekt og det er klart den letteste måde at lave to kopper te på, som jeg har prøvet. Især på grund af hvor let den er at rengøre bagefter. Man kan også få den i en større udgave på ca. en liter, og der er vist også et andet firma der laver en lignende udgave i glas (denne her er af plastic).

    Hvis man er tedrikker og ofte skal lave en enkelt eller to kopper te, så kan jeg varmt anbefale at man får fat i sådan en. Der er, så vidt jeg kunne se, ingen danske forhandlere af den, men den kan fx bestilles direkte fra Adagio Teas. Prisen er 20€ for den lille og 30€ for den store, men dertil kommer så forsendelse.

  • Jeg opdagede i dag (mere eller mindre tilfældigt) at jeg sidste tirsdag løb min løbetur nr. 400 (i dag var det så nr. 401) siden jeg fik mit Garmin FR 410 løbeur. Det var den 2. januar 2011. Uret er sidenhen blevet udskiftet med et Garmin FR 910XT som gik i stykker efter næsten to år, og blev byttet med et helt nyt ur af samme model (tak for god service, Garmin). Jeg har også løbet en smule inden jeg fik det ur, men det har jeg ikke statistik på.

    Det har været lidt forskelligt hvor meget jeg har fået løbet, fra 3-4 gange om ugen ned til en gang om ugen, men jeg er aldrig helt gået i stå. De 400 ture på 4 år og en måned bliver til ca. 8.1 løbetur pr. måned i snit. I alt har jeg løbet tæt på 3500 km. så en gennemsnitlig løbetur har været på 8.7 km og hare været løbet med ca. 11,1 km/t i snit.

    For tiden er der ikke så meget tid til løb, men jeg vil i gang igen når foråret melder sin ankomst.

  • Ja, der har været stille på bloggen i lang tid, da der har været andet at se til. Jeg nedlægger dog ikke bloggen, og har også en del ting jeg gerne vil skrive om, men tiden til det mangler desværre lige i øjeblikket.

    Hvis vi lige skal se på hvad der er sket det sidste 1½ års tid, så begyndte det med at jeg satte min andelsbolig til salg tilbage i sommeren sidste år. Jeg vidste godt at den ikke ville være så let at komme af med, men håbede at den ville være attraktiv som forældrekøb når alle de nye studerende skulle til at begynde. Trøjborg ligger jo trods alt tæt på universitetet og tæt på skov og strand. Et par uger inden sommerferien sluttede kom første fremvisning af lejligheden og dagen efter fik vi forhandlet os frem til en pris, og så gik det ellers stærkt. Køber ville overtage indenfor ca. 3 uger, og det accepterede vi.

    Vi havde nu udsigt til at stå uden et sted at bo, og skulle finde noget midlertidigt på et tidspunkt hvor en masse studerende flokkedes til byen. Det lykkedes dog at finde et par der ville fremleje deres lejlighed på Vestre Ringgade i to måneder , mens de selv boede i deres kolonihavehus. Så vi flyttede alle vores ting, på nær et par flyttekasser med det mest nødvendige, ud i Boxit, og flyttede ind. Mens vi boede der fortsatte boligjagten, og vi fandt også det hus vi gerne ville købe. Vi fik ikke presset prisen ret meget ned (huset havde været til salg i 2 dage) men fik presset overtagelsesdatoen. Dog stod vi stadig uden bolig i en måneds tid, så vi måtte på den igen.

    Endnu engang lykkedes det at finde et par der skulle en måneds tid til Japan, og vi kunne leje deres lejlighed på Fåborggade. Lejligheden lå rigtig fint, men der var ikke så meget plads til os. Heldigvis var det kun i en måned, så det gik fint. Da måneden var gået kom en ret travl weekend hvor vi skulle flytte tingene fra Boxit ud i vores nye hus samme dag som vi skulle forlade og rengøre lejligheden på Fåborggade, og samtidigt med at familien var ramt af sygdom. Jeg ventede heldigvis indtil om aftenen med at blive syg, så jeg nåede at være med til flytningen 🙂 Den næste uges tid gik med at sove på en sofa i stuen i vores nye hus, da malerne skulle male huset indvendigt, krydret med at vi skulle blive hjemme og passe et sygt barn.

    Det tog noget tid at komme på plads i huset, men heldigvis har vi en stor garage hvor alle flyttekasser kunne stå imens. De første par måneder gik en del tid med at pendle til vuggestuen der stadig lå i nærheden af Trøjborg, men fra Februar fik vi endelig en plads i Tranbjerg, ca. 1 km fra hvor vi bor.

    Det var 1. november 2013 vi overtog huset, så vi har nu boet der i lidt over et år. Vi er stort set kommet på plads nu, selvom der jo vist altid er nogle projekter at gå i gang med når man er blevet husejer 🙂 Vi bor i Jegstrup, som er en lille landsby klemt inde mellem Tranbjerg og Hasselager. Vores postnummer er Hasselager, men Tranbjerg er nærmeste by.

     

  • Her er fortællingen om et hobbyprojekt der strakte sig over flere år. Nærmere bestemt fra december 2010 til marts 2013. Det lyder måske underligt når jeg nu siger at projektet i alt sin enkelthed gik ud på at lave en stor rød knap, der kunne mute fjernsynet når man trykkede på den. Hvorfor i alverden ville man lave sådan en? Jo, har du set NFL på TV3+ har du måske en idé. Her bliver man udsendelsen igennem bombarderet med reklamepauser, og for at undgå at blive sindssyg af at høre de samme 4 reklamer med overdrevet høj lydstyrke henover flere timer, så er man nødsaget til at mute hver gang der er reklamer. Desværre er fjernbetjeningen ofte gemt et eller andet sted under tæpper, puder eller bjerge af slik og chips, så derfor ville det være rart at have en stor knap på bordet som man bare kunne knalde hånden ned i hver gang der kom reklamer. Og ja, naturligvis skal den være rød 🙂

    Idéen opstod som sagt tilbage i 2010 da jeg tænkte “hvor svært kan det være at lave sådan en dims”. Min første udfordring var at finde ud af hvordan man kunne gemme en infrarød (IR) kommando fra en fjernbetjening og senere sende den igen. Da jeg ledte efter en løsning på det problem tilbage i december 2010, så faldt jeg over en chip der hed IRMimic der kunne lige netop dette (samt lidt mere jeg ikke havde brug for). Heldigvis solgte de også komplette sæt med alle komponenter man skulle bruge, samt instruktioner til hvordan de skulle samles, så jeg bestilte straks to af disse sæt (ønsker du at lave et lignende projekt i dag, så hedder chippen nu IRMimic2). Nedenfor kan du se alle de komponenter der følger med sådan et sæt. Lad mig sige med det samme: Jeg er ikke nogen haj med en loddekolbe.

    IRMimic komponenterne

    Jeg fandt også dengang et sted at købe store røde knapper, og dem bestilte jeg også to af. De blev købt hos Let Elektronik, men jeg tror ikke længere de forhandler dem. Jeg kan i hvert fald ikke finde dem på deres hjemmeside. De kan dog købes flere steder på nettet fx hos Sparkfun Electronics hvor de sælges under sloganet: “It’s the end of the world, and you need a button to press. This is it”.

    Stor rød knap

    Disse komponenter ankom i december 2010 og lå så ellers bare og samlede støv i min rodekasse frem til februar 2013 hvor jeg af uvisse årsager valgte at genoptage projektet. Måske var det fordi jeg for ikke så lang tid siden havde måttet se NFL slutspillet på TV3+, eller også var det fordi jeg tænkte på hobbyprojekter jeg ikke havde tid til efter at jeg var blevet far 🙂

    Uanset årsagen, så var det første jeg gjorde at finde dokumentation og tegninger frem for at finde ud af hvordan jeg skulle samle printet med IRMimic chippen. Jeg havde godt nok kigget på det da jeg modtog sættet, men det var nogle år siden, så den viden skulle lige genopfriskes. Efter et par minutters studier (der strakte sig over et par dage) af beskrivelser og diagrammer allierede jeg mig en aften med min loddekolbe og gik i gang.

    Første udfordring var at loddekolben har en spids der er ca. dobbelt så bred som afstanden mellem nogle af de komponenter der skulle loddes fast på printet. Allerede her burde jeg nok have givet op og anskaffet mig noget bedre udstyr, men i stedet loddede jeg løs og håbede på det bedste. Jeg kunne forsimple designet lidt da jeg kun skulle bruge en enkelt IR kommando som skulle forbindes til en bestemt knap, og efter ca. to timers lodning (fordelt på ca. en times lodning og en times fjernelse af loddetin der var havnet de forkerte steder) kom det spændende øjeblik hvor der skulle sættes strøm på. Chippen fungerer fra 3.7V til 5.5V, hvorimod alt højere end det ville brænde den af. Der var mulighed for at sætte en lille strømforsyning på der kunne regulere spændingen, men den undlod jeg og gav i stedet det hele strøm fra 3 x AA batterier, hvilket skulle være omkring 4.5V -- naturligvis checket med et voltmeter inden jeg satte strøm på.

    IRMimic printet set forfra IRMimic printet set bagfra

    Jeg satte strøm på, og til min overraskelse kom der ingen røg, men i stedet kortvarigt lys fra den røde lysdiode ganske som der skulle. Ved at trykke på “learn” knappen (som i mangel af knap bestod i at kortslutte to ledninger i bedste “jeg stjæler lige en bil”-Hollywood stil) skulle man nu kunne lære den en bestemt IR kommando fra en fjernbetjening, og her valgte jeg selvfølgelig mute. Jeg tændte fjernsynet, trykkede på den store knap og krydsede fingre… Succes!  Forstærkeren blev tavs! Et tryk mere og lyden kom tilbage.

    Første samlede sæt

    Således så det samlede sæt ud, men jeg var jo ikke færdig. Blandt andet manglede jeg jo at bygge det hele ind i en kasse som kunne klare at stå på bordet foran en flok mennesker der var allergiske overfor lyden af reklamer. Hvis noget er værd at gøre, så er det værd at overdrive så jeg besøgte straks Elektronik-Lavpris‘ hjemmeside og lavede en liste over diverse dimser jeg skulle bruge, hvilket primært var et par knapper. Jeg bestilte også en kasse til tre AAA batterier samt nogle AAA lithium batterier, da de skulle kunne holde en mere konstant spænding, samt at jeg ikke vidste hvor let det ville blive at skifte batterier i den når kassen var bygget færdigt.

    Den store røde knap havde en lille glødepære inden i så den kunne lyse. Den krævede dog 12V og brugte også mere strøm end jeg havde lyst til. Derfor skulle den skiftes ud med en lysdiode. Det krævede blot lidt lodning af en lille modstand på lysdioden (for ikke at brænde den af når jeg fodrede den med 4.5V i stedet for de ca. 2V den gerne vil have) og så lodde det hele fast på det sted hvor den oprindelige lampe havde siddet. Det er ikke lige til at se på billedet, men modstanden gemmer sig nede under dioden.

    Med glødepære Med LED

    Ved nærmere eftertanke skulle jeg nok have valgt en hvid LED, da knappen jo i forvejen er rød, men pyt. Det giver den bare et mere afdæmpet lys i en mørk TV stue 🙂

    Så kom næste store udfordring: Kassen. Jeg kiggede efter nogle plastickasser der kunne bruges, men fandt ingen der var velegnede, så det blev mere og mere tydeligt at jeg blev nødt til at designe min egen. Jeg har vist engang tilbage i sidste årtusind rodet lidt med 3D Studio 5 (til DOS) så hvor svært kunne det være at designe sådan en kasse (svar: sværere end jeg lige umiddelbart havde regnet med). Efter lidt søgen på nettet fandt jeg ud af at SketchUp vist var programmet man skulle bruge som glad 3D amatør. Jeg gik i gang og efter en uges tid med at finde ud af hvordan man brugte programmet, hvordan kassen skulle se ud og hvordan man gjorde sin model klar til 3D print, så endte jeg med nedestående design.

    Den færdige 3D model 3D modellen indefra

    Den store røde knap skal hvile i hullet og i kassen er der lavet huller til den infrarøde lysdiode,  en tænd/sluk knap samt en ekstra knap til at tænde det røde lys. Inde i kassen er der plads til “learn” knappen og batterierne. Det er dog meget svært at montere komponenter på en tegning, så nu skulle den fra computeren og ud i den fysiske verden.

    Der er en del steder der tilbyder at printe dine modeller i 3D og fælles for dem alle er at de er rasende dyre. Jeg kunne nok finde nogen i Kina der kunne gøre det billigt hvis jeg skulle bruge et par hundrede stykker, men lige nu skulle jeg bare bruge en enkelt (masseproduktion kommer senere 🙂 ) Efter at have kontaktet flere forskellige firmaer og prøvet et par online tjenester, så endte det med at blive i.materialise der skulle bringe min 3D model til verden. Billigt var det ikke, men dog stadig en faktor 2-10x billigere end nogle af de andre steder jeg havde forhørt mig. Jeg er sikker på at om 1-2 år når 3D printere er meget mere udbredte, så falder den slags voldsomt i pris, men så længe gad jeg ikke vente, så afsted med bestillingen. Jeg fik en mail om at min model kunne printes og at jeg skulle forvente at modtage den ca. tre uger senere. Derfor kunne jeg ikke rigtigt gøre andet nu end at vente og håbe at jeg havde designet den efter de korrekte mål!

    Her hopper jeg omkring to uger frem i tiden, for her ankom der, næsten en uge tidligere end lovet, en pakke fra i.materialise. Den blev straks pakket op, og nu stod jeg med en fysisk repræsentation af min 3D tegning, og ved første øjekast så den ganske fin ud. Alle målene passede sådan nogenlunde, men der er måske en grund til at den model jeg valgte hos i.materialise var noget billigere end de andre jeg fandt på nettet. Den er lavet af en slags hvid plastic, men den sorte farve er et underligt filtagtigt materiale der tiltrækker støv som en magnet. Derudover var der stadig nogle rester fra produktionen i nogle hjørner inde i kassen. De rester kunne dog heldigvis kradses af, men det gik udover farven da den blev hvid der hvor man kradsene. Det er heldigvis indvendigt, så det ser man ikke.

    Jeg havde lavet nogle små rammer inde i den til at holde batterierne og “learn”-knappen, men disse blev desværre en mm eller to mindre end jeg havde bedt om, så især batteripakken kunne ikke helt være der. Den kan dog mases godt nok ned til at den alligevel sidder fast, så det er ikke noget større problem.

    Den nøgne model lige fra 3D printeren

    Heldigvis passede den store røde knap fint i hullet, og det samme gjorde de andre knapper og IR dioden, så det var bare at gå i gang med at samle den. Nedenfor ses først hvordan IRMimic printet passer fint i kassen (det blev herefter fastgjort med en lille skrue) og hefter ses et øjebliksbillede af mit arbejdsbord. Der er mange ledninger der skal forbindes på ikke ret meget plads, men det gik fint omend lidt langsomt. Jeg mangler stadig en god (og mindre rodet) måde at isolere nogle ledninger på, men indtil videre blev det bare gjort med noget isoleringstape. Ledningerne skulle være lange nok til at man kunne få komponenterne ud af kassen igen, men heller ikke så lange at de skabte mere rod nede i kassen end højst nødvendigt.

    IRMimic boardet er monteret Der rodes og arbejdes

    Efter ca. 1½ times arbejde var den ved at være færdig. Nedenfor ses først de to knapper til at tænde for IRMimic og lyset i den store knap, og derefter hvordan det hele så ud lige inden den store knap blev monteret. Inden det skete testede jeg dog lige at den stadig kunne lære IR kommandoer, og fik til sidst lige lært den “mute” kommandoen på min forstærker, inden jeg lukkede kassen.

    Nærbillede af tænd/sluk knapperne Alt forbundet. Nu skal den bare lukkes

    Sidst, men ikke mindst: Det færdige resultat. Og ja, den virker! 🙂

    Det færdige resultat

    Et spændende projekt som jeg er glad for endelig er (næsten) afsluttet! Tilbage er at klistre noget gummi under den så den ikke glider rundt på (og ridser) bordet, og måske også klistre noget tyndt gummi på kanten hvor den røde knap hviler, da den godt kan rasle en lille smule. Det er dog småting.

    Jeg har dog allerede identificeret enkelte ting der kunne forbedres. For det første ville det nok være lettere at have “learn”-knappen på ydersiden så man ikke skulle åbne den hver gang man ville lære den en ny IR kommando. På den anden side er det jo ikke noget man gør ret tit, så det går nok. En anden forbedring ville være at placere IR dioden højere oppe på kassen. Lige nu ligger den tæt på bordet, og det gør at hvis kassen står langt væk fra fjernsynet på et bredt bord, så kan den muligvis ikke ramme fjernsyn eller forstærker hvis de er lavt placeret. IR dioden er desværre noget retningsfølsom. Til sidst skulle rammerne til at holde nogle af de interne komponenter være lidt større, eller der skulle være en batterilåge i bunden af den. Det er dog ganske fint for en version 1.0 🙂

  • DanID har langt om længe lanceret NemID på Hardware, hvilket betyder at man nu kan få sin hemmelige nøgle på et smartcard i stedet for at have den liggende på DanID’s servere. Det skulle prøves, så jeg bestilte det eneste hardware de understøtter, nemlig en Gemalto IDPrime .Net som faktisk er to enheder: En USB smartcardlæser og et smartcard der fastmonteres i den.

    Jeg bruger også Windows på nogle computere, og aktiverede faktisk kortet under Windows  jfr. DanID’s vejledning, men tænkte at det kunne være interessant også at få det til at virke under Linux. Denne vejledning til hvordan man får NemID på Hardware til at virke under Linux, er baseret på min favoritdistribution Arch Linux (64-bit), men det burde være forholdsvis trivielt at modificere den til at virke på en vilkårlig Linux distribution. Den er baseret på den officielle vejledning fra DanID.

    1. Installer først den nødvendige software for at snakke med smartcards og et library der skal bruges til at kompilere driveren i skridt 3:
      sudo pacman -S pcsclite pcsc-tools pcsc-perl ccid boost boost-libs
    2. Hent PKCS#12 driveren til smartcardlæseren. Gemalto siger at man kan skrive til dem for at få koden udleveret, men DanID har den også liggende på deres side.
    3. Pak koden ud, konfigurer dit build og byg driveren (hvis du får en fejl ved kompilering et sted i boost, så check dette commit):
      tar xfz libgtop11dotnet_2.2.0.12.tar.gz
      cd libgtop11dotnet-2.2.0.12
      ./configure --enable-system-boost --disable-static
      make -j2
    4. Installer driveren i /usr/local/lib/pkcs11:
      sudo mkdir -p /usr/local/lib/pkcs11
      cd .libs
      sudo cp -P libgtop11dotnet* /usr/local/lib/pkcs11
      sudo strip /usr/local/lib/pkcs11/libgtop11dotnet.so.0.0.0
    5. Sørg for at systemet kan finde driveren:
      echo "echo /usr/local/lib/pkcs11 | tee /etc/ld.so.conf.d/gemalto.conf" | sudo bash
      sudo ldconfig -v
    6. Start pcscd og sæt den til at starte ved hver opstart af systemet:
      sudo systemctl enable pcscd.socket
      sudo systemctl stop pcscd.socket
      sudo systemctl start pcscd.socket
    7. Indsæt din USB token og check om den virker med følgende kommando:
      pcsc_scan

      Hvis det virker skulle du gerne se output i stil med dette:pcscd

    Det var det. Tilbage er blot at prøve at logge på med din nye digitale signatur. Prøv fx på Sundhed.dk eller på Borger.dk, eller prøv at aktivere den hvis du endnu ikke har gjort det.

    nemlogin

    Bemærk at nogle udbydere benytter NemLog-In, mens andre benytter NemAdgang. Under NemAdgang skal du vælge at logge på med digital signatur, mens du under NemLog-In skal vælge at logge ind med nøglefil.

  • For 8 dage siden, nærmere betegnet den 3. december 2012 kl. 2:42 blev vores søn Marcus født. En “lille” mand på 4100 g og 54 cm.

    Fødslen gik nogenlunde let, og ikke helt smertefrit, men trods alt efter planen… næsten. Veerne tog nogle timer derhjemme, og efter ca. 6 timer på fødegangen på Skejby Sygehus kiggede Marcus frem. Han blev hurtigt vurderet til at være sund og rask. Desværre holdt han sin ene hånd oppe under hagen under fødslen, og skulle derfor bruge lidt mere plads end der var til rådighed, for at komme ud. Det gik desværre ud over min kæreste, der bagefter lige skulle lappes sammen mens Marcus lå og slappede af på min mave.

    På grund af dette fik vi en 4-5 ekstra på hospitalet. I starten var vi irriterede over at vi ikke straks kunne komme hjem, men det handler jo om at få det bedste ud af situationen. Vi havde nu nogle dage hvor vi ikke skulle tænke på mad, opvask, tøj, indkøb, etc. og havde man spørgsmål så var hjælpen altid lige i nærheden 24 timer i døgnet. Set i bakspejlet har det sparet os for utrolig meget besvær at vi havde de ekstra dage til at vænne os til situationen og få hjælp til alle de spørgsmål der nu opstår når man pludselig står med sådan et lille væsen i hånden. En stor tak til personalet på afdeling Y2 på Skejby Sygehus!

    Vi kom hjem fredag den 7. december om eftermiddagen og er nu ved at få styr på en helt ny slags hverdage 🙂

    Marcus 5 dage gammel

  • Update: I quit using Endomondo some time ago and no longer maintain this script. If it still works, great! If it doesn’t and you can make it work for you, great! If you want to take it and maintain it, feel free to do so.

    Update 2: Stephen Casey has modified this script so it should work again. Please check out his website for a description and a link to the updated script.

    As many people around the world I like to do some exercise now and then, and when that exercise is running I save all my workouts to Endomondo. I have been doing this for over two years now, and have accumulated more than 300 workouts. Recently Endomondo decided to limit the amount of features available for free, and move them to a subscription part of the website. While I have no problems with paying for what I use, I consider it a bad move to start charging for features that used to be free. It doesn’t really affect me that much though, since I never used those features anyway. However, it got me thinking that should Endomondo decide to do something similar in the future, I won’t have the option to switch platform since they hold all my workout data. There is a possibility to export one workout at a time, but Endomondo clearly stated that a mass export function will not be available. I was not satisfied by this so I wrote a script to export all my workouts from Endomondo, and I am posting it here in case some of you want to get all your data back from Endomondo too. After all it’s YOUR data. The script is written in PHP and runs from the command line. For Windows I have put everything needed into a single file. For Linux  and OSX you need to install PHP yourself. Also, in order for the script to work you need to login in one of the following ways:

    1. Put your username and password in a file called secret.txt where the first line is the username and the second line is the password. This does not work with Facebook logins and also requires OpenSSL support in your PHP installation.
    2. Get the cookie used to authenticate you and put the cookie  (everything after “Cookie: ” or the entire line, it doesn’t matter) in a file called cookie.txt. You can get the cookie in several ways: With Wireshark, using Chrome: (F12, reload page in Endomondo, Network, click on one of the resources under headers) or with some extension like TamperData for Firefox.

    If both files exist, username and password authentication takes priority. The script will first download a list of all your workouts, then download the actual workouts. It will remember the the latest workout that was downloaded, so if you run it again at a later point in time, you will only get new workouts. You can modify the function generateFileName to change the filenames of the saved workouts. Disclaimer: This script worked for me. Endomondo can easily change something on their website so this script does not work anymore, so I offer no guarantee that it will work for you. Use this script at your own risk. You can download the script for Linux and OSX or you can download everything needed to run it under Windows. If you’re using Windows you should extract the Endomondo directory from the ZIP file and execute the file run.cmd. For any other OS you should just execute php getworkouts.php.

« Ældre indlæg   

Seneste kommentarer

  • Michael, thanks for this great article! I have a question th...
  • For Apache, the webroot challenge folder in Apache could be ...
  • Thanks for the comment. I have added a download link for the...
  • Hello, could you please post your script in Plaintext or ...
  • Den virker ret godt - Endte med også at købe en. :)