<?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>notes and ramblings</title>
	<atom:link href="http://v3gard.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://v3gard.com</link>
	<description>personal website of Vegard Haugland</description>
	<lastBuildDate>Mon, 17 Oct 2011 18:39:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Downloading FLV streams using rtmpdump</title>
		<link>http://v3gard.com/2011/10/downloading-flv-streams-using-rtmpdump/</link>
		<comments>http://v3gard.com/2011/10/downloading-flv-streams-using-rtmpdump/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 19:40:18 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[robinson]]></category>
		<category><![CDATA[rtmp]]></category>
		<category><![CDATA[rtmpdump]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[tv3]]></category>
		<category><![CDATA[tv3play]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=248</guid>
		<description><![CDATA[Many TV channels allow you to stream their shows from a flash plugin on their website. How cool wouldn't it be if you were able to download these streams to a file on your computer, or even show the streams in your favorite movie player, like mplayer? Let me tell you one thing. This is [...]]]></description>
			<content:encoded><![CDATA[<p>Many TV channels allow you to stream their shows from a flash plugin on their website. How cool wouldn't it be if you were able to download these streams to a file on your computer, or even show the streams in your favorite movie player, like mplayer? Let me tell you one thing. This is indeed possible.</p>
<h2>How?</h2>
<p>In order for the flash plugin to show the streams on your computer, they need to be freely available on the interwebz. If we use a protocol analyser like Wireshark to dig into the information sent between the flash plugin that runs in your browser, and the server that provides the video streams, we often see that it is transmitted using the Real Time Messaging Protocol (RTMP). If you happen to use a GNU/Linux based operating system, you're in luck. There exists a toolkit called 'rtmpdump' that allows you to interact with a server offering RTMP streams. All you need to display these streams on your computer, are a few parameters that are exchanged between the aforementioned flash plugin and the RTMP server.</p>
<h2>Example? Pretty please!?!</h2>
<p>I will now show you an example of how this is done by grabbing an episode of the Norwegian TV show "Robinson-ekspedisjonen" that runs on TV3. This is the Norwegian version of Survivor. These episodes are freely available on <a title="http://tv3play.no" href="http://tv3play.no">http://tv3play.no</a> if you want to display them in your browser. If you are like me, and you'd like a local copy on your computer, follow these steps:</p>
<p style="padding-left: 30px;">1. Navigate to the URL where the first episode of Season 11 is located (<a href="http://www.tv3play.no/play/252950/">http://www.tv3play.no/play/252950/</a>)</p>
<p style="padding-left: 30px;">2. Fire up a terminal and enter the following command (and yes, regular expressions are awesome!):</p>
<p style="padding-left: 30px;"><code>ngrep -W byline | grep -Pio '(swfUrl\.{2}M\K.*?(?=\.{2}tc))|(pageUrl\.{2}"\K.*(?=\.{3}))|(tcUrl\.{3 }\K.*?(?=\.{2}))|(resetting \K.*?(?=\.{3}))'</code></p>
<p style="padding-left: 30px;">3. Start the show in your browser. A commercial should now appear (that you should really watch in return of downloading the stream <img src='http://v3gard.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ), and wait for the output that appears in the terminal. It should be something like:</p>
<p style="padding-left: 30px;"><code>1.http://flvplayer.viastream.viasat.tv/play/swf/player110516.s.wf?rnd=1318382997<br />
2.rtmp://mtgfs.fplive.net/mtg<br />
3.flash/norway/tv3/robinson2011/robinsonekspedisjonen_sd_1101-flash_500</code></p>
<p style="padding-left: 30px;">4. Here follows a short description of the above output.</p>
<p style="padding-left: 60px;">1. This is the URL of the flash plugin that runs in your browser. Since we are parsing raw network data, an extra "." has been added in between the "swf" extension. This can safely be removed. The corresponding switch in rtmpdump is "-W"<br />
2. This is the location where you access streams on the RTMP server. The corresponding switch in rtmpdump is "-r".<br />
3. Finally, this is the path to the TV show on the RTMP server. The corresponding switch in rtmpdump is "--playpath".</p>
<p style="padding-left: 30px;">5. We can now feed these variables to rtmpdump, and do whatever we want with the captured stream. Here are two examples:</p>
<p style="padding-left: 60px;"><em>Download:</em></p>
<p style="padding-left: 60px;"><code> rtmpdump -r "rtmp://mtgfs.fplive.net/mtg" --swfVfy --swfUrl "http://flvplayer.viastream.viasat.tv/play/swf/player110516.swf?rnd=1318382997" --playpath "flash/norway/tv3/robinson2011/robinsonekspedisjonen_sd_1101-flash_500" -o output.flv </code></p>
<p style="padding-left: 60px;"><em>Show in mplayer:</em></p>
<p style="padding-left: 60px;"><code> rtmpdump -r "rtmp://mtgfs.fplive.net:1935/mtg" -W "http://flvplayer.viastream.viasat.tv/play/swf/player110516.swf?rnd=1318382997" --playpath "flash/norway/tv3/dagens_mann/sesong_1/dagens_mann_101-flash_500" -live | mplayer -</code></p>
<p style="padding-left: 30px;">6. Side note. If you want to watch/download the stream in higher quality, replace "flash_500" with "flash_900" in the playpath.</p>
<h2>Is this legal?</h2>
<p>The way I see it, we are not doing anything illegal here, as the video streams are made available from the publisher.</p>
<p>Sure, they are hidden such that "Average Joe" will have difficulties downloading them. Also, we do perform a neat hack when we extract the required variables from the network packet stream using a regular expression, but we still need to watch the commercial (or at least wait for it to finish) in order to get these variables.</p>
<p>As long as I (or you) keep the downloaded streams for yourself, and don't distribute them directly, you are operating within any legal boundaries, at least if you live in Norway.</p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2011/10/downloading-flv-streams-using-rtmpdump/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Replacing a vertical list of characters with a sequence of numbers in VIM</title>
		<link>http://v3gard.com/2011/05/replacing-a-vertical-list-of-characters-with-a-sequence-of-numbers-in-vim/</link>
		<comments>http://v3gard.com/2011/05/replacing-a-vertical-list-of-characters-with-a-sequence-of-numbers-in-vim/#comments</comments>
		<pubDate>Fri, 27 May 2011 07:46:22 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[nexus plugin]]></category>
		<category><![CDATA[timesaver]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=227</guid>
		<description><![CDATA[During my spare time, I try to learn C. Often I find myself having to create arrays, and fill these with data manually. Since I hate, and let me emphasize, hate, doing repetitive tasks, I wanted to show you guys how to create an array with 6 elements as simple as possible. Consider the following; [...]]]></description>
			<content:encoded><![CDATA[<p>During my spare time, I try to learn C. Often I find myself having to create arrays, and fill these with data manually. Since I hate, and let me emphasize, <em>hate</em>, doing repetitive tasks, I wanted to show you guys how to create an array with 6 elements as simple as possible.</p>
<p>Consider the following; you want to create an array of strings with 6 elements, where each element can hold a maximum of 25 characters. Hence, you type the following:</p>
<p><code> #include &lt;stdio.h&gt;</p>
<p> int main(int argc, char argv[])<br />
 {<br />
    char my_array[6][26];</p>
<p>    strcpy(my_array[0], "Something");<br />
    strcpy(my_array[1], "Something else");<br />
    strcpy(my_array[2], "Something different");<br />
    // etcetera</p>
<p>    return 1;<br />
 }</code></p>
<p>Now, that wasn't very tiresome, but what if you had to enter 10 elements, or even 50? Typing strcpy(my_array[x], "blahblah"); that many times can even make the most patient person go nuts. If you're a VIM user, this process can however be simplified quite a bit.</p>
<p>First, start VIM. Next, type 'strcpy(my_array[x], ""');', and yank this line by pressing 'yy'. Now, to repeat this process 5 times, simply type "5p". You should now have 6 lines containing:</p>
<p><code> strcpy(my_array[x], "");<br />
 strcpy(my_array[x], "");<br />
 strcpy(my_array[x], "");<br />
 strcpy(my_array[x], "");<br />
 strcpy(my_array[x], "");<br />
 strcpy(my_array[x], "");</code></p>
<p>The final step is now to replace all the x characters with a sequence of numbers, ranging from 0 to 5. By using the Nexus plugin, <a href="https://github.com/dahu/Nexus">located here</a>, you can do this with one neat command.</p>
<p>With the plugin installed, replace the first occurance of 'x' with 0. Then, enter Visual Block Mode (C v), and select the remaining x characters. Now, enter the command: <strong>:'< ,'>s/\%V./\=s1.next()/</strong>, and all the x characteres is replaced with a sequence of numbers, ranging from 1 to 5. You should now have:</p>
<p><code> strcpy(my_array[0], "");<br />
 strcpy(my_array[1], "");<br />
 strcpy(my_array[2], "");<br />
 strcpy(my_array[3], "");<br />
 strcpy(my_array[4], "");<br />
 strcpy(my_array[5], "");<br />
</code><br />
Neat, huh? If you want to perform the task again, you will see that s1 continues from where it stopped in the above example. To reset the s1 variable, run ':call s1.reset()'.</p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2011/05/replacing-a-vertical-list-of-characters-with-a-sequence-of-numbers-in-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configure sendmail as an MTA relay on Slackware</title>
		<link>http://v3gard.com/2011/02/configure-sendmail-as-an-mta-relay-on-slackware/</link>
		<comments>http://v3gard.com/2011/02/configure-sendmail-as-an-mta-relay-on-slackware/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 14:55:55 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[relay]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[slackware]]></category>
		<category><![CDATA[smart_host]]></category>
		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=210</guid>
		<description><![CDATA[My landlord recently changed to a different ISP that blocks all outgoing requests on port 25, except towards their own SMTP-server. After getting my hands dirty by plowing throgh the sendmail documentation, located here, I figured out that it wasn't very difficult to configure sendmail to relay all outgoing e-mails towards this server, thus solving [...]]]></description>
			<content:encoded><![CDATA[<p>My landlord recently changed to a different ISP that blocks all outgoing requests on port 25, except towards their own SMTP-server. After getting my hands dirty by plowing throgh the sendmail documentation, located <a href="http://www.sendmail.org/m4/masquerading.html">here</a>, I figured out that it wasn't very difficult to configure <em>sendmail</em> to relay all outgoing e-mails towards this server, thus solving the entire problem.</p>
<p><strong>If you want all outgoing mail to go to a central relay site, define SMART_HOST.</strong></p>
<p>I started by checking the sendmail configuration file, <strong>/etc/mail/sendmail.cf</strong>, that strictly specified "<strong>DO NOT EDIT THIS FILE!  Only edit the source .mc file.</strong>". Following this advice, I had to figure out where this .mc file was located.</p>
<p>I did a quick search for all files containing <em>sendmail</em> and <em>cf</em> on my local system, and discovered "<strong>/usr/share/sendmail/cf/cf/sendmail-slackware.mc</strong>". That was indeed the correct file, and I simply added "<strong>define(`SMART_HOST', `smtp.online.no')</strong>". To see the entire configuration file, expand the spoiler below.</p>

<div class='easySpoilerWrapper' style=''>
<table class='easySpoilerTable' border='0' style='text-align:center;' align='center' bgcolor='FFFFFF' >

<tr style='white-space:normal;'><th class='easySpoilerTitleA'  style='white-space:normal;font-weight:normal;text-align:left;vertical-align:middle;font-size:120%;color:#000000;'>Spoiler Inside: modified sendmail-slackware.mc</th>
<th class='easySpoilerTitleB'  style='text-align:right;vertical-align:middle;font-size:100%; white-space:nowrap;'>
<a href='' onclick='wpSpoilerSelect("spoilerDiveea8001"); return false;' class='easySpoilerButtonOther' style='font-size:100%;color:#000000;background-color:#fcfcfc;background-image:none;border: 1px inset;border-style:solid;border-color:#cccccc;  margin: 3px 0px 3px; padding: 4px; ' align='right'>Select</a><a href='' onclick='wpSpoilerToggle("spoilerDiveea8001",true,"Show","Hide","fast",false); return false;' id='spoilerDiveea8001_action' class='easySpoilerButton' value="Show" align='right' style='font-size:100%;color:#000000;background-color:#fcfcfc;background-image:none;border: 1px inset;border-style:solid;border-color:#cccccc; margin: 3px 0px 3px 5px; padding: 4px;"'>Show</></th>
</tr>
<tr><td class='easySpoilerRow' colspan='2' style=''><div id='spoilerDiveea8001' class='easySpoilerSpoils'  style='display:none; white-space:wrap; overflow:auto; vertical-align:middle;'>
</p>
<pre>dnl# This is the default sendmail .mc file for Slackware.  To generate
dnl# the sendmail.cf file from this (perhaps after making some changes),
dnl# use the m4 files in /usr/share/sendmail/cf like this:
dnl#
dnl# cp sendmail-slackware.mc /usr/share/sendmail/cf/config.mc
dnl# cd /usr/share/sendmail/cf
dnl# sh Build config.cf
dnl#
dnl# You may then install the resulting .cf file:
dnl# cp config.cf /etc/mail/sendmail.cf
dnl#
include(`../m4/cf.m4')
VERSIONID(`modified Slackware Linux setup by VHA')dnl
OSTYPE(`linux')dnl
dnl# These settings help protect against people verifying email addresses
dnl# at your site in order to send you email that you probably don't want:
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
dnl# No timeout for ident:
define(`confTO_IDENT', `0')dnl
dnl# Enable smtp.online.no as smarthost
define(`SMART_HOST', `smtp.online.no')dnl
dnl# Enable the line below to use smrsh to restrict what sendmail can run:
dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
dnl# See the README in /usr/share/sendmail/cf for a ton of information on
dnl# how these options work:
FEATURE(`use_cw_file')dnl
FEATURE(`use_ct_file')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`access_db', `hash -T /etc/mail/access')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`redirect')dnl
dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail:
FEATURE(`accept_unresolvable_domains')dnl
EXPOSED_USER(`root')dnl
dnl# Also accept mail for localhost.localdomain:
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl</pre>
<p>
</div></td></tr>
</table>
<div class='easySpoilerConclude' style=''><table class='easySpoilerTable' border='0' style='text-align:center;' frame='box' align='center' bgcolor='FFFFFF'><tr><th class='easySpoilerEnd' style='width:100%;'></th><td class='easySpoilerEnd' style='white-space:nowrap;' colspan='2'></td></tr><tr><td class='easySpoilerGroupWrapperLastRow' colspan='2' style=''></td></tr></table></div>
</div>

<p>Once that was done, I had to compile the configuration file with "<strong>m4 /usr/share/sendmail/cf/cf/my-sendmail.slackware.mc &gt; /etc/mail/sendmail.cf</strong>", and restart inetd and sendmail by running <strong>/etc/rc.d/rc.inetd restart &amp;&amp; /etc/rc.d/rc.sendmail restart</strong>.</p>
<p>Problem solved, and I'm receiving my emails again!</p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2011/02/configure-sendmail-as-an-mta-relay-on-slackware/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting cmus to cooperate with conky</title>
		<link>http://v3gard.com/2011/01/getting-cmus-to-cooperate-with-conky/</link>
		<comments>http://v3gard.com/2011/01/getting-cmus-to-cooperate-with-conky/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 06:15:59 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[cmus]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=160</guid>
		<description><![CDATA[cmus is a small, fast and powerful console music player for Linux and *BSD. If you also happen to use conky, the light-weight system monitor, grabbing data from cmus and rendering it in conky is a piece of cake! cmus comes with an application called cmus-remote that allows you to control the music player from [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_187" class="wp-caption alignright" style="width: 305px"><a href="http://v3gard.com/wp-content/uploads/2011/01/20110126-065147-screenshot.png"><img class="size-full wp-image-187   " title="Screenshot of My Current Desktop" src="http://v3gard.com/wp-content/uploads/2011/01/20110126-065147-screenshot.png" alt="" width="295" height="166" /></a><p class="wp-caption-text">Screenshot of My Current Desktop</p></div>
<p>cmus is a small, fast and powerful console music player for Linux and *BSD. If you also happen to use conky, the light-weight system monitor, grabbing data from cmus and rendering it in conky is a piece of cake!</p>
<p>cmus comes with an application called cmus-remote that allows you to control the music player from a remote location. We're now gonna use this app to grab the metadata and make it accessible to conky.</p>
<p>Since conky doesn't have a plugin for accessing cmus directly, we need to write a simple shell script:</p>
<pre>
if [ ! -x /usr/bin/cmus-remote ];
then
echo "cmus is not installed."
exit
fi

ARTIST=$( cmus-remote -Q 2>/dev/null | grep artist | cut -d " " -f 3- )
TITLE=$( cmus-remote -Q 2>/dev/null | grep title | cut -d " " -f 3- )

if [ -z "$ARTIST" ];
then
echo "Nothing"
else
echo "$ARTIST - $TITLE"
fi
</pre>
<p></p>
<p>If you have a song currently being played in cmus, you can run the script shown above in your favorite terminal, and something like "Scar Symmetry - Trapezoid" will be returned.</p>
<p>To get the information displayed in your conky bar, you can add the following somewhere in your .conkyrc:</p>
<pre>${execi 2 /path/to/script}</pre>
<p></p>
<p>To see an example of how a rendered bar looks like, check out the screenshot of <a href="http://v3gard.com/wp-content/uploads/2011/01/20110126-065147-screenshot.png">my current desktop</a>. I'm using the i3 window manager, and the output from conky is rendered using a combination of i3-wsbar and dzen2.</p>
<p>My .conkyrc is available <a href="http://git.v3gard.com/shell/dotfiles.git/">here</a>, and you can download the cmus-conky-script <a href="http://git.v3gard.com/shell/cmus-conky.git/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2011/01/getting-cmus-to-cooperate-with-conky/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Identifying skimming equipment</title>
		<link>http://v3gard.com/2010/09/identifying-skimming-equipment/</link>
		<comments>http://v3gard.com/2010/09/identifying-skimming-equipment/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 18:42:33 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[atm]]></category>
		<category><![CDATA[bank]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[skimming]]></category>
		<category><![CDATA[visa]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=93</guid>
		<description><![CDATA[Almost every week I make notice of articles in the national newspapers that someone has become victim of ATM fraud, or skimming. Usually, the article describes where the event took place and issues a warning that you should contact your bank if you suspect that you have been victim to such crimes. One thing that [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_122" class="wp-caption alignright" style="width: 213px"><a href="http://v3gard.com/wp-content/uploads/2010/09/40509033_skimming203.jpg"><br />
<img class="size-full wp-image-122" title="Skimming" src="http://v3gard.com/wp-content/uploads/2010/09/40509033_skimming203.jpg" alt="Skimming" width="203" height="152" /></a><p class="wp-caption-text">Illustration of someone attaching skimming equipment to an ATM. Image courtesy of BBC News.</p></div>
<p>Almost every week I make notice of articles in the national newspapers that someone has become victim of ATM fraud, or skimming. Usually, the article describes where the event took place and issues a warning that you should contact your bank if you suspect that you have been victim to such crimes.</p>
<p>One thing that bothers me about this, is that neither the media or even the banks here in Norway publish any information about how one can detect skimming equipment, so you can avoid having your VISA card scanned (or your pin code video taped) in the first place.</p>
<p>By doing <a href="http://consumerist.com/2009/04/id-an-atm-skimmer.html" target="_blank">some research</a>, I found out that a bank in Australia (!) has <a href="http://www.commbank.com.au/personal/apply-online/download-printed-forms/ATM_awareness_guide.pdf" target="_blank">published information</a> on how to spot if an ATM has been modified, with images of how it looks like both with and without the skimming equipment attached. My first impression is that the material is both informative and easy to follow.</p>
<p>Once you read through <a href="http://www.commbank.com.au/personal/apply-online/download-printed-forms/ATM_awareness_guide.pdf" target="_blank">the PDF</a>, you should be more fit to avoid being victim of card skimming in the future! <img src='http://v3gard.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>In addition, I would recommend that you examine the ATM every time before you use it. If anything seems out of the ordinary, see if you are able to move any loose panels around. You do not have anything to loose, except your money.</p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2010/09/identifying-skimming-equipment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Android 2.2 (Froyo) on your HTC Magic</title>
		<link>http://v3gard.com/2010/09/install-android-2-2-froyo-on-your-htc-magic/</link>
		<comments>http://v3gard.com/2010/09/install-android-2-2-froyo-on-your-htc-magic/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 12:58:21 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[chrometophone]]></category>
		<category><![CDATA[cyanogen]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[magic]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[rom]]></category>
		<category><![CDATA[sapphire]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=73</guid>
		<description><![CDATA[Did you know that it is possible to upgrade your HTC Magic to use the newest version of Android? Doing so significantly increases the phone's performance and reliability - in addition to give you access to awesome applications like chrometophone. Last year I bought a HTC Magic (aka Sapphire). At the time, the phone shipped [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_87" class="wp-caption alignright" style="width: 202px"><a href="http://v3gard.com/wp-content/uploads/2010/09/htc-magic-1.jpg"><img class="size-medium wp-image-87" title="HTC Magic" src="http://v3gard.com/wp-content/uploads/2010/09/htc-magic-1-300x260.jpg" alt="Image of the HTC Magic" width="192" height="168" /></a><p class="wp-caption-text">HTC Magic - Image courtesy of HTC.</p></div>
<p>Did you know that it is possible to upgrade your HTC Magic to use the newest version of Android? Doing so significantly increases the phone's performance and reliability - in addition to give you access to awesome applications like <a title="chrometophone" href="http://code.google.com/p/chrometophone/" target="_blank">chrometophone</a>.</p>
<p>Last year I bought a HTC Magic (aka Sapphire). At the time, the phone shipped with Android 1.5, while the most recent version of Android at the time was 1.6. Since there was no official update available from HTC, I decided to try out one of the community-based ROMs.</p>
<p>After conducting some research, I settled for a project called <a title="CyanogenMod" href="http://www.cyanogenmod.com/" target="_blank">CyanogenMod</a> - mainly because it offered increased reliability and performance. By following <a title="CyanogenMod Wiki" href="http://wiki.cyanogenmod.com/index.php?title=HTC_Magic" target="_blank">the necessary steps</a> for upgrading the HTC Magic, I managed to install the ROM and have Android 1.6 available on my phone. It wasn't very difficult either. You basically:</p>
<ul>
<li>Download the CyanogenMod ROM and  the corresponding kernel image. You also need a recovery ROM (for installing CyanogenMod and the kernel)</li>
<li>Copy CyanogenMod and the kernel over to the phone's SD card.</li>
<li>Use the Android SDK (or fastboot) to boot the custom recovery ROM you downloaded earlier.</li>
<li>(Backup your existing ROM with Nandroid)</li>
<li>Install CyanogenMod and the kernel from the SD card</li>
<li>Reboot</li>
</ul>
<div id="attachment_91" class="wp-caption alignleft" style="width: 160px"><a href="http://v3gard.com/wp-content/uploads/2010/09/CyanLogo_huge-1.png"><img class="size-thumbnail wp-image-91" title="CyanogenMod Logo" src="http://v3gard.com/wp-content/uploads/2010/09/CyanLogo_huge-1-150x150.png" alt="CyanogenMod Logo" width="150" height="150" /></a><p class="wp-caption-text">CyanogenMod Logo</p></div>
<p>CyanogenMod held its promise. The phone became much more responsive and reliable than earlier, and with the phone rooted, I also had the option to install applications that was unavailable to me before.</p>
<p>Now, a year later, I have installed Android 2.2 (Froyo) on the phone (by following the same steps as described above). Compared to the initial ROM that shipped with the phone a year ago, the performance is MUCH better. You also have multitouch functionality (like pinching and zooming), and you have access to the Android Cloud to Device Messaging (C2DM) framework (which lets you install chrometophone).</p>
<p>If you have a HTC Magic (or a similar Android device), you should install CyanogenMod. You won't regret it.</p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2010/09/install-android-2-2-froyo-on-your-htc-magic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Major update!</title>
		<link>http://v3gard.com/2010/08/major-update/</link>
		<comments>http://v3gard.com/2010/08/major-update/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 04:34:12 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=62</guid>
		<description><![CDATA[It has been over a year since my last post. For this reason, I have finally figured out that I have to switch to a mainstream CMS that makes it easier for me to publish updates. During the last few years, I have tried keeping my old CMS, mbmCMS (or madebymyselfCMS) updated, but I had to [...]]]></description>
			<content:encoded><![CDATA[<p>It has been over a year since my last post. For this reason, I have finally figured out that I have to switch to a mainstream CMS that makes it easier for me to publish updates.</p>
<p>During the last few years, I have tried keeping my old CMS, mbmCMS (or madebymyselfCMS) updated, but I had to throw in the towel in the end. Maintaining a CMS is a lot of work, and I really didn't enjoy (or have the time) working on it anymore. Over the years, the code base had become quite bad, as I really didn't organize the code very well.</p>
<p>WordPress on the other hand looks like its up for the task. The admin dashboard is a dream to work with, and I don't have to make my own plug-ins. Hopefully, this will make it easier to keep the site updated.</p>
<p>I have already moved over the articles I found relevant from the old site, and I will possibly add a few more over the next days.</p>
<p>Remember to check out my other sites!</p>
<ul>
<li><a href="http://dev.v3gard.com">Gitweb</a></li>
<li><a href="http://doc.v3gard.com">Documentation wiki</a></li>
</ul>
<p>Vegard</p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2010/08/major-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Dropbox on Slackware</title>
		<link>http://v3gard.com/2009/04/using-dropbox-on-slackware/</link>
		<comments>http://v3gard.com/2009/04/using-dropbox-on-slackware/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 11:24:14 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[slackware]]></category>
		<category><![CDATA[thunar]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=49</guid>
		<description><![CDATA[This guide will show you how to install Droxbox on a system that doesn't have Nautilus installed. This is especially useful to people who use Slackware, because GNOME is not installed by default. You still need a file manager though, so in this example, we'll use Thunar. In order to get Dropbox to work, we [...]]]></description>
			<content:encoded><![CDATA[<p>This guide will show you how to install Droxbox on a system that doesn't have Nautilus installed. This is especially useful to people who use Slackware, because GNOME is not installed by default. You still need a file manager though, so in this example, we'll use Thunar.</p>
<p>In order to get Dropbox to work, we have to trick Dropbox into thinking that Nautilus is already installed. The easiest way to accomplish this, is by creating a script in /usr/bin called nautilus, which basically is a link to Thunar. To get started, download a precompiled binary from <a href="http://getdropbox.com" target="_blank">getdropbox.com</a>. I used a binary compiled for Fedora 10 called nautilus-dropbox-0.6.1-1.fc10.i386.rpm.</p>
<pre>$ wget http://linux.getdropbox.com/packages/nautilus-dropbox-0.6.1-1.fc10.i386.rpm
</pre>
<p>What we now are going to do is to run rpm2tgz on this package so that we can explode the package using explodepkg. We do so because we want to create a slackware-package, where we also include our little workaround. First, log in as root.</p>
<pre>$ su -
$ mkdir /tmp/dropbox
$ mv nautilus-dropbox-0.6.1-1.fc10.i386.rpm /tmp/dropbox
$ rpm2tgz nautilus-dropbox-0.6.1-1.fc10.i386.rpm
$ explodepkg nautilus-dropbox-0.6.1-1.fc10.i386.tgz
</pre>
<p>Now, go to /tmp/dropbox/usr/bin, fire up your favorite text-editor and write the following:</p>
<pre>#!/bin/bash
thunar $@
exit 0
</pre>
<p>When you're done, save the file as "nautilus". Now, go back to /tmp/dropbox, create a folder called install, touch a file called "slack-desc" and run makepkg to create a slackware-package.</p>
<pre>$ mkdir install
$ touch install/slack-desc
$ makepkg dropbox-0.6.1-i386-1vh.tgz</pre>
<p>The only thing that has to be done now, is to install the package.</p>
<pre>$ installpkg dropbox-0.6.1-i386-1vh.tgz</pre>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2009/04/using-dropbox-on-slackware/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Special keys stops working while using VMware</title>
		<link>http://v3gard.com/2008/11/special-keys-stops-working-while-using-vmware/</link>
		<comments>http://v3gard.com/2008/11/special-keys-stops-working-while-using-vmware/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 12:50:16 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[setxkbmap]]></category>
		<category><![CDATA[slackware]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=39</guid>
		<description><![CDATA[Has it occured to you that when you're using VMware Workstation or Server that CTRL, ALT and SHIFT stops working? When this first started happening to me, I just restarted X to fix the problem. As you probably know, this is not a good solution If you however try executing setxkbmap once this problem occurs, [...]]]></description>
			<content:encoded><![CDATA[<p>Has it occured to you that when you're using VMware Workstation or Server that CTRL, ALT and SHIFT stops working? When this first started happening to me, I just restarted X to fix the problem. As you probably know, this is not a good solution</p>
<p>If you however try executing <strong>setxkbmap</strong> once this problem occurs, you should gain control over the keys again. This did at least work for me <img src='http://v3gard.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2008/11/special-keys-stops-working-while-using-vmware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best animation I&#8217;ve ever seen</title>
		<link>http://v3gard.com/2008/04/best-animation-ive-ever-seen/</link>
		<comments>http://v3gard.com/2008/04/best-animation-ive-ever-seen/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 16:15:53 +0000</pubDate>
		<dc:creator>Vegard Haugland</dc:creator>
				<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://v3gard.com/?p=34</guid>
		<description><![CDATA[This video is one of the most brilliant animations I have ever seen. If you haven't heard about the bird Kiwi yet, you had better check this one out.]]></description>
			<content:encoded><![CDATA[<p>This video is one of the most brilliant animations I have ever seen.</p>
<p>If you haven't heard about the bird Kiwi yet, you had better check this one out.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/sdUUx5FdySs?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/sdUUx5FdySs?fs=1&amp;hl=en_US" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://v3gard.com/2008/04/best-animation-ive-ever-seen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

