Kebmans blogg

Hvordan få farger på terminalen i OS X Mavericks

Posted in Data, Programmering, Programvare by kebman on 25/09/2015

Om du bruker terminalen en del på Mac, har du kanskje tenkt at den ser noe kjedelig ut. Her er en kort leksjon i hvordan gi den litt penere og mer intuitive farger.

Sjekk ut Solarized: Precision colors for machines and people på GitHub.

Merk: Det står en del om SIMBL på nettisden, men det trenger du ikke! Det er kun for eldre systemer slik som Snow Leopard.

Last ned pakken som ZIP (Download ZIP på høyre side). Pakk ut ZIP-filen, og sjekk ut mappeinnholdet. Let til du funner noen filer som har fil-etternavn .terminal. Dobbeltklikk på en terminal-fil for å teste, og nyt åsynet av en solarisert terminalen.

I terminalen, under Innstillinger > Avansert det kan være lurt å sette terminaltypen til å være Ansi, siden det er den profilen paletten er optimalisert for, men xterm-256color kan også fungere.

Dette vil gjøre terminalen din mørkeblå med grå tekst. Ganske kjedelig, men fortvil ikke! Du er bare halvveis. For å virkelig gjøre susen, trenger du litt sammenheng.

Gå inn terminalen og skriv:

nano ~/.bash_profile

Deretter skriver (kopierer) du inn disse linjene:

export CLICOLOR=1
export LSCOLORS=gxfxbEaEBxxEhEhBaDaCaD

Trykk så ctrl+x og deretter y for å lagre før du avslutter. For å laste den nye paletten, skriver dette i terminalen:

. ~/.bash_profile

Prøv deretter ut noen terminalkommandoer, slik som for eksempel ls.

export CLICOLOR=1 aktiverer farger i terminalen, og export LSCOLORS ser etter spesifikke kodesnutter i ls-programmet som den kan fargelegge. For mer informasjon om dette, les denne artikkelen: ls, colors, and Terminal.app .

Reklamer

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.

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

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.

Hvordan gjøre ordsøk i MySQL

Posted in Programmering, Programvare, Scripting, Teknologi by kebman on 25/02/2012

Så du trenger å søke etter ord i databasen din? Her er noen kjappe eksempler på hvordan du kan gjøre det.

Fulltext-søking er kanskje den greieste måten å søke etter ord i SQL-databaser. Det er veldig kjapt og fungerer bra så lenge ordet er lenger enn tre bokstaver. Grunnen til dette er at det krever ekstra kapasitet å indeksere kortere ord, spesielt om de opptrer ofte. Slik bruker du fulltext-søk:

SELECT * FROM tabell
WHERE MATCH(felt)
AGAINST('søkeord' IN BOOLEAN MODE);

Men hva om du ønsker å søke etter ord med færre enn fire bokstaver? Vel, her er noen alternativer.

Ved å bruke LIKE kan du søke etter felter som inneholder ditt søkeord, enten det er del av større ord eller ikke. Du får som regel ganske mange treff med denne, og det er ikke like kjapt som Fulltext-søk.

SELECT * FROM tabell
WHERE felt
LIKE '%søkeord%';

Eksperimenter med å fjerne prosenttegn foran eller bak. Prosenttegnet fungerer som et «wildcard» eller en joker, og betyr «hvilken som helst tegn».

Men kanskje du bare vil ha hele ord som står alene? Prøv i så fall regular expressions.

SELECT * FROM tabell
WHERE felt
REGEXP '[[:<:]]søkeord[[:>:]]';

Merk at denne vil også gi treff på ord som har bindestrek foran eller bak. En annen hake er at regular expressions kan være litt tregt fordi det krever en del ekstra prosesseringskraft. Det er ikke alltid det er så viktig, men skal du lage noe som er stort og blir hyppig brukt av svært mange brukere, risikerer du fort at forsinkelsene blir merkbare.

Vil du kun ha helt enslige ord, må du søke etter ord som har mellomrom foran og bak. Prøv i så fall denne:

SELECT * FROM tabell
WHERE Locate('søkeord ', felt) > 0
AND Locate(' søkeord', felt) > 0;

Legende:

  • tabell: Databasetabellen du ønsker å søke i
  • felt: Feltet i tabellen som du ønsker å søke i
  • søkeord: Søkeordet du ønsker å bruke

De viktigste verktøyene i Photoshop, Illustrator og InDesign

Posted in Design, Programvare, Webdesign by kebman on 06/02/2012

Penneverktøyet (Pen Tool) og «den hvite pekeren» (Direct Selection Tool) er to av de viktigste verktøyene i Adobe Creative Suite. Disse fungerer nesten likt i både Illustrator, Photoshop og InDesign. Her er en liten guide til hvordan du bruker dem.

PenneverktøyPen Tool

Penneverktøyet.

Denne oppretter vektor-noder som igjen danner vektor-baner (paths). Det er disse banene som etter hvert blir til tegninger i Illustrator, men den kan også brukes i både Photoshop og Indesign, f.eks til å lage masker for å avsløre ting som er under det øverste billedlaget.

En slik bane er ikke en tegning i seg selv, men bare en slags guide som du kan legge forskjellige egenskaper og effekter til. For å få en tegning ut av banen, må du legge til egenskaper slik som strektykkelse og fyllfarge.

Hurtigtast: P

Gi ett museklikk for å sette en node (et punkt eller et håndtak). Flere noder sammen danner en «path» eller en bane (sti/vei).

Etter at du har tegnet opp en bane, kan du holde nede Alt-knappen og redigere en node slik at banene rundt får buer eller kurver. Dette kalles å lage Bezier-kurver.

Den hvite pekerenDirect Selection Tool

Også kalt «Den hvite pekeren»

Med denne kan du flytte en node, eller deler av en banen om du velger den med musen.

Hurtigtast: A

NB! Om du får sort peker når du trykker A, så trykk Shift+A en gang, og du bytter til den hvite. Den sorte brukes til å velge hele bane-objekter.

Flytting og forstørrelse

Om du jobber veldig «nært» og har zoomet mye inn, er det enkelt å flytte på arket ved å trykke på Mellomrom (Space eller «den lange») og så trykke og dra litt i bildet med musen. Da får du opp håndteringsverktøyet (Hand Tool) uten å måtte gå i verktøykassen.

Trykker du Mellomrom+Cmd får du forstørrelsesglass for å zoome inn. Alt+Cmd+Mellomrom for å zoome ut. Du kan også merke et område du har lyst å zoome direkte inn på, ved å trykke, dra og slippe, istedenfor å trykke en og en gang på musen for å oppnå det samme.

Hurtigtaster til verktøylinjen

Generelt er det lurt å lære seg hurtigtastene, i alle fall til de verktøyene du bruker mest. Heldigvis er det veldig enkelt å finne ut av det. Om du vil vite hvilken hurtigtast et verktøy har, er det bare å la pekeren flyte over verktøyet. Etter en stund kommer det en lapp opp med navnet på verktøyet og hurtigtasten i parentes.

Visse verktøy på verktøylinjen har flere verktøy i ett. Dette er markert med en liten trekant nede i høyre hjørne på verktøyikonet. Klikk og hold en stund, så får du en listen med de ekstra verktøyene. Du kan også skifte hurtig mellom «underverktøy» ved å holde Shift nede når du prøver en hurtigtast.

Arbeidsprosess

Alt etter hvilket program du bruker, er det litt forskjellige arbeidsprosesser forbundet med hvert program. I Photoshop og InDesign brukes vektorbaner stort sett til å lage forskjellige typer masker og baner for eksport til andre programmer, mens i Illustrator brukes banene til å lage vektortegninger.

Den vanligste arbeidsprosessen i Illustrator består av å lage en skisse på papir først som man scanner inn. Så legger man det inn i et eget lag  (Layer) som man låser, gjerne etter at man har skjerpet bildet litt i Photoshop først. Deretter jobber man med å føre inn skissen i lagene over med penneverktøyet og den hvite pekeren.

For å legge inn en skisse, pass på at du har høy nok oppløsningen på scannet. 300 ppi er bra. Jobb gjerne med skarphet og kontrast i Photoshop før du eksporterer et ferdig bilde du kan jobbe videre med i Illustrator.

Sett skissen inn det nederste laget i Illustrator ved å gå inn i toppmenyen og velge File > Place… Så finner du bildet på harddisken og legger til. Deretter går du inn i lag-fanen (Layer tab) og låser laget, slik at du ikke med uhell flytter på tegningen mens du lager vektorbaner i lagene over. Vanligvis er denne fanen nederst til høyre, dog dette kommer litt an på hvilken Work Space du har valgt. Om du ikke finner fanen, gå til toppmenyen og velg Window > Layers eller trykk F7.

Når man fører inn skisser og lager figurer, bytter man ofte mellom P og A. Man lager en node (P). Så flytter man litt på den for å justere (A). Så legger man kanskje til kurver på banen (Alt+P). Derfor er det greit å lære seg hurtigtastene for disse to. Disse egner seg også godt til bruk med mus eller styreflate, mens selve tegneverktøyene i programmene blir mye enklere å bruke om du bruker et skikkelig tegnebrett.

NB! Denne guiden er hovedsaklig for Mac-brukere, men vanligvis brukes Cmd på Mac akkurat som Ctrl på PC.

Norsk oppsett i InDesign

Posted in Design, Programvare, Typografi by kebman on 24/01/2012

Standardinnstillingene til InDesign er ikke norske, noe som gjør at hurtigtastene ikke fungerer slik de skal. Dette fører også til mange feil i dokumentene dine. Her er en kort innføring i hvordan du får norsk oppsett til InDesign CS5.

Start InDesign uten å åpne noen dokumenter.

1. i toppmenyen, gå til:
Edit > Keyboard Shortcuts > Set: [Default Norwegian]
Trykk OK

Bilde av meny

Denne sier seg litt selv, men nå kan du altså bruke Cmd + for å forstørre og Cmd – for å forminske.

2. i toppmenyen, gå til:
InDesign > Preferences > Dictionary
> Language: Norwegian
> Double Quotes: «»
Trykk OK

Veldig viktig, sidne vi bruker gåsøyner i Norge, og ikke engelske hermetegn. I tillegg påvirker språket hvilke regler som brukes for å dele ord riktig.

3. i toppmenyen, gå til:
InDesign > Preferences > Autocorrect
Language: Norwegian
Trykk OK

NB! Trenger importering av en norsk ordliste, men fortsatt verdt å gjøre.

3. i toppmenyen, gå til:
Layout > Margins and Colums
> Top, Bottom, Inside, Outside: 15 mm (15 + Tab)
> Gutter: 5 mm
Trykk OK

4. i toppmenyen, gå til:
Object > Text Frame Option
> Gutter: 5 mm

Generelt kan du sette flere innstillinger til hele tall, og dermed norske millimetermål, men dette kommer an på hva du vil oppnå og hvilke mål trykkeriet du skal sende dokumentene dine til bruker.

5. Sett Work Space til Advanced

6. trykk på Paragraph Styles for å få frem fane-boksen. Klikk på høyre hjørne i boksen for å få frem menyen. Velg så:
Style Options… > Advanced Character Formats
> Language: Norwegian
Trykk OK

Meny i fane

7. i toppmenyen, huk av:
Window > Application Frame

Dette gjør at du får en grå bakgrunn i programmet, og slik rydder opp bakgrunnen som fort blir ganske kaotisk uten dette.

Nå har du satt de fleste innstillingene du trenger for norsk oppsett globalt, slik at det vil være i effekt på alle nye dokumenter du oppretter. Merk at gamle dokumenter ofte vil ha lagret visse ting fra det gamle oppsettet, slik som engelsk orddeling, og det må du rette manuelt for hvert dokument.

NB! Denne guiden er hovedsaklig for Mac-brukere, men vanligvis brukes Cmd på Mac akkurat som Ctrl på PC.

Problem med dobbellagring av filer

Posted in Programmering, Programvare, Teknologi by kebman on 23/07/2010

For hvert uerstattelig bilde jeg tok, måtte det tas backup. Siden jeg ikke var så nøye med hvordan jeg gjorde det, har det endt opp i et bildekaos som bare tar mer og mer plass på harddiskene mine. Her er hvordan jeg er i ferd med å løse problemet.

Sjekk også Organisering: Nøkkelen til fotografisk lykke.

Jeg har lenge hatt proble med dobbellagring av filer, spesielt siden jeg driver med foto og jeg tar backup i hytt og pine. Dette har utviklet seg til et reelt problem som tar opp svært mye diskplass, uten at det er lett å gjøre noe med av redsel for å slette filer jeg egentlig har lyst å beholde. Løsningen er selvfølgelig programvare som finner duplikater og dobbellagrede filer, men det var lettere sagt enn gjort å finne.

Gjør det selv

Jeg har lett litt rundt, men ikke funnet noen produkter som gjør akkurat det jeg ønsker på en tilfredsstillende måte. Min kompis Lars Thomas sa at det ikke var noe problem for en kar som meg, og at jeg bare fikk skrive programmet selv. «Hehehehe» var alt jeg klarte å svare på det, men siden det nå tross alt er ferie tok jeg faktisk på meg utfordringen.

Siden jeg er i den heldige situasjon å jobbe på et UX-basert system* (Mac OS X) med Perl forhåndsinstallert, skriptingspråket som også kalles «The Swiss Army Chainsaw», satte jeg i gang med det. Til nå har dette egentlig bare vært en glede å holde på med.

De nødvendige steg

Å komme frem til et program som presenterer dobbellagrede filer har mange mindre steg. Det aller første man må gjøre er å finne ut hvordan man åpner ei fil og sjekker innholdet. Så er det jo greit å kunne få ei liste over filene i ei mappe, for eksempel, slik at man kan åpen alle filene. Deretter må man finne ut hvordan man sammenligner disse på mest mulig effektiv måte.

Sjekk summen

Tilfeldigvis finnes det allerede små programmer som lager sjekksum (checksum) av filer, og forhåndssintstallert med de fleste UX-systemer er MD5. De er egentlig ment for å sjekke at en fil som ble sendt over nett ikke har blitt ødelagt på veien ved å lage en sjekksum utav fila. Er sjekksummen den samme som da den ble sendt, er ingenting forandret i filen. Samme teknikken kan brukes til å finne duplikater. Istedenfor at man prøver å sammenligne hele filer opp mot hverandre, som er upraktisk siden noen filer er svære, kan man bare sammenligne sjekksummen. Har man to filer med samme sjekksum, er sjansen stor for at det er dobbellagring ute og går.

Under er scriptet jeg har har fått til så langt. Alt du lurer på står kommentert i grått. Jada, vet det er overkommentert, men da lærer du lettere.

Perl-skriptet:

#!/usr/bin/perl
# Lager sjekksum av alle filene i en mappe, og printer dem til skjerm.

use strict;
use warnings;
use Digest::MD5 qw(md5_hex); # Importerer MD5 biblioteket. Tingen som gjør det mulig å lage sjekksum av filer.
use Cwd; # Dette biblioteket importeres for bedre kontroll over mappevisning.
#
# Håndtering av mapper:
#
opendir(DIR, "."); # Åpner mappen du er i.
# my @files = readdir(DIR); # lister opp ALLE filene, inkludert ./ og ../.
# my @files = grep(/\.$filetype$/,readdir(DIR)); # Mulighet for å lese kun filer av type $filetype. Kommentert ut. Variabelen $filetype må også deklareres om det skal funke siden vi bruker "strict".

my @files = grep( -f ,readdir(DIR)); # Lister opp alle filer, unntaken mapper og symbolske lenker. De sistnevnte forhindres av UNIX-kommandoen "grep -f", som du også kan kjøre fra terminalen, f.eks med en pipe når du bruker UNIX-kommandoen "ls" (samme som "dir" i DOS, altså å liste opp filene i en mappe).
closedir
(DIR); # God praksis.
# Deklarerer variabler siden vi bruker "strict":
my $file; # For øyeblikket tom, men vil bli fylt for hvert element i arrayen @file_liste ettersom den blir loopet igjennom.
my $pwd = &Cwd::cwd()."/"; # Får tak i den fulle statiske adressen (tråden/path) til mappen du er i. Ekvivalenten til UNIX-kommandoen "pwd".
#
# Håndtere sjekksummering av filer:
#
foreach $file (@files) { # Loop igjennom alle filene i nåværende mappe (directory).
   open(FILE, $file) or die "Får ikke åpnet '$file': $!"; # Åpne hver fil.
   binmode(FILE); # Åpne hver fil som binærdata.

   my $md5 = Digest::MD5->new; # Opprette en ny metode for sjekksummering av en fil, så lenge (while) slutten av datastrømmen enda ikke er nådd.
   while (<FILE>) {
      $md5->add($_);
   }
   close(FILE); # Alltid god praksis.
   print $md5->b64digest, " $pwd$file\n"; # Print MD5 sjekksum til skjerm for hver fil i arrayen @file_list.
}
Creative Commons License
Checksum Files in Dic by Kebman is licensed under a Creative Commons Attribution 3.0 Unported License.

Alt skriptet gjør til nå er å åpne mappen skript-filen ligger i, lese igjennom alle filene, lage en sjekksum av dem med MD5, og skrive resultatet til skjermen. Intet mer. Men i alle fall kan det brukes til å finne duplikater i samme mappe ved å inspisere sjekksummene.

Resultatet blir seende slik ut når du kjører det fra terminalen:

MacBook-Pro-usr:checksum_test usr$ perl Checksum_Files_in_Dic.pl
N03psjKibdP/7GV3itPLXw /Users/usr/dup_test/23.txt
tTE3ieMQOwLCyaRtWenETg /Users/usr/dup_test/24.txt
N03psjKibdP/7GV3itPLXw /Users/usr/dup_test/3 en.txt
c4kPP/IdNgVZcbwYN9HjeA /Users/usr/dup_test/4 en.txt
nF0fIWxHfWb5NPbytia0cg /Users/usr/dup_test/5.txt
N03psjKibdP/7GV3itPLXw /Users/usr/dup_test/99.data.txt

En bedre versjon ville istedenfor skrevet resultatene fra alle valgte mapper til en database, gjort en sammenligning der, og så kun printet eventuelle duplikater til skjerm. En liten database holder, som f.eks SQLite, som også allerede er installert på de fleste Mac-er.

Føl deg fri til å stjele Perl-koden min og bruke den som du måtte ønske. 🙂 Den er CC-lisensiert for fri bruk av både private og kommersielle aktører.

* UX-basert system er et system basert på operativsystemet UNIX. Dette systemet har mange avarter. Mest kjent er kanskje Linux, men det gjelder også Mac OS X og mange flere.

Ting jeg hater med Adobe Flash CS4

Posted in animasjon, Programvare, Teknologi, Video, Webdesign by kebman on 11/07/2009

Adobe Flash CS4: Det er et animasjonsprogram, ikke sant? Hvorfor er det så uintuitivt og vanskelig å bruke, da? Greit, det er mest for webdesign, og det er lett å skripte, men her er noen ting jeg virkelig ikke liker.

Det er ikke et særlig smart program. Om jeg vil bruke ting som tween, for eksempel, så må jeg konvertere nesten alle tegninger om til symboler. Det meste unntatt tekst, av en eller annen grunn. Det er i tillegg random, noe som også er kjipt. Hvorfor kan ikke programmet bare gjøre dette automatisk når du ønsker å lage en tween, for eksempel?

Skal du lage en objekt-tween, derimot, er det viktig at man ikke lager et symbol. Dette er veldig uintuitivt, og dermed skaper det stort sett bare frustrasjon hos meg, spesielt når jeg må bruke tid på å lære dette – noe jeg kunne unngått om programmet var bare bittelitt smart.

Så er det dette med tweening keyframes, da… Har du satt en motion tween keyframe, da er den hugget i stein. Vil jeg forandre posisjonen på en slik keyframe i tidslinjen, må jeg som regel bare slette den og begynne helt fra nytt.

Hvordan flytter man en slik keyframe, egentlig?

Hvordan flytter man en slik keyframe, egentlig?

Dette er fryktelig frustrerende, og nesten unikt for Flash CS4. I stort sett alle andre animasjonsprogram kan man flytte på keyframes som man ønsker, til og med innen Adobes egen serie av programmer hvor dette er relevant kan man det, som i Premiere og After Effects. Så, hvorfor må det være så vanskelig i Flash? Greit, kanskje det går an allikevel, men jeg har uansett ikke funnet ut hvordan enda, ny som jeg er, og dermed er det fortsatt alt for uintuitivt til at jeg synes det er bra. Hvorfor i helvete kan ikke bare Adobe holde seg til ett paradigme når det kommer til bruk av lag, keyframes og tidslinjer i alle programmene?

Nei Adobe, dette er frustrerende. Skjerpings!