<?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; windows</title>
	<atom:link href="http://davidsteinsland.net/emneord/windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://davidsteinsland.net</link>
	<description>Personlig blogg om programmering og andre uinteressante emner</description>
	<lastBuildDate>Sun, 05 Feb 2012 15:26:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Kompilere Java-prosjekter med Apache Ant</title>
		<link>http://davidsteinsland.net/2012/02/kompilere-java-prosjekter-med-apache-ant/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kompilere-java-prosjekter-med-apache-ant</link>
		<comments>http://davidsteinsland.net/2012/02/kompilere-java-prosjekter-med-apache-ant/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 14:52:54 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[apache ant]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[notepad++]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://davidsteinsland.net/?p=678</guid>
		<description><![CDATA[&#160; Når en jobber med store Java-prosjekter som inneholder mange klasse- og kildefiler, kan det være et mareritt å holde styr på alle disse. For ikke å snakke om å sørge for å kompilere alle, én etter én. Apache Ant ble laget for akkurat dette formålet, og har mange likhetstrekk med Make (for de som [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Når en jobber med store Java-prosjekter som inneholder mange klasse- og kildefiler, kan det være et mareritt å holde styr på alle disse. For ikke å snakke om å sørge for å kompilere alle, én etter én. <a href="http://ant.apache.org/">Apache Ant</a> ble laget for akkurat dette formålet, og har mange likhetstrekk med <em>Make</em> (for de som er kjent med Unix). Ant er et <em>automatisert kompileringsverktøy</em> som kan brukes for å kompilere hele Java-prosjekter med én kommando.</p>
<p>Programmet tar utgangspunkt i en konfigurasjonsfil som er formatert i XML, og styrer hvilke filer som kan kompileres og hvor klassefilene skal ligge. Du kan også velge om du skal opprette JAR-filer for hele prosjektet.</p>
<h3>Installasjon</h3>
<p>Gå til <a href="http://ant.apache.org/bindownload.cgi">nedlastningssiden for Apache Ant</a> og last ned siste versjon. Pakk ut mappen til for eksempel <var>C:\ant\</var>.</p>
<p>Sørg deretter for at du har en miljøvariabel kalt <var>JAVA_HOME</var> med verdien tilsvarende mappen som inneholder JDK. For eksempel slik:<br />
<var>c:\Progra~1\Java\jdk1.7.0\</var></p>
<p>Du må også huske å inkludere <var>C:\ant\bin\</var> i miljøvariabelen <var>PATH</var>.</p>
<h3>Forberedelse</h3>
<p>Opprett en helt enkelt Java-klasse med en <em>main</em>-metode, som du lagrer i en mappe kalt <var>src</var>.</p>
<p>Deretter oppretter du en XML-fil som du kaller <var>build.xml</var> med følgende innhold:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;project name=&quot;MySQL&quot; default=&quot;compile&quot;&gt;

	&lt;!-- Configuration --&gt;
	&lt;property name=&quot;src.dir&quot;     value=&quot;src&quot;/&gt;
    &lt;property name=&quot;build.dir&quot;   value=&quot;build&quot;/&gt;
    &lt;property name=&quot;classes.dir&quot; value=&quot;${build.dir}/classes&quot;/&gt;
    &lt;property name=&quot;jar.dir&quot;     value=&quot;${build.dir}/jar&quot;/&gt;
    &lt;property name=&quot;main-class&quot;  value=&quot;Test&quot;/&gt;
	&lt;!-- End Configuration --&gt;

	&lt;target name=&quot;clean&quot;&gt;
        &lt;delete dir=&quot;${build.dir}&quot;/&gt;
    &lt;/target&gt;

   &lt;target name=&quot;compile&quot;&gt;
        &lt;mkdir dir=&quot;${classes.dir}&quot;/&gt;
        &lt;javac srcdir=&quot;${src.dir}&quot; destdir=&quot;${classes.dir}&quot;/&gt;
    &lt;/target&gt;

	&lt;target name=&quot;jar&quot; depends=&quot;compile&quot;&gt;
        &lt;mkdir dir=&quot;${jar.dir}&quot;/&gt;

		&lt;jar destfile=&quot;${jar.dir}/${ant.project.name}.jar&quot; basedir=&quot;${classes.dir}&quot;&gt;
            &lt;manifest&gt;
                &lt;attribute name=&quot;Main-Class&quot; value=&quot;${main-class}&quot;/&gt;
            &lt;/manifest&gt;
        &lt;/jar&gt;
    &lt;/target&gt;

	&lt;target name=&quot;run&quot; depends=&quot;jar&quot;&gt;
		&lt;java jar=&quot;${jar.dir}/${ant.project.name}.jar&quot; fork=&quot;true&quot;/&gt;
    &lt;/target&gt;
&lt;/project&gt;
</pre>
<p>I starten trenger du ikke tenke på mer enn å endre &laquo;TestApp&raquo; til prosjektets navn, samt endre &laquo;main-class&raquo; til den klassen som inneholder main-metoden.</p>
<p>De ulike <em>target</em>-blokkene utgjør kommandoene du kan gjøre med Ant. For eksempel vil vi med denne filen ha følgende kommandoer tilgjengelige:</p>
<pre class="brush: plain; title: ; notranslate">
ant compile
ant jar
ant run
ant clean
</pre>
<p>Dersom du legger merke til linje nummer to, så står det blant annet <var>default=&raquo;compile&raquo;</var>. Dette gjør at dersom vi kjører kommandoen:</p>
<pre class="brush: plain; title: ; notranslate">
ant
</pre>
<p>Så vil den kjøre <em>compile</em>-oppgaven.</p>
<p>Konfigurasjonsfilen skal lagres i prosjektmappen, slik at du ender opp med følgende mappestruktur;</p>
<pre class="brush: plain; title: ; notranslate">
TestApp
+ src/
|	Test.java
+ build.xml
</pre>
<h3>Gjennomføring</h3>
<p>Nå er det lille prosjektet vårt klar til å kompileres.<br />
Start opp kommandolinjen og endre mappe til prosjektet.</p>
<p>For å kompilere prosjektet, skriver du inn kommandoen:</p>
<pre class="brush: plain; title: ; notranslate">
ant
</pre>
<p>Denne kommandoen gjør oppgaven som er spesifisert under <var>&lt;target name=&raquo;compile&raquo;&gt;</var>.<br />
Den oppretter mappen <var>build\classes</var> og lagrer klassefilene der.</p>
<p>For å lage en JAR-fil for videre distribusjon, utfører vi kommandoen:</p>
<pre class="brush: plain; title: ; notranslate">
ant jar
</pre>
<p>Denne er avhengig av at prosjektet først er kompilert, men dette sørger Apache Ant for å gjøre dersom du ikke har gjort det.<br />
Det vil si at vi faktisk ikke trenger å utføre kommandoen <var>ant compile</var> på forhånd.</p>
<p>For å teste at JAR-filen fungerer, kan vi bruke kommandoen <var>ant run</var>.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2012/02/kompilere-java-prosjekter-med-apache-ant/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!</pre>
]]></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>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>
<blockquote><p>SET PATH = %PATH%;C:\PHP;C:\MySQL\bin</p></blockquote>
<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>
<blockquote><p>SCHTASKS /Create /SC DAILY /MO 1 /ST 00:00 /TN &laquo;MySQL Backup&raquo; /TR &laquo;php \www\backup.php&raquo;</p></blockquote>
<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>
<blockquote><p>SCHTASKS /Create /SC DAILY /MO 1 /ST 00:00 /TN &laquo;MySQL Backup&raquo; /TR &laquo;mysqldump -h &lt;host&gt; -u &lt;brukernavn&gt; -p&lt;passord&gt; -A -r \www\backups\database_dump.sql&raquo;</p></blockquote>
<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>
<blockquote><p>&#8211;database &lt;database&gt;</p></blockquote>
<p>eller</p>
<blockquote><p>&#8211;databases &lt;database 1&gt; &lt;database 2&gt; &#8230; &lt;database <em>n</em>&gt;</p></blockquote>
<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: Opprette underdomener</title>
		<link>http://davidsteinsland.net/2010/01/wamp-opprette-underdomener/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wamp-opprette-underdomener</link>
		<comments>http://davidsteinsland.net/2010/01/wamp-opprette-underdomener/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 18:47:03 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Guider]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[dyi]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[underdomene]]></category>
		<category><![CDATA[wamp]]></category>
		<category><![CDATA[wampserver]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=176</guid>
		<description><![CDATA[Veldig konsis guide på hvordan du kan opprette underdomener lokalt på datamaskinen din, om du bruker Wampserver. Orker du ikke en haug med tekst? Sjekk ut videoen i bunnen! 1. Gå til mappen: C:\Windows\System32\Drivers\etc\ Der ligger det en fil som heter &#171;hosts&#187;. Ja, det er riktig: den har ingen filendelse. Høgreklikk på filen, velg &#171;åpne [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-185" title="Wamp: Installere underdomener" src="http://davidsteinsland.net/wp-content/uploads/2010/01/underdomene.png" alt="" width="560" height="164" /></p>
<p>Veldig konsis guide på hvordan du kan opprette underdomener lokalt på datamaskinen din, om du bruker <a href="http://wampserver.com/">Wampserver</a>. Orker du ikke en haug med tekst? Sjekk ut videoen i bunnen!</p>
<h3>1. Gå til mappen: C:\Windows\System32\Drivers\etc\</h3>
<p>Der ligger det en fil som heter &laquo;hosts&raquo;. Ja, det er riktig: den har ingen filendelse. Høgreklikk på filen, velg &laquo;åpne med &#8230;&raquo; og velg en tekstredigerer (type Notepad).</p>
<p>Under linjen</p>
<pre class="brush: plain; title: ; notranslate">127.0.0.1     localhost</pre>
<p>legger du til:</p>
<pre class="brush: plain; title: ; notranslate">127.0.0.1     underdomene.localhost</pre>
<p>&laquo;Underdomene&raquo; kan du endre til hva du vil: dette blir da navnet på underdomenet ditt.</p>
<p><em>PS: Dersom det er et nummertegn (#) foran «127.0.0.1     localhost», så er du nødt til å fjerne dette tegnet.</em></p>
<p>&nbsp;</p>
<h3>2. Klikk på Wamp-ikonet i tray, velg <em>Apache</em> og trykk på &laquo;<em>httpd.conf</em>&laquo;</h3>
<p>Bla ned (nesten til bunns) i filen, til du kommer til følgende linje:</p>
<pre class="brush: plain; title: ; notranslate"># Virtual hosts
#Include conf/extra/httpd-vhosts.conf</pre>
<p>Fjern nummertegnet fra siste linje.</p>
<h3>3. Gå til C:\wamp\bin\apache\Apache2.2.11\conf\extra\</h3>
<p>Her åpner du filen &laquo;<em>httpd-vhosts.conf</em>&laquo;. Dette er konfigurasjonsfilen som styrer de virtuelle serverinnstillingene i Apache.</p>
<p>Fjern de to &lt;VirtualHost *:80&gt;-blokkene, og legg til følgende kode:</p>
<pre class="brush: plain; title: ; notranslate">&lt;VirtualHost *:80&gt;
 DocumentRoot C:/wamp/www/
 ServerName localhost
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
DocumentRoot C:/wamp/www/underdomene/
ServerName underdomene.localhost
&lt;/VirtualHost&gt;
</pre>
<p>Dette forteller Apache at alle  forespørsler skal sendes til www-mappen, såfremt det ikke eksisterer et underdomene. I praksis betyr det at http://underdomene.localhost/ vil vise deg samme innhold som http://localhost/underdomene/.</p>
<h3>4. Restart Wampserver &#8212; You are Good to Go!</h3>
<p><strong>Husk selvsagt å endre &laquo;underdomene&raquo; til hva du ønsker (gjelder alle kodene).</strong></p>
<p>&nbsp;</p>
<p>Som vanlig følger det også med en video som viser fremgangsmåte.</p>
<p><object width="540" height="370" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/g%2BAIgb7lAQA" /><param name="allowfullscreen" value="true" /><embed width="540" height="370" type="application/x-shockwave-flash" src="http://blip.tv/play/g%2BAIgb7lAQA" allowfullscreen="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2010/01/wamp-opprette-underdomener/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Wamp: Hvordan installere ffmpeg (Windows)</title>
		<link>http://davidsteinsland.net/2010/01/installere-ffmpeg-pa-wampserver-windows/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installere-ffmpeg-pa-wampserver-windows</link>
		<comments>http://davidsteinsland.net/2010/01/installere-ffmpeg-pa-wampserver-windows/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 02:27:15 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Guider]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wamp]]></category>
		<category><![CDATA[wampserver]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=135</guid>
		<description><![CDATA[Noen ganger kan det være ganske ålreit å kunne konvertere videoer via PHP, eller for eksempel hente ut miniatyrbilder fra en film. Da er det også ganske ålreit at ffmpeg finnes. Med ffmpeg kan du gjøre slike ting lekende lett, men veien der til er ikke alltid like grei. Heldigvis har jeg i den sammenheng [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-134" title="Howto: Installere ffmpeg på Wamp med Windows" src="http://davidsteinsland.net/wp-content/uploads/2010/01/banner.png" alt="" width="560" height="164" /></p>
<p>Noen ganger kan det være ganske ålreit å kunne konvertere videoer via PHP, eller for eksempel hente ut miniatyrbilder fra en film. Da er det også ganske ålreit at ffmpeg finnes.</p>
<p>Med ffmpeg kan du gjøre slike ting lekende lett, men veien der til er ikke alltid like grei. Heldigvis har jeg i den sammenheng laget en liten guide til hvordan du kan gjøre det!</p>
<h3>Før vi begynner &#8230;</h3>
<p>Sørg for at du har:</p>
<ul>
<li>Installert <a href="http://www.wampserver.com/">Wampserver</a> på en Windows-maskin</li>
<li><a href="http://downloads.sourceforge.net/wampserver/WampServer2-PHP525.exe?download">Lastet ned og installert PHP 5.2.5</a> til Wamp (husk og aktiver denne versjonen, det er denne vi må bruke)</li>
</ul>
<p>Når du har de to punktene under kontroll er du klar til å gå videre.</p>
<h3>Hva vi trenger</h3>
<p>Da er tiden inne for å laste ned ffmpeg-arkivene. Last ned de to arkivene under, og plasser dem f. eks på skrivebordet ditt.</p>
<p><strong>FFmpeg</strong>:  <a href="http://sourceforge.net/projects/mplayer-win32/files/FFmpeg/">http://sourceforge.net/projects/mplayer-win32/files/FFmpeg/</a>(last ned en .7z-fil)<br />
<strong>FFmpeg-php</strong>:<a href="http://sergey89.ru/files/ffmpeg-php/ffmpeg-php-win32-all.zip"> http://sergey89.ru/files/ffmpeg-php/ffmpeg-php-win32-all.zip</a> (kun kompatibel med PHP 5.2.5)</p>
<h3>La oss begynne</h3>
<p>Pakk ut innholdet fra den første zip-filen, og kopier filen <em>ffmpeg.exe </em>til <em>C:\ffmpeg\</em>. Det er denne filen PHP kommer til å sende kommandoene til.</p>
<p>Pakk så ut innholdet fra det siste arkivet (ffmpeg-php). Her vil det være totalt 5 filer som vi trenger. Kopier filene <em>avcodec-51.dll, avformat-51.dll, avutil-49.dll </em>og <em>pthreadGC2.dll </em>og lim dem inn i: <em>C:\WINDOWS\System32\</em>.</p>
<p><em>Dersom du kjører et 64-bits operativsystem, må du også legge de samme filene i: C:\WINDOWS\SysWOW64\.</em></p>
<p>Da gjenstår det én fil igjen, og det er: <em>php_ffmpeg.dll</em>.  Dette er utvidelsefilen for PHP; denne må du plassere i <em>C:\wamp\bin\php\php5.2.5\ext\</em> som da er PHPs mappe over utvidelser. Siste punktet du må gjøre er å endre PHPs konfigurasjonsfil, <em>php.ini</em>. Denne kan du nå på to måter:</p>
<ul>
<li>Trykke på Wampserver-ikonet i Tray, klikke på <em>PHP</em> og så velge <em>php.ini</em></li>
<li>Gå til <em>C:\wamp\bin\php\php5.2.5\</em></li>
</ul>
<p>Åpne konfigurasjonsfilen i en teksteditor (f. eks Notepad), og bla ned til du kommer til &laquo;Windows extensions&raquo;. Her kommer det opp en liste over mange ulike utvidelser; lag en ny linje, og lim inn følgende kode:</p>
<p><em>extension=php_ffmpeg.</em><em>dll</em></p>
<p>Nå trenger du bare starte Wampserver om igjen, ved å trykke på Wampserver-ikonet i tray og deretter velge &laquo;Restart all services&raquo;.</p>
<p>Nå kan du åpne din favoritt-nettleser, og lime inn følgende adresse:</p>
<p><em>http://localhost/?phpinfo</em></p>
<p>Dersom installasjonen har vært vellykket, vil du kan kunne finne ffmpeg på den listen (se bilde).</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-137" title="ffmpeg er installert!" src="http://davidsteinsland.net/wp-content/uploads/2010/01/ffmpeg.png" alt="" width="560" height="164" /></p>
<h3>Sluttord</h3>
<p>Nå er det bare til å sette i gang med å konvertere videoer, hente ut stillbilder, lyd eller hva det måtte være. Du kan teste installasjonen ved å kjøre følgende kode:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
    $clip = 'clip.mp4'; // Which video to extract from
    $frame = '00:00:10'; // ... and at which frame
    $dimensions = '640x480'; // Image dimensions (width x height)
    $output = 'myscreen.png'; // path to captured image

    $command = 'C:\ffmpeg\ffmpeg.exe -y -i ' . $clip . ' -vframes 1 -ss ' . $frame . ' -an -vcodec png -f rawvideo -s ' . $dimensions . ' ' . $output;
    exec ($command);
?&gt;</pre>
<p>Den vil hente ut et bilde fra videoen<em> <a href="http://davidsteinsland.net/video.zip">clip.mp4</a></em> ti sekunder ut i filmen, og lagre bildet som <em>myscreen</em>.png. Legg spesielt merke til at vi må spesifisere fulle stien til hvor vi har plassert ffmpeg.exe-filen. De fleste plasser på Internett, så står det som regel bare &laquo;ffmpeg&raquo;, istedenfor full sti; slik må du <span style="text-decoration: underline;">ikke</span> gjøre det!</p>
<p>Du kan også teste installasjonen ved å skrive denne koden:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
    echo shell_exec ('C:\ffmpeg\ffmpeg.exe -formats');
?&gt;</pre>
<p>Om du har innspill, kommentarer eller lignende, så er du velkommen til å kommentere artikkelen!<br />
Video som viser hva jeg gjør &#8212; i dårlig kvalitet &#8212; er å se under:</p>
<p><object width="540" height="370" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/g%2BAIgb3%2BGQA" /><param name="allowfullscreen" value="true" /><embed width="540" height="370" type="application/x-shockwave-flash" src="http://blip.tv/play/g%2BAIgb3%2BGQA" allowfullscreen="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://davidsteinsland.net/2010/01/installere-ffmpeg-pa-wampserver-windows/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

