Kebmans blogg

Hvordan enkelt kryptere meldinger med offentlige nøkler

Posted in Data, Internett, Konspirasjonsteorier, Programvare, Sikkerhet, Teknologi by kebman on 19/02/2014

Aldri før har kryptering vært viktigere. Derfor har jeg laget en noen jukselapper for hvordan enkelt bruke ett av de ledende krypteringsprogrammene for å sende og motta krypterte meldinger sikkert over nett. På sikt vil det komme en mer inngående tutorial, men dette burde få deg i gang.

Kryptering med offentlige nøkler fungerer sånn her: Om du vil motta filer sikkert, så oppretter du et nøkkelpar med en offentlig og en privat nøkkel. Den offentlige nøkkelen sender du til dine kompiser eller kollegaer. De kan nå bruke den til å kryptere sine meldinger til deg. Det kule her er at disse meldigene nå kun kan dekrypteres med din private nøkkel. Derfor er det selvsagt viktig at du også holder din private nøkkel hemmelig.

For å sende en fil sikkert til en venn, må du bruke din venns offentlige nøkkel til å kryptere filen før du sender den. Nå kan bare din venn dekryptere filen, og ingen andre.

Datatilsynet krever ved lov at persondata og ting som er unntatt offentligheten krypteres etter visse standarder før det sendes over nett. Det fine er at denne krypteringsmåten langt overstiger Datatilsynets krav, dermed kan du trygt bruke det til å sende slike data med.

Her er instruksjonene:

Jukselapper for GNU Privacy Guard (Kleopatra)

  1. Last ned GNU Privacy Guard fra http://www.gnupg.org/ (det er gratis)
  2. Installer programmet
  3. Hvordan opprette et privat/offentlig nøkkelpar
    1. Åpne Kleopatra
    2. I menyen, velg File > New Certificate…
    3. Velg Create a personal OpenGPG key pair
    4. Skriv inn ditt fulle navn og din e-post
    5. Skriv inn et passord. NB! Dette er det viktigste steget!
    6. Gå videre og sjekk at alt er riktig.
    7. Eksporter nøkkelen. Huk av ASCII Armor slik at den blir enklere å sende over nettet.
    8. Gjør den offentlige nøkkelen din tilgjengelig for dine venner
  4. Hvordan importere en offentlig nøkkel…
    1. …om du må merke og kopiere en offentlig nøkkel:
      1. Merk og kopier en offentlig nøkkel fra nettet eller i en e-post
      2. Lagre den i en egen fil, og pass på at filendelsen er «.gpg». NB! Husk også hvor du lagrer den!
      3. Åpne Kleopatra
      4. I menyen, velg File > Import Certificates…
      5. Finn filen legg den inn
    2. …om du laster ned eller får tilsendt en fil med en offentlig nøkkel:
      1. Lagre filen på et sted du husker (nedlastinger, f.eks)
      2. Åpne Kleopatra
      3. I menyen, velg File > Import Certificates…
      4. Finn filen og legg den inn
  5. Hvordan kryptere en fil med en offentlig nøkkel
    1. Åpne Kleopatra
    2. I menyen, velg File > Sign/Encrypt Files…
    3. Velg filen du vil kryptere (eller signere)
    4. Klopatra spør hva du vil gjøre; huk av Text Output (ASCII Armor) og trykk Next
    5. Legg til (Add) den offentlige nøkkelen du ønsker å kryptere med
    6. Du vil få en advarsel om at bare mottakeren av filen vil kunne dekryptere den. Trykk Continue.
    7. Den krypterte filen lagres med samme navn som originalen, men med filendelsen «.asc»
    8. Bare eieren av den private nøkkelen kan nå dekryptere filen så kopier innholdet i filen og send over nettet, eller legg hele filen med som vedlegg i en e-post
  6. Hvordan dekryptere en fil med din private nøkkel
    1. Lagre mottatt fil, eller opprett en ny fil, kopier det krypterte innholdet inn i den, og lagre den med filendelsen «.gpg»
    2. Åpne Kleopatra
    3. I menyen, velg File > Decrypt/Verify Files…
    4. Finn den krypterte filen
    5. Velg hvor du vil at den dekrypterte filen skal havne
    6. Trykk på Decrypt/Verify
    7. Du kan nå åpne den dekrypterte filen der du la den

Slik lager du vektormasker i Photoshop CS6

Posted in Design, Foto, Programvare, Spesialeffekter by kebman on 15/11/2013

Vektormasker kan brukes til alle komposisjoner som involverer manipulasjon av flere lag i Photoshop. Alle steder hvor du tidligere brukte viskelær (Eraser Tool), er det som regel mye bedre å bruke vektormaske.

Bruker du viskelæret på et lag, kan du ikke gå tilbake i historikken etter at du har lagret prosjektet ditt. Da blir hullet du laget værende. Men med en vektormaske kan du når som helst endre på utskjæringen. Det fungerer også fint til justeringslag, for eksempel når du bare ønsker å fargekorrigere en liten bit av bildet.


Oversikt over verktøy

Du trenger å bruke følgende verktøy i Photoshop:

PenFocus Pen Tool (penneverktøyet)

AngleFocus Convert Point Tool (vinkelverktøyet)

DirectSelectFocus Direct Selection Tool (den hvite pekeren)

PathSelectFocus Path Selection Tool (den sorte pekeren)

OBS! Path Selection Tool er ikke det samme som Move Tool selv om de begge er formet som sorte piler. Pass på at riktig verktøy er aktivt.


Viktige hurtigtaster

Pennevertkøyet har hurtigtast P, og seleksjonsverktøyene har hurtigtast A. For å rask flippe mellom verktøy innen samme kategori, trykk Shift og så hurtigtasten. Så for å skifte fra den hvite til den sorte pekeren, holder du bare inne Shift mens du trykker A.

Arbeidsflyten går dessuten mye kjappere om du også lærer deg hurtigtastene du kan bruke i kombinasjon med disse verktøyene – vanligvis shift, command (control på PC) eller alt-tasten.


Verktøyenes bruksområder

  • Penneverktøyet er for å legge til og trekke fra vektornoder, samt legge til og justere bezierkurver.
  • Den sorte pekeren er for å velge en hel vektorsti (vector path).
  • Den hvite er for å redigere noder og spaker hver for seg.
  • Sammen med penneverktøyene er det dessuten et vinkelverktøy (Convert Point Tool) for å slette eller legge til bezierkurver til eksisterende noder, eller justere dem ved å dra i spakene til aktive noder.


Gjennomgang

Åpne et bilde med noe du har lyst å klippe i.

Trykk P for å aktivere penneverktøyet, og pass på at verktøyet er satt til «Path» i alternetivene for verktøyet øverst under filmenyen.

path

Av og til er et annet penneverktøy valgt. Da kan du enten flippe mellom verktøy i samme kategori ved å holde inn Shift mens du trykker P, eller klikke og holde på ikonet i verktøymenyen, og så velge den øverste pennen i rullegardinen. Du skal bruke verktøyet som har den enkleste pennesplitten som ikon.

Har du fått frem riktig verktøy, er det bare å klikke der du ønsker å lage første node. Klikk igjen for å lage en ny node. Gjenta til du har laget noder helt rundt det du har lyst å klippe ut, slik at det danner en hel sti. Du får en liten ring på penneverktøyet i det stien blir sluttet. Så klikker du A og bruker den sorte eller hvite pekeren til å aktivere stien (the path). Du kan se at stien blir aktiv ved at alle nodekvadratene vises.

Hold så inne cmd (ctrl på PC) og trykk på ikonet for «Add layer mask» i lagfanen (Layers) helt til høyre i Photoshop. Og voila, du har en vektormaske!

Ikonet du skal cmd-klikke ser ut som en slagt sort-hvit versjon av det japanske flagget, sånn: AddLayerMaskFocus


Hull istedenfor utklipp

add-subtr_done«Men jeg vil lage et hull istedenfor å klippe noe ut!» hyler du kanskje. Frykt ikke! Oppe i alternativmenyen er det et lite ikon som ser ut som to små firkanter inni hverandre, like til høyre for Shape-knappen. Trykk der og du får en meny hvor du kan velge hvordan stien skal klippes ut; enten som et utklipp eller som et hull. Bare pass på at du har korrekt sti aktivert.


Myke linjer istedenfor vinkler

Istedenfor å lage spisse vinkler hver gang du setter ned en node, kan du lage myke linjer med penneverktøyet. Disse buene kalles bezierkurver. Om du istedenfor å klikke holder nede museknappen og drar når du skal sette ned en node, vil du få en slik bezierkurve. Blir du først vant til å bruke denne teknikken, vil du fort merke at du trenger langt færre noder for å lage stien din – kanskje til og med bare tre eller fire.

bezier

Du kan også gjør hver node myk i etterkant. Velg penneverktøyet (P), og hold inne alt-tasten mens du trykker og drar på en node. Du vil da få opp to spaker for hver node. Disse kan du også etterredigere med den hvite pekeren. Det finnes i tillegg et spesifikt vinkelformet verktøy i pennefamilien som bare er til for å redigere bezierkurver kalt Convert Point Tool.


Redigere masken

Om du i ettertid vil gjøre små endringer på stien, kan du trykke A og bruke den hvite pekeren (Direct Selection Tool) for å flytte på enkelte noder. Du kan også redigere på aktive bezierkurver med den samme hvite pekeren. Dette gjør du ved å dra i spakene som kommer ut av de nodene som har slike kurver.

Vil du legge til eller trekke fra en node fra vektorstien, kan du trykke P og bruke penneverktøyet. Så lenge stien er aktiv, vil du få en liten pluss ved sidden av pennesplitten som tegn på at du kan legge til noder, og en liten minus som tegn på at du kan slette noder fra stien.

Vil du flytte på hele stien, så bruk den sorte pekeren. Bare pass på at det er Path Selection Tool som er valgt og ikke Move Tool.


Fjerne bezierkurver

Du kan enkelt fjerne en bezierkurve ved å velge penneverktøyet (P), holde inne alt-tasten, og klikke på en node. Vips så er kurven slettet.


Ordliste

Vektornode, eller bare node: Et vektorpunkt eller håndtak med en X- og en Y-posisjon brukt til å redigere formen til en vektorsti.
Spake: Et punkt eller håndtak brukt til å redigere en bezierkurve.
Vektorlinje: En matematisk linje som går mellom to noder. Tykkelsen eller formen på linjen blir alltid lagt til i ettertid. Se også bezierkurve.
Bezierkurve: En matematisk utregnet kurve som går mellom to noder. Se også vektorlinje.
Vektorsti, eller bare sti: En mengde vektornoder med matematiske linjer (kurver) mellom dem.

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».

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! :D

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! :D

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». ;)

Følg

Få nye innlegg levert til din innboks.