Script

Filter
2007-08-14

Bättre bilder

Grafik
Några generella enkla photoshop-knep för att få bättre bilder på webben
1. Visa > Korrekturinställningar > Bildskärmsinställningar
2. Öka kontrasten (<= cs2 = dra i vit- och svartbalans i kurvor)
3. Ev mättnad
4. Minska till rätt storlek
5. Oskarp mask
   a) 350%
   b) 0.3 radie
   c) 1 tröskelv
6. Redigera > Konvertera till profil > sRGB
2007-07-19

Flash detection i php

Flash
Se om flash stöds
<?php
if (eregi("application/x-shockwave-flash", $_SERVER['HTTP_ACCEPT'])) { 
    $hasFlashSupport = true;
} ?> 
2007-07-04

Linuxkommandon

Linux
Liten lathund för att komma ihåg sällan använda linuxkommandon
a2ensite <sitefil>, a2dissite <sitefil>
Aktiverar/avaktiverar en site i apache2.
Kör /etc/init.d/apache2 reload efteråt för att ladda om Apaches conf-filer

chkconfig --list <tjänstens namn> (red hat)
Kollar startscripten för en tjänst - scriptet ska ligga i init.d

cp -u
Kopierar endast filer som inte redan finns eller är nyare än de som finns (ett sätt att synka mappar)

date
Visar eller ställer systemklockan

df
Kollar diskanvändning

du <dir>
Visar hur mycket plats filer och kataloger tar.
-s summerar samtliga kataloger.
-h visar i läsvänligt format: Ex:
du -sh /*

diff <fil1> <fil2>
Jämför två filer och meddelar skillnaden

file <filnamn>
Beskriver filtypen

find -path- -options- -tests- -action-
Hittar filer t ex:
find . \( -name "_*" -or -newer minFil \) -type f -print
printar ut vanliga filer som börjar med _ eller är nyare än minFil.

free
Visar minnesanvändning

grep
Hittar rader i filer t ex:
grep -E [a-z]\{10\} minfil.txt
hittar rader med lowercase ord som är exakt 10 tecken långa
-E (extended matching)
-c (enbart räkna rader)
-l (enbart filnamnen)
-i (ignore case)

head <filnamn>
Visar början på en textfil
(ls | head - visar de första posterna i en katalog)

id
Visar användarnamn och alla grupper man tillhör

ifconfig eth0 <ipnummer>
Konfigurerar nätverkskort (ställer ipnumret)

kill <processnummer>
-HUP startar om processen
-9 dödar processen definitivt

killall <namn>
Alla processer med det namnet dödas

locale
Visar landsspecifika inställningar

locate <filnamn>
Hittar filnamn i systemet (förutsätter att updatedb har körts innan)
locate -u uppdaterar databasen (samma som updatedb)

lpr
Skriver ut text
Exempel:
cat poorly_formatted_report.txt | fmt | pr | lpr
fmt formatterar, pr paginerar och lpr skickar till skrivaren
cat unsorted_list_with_dupes.txt | sort | uniq | pr | lpr
sort sorterar, uniq tar bort dubletter, pr paginerar och lpr skickar till skrivaren

lsof /dev/dsp
Listar öppna filer som hör till en process (t ex /dev/dsp)

lspci
Listar pci-kort

mount
-a monterar allt som definierats i /etc/fstab
Ex: mount --bind /dev/hdb1 /media/windows -t ntfs -o nls=utf8,umask=0222 0 0
mountar ett läsbart ntfs system i mappen /media/windows.
Samma, fast i fstab: /dev/hdb1 /media/windows ntfs nls=utf8,umask=0000 0 0
(förutsätter att hdb1 är en windows-hårddisk)

ps aux | grep <process>
Visar om process är igång
a - visar processer för alla användare
u - visar vem som kör en viss process
x - Visar även processer som inte är kopplade till någon tty
r - Visar bara processer som körs

pstree
Visar processhierarkin

rwho
Visar alla användare som är inloggade i det gemensamma nätverket

screen (ctl-c = ny, ctl-a 0-9 = växla mellan)
screen är ett alternativ till Ctl-Alt-F1 till F4

set
Visar en lista med miljövariabler

strings
Visar läsbart innehåll inuti programfiler

sort <fil>
Sorterar innehållet i en fil

su [user]
Byt användare

sudo <cmd>
Kör ett kommando som root

tail -n antalrader -f <fil>
Visar slutet på en textfil
-n visar antal rader
-f följer med, t ex när en loggfil lägger till rader på slutet i en fil 

tar
-v verbose, visa info
-c skapa ett nytt arkiv
-x packa upp ett befintligt arkiv
-f filnamn (om inget anges kan man ange t ex en pipe i stället)
-t lista innehållet i ett arkiv
-z använd GZIP
-j använd BZIP2 (istället för -z)
Ex:
tar -zxvf <arkiv> packar upp och dekomprimerar ett gzip-arkiv
tar -cf <arkiv.tar> <fil1> <fil2> Skapar ett nytt okomprimerat arkiv med de två filerna
tar -czf <arkiv.gz> <dir/> skapar ett gzippat arkiv av dir
tar -tvf <arkiv> listar filerna i arkivet 

top
Visar processer

umount <[enhet][plats]>
Koppla ur en enhet

uname -r
Kollar vilken kärna du har

update-rc.d <scriptnamn> defaults (debian)
Ser till att ett startscript körs vid boot - scriptet ska ligga i init.d

update-rc.d <scriptnamn> remove (debian)
Tar bort startprocess

updatedb
Uppdaterar databasen som locate använder för att söka efter filer

w
Visar vilka som är inloggade och vilka processer de kör

wc <fil>
Räknar rader, ord eller tecken i en fil
-l (lines)
-w (words) 
-c (characters)

wall
Skickar meddelande från root till alla inloggade (avsluta med ctl-D)

wget
Hämta filer från nätet.

which <cmd>
Visar var <cmd> finns

who
Ger en lista på vilka som är inloggade

write <user>
Skickar meddelande till <user> (kan funka som en chat mellan 2 inloggade användare)
2007-06-08

Fixa kontakten med nätverket

Linux
Om en dator t ex nyligen installerad inte har kontakt med nätet kan detta hjälpa
> ifconfig eth0 192.168.0.x
> route add default gw 192.168.0.1

# Ställ även dns-servern i /etc/resolv.conf:
nameserver 195.54.122.200

# Tips för att få reda på ip-numret om dns:en inte funkar:
> host www.google.se 195.54.122.200 (ip till namnserver)
2007-06-01

Markera sökord

DOM
Markera upp t ex ett sökord på webbsidan
function markupWord(node, word) {
    if (node.hasChildNodes) {
        for (var i = 0; i < node.childNodes.length; i++) {
            markupWord(node.childNodes[i], word); // recursive call
        }
    }
    if (node.nodeType == 3) { // text node
        // get a caseinsensitive match...
        var lowercasedContent = node.nodeValue.toLowerCase();
        var lowercasedWord = word.toLowerCase();
    
        // is the word in the text?
        if (lowercasedContent.indexOf(lowercasedWord) != -1) {
            // it's there - check that we haven't massaged this one before, 
            // (due to insertions in the DOM we might see the same node twice)
            if (node.parentNode.className.indexOf("searchword") == -1) {
                // insert <span> around the word...
                var startIndex = lowercasedContent.indexOf(lowercasedWord);
                // new nodes...
                var preContent = document.createTextNode(node.nodeValue.substr(0, startIndex));
                var searchWord = document.createTextNode(node.nodeValue.substr(startIndex, word.length));
                var postContent = document.createTextNode(node.nodeValue.substr(startIndex + word.length));
                var highlight = document.createElement("span");
                highlight.className = "searchword";
                highlight.appendChild(searchWord);
    
                // insert new nodes before the old...
                node.parentNode.insertBefore(preContent, node);
                node.parentNode.insertBefore(highlight, node);
                node.parentNode.insertBefore(postContent, node);
    
                // remove the old...
                node.parentNode.removeChild(node);
            }
        }
    }
}

// Call the function...
markupWord(document.getElementsByTagName("body")[0], word); 
🙂