<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>David Steinsland - informatikkstudent og webutvikler &#187; Guider</title>
	<atom:link href="http://davidsteinsland.net/emner/guider/feed/" rel="self" type="application/rss+xml" />
	<link>http://davidsteinsland.net</link>
	<description>Personlig blogg om programmering og andre uinteressante emner</description>
	<lastBuildDate>Thu, 26 Apr 2012 10:49:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Lagre og hente frem objekter i Java (cache)</title>
		<link>http://davidsteinsland.net/2012/02/lagre-og-hente-frem-objekter-i-java-cache/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lagre-og-hente-frem-objekter-i-java-cache</link>
		<comments>http://davidsteinsland.net/2012/02/lagre-og-hente-frem-objekter-i-java-cache/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 12:28:12 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Guider]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[serializable]]></category>

		<guid isPermaLink="false">http://davidsteinsland.net/?p=701</guid>
		<description><![CDATA[Noe ganske essensielt med et program er egenskapen å huske innstillinger til neste oppstart. Men hvordan skal vi få til dette? Skal vi bruke en database eller XML? Eller finnes det andre metoder? I Java har vi en interface som heter &#171;Serializable&#187;. Klasse som implementerer den, har muligheten til å bli lagret på disk til senere [...]]]></description>
			<content:encoded><![CDATA[<p>Noe ganske essensielt med et program er egenskapen å huske innstillinger til neste oppstart. Men hvordan skal vi få til dette? Skal vi bruke en database eller XML? Eller finnes det andre metoder?</p>
<p>I Java har vi en <em>interface</em> som heter &laquo;Serializable&raquo;. Klasse som implementerer den, har muligheten til å bli lagret på disk til senere bruk ved bruk av <var>ObjectOutputStream</var> og <var>ObjectInputStream</var>.</p>
<p>Helt enkelt, kan vi gjøre slik:</p>
<pre class="brush: java; title: ; notranslate">
MyObject myObj = new MyObject (); // MyObject implementerer Serializable

try
{
    FileOutputStream fos = new FileOutputStream (&quot;myObject.ser&quot;);
    ObjectOutputStream oos = new ObjectOutputStream(fos);

    oos.writeObject(myObj);

    oos.flush();
    oos.close();
}
catch (Exception e)
{
    e.printStackTrace();
}
</pre>
<p>Objektet vårt er nå lagret i filen <var>myObject.ser</var>, og vi kan hente det frem igjen slik:</p>
<pre class="brush: java; title: ; notranslate">
try
{
    FileInputStream fis = new FileInputStream(&quot;myObject.ser&quot;);
    ObjectInputStream ois = new ObjectInputStream(fis);

    // myObj er nå av samme instans som i eksempelet ovenfor
    MyObject myObj = (MyObject) ois.readObject();

    ois.close();
}
catch (Exception e)
{
    e.printStackTrace();
}
</pre>
<p>Som du kanskje ser, så er det ikke så veldig komplisert. Men hva dersom applikasjonen inneholder mange flere objekter? Å lagre alle objektene manuelt er både tidkrevende og unødvendig.</p>
<p>Vi kan nemlig anvende oss av programmeringsparadigmet <em>Registry. </em>Essensielt er det en klasse som inneholder alle andre objekter som brukes i en applikasjon. Registeret anvender også gjerne <a href="http://en.wikipedia.org/wiki/Singleton_pattern">Singleton-mønsteret</a> slik at objektene kan nås overalt.</p>
<p>Når vi har et register trenger vi bare lagre register-objektet. Alle objekter som måtte være i registeret vil da også bli lagret.</p>
<p>Et eksempel på et slik register:</p>
<pre class="brush: java; title: ; notranslate">
class Registry implements Serializable
{
	private static final long serialVersionUID = 7422025143560909873L;
	private static final Registry instance = new Registry();

	private HashMap registry = new HashMap();

	private Registry ()
	{ }

	public static Registry getInstance ()
	{
		return instance;
	}

	public void addObject (String k, Object v)
	{
		this.registry.put (k, v);
	}

	public Object getObject (String k)
	{
		return this.registry.get (k);
	}
}
</pre>
<p>Du har kanskje lagt merke til datafeltet <var>serialVersionUID</var>, og lurer på hva det er?</p>
<blockquote><p>serialVersionUID er en universell versjonsindikator for en klasse som støtter serial-handling. Deserialiseringa bruker dette ID-nummeret for å sikre at klassen er i samsvar med det serialiserte objektet.</p></blockquote>
<p>I praksis betyr dette at Java bruker serienummeret til å sjekke om det objektet du henter <em>frem</em> fra filen er i samsvar med det objektet du la <em>inn</em>. Det høres kanskje litt diffus ut fortsatt, men ta følgende scenario:</p>
<p>- Du oppretter et objekt av typen <em>MyObject</em> (som i kode #1), og lagrer dette til en fil<br />
- I mellomtiden endrer du på klassestrukturen til MyObject, og legger til flere datafelt<br />
- Når du henter frem objektet igjen, etter klasseendringene, hva tror du skjer?</p>
<p>Java kjenner nemlig ikke igjen klassene, og tror de er forskjellige. Du vil derfor få en feilmelding om at det er en ugyldig klasse. Dersom du hadde implementert <var>serialVersionUID</var>, hadde Java forstått at objektene likevel var like.</p>
<p>Verdien er unik per klasse, og blir generert av Java selv. For å finne ut hvilket nummer du skal legge inn i hver klasse, må du ta ibruk <var>serialver</var>-programmet (følger med Java-installasjonen).</p>
<p><a href="http://davidsteinsland.net/wp-content/uploads/2012/02/serialver-java.png"><img class="aligncenter size-full wp-image-702" title="Java: serialver" src="http://davidsteinsland.net/wp-content/uploads/2012/02/serialver-java.png" alt="" width="586" height="109" /></a></p>
<p>Du åpner opp kommandolinjen og endrer mappe til hvor klassefilene dine ligger. Deretter utfører du kommandoen:</p>
<pre class="brush: plain; title: ; notranslate">
serialver Registry
</pre>
<p>Bytt ut <em>Registry</em> med hva klassenavnet er i ditt tilfelle.</p>
<h3>Et eksempel på bruk</h3>
<pre class="brush: java; title: ; notranslate">
class Program
{
    public static void main (String[] args)
    {
        Registry reg = Registry.getInstance();

        reg.addObject (&quot;myObj&quot;, new MyObject (&quot;Something&quot;));
        reg.addObject (&quot;foo&quot;, new MyObject (&quot;bar&quot;));

        // lagre objektene ved avslutning
        try
        {
            FileOutputStream fos = new FileOutputStream (&quot;registry.ser&quot;);
            ObjectOutputStream oos = new ObjectOutputStream(fos);

            oos.writeObject(reg);

            oos.flush();
            oos.close();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

        // ... så kan vi hente dem frem igjen
        try
        {
            FileInputStream fis = new FileInputStream(&quot;registry.ser&quot;);
            ObjectInputStream ois = new ObjectInputStream(fis);

            reg = (Registry) ois.readObject();
            ois.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

        // do something..
        MyObject myObj = (MyObject) reg.getObjet (&quot;myObj&quot;);
    }
}
</pre>
<h3>Oppsummering</h3>
<ul>
<li>Alle klasser som skal lagres <strong>må</strong> implementere <var>Serializable</var>, og <strong>bør</strong> inneholdet  <var>serialVersionUID</var></li>
<li>Et felles register med alle objekter vil spare deg for tid og ressurser, for eksempel ved lagring av objekter</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2012/02/lagre-og-hente-frem-objekter-i-java-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skrive og kompilere LaTeX i Notepad++</title>
		<link>http://davidsteinsland.net/2011/12/skrive-og-kompilere-latex-i-notepad/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=skrive-og-kompilere-latex-i-notepad</link>
		<comments>http://davidsteinsland.net/2011/12/skrive-og-kompilere-latex-i-notepad/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 17:25:15 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Guider]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[notepad++]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[postscript]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=620</guid>
		<description><![CDATA[Flere ganger har jeg skrevet om Notepad++ og hvordan du enkelt kan utvide funksjonaliteten til programmet. Forrige gang skrev jeg om hvordan du kunne kompilere og kjøre Java-applikasjoner. Denne gangen handler det om LaTeX og hvordan du kan skrive LaTeX-dokumenter i Notepad++, samt hvordan du får dem over til PDF- eller PostScript-format. Før vi går [...]]]></description>
			<content:encoded><![CDATA[<p>Flere ganger har jeg skrevet om <a href="http://notepad-plus-plus.org/">Notepad++</a> og hvordan du enkelt kan utvide funksjonaliteten til programmet. Forrige gang skrev jeg om <a title="Java: Kompiler og kjør, direkte fra Notepad++" href="http://davidsteinsland.net/2011/09/java-kompiler-og-kjor-direkte-fra-notepad/">hvordan du kunne kompilere og kjøre Java-applikasjoner</a>.<br />
Denne gangen handler det om <a href="http://www.latex-project.org/">LaTeX</a> og hvordan du kan skrive LaTeX-dokumenter i Notepad++, samt hvordan du får dem over til PDF- eller PostScript-format.</p>
<h3>Før vi går i gang &#8230;</h3>
<p>For at ting skal gå knirkefritt for deg så bør du helst leste artikkelen jeg skrev om <a title="Java: Kompiler og kjør, direkte fra Notepad++" href="http://davidsteinsland.net/2011/09/java-kompiler-og-kjor-direkte-fra-notepad/">kompilering av Java i Notepad++</a>, spesielt om hvordan du installerer <em>NppExec.<br />
</em>Deretter må du sørge for at du har installert <a href="http://miktex.org/">MiKTeX</a>, som er nødvendig for å kunne kompilere LaTeX.</p>
<h3>Steg 1: Opprette batch-filer</h3>
<p>Innstikket <em>NppExec</em> gir oss muligheten til å kjøre kommandoer direkte i Notepad++, og gjerne med en hurtigtast. Vi skal bruke dette innstikket til å kjøre to forskjellige batch-filer, som skal stå for å kompilere LaTeX til PDF eller PostScript.</p>
<p><strong>Opprett en batch-fil med navnet «latex-pdflatex.bat»</strong>. I denne filen skriver du inn følgende kode:</p>
<pre class="brush: vb; title: ; notranslate">
cd %1
pdflatex.exe %2
</pre>
<p>Denne batch-filen har som oppgave å kompilere et TeX-dokument direkte til PDF.</p>
<p>Deretter må du <strong>opprette en ny batch-fil med navnet «latex-postscript.bat»</strong>. Denne filen skal brukes dersom LaTeX-dokumentet inneholder vektorgrafikk, for da må dokumentet gjøres om til PostScript først (PostScript-filer kan enkelt konverteres til PDF senere).</p>
<p>Filen må inneholde følgende kode:</p>
<pre class="brush: vb; title: ; notranslate">
cd %1

latex.exe -src-specials %2.tex
dvips.exe %2
</pre>
<p>Dette programmet sørger for at LaTeX-dokumentet blir gjort om til en <a href="http://en.wikipedia.org/wiki/.dvi">.dvi-fil</a>, for så til PostScript.</p>
<h3>Steg 2: Opprette makroer i Notepad++</h3>
<p>For å finne ut hvordan du oppretter makroer i Notepad++, anbefaler jeg deg å lese<a title="Java: Kompiler og kjør, direkte fra Notepad++" href="http://davidsteinsland.net/2011/09/java-kompiler-og-kjor-direkte-fra-notepad/"> forrige artikkel jeg skrev om emnet</a>. Du følger samme prosedyre som beskrevet der, bare du bytter ut navnet på makroen samt kommandoen. Det er også beskrevet hvordan du kan tilegne tastatursnarveier til makroene.</p>
<p>LaTeX: til PDF</p>
<pre class="brush: vb; title: ; notranslate">
latex-pdflatex.bat &quot;$(CURRENT_DIRECTORY)&quot; $(NAME_PART)&quot;
</pre>
<p>LaTeX: til PDF (grafikk)</p>
<pre class="brush: vb; title: ; notranslate">
latex-postscript.bat &quot;$(CURRENT_DIRECTORY)&quot; $(NAME_PART)&quot;
</pre>
<p>Dersom du har fått alt på plass, så er det bare til å begynne å skrive!</p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2011/12/skrive-og-kompilere-latex-i-notepad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kompilere og kjøre Java i Notepad++</title>
		<link>http://davidsteinsland.net/2011/09/java-kompiler-og-kjor-direkte-fra-notepad/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-kompiler-og-kjor-direkte-fra-notepad</link>
		<comments>http://davidsteinsland.net/2011/09/java-kompiler-og-kjor-direkte-fra-notepad/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 16:06:38 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Guider]]></category>
		<category><![CDATA[Programvare]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[notepad++]]></category>
		<category><![CDATA[nppexec]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=575</guid>
		<description><![CDATA[Kompiler og kjør Java-kode direkte fra Notepad++! Ingen grunn til å bytte til en IDE nå lengre!]]></description>
			<content:encoded><![CDATA[<p>Da jeg startet på Informasjonsteknologi ved HiOA, ble mange anbefalt å skrive Java i en IDE som Eclipse eller Netbeans fremfor teksteditor. Dette ble nok godtatt av de fleste, men for de av oss som har sverget troskap til Notepad++ er det vanskeligere å godta.</p>
<p>Etter litt søking rundt om, fant jeg frem til en løsning som lar deg kompilere og kjøre Java-kode direkte i fra Notepad++ med et par tastetrykk!</p>
<h3>1. Installer NppExec</h3>
<p>NppExec er en plugin til Notepad++ som lar deg kjøre kommandoer, og du vil finne denne i <em>Plugin Manager</em>. Gå til: <var>Plugins → Plugin Manager → Show Plugin Manager</var>.</p>
<p>I denne listen vil du finne NppExec. Huk av i avkryssningsboksen og trykk Install.</p>
<h3>2. Opprett batch</h3>
<p>For å kunne kjøre Java-applikasjoner måtte jeg opprette en egen batch-fil for dette. Lag en fil som heter RunJava.bat, og lim inn dette:</p>
<pre class="brush: vb; title: ; notranslate">

cd %1
java -cp . %2
pause
</pre>
<h3>3. Lage makroer</h3>
<p><em> <img class="alignright" title="nppexec_1" src="http://davidsteinsland.net/wp-content/uploads/2011/09/nppexec_1.png" alt="" width="499" height="258" /></em></p>
<p><em> Makroer</em>  er små miniprogrammer egnet for å utføre små oppgaver, som du kan lage med NppExec.</p>
<p>Trykk <var>F6</var>, lim inn følgende kommando:</p>
<pre class="brush: plain; title: ; notranslate">
D:\bin\JavaRun.bat &quot;$(CURRENT_DIRECTORY)&quot; $(NAME_PART)
</pre>
<p>Trykk så <var>Save</var>, og kall makroen for <em>Java Run</em>.</p>
<p>For å kompilere Java-kode behøver du ingen batch-filer, bare en spesiell kommando.</p>
<p>Trykk <var>F6</var>, velg &lt;temporary script&gt; fra nedtrekksmenyen, og lim inn kommandoen:</p>
<pre class="brush: plain; title: ; notranslate">
cd $(CURRENT_DIRECTORY)
javac &quot;$(FILE_NAME)&quot;
</pre>
<p>Lagre den som <em>Java Compile</em>.</p>
<h3>4. Plassere makroene i meny</h3>
<p><img class="alignright" title="nppexec_2" src="http://davidsteinsland.net/wp-content/uploads/2011/09/nppexec_2.png" alt="" width="264" height="480" /></p>
<p>Gå til <var>Plugins → NppExec → Advanced Options</var></p>
<p>I listen under &laquo;Associated Script&raquo; velger du <em>Java Run</em>. I boksen inder &laquo;Item name&raquo; skriver du: <em>Java Run Application</em>. Trykk så på <var>Add/modify</var>.</p>
<p>Gjenta samme prosedyre én gang til, bare denne gangen velger du <em>Java Compile</em> og skriver inn <em>Java Compile Application</em> under &laquo;Item name&raquo;.</p>
<p>Trykk <var>OK</var>, og finn frem <var>Macro</var> i hovedmenyen. Du vil nå se dine makroer i listen nederst.</p>
<h3>5. Tilegne tastatursnarveier</h3>
<p>Det er greit å kunne ha en tastatursnarvei for disse makroene, spesielt fordi de vil bli benyttet ofte.</p>
<p>I hovedmenyen velg <var>Run → Modify Shortcut/Delete Command</var>. Deretter velger du &laquo;Plugin Commands&raquo;, og finn frem til <em>Java Run Application</em> og <em>Java Compile Application</em>. Dobbeltklikk på hver av dem, og du vil få mulighet om å tilegne makroen en tastatursnarvei.</p>
<p>OBS! Pass på at det ikke oppstår konflikt med andre snarveier. Notepad++ håndterer slikt dårlig, og du vil derfor måtte fjerne en eksisterende snarvei før du kan bruke den på ny.</p>
<p>Gå til</p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2011/09/java-kompiler-og-kjor-direkte-fra-notepad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips: Enkle feilmeldinger med animasjon</title>
		<link>http://davidsteinsland.net/2011/07/tips-enkle-feilmeldinger-med-animasjon/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tips-enkle-feilmeldinger-med-animasjon</link>
		<comments>http://davidsteinsland.net/2011/07/tips-enkle-feilmeldinger-med-animasjon/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 13:34:33 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Guider]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[feilmelding]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=563</guid>
		<description><![CDATA[Her følger en liten kodesnutt som viser en feilmelding i ca. fem sekunder før den fjernes igjen. I dét feilmeldingen vises, blir bakgrunnsfargen forsterket for å få en &#171;se her!&#187;-opplevelse. Dersom musen blir holdt over feilmeldingen, blir den ikke fjernet før etter musepekeren er fjernet fra den. For å få koden til å fungere trenger [...]]]></description>
			<content:encoded><![CDATA[<p>Her følger en liten kodesnutt som viser en feilmelding i ca. fem sekunder før den fjernes igjen. I dét feilmeldingen vises, blir bakgrunnsfargen forsterket for å få en &laquo;se her!&raquo;-opplevelse. Dersom musen blir holdt over feilmeldingen, blir den ikke fjernet før etter musepekeren er fjernet fra den.</p>
<p>For å få koden til å fungere trenger du jQuery og jQuery UI.</p>
<h3>JavaScript:</h3>
<pre class="brush: jscript; title: ; notranslate">
$(function ()
{
	$('div.message').hide().effect ('highlight', {
		color:'#ff8a8a'
	}, 2000).delay(3000).animate({
		height: 'toggle',
		opacity: 'toggle'
	}, 'slow').hover (function ()
	{
		$(this).stop(true, true);
	}, function ()
	{
		$(this).delay(2000).animate({ height: 'toggle', opacity: 'toggle' }, 'slow');
	});
});
</pre>
<p>Om du studerer JavaScript-koden, vil du se at vi bruker effekten &laquo;Highlight&raquo;. Effekten angir feilmeldingsboksen med angitt bakgrunnsfarge, før den fader tilbake til bakgrunnsfargen som er satt i CSS. Alternativt kan en benytte seg av &laquo;pulsate&raquo;, som også gir en ganske behagelig animasjon:</p>
<pre class="brush: jscript; title: ; notranslate">
 $(function() {
    $('div.message').hide().effect('pulsate', {
        times: 2
    }, 450).delay(4000).animate({
        height: 'toggle',
        opacity: 'toggle'
    }, 'slow').hover(function() {
        $(this).stop(true, true);
    }, function() {
        $(this).delay(2000).animate({
            height: 'toggle',
            opacity: 'toggle'
        }, 'slow');
    });
});
</pre>
<p><em>Pulsate</em>-effekten her veksler mellom å skjule/vise feilmeldingsboksen iløpet av 450 millisekunder.</p>
<h3>CSS:</h3>
<pre class="brush: css; title: ; notranslate">
div.message
{
    display:none;
    border:1px solid;
    padding:10px;
    color: #D8000C;
    background-color:#FFBABA;
}

div.message h4
{
    font-weight:bold;
    font-size:14px;
}

div.message p
{
    padding:5px 0;
    font-size:12px;
}
</pre>
<h3>HTML:</h3>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;message&quot;&gt;
    &lt;h4&gt;An Error has Occured!&lt;/h4&gt;
    &lt;p&gt;
        There was a problem while editing the article. Your data has been saved, and you can go &lt;a href=&quot;#&quot;&gt;back&lt;/a&gt; to continue editing.
    &lt;/p&gt;
    &lt;p&gt;
        Error ID: #1337
    &lt;/p&gt;
&lt;/div&gt;
</pre>
<h3>Resultatet:</h3>
<p>Klikk på &laquo;Result&raquo; i vinduet under.<br />
<iframe style="width: 100%; height: 400px;" src="http://jsfiddle.net/davidsteinsland/y96kw/3/embedded/" width="320" height="240"></iframe><br />
<a href="http://jsfiddle.net/davidsteinsland/y96kw/3/embedded/result/">Eget vindu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2011/07/tips-enkle-feilmeldinger-med-animasjon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Daglig backup av MySQL med PHP (Windows)</title>
		<link>http://davidsteinsland.net/2010/10/daglig-backup-av-mysql-med-php-windows/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=daglig-backup-av-mysql-med-php-windows</link>
		<comments>http://davidsteinsland.net/2010/10/daglig-backup-av-mysql-med-php-windows/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 22:08:35 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Guider]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=377</guid>
		<description><![CDATA[Hva er det som er så viktig med sikkerhetskopier? Hvordan kan man ta sikkerhetskopi uten noe stress? I dette innlegget viser jeg deg hvordan du kan ta sikkerhetskopi av MySQL ved å bruke PHP, og automatisere det med en planlagt oppgave i Windows.]]></description>
			<content:encoded><![CDATA[<p>Dersom du drifter din egen server eller har en utviklingsserver på PC-en din, har du nok vært i situasjoner hvor du tenker: &laquo;Hvor er sikkerhetskopien når jeg trenger den?&raquo;.</p>
<p>Jeg var der selv for omtrent en úke siden, hvor jeg ved en feiltakelse kjørte en gammel PHP-fil som overskrev hele <a href="http://davidsteinsland.net/2010/03/komplett-databasesett-over-norges-postnummer-med-koordinater/">Postnummer-databasen min</a>. Heldigvis hadde jeg mange sikkerhetskopier av databasen, så det gikk bra.</p>
<p>Men hva om jeg ikke hadde hatt kopier? Da hadde faktisk hele arbeidet mitt vært ødelagt! Mangfoldige timer bortkastet, bokstavelig talt.</p>
<p>Hver dag (midnatt) blir livredderen utført: en planlagt oppgave i Windows kjører et PHP-skript som tar backup av MySQL.</p>
<p>I mine siste artikler har jeg skrevet litt om planlagte oppgaver i Windows, og vist flere ting du kan gjøre.</p>
<h3>Teori</h3>
<p>Når du installerte MySQL, fikk du med et program som heter <a href="http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html">mysqldump</a>. Programmet brukes til å ta backup av MySQL; du kan selv spesifisere én eller flere databaser, eller om du ønsker å ta backup av alle.</p>
<p>Videre kommer jeg til å ta i bruk  <a href="http://php.net/manual/en/features.commandline.php">PHP fra kommandolinjen</a>, som muliggjør at vi kan bruke PHP-tolkeren til å kjøre en bestemt PHP-fil. Dette programmet ligger i installasjonsmappen til PHP, og heter <var>php.exe</var></p>
<p>Jeg refererer til disse programmene som henholdsvis <em>mysqldump</em> og <em>php</em> fra kommandolinjen. Dette er fordi jeg har lagt til PHPs installasjonsmappe og <em>bin</em>-mappen til MySQL til miljøvariabelen PATH. Dette forteller Windows at når du skriver inn et program i CMD, skal den også leite etter det programmet i de plasseringene.</p>
<p>Dersom du ikke har gjort dette, må du spesifisere til programmene med full sti, eks: c:\php\php eller skrive inn følgende i CMD:</p>
<pre class="brush: plain; title: ; notranslate">SET PATH = %PATH%;C:\PHP;C:\MySQL\bin</pre>
<p>(jeg antar PHP og MySQL er installert i C:\).</p>
<p>Ved default ligger &laquo;.EXE&raquo; i miljøvariabelen PATHEXT, som medfører at du slipper å skrive &laquo;.exe&raquo; bak programnavnet.</p>
<h3>PHP-filen</h3>
<p>Gjør klar en PHP-fil som du navngir <em>backup.php</em> og plasser denne utenfor <em>ServerRoot</em> (altså en plass den ikke kan nåes via en nettleser).</p>
<p>ServerRoot hos meg er \www\public_html\, slik at jeg har plassert PHP-filen ett steg opp, i \www\ (Med baklengs-skråstrek foran stien, tolker Windows dette som C:\).</p>
<p>Lag så en mappe du kaller for <em>backup</em> i samme mappe hvor du har plassert PHP-filen. Dette er plassen hvor backupene våre kommer til å ligge.</p>
<p>Det første vi gjør i PHP-filen vår er å definere et par runtime-innstillinger, som databasetilkoblingen, plasseringen til backup-filene og hvordan filnavnet skal utformes.</p>
<pre class="brush: php; title: ; notranslate">
// MySQL host
define ('HOST', 'localhost');
// MySQL username
define ('USER', 'username');
// MySQL password
define ('PW', 'password');

define ('DUMP_FILENAME', date ('Y-m-d-H-i') . '.sql'); // i.e. 2010-10-30-23-00.sql

define ('SELF_DIR', __DIR__ . DIRECTORY_SEPARATOR);
define ('BACKUP_DIR', 'backup' . DIRECTORY_SEPARATOR);
</pre>
<p>Backupfilene våre får navnet sitt basert på dagens dato og tidspunktet for når filen blir kjørt.</p>
<p>Neste steg er å kalle opp <em>mysqldump</em>:</p>
<pre class="brush: php; title: ; notranslate">passthru (sprintf ('mysqldump -h %s -u %s -p%s -A -r &quot;%s&quot;', HOST, USER, PW, SELF_DIR . BACKUP_DIR . DUMP_FILENAME));</pre>
<p>Her trenger du ikke endre noe, bortsett fra stien til <em>mysqldump</em> om du ikke har endret PATH i Windows.</p>
<p>Argumentforklaring:</p>
<dl>
<dt>-h</dt>
<dd>Spesifiserer host-adressen til MySQL</dd>
<dt>-u</dt>
<dd>Brukernavnet til MySQL</dd>
<dt>-p</dt>
<dd>Passordet ditt MySQL-brukeren (-p og passordet skal ikke ha mellomrom mellom hverandre).</dd>
<dt>-A</dt>
<dd>Spesifiserer at vi skal ta backup av alle databasene. Alternativt <em>&#8211;all-databases</em>.</dd>
<dt>-r</dt>
<dd>Den fulle stien (plassering + filnavn) til hvor backupen ligger</dd>
</dl>
<p>Det neste jeg har valgt å gjøre, er å komprimere SQL-filen i et Zip-arkiv, som medfører at filstørrelsen blir endel mindre (noe som er bra!).</p>
<pre class="brush: php; title: ; notranslate">
$Zip = new ZipArchive;
$Zip-&gt;open (SELF_DIR . BACKUP_DIR . DUMP_FILENAME . '.zip', ZipArchive::CREATE);
$Zip-&gt;setArchiveComment ('This database dump was automatically taken at ' . date ('H:i, d.m.Y') . ' by a Windows Scheduled Task');
$Zip-&gt;addFile (DUMP_FILENAME, SELF_DIR . BACKUP_DIR . DUMP_FILENAME);
unlink (SELF_DIR . BACKUP_DIR . DUMP_FILENAME);
$Zip-&gt;close();
</pre>
<h3>Den planlagte oppgaven</h3>
<p>Det siste steget vårt, er å opprette oppaven som skal kjøre PHP-skriptet. Jeg har valgt å kjøre denne oppgaven hver dag ved midnatt.</p>
<p>Opprett den planlagte oppgaven ved å skrive dette inn i CMD:</p>
<pre class="brush: plain; title: ; notranslate">SCHTASKS /Create /SC DAILY /MO 1 /ST 00:00 /TN &quot;MySQL Backup&quot; /TR &quot;php \www\backup.php&quot;</pre>
<h3>Tips</h3>
<h4>Uten PHP</h4>
<p>Dersom du ikke ønsker å komprimere filene med Zip, trenger du heller ikke anvende PHP til denne jobben. Da kjører du rett og slett bare <em>mysqldump</em> direkte i oppgaven:</p>
<pre class="brush: plain; title: ; notranslate">SCHTASKS /Create /SC DAILY /MO 1 /ST 00:00 /TN &quot;MySQL Backup&quot; /TR &quot;mysqldump -h &lt;host&gt; -u &lt;brukernavn&gt; -p&lt;passord&gt; -A -r \www\backups\database_dump.sql&quot;</pre>
<p>Husk at det ikke skal være mellomrom mellom <em>-p</em> og passordet!</p>
<h4>Én eller flere databaser istedenfor alle</h4>
<p>Erstatt <em>-A</em> i mysqldump-kommandoen med:</p>
<pre class="brush: plain; title: ; notranslate">--database &lt;database&gt;</pre>
<p>eller</p>
<pre class="brush: plain; title: ; notranslate">--databases &lt;database 1&gt; &lt;database 2&gt; ... &lt;database N&gt;</pre>
<h3>Garbage Collector</h3>
<p>Det tar ikke lange tiden før backup-mappen blir full av filer; og strengt talt så trenger du ikke backups som ble tatt for måneder siden. Derfor kan det være lurt å sette opp en søppelsamler, som sletter gamle filer.<br />
Da oppretter du en planlagt oppgave som kjører for eksempel <em>\www\garbage.php</em> hver uke. Innholdet i PHP-filen er å <em>loope</em> gjennom backup-mappen, og sjekke datoen på når filene sist ble modifisert (opprettet). Slik har jeg gjort det:</p>
<pre class="brush: php; title: ; notranslate">
// How long we are keeping each file, since its creation date
// (in seconds)
define ('MAX_FILE_AGE', (60 * 60 * 24 * 7)); // 7 days

$data = glob (__DIR__ . DIRECTORY_SEPARATOR . 'backup' . DIRECTORY_SEPARATOR . '*.zip');

foreach ($data as $file)
{
	if (time() - filectime ($file) &gt; MAX_FILE_AGE)
	{
		unlink ($file);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2010/10/daglig-backup-av-mysql-med-php-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wamp: Sette opp egen hjemmeserver</title>
		<link>http://davidsteinsland.net/2010/04/wamp-sette-opp-egen-hjemmeserver/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wamp-sette-opp-egen-hjemmeserver</link>
		<comments>http://davidsteinsland.net/2010/04/wamp-sette-opp-egen-hjemmeserver/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 20:10:25 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Guider]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[hjemmeserver]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[wamp]]></category>
		<category><![CDATA[wampserver]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=197</guid>
		<description><![CDATA[Tidligere har jeg beskrevet hvordan du kan installere ffmpeg på Wamp, samt hvordan du kan opprette underdomener på Wampserver. Nå tenkte jeg å forklare hvordan du kan sette opp en liten hjemmeserver som du få tilgang til gjennom Internett. Hva er en hjemmeserver? Kort sagt er det et Webhotell du har på din egen PC. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-324" title="Hjemmeserver" src="http://davidsteinsland.net/wp-content/uploads/2010/04/hjemmeserver.png" alt="" width="560" height="164" /></p>
<p>Tidligere har jeg beskrevet hvordan du kan <a href="http://davidsteinsland.net/2010/01/installere-ffmpeg-pa-wampserver-windows/">installere ffmpeg på Wamp</a>, samt hvordan du kan <a href="http://davidsteinsland.net/2010/01/wamp-opprette-underdomener/">opprette underdomener på Wampserver</a>. Nå tenkte jeg å forklare hvordan du kan sette opp en liten hjemmeserver som du få tilgang til gjennom Internett.</p>
<blockquote><p>Hva er en hjemmeserver?</p></blockquote>
<p>Kort sagt er det et Webhotell du har på din egen PC. Du styrer alt av underdomener (forklart i egen artikkel), PHP-, Apache- og MySQL-innstillinger med mer. Veldig fleksibel løsning til utvikling, da du kan invitere andre utenfor nettverket ditt til f. eks. å teste systemet.</p>
<p>For å koble deg på hjemmeserveren, stilles det to krav:</p>
<ul>
<li>WampServer må kjøres, og satt i Online-modus</li>
<li>Port 80 må være åpen, det vil si at du har viderekoblet denne i ruteren din til PC-ens IP-adresse.</li>
</ul>
<p>NB: Du vil ikke bli tildelt et domenenavn (som <em>«minside.com</em>») da dette blir styrt av en <abbr title="Domain Name Server">DNS,</abbr> som ofte koster penger.</p>
<h3>Hva trenger vi?</h3>
<ul>
<li>Installert <a href="http://wampserver.com/">WampServer</a> på en Windows-maskin</li>
<li>Ha kontroll over ruteren din (til <a href="http://www.portforward.com/">å åpne porter</a>)</li>
<li>Ha en <a href="http://www.portforward.com/networking/staticip.htm">statisk IP-adresse</a> på PC-en din</li>
</ul>
<p>Normalt bruker Internett port 80 til å sende og motta informasjon, men noen <abbr title="Internet Service Provider">ISP</abbr>-er har denne porten blokkert slik du ikke kan sette opp en hjemmeserver. Slapp av &#8212; det er mulig å jobbe seg rundt.</p>
<p>Om det skulle vise seg at porten er blokkert, må du konfigurere Apache til å følge med på (eng. «listen») en annen port. Velg gjerne 8080.</p>
<p>Videre i denne guiden tar jeg som utgangspunkt at du kan bruke port 80 uten problem (dette gjelder de aller, aller fleste).</p>
<h3>Let&#8217;s get to it!</h3>
<p>I mitt internnettverk har PC-en min (som serveren er installert på) en fast IP-adresse, 192.168.0.197. Ruteren min er en <a href="http://homesupport.cisco.com/en-us/wireless/lbc/WRT54GL">Linksys WRT54GL</a> (som jeg for øvrig anbefaler på det sterkeste). Jeg tar ikke opp emnet om å videreføre porter i denne guide, da alle har hver sin ruter og oppsettet varierer derfor. Men ved å følge <a href="http://portforward.com/english/routers/port_forwarding/Linksys/WRT54GL/HTTP.htm">Port Forward</a> sin enkle guide, blir det en lek å åpne porten. Sørg bare for at PC-en din er stilt inn med en statisk IP!</p>
<p>Når du har sørget for at porten din er åpen, vel &#8212; da er du i bunn og grunn ferdig. Om du er i tvil om du har åpnet porten skikkelig, så kan du ta deg en tur innom <a href="http://canyouseeme.org">CanYouSeeMe</a> og skriver inn 80 som portnummer. Du er nødt til å ha Wamp kjørende for at den skal klare å sjekke det. Om du får opp en feilmelding, er det fordi:</p>
<ul>
<li>Du har gjort en feil da du åpnet porten din. Har du skrevet inn riktig IP-adresse, og haket av for &laquo;Enable&raquo; ?</li>
<li>ISP-en (Internett-tilbyderen) din blokkerer port 80, og du må derfor <a href="http://www.wampserver.com/phorum/read.php?2,13744">velge en annen port</a></li>
</ul>
<p><strong>Jeg vil råde deg til å passordbeskytte både <a href="http://stackoverflow.com/questions/498343/putting-a-password-to-a-user-in-phpmyadmin-in-wamp">phpMyAdmin</a> og <var>index.php</var> i <var>www</var>-mappen</strong>. På denne måten har du kontroll over at ingen uvedkommende skal ødelegge prosjektene dine.</p>
<p>For å sjekke om du virkelig kan koble deg til serveren din, går du innom <a href="http://whatismyip.org">WhatIsMyIP</a> og finner ut hvilken IP-adresse du har på Internett. Kopier denne inn i adressefeltet i nettleseren din, og se resultatet!</p>
<p>IP-en peker egentlig til ruteren din (det ytterste elementet i nettverket ditt), men ruteren vil registrere at du kommer fra Internett (port 80), og retter denne forespørselen videre til en PC på lokalnettet. Dette gjelder selvsagt kun dersom du har konfigurert ruteren din slik jeg har beskrevet.</p>
<p>Jeg kan skissere prosessen slik:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-319" title="Nettverkskart" src="http://davidsteinsland.net/wp-content/uploads/2010/01/network_map.png" alt="" width="560" height="165" /></p>
<p>Om du føler det blir vanskelig å huske IP-adressen din hver gang du skal innom serveren din, kan du alltids registrere deg hos en <a href="http://www.google.no/search?client=opera&amp;rls=nb&amp;q=free+DNS&amp;sourceid=opera&amp;ie=utf-8&amp;oe=utf-8">gratis DNS-tilbyder</a>.</p>
<p>Håper du fikk nytte av denne guiden! Kom gjerne med tilbakemeldinger i kommentarfeltet.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2010/04/wamp-sette-opp-egen-hjemmeserver/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Knust skjermen på mobilen, uten å ha kontaktene på SIM-kortet?</title>
		<link>http://davidsteinsland.net/2010/04/knust-skjermen-pa-mobilen-uten-a-ha-kontaktene-pa-sim-kortet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=knust-skjermen-pa-mobilen-uten-a-ha-kontaktene-pa-sim-kortet</link>
		<comments>http://davidsteinsland.net/2010/04/knust-skjermen-pa-mobilen-uten-a-ha-kontaktene-pa-sim-kortet/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 23:25:18 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Guider]]></category>
		<category><![CDATA[kontakter]]></category>
		<category><![CDATA[mobil]]></category>
		<category><![CDATA[myphoneexplorer]]></category>
		<category><![CDATA[sim]]></category>
		<category><![CDATA[skjerm]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=303</guid>
		<description><![CDATA[Det er nå en god måned siden jeg knuste skjermen på mobilen min. Da jeg nylig orket å anskaffe meg en ny en, slår det meg: oisann, jeg har jo alle kontaktene mine på den gamle telefonen! Jeg prøvde da først og hente ut kontaktene via Sony Ericssons PC Suite-program, ved å koble den gamle [...]]]></description>
			<content:encoded><![CDATA[<p>Det er nå en god måned siden jeg knuste skjermen på mobilen min. Da jeg nylig orket å anskaffe meg en ny en, slår det meg: oisann, jeg har jo alle kontaktene mine på den gamle telefonen!</p>
<p style="text-align: center;"><a href="http://davidsteinsland.net/wp-content/uploads/2010/04/2240106783_ff21a43995.jpg"><img class="aligncenter size-full wp-image-304" title="Knust skjerm" src="http://davidsteinsland.net/wp-content/uploads/2010/04/2240106783_ff21a43995.jpg" alt="" width="500" height="375" /></a></p>
<p>Jeg prøvde da først og hente ut kontaktene via Sony Ericssons <a href="http://www.sonyericsson.com/cws/support/softwaredownloads/detailed/pcsuite?lc=no&amp;cc=no">PC Suite-program</a>, ved å koble den gamle mobilen til PC-en. Programmet hentet riktignok kontaktene mine ut fra telefonen, men nektet å legge de innpå SIM-kortet mitt.</p>
<p>Siden den nye telefonen ikke støttet PC-suite, kunne jeg heller ikke synkronisere denne telefonen med kontaktlisten jeg hentet ut tidligere.</p>
<p><strong>Hva skulle jeg gjøre? </strong></p>
<p>Det første som slo meg var: jeg bør Google etter skjermbilder fra gamle-telefonen, slik at jeg kan prøve å klikke meg innpå den i blinde og få kopiert kontaktene til SIM-kortet. Dette fungerte svært dårlig. Det var ingenting å finne!</p>
<p>Men jeg skal ikke si Google-søket var forgjeves. <strong>J</strong><strong>eg fant nemlig frem til et program som heter <a href="http://www.fjsoft.at/en/highlight.php">MyPhoneExplorer</a></strong>, hvor det var mulighet for å hente kontakter ut fra SIM-kort. Planen min var å synkronisere telefonlisten (som jeg hadde hentet ut tidligere) med SIM-listen. Dette gikk heller ikke så bra, da du ikke kunne &laquo;flytte&raquo; kontakter imellom de ulike lagringsplassene.</p>
<p><strong> Rett før jeg gav opp, fant jeg en knapp i programmet som het Load Screenshot. </strong>Med denne knappen kunne jeg altså ta skjermdump av telefonskjermen (selv om skjermen var knust). Ved å gjøre dette fikk jeg da opp alle de ulike menyvalgene, og kunne klikke meg frem med programmets eget telefontastatur. Genialt!</p>
<p style="text-align: center;"><a href="http://davidsteinsland.net/wp-content/uploads/2010/04/myphoneexplorer.png"><img class="aligncenter size-large wp-image-305" title="MyPhoneExplorer" src="http://davidsteinsland.net/wp-content/uploads/2010/04/myphoneexplorer-575x401.png" alt="" width="575" height="401" /></a></p>
<p>Det tok meg ikke lang tid før jeg fikk opp kontaktlisten med valget: &laquo;Kopier til SIM&raquo;. For hvert menyvalg jeg tok, måtte jeg trykke på &laquo;Load Screenshot&raquo;-knappen for å oppdatere skjermbildet. Etter 2 minutter, så var alt fiks-ferdig.</p>
<p>Dette programmet vil jeg således anbefale til absolutt alle (med en Sony Ericsson-telefon) som er i &#8212; eller kommer til å &#8212; være i samme situasjon som meg.</p>
<p>Programmet kan du forresten <a href="http://www.fjsoft.at/files/MyPhoneExplorer_Setup_v1.7.5.exe">laste ned gratis</a> på <a href="http://www.fjsoft.at/en">produsentens egne nettsider</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2010/04/knust-skjermen-pa-mobilen-uten-a-ha-kontaktene-pa-sim-kortet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>10 tips: Hvordan oppdage svindel på e-post</title>
		<link>http://davidsteinsland.net/2010/03/10-tips-hvordan-oppdage-svindel-pa-e-post/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=10-tips-hvordan-oppdage-svindel-pa-e-post</link>
		<comments>http://davidsteinsland.net/2010/03/10-tips-hvordan-oppdage-svindel-pa-e-post/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 19:50:12 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Generelt]]></category>
		<category><![CDATA[Guider]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[nigeriabrev]]></category>
		<category><![CDATA[svindel]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=291</guid>
		<description><![CDATA[I de siste tidene har det vært veldig mye oppstyr om sindel på Internett, spesielt konsentrert i e-postform. Svindel har så klart eksistert i alle år &#8212; helt siden det fantes en valuta &#8212; og folk har alltid latt seg lure, en eller en annen gang. I fjor var det en rekke saker om en [...]]]></description>
			<content:encoded><![CDATA[<p>I de siste tidene har det vært veldig mye oppstyr om sindel på Internett, spesielt konsentrert i e-postform. Svindel har så klart eksistert i alle år &#8212; helt siden det fantes en valuta &#8212; og folk har alltid latt seg lure, en eller en annen gang.</p>
<p>I fjor var det en rekke saker om en «ny type» svindelforsøk, nemlig <a href="http://no.wikipedia.org/wiki/Nigeriabrev">Nigeriabrev</a>. Her blir offeret tilbudt fantastiske tilbud, nesten uimotståelig, hvor personen må «hjelpe» svindleren med saksomkostninger for å få en familiearv. Offeret blir da fortalt om å føre over en viss sum, mot at han får tilbake en viss prosentdel av arven.</p>
<p>Det finnes selvsagt mange varianter, hvor for eksempel offeret har funnet flere millioner euro i lotteri og må «bare» oppgi kredittopplysninger for å få pengene. Uansett hvordan en vrir og vender på det, må offeret som regel gi i fra seg sensitiv informasjon eller forhåndsbetale store summer.</p>
<p>Det heter forresten Nigeriabrev fordi svindleren utgir seg for å være en nigeriansk statsmann (gjelder også afrikanske land, generelt).</p>
<p>I det siste har det derimot blitt veldig vanlig å motta e-poster skrevet på gebrokken norsk, med tydelige trekk på at svindleren har brukt et program for å oversette originalteksten til norsk (for eksempel <a href="http://translate.google.com">Google Translate</a>).</p>
<p>Selv har jeg lagt ut annonser på <a href="http://finn.no">Finn.no</a>, og har i den sammenheng ofte mottatt svindlerbrev på e-post.</p>
<p>Advarsel nummer én er da: <strong>se etter om teksten er norsk og forståelig</strong>. Siden du retter deg mot et norsk publikum (Finn.no), skal du da være veldig skeptisk når en person i Afrika (<span style="text-decoration: line-through;">som kan skrive norsk</span>) ønsker å kjøpe varen din.</p>
<p>Jeg mottok faktisk en e-post i går, hvor jeg ble stilt spørsmålet:<br />
«Kan jeg vite det endelige beløpet jeg kan ha denne?»</p>
<p>Det første jeg merket meg var så klart den dårlige norsken, og skjønte det var høy sannsynelighet for at senderen var en svindler. Jeg svarte derimot e-posten (i tilfelle personen er en dyslektiker) hvor jeg forklarte konsist hva varen min kostet.</p>
<p>Personen svarte meg da med følgende e-post:</p>
<blockquote><p>Hei, jeg er OK med en pris for så vennligst bestille varen for meg.<br />
jeg er fra England, jeg vil gjerne kjøpe elementet som en gave til min<br />
venn som jobber i Amerika og britiske tobakk selskap i Vest-Afrika.<br />
jeg har sjekket på Posten nettsiden for kostnaden for forsendelsen for<br />
element med 3 kilo og er 800 kroner så jeg betaler deg 4100 kroner for<br />
varen + forsendelse. Hope elementet er i god stand? Jeg kan betale via<br />
bankoverføring eller postanvisning så hvis du vil at min å gå til<br />
banken min, slik at de overføre pengene direkte til kontoen din, må du<br />
gi meg et kontonummer og navn, men hvis du vil at pengene skal sendt<br />
med postanvisning, må du gi meg navn og adresse hvor postanvisning<br />
selskapet kan levere de pengene ok. jeg vil vente å høre fra deg<br />
snart.</p></blockquote>
<p>Jeg la da umiddelbart merke til følgende:</p>
<ol>
<li>Personen sier direkte han ikke er norsk (hvordan kunne han da forstå seg på den norske annonsen?)</li>
<li>Han smører på seg at «vennen» hans er amerikansk og jobber for britiske tobakkselskaper i Vest-Afrika (er ikke det merkelig når en britisk person skal kjøpe en bruktvare fra Norge til sin venn i USA?)</li>
<li>Blanding av et uforståelig norskspråk + engelske ord</li>
</ol>
<p>For å finne ut litt mer, svarte jeg personen hvor jeg oppgav et falskt/ugyldig kontonummer. Det tok ikke lange tiden før jeg fikk følgende e-post i svar:</p>
<blockquote><p>Hallo, har 4100 kroner er overført til kontoen din. Kontroller at du<br />
pakke varen godt så det vil ikke bli skadet på veien ok. her er min<br />
venn navn og adresse for forsendelsen.</p>
<p>ANYANWU COLLINS<br />
32 OSENI STREET<br />
LAWANSON SURULERE<br />
LAGOS STATE<br />
23401<br />
Nigeria.</p>
<p>Det er hyggelig å gjøre dette med deg. ha en fin dag og gi meg beskjed<br />
når elementet er på vei til min venn ok.</p></blockquote>
<p>Ting jeg legger merke til her er:</p>
<ol>
<li>Pengene ble overført (til en konto som ikke eksisterer)</li>
<li>Landet jeg skal sende varen til, er <em>utrolig</em> nok Nigera.</li>
</ol>
<p>Et par timer senere, mottar jeg det som skal være en bekreftelse på overføringen. E-posten er fra ingen ringere enn den britiske banken <a href="http://www.bank.barclays.co.uk/">Barclays Bank</a> (med e-postadressen <code>transfer.update@accountant.com</code>)! Dette må da være for godt til å være sant!</p>
<p>I e-posten kommer det frem at pengene er satt på vent, og skal bli overført til meg når jeg har sendt fraktbevis tilbake til Barclays (når ble en bank en slik tredjepart egentlig?).</p>
<p>Det står også kort om Barclays, at de er en stor og flott bank med et godt rykte. Dette er jo forsåvidt sant, da Barclays er en stor bank i England som for eksempel sponser Premier League.</p>
<p>På dette tidspunkt er jeg godt over skepsisen, og vet at jeg har med en svindler å gjøre.</p>
<p>Som jeg nevnte i sted, sa jeg at Barclays er hovedsponsor for Premier League. Dette er selvsagt noe svindlerene også har fått med seg, og har lagt inn flere bilder i e-posten som henviser til dette (Preamier League-logo, etc). Typiske trekk som peker til at svindleren prøver å overbevise deg om at han er til å stole på.</p>
<p>I e-posten følger det også med noen bruksvilkår, som forklarer kort om hvordan prosessen skal gå føre seg. Dette er i normale tilfeller en juridisk tekst, og inneholder således ingen referanse verken til mitt namn eller svindlerens. I disse heller unormale bruksvilkårene er blant annet svindlerens navn nevnt flere ganger.</p>
<p>E-posten er også generelt stappet med ulike bilder og logoer. De har til og med inkludert en digital signatur, som visstnok skal være bankens representant.</p>
<p>Hele e-posten i sin klartekst, har jeg lagt ut her:<br />
<a href="http://davidsteinsland.net/svindel/epost.htm">http://davidsteinsland.net/svindel/epost.htm</a></p>
<p>Anbefaler deg å gå gjennom e-posten, før du leser videre.</p>
<p>Ting jeg merker meg i den endelige e-posten:</p>
<ol>
<li>E-posten er fra Barclays Bank, mens e-postadressen er fra accountant.com
<ul>
<li>Et kjapt Googlesøk etter &laquo;<a href="http://www.google.no/search?client=opera&amp;rls=nb&amp;q=%22accountant.com%22&amp;sourceid=opera&amp;ie=utf-8&amp;oe=utf-8">accountant.com</a>&raquo; viser til mange nettsider som advarer om svindel.</li>
</ul>
</li>
<li>Mange ulike bilder, som er totalt irrelevant for e-postens innhold.
<ul>
<li>Dersom jeg høyreklikker på bildene og sjekker hvor de er hentet fra, finner jeg fort ut at bildene har sitt opphav på minst fem forskjellige nettsider (blant annet Barclays&#8217; nettsider, Citibank, Google Images).</li>
</ul>
</li>
<li>Jeg er nødt til å oppgi ekstraopplysninger til banken</li>
<li>Selve utseende på mailen skriker: «dette er ikke en formell e-post fra Barclays!!!»</li>
<li>Hvorfor er jeg egentlig nødt til å bekrefte sendingen for banken? Ingen banker jeg vet om tilbyr slike tjenester for kundene sine</li>
<li>Fotnoten «*APY equals annual percentage yield. Rates are guaranteed to november 30, 2012.» er ikke relevant for e-posten, og gir inntrykk av at den er kopiert i fra noe som gjelder renter: altså ikke relevant for denne e-posten</li>
</ol>
<p>Jeg svarer da pent (nei, egentlig ikke) på E-posten, og ber personen fint om å dra til et visst sted.</p>
<h3>Oppsummering</h3>
<p>I dette tilfellet, mener jeg, at det kom klart frem tidlig i konversasjonen at personen er en svindler. Jeg er fullt klar over at det i andre tilfeller kan virke mye mer troverdig, derfor har jeg laget en oppsummering av min erfaring (og en generell huskeliste):</p>
<ol>
<li>Vær tvilsom til utenlandske henvendelser (dersom du retter deg mot en norsk publikum)</li>
<li>Se etter om teksten kunne faktisk vært skrevet av en nordmann, og ikke en oversettingsmotor</li>
<li><strong>Aldri, aldri oppgi sensitiv informasjon som kredittopplysninger osv</strong>.</li>
<li>Banker (eller andre offentlige bedrifter) vil aldri spørre deg etter slik informasjon, spesielt ikke gjennom e-post</li>
<li>Se etter typiske trekk i e-posten som kan peke mot at den er masseprodusert (bilder, tekst, linker osv)</li>
<li>Foreta et Googlesøk etter avsenderens navn og e-postadresse. Det kan hende du ikke finner noe interessant, men det kan redde deg fra å bli svindlet</li>
<li>Krev forhåndsbetaling. Ikke stol på penger som er satt på «vent» gjennom tjenester som f. eks Paypal (svindleren kan angre kjøpet, og få pengene sine tilbake &#8212; etter at du allerede har sendt varen)</li>
<li>Det skader ikke å ringe personen, istedenfor og ikke bare bruke e-post som eneste kommunikasjonsmiddel</li>
<li>Er ting for godt til å være sant, er det som regel det</li>
<li><strong>Vær kritisk</strong></li>
</ol>
<p>Jeg har selv blitt svindlet før, da jeg skulle utføre et arbeid for en norsk nettside. Hadde jeg følgt listen ovenfor, hadde jeg funnet ut hvem personen egentlig utgav seg for å være!</p>
<p>Har du tips, historier eller erfaringer å dele? Skriv dem gjerne i kommentarfeltet.</p>
<h3>Annet lesestoff</h3>
<ul>
<li><a href="http://no.wikipedia.org/wiki/Nigeriabrev">http://no.wikipedia.org/wiki/Nigeriabrev</a></li>
<li><a href="http://e24.no/naeringsliv/article2023615.ece">http://e24.no/naeringsliv/article2023615.ece</a></li>
<li><a href="http://www.finn.no/finn/article/finn_advarsel_1?template=templates/static_template.jsp">http://www.finn.no/finn/article/finn_advarsel_1?template=templates/static_template.jsp</a></li>
<li><a href="http://www.forbrukereuropa.no/temaer/svindel">http://www.forbrukereuropa.no/temaer/svindel</a></li>
<li><a href="http://www.dagbladet.no/2010/03/26/nyheter/nettsvindel/data_og_teknologi/internett/10989952/">http://www.dagbladet.no/2010/03/26/nyheter/nettsvindel/data_og_teknologi/internett/10989952/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2010/03/10-tips-hvordan-oppdage-svindel-pa-e-post/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Database med Norges postnummer, poststeder, fylker og kommuner (med koordinater)</title>
		<link>http://davidsteinsland.net/2010/03/komplett-databasesett-over-norges-postnummer-med-koordinater/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=komplett-databasesett-over-norges-postnummer-med-koordinater</link>
		<comments>http://davidsteinsland.net/2010/03/komplett-databasesett-over-norges-postnummer-med-koordinater/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 21:49:51 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Åpen kildekode]]></category>
		<category><![CDATA[Guider]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[adresser]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[fylker]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[kommuner]]></category>
		<category><![CDATA[koordinater]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[postnummer]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=259</guid>
		<description><![CDATA[Behøver du en database med alle Norges postnummer? Bruker du et kart på nettsiden din? Har du behov for å sjekke hvilket sted postnummeret peker mot? Jeg har samlet alle dataene, i tillegg til koordinater til hvert eneste postnummer!]]></description>
			<content:encoded><![CDATA[<p>Her kommer det er oversikt over absolutt alle postnummer i Norge med tilhørende fylke, kommune og poststed. Hvert postnummer har også en lengde- og breddegrad tilknyttet seg. På denne måten kan du koble opp postnummeret til f.eks Google Maps.</p>
<p>Databasesettet er generert med hjelp av <a href="http://www.erikbolstad.no/geo/noreg/postnummer/">Postnummer-dugnaden</a> <a href="http://yr.no">Yr.no</a> arrangerte sommeren 2009.</p>
<p>Ved hjelp av lengde- og breddegradene kan du jo også regne deg frem til avstanden mellom to steder, eller finne nærmeste postkontor til en bruker.</p>
<p>For å få lett oversikt over alle postkoder, kjører du følgende spørring:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT
 postnummer, fylkeNavn, kommuneNavn, poststedNavn, kategoriNavn, lat, lon
FROM `postnumre`
INNER JOIN poststed
USING(poststedID)
INNER JOIN kommuner
USING(kommuneID)
INNER JOIN fylker
USING(fylkeID)
INNER JOIN kategorier
USING(kategoriID)
ORDER BY
 postnummer ASC, fylkeNavn ASC, kommuneNavn ASC, poststedNavn ASC</pre>
<p>Med enhver sak kan det forekomme feil, så om dere kommer over noe som skulle vise seg til å være en bug: si i fra.<strong></strong></p>
<h3>Oppdateringer</h3>
<p><strong>Versjon 1.4<br />
</strong>- Har innført alle endringer gjort av posten pr. 1. februar 2012<br />
- Det er nye navn på tabeller og kolonner (norsk)<br />
- Koordinater er synkronisert med <a href="http://www.erikbolstad.no/geo/noreg/postnummer/">listene til Erik Bolstad</a></p>
<p><strong>Versjon 1.3</strong><br />
- Tabellene er gjort om til InnoDb med nødvendige indekser og fremmednøkler<br />
- Jan Mayen og Svalbard er nå plassert inn i to fylker (med samme navn), i henhold til ISO 3166-2:NO. På grunn av at områdene ikke har noe de facto fylke, måtte det gjøres slik.<br />
- Enkelte justeringer på koordinater<br />
- Kommunesentre for hver kommune er lagt inn</p>
<p><strong>Versjon 1.2</strong><br />
- Jan Mayen og Svalbard har klart å falle ut fra oversikten. Det er pga. områdene ikke er del av noen fylker, og det har dermed blitt opprettet et &laquo;Svalbard og Jan Mayen&raquo;-fylke.</p>
<h3>Last ned (versjon 1.4)</h3>
<p><img src="http://davidsteinsland.net/wp-content/themes/eikeland/images/download_icon.png" alt="Last ned" class="icon" /> <a href="http://davidsteinsland.net/filer/norske_postnummer_20120209.zip">Norske postnummer</a> (2183 nedlastninger) , lisensiert under <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2010/03/komplett-databasesett-over-norges-postnummer-med-koordinater/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>LaTeX på nett: matematiske formler til bilder</title>
		<link>http://davidsteinsland.net/2010/03/latex-pa-nett-matematiske-formler-til-bilder/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=latex-pa-nett-matematiske-formler-til-bilder</link>
		<comments>http://davidsteinsland.net/2010/03/latex-pa-nett-matematiske-formler-til-bilder/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 17:58:54 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Åpen kildekode]]></category>
		<category><![CDATA[Guider]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=240</guid>
		<description><![CDATA[Innenfor realfagene matematikk, fysikk og kjemi skriver jeg alt av rapporter og øvinger i LaTeX, som er et typesettingssystem for dokumentproduksjon. Det er spesielt egnet for matematisk litteratur, og blir definert av den engelske Wikipedia slik: A document-typesetting system derived from TeX and used mainly to create scientific and mathematical literature. LaTeX er originalt skrevet [...]]]></description>
			<content:encoded><![CDATA[<p>Innenfor realfagene matematikk, fysikk og kjemi skriver jeg alt av rapporter og øvinger i <a href="http://no.wikipedia.org/wiki/LaTeX">LaTeX</a>, som er et typesettingssystem for dokumentproduksjon. Det er spesielt egnet for matematisk litteratur, og blir definert av den engelske Wikipedia slik:</p>
<blockquote><p>A document-typesetting system derived from TeX and used mainly to create scientific and mathematical literature.</p></blockquote>
<p>LaTeX er originalt skrevet for Linux, men er per i dag tilgjengelig på alle plattformer gjennom ulike distribusjoner. Personlig bruker jeg distribusjonen <a href="http://miktex.org">MikTeX</a> med versjonsnummer 2.8. Redigeringsprogrammet jeg bruker heter <a href="http://www.latexeditor.org/">LaTeX Editor</a> &#8212; forkortet LEd.</p>
<p style="text-align: center;"><a href="http://davidsteinsland.net/wp-content/uploads/2010/03/led.png"><img class="size-large wp-image-241  aligncenter" title="LaTeX Editor" src="http://davidsteinsland.net/wp-content/uploads/2010/03/led-e1268686172110.png" alt="" width="575" height="348" /></a></p>
<p>Det er tusenvis av fordeler for å bruke LaTeX kontra såkalte <em>What You See Is What You Get</em>-program (Microsoft Office, OpenOffice, Lotus Symphony etc.). Den største er at i LaTeX så er det du som har kontrollen: What You See Is What You Mean.  Ting blir faktisk slik du sier det skal være!</p>
<p>Du har vel sett noen matematiske formler på Wikipedia? Der anvender de nemlig  LaTeX, og ser omtrent slik ut:</p>
<p><img class="alignnone" title="ABC-formel" src="http://upload.wikimedia.org/math/3/e/a/3ea647783b5121989cd87ca3bb558916.png" alt="" width="179" height="44" /></p>
<p>Det er nemlig dette jeg har tenkt å ta tak i, i denne posten: nemlig forklare deg hvordan du også kan få slike deilige formler på din nettside!</p>
<h2>Hva må gjøres klart?</h2>
<p>For å skrive LaTeX på PC-en din, og for at alt skal gå optimalt, krever det en rekke program som f.eks MikTeX (LaTeX-distro), LEd (redigering) og GhostScript / Ghost View (postscript-støtte). For å skrive LaTeX på nett krever jeg derimot at du kun har MikTeX installert!</p>
<p><em>PS: Jeg tar som utgangspunkt at webserveren din er din egen PC. Veldig få webhotell-leverandører som installerer LaTeX&#8230;<img class="alignright" title="MikTeX Installasjon" src="http://davidsteinsland.net/wp-content/uploads/2010/03/miktex-install-300x178.png" alt="" width="300" height="178" /></em></p>
<p><strong>Last så ned siste versjon av <a href="http://miktex.org/">MikTeX</a> og installer denne på PC-en din</strong>. For din egen del er det nok lurest å velge &laquo;Basic Installer&raquo;. Her vil kun de mest nødvendige pakkene bli installert (pakker kan oversettes som plugins). Om du ønsker å installere alle pakker tilgjengelig, velger du &laquo;Complete MikTeX System&raquo;.</p>
<h2>La oss begynne!</h2>
<p>Det aller første du må gjøre rede for er følgende:</p>
<ol>
<li>Hvor installerte du MikTeX?</li>
</ol>
<p>La oss si du installerte programmet i <code>C:\Programfiler\MikTeX 2.8\</code></p>
<p>Da må du leite frem til <code>miktex\bin\latex.exe</code> og <code>\miktex\bin\dvipng.exe</code>.</p>
<p>Dersom disse programmene ikke er tilstede, vil du ikke være i stand til å gjennomføre denne guiden: prøv da å re-installere MikTeX.</p>
<p>Har du lokalisert programmene? Flott &#8212; da går vi videre.</p>
<p>Finn frem til root-mappen på serveren din (bruker du WampServer er dette <code>C:\wamp\www\</code>). Opprett en mappe som du kaller for &laquo;latex&raquo;.<br />
Inni den nye mappen, oppretter du så følgende mapper:</p>
<ul>
<li><code>images</code></li>
<li><code>tmp</code></li>
</ul>
<p>«Images» er mappen hvor de endelige formlene kommer til å bli plassert, og «tmp» er mappen hvor produksjonsfilene våre ligger. Når du kompilerer et dokument i LaTeX vil det bli opprettet totalt 4 filer per prosjekt. Disse er respektivt .tex, .aux, .log og .dvi. Tex-filen inneholder selve dokumentet vårt, og <a href="http://en.wikipedia.org/wiki/Device_independent_file_format">DVI-filen</a> er selve outputen etter kompilering. Disse to er essensielle.</p>
<h2>PHP-klassen</h2>
<p>Jeg har allerede skrevet klassen ferdig, som du skal få. Før jeg overrekker den, vil jeg ta tiden til å forklare litt hva den gjør.</p>
<p>Det er to ting du umiddelbart må få i stand etter at du har lastet ned klassen:</p>
<p>- Øverst i klassen er det deklarert to variabler: <code>_latex_path</code> og <code>_dvipng_path</code>. Disse må du endre til hva du fant ut i punkt #1 (under «La oss begynne!»). Det er veldig viktig at du følger denne regelen når du endrer sti: <strong>Variabelen må være omgitt av to enkle apostrofer, og selve stien til programmene må være omgitt av gåseøyne.</strong></p>
<p>Dette er fordi at dersom det er mellomrom en plass i stien (i <code>C:\Program Files\MikTeX\</code> er det mellomrom i &laquo;Program Files&raquo;) må teksten være omgitt av gåseøyne, som forteller at teksten skal tolkes som én sti, og ikke to.</p>
<p>Dersom stien til latex.exe på PC-en din er følgende: <code>C:\Program Files\MikTeX 2.8\miktex\bin\latex.exe</code> skal <code>_latex_path</code> være formet slik:</p>
<pre class="brush: php; title: ; notranslate"> $_latex_path = '&quot;C:\Program Files\MikTeX 2.8\miktex\bin\latex.exe&quot;';</pre>
<p>Utover dette, skal klassen fungere ut-av-boksen (dersom du har opprettet de korrekte mappene).</p>
<h2>Laste klassen ned</h2>
<p><a href="http://davidsteinsland.net/wp-content/uploads/2010/03/latex.zip">PHP5 LaTeX Renderer</a>, lisensiert under <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons</a>.</p>
<h2>Hvordan fungerer klassen?</h2>
<p>I seg selv er den ganske liten, og rett frem. Det er en innebygget cache-funksjon som lagrer bildene ved hjelp av:</p>
<ul>
<li>den matematiske formelen</li>
<li>tekst-størrelsen</li>
</ul>
<p>Om du vil endre tekst-størrelse, gjør du slik:</p>
<pre class="brush: php; title: ; notranslate"><img src='http://s0.wp.com/latex.php?latex=%3D+new+LaTeX%28%29%3B++++&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='= new LaTeX();    ' title='= new LaTeX();    ' class='latex' />latex-&gt;set ('font_size', 16); // 16 is the font size, measured in &quot;points&quot;</pre>
<p>Dersom du vil endre artikkel-klassen for dokumentet, gjør du slik:</p>
<pre class="brush: php; title: ; notranslate">$latex-&gt;set ('article_class', 'article'); </pre>
<p>Ved default er det «scrartcl» som fungerer som dokumentets klasse, men dette er en tilleggspakke som må installeres. Derfor kan du anvende «article» som kommer ferdig-installert via MikTeX.</p>
<p>&#8230; og slik setter du innholdet:</p>
<pre class="brush: php; title: ; notranslate">$latex-&gt;set ('tex_content', '\frac{1}{2}');</pre>
<p>For å rendere dokumentet, og vise den endelige formelen som et bilde, gjør du slik:</p>
<pre class="brush: php; title: ; notranslate">$data = $latex-&gt;render ();
echo '&lt;img src=&quot;' . $data['img'] . '&quot; alt=&quot;' . $data['tex'] . '&quot; /&gt;';</pre>
<p>Klassen støtter naturligvis linking, og kan brukes slik:</p>
<pre class="brush: php; title: ; notranslate"><img src='http://s0.wp.com/latex.php?latex=%3D+new+LaTeX%28%29%3B++++&#038;bg=ffffff&#038;fg=000&#038;s=0' alt='= new LaTeX();    ' title='= new LaTeX();    ' class='latex' />data = $latex-&gt;set ('font_size', 16)-&gt;set ('tex_content', 'ax^2 + bx + c = 0')-&gt;render ();</pre>
<p>Dersom du ønsker å skrive ABC-formelen (som jeg viste lengre oppe i artikkelen), skriver du den slik:</p>
<pre class="brush: plain; title: ; notranslate"> x = \frac{ -b \pm \sqrt{b^2 - 4ac}}{2a}</pre>
<h3>Flyteskjema</h3>
<p>For de av dere som er interessert i flowcharts (meg inkludert): slik er fremgangsmåten i klassen:</p>
<p style="text-align: center;"><a href="http://davidsteinsland.net/wp-content/uploads/2010/03/flowchart.png"><img class="aligncenter size-full wp-image-284" title="Flyteskjema - application flowchart" src="http://davidsteinsland.net/wp-content/uploads/2010/03/flowchart-e1268685107832.png" alt="" width="575" height="378" /></a></p>
<h2>Det var det!</h2>
<p>Nå er du i bunn og grunn ferdig, og kan begynne å eksperimentere selv. Det rådes selvsagt at du har noen kunnskaper innen LaTeXs måter å skrive ting på. Om du vil lese deg opp på emnet, er det mange gode ressurser for det:</p>
<ul>
<li><a href="http://www.ctan.org/tex-archive/info/lshort/english/lshort.pdf">The Not So Short Introduction to LaTeX</a></li>
<li>Wikipedia (<a href="http://no.wikipedia.org/wiki/LaTeX">norsk</a> / <a href="http://en.wikipedia.org/wiki/LaTeX">engelsk</a>)</li>
<li>LaTeX guide på <a href="http://www.eksamensoppgaver.org/guider/latex-guide/10/">Eksamensoppgaver.org</a></li>
</ul>
<p>Om det er noen spørsmål om hjelp, tips til forbedringer etc, kan dette tas opp i kommentarfeltet.</p>
<p>PS: LaTeX uttales Lah-tek. Vil ikke høre om noen som sier det rett ut..</p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2010/03/latex-pa-nett-matematiske-formler-til-bilder/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

