<?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></title>
	<atom:link href="http://berfenfeldt.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://berfenfeldt.com</link>
	<description></description>
	<lastBuildDate>Tue, 05 Jul 2011 09:34:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>MVC3 Datetime2 out of range</title>
		<link>http://berfenfeldt.com/2011/mvc3-datetime2-out-of-range/</link>
		<comments>http://berfenfeldt.com/2011/mvc3-datetime2-out-of-range/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 09:26:57 +0000</pubDate>
		<dc:creator>JensB</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[MVC3]]></category>

		<guid isPermaLink="false">http://berfenfeldt.com/?p=1037</guid>
		<description><![CDATA[<p>Been coding a bit with Microsofts MVC3 web framework lately and ran into this error:</p> <p>{"The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.\r\nThe statement has been terminated."}</p> <p>Apparently this is not an uncommon problem. There are quite a few forum threads about it but finding the [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Been coding a bit with Microsofts MVC3 web framework lately and ran into this error:</p>
<p><strong><code>{"The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.\r\nThe statement has been terminated."}</code></strong></p>
<p>Apparently this is not an uncommon problem. There are quite a few forum threads about it but finding the reason or even better a solution was quite hard.</p>
<p><strong>The reason:</strong><br />
The DateTime type in C# differs from the one that SQL uses.<br />
C# can have null values and also accepts a wider span of dates, i.e: the date 0001/01/01 00:00 is ok in C#&#8217;s but throws the error above in SQL.</p>
<p><strong>Solution</strong><br />
Solution one is to make sure you set all date variables to supported values (1753/1/1 to 9999/12/31) before you commit them to SQL.</p>
<p>The second option is to run this script on the Database after you rebuild it to replace the date type used on the columns to one that allows the same dates that C# does.</p>
<pre class="brush: sql; title: ;">DECLARE @SQL AS NVARCHAR(1024)
DECLARE @TBL AS NVARCHAR(255)
DECLARE @COL AS NVARCHAR(255)
DECLARE @NUL AS BIT
DECLARE CUR CURSOR FAST_FORWARD FOR
    SELECT  t.name, c.name, c.is_nullable
    FROM    sys.tables AS t
    JOIN    sys.columns c ON t.object_id = c.object_id
    JOIN    information_schema.columns i ON i.TABLE_NAME = t.name AND i.COLUMN_NAME = c.name
    WHERE   i.data_type = 'datetime' and t.name not like '%aspnet%'

    ORDER BY t.name, c.name

OPEN CUR
FETCH NEXT FROM CUR INTO @TBL, @COL, @NUL
WHILE @@FETCH_STATUS = 0
BEGIN
    SELECT @SQL = 'ALTER TABLE ' + @TBL + ' ALTER COLUMN ' + @COL + ' datetime2' + (CASE WHEN @NUL=1 THEN '' ELSE ' NOT' END) + ' NULL;'
    EXEC sp_executesql @SQL
    FETCH NEXT FROM CUR INTO @TBL, @COL, @NUL
END

CLOSE CUR;
DEALLOCATE CUR;
</pre>
<p>I used a mix of the two. I first ran the script and then went though my database tables to find out which columns in the database I was setting with &#8220;incorrect&#8221; dates and made sure I set those properly.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://berfenfeldt.com/2011/mvc3-datetime2-out-of-range/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clifftop Panorama.</title>
		<link>http://berfenfeldt.com/2011/clifftop-panorama/</link>
		<comments>http://berfenfeldt.com/2011/clifftop-panorama/#comments</comments>
		<pubDate>Tue, 10 May 2011 20:01:55 +0000</pubDate>
		<dc:creator>JensB</dc:creator>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Panorama]]></category>

		<guid isPermaLink="false">http://berfenfeldt.com/?p=1031</guid>
		<description><![CDATA[<p>Here is my next attempt at a panorama, the image is 50 Megapixels (10000 x 5000 pixels), and close to 60Mb in size, so dont try to download a copy unless you&#8217;ve got a good internet connection</p> <p>Related posts:<a href='http://berfenfeldt.com/2011/first-attempt-at-panorama/' rel='bookmark' title='Permanent Link: First attempt at panorama.'>First attempt at panorama.</a> <a href='http://berfenfeldt.com/2011/first-attempt-at-panorama/' rel='bookmark' title='Permanent Link: [...]


Related posts:<ol><li><a href='http://berfenfeldt.com/2011/first-attempt-at-panorama/' rel='bookmark' title='Permanent Link: First attempt at panorama.'>First attempt at panorama.</a></li>
<li><a href='http://berfenfeldt.com/2011/first-attempt-at-panorama/' rel='bookmark' title='Permanent Link: First attempt at panorama.'>First attempt at panorama.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Here is my next attempt at a panorama, the image is 50 Megapixels (10000 x 5000 pixels), and close to 60Mb in size, so dont try to download a copy unless you&#8217;ve got a good internet connection<br />

<a href="http://berfenfeldt.com/wp-content/gallery/panorama/rockpano.png" title="" class="thickbox" rel="singlepic507" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/507__810x810_rockpano.png" alt="rockpano" title="rockpano" />
</a>
</p>


<p>Related posts:<ol><li><a href='http://berfenfeldt.com/2011/first-attempt-at-panorama/' rel='bookmark' title='Permanent Link: First attempt at panorama.'>First attempt at panorama.</a></li>
<li><a href='http://berfenfeldt.com/2011/first-attempt-at-panorama/' rel='bookmark' title='Permanent Link: First attempt at panorama.'>First attempt at panorama.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://berfenfeldt.com/2011/clifftop-panorama/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A spring photo shoot</title>
		<link>http://berfenfeldt.com/2011/a-spring-photo-shoot/</link>
		<comments>http://berfenfeldt.com/2011/a-spring-photo-shoot/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 19:07:51 +0000</pubDate>
		<dc:creator>JensB</dc:creator>
				<category><![CDATA[Escapading]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[photos]]></category>

		<guid isPermaLink="false">http://berfenfeldt.com/?p=996</guid>
		<description><![CDATA[<p>Went out on the first of many inlines runs this year and happened to bring my camera along, took a few pictures out of which these three turned out pretty ok. I like this first one the most.</p> <p><br /> </p> <p></p> <p>Related posts:<a href='http://berfenfeldt.com/2010/canon-eos-550d/' rel='bookmark' title='Permanent Link: Canon EOS 550D'>Canon EOS 550D</a> <a href='http://berfenfeldt.com/2009/morning-route-to-work/' [...]


Related posts:<ol><li><a href='http://berfenfeldt.com/2010/canon-eos-550d/' rel='bookmark' title='Permanent Link: Canon EOS 550D'>Canon EOS 550D</a></li>
<li><a href='http://berfenfeldt.com/2009/morning-route-to-work/' rel='bookmark' title='Permanent Link: morning route to work'>morning route to work</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Went out on the first of many inlines runs this year and happened to bring my camera along, took a few pictures out of which these three turned out pretty ok. I like this first one the most.<br />

<a href="http://berfenfeldt.com/wp-content/gallery/spring2011/mg_1668.jpg" title="" class="thickbox" rel="singlepic485" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/485__810x810_mg_1668.jpg" alt="mg_1668" title="mg_1668" />
</a>
<br />
<span id="more-996"></span><br />
<br />

<a href="http://berfenfeldt.com/wp-content/gallery/spring2011/mg_1662.jpg" title="" class="thickbox" rel="singlepic484" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/484__810x810_mg_1662.jpg" alt="mg_1662" title="mg_1662" />
</a>
<br />

<a href="http://berfenfeldt.com/wp-content/gallery/spring2011/mg_1658.jpg" title="" class="thickbox" rel="singlepic482" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/482__810x810_mg_1658.jpg" alt="mg_1658" title="mg_1658" />
</a>
<br />
<!--OffDef--></p>


<p>Related posts:<ol><li><a href='http://berfenfeldt.com/2010/canon-eos-550d/' rel='bookmark' title='Permanent Link: Canon EOS 550D'>Canon EOS 550D</a></li>
<li><a href='http://berfenfeldt.com/2009/morning-route-to-work/' rel='bookmark' title='Permanent Link: morning route to work'>morning route to work</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://berfenfeldt.com/2011/a-spring-photo-shoot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Generate Worms Style Terrain, Perlin Noise in XNA</title>
		<link>http://berfenfeldt.com/2011/generate-worms-style-terrain-perlin-noise-in-xna/</link>
		<comments>http://berfenfeldt.com/2011/generate-worms-style-terrain-perlin-noise-in-xna/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 12:26:25 +0000</pubDate>
		<dc:creator>JensB</dc:creator>
				<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Programs]]></category>

		<guid isPermaLink="false">http://berfenfeldt.com/?p=967</guid>
		<description><![CDATA[<p>Have been testing what <a href="http://msdn.microsoft.com/en-us/library/bb200104.aspx">Microsofts XNA framework</a> can do and am toying with the idea of making some sort of <a href="http://www.google.se/images?hl=sv&#038;safe=off&#038;q=Worms%202">Worms</a> style game. Spent a few minutes today googling on how one can generate the terrain for such a game and found a few pages which explained parts of it but no place [...]


Related posts:<ol><li><a href='http://berfenfeldt.com/2011/blinky-sound-level-warning/' rel='bookmark' title='Permanent Link: Project: Blinky &#8211; Sound Level Warning'>Project: Blinky &#8211; Sound Level Warning</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Have been testing what <a href="http://msdn.microsoft.com/en-us/library/bb200104.aspx">Microsofts XNA framework</a> can do and am toying with the idea of making some sort of <a href="http://www.google.se/images?hl=sv&#038;safe=off&#038;q=Worms%202">Worms</a> style game. Spent a few minutes today googling on how one can generate the terrain for such a game and found a few pages which explained parts of it but no place really contained any good working examples.<br />
So after spending a few hours with the examples I could find I came up with an algorithm which works pretty well.</p>
<p>Here is an example of what the code generates:</p>

<a href="http://berfenfeldt.com/wp-content/gallery/miscellaneous/wormsstyleterraininxna.png" title="" class="thickbox" rel="singlepic477" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/477__766x374_wormsstyleterraininxna.png" alt="wormsstyleterraininxna" title="wormsstyleterraininxna" />
</a>

<p>This is example terrain was generated in about 2 second.</p>
<p><!--OffDef--><span id="more-967"></span><br />
</p>
<p>Here is the code:</p>
<pre class="brush: csharp; title: ;">
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;

namespace TankersTD.Tankers.Tools
{
    class TerrainGenerator
    {
        private double initFrequency, initAmplitude, persistance;
        private int octaves, seed;

        public Texture2D generateTerrain(GraphicsDevice gd,
                int width, int height, double ammountofearth,
                double initFrequency, double initAmplitude, double persistance, int octaves )
		{
			this.initFrequency	= initFrequency;
			this.initAmplitude	= initAmplitude;
			this.persistance	= persistance;
			this.octaves		= octaves;

            seed = System.DateTime.Now.Millisecond;

            Texture2D result = new Texture2D(gd, width, height);
            Color[] cData = new Color[width * height];

            int t_he = 1, t_wi = 1;
            for (int x = 1; x &lt; width*height; x++)
            {
                if (t_wi &gt; width)
                {
                    t_he++;
                    t_wi = 1;
                }
                double val = Function2D((double)t_wi, (double)t_he);
                if (val &gt; (ammountofearth*-1))
                    cData[x] = Color.Black;
                t_wi++;
            }

            result.SetData(cData);
            return result;
        }

        // returns the Perlin Noise value for the given coordinate
        private double Function2D(double x, double y)
		{
			double	frequency = initFrequency;
			double	amplitude = initAmplitude;
			double	sum = 0;
			for ( int i = 0; i &lt; octaves; i++ )
			{
				sum += SmoothedNoise( x * frequency, y * frequency ) * amplitude;

				frequency *= 2;
				amplitude *= persistance;
			}
			return sum;
		}

		private double Noise( int x, int y )
		{
			int n = x + y * 57;
			n = ( n &lt;&lt; 13 ) ^ n ;
            return (1.0 - ((n * (n * n * (15731 + seed) + 789221- seed) + 1376312589) &amp;amp;amp;amp; 0x7fffffff) / 1073741824.0);
		}

		private double SmoothedNoise( double x, double y )
		{
			int		xInt = (int) x;
			int		yInt = (int) y;
			double	xFrac = x - xInt;
			double	yFrac = y - yInt;
			double	x0y0 = Noise( xInt    , yInt );
			double	x1y0 = Noise( xInt + 1, yInt );
			double	x0y1 = Noise( xInt    , yInt + 1 );
			double	x1y1 = Noise( xInt + 1, yInt + 1) ;
			double	v1 = CosineInterpolate( x0y0, x1y0, xFrac );
			double	v2 = CosineInterpolate( x0y1, x1y1, xFrac );
			return CosineInterpolate( v1, v2, yFrac );
		}

		private double CosineInterpolate( double x1, double x2, double a )
		{
			double f = ( 1 - Math.Cos( a * Math.PI ) ) * 0.5;
			return x1 * ( 1 - f ) + x2 * f;
		}
    }
}
</pre>
<p>The code is used like this (the picture above was generated using these input variables):</p>
<pre class="brush: csharp; title: ;">
TerrainGenerator terraingenerator = new TerrainGenerator();
Texture2D ter = terraingenerator.generateTerrain(
        graphics.GraphicsDevice, 2048, 1024, -0.1, 0.0225, .5, 0.05, 1);
</pre>


<p>Related posts:<ol><li><a href='http://berfenfeldt.com/2011/blinky-sound-level-warning/' rel='bookmark' title='Permanent Link: Project: Blinky &#8211; Sound Level Warning'>Project: Blinky &#8211; Sound Level Warning</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://berfenfeldt.com/2011/generate-worms-style-terrain-perlin-noise-in-xna/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Project: Blinky &#8211; Sound Level Warning</title>
		<link>http://berfenfeldt.com/2011/blinky-sound-level-warning/</link>
		<comments>http://berfenfeldt.com/2011/blinky-sound-level-warning/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 10:36:41 +0000</pubDate>
		<dc:creator>JensB</dc:creator>
				<category><![CDATA[Computers/Servers]]></category>
		<category><![CDATA[Programs]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://berfenfeldt.com/?p=909</guid>
		<description><![CDATA[<p>My office recently moved from a building in which the  rooms were were quite small and only a few people sat in each room to an office in which everyone sits in a large open space.</p> <p>A concern we had with the new office was that the background noise would be quite loud when everyone is talking [...]


Related posts:<ol><li><a href='http://berfenfeldt.com/2009/my-office-haldex-run/' rel='bookmark' title='Permanent Link: my office &#038; Haldex Run'>my office &#038; Haldex Run</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>My office recently moved from a building in which the  rooms were were quite small and only a few people sat in each room to an office in which everyone sits in a large open space.</p>
<p>A concern we had with the new office was that the background noise would be quite loud when everyone is talking on the phone and conversing between each other.  We diden&#8217;t want to divide the room into smaller sections so one solution we had to this problem was to buy some sort of decibel detecting device that would warn when the sound level got too high. Unfortuately those devices are hard to find and quite expensive so I instead set out to see if I could build a cheap but just as good detector myself.</p>
<p>Here is a video of the result:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="800" height="500" 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/q6hS0hxYAzQ?hl=sv&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="800" height="500" src="http://www.youtube.com/v/q6hS0hxYAzQ?hl=sv&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>There were three problems to solve in order to get this to work.</p>
<p>(1) Sound Detection &#8211; How loud is it, and when is it to loud.<br />
(2) Controll - some sort of switch board to open or close a channel when sound is to loud.<br />
(3) Warning &#8211; Making the switch board turn on a stroboscope.</p>
<p><span id="more-909"></span></p>
<h3>Problem (1), Sound Detection.</h3>
<p>To analyze the sound in the office I thought I would use one of the old laptops which noone uses anymore and build a program which would read input from a microphone and create some sort of average of the current sound levels. I started building this in C# .net 4.0 and it turned out pretty good.</p>
<p>I used <a href="http://naudio.codeplex.com/">NAudio</a> to read a byte[] from the microphone and then analyzed this data to see how &#8220;loud&#8221; the sound is.</p>
<p>Here is a screenshot of the program:<br />

<a href="http://berfenfeldt.com/wp-content/gallery/blinky/screenshot.jpg" title="" class="thickbox" rel="singlepic476" >
	<img class="ngg-singlepic ngg-right" src="http://berfenfeldt.com/wp-content/gallery/cache/476__421x288_screenshot.jpg" alt="screenshot" title="screenshot" />
</a>
</p>
<p>The top green bar moves back and forth as sound decreases or increases. If the bar goes past the red line then the sound is to loud. Two of the three sliders are used to calibrate when this happens.</p>
<p>&#8220;Smoothing&#8221; is used to tell the program how sensitive it should be, the farther to the left the slider is the more sensitive it is to sudden changes in sound levels.</p>
<p>&#8220;Multiply&#8221; is used to set the detection level of the program, slide this back and forth untill the measuring bar responds to noise as you want and dosen&#8217;t spike for every sound you make. This is basically how much the program should multiply the input that it is reading from the microphone.</p>
<p>The final slider, &#8220;Blinky Time&#8221;, is just a setting to tell the program how long it should let the blinker stay on once noise has gone below the limit again.</p>
<p>The complete Visual Studio 2010 Project is linked at the bottom, but here is the code for just the sound detection:</p>
<pre class="brush: csharp; title: ;">
using System;
using NAudio.Wave;
using NAudio.Midi;
using System.Collections;

namespace Volumizer
{
    class SoundController
    {
        private WaveIn waveInStream;
        private double average;
        public SoundController()
        {
            waveInStream = new WaveIn();
            waveInStream.BufferMillisconds = 10; // Mic polling intervall
            waveInStream.DataAvailable +=
                    new EventHandler&lt;WaveInEventArgs&gt;(waveInStream_DataAvailable);
        }
        void waveInStream_DataAvailable(object sender, WaveInEventArgs e)
        {
            byte[] _buffer = e.Buffer;
            int skipnum = 4; // dont need to read every byte of data
                             // skip a few bytes to speed it up.
            double sum = 0;
            for (var i = 0; i &lt; _buffer.Length; i = i + 2 + skipnum )
            {
                double sample = BitConverter.ToInt16(_buffer, i) / 32768.0;
                sum += (sample * sample);
            }
            double rms = Math.Sqrt(sum / _buffer.Length / skipnum );
            var decibel = 20 * Math.Log10(rms);
            average = decibel;
        }
        public double getSoundLevel()
        {
            return average;
        }
        public void startMeasuring()
        {
            waveInStream.StartRecording();
        }
        public void stopMeasuring()
        {
            waveInStream.StopRecording();
            waveInStream = null;
        }

    }
}
</pre>
<h3>Problem (2), Controlling some sort of output / switchboard</h3>
<p>There are a number of controller boards which can be connected and controlled though a USB port, I used a <a href="http://www.velleman.eu/distributor/products/view/?country=be&amp;lang=en&amp;id=351346">Velleman K8055</a>. I chose this board mostly because it was available on short notice in an electronics store near me, if you have more patience you could check out <a href="http://www.pololu.com/catalog/category/13">Pololu</a> and probably spend a little less money.</p>
<p>The nice thing about the K8055 is that it is easily controlled though C# using the included SDK / DLL.<br />
To turn on a digital output (i.e. turn the light switch on or off) all you need to do is import the functions from the included dll file:</p>
<pre class="brush: csharp; title: ;">
[DllImport("k8055d.dll")]
public static extern void SetDigitalChannel(int Channel);

[DllImport("k8055d.dll")]
public static extern void ClearDigitalChannel(int Channel);
</pre>
<p>I then made the program call these functions based on if the sound was to loud or not.</p>
<h3>Problem (3), Relays and Stroboscopes</h3>
<p>The digital output on the cirtuitboard has a maximum throughput of 50V/100mA so instead of connecting the warning light directly to the board I used the board to power a <a href="http://en.wikipedia.org/wiki/Relay">relay</a> which in turned powered my warning light, that way there&#8217;s no risk of putting to much power through the circuits.</p>
<p>Here are a few pictures of it (and yes, I used a small lunchbox to protect the electronics <img src='http://berfenfeldt.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ):</p>
<table border="0">
<tbody>
<tr>
<td>
<a href="http://berfenfeldt.com/wp-content/gallery/blinky/dilrelay.jpg" title="" class="thickbox" rel="singlepic475" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/475__230x810_dilrelay.jpg" alt="dilrelay" title="dilrelay" />
</a>
</td>
<td>
<a href="http://berfenfeldt.com/wp-content/gallery/blinky/circuit.jpg" title="" class="thickbox" rel="singlepic474" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/474__230x810_circuit.jpg" alt="circuit" title="circuit" />
</a>
</td>
<td>
<a href="http://berfenfeldt.com/wp-content/gallery/blinky/box.jpg" title="" class="thickbox" rel="singlepic473" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/473__230x810_box.jpg" alt="box" title="box" />
</a>
</td>
</tr>
<tr>
<td>
<a href="http://berfenfeldt.com/wp-content/gallery/blinky/img_4265.jpg" title="" class="thickbox" rel="singlepic466" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/466__230x810_img_4265.jpg" alt="img_4265" title="img_4265" />
</a>
</td>
<td>
<a href="http://berfenfeldt.com/wp-content/gallery/blinky/img_4264.jpg" title="" class="thickbox" rel="singlepic465" >
	<img class="ngg-singlepic ngg-center" src="http://berfenfeldt.com/wp-content/gallery/cache/465__230x810_img_4264.jpg" alt="img_4264" title="img_4264" />
</a>
</td>
<td></td>
</tr>
</tbody>
</table>
<p>Good luck making your own!</p>
<a title="Downloaded 23 times" href="http://berfenfeldt.com/files/ProjectBlinky.zip">Project Blinky </a> 1.0 - 2.04 MB. 23 Downloads <br>The Visual Studio 2010 Solution for project Blinky.<br>


<p>Related posts:<ol><li><a href='http://berfenfeldt.com/2009/my-office-haldex-run/' rel='bookmark' title='Permanent Link: my office &#038; Haldex Run'>my office &#038; Haldex Run</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://berfenfeldt.com/2011/blinky-sound-level-warning/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
