Kebmans blogg

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

PHP kobler ikke til MySQL via localhost

Posted in Internett, Programmering, Scripting, Teknologi, Webdesign by kebman on 24/02/2012

Fikk plutselig feil da jeg prøvde å koble til MySQL-databasen via PHP i dag. Vips så ble det en aldri så liten detektivhistorie.

Koden jeg bruker for å koble til MySQL med PHP er veldig enkel, godt testet, og har fungert mange ganger før. Ikke det mest avanserte og ikke objektorientert, men den egner seg godt for testing. Her er den:

$host = 'localhost';
$user = 'root';
$pass = 'password';
$link = mysql_connect($host, $user, $pass);
if (!$link) {
   die('MySQL error '. mysql_errno() . ': ' . mysql_error());
}

Kort forklart, hvis $link klarer å koble opp til databasen går alt som det skal, mens om variablen inneholder feil, blir koblingen brutt og det blir istedenfor sendt tilbake noen feilmeldinger. Og her er den jeg fikk:

MySQL error 2002: No such file or directory

Så jeg prøvde å bytte ute passord, bruker, og byttet fra localhost og til 127.0.0.1, og heureka! Da funket det. Men likevel var jeg jo like langt i forhold til localhost. Jeg blunket litt med de våte øynene mine, og et slags mørke la seg over hjernen min. Feilmeldingen sa meg ikke en dritt, og jeg skjønte ikke hvorfor det bare funket med den lokale IP-adressen. Her var det bare å sette i gang og google.

En av tingene jeg testet var om MySQL i det hele tatt reagerte, men det visste jeg jo at den gjorde, fordi jeg kunne koble til via terminalen og via Sequel Pro. Likevel prøvde jeg å pinge den over telnet i terminale, slik:

telnet localhost 3306

Her tittet MySQL frem og sa hei som normalt, så dette var i orden, og fortsatt var jeg like lite klok.

Heldigvis kom jeg ganske snart over denne fine siden: C.5.2.2. Can’t connect to [local] MySQL server

Der sto det utrolig mye unødvendig og irrelevant, men jeg bet meg i alle fall merke i de tingene som faktisk stemte – blant annet en serie tester man kan gjøre i terminalen, disse her:

  1. mysqladmin version
  2. mysqladmin variables
  3. mysqladmin -h `hostname` version variables
  4. mysqladmin -h `hostname` --port=3306 version
  5. mysqladmin -h host_ip version
  6. mysqladmin --protocol=SOCKET --socket=/tmp/mysql.sock version

Da jeg kom til nummer tre på listen, skjønte jeg at noe var galt. Det gikk helt fint om jeg byttet ut `hostname` med localhost, men da jeg brukte den riktige koden, `hostname`, fikk jeg en feilmelding:

mysqladmin: connect to server at 'kebman.local' failed
error: 'Host '10.0.0.7' is not allowed to connect to this MySQL server'

Dette skjønte jeg ikke noe særlig mer utav heller, men det ante meg at det kunne være at en eller annen trodde at kebman.local var localhost, men det er jo slett ikke tilfelle. Dessuten er jo ikke 10.0.0.7 adressen til localhost heller (127.0.0.1 er adressen til localhost).

Lenger nede i dokumentet sto det noe om å finne navnet på socket-filen som brukes for å koble via localhost:

netstat -ln | grep mysql

Svaret jeg fikk, var dette:

/tmp/mysql.sock

«Hm», tenkte jeg nå. «Kan dette ha noe med denne kebman.local-greia å gjøre, tro? Feilen må jo ligge i php.ini et sted (filen man bruker til å konfigrere PHP med), men hvor?» Hadde også lest noe om det på erværdige stackoverflow.com. Jeg søkte igjennom alt som hadde med MySQL i php.ini, og endelig fant jeg det. I php.ini var det en annen adresse til mysql.sock. Jeg endret det til adressen jeg fikk opp med netstat-koden, og voila, endelig funket det å koble til MySQL via localhost med PHP igjen.

For å redigere php.ini på Mac må du først ha rot-passordet til maskinen din. Deretter er det letteste å bruke TextWrangler (gratis) til å åpne opp /etc/php.ini for redigering. Du kan også åpne filen med pico eller et annet UNIX-program for tekstredigering gjennom sudo-kommandoen (sudo gir ordre som rot-bruker).

CSS syntaks

Posted in Teknologi, Webdesign by kebman on 09/11/2011

Et lite oppslag på hvordan CSS skal skrives.

Overordnet syntaks

Engelsk: selectors {declarations}
Norsk: velgere {deklarasjoner}

CSS består av velgere og deklarasjoner. Velgeren består av de  HTML-elementene man ønsker å velge. Deklarasjonene består av de designforandringene man ønsker å gjøre på valgte element, avgrenset av krøllparenteser.

HTML-elementer man kan velge er alle taggene, samt visse attributter og pseudoklasser.

Underordnede HTML-elementer arver design laget for overordnede HTML-elementer, så gjør du tekstfargen til body rød, vil også tekstfargen til p og h1 bli rød.

Generell syntaks

Engelsk: selector {property: value;}
Norsk: velger {egenskap: verdi;}

Som du kan se består hver deklarasjon av en egenskap og en påfølgende verdi. Hver deklarasjon skal avsluttes med semikolon.
Det finnes mange egenskaper du kan forandre design til. Farge (color) er bare én av dem. Sjekk ut W3Schools for mer om det.

Eksempel

h1, h2 {color: red; font-family: verdana, sans-serif;}

Her er elementene h1 og h2 valgt. Deretter er egenskapene «farge» (color) og «font familie» valgt og gitt en nye verdier. Som du ser kan man velge flere HTML-elementer, og velge flere egenskaper man gir nye designverdier.

Krøllparentes

På Mac trykker du shift+alt+( for å få krøllparentesen {. På PC trykker du AltGr+(.

NB! CSS skrives på American English, og derfor brukes f.eks egenskapen color (am. eng.) og ikke colour (brit. eng.).

Gåseøyne på nett

Posted in Teknologi, Webdesign by kebman on 14/10/2011

Det er en del ting som skiller norsk typografi fra andre lands typografi, og spesielt engelsk og amerikansk typografi. Kanskje den viktigste tingen her er vår bruk av gåseøyne fremfor hermetegn. Likevel bruker folk flest hermetegn, men det er faktisk feil.

Grunnen til at hermetegnet (“”) kom i bruk, har nok med import av en og annen skrivemaskin å gjøre, og sist men ikke minst ignorant kulturimperialisme fra Microsoft. Skriveprogrammet deres, Word, skriver nemlig hermetegn som standard istedenfor gåseøyne («»).

Så, hvordan fikser vi dette på nett?

Det finnes faktisk et eget HTML-element for setningssitater, det såkalt Q-elementet, men bruker du det uten CSS-design, vil du fortsatt få amerikanske hermetegn som standard.

Sånn funker det i HTML: Q-melk er bedre enn Tine melk.

Og slik blir resultatet, uten CSS-design: Q-melk er bedre enn Tine melk.

Du må kalle opp Q-elementet i CSS og bruke noen smarte pseudoklasser for at det skal bli korrekt, slik:

q:before {content: "«";}
q:after {content: "»";}

Så blir det endelig seende slik ut i nettleseren: «Q-melk er bedre enn Tine melk.»

Problemet er bare at dette ikke fungerer i eldre versjoner av Microsoft Explorer (MSIE eller bare IE), noe vi Mac-brukere selvfølgelig driter i. Heldigvis gjelder dette bare versjoner frem til IE7, og disse versjonene brukes bare av noen veldig få nå for tiden. Anyway, skulle du være spesielt interessert, så sjekk disse mulige løsningene:

Er du bare interessert i å få gåseøyne kjapt på Mac-en din, trykk shift+alt+V eller B.

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.

Rupert Murdoch tar selvmord

Posted in Økonomi, Internett, Nyheter, Teknologi by kebman on 25/11/2009

…og verdens internettgründere jubler! Selvmordet til Murdoch stenger jo ikke internett på noen måte, slik Dagbladet skriver – og det gjør ei heller at Dagbladet nå tar penger for at folk skal kunne kommentere artiklene deres. Vi jubler for dette, fordi det åpner for konkurranse – i alle fall så lenge internett i praksis er fritt.

Denne mannen vil lukke det åpne internettet, skriver Dagbladet – som selv tar betalt for at folk skal kunne kommentere i avisen. Gidder jeg å betale for å ytre min mening, kanskje? Ser det slik ut? Gjør jeg det nå? Selvfølgelig ikke. Jeg bruker en alternativ kanal for å ytre min mening, og som konsekvens har jeg nesten sluttet å lese Dagbladet.no da det ikke er så interessant lenger uten å kunne kommentere direkte. Åpenbart leser jeg fortsatt Dagbladet, men jeg er jo veldig takknemlig for at Dagbladet nå har utvidet min horisont. Det er jo tross alt så mye annet bra der ute, dermed trenger jeg ikke bruke tiden på gamle utdøende reptiler.

Det same gjelder selvsagt Rupert Murdoch. Han ønsker å gjøre alle hans nettpublikasjoner til betalte tjenester, ikke ulikt Dagbladets sjakktrekk med å gjøre kommentering til en betalt tjeneste. (Faen, det er jo jeg som gjør dem en tjeneste når jeg kommenterer dritten deres!) I tillegg ønsker han å gjøre tjenestene usynlig fra Google…

Så, hva skjer da, egentlig. Åpenbart kommer Murdoch fortsatt til å tjene penger. Det er nok av folk som fortsatt er interessert i å bruke penger på hans tjenester, akkurat som det fortsatt finnes nok av folk som lar seg lure til å betale for å kommentere på Dagbaldet.

Alle vi andre, vi finner alternativer, vi. Sannsynligvis kommer det kjapt tjenester på banen som tar over tomrommet fra Murdoch og andre nyhetsleverandører. Dette skaper bare muligheter for folk som har lyst å komme på banen – kanskje folk som DEG! :D

Verden er herlig, dere!

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!

Philips Carousel – hvordan de fikk det til

Posted in Foto, Fotografi, Programvare, Spesialeffekter, Teknologi, Video by kebman on 26/04/2009

Første gang jeg fikk se denne trodde jeg det var en teaser til en ny Dark Knight film, og jeg ble superimponert. Desverre er det altså bare en reklame for et TV-apparat – men for en reklame det også er! Her er den, om du enda ikke har sett den:

Eventuelt kan du klikke her for å se originalen i mye bedre oppløsning direkte fra filmprodusentene selv.

Hvordan fikk de det til?

Så, hvordan fikk de det til, da? Vel, det finnes en “Behind The Scenes” versjon av reklamen. Det er egentlig bare en litt forlenget versjon av den originale med nøye regisserte innlegg ment for å selge TV-apparatet, og den sier dessverre svært lite om hvordan filmen faktisk ble laget, og man får bare noen små hint. Men seff, for de fleste er dette nok, og det gir jo enda noen argumenter for å kjøpe TV-apparatet, da…

Selvfølgelig har jeg ikke direkte kjennskap til hvordan filmen ble til rent praktisk, så mye av det jeg skriver her blir spekulasjon. Men for de av dere som er interessert, går det fint an å gi et generelt innblikk i hvordan slike fantastiske filmklipp blir til. Noe er dog helt sikkert: I følge shots.net er 90 prosent av filmen ble filmet “in camera” som det så fint heter. Det vil si at det du ser på skjermen, også var synlig på settet. Men før du setter kameraet på “record” er det mye som må gjøres.

Planlegging, planlegging og mer planlegging

For det første ligger det svært mye arbeid bak en slik scene. Mye mer enn hva folk flest tror. Sannsynligvis har flere team jobbet med både planlegging og utføring av scenen i flere avdealinger og utviklingsstadier, og det har kostet mye penger.

Første skritt på veien er å utvikle idé, prosjektbeskrivelse og å skrive manus. Sannsynligvis har dette gått i mange omganger med avslag og omskrivinger, som til slutt har endt i et godkjent prosjekt som får “grønt lys”.

For Philips er nok dette prosjektet forbundet med veldig mye prestisje, og de har veldig mye å tape på at deres nye og ganske uvanlige TV får en dårlig mottakelse, derfor har de spyttet inn så mye penger som de kunne avse for nettopp denne reklamen – men så er det jo bare å se på all omtalen denne reklamefilmen har fått for å skjønne at dette nok har lønnet seg svært godt for Philips.

Etter grønt lys kommer det mest praktiske planleggingsarbeidet. Budsjett blir satt opp. Konsulenter og frilansere blir hyret inn, og scenen blir planlagt steg for steg. Storyboard og visualiseringer blir nøye tegnet. Det blir laget floorplans, set designs, og til slutt blir også hele sett bygget. Nå for tiden modelleres det også “previz” (previsualiseringer) av hele scener i 3D-program, og dette er nok også gjort for denne reklamen.

Først når alt dette er gjort kan skuespillere, lysteknikere, kameracrew, sminkører, riggere og ikke minst cateringcrew komme på settet slik at innspillingen kan begynne.

Men hva er magien?

Fortsatt er det nok vanskelig å forstå hvordan de har fått til denne “freeze action” effekten. For det første er ikke hele reklamen skutt i en sekvens. Istedenfor er den skutt i flere sekvenser som så er sydd sammen etterpå. Alfred Hitchcock laget i sin tid en film som heter Rope hvor noe av samme effekt ble brukt for å få det til å se ut som om filmen ble skutt i en sammenhengende sekvens. I 1948, da Rope ble produsert, var en filmrull ikke lenger enn 20 minutt, dermed måtte man “jukse” for å få det til å se ut som ett sammenhengende klipp. Dette kan man få til ved å klippe til nye sekvser på strategiske steder, for eksempel når kamera farer forbi en kant med å bruke en wipe til en ny kant, eller å klippe der en vegg (eller noe annet stort og flatt) fyller hele skjermbildet. Folk flest legger ikke merke til at man klipper til en ny vegg da.

Nå for tiden har vi en del nye verktøy for å få denne effekten til å gå helt sømløst ved hjelp av å morfe sammen sekvenser, noe man kan ser er gjort i Philips Carousel-reklamen om man ser nøye etter. Sjekk denne wikipedia-artikkelen for mer om morfing. I korte trekk funker morfing som en crossfade, bare at man kontrollerer hvordan bildet skal “warpes” eller “skrus” før man fader eller seguer over til neste klipp. Morfing er nok mest kjent for fantastiske transformasjoner som de sett i filmer som Terminator II, men effekten fungerer like bra til å diskret skjule overganger.

De fleste “effektene” ble i følge shot.net-artikkelen gjort i kameraet. Dermed er det nok egentlig ikke brukt så mange effekter i denne filmen som folk flest tror. Det vil si at de sannsynligvis har bygget fysiske sett, og så satt opp dukker som de rett og slett har tracket forbi med kameraet. Ved bruk av god lyssetting og gode rigger, blant annet for å få ting til å se ut som de svever, er det bare “småtteri” som trengs å legges til ved hjelp av datagrafikk etterpå. En svart sytråd er nok til å få en seddel til å se ut som den svever, for eksempel. Lyssetter man riktig, vil ikke sytråden være synlig på film.

Post-produksjon

Som man kan se av behind the scenes filmen, så er ting som skuddflammer og knust glass lagt til ved hjelp av 3D-programmer etterpå. For å få dette til å matche perfekt mot det som er filmet, trenger man data om hvordan både kameraet, og de forskjellige elementene har bevegd seg. I denne reklamefilmen beveger jo bare kameraet seg, så egentlig trenger man bare referansepunkter å feste 3D-effekten til. Har man dette, kan man relativt enkelt “tracke” hver digitale 3D-effekt til det som er på den originale filmplaten. Programmer som Autodesk Maya kan brukes til dette, for generering av 3D-objekter og Autodesk Combustion kan for eksempel brukes til tracking, men også andre post-produksjonsprogrammer kan brukes. Også her er Autodesk studios (også tidligere kjent som Discreet) markedsledende på programvare, og har blant annet en finger med i spillet på både den siste Hulken-filmen og mange andre effekt-drevne filmer. Tracking kan forresten også brukes til å stabilisere videobilder, ikke ulikt måten steadyshot fungerer på billige videokamera.

Lagvis fordeling av action, bakgrunn og natur.

Lagvis fordeling av action, bakgrunn og natur.

Enn videre er kan det tenkes at hver sekvsens planlagt slik at de kan legges over hverandre i flere 2D-lag, men allikevel gi følelsen av at de egentlig er 3D og at de går sømløst over i hverandre. Dette er en teknikk som stammer fra animasjonskunsten (tegnefilmer, altså), hvor man tegner hver tegnefilmfigur på gjennomsiktige cels som ligger lagvis på plater, eller matter, med malerier av flotte sets. En annen variant av dette er når man filmer igjennom en glassplate hvor deler av platen er malt slik at det ser ut som det for eksempel er en stor og fantastisk by i bakgrunnen, selv om man filmer på et vanlig jorde.

Legger man så litt fysisk avstand mellom hver tegnefilmplate, vil det kunne simulere både perspektivforandringen man får av å tracke inn på virkelige 3D-scener, men også slike ting som dybdeskarphet, osv. Forced Perspective, kalles det, eller tvunget perspektiv om du vil.

Det samme kan man selvfølgelig trekke over til “live action” film hvor man istedenfor statiske 2D-plater bruker såkalte travelling mattes (plater med video, rett og slett) som er filmet mot for eksempel en bluescreen. Også disse behøver ikke ligge rett oppå hverandre, men kan arrangeres slik at det er en del fysisk bredde mellom dem for å simulere diverse perspektiv-forandringer.

Blant annet er dette en effekt som er mye brukt innen animé-film for å lage action-effekter.

Bullet Time

Det kan også tenkes at noen sekvenser er tatt opp med Bullet Time-teknikk som vi først så i de fantastiske freeze-frame og slow-down action-scenene i filmen The Matrix (forresten var det vel egentlig Vanessa Paradis som var først ute med å bruke Bullet Time i en av sine musikkvideroer, om jeg ikke husker feil) . Det vil si at man setter opp masse still-kameraer som fyrer av sekvensielt i et rom som ellers er rigget som en gigantisk bluescreen.

Denne teknikken er dog tatt patent på, og så vidt jeg vet er det bare ett firma som utfører den – og dette er ikke billig, så mye mulig at folkene bak Philips Carousel har valgt en annen metode for å få en lignende effekt.

Apropos

Tidligere har BMW kjørt cinematiske reklamer i kortfilmserien The Hire, hvor de ansatte kjente filmregissører som Ang Lee, John Woo og ikke minst nå avdøde bil-scene-mester John Frankenheimer. Men dette er jo noe for seg selv, i og med at det kun er ett hakesleppende effektklipp.

For øvrig er ikke cinematiske, eller i det minste lengere reklamefilmer noe nytt. I gode gamle dager kunne reklamefilmer gjerne vare ganske lenge og hele filmer ble gjerne laget om ett eneste produkt.

Tannpirker

Posted in Foto, Fotografi, Helse, tannhelse, Teknologi, Trevare by kebman on 18/03/2009
Mmm, mint og bjørkeved.

Mmm, mint og bjørkeved.

Du kjenner den tørre følelsen mellom fingrene. De skarpe kantene. Den ru overflaten. Da vet du at hva enn det er som har festet seg mellom akkurat den tanna, den lille jævla kjøttslintren som kiler baki der, da vet du at den kommer til å være boret fast på tuppen om ikke så lenge. Du kommer til å smatte fornøyd, knipse stikka og fortsette med livet.

Det er noe eget når man åpner en ny pakke med tannpirkere. Stikker du nesen borti kjenner du en boquet av bjørketre og mint. Du lukter tørt, og det er tørt, men det gjør jobben sin. Og egentlig smaker det ikke så verst heller. Jeg vet ikke hva jeg foretrekker. Au naturelle, eller med mintaroma… Take your pick – your toothpick.

De finnes visst nok i både plastikk og bambus også, men det er noe eget med denne trekant-slepne avrundede treflisen av bjørkeved. Det er den vi har vokst opp med.

Ru og spisse.

Ru og spisse.

Smatt, smatt!

Følg med

Få nye innlegg levert til din innboks.