Syntax highlighting i Word

Noen ganger er det nyttig å legge ved kodesnutter i dokumenter som MS Words .doc eller .docx dokumenter. Og ja, det finnes alternativer til Word og Word har et ondt lynne, men flertallstyraniet valgte. Og word har track-changes, det har vist seg dødelig nyttig når flere jobber sammen på tur. Men kode, – er ikke Words greie.
Kode i word

Kode i word.

Så altså, du har kode i din favoritt-editor. Koden er fin i fargene, og lett å lese, skulle en tro. Copy/past inn i word, og vips – fargene er borte!

Det finnes mange måter å unngå dette på. Xcode på mac er en ting, men de færreste har mac, og enda færre har xcode installert.

Det enkle: bruk en pastebin. Kopier fra din editor. La webtjenesten highlighte, og kopier igjen koden fra din pastebin og inn i Word. Ferdig arbeid.

Konamikoden i javascript

Den godeste tanketom kvitret i dag at konamikoden også fungererfacebook. Jeg kan ikke si jeg ble veldig imponert over easteregget som ble avduket, men likevel: nerdete moro.

Facebook er jo ikke aleine om å bruke konamikoden på nett, så jeg antok at det er lett å finne ferdig javascriptkode for å få til dette på egen side, og det var det:

    if ( window.addEventListener ) {
            var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
            window.addEventListener("keydown", function(e){
                    kkeys.push( e.keyCode );
                    if ( kkeys.toString().indexOf( konami ) >= 0 )
                            window.location = "http://ejohn.org/apps/hero/";
            }, true);
    }

Denne snutten er btw fra jquerys webside. Har kun testet i Firefox.

Da jeg ikke vet helt enda hva jeg selv ville skule bak konamikoden på stavelin.com har jeg kun lagt den inn på startsiden stavelin.com slik som vist i eksemplet over.

Hva ville du ha brukt konamikoden til på din side?

113 dager er 3 måneder og 3 uker

Å jobbe med datoer, det være seg i mattestykker eller programmering, har jeg tidvis funnet vrient. Det er lett å finne ut hvor mange dager det er siden sommerferien var over, eller hvor mange dager det er til jul, men vi mennesker teller ikke tid i ti-tall men i måneder, uker, dager og timer. I denne posten viser jeg hvordan du kan telle ned dagene til jul, på en pen menneskevennlig måte, i PHP.
Koden i denne posten er hentet fra Aidan Lister. Det eneste jeg har gjort er å oversette months til måneder, osv.


 * @version     2.0.0
 * @link        http://aidanlister.com/2004/04/making-time-periods-readable/
 * @param       int     number of seconds elapsed
 * @param       string  which time periods to display
 * @param       bool    whether to show zero time periods
 */
function time_duration($seconds, $use = null, $zeros = false)
{
    // Define time periods
// jeg har skrevet å som å - med riktig bruk av charset er dette muligens unødvendig.
    $periods = array (
        'år'      => 31556926,
        'måneder' => 2629743,
        'uker'          => 604800,
        'dager'         => 86400,
        'timer'         => 3600,
        'minutter'      => 60,
        'sekunder'      => 1
        );
    // Break into periods
    $seconds = (float) $seconds;
    foreach ($periods as $period => $value) {
        if ($use && strpos($use, $period[0]) === false) {
            continue;
        }
        $count = floor($seconds / $value);
        if ($count == 0 && !$zeros) {
            continue;
        }
        $segments[strtolower($period)] = $count;
        $seconds = $seconds % $value;
    }
// Build the string
// dette er endret til å fungere med norske suffix
    foreach ($segments as $key => $value) {
        $segment_name = substr($key, 0, -2);
//        $segment_name = substr($key, 0, -1);
        $segment = $value . ' ' . $segment_name;
        if ($value != 1) {
//            $segment .= 's';
            $segment .= 'er';
        }
        $array[] = $segment;
    }
    $str = implode(', ', $array);
    return $str;
}
?>

Denne funksjonen kan du lime rett inn i php-dokumentet ditt, kanskje helst inn i en klasse av noe slag?

Så når funksjonen kjøres:

Funksjonen tar antall sekunder som parameter, så…
..var det de pokkers sekundene da.

$dag   = 21;     // Dagen vi teller ned til 
$maaned = 12;      // Måned vi teller ned til 
$ar  = 2009;   // Året vi teller ned til 
$tidspunkt  = 23;     // Klokken (hele timer) vi teller ned til 
$sekunder_til_noe_skjer = ((mktime ($tidspunkt,0,0,$maaned,$dag,$ar)-time(void))); // sekunder

Og funksjonen kjøres:


Resultatet er en nedteller som gir et resultat i dette formatet:

3 måneder, 3 uker, 19 timer, 26 minutter, 3 sekunder

Og slikt liker vi.

PS: jeg har også lagt koden på snipplr, og du kan lese Aidans post om koden sin her.

Fremtidens medier

Framtidens medier ligger på nett, i flere betydninger. Først og fremst ligger Eirik Solheims foredrag på nett. Både hos nrkbeta og på vindkast.uib.no.

Nrkbeta ber om tilbakemelding om hvordan embed-koden deres fungerer, så her tester jeg den.

Fremtidens Medier UiB 2009 Del 1 . Det er 4 deler. Alle kan nåes både hos nrkbeta & uib.

For de som vil vite mer om hvordan videoen ble filmen og redigert kan lese om det her. Kurt George «tengil» Gjerde forklarer.

nrkbata ber om hjelp til å teste embed-kode, men også uib tilbyr dette. Slenger derfor med del 2 fra uib litt lenger nede.

UiB bruker object-html-elementet, som er mer vanlig. Den likner mer på det youtube tilbyr. Nrkbeta har skrevet en egen sak, som bare er en lenke til et javascript, med parametrene høyde og bredde på filmen. javascriptet skriver så avspiller-koden til websiden din. Når siden lastes. Du kan lese detaljene her. I stedet for et object-element så får vi et embed-element. Object-koden som uib tilbyr gjetter jeg på at er noe flash spytter ut automatisk, da den er over flere linjekoder og ser stygg og fæl ut.

Denne problematikken kan du lese mer om på alistapart.com
.
Når jeg trykker lagre her, så får vi se om det betyr noe i virkeligheten. Det er uansett sjeldent at jeg gjør annet med slik kode annet enn copy/paste. Men joa, noen ganger kan det være like greit å slanke ut unødvendige elementer, jeg ser for meg at enkelte av parametrene som ligger med uib (flash) sin kode, kan fjernes.

Vell. Det funket ikke. UiB sin object-kode strippes ut av wordpress. Jeg må altså finne ut hvordan jeg omgår dette…

Etter å ha forsøkt ulike kombinasjoner, så fant jeg ut av at ved å fjerne litt «white space» (mellomrom mellom noen parametre i obcjet-taggen), så fungere likevel UiBs avspiller. Men ikke ved direkte copy/paste. Så: pass på at det er ikke er mer enn et mellomrom mellom hver av prametrene/attributtene. Når dette var på plass ble object-koden ikke strippet bort.

Det vi ser over er del 2 av Eirik Solheims forelesning om fremtidens medier, fra uibs server vindkast.uib.no

Erfaringene

  • nrkabetas kode fungerte «ut av boksen», men den tar litt mere plass. Det grå området under videoen, med kontroll-knapper, ser ikke veldig bra ut. Den legger også automatisk inn to lenker under videoen, som gjør at bildeteksten min ser malplassert ut. Lenkene går dog til relevante og nyttige steder (til websiden der videoen kommer fra, og direktelink til videofilen.).
  • UiBs kode funket ikke «ut av boksen», men avspilleren ser litt bedre ut (litt viemo?).

Snipplr – ekstern kode for tomt hode.

Jeg er nok ingen utpreget programmerer-type, men desto bedre grunn til å holde orden på koden. HTML, CSS, SQL og javascript, det kan lett gå i surr, og hvordan fikk jeg til den kule greia den gangen..?

Snipplr - code 20

Snipplr er ekstern hukommelse i praksis – for deg som forholder deg til kode i ny og ne.

Snipplr lar deg lagre kodesnutter som du kan dele med verden, eller ikke. Den store fordelen med snipplr er at koden ligger lagret utenfor prosjektet jeg jobber med i nuet, men er tilgjenglig med et tastetrykk via min favoritt-editor TextMate.
(se denne for hvordan)

Skattejakt.

Programmerere er mye flinkere til å dele på godene enn andre. En drøy påstand? –Kanskje. Men det er fortsatt enormt mange prosjekt med åpen kildekode. Dette er både en mulighet til å lære, og til å løse problemer andre har løst før deg. Snipplr har ikke hele prosjekter, men kun små kodesnutter.

Mye lettere å holde oversikt over, og mye lettere å få bruk for.

Jeg lover ingenting, men her er mine greier.

Å snoke rundt på snipplr.com er som en skatejakt. Det er mye grums, som jeg ikke skjønner eller har bruk for, men på samme tid riktig sted i elva å grave. Du kan finne gull.

Legger med et eksempel på siste snutt jeg la inn: hvordan hente ut verdier fra HTML-skjemaer med jQuery.
[snippet=11893]