Snøskred

Her er noen nyttige lenker for å lære om snøskred og systematisk undersøkelse av snølaget. Dette temaet er perfekt for å jobbe med matematikk (måling, kart og kompass), naturfag (krystaller, faseovergang, været, kraft), engelsk, geografi, kroppsøving. Fletter man inn bruk av mottaker/sender og søkestang, er man i tillegg innom førstehjelp og elektronikk. Vanskelig mao. å finne bedre tema for uteskoleundervisning.

Bør det bo folk i distriktene?

Innlegg sendt til Altaposten og Finnmark Dagblad 30. januar 2014

Bør det bo folk i distriktene?

Det er en uvirkelig følelse å ha jobbet med høringsuttalelse om hurtigbåttilbudet for i ettertid å oppleve at rutene på anbud er grunnleggende annerledes. Som eksempel: det blir umulig å ukependle fra Loppa kommune til Hammerfest. Det betyr i praksis at ungdom i Loppa mister muligheten til å gå på videregående skole i Hammerfest. Det betyr også verdifall for eiendommene i Loppa. Konsekvensene for samtlige kystbygder i Vest-Finnmark er godt dokumentert gjennom en rekke leserinnlegg den siste tiden.

Det manglende hensynet til distriktene skyldes i beste fall inkompetanse. Det er synd, og det tar energien bort fra den egentlige diskusjonen: bør det bo folk i distriktene?

I et korttidsperspektiv, kan det godt hende det “ikke lønner seg”. På samme måte som det “ikke lønner seg” å ha barn, skole eller helsevesen.

I et langtidsperspektiv, bør vi derimot ikke glemme viktigheten av distriktene for matsikkerheten, og viktigheten av matsikkerheten for vår nasjons uavhengighet. Markedene blir stadig strammere pga. økt befolkning og klimaendringer. Hvor lang tid vil det ta før nasjoner prioriterer egen befolkning? I en kronikk om matsikkerhet i Aftenposten 26. januar, minner Finn Roar Bruun om at flere land stengte grensene for eksport av korn ved forrige matkrise i 2010.

Dette langtidsperspektivet savner jeg i alle saker som angår livsgrunnlaget i småsamfunnene, det være seg samferdsel, fiskekvote-ran eller skoletilbud. Vi som bor på bygda kan fort oppleves som sytete, men byfolk som tenker langsiktig vil forhåpentligvis være enige i at vi spiller en nøkkelrolle for matproduksjonen.

Dersom de tenker langsiktig, vil myndighetene, på sin side, kanskje velge å likestille sjøtransport med veitransport ved å fjerne billettavgiften på hurtigbåt og ferge, og stenge utvalgte veistrekninger en eller flere dager i uken. De vil kanskje til og med overføre en del av flysubsidiene over til båttrafikken.

Fabrice Caline – leder i Nuvsvåg Utviklingslag

Fix a broken GoPro video file

Run this Perl script (link found here: http://goprohacks.blogspot.no/2010/11/recuperer-un-fichier-mp4-de-gopro.html)

Syntax: $ perl fix.pl videofile -reso 1080p30

default resolution is 720p25, so if the resolution of your broken file is different, you have to use the -reso option.

Here is the content of the script:

my $infile = shift(@ARGV);
my $outfile = $infile . “.restore.mp4”;

my $ctts_offset=0;
my $width = 1280;
my $height = 720;
my $framerate = 25;
my $i, $val;

#
# Parse command line options for options
#
for($i=0; $i<@ARGV; $i++) {
if ($ARGV[$i] =~ /-ctts/) {
$ctts_offset = $ARGV[++$i];
}
if ($ARGV[$i] =~ /-reso/){
$val = $ARGV[++$i];
if ($val eq ‘720p30’ || $val eq ‘ntscr2’) {
$width = 1280;
$height = 720;
$framerate = 30;
} elsif ($val eq ‘720p60’ || $val eq ‘ntscr3’) {
$width = 1280;
$height = 720;
$framerate = 60;
} elsif ($val eq ‘960p30’ || $val eq ‘ntscr4’) {
$width = 1280;
$height = 960;
$framerate = 30;
} elsif ($val eq ‘1080p30’ || $val eq ‘ntscr5’) {
$width = 1920;
$height = 1080;
$framerate = 30;
} elsif ($val eq ‘480p60’ || $val eq ‘ntscr1’) {
$width = 848;
$height = 480;
$framerate = 60;
} elsif ($val eq ‘720p60’ || $val eq ‘palr3’) {
$width = 1280;
$height = 720;
$framerate = 50;
} elsif ($val eq ‘960p30’ || $val eq ‘palr4’) {
$width = 1280;
$height = 960;
$framerate = 25;
} elsif ($val eq ‘1080p30’ || $val eq ‘palr5’) {
$width = 1920;
$height = 1080;
$framerate = 25;
} elsif ($val eq ‘480p60’ || $val eq ‘palr1’) {
$width = 848;
$height = 480;
$framerate = 50;
} elsif ($val eq ‘720p30’ || $val eq ‘palr2’) {
$width = 1280;
$height = 720;
$framerate = 25;
} elsif ($val eq ‘960p48’ || $val eq ‘96048HD2′) {
$width = 1280;
$height = 960;
$framerate = 48;
} else {
printf(“Error – resolution $val not supported. Trying default “.$height.”p”.”$frameraten”);
}
}

}

open INFILE, “<“, $infile or die(“Cannot open $infile for readingn”);
binmode INFILE;

print (“nAttempting to fix $infilenn”);

#disable screen buffering
$|=1;

#
# read data section, find video frames
#

my $n, $size, $type, $buff, $framecount, @ptrs, @szs, $offset, $pmdat;

#
# Skip looking for mdat, find frames by brute force
#

$framecount = 0;

#set delimiter to look for 6-byte value indicating AVC frame start
$/ = pack (“C*”, (0x00, 0x00, 0x00, 0x02, 0x09));

printf(“Found frame        at         “);
while ($buff = <INFILE>)  {
printf(“bbbbbbbbbbbbbbbbbb%06d at %08x”, $framecount, (tell INFILE) – 5);
$ptrs[$framecount] = (tell INFILE)-5; #adjust to start of code
if ($framecount > 0) {
$szs[$framecount-1] = $ptrs[$framecount] – $ptrs[$framecount-1];
#print (“size:  “.$szs[$framecount-1].”  n”);
}
$framecount++;
}

# throw away last one since it triggered on EOF
$framecount–;
pop(@ptrs);

#set beginning of mdat pointer based on 1st found frame
$pmdat=$ptrs[0]-8;

if ($framecount == 0){
printf(“bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb”);
printf(“No frames found. Quitting.            n”);
close INFILE;
exit;
} else {
print (“n”);
}

open OUTFILE, “>”, $outfile or die(“Cannot open $outfile for writingn”);
binmode OUTFILE;
print (“Opened file $outfile for writingnn”);

$min=0xffffffff;
$max=0x0;
foreach(@szs){
if ($_> $max) {$max = $_}
if ($_< $min) {$min = $_}
}

printf(“Found %d (%x) frames, or approx %ds of video at %dfpsn”, $framecount, $framecount, $framecount / $framerate, $framerate);
printf(”   min size %x, max size %xn”, $min, $max);
printf(”   from %x, to %xn”, $ptrs[0], $ptrs[$framecount-1]);

#
# Rebuild Header
#

my $hdrsize, $i, $moov, $stbl ;

#calculate size
#17 B per frame V, 17 Bpf A, plus overhead
$hdrsize = (34 * $framecount) + 2500;
$hdrsize = int ($hdrsize / 0x8000) + 1;
if ($hdrsize % 2 == 0) {
$hdrsize ++; # always make header size an odd multiple of 0x8000
}
$hdrsize = $hdrsize * 0x8000;

# calculate adjustment for new header size
$offset = $hdrsize – $pmdat ;

printf(“Calculated header size of 0x%x n”,$hdrsize);
printf(“Using ctts offset of $ctts_offsetn”);
printf(“Using $width x $height @ $framerate fpsn”);

# ftyp
print OUTFILE pack(“NA4A4NA4A4NN”,0x20,’ftyp’,’avc1′,0,’avc1′,’isom’,0,0);

#stbl
$stbl = pack (“NA4NN”,0xf9,’stsd’,0,0×01);
$stbl .= pack (“NA4NNNNNNnnNNNCCCA21C11CCC”,0xe9,’avc1′,0,1,0,0,0,0,$width,$height,0x480000,0x480000,0,0,1,0×15,’Ambarella AVC encoder’,0,0,0,0,0,0,0,0,0,0,0,0×18,0xff,0xff);
$stbl .= pack (“NA4NN”,0x10,’pasp’,0,0);
$stbl .= pack (“NA4N8”,0x28,’clap’,$width,1,$height,1,0,1,0,1);
if ($height == 1080) {
$stbl .= pack (“NA4N15C3”,0x47,’avcC’,0x014d0028,0xffe10030,0x274d0028,0x9a6280f0,0x044fcb80,0x8800001f,0x48000753,0x07430005, 0xb8e00019,0xbfd5de5c,0x686000b7,0x1c000337,0xfabbcb87,0xc2211458,0x01000428,0xee,0x3c,0x80);
} elsif ($height == 480) {
$stbl .= pack (“NA4N15C3”,0x47,’avcC’,0x014d401e,0xffe10030,0x274d401e,0x9a6281a8,0x7b602200,0x7d200,0x03a981d0,0x8007a180, 0x0044aa57,0x7971a100,0x0f430000,0x8954aef2,0xe1f08845,0x16000000,0x01000428,0xee,0x3c,0x80);
} elsif ($height == 960) {
$stbl .= pack (“NA4N15C3”,0x47,’avcC’,0x014d0028,0xffe10030,0x274d0028,0x9a6280a0,0x0f360220,0x7d20,0x1d4c1d,0x0c0016e3, 0x800066ff,0x577971a1,0x8002dc70,0x000cdfea,0xef2e1f08,0x84516000,0x01000428,0xee,0x3c,0x80);
}  else {
$stbl .= pack (“NA4N15C3”,0x47,’avcC’,0x014d0028,0xffe10030,0x274d0028,0x9a6280a0,0x0b760220,0x7d20,0x1d4c1d,0x0c003d0a, 0x0112a9,0x5de5c686,0x1e8500,0x8954ae,0xf2e1f088,0x451e0000,0x01000428,0xee,0x3c,0x80);
}
$stbl .= pack (“NA4N3”,0x14,’btrt’,0,0,0);
$stbl .= pack (“NA4N4”,0x18,’stts’,0,1,$framecount,90090/$framerate);
$stbl .= pack (“NA4NN”,8*$framecount  + 0x10, ‘ctts’, 0, $framecount);
if ($height == 1080) {
for ($i=0;$i < $framecount;$i++){
$stbl .= pack (“NN”,1,0x0bbb);
}
} elsif ( $framerate == 60) {
for ($i=$ctts_offset;$i < $framecount + $ctts_offset;$i++){
if (($i  %6 == 0) || ($i %6 == 3)) {
$stbl .= pack (“NN”,1,0×1199);
} elsif (($i  %6 == 1) || ($i %6 == 5)) {
$stbl .= pack (“NN”,1,1);
} else {
$stbl .= pack (“NN”,1,0);
}
}
} else {
for ($i=$ctts_offset;$i < $framecount + $ctts_offset;$i++){
if ($i % 3 == 0) {
$stbl .= pack (“NN”,1,0×2331);
} else {
$stbl .= pack (“NN”,1,0);
}
}
}
$stbl .= pack (“NA4N5”,0x1c,’stsc’,0,1,1,1,1);
$stbl .= pack (“NA4N3”,4*$framecount + 0x14, ‘stsz’,0,0,$framecount);
for ($i=0;$i < $framecount;$i++){
$stbl .= pack (“N”,$szs[$i]);
}
$stbl .= pack (“NA4N2”,4*$framecount + 0x10, ‘stco’,0,$framecount);
for ($i=0;$i < $framecount;$i++){
$stbl .= pack (“N”,$ptrs[$i] + $offset);
}
#fake stss because I don’t know how to re-calculate it
$stbl .= pack (“NA4N3”,0x14,’stss’,0,1,1);
$stbl .= pack (“NA4N”,$framecount + 0xc,’sdtp’,0);
if ($height == 1080) {
for ($i=0;$i < $framecount;$i++){
$stbl .= pack (“C”,0);
}
} else {
for ($i=0;$i < $framecount;$i++){
if ($i % 3 == 0) {
$stbl .= pack (“C”,0);
} else {
$stbl .= pack (“C”,0x08);
}
}
}
#moov
print OUTFILE pack(“NA4”,$hdrsize-0x20,’moov’);
print OUTFILE pack (“NA4N25”,0x6c,’mvhd’,0,0,0,0x015f90,2700000 / $framerate / 0x1d * $framecount, 0x010000, 0x01000000, 0, 0, 0x010000,0,0,0,0×010000,0,0,0,0x40000000,0,0,0,0,0,0,3);
print OUTFILE pack (“NA4”,0x180,’udta’);
if ($height == 960) {
print OUTFILE pack (“NA4N30”,0x80,’AMBA’,0x040003,0x01030f00,0x04,0x1776,0x02bf20,0xb71b00,0xb71b00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0×0100);
} elsif ($height == 1080) {
print OUTFILE pack (“NA4N30”,0x80,’AMBA’,0x100009,0x01010800,0x04,0x0bbb * (3-($framerate/30)),0x02bf20,0xb71b00,0xb71b00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0×0100);
} else {
print OUTFILE pack (“NA4N30”,0x80,’AMBA’,0x100009,0x01030f00,0x04,0x0bbb * (3-($framerate/30)),0x02bf20,0x7a1200,0x7a1200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0×0100);
}
print OUTFILE pack (“NA4N60”,0xf8,’free’,(0)x60);
print OUTFILE pack (“NA4”,0x16a + length($stbl), ‘trak’);
print OUTFILE pack (“NA4N19n4”,0x5c,’tkhd’,0x07,0,0,1,0,2700000 / $framerate / 0x1d * $framecount,0,0,0,0,0×10000,0,0,0,0x10000,0,0,0,0×40000000,$width,0,$height,0);
print OUTFILE pack (“NA4”,0x24,’edts’);
print OUTFILE pack (“NA4N5”,0x1c,’elst’,0,1,0x015f90 / 0x1d * $framecount, 90090/$framerate,0x10000);
print OUTFILE pack (“NA4”,0x44, ‘tapt’);
print OUTFILE pack (“NA4Nn4”,0x14,’clef’,0,$width,0,$height,0);
print OUTFILE pack (“NA4Nn4”,0x14,’prof’,0,$width,0,$height,0);
print OUTFILE pack (“NA4Nn4”,0x14,’enof’,0,$width,0,$height,0);
print OUTFILE pack (“NA4”, 0x9e + length($stbl), ‘mdia’);
print OUTFILE pack (“NA4N6”, 0x20, ‘mdhd’, 0,0,0,0x015f90,0x015f90 / 0x1d * $framecount,0);
print OUTFILE pack (“NA4N2A4N3CA13”, 0x2e, ‘hdlr’, 0,0, ‘vide’,0,0,0,0xd,’Ambarella AVC’);
print OUTFILE pack (“NA4”,0x48 + length ($stbl), ‘minf’);
print OUTFILE pack (“NA4N3”, 0x14, ‘vmhd’, 1,0,0,);
print OUTFILE pack (“NA4”,0x24,’dinf’);
print OUTFILE pack (“NA4N2”,0x1c,’dref’,0,1);
print OUTFILE pack (“NA4N”,0xc,’url ‘,1);
print OUTFILE pack (“NA4”, 0x8+length($stbl),’stbl’);
print OUTFILE $stbl;

print OUTFILE pack (“NA4”,$hdrsize – tell OUTFILE, ‘free’);

for ($i=$hdrsize – tell OUTFILE; $i>0; $i–) {
print OUTFILE pack (“C”,0);
}

#
# Copy data over
#

print OUTFILE pack (“NA4”,unpack (“%123d*” , pack( “d*”, @szs)) + 13,’mdat’);
seek INFILE, $pmdat + 8, 0;
$framecount=0;
printf(“Copying  frame       …”);
while ($buff = <INFILE>)  {
printf(“bbbbbbbbb%06d…”, $framecount++);
print OUTFILE $buff;
}
print(“nDone.n”);

close OUTFILE;
close INFILE;

Musikkundervisning i grunnskolen

Her er noen veldig gode ressurser til bruk for grunnleggende musikkundervisning:

Og noen enkle låter for nybegynnere på gitar:

03-IMG_5102

Inuittenes jaktredskaper

For en av oppgavene i studiet “Arktisk Natur som Læringsarena”, har jeg lagd en plakat som viser hvilke redskaper inuittene brukte på slutten av 1800-tallet på Vestkysten av Grønland. Informasjonen er hentet fra Eskimoliv av Frithjof Nansen. Fri utgave av boken ligger online på nb.no

Valgblogg 30. august – lenge siden sist

To uker uten innlegg… ikke lett å blogge fra sykkelsetet 😉

Jeg har syklet nesten 100 mil, men på vei til Lakselv fra Hammerfest i går, røyk en eik på forhjulet. Hjulet holdt til Olderfjord hvor jeg er nå for helgen. I dag er min 8. og siste skoledebatt, på Lakselv VGS. Så har jeg nettmøte med FD, stand i Lakselv, og stand i Billefjord. I morgen, stand i Olderfjord og møte med Finnmark Bondelag. Og da er valgkampen mer eller mindre over for meg, for i neste uke er jeg på fjellet på studiesamling. Håper bare å finne tid til å skrive et avklarende innlegg om ruspolitikk, for siste artikkel i Altaposten var bare klønete og forvirrende.

Jeg lærte mye i forrige uke, og fikk et innblikk i noen av sakene folk er opptatt av.

NRL fortalte at flere distrikter har redusert reintallet, mens noen er på etterslep. Situasjonen er under kontroll og reintallet skal ned til et bærekraftig nivå innen 3 år. De fortalte også at ordningen med områdestyrer er avviklet, og ansvaret flyttet til Fylkesmannen. Dermed har reindriften mistet sin innsigelsesrett i f. eks. mineralsaker. Ellers er kjøttlagrene tømt, det er gjort en god innsats på markedsføring, så prisen på kjøttet er god.

Kystfiskarlaget er bekymret for den totale belastningen på økosystemene av utslippene fra petroleum, skipsfart, oppdrett og gruver. Dette har ingen oversikt over. Det var en artikkel i Nordnytt om akkurat dette ifm. kollapsen av kysttorskbestanden. De vil også at fiskekvotene skal forvaltes av lokalsamfunnene som en rett til å høste fra fellesskapets ressurs. Det vil både hindre at trålere kommer seg unna leveringsplikten og gjøre det enklere for ungdom å begynne å fiske. De foreslo å innføre totalforbud mot å fiske lodde, fordi lodden er grunnlaget for hele næringskjeden. Og så foreslo de å innføre makrellkvote, f. eks. 12-15 tonn per båt.

 

Valgblogg 13. august – sennagress

I dag lærte jeg hvordan man tilbereder sennagress. På vintermodulen skal vi lære å sette det i skaller. Vi var på Elvestranda og fant masse fint gress som vi skar. Så spiste vi lunsj rundt bålet og stekte pannekaker med ferskt, eget-produsert blåbærsyltetøy. Vi lagde te av mjødurt som vi fant ved elva. Etter lunsj, plukket vi planter og gikk gjennom alt vi hadde plukket. Vi brukte sykkel som fremkomstmiddel, deilig :)

Her er litt info om tilberedelse av sennagress:

http://www.trestammersmote.no/view_bilde_stor.asp?id=67

Ellers avtalte jeg to intervju med Altaposten i morgen onsdag. Det ene for å lage en 2 siders partipresentasjon med hovedtema: mineralutvinning i Sápmi. Det andre for å følge opp på rusdebatten som jeg prøver å dra i gang.

Jeg avtalte også intervju på NRK Finnmarksnytt mandag 26. august kl. 0830 på direkten.

Jeg ser på overskriftene at det spisser seg til mellom gruvemotstandere og politi i Kallak (Jokkmokk).

Se for eksempel denne artikkelen om saken:

http://sverigesradio.se/sida/artikel.aspx?programid=2327&artikel=5609309

Skulle gjerne følgt bedre med, men døgnet har et begrenset antall timer…

Mandag sendte jeg forresten forespørsel til Nussir v/ daglig leder Øystein Rushfeldt for å be om tillatelse til å se på boreprøvene. Venter fortsatt spent på svar! Jeg viste til følgende NRK Sápmi-artikkel hvor han sier:

«– Prøvene er representative. Dette er samleprøver som består av borekjerner i fra Nussir og Ulveryggen. Det er de samme prøvene som ble testet av SGS Lab og som ble brukt av NTNU til KREC-rapporten. Alle som vil se prøvene, er velkomne til det.»

http://www.nrk.no/kanal/nrk_sapmi/1.11017830

Valgblogg 12. august – “artigst” natur

Etter en deilig seiltur fra Hammerfest til Nuvsvåg fredag-lørdag med overnatting på nydelige Gåshopen i Sørøysundet og noen hektiske timer hjemme med pakking og vasking, syklet jeg til Alta søndag ettermiddag for å delta på 3 dagerssamling for kurset Arktisk Natur som Læringsarena på Norges artigste universitet, UiT. I går var vi ute i skogen og lærte flere leker i naturen. Tove Aagnes Utsi fortalte også om nytteplanter. Jeg elsker kurset allerede :)

På ettermiddagen holdt jeg stand på torget i Alta. Jeg kjenner jeg begynner å få dreisen på det, for det er første gang jeg ikke gruer meg. Tvert imot, jeg liker å stå på stand og snakke med folk, veldig lærerikt og mye god støtte! Altaposten var innom, regner med det blir et sympatisk / humoristisk oppslag i dagens avis :) Jeg møtte også Maria — dattera til Larsen — og avtalte at jeg kommer innom en kveld denne uken for å gjøre litt reklame. Regner med det blir fredag kveld.

Onsdag drar jeg hjemover for å holde stand i Loppa og på Sørøya. Hvis været tillater og skulderen er sterk nok, tenker jeg å padle fra Nuvsvåg til Bergsfjord.