Kebmans blogg

Oppstandelsen

Posted in animasjon, Design, Dramaturgi, Foto, Fotografi, Konspirasjonsteorier by kebman on 11/10/2013

Denne bildeserien er basert på en oppgave fra pedagogikkstudiet hvor målet var å fortelle en historie med fem bilder. Her har jeg valgt å presentere Director’s Cut av oppgaven, og har dermed tatt med fire bilder ekstra. Foreleseren valgte å kalle serien for ‹Oppstandelsen›, og det synes jeg var et så bra navn at jeg valgte å vrake min originale tittel, «Student».

Going to School - Waking Up

Going to School - Shower

Going to School - Nickers

Going to School - Pants

Going to School - Food

Going to School - Shoes

Going to School - Public Transportation

Going to School - On the Bus

Going to School - Finally There

I ettertid er jeg litt lei meg for at jeg ikke fikk med en hånd på skoen, men jeg tenker å rette på det i «Oppstandelsen Part Deux».

Reklamer

Nytt kristendomsfag bryter med all logikk

Posted in Konspirasjonsteorier, Nyheter, Politikk by kebman on 01/10/2013

Nytt kristendomsfag kan bryte menneskerettighetene, hevder TV2.no. Ikke bare det, men det bryter med all logikk. Denne saken fikk meg derfor til å lure på hva det egentlig er RLE går ut på for tiden.

Det er faktisk veldig konkret. Kompetansemålene (de tingene kompetansen til eleven blir målt etter) står som bullet-points i læreplanen. Her er for eksempel kompetansemålene for 1.-4. klasse på barneskolen: Læreplan i religion, livssyn og etikk – kompetansemål.

Som man kan se ut fra kompetansemålene i denne planen, har kristendom allerede en større og mer omfattende del av kompetansemålene enn de andre religionene. I tillegg dekker også kompetansemålene for både jødedom og islam viktig kompetanse innen kristendommen, og motsatt. Så hva vil det si at kristendom får en større del av RLE-faget?

Jo, det vil si at det blir plass til færre kompetansemål innen de andre religionene – og filosofi og etikk, som Utdanningsdirektoratet i sin visdom har funnet det klokt å samle sammen med religion…

Men hva skal man skjære vekk, da? Hva om man slår sammen målene for islam og jødedom med kristendom? Hva om man fjerner buddhisme og hinduisme? Det er jo så få som driver med det i Norge uansett… Eller hva med å få Filosofi og etikk ut av religionsfaget, som jo stort sett er et samfunnsfag uansett, og få filosofien inn som eget fag? Den fortjener jo tross alt litt bedre plass enn det den får i dagens skole, eller? Jeg tror ikke jeg klarer å dekke alle alternativene. Det er ikke min jobb heller, men jeg ser at debatten går friskt for seg. Bare på TV2 sine debattsider har det kommet mange forslag.

Argumentasjon for at vi burde ha kristendom som en større del av RLE-faget:

Kristendom er en del av vår kulturarv, og fortjener derfor mer plass innen RLE

Selvsagt er kristendommen en viktig del av norsk historie, noe som gjenspeiles godt i læreplanene for både nyere og eldre historie. Men dette svarer jo ikke på om det er viktig å vite innholdet i sentrale verker innen kristendommen, som er va RLE går ut på.

Kristendom har den beste moralen og etikken, og derfor bør vi ha mer kristendom

Dette er rett og slett tull. Jeg tror ikke jeg vet om noen bok som har flere moralske selvmotsigelser i seg enn nettopp Bibelen. Igjen gir dette seg ut i utspredt bruk av dobbeltmoral, noe som heller ikke er bra.

De fleste andre religioner vil hevde at de har en bedre etikk og moral enn kristendommen igjen, og når man ser hva som utløser «dårlig moral» har det ofte lite med reglene som ligger til grunn, men heller mer med utøvelsen av disse.

La meg minne om at det ikke bare finnes muslimske ekstremister der ute. De er også kristne, eller endog buddhistiske! Vi har også hatt kristne konflikter i nyere tid, slik som konfliktene om irsk og baskisk frigjøring – og ikke minst krigen i tidligere Yugoslavia.

Nei, det vi bør ha mer av, er filosofi og etikk uavhengig av religion. Moral og etikk innen religion har nemlig en tendens av å 1) gå på bekostning av andre religioner, eller de som ikke tror, 2) gå på bekostning av evnen til å tenke selv, og 3) gå på bekostning av viten om at det faktisk rent logisk lønner seg bedre å oppføre seg godt i et samfunn, enn ondt – og det helt på tross av religion (kristendommen inkludert)! Ikke minst er filosofi faktisk nyttig innen studier og i arbeidslivet (med mindre du skal bli prest).

Mer kristendom vil skyve vekk annen religion, noe som er bra siden annen religion utvanner vår kultur

Vi har en kultur for at norske og protestantiske prester er de snilleste onklene i familien. Ikke har de særlig mye å si i norsk sekulært dagligliv lenger heller. Da er det i det minste litt mer futt i imamene. Sjansen er uansett svært liten for at de som allerde er kristne slutter å være det, eller at de som er etnisk norske plutselig omvender seg til muslimer fordi annen religion liksom skyver vekk norsk kultur. Hele dette argumentet har derfor mye mer med fremmedfrykt å gjøre enn faktiske forhold; at vi slipper inn ikke-vestlige innvandrere i hopetall uten å stille krav til dem. Men seriøst, jeg synes heller vi skal kreve av dem at de lærer seg norsk og tar inn over seg norsk kultur enn at vi tvinger dem til å lære Det nye testamentet. Om det er etikken eller moralen du er redd for, se avsnittet over.

Arma 3: Fyll bensin på ditt helikopter

Posted in Data, Programmering, Scripting, Spill by kebman on 28/09/2013

En enkel oppskrift på hvordan kode fylling av drivstoff på ditt helikopter i Arma 3.

Forhåndskunnskaper: Du må minimum kunne plassere objekter ved hjelp av editoren i spillet. Hvis du ikke kan det enda, se her: http://www.youtube.com/watch?v=oN8s58xEi0k
Ellers er prosessen forklart veldig nøye. Teskje-metoden here we come! 😀

Oppskrift

Åpne opp kartet du har lyst å jobbe med og plasser enten en player eller et helikopter som du gjør til player.
Gi helikopteret navnet myHeli. Lagre kartet med Mission Name «Trigger» og som User Mission.

Plasser så en trigger (finnes under flagg-ikonet).
Sett størrelsen slik at det passer med landingsplassen din.
Pass også på at den er satt til Repeatedly og at enten din gruppe, eller alle, kan trigge den.
Repeatedly betyr ganske enkelt at du kan bruke triggeren til å fylle bensin så mange ganger du måtte ønske.

I boksen Condition, skriv følgende kode:

({getPosATL _x select 2 < 0.1} count thisList) > 0 && fuel myHeli < 0.9;

Forklaring av koden

Den første delen av koden gjør at triggeren kun fyrer av om helikopteret er under 0,1 meter over bakken (Merk: i USA bruker de punktum for å skille mellom desimaler, mens vi bruker komma her i Norge).
Den andre delen av koden (etter &&) gjør at triggeren kun fyrer av om helikoptere har under 90 prosent drivstoff i tanken.

getPosATL finner plassering og høyde over land. Det kommer som en array _x bestående av posisjonskoordinatene 0=X, 1=Y og 2=Z.
Vi er selvsagt bare interessert i høydevektoren Z, derfor står select 2 der.
For at det ikke skal fylles drivstoff før helikopteret står på bakken, vil ikke «listen» bli telt som 1 før høyden er under 0,1 meter over land.

I tillegg vil ikke triggeren skyte av før helikopteret har under 90 prosent drivstoff.
&& står simpelten for en logisk «og», som betyr at begge delene av kondisjonalen må være sann før triggeren fyrer av. Det holder ikke at bare én av dem er det.

I boksen On Act (On Activation), skriv følgende kode:

nul = [] execVM "fuel.sqf";

Forklaring til koden

Dette lager en null-array, fordi det av en eller annen grunn kun kan kjøres fra en sånn… Og execVM kjører ganske enkelt filen fuel.sqf.

Denne filen finnes naturlig nok ikke enda, derfor er det på tide at du starter opp din beste tekst-editor (Notepad++, f.eks., men vanlig Notisblokk funker også).

I tekst-editoren, skriv inn følgende skript:

heliFuel = fuel myHeli;
addFuel = 0.1;
while {heliFuel < 1.0} do {
     myHeli setfuel heliFuel + addFuel;
     addFuel = addFuel + 0.1;
     sleep 0.2;
};

Lagre skriptet som fuel.sqf i mission-folderen. Denne ligger vanligvis på C:\Users\DittBrukernavn\Documents\Arma 3\missions\Trigger.Map . I alle fall gjelder det Windows 7
For alt jeg vet har du den på D-disken. Bytt i så fall C: ut med D:. DittBrukernavn bytter du selvfølgelig med ditt brukernavn.
.Map er det kartet du har valgte, enten Stratis, Altis eller et annet kart.

Forklaring av skriptet

heliFuel = fuel myHeli lagrer simpelten hvor mye drivstoff helikopteret har igjen i tanken i variabelen heliFuel.
addFuel lagrer hvor mye som skal fylles hver gang skriptet slår en ny løkke. Det definerer altså hvor fort tanken fylles opp. Jo høyere tall, jo fortere går det, men det er ingen grunn til å sette tallet over 1, siden 1 er normalisert til å bety «full tank».
while-løkken kjører så lenge det er plass til mer drivstoff i tanken (så lenge heliFuel er under 1), men ikke noe mer enn det.
Inni while-løkken, legger setfuel ganske enkelt den eksisterende mengden drivstoff (heliFuel) sammen med ny mengde drivstoff (addFuel).
sleep pauser ganske enkelt løkken så mange sekunder det er angitt (0,2 sekunder i dette tilfellet).

Som du ser er det et ganske lite skript. Kanskje tenker du da at det kunne vært i kondisjonal-feltet i triggeren. Grunnen til at det ikke kan være der, er fordi triggeren ikke godtar pauser. Det er kun mulig i eksterne skript, derfor trenger det å være i sin egen fil.

Valgfritt

Om du vil at det skal se ekstra bra ut, plasser også ut et helipad-objekt under triggeren fra Empty > Objects (Signs).
Det er nemlig litt lettere å finne igjen trigger-området i spillet om du også har en synlig landingsplass assosisert med den. 😉

Q-taggen

Posted in Data, Webdesign by kebman on 11/09/2013

Anbefaling for hvordan bruke Q-taggen innen HTML: Ikke i det hele tatt!

Meningen bak Q-taggen er å definere et kort sitat, i følge W3Schools. W3C forklarer Q-taggen som et element som representerer formulering av innhold sitert fra en annen kilde. Ren skrift representerer dette med et sitat-tegn, enten engelske hermetegn («»), eller norske gåsøyne («») og anførselstegn (‘’). Med andre ord finnes det allerede fullgode typografiske tegn for dette.

Selv om visse maskiner har vansker med å vise frem disse tegnene, kan alle maskiner med tilgang til kodetabellen UTF-8 vise disse fram riktig. Med det som basis anbefaler jeg alle som vurderer å bruke Q-tagg om å heller droppe det og bruke de tegnene vi har tilgjengelig.

Q-taggen var et forsøk fra W3C om å få vist frem korte sitater riktig på alle typer maskiner, da ikke alle maskiner har denne typen tegn. Problemet er at de fleste nettlesere viser dette fram med engelske hermetegn, som skaper et problem når teksten er europeisk, eller når sitatet også inneholder et «undersitat». Som resultat blir man nødt til å skrive ekstra CSS-kode om man vil at teksten skal rendres riktig av nettleseren, noe som er helt unødvendig når du allerede vet hvordan du bruker tegnene riktig. Enda mer unødvendig blir det også når du i HTML-en enkelt kan angi hvilken kodetabell teksten du publiserer skal tolkes med.

Bruker du HTML5 er det bare å sette inn denne kodesnutten i hodet av koden din:

<meta charset="utf-8" />

SMPTE-synkronisering på GitHub

Posted in Data, Filmredigering, Internett, Programmering, Programvare, Scripting, Teknologi, Video by kebman on 13/05/2013

Endelig har jeg oppdaget GitHub og lagt ut mitt første prosjekt der. Driver på med et videoprosjekt nå, men jeg fikk noen problemer med SMPTE-koder (tidskoder for video) som ikke stemte med hverandre da jeg logget. Først sjekket jeg ut noen programmer, men de dugde ikke, så da bare satte jeg i gang å lage min egen kode.

Sjekk det ut her: https://github.com/kebman/Simple-SMPTE-class-in-PHP

Hvordan traversere JSON med PHP

Posted in Programmering, Scripting, Teknologi, Webdesign by kebman on 10/04/2013

Nå og da trenger man å traversere JSON-data med PHP. Da kan det være greit å vite hvordan man gjør det. Her er et lite eksempel.

La oss si du har fått en fil, folk.json. Her er den:

{
 "folk": [
 { "fornavn": "Ola", "etternavn": "Nordmann" },
 { "fornavn": "Kari", "etternavn": "Nordmann" },
 { "fornavn": "Lars", "etternavn": "Medelsvensson" },
 ]
}

Det du har her er for alle praktiske formål en flerdimensjonell array. Ofte kan slike by på litt hodebry, men egentlig er det ganske enkelt når man holder på med JSON. Alt du trenger å gjøre er å gjøre om innholdet i filen til et PHP-objekt, slik:

<?php
$json_object = json_decode(file_get_contents('folk.json'));
?>

Her er det som skjer i koden: For det første opprettes en variabel til å hodle objektet på plass, $json_object. Deretter må folk.json leses inn til PHP med funksjonen file_get_contents(). Og til slutt må innholdet som er lest inn gjøres om til et objekt med funksjonen json_decode() – om koden den blir servert er korrekt JSON, vel å merke.

Så OK, vi har nå et JSON objekt lagret i PHP. Hva nå? Vel, siden det er et objekt, er det veldig lett å få tak i delene det består av med foreach. Vanligvis brukes foreach til å traversere flerdimensjonelle arrays, men faktisk kan det også brukes til å traversere objekter. Bare se her:

<ul><?php
foreach ($json_object->folk as $key=>$value) {
 echo "<li>" . $value->fornavn ." ". $value->etternavn . "</li>";
}?></ul>

De vi ber foreach-løkken om å gjøre her, er å skippe direkte til objektet folk, og å dele innholdet i objektet opp i nøkler og verdier. Når det er gjort, har vi – siden det er et objekt – direkte tilgang til underobjektene. Hvert av navneparene er her underobjekter av objektet folk, og vi kan nå hver del av dem ganske enkelt med å peke til riktig underobjekt.

Resultatet er en liste, slik:

  • Ola Nordmann
  • Kari Nordmann
  • Lars Medelsvensson

Vil du nå enda dypere, må du nøste flere foreach-løkker inn i hverandre, men dette er altså den grunnleggende idéen.

– Hjelp, brushen min fungerer ikke!

Posted in Design, Webdesign by kebman on 24/01/2013

brushPhotoshop: Ofte får jeg spørsmål om hvorfor penselen ikke vil male noe. Her er noen tips for å bøte på problemet.

Sjekk at Opacity til laget du jobber i er satt til over null.
Kanskje er laget helt gjennomsiktig? Er laget gjennomsiktig, vil heller ikke ting du maler der vises.

Sjekk at Opacity på penselen er satt til over null. Sjekk også at du har Flow over null.
Om pennestrøket ditt er gjennomsiktig, vil jo heller ikke den vises.

Blending mode

Sjekk også blandingsmetoden som brukes på laget og på penselen. På panelet ved penselen står det Mode. Pass på at mode er satt til Normal. Du kan også sette blending mode for hvert lag, så sjekk at den er satt til normal også i lagpanelet.

Reset tools

Fortsatt et problem?
Høyreklikk vertøy > Reset tool
File > Edit menus > Reset All Tools
Er det helt uforståelig, vil alt bli satt tilbake til normalt ved å resette verktøyene.

Valgte vs. ikke valgte områder

Sist men ikke minst, har du områder som er valgt med marquee tool, er det kun mulig å bruke penselen i det området som er valgt. Skal du fjerne markeringen må du klikke utenfor den med marquee tool. Selv om du ikke ser markeringen, så kan det hende at det er en der, bare at den er veldig liten. I så fall Velg marquee tool (trykk M) og klikk én gang på bildet.

Mal i riktig lag

Pass på at du har riktig lag aktivert. Du kan ikke male i justeringslag, tekstlag, eller lag som er usynlige for eksempel. Du kan heller ikke male i lag som er låst, så husk å ta en tett på Layers-panelet.

Og funker det fortsatt ikke, har du jo svenskeknappen! 😀

Gi nye filetternavn til flere filer samtidig

Posted in Programmering, Scripting, Teknologi by kebman on 23/12/2012

Sannsynligvis har du vært borti at du trenger å gi nytt filetternavn til flere filer av samme type. Det er noe skikkelig herk, så derfor skrev jeg et lite Perl-script for å gjøre jobben raskere.
Her er det:

#!/usr/bin/perl
# ChSuff v1.0 by Kebman
# Change the suffixes of all files of a given type in a dir
use strict;
use warnings;
use File::Copy;

if ($#ARGV +1 == "2") {
	if ($ARGV[0] eq $ARGV[1]) {
		print "Sorry arguments cannot be equal.\n";
	} else {

		# -- Main Code -- #
		my $old_suffix = "." . "$ARGV[0]";
		my $new_suffix = "." . "$ARGV[1]";

		my @old_filenames = grep (-f, <*$old_suffix>); # store only files with old suffix

		if (scalar(@old_filenames) == 0) { # If there are 0 occurences of given file
			print "Sorry, there are no files with the suffix $old_suffix\n";
		} else {
			my $old_length = length($old_suffix); # Check length of input
			my $old_name;
			my $new_name;
			my $without_suffix;

			foreach $old_name (@old_filenames) { # trip trough the array of filenames
				# remove old suffix with subrstr()
				$without_suffix = substr($old_name, 0, -$old_length);
				# rename the suffix of each file
				$new_name = "$without_suffix" . "$new_suffix";
				move($old_name, $new_name);
			}
		}
		# ---- #
	}
} else {
	print "\033[2J"; # These two incantation clears the screen
	print "\033[0;0H"; # ... and resets the cursor
	print "chsuff v1.0 by Kebman\nRename the suffixes of all files of a certain type in a dir\n";
	print "---\nUSAGE: chsuff [old suffix] [new suffix]\n---\n";
	print "Example: chsuff txt html\n";
	print "Will change the old suffixes all .txt-files to .html in the directory you're in\n";
}

Så langt fungerer det på Mac OS X og dermed sikkert også på Linux-maskiner, men det er usikkert om det vil fungere på en Windows PC grunnet bruken av glob. Føl deg i så fall fri til å skrive om på kildekoden bare du husker å gi meg litt cred. 🙂

For ordens skyld, glem nå det lille programmet som på de fleste systemer kalles «rename». 😉

Avsnitt og mellomtitler

Posted in Design, Journalistikk, Media, Typografi by kebman on 08/11/2012

Et avsnitt er en samling setninger som handler om samme tema. Det er en måte å dele opp teksten på slik at den blir lettere å lese.

Ta for eksempel en artikkel om hvordan en bil er skrudd sammen. En måte å systematisere hvordan bilen er laget, er ved å beskrive den med ett avsnitt for hver bildel. Slik blir det også enklere å lage mellomoverskrifter. Avsnittet om motoren, kan f.eks ha mellomoverskriften «Motor». Kanskje finner du ut at du kan dele opp informasjonen om motoren i ytterligere avsnitt senere, og da gjør du det.

Ahem, så forrige avsnitt handlet om oppbyggingen av avsnitt ved å bruke bil som eksempel… Nå har jeg startet et nytt avsnitt fordi det handler om hvorfor forrige avsnitt er avsluttet. 😉

Hvordan skille mellom avsnitt

Når du skriver brev kan du skille mellom avsnitt med dobbelt linjeskift, altså to trykk på retur-tasten (eller enter). Da får du en blank linje mellom avsnittene. Men dette tar unødvendig mye plass, så innen god norsk avis- og magasintypografi brukes innrykk.

Når du skal skille mellom avsnitt i aviser eller magasiner, er det vanlig å bruke kun ett linjeskift og så ha et innrykk istdenfor. Vanligvis er dette innrykket én gefirts lengde, altså lengden av en M i den skrifttypen du bruker. Sagt på en annen måte så skal innrykket være like stort som punktstørrelsen du bruker på skriften.

Avvik

Merk: Første avsnitt skal ikke rykkes inn. Også nye avsnitt etter mellomoverskrifter skal heller ikke rykkes inn.

Husk også at sitater vanligvis skal ha nye avsnitt, i alle fall meningssitater med replikkstrek.

Det er enn så lenge ikke vanlig å bruke innrykk innen webdesign. På nett skilles som regel avsnitt med en blank linje, men det går fint an å bruke innrykk der og.

Mellomoverskrift

Om du skriver en lengere artikkel, får du gjerne en del avsnitt som også er nært tilknyttet hverandre. Det kan også hende at du ønsker å rydde opp i artiklene ved å samle avsnitt under et felles tema for å friste leseren til å lese videre. I så fall kan du bruke mellomoverskrifter.

Merk: Det er vanlig å ha minst tre mellomoverskrifter. Som regel er det best å utelate mellomskrifter om du har færre enn det.

Tusenskille med InDesign

Posted in Design, Programvare, Typografi by kebman on 10/09/2012

I Norge bruker man hardt mellomrom for å gjøre store tall lettere å lese på trykk. Likevel er ikke det noe som skjer helt av seg selv i InDesign, derfor har jeg laget en liten tutorial om hvordan gå fra dette 1234567 til dette 1 234 567.

Må du sette mange store tall i InDesign har du plutselig et problem fordi det ikke finnes noen lett tilgjengelig automatisering for det. Er det bare ett og annet tall du skal sette, kan du sette markøren på tusenskillet, og trykke alt+cmd+X,2 så får du et hardt mellomrom der. Eller gå i menyen og til Type > Insert White Space > Nonbreaking Space. Men det blir fort upraktisk om du har veldig mange store tall i teksten din. Ikke går det an å lage en skikkelig GREP-stil for det heller.

Bruk søkefunksjonen

Likevel finnes det én utvei. Søkefunksjonen i InDesign er faktisk ganske god, og du kan fortsatt bruke GREP-koder i søkene dine. Trykk cmd+f for å få opp søkeskjemaet, eller bruk menyen og gå til Edit > Find/Change…

Besvergelsene

I søkeskjemaet må du velge fanen merket GREP, og så skriver du inn følgende besvergelser:

Under «Find»: (\d)(?=(\d\d\d)+\b)
Under «Change to»: $1~S

Forklaring

  • Besvergelsen «(\d)(?=(\d\d\d)+\b)» finner det som er mellom tusenskillet
  • «$1» er selve søket…
  • …og «~S» som henger på like etter står for Nonbreaking Space

Bruk @-symbolet til høyre for tekstfeltet for å legge inn det symbolet du trenger, for eksempel nonbreaking space med @ > White Space > Nonbreaking Space.

Hardt mellomrom gjør at tall og ord fortsatt henger sammen om de kommer så langt ut i en setning at de blir flyttet ned på en ny linje.
Cmd er kun på Mac, men vanligvis kan man bytte cmd med ctrl på PC.