Alt om ingenting og litt i mellom En blogg av Knut-Olav

A feature request to Google for Google Maps

6. august 2020 · Comments Off

Today I sent a feedback to Google about Google Maps, requesting a new feature.

I have a wish for a new feature that I didn’t know I wanted until I moved to Oslo. I would like to set a different “Home” address for my car than my appartment. My home address is not the same address where I park my car. The entry to my parking garage is on a different street, and GMaps often chooses completely different routes around/through Oslo depending on which address I set as destination.

For instance, getting directions from Drammen to “Home”, then GMaps often routes me on to “Ring 3″ near Lysaker. But when choosing destination of my parking it mostly takes me through the tunnels under Oslo on the highway E18.

I guess this might be an edge-case feature for the few, but at least it would make my life a tiny bit simpler.

Om å klippe og klone drueplanter

9. juni 2020 · Comments Off

Jeg plantet 4 drueplanter på hytta i fjor sommer, altså i 2019. Nå begynner de å vokse, og det er på tide å finne ut hvilke greiner som skal beholdes som “hovedskudd”, og klippe vekk øvrige skudd slik at hovedskuddet får mest næring.

Jeg ønsker også å prøve meg på å gro nye drueplanter av noen av disse. Men som så mye annet jeg driver med så må ting forskes på i forkant, for å minimere antall feil jeg kan gjøre.

Det skal nevnes at jeg prøvde litt halvveis i fjor høst da jeg trimmet ned plantene. Da puttet jeg noen avkappede greiner fra to av plantene oppi vann, i håp om at de skulle skyte nye røtter. De holdt seg fint i noen uker, men uten så mye endring, før de til slutt tørket inn og mistet alle bladene. Noen ting gjorde jeg visst feil da, blant annet at de fikk for mye sollys og de burde nok vært satt i jord istedenfor i vann. I tillegg virker det som at det bare skal være 1-2 blader igjen på greinen, for å minimere væsketapet.

Jeg har søkt litt rundt på nettet for å finne litt tips og eksempler.

Artikkelen Propagating Grapes fra Practical Self Reliance forklarer 5 forskjellige måter for å lage nye drueplanter. De mest aktuelle for meg er “hardwood cutting” som gjøres sent om høsten når plantene skal klippes ned, og “greenwood cutting” som tas fra nye skudd fra sen vår og til slutten av sommeren.

Videoen Turn a Few Grape Vines Into An Entire Vineyard In a Couple Weeks With Green Cuttings fra Hardcore Sustainable viser hvordan “greenwood cutting” kan plantes og hvilke hensyn man bør ta, i tillegg til å forklare en del fordeler med denne formen for å gro drueplanter framfor “hardwood cutting”.

Tilbake til hagen min og den drueplanten som har vokst mest. Den har nye skudd som har vokst ca 15-30 cm, men greinene er ganske tynne foreløpig. I videoen nevnt over forklares det at det er større sannsynlighet for å lykkes med kloningen hvis greinene har litt tykkelse. Men samtidig så ønsker jeg å få klipt planten snart, slik at kreftene kan fokuseres mot den hovedstammen som jeg ønsker. Været har vært litt ustabilt den siste uka med mye regn, men langtidsvarselet melder nå pent vær og mye sol, så det er muligheter for god vekst den kommende uka. Jeg avventer derfor litt, slik at greinene kan bli litt kraftigere.

Deduplisering av filer over nettverk

18. juni 2019 · Comments Off

Jeg har en god del bilder liggende på laptopen min, både lastet inn fra minnebrikke fra kamera og lastet ned fra Dropbox-kameraopplastinger fra telefonen.

Disse bildene kopierer jeg over til en server av og til, slik at jeg har et sted å nå de også når jeg trenger å rense opp litt plass på laptopen.

Av og til har jeg behov for å reorganisere bildene mine i nye kataloger. For eksempel var det blitt så mange bilder fra Dropbox-opplastingene fra telefonen at det var vanskelig å bla igjennom de, så da flyttet jeg de til nye kataloger per år. Scriptet jeg har for å kopiere over bilder er ikke smartere enn at den tolker disse bildene som nå ligger i nye kataloger, som nye bilder. Og alt tar plutselig dobbelt så mye lagringsplass. I tillegg ligger nå bildene på flere steder slik at man mister litt oversikten, men akkurat det får bli et tema til en annen gang.

For å unngå at duplikate filer tar dobbelt med plass så kjørte jeg deduplisering. Serveren var gammel nok til å ikke ha noe godt dedupliseringsverktøy som jeg kunne installere fra pakkesystemet. Løsningen ble å montere opp nettverksstasjonen med NFS/CIFS og kjøre deduplisering fra laptopen.

Verktøyet jeg brukte heter hardlink.

$ mount /server         # forutsetter at denne er definert i /etc/fstab
$ cd /server/Bilder
$ hardlink -v -t .

Mode:     real
Files:    13999
Linked:   5850 files
Compared: 0 xattrs
Compared: 5863 files
Saved:    19.07 GiB
Duration: 1761.81 seconds

Opsjon -v skrur på verbose.
Opsjon -t ignorerer endringstid på filene når verktøyet sammenligner filene. Dette er nødvendig for at den nye kopien av bildet skal kunne tolkes likt som det gamle bildet på den gamle lokasjonen.

Modulbasert utvikling og arkitektur

30. januar 2018 · Comments Off

IT-prosjekter handler ofte om å flytte og konvertere data mellom IT-systemer, i forskjellige presentasjonsformer og koble data fra flere datakilder.

Når man kjører flere slike prosjekter samtidig og over lengre tid med betydelig antall ressurser blir det aktuelt å tenke litt større og legge en strategi for hvordan informasjon skal flyte og behandles på tvers av organisasjonen.

Med modulbasert utvikling kan man utføre prosjekter med mange personer, gjerne delt i flere grupper. Det kan gjerne sees på som et bestiller- og leverandør-forhold, eller “klient og tjener”, hvor klienten definerer hva som forventes av den andre modulen å ta i mot og returnere av data og på hvilke formater utvekslingen skal foregå.

Moduler kan integreres i systemer via kompilatorlenking mot definerte grensesnitt, som funksjonssignaturer i et “interface” fra objektorientert programmering eller en “header”-fil, eller med meldinger som sendes på en meldingsbuss. Å binde seg til et definert grensesnitt har fordeler med at man kan få en kompilator til å sjekke gyldigheten av kontrakten, at man snakkes felles språk, men det gjør det vanskeligere dersom en av partene har andre behov og trenger å endre en funksjonssignatur.

Meldingsbasert integrasjon defineres på et høyere nivå enn ved funksjonssignaturer, for eksempel at grensesnittet bare definerer hvordan meldingen kan sendes og hvordan svaret kan mottas. Ulempen med meldingsbasert kommunikasjon er at det stiller høyere krav til validering, versjonering og bakoverkompatiblitet, siden en av partene kan oppgraderes til nyere versjon mens det finnes andre systemer som fremdeles snakker det gamle språket. Ved meldingsbasert kommunikasjon bør det skrives en spesifikasjon for formatet på meldingene, for eksempel i form av et XSD-skjemadokument dersom kommunikasjonen pakkes som XML-meldinger, eller Protocol Buffers hvis meldingene er mindre og tydelig definerte.

For enklere systemer holder det kanskje med et format på forespørsler ala: customer search 'ola normann' hvor “customer” kan være navnet på modulen, “search” kan være funksjonen i modulens grensesnitt og “ola normann” er parameteren til funksjonen. Responsen kan for eksempel være kolonne- og radbasert, som et regneark.
Mange muligheter!

Internett kan sees på som et modulbasert system. Veldig forenklet så kan nettleseren, altså klienten i vårt tilfelle, sende en forespørsel mot en adresse eller filsti til en webserver, altså tjeneren, som kan svare med et HTML-dokument. Det ligger en kontrakt til grunn om et felles grensesnitt som gjør at denne kommunikasjonen fungerer, og en slik kontrakt er HTTP-spesifikasjonen. Det er mulig å basere internkommunikasjon i sitt modulbaserte system over HTTP med for eksempel SOAP, Corba, REST, Thrift, for å nevne noen teknikker. Denne type meldingsbasert kommunikasjon har noen svakheter, blant annet krever det ekstra dataprosessering for å oversette objekter og datastrukturer til og fra meldinger som kan sendes over HTTP. Dette er også dens store fordel, da modulene kan lager i forskjellige programmeringsspråk og kjøre på forskjellige plattformer.

For å oppnå en smidig integrasjon mellom modulene trengs det presis og hyppig koordinering på tvers av utviklingsgruppene. Man må ta et steg tilbake for å få et overblikk over systemet som helhet.

Dette er i hovedsak en liten rant jeg skrev i 2011, og jeg mener den fortsatt holder vann – men ta den gjerne med en klype salt…

Logitech Media Server on skinny Debian Jessie

29. august 2016 · Comments Off

WAV/PCM files were not played by Logitech Media Server, with zero logging in /var/log/squeezeboxserver/server.log, on a tiny installation of Debian Jessie.

I tried to tune log levels and found some tools lacking, such as “flac” and “lame”, but none of them fixed my problem, and still no explanation in the log files.

But I found something in the logs that led me in the right direction:

[16-08-29 23:03:04.3358] Slim::Player::TranscodingHelper::enabledFormat (209) Checking to see if wav-flc-*-* is enabled
[16-08-29 23:03:04.3360] Slim::Player::TranscodingHelper::checkBin (250)    enabled
[16-08-29 23:03:04.3362] Slim::Player::TranscodingHelper::checkBin (252)   Found command: [flac] -cs --totally-silent --compression-level-0 $START$ $END$ -- $FILE$ | [sox] -q -t flac - -t flac -C 0 $RESAMPLE$ -
[16-08-29 23:03:04.3364] Slim::Player::TranscodingHelper::getConvertCommand2 (446) Matched: wav->flc via: [flac] -cs --totally-silent --compression-level-0 $START$ $END$ -- $FILE$ | [sox] -q -t flac - -t flac -C 0 $RESAMPLE$ -

I was missing the “sox” tool!
So, I installed “sox”, and now the media server is properly encoding WAV/PCM audio files to FLAC (or something).

Enter BIOS on Lenovo E31-70

3. februar 2016 · 2 Kommentarer

To enter BIOS on a Lenovo E31-70, press down and hold Fn+F2 (because some time someone in the IT industry decided that nobody uses the F-buttons, so lets hide them behind a Fn-button combination… Ok, enough with the rant for this time).

The first time I entered BIOS I was presented with some debug configuration options, a DEBUG-section and other advanced features, but every time I enter the BIOS now I just get the standard options… I have absolutely NO IDEA WHAT-SO-EVER how I can get to those advanced options back!

Another thing, booting from a USB stick doesn’t seem to work, even after I disabled UEFI Secure Boot. Might be the form factor of the USB stick, which has a contact that is a bit thinner than normal contacts, but it works on other computers I have. End-of-rant.

OpenStreetMap-kart og fotoboksvarsling på Garmin Nüvi 660

6. juli 2015 · Comments Off

Jeg fant igjen min gamle nedstøva Garmin Nüvi 660 her om dagen og tenkte jeg skulle sette den i stand.
Vanligvis bruker jeg Google Maps eller Waze på mobiltelefonen, men jeg ønsket å se om den gamle Garmin’n fortsatt fungerte, og dermed kunne ha en GPS liggende i bilen, som også andre som låner bilen min kan bruke.

Oppgradering av firmware

Etter å ha testa den litt, og sett at det fremdeles er liv i den, så oppgraderte jeg firmware.
Siden jeg kun har PC-er som kjører Linux, så måtte jeg ty til kreative løsninger.
Først koblet jeg GPS’n til PC-en med USB-kabel og tok backup ved å kopiere ut alle filene fra minneområdet – en tidkrevende prosess, siden USB-tilkoblingen er sinnsykt treg.

Så lasta jeg ned nyeste firmware, nuvi 660 software version 4.90 fra Garmin.com, og pakket ut EXE-fila, en selv-utpakkende fil, med kommandolinjeverktøyet “unzip”.
En del filer ble pakket ut, men den viktige fila er nuvi/Garmin/GUPDATE.GCD.
Denne fila kopierte jeg til til GPS’n sitt minneområde, under katalogen Garmin.
Huske å sync, og vent litt ekstra, og sync noen ganger til, før du unmounter USB-området.
Så restarta jeg GPS’n og den oppdaterte seg selv.
Jeg fulgte beskrivelsene fra flere websiter, men en ganske OK forklaring finnes på Ubuntu Forums: HOW TO: Update NUVI firmware with Ubuntu.

OpenStreetMap-kart

Deretter gikk jeg til OpenStreetMap sin Garmin-side, valgte karttype Generic Routable (new style), Norway and clicked Download map now!, som sendte meg til en ny side, hvor jeg kunne laste ned fila osm_generic_new_gmapsupp.zip.
Denne fila pakket jeg ut og kopierte fila gmapsupp.img til Garmin-enhetens minne under katalogen Garmin med filnavn gmapprom.img.
Etter mye venting og litt syncing og mer venting og syncing (for å være sikker på at alt er skrevet korrekt), unmounting og rebooting av GPS’n, så fikk jeg nye kart.

Fotoboksvarsler

Garmin’n har ikke hatt fotoboksvarsling tidligere, men jeg syntes det hørtes nyttig ut, og ville prøve å legge det inn.
Jeg fant en GPI-fil (POIs for Garmin-enheter) på Odins side – Fotobokser som inneholder både norske og svenske fotobokser.
Jeg lasta ned fila ATK_NO_SE_22x22pix_050315.gpi som jeg kopierte til Garmin-enhetens minneområde under Garmin/poi (tror jeg det var).
For tiden blir lista over fotobokser jevnlig oppdatert, og det har allerede kommet en nyere, oppdatert versjon av fila siden jeg gjorde dette.

Java RMI connectivity debugging

19. februar 2015 · Comments Off

When RMI connection fails with java.net.ConnectException: Connection refused it might be hard to figure out which hostname and port it tried to connect with, especially in third party libraries.

To enable debug logging in RMI connectivity, which logs hostname and port number, set this system property:
sun.rmi.transport.proxy.logLevel=BRIEF

Can also be set runtime with System.setProperty before RMI connections are made.

Log output are printed to console, such as:

Feb 19, 2015 1:03:28 PM sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket
FINE: main: host: localhost, port: 1098
Feb 19, 2015 1:03:28 PM sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket
FINE: main: host: localhost, port: 4444

Lite entropi?

5. januar 2015 · Comments Off

$ sudo aptitude install haveged

$ cat /proc/sys/kernel/random/entropy_avail