<?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>Rotzolotl Webkill*</title>
	<atom:link href="http://blog.datenkompost.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.datenkompost.de</link>
	<description>inb4 plagiate, daten terrorismus, humanpsychologie, self reflection and some other stuff</description>
	<lastBuildDate>Fri, 21 May 2010 17:33:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Microsoft released &#8220;Out Of Band&#8221; IE Update</title>
		<link>http://blog.datenkompost.de/2010/03/microsoft-released-out-of-band-ie-update/</link>
		<comments>http://blog.datenkompost.de/2010/03/microsoft-released-out-of-band-ie-update/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 15:14:58 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[exploits]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1642</guid>
		<description><![CDATA[Microsoft has released a new patch for Internet Explorer. According to the Microsoft Security Advisory, the reason for the out-of-band release was that the vulnerability described in CVE-2010-0806, &#8220;Uninitilized Memory Corruption Vulnerability&#8221;, was being widely seen in the wild.
On March 10th the exploit was added to the MetaSploit Framework, and instructions on how to use [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft has released a new patch for Internet Explorer. According to the <a href="http://www.microsoft.com/technet/security/advisory/981374.mspx">Microsoft Security Advisory</a>, the reason for the out-of-band release was that the vulnerability described in <a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0806">CVE-2010-0806</a>, &#8220;Uninitilized Memory Corruption Vulnerability&#8221;, was being widely seen in the wild.</p>
<p>On March 10th the exploit was added to the MetaSploit Framework, and instructions on how to use the exploit immediately being spread on many hacker boards. It was first seen on the replacement for Milw0rm, XpltDB: <a href="http://www.exploit-db.com/exploits/11683">Exploit-DB.com</a>.</p>
<p>You can find some more info at <a href="http://garwarner.blogspot.com/2010/03/microsoft-releases-out-of-band-ie.html">Gary Warner&#8217;s blog</a> (from where I got the news) or at <a href="http://www.rec-sec.com/2010/03/10/internet-explorer-iepeers-use-after-free-exploit/">Rec-Sec.com</a>.</p>
<p><span id="more-1642"></span>The Microsoft Bulletin is here:</p>
<p><a href="http://www.microsoft.com/technet/security/bulletin/ms10-018.mspx">ms10-018</a>.</p>
<p>Some of the issues addressed include:</p>
<p>CVE-2010-0267 &#8211; Uninitialized Memory Corruption Vulnerability<br />
CVE-2010-0488 &#8211; Post Encoding Information Disclosure Vulnerability<br />
CVE-2010-0489 &#8211; Race Condition Memory Corruption Vulnerability<br />
CVE-2010-0490 &#8211; Uninitialized Memory Corruption Vulnerability<br />
CVE-2010-0491 &#8211; HTML Object Memory Corruption Vulnerability<br />
CVE-2010-0492 &#8211; HTML Object Memory Corruption Vulnerability<br />
CVE-2010-0494 &#8211; HTML Element Cross-Domain Vulnerability<br />
CVE-2010-0805 &#8211; Memory Corruption Vulnerability<br />
CVE-2010-0806 &#8211; Uninitialized Memory Corruption Vulnerability<br />
CVE-2010-0807 &#8211; HTML Rendering Memory Corruption Vulnerability</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/03/microsoft-released-out-of-band-ie-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Energizer DUO: Trojan yourself for only $19.99</title>
		<link>http://blog.datenkompost.de/2010/03/energizer-duo-trojan-yourself/</link>
		<comments>http://blog.datenkompost.de/2010/03/energizer-duo-trojan-yourself/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 19:18:18 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[trojan]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1636</guid>
		<description><![CDATA[From CyberCrime &#038; Doing Time:
The Energizer DUO, a USB-powered battery recharger, was confirmed on Friday by Energizer Holdings to contain malicious code. According to this Energizer Press Release, they were notified by the CERT Coordination Center that the Windows software that ships with their DUO Charger &#8220;contains a vulnerability&#8221;.

Energizer has discontinued sale of this product [...]]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://garwarner.blogspot.com/2010/03/energizer-duo-trojan-yourself-for-only.html">CyberCrime &#038; Doing Time</a>:</p>
<p>The Energizer DUO, a USB-powered battery recharger, was confirmed on Friday by Energizer Holdings to contain malicious code. According to this <a href="http://phx.corporate-ir.net/phoenix.zhtml?c=124138&#038;p=irol-newsArticle_print&#038;ID=1399675">Energizer Press Release</a>, they were notified by the CERT Coordination Center that the Windows software that ships with their DUO Charger &#8220;contains a vulnerability&#8221;.</p>
<p><span id="more-1636"></span><br />
<blockquote><i>Energizer has discontinued sale of this product and has removed the site to download the software. In addition, the company is directing consumers that downloaded the Windows version of the software to uninstall or otherwise remove the software from your computer. This will eliminate the vulnerability. In addition CERT and Energizer recommend that users remove a file that may remain after the software has been removed. The file name is Arucer.dll, which can be found in the Window system32 directory.</i></p>
<p><i>Energizer is currently working with both CERT and U.S. government officials to understand how the code was inserted in the software. Additional technical information can be found at <a href="http://www.kb.cert.org/vuls/id/154421">http://www.kb.cert.org/vuls/id/154421</a>.</i></p></blockquote>
<p>Apparently Unix tutorial author <a href="http://www.darkmist.net/~schallee/unixtutorial/">Ed Schaller</a> was the one who reported the malware to US-CERT. US-CERT then asked Symantec to evaluate the malware, which was written up by Liam Murchu in the <a href="http://www.symantec.com/connect/blogs/trojan-found-usb-battery-charger-software">Symantec Security Response Blog</a>.</p>
<p>According to the US-CERT article, <code>Arucer.dll</code> is launched in the traditional way, with a &#8220;rundll32&#8243; call from the <code>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</code> key.</p>
<p>The hashes for the malware file, <code>Arucer.dll</code>, which is 28,672 bytes in size, are:</p>
<p><code>MD5: 1070be3e60a1868d2cd62fc90d76c861<br />
SHA1: d102b1d2538d8771be85403272e5a22a4b3f81ad</code></p>
<p>US-CERT indicates that the file properties indicate the file was written on a Chinese computer. (Language set = 0&#215;0804)</p>
<p>The detection on that malware as of last night is still pretty sketchy according to VirusTotal. In this <a href="http://www.virustotal.com/analisis/1c7f6f75617dd69a68d60224277a17f0720e7d68e4d321b7ae246f9c7dd2cfcf-1268019889">VirusTotal Report for Arucer.dll</a> it showed that only 9 of 42 anti-virus products would have triggered on this malware. Microsoft, Sunbelt, and Symantec are now detecting it as &#8220;Arugizer&#8221; (or Arurizer in Microsoft&#8217;s case). F-secure, Fortinet, McAfee, and Sophos are also detecting.</p>
<p>Although Symantec&#8217;s Liam indicates they were able to download the software from the Energizer website on Friday, all links we could find for the downloadable package, formerly at:<br />
hxxp://www.energizer.com/usbcharger/download/UsbCharger_setup_V1_1_1.exe<br />
now redirect to an Energizer homepage.</p>
<p>If you REALLY want to trojan yourself, perhaps your best bet is to buy one of these systems from a third party, such as Amazon.com who still offers <a href="http://www.amazon.com/Energizer-Charger-USB-Duo-Battery/dp/B001HA14G6/ref=sr_1_2?ie=UTF8&#038;s=electronics&#038;qid=1268051123&#038;sr=8-2">Energizer Charger USB Duo for $16.99</a>.</p>
<p>Symantec reports that after infection, the machine begins to listen on port 7777. Valid commands which can be sent to that port are in the form of XOR&#8217;ed CLSIDs, with the list being:</p>
<p><code>{E2AC5089-3820-43fe-8A4D-A7028FAD8C28}<br />
{F6C43E1A-1551-4000-A483-C361969AEC41}<br />
{EA7A2EB7-1E49-4d5f-B4D8-D6645B7440E3}<br />
{783EACBF-EF8B-498e-A059-F0B5BD12641E}<br />
{0174D2FC-7CB6-4a22-87C7-7BB72A32F19F}<br />
{98D958FC-D0A2-4f1c-B841-232AB357E7C8}<br />
{4F4F0D88-E715-4b1f-B311-61E530C2C8FC}<br />
{384EBE2C-F9EA-4f6b-94EF-C9D2DA58FD13}<br />
{8AF1C164-EBD6-4b2b-BC1F-64674E98A710}</code></p>
<p>US-CERT has released Snort rules for these various detects, which it has named:</p>
<p><code>Arucer Command Execution<br />
Arucer DIR Listing<br />
Arucer WRITE FILE command<br />
Arucer READ FILE command<br />
Arucer NOP command<br />
Arucer FIND FILE command<br />
Arucer YES command<br />
Arucer ADD RUN ONCE command<br />
Arucer DEL FILE command</code></p>
<p>which seems to indicate a wide-range of possibilities from this trojan.</p>
<p>Gregg Keizer wrote a nice piece for ComputerWorld on this topic: <a href="http://www.computerworld.com/s/article/9166978/Energizer_Bunny_s_software_infects_PCs">Energizer Bunny&#8217;s software infects PCs</a>, which reminds us that in 2007 Seagate shipped trojaned drives, and Apple shipped some trojaned iPods, and that in 2008 Best Buy sold Digital Picture frames with attack code in them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/03/energizer-duo-trojan-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build a Custom Sheet in Cocoa</title>
		<link>http://blog.datenkompost.de/2010/03/build-a-custom-sheet-in-cocoa/</link>
		<comments>http://blog.datenkompost.de/2010/03/build-a-custom-sheet-in-cocoa/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 18:51:59 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[interface builder]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1214</guid>
		<description><![CDATA[What is a sheet? Well, Cocoa introduced several new GUI elements like drawers that aren&#8217;t used by too many applications right now. They are used nicely, however, in Mail to house your mailboxes and in OmniWeb to store your bookmarks.
One of the elements that are available to Mac developers are called &#8220;sheets&#8221;. In particular, sheets [...]]]></description>
			<content:encoded><![CDATA[<p>What is a sheet? Well, Cocoa introduced several new GUI elements like drawers that aren&#8217;t used by too many applications right now. They are used nicely, however, in Mail to house your mailboxes and in OmniWeb to store your bookmarks.</p>
<p>One of the elements that are available to Mac developers are called &#8220;sheets&#8221;. In particular, sheets are those things that slide out of the title bar of a window. In fact, a sheet is just a <code>NSPanel</code> that is being attached to the application window at runtime. You can see a sheet in action when actually opening or saving a file.</p>
<p>What is the difference between a sheet that slides out and a modal window that pops up? Well, there are some serious considerations. You may also want to check out <a href="http://cocoadevcentral.com/articles/000014.php">this tutorial by Erik. J. Barzeski on CocoaDevCentral</a> which I used as a informational and textual base for this post. There you can find a little bit more about modal windows which I don&#8217;t want to explain right here in depth.</p>
<p>In short, sheets are a very stylish way to let the user know that a certain action needs to be done or that there is something wrong and that need to be fixed.</p>
<p><span id="more-1214"></span><strong>A Simple Example</strong></p>
<p>Create a new Cocoa application project in XCode. Choose the <i>Classes</i> folder from the &#8220;Groups &#038; Files&#8221; list on the left and add a new Cocoa class. Rename the file to &#8220;SheetController.m&#8221; and check the box right below where you type in the file name so XCode will generate both, the .h and .m file.</p>
<p>For a simple example application you don&#8217;t need to worry about any actions or outlets for any of the various controls. Instead, only two outlets are needed &#8211; one to the sheet and one to the main application window. Additionally add two actions &#8211; one for the window to call the sheet and one for the sheet to close.</p>
<p>Edit your header file to look like this:</p>
<pre class="prettyprint">
<code>#import &lt;Cocoa/Cocoa.h&gt;

@interface SheetController : NSWindowController
{
   IBOutlet id mainWindow;
   IBOutlet id panel;
}

- (IBAction)add:(id)sender;
- (IBAction)complete:(id)sender;
- (IBAction)cancelOperation:(id)sender;

@end

</code>
</pre>
<p>If you like to work from within Interface Builder you can simply subclass <code>NSWindowController</code> and add the appropriate outlets and actions and generate the files.</p>
<p>Otherwise, double-click <i>MainMenu.xib</i> in your project&#8217;s <i>Resources</i> folder to launch Interface Builder and drag your &#8220;SheetController.h&#8221; file into the <i>MainMenu.xib</i> window. Interface Builder will then parse the header and automatically add the needed object.</p>
<p>Sheets are of type <code>NSPanel</code> typically. Create a new panel and set it&#8217;s attributes like this:</p>
<p><img src="http://blog.datenkompost.de/wp-content/uploads/2010/03/ib_nspanel_attributes_small.png" alt="Interface Builder 3 NSPanel Attributes (Small)" title="Interface Builder 3 NSPanel Attributes (Small)" width="205" height="293" class="alignnone size-full wp-image-1237" style="float:left;margin-right:10px;" /></p>
<p>Give the panel a Title and set the attributes to your liking. You can safely disable close, resize and minimize as you don&#8217;t need them anyway. If you want the panel to be textured you should enable this option as well as leaving the shadow option enabled.</p>
<p>Be sure that you disable &#8220;visible at launch&#8221;, otherwise the panel would be visible when the application start and that not what we want here.</p>
<p>Sheets can be of type <code>NSWindow</code>, too. You would, in any case, set the same settings for the window as for the panel. In this example everything was prepared using Interface Builder but you could also create everything from code.</p>
<p>Go ahead and add some controls to the panel and be sure to add a button for closing the sheet again &#8211; typically named &#8220;Done&#8221;.</p>
<p>Next we&#8217;ll connect the outlets and actions and finally write the code to get the sheet running fine.</p>
<div style="clear:both;"></div>
<p>Connect (control-drag) from each of the buttons to your controller and attach them to the correct action. Likewise, control-drag from your controller to each of the windows (either in the MainMenu.xib window or to the actual on-screen layout representation).</p>
<p>Save your <i>MainMenu.xib</i> file and quit Interface Builder. It&#8217;s time to write some code.</p>
<p>Edit your code file to look like this:</p>
<pre class="prettyprint">
<code>#import "SheetController.h"

@implementation SheetController

- (IBAction)add:(id)sender
{
    [NSApp beginSheet:panel modalForWindow:mainWindow modalDelegate:self
    didEndSelector:NULL contextInfo:nil];
}

- (IBAction)complete:(id)sender
{
    [panel orderOut:nil];
    [NSApp endSheet:panel];
}

- (IBAction)cancelOperation:(id)sender
{
    [panel orderOut:nil];
    [NSApp endSheet:panel];
}

@end

</code>
</pre>
<p>So this is how a sheet would basically look like. If you&#8217;ve never seen <code>NSApp</code> before, it&#8217;s essentially a pointer to your application object. The next two portions of the method, <code>beginSheet:</code> and <code>modalForWindow:</code> tell your application which window/panel is the sheet, and which window to which it should attach the sheet.</p>
<p>I haven&#8217;t defined a delegate, so the sheet can act as its own delegate. The <code>didEndSelector:</code> and <code>contextInfo:</code> pieces are not necessary for simple sheets, so we pass them <code>NULL</code> and <code>nil</code>.</p>
<p>To get rid of the sheet, tell it to <code>orderOut:</code> (go away) and then tell the application to <code>endSheet:</code> &#8211; note that this is like a bookend to <code>beginSheet:</code>. And that&#8217;s literally all we&#8217;ve got to do. Of course, if we  wanted to read in the changes made in the sheet, we&#8217;d need outlets to all of the controls, buttons, text fields, etc. </p>
<p>That&#8217;s it! Save, Build, Run. Click the button. Watch the sheet appear.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/03/build-a-custom-sheet-in-cocoa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adding Version to CSS Files</title>
		<link>http://blog.datenkompost.de/2010/03/adding-version-to-css-files/</link>
		<comments>http://blog.datenkompost.de/2010/03/adding-version-to-css-files/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 12:52:49 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1566</guid>
		<description><![CDATA[Okay, this is something I have seen before, but it were never attracting my interest so far. But after reading Vladimir Prelovacs short note about adding a version to CSS files using PHP, I clearly understood why this little trick can be so useful when updating CSS files. Dunno why this didn&#8217;t come into consideration [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, this is something I have seen before, but it were never attracting my interest so far. But after reading <a href="http://www.prelovac.com/vladimir/adding-version-to-theme-css-file" target="_blank">Vladimir Prelovacs short note about adding a version to CSS files</a> using PHP, I clearly understood why this little trick can be so useful when updating CSS files. Dunno why this didn&#8217;t come into consideration before.</p>
<p>Basically if you often do any changes to your CSS the old version of the file will normally be served to your visitors as the cache expiration header is set to a far future time.</p>
<p>To remedy this a parameter needs to be added to the CSS file URL that will make it distinct every time you change it. Best way to do it is by using the timestamp of the file.</p>
<pre class="prettyprint">
<code>&lt;style type="text/css" media="screen"&gt;
   @import url(&lt;?php echo bloginfo('stylesheet_url'). '?' .
filemtime(get_stylesheet_directory() . '/style.css'); ?&gt;);
&lt;/style&gt;
</code></pre>
<p>For example here is how my CSS URL looks like:</p>
<pre class="prettyprint">
<code>&lt;style type="text/css" media="screen"&gt;
   @import url(http://blog.datenkompost.de/wp-content/themes/barecity_1.5/
style.css?1266235697);
&lt;/style&gt;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/03/adding-version-to-css-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Ghettotenna &#8211; Like an Antenna, Only Ghetto</title>
		<link>http://blog.datenkompost.de/2010/03/the-ghettotenna-like-an-antenna-only-ghetto/</link>
		<comments>http://blog.datenkompost.de/2010/03/the-ghettotenna-like-an-antenna-only-ghetto/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 21:56:10 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[ghetto hacks]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1529</guid>
		<description><![CDATA[If you&#8217;ve read this post, or this, or this, then you might be interested in another great ghetto hack. But for this one I had to grab deep back into time. With a little help of the WaybackMachine I got this back to present: The Ghettotenna. A great story, btw.
Found in the abyss: glitch13.com via [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve read <a href="http://blog.datenkompost.de/2009/08/real-ghetto-hacks/">this</a> post, or <a href="http://hackaday.com/2009/05/31/ghetto-electronics-repair/" target="_blank">this</a>, or <a href="http://www.engadget.com/2009/05/30/nvidia-gpu-resurrected-after-10-minutes-at-425-f/" target="_blank">this</a>, then you might be interested in another great ghetto hack. But for this one I had to grab deep back into time. With a little help of the <a href="http://www.archive.org/" target="_blank">WaybackMachine</a> I got this back to present: The Ghettotenna. A great story, btw.</p>
<p>Found in the abyss: <a href="http://web.archive.org/web/20051024010805/www.glitch13.com/singlenews.php?newsid=474" target="_blank">glitch13.com</a> via <a href="http://www.archive.org/" target="_blank">archive.org</a>.</p>
<p><span id="more-1529"></span><br />
<blockquote>Tuesday, August 2nd, 2005 @ 02:28 pm<br />
Posted By Brent</p>
<p><i>Last week my little brother had a bit of a delimma, one that he knew could only be solved by yours truly. After a quick diagnosis it was quite apparent that this man was having severe video game withdrawal and needed to pwn some n00bs as soon as possible. I quickly instructed him that Half Life 2 bundled with Counter Strike: Source was his best bet for relieving himself of this ailment, so forty dollars and two hours later he&#8217;s at his house installing Half Life 2. Unfortunately, he couldn&#8217;t get Steam to connect and authenticate his install, so I came over to help troubleshoot and lend moral support. So begins the events that would lead up to the design and construction of The Ghettotenna. </i></p>
<p><i>First thing I noticed was that he could browse the web just fine, it was only Steam that couldn&#8217;t get out. Actually the first thing I noticed was that his computer was littered with spyware, but that&#8217;s a different post all together. Second thing I noticed was that his wifi connection was on the rather Piss-Poor end of the spectrum. Thinking the signal strength may be the cause for this sketchy behavior, I set out to boost his reception to see if it would solve the problem. </i></p>
<p><i>Luckily, he was using one those USB wifi fobs on a cord for his wifi adaptor. Being the genius I am, and having read quite a bit about people boosting wifi signals with chinese wok utensils and Pringles cans, I knew I could whip up a ghetto solution in no time flat. Here is where we enter the meat of this post and the explanation of that weird ass piece of crap up there. </i></p>
<p><i>I start calling out to my brother for materials: Scissors, check. Shoe Box, check. Aluminum foil, check. Tape. Tape. Tape? No go on the tape so I quickly raid his closet and find a pristine box of Band-Aids. I won&#8217;t let this mission be grounded by a simple missing ingredient, so I throw all my materials (and the Band-Aids) together in a pile and get to work. </i></p>
<p><i>First, I take the lid to the shoe box and cut the angled lip off the edges so that it&#8217;s just a flat piece of cardboard a little larger than a standard sheet of paper. Next I wrap said sheet of cardboard multiple times in aluminum foil and <strike>tape</strike> Band-Aid it in place. Now that I have my signal reflecting surface, I roll in into a half-circle and <strike>tape</strike> Band-Aid one of the strips I cut off in step one across the opening to make it retain its shape. Once all of this was assembled I <strike>taped</strike> Band-Aided the adaptor to the shape-retaining strip of cardboard so that it would be in the dead center of the semi circle. </i></p>
<p><i>Here&#8217;s a diagram of where my thought processes were going with this. The black represents the semi-circular reflector, the grey spot is the adaptor, and the green represents magic wifi signals that I can&#8217;t actually prove exist. Or bounce off aluminum. Or remotely resemble crappy green dotted lines. Click on it to get a larger picture of it. Yeah, I know. Drink in its beauty.</i> </p>
<p><i>With everything together, I plugged it in, pointed the open end of it in the general direction of the access point, and BAM! His signal shot from &#8220;Low&#8221; to hovering between &#8220;Very Good&#8221; and &#8220;Excellent&#8221;(a two to three bar jump on a five bar scale). Once my brother&#8217;s roommate witnessed this, he sprang into action, his movements a blur of Band-Aids and aluminum foil. </i></p>
<p><i>This story is not without heartbreak, unfortunately. As anyone well versed in wifi knows, a low signal, as long as it is steady and doesn&#8217;t fluctuate, is perfectly fine and doesn&#8217;t interfere with connectivity at all. He still couldn&#8217;t get Steam to connect, and it wasn&#8217;t until I got his neighbor&#8217;s router login info did I realize what the problem was. Someone had filtered a handful of ports that, for reasons unknown, included the ports that Steam uses to communicate on. So our story ends on a high note, our hero is rewarded with a higher wifi signal and unadulterated n00b pwnage. </i></p>
<p><i>PS. For anyone interested, Jason modeled and rendered the beautiful image up there in Blender, an open source 3D Studio Max alternative. Here are examples of the source materials I gave him to base his model off of: </i></p>
<p><i>I feel sorry for all those people that threw thousands down the toilet for an engineering degree. Some people are just born with it, holmes.</i>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/03/the-ghettotenna-like-an-antenna-only-ghetto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hacking Cocoa: Method Swizzling</title>
		<link>http://blog.datenkompost.de/2010/03/hacking-cocoa-method-swizzling/</link>
		<comments>http://blog.datenkompost.de/2010/03/hacking-cocoa-method-swizzling/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 16:47:02 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[method swizzling]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1212</guid>
		<description><![CDATA[From cocoadev.com:
The Objective-C runtime lets you modify the mappings from a selector (method name) to an implementation (the method code itself). This allows you to &#8220;patch&#8221; methods in code you don&#8217;t have the source to (AppKit, FoundationKit, etc).
Unlike creating a category method with the same name as the original method (effectively replacing the original method), [...]]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://www.cocoadev.com/index.pl?MethodSwizzling" target="_blank">cocoadev.com</a>:</p>
<p>The Objective-C runtime lets you modify the mappings from a selector (method name) to an implementation (the method code itself). This allows you to &#8220;patch&#8221; methods in code you don&#8217;t have the source to (AppKit, FoundationKit, etc).</p>
<p>Unlike creating a category method with the same name as the original method (effectively replacing the original method), MethodSwizzling lets your replacement method make use of the original method, almost like subclassing.</p>
<p>This is best used in cases where a single method needs substitution or extension but if you need to modify many behaviors of a class, you may be better off using <a href="http://www.cocoadev.com/index.pl?ClassPosing" target="_blank">ClassPosing</a>.</p>
<p>But I found <a href="http://www.culater.net/wiki/moin.cgi/CocoaReverseEngineering" target="_blank">this</a> article way more informative and that, in turn, led my way to the <a href="http://www.culater.net/software/SIMBL/SIMBL.php" target="_blank">SIMBL</a> Framework which I can greatly recommend.</p>
<p>After thinking about this a couple of minutes you&#8217;ll also find a huge amount of possibilities and hack-arounds. But seriously, there are some things to consider like <a href="http://zathras.de/angelweb/blog-method-swizzling-considered-harmful.htm" target="_blank">this</a>.</p>
<p>To make it short, <a href="http://kevin.sb.org/2006/12/30/method-swizzling-reimplemented/" target="_blank">Kevin Ballards</a> code did fail in the 10.5 Mac OS X release and had to be rewritten. In fact, many code had to be rewritten which somehow led to <a href="http://github.com/rentzsch/jrswizzle" target="_blank">JRSwizzle</a>, a very good implementation that runs under Leopard and Snow Leopard.</p>
<p>So either using SIMBL or MethodSwizzling (JRSwizzle in particular) does the trick. It&#8217;s absolutely obvious to be very careful when swizzling methods or creating plugins via SIMBL &#8211; but the possibilities appear very clear and vast to me.</p>
<p>Another great possibility to hack around with Cocoa is <a href="http://www.fscript.org/" target="_blank">F-Script</a> by Philippe Mougin and <a href="http://homepage.mac.com/kenferry/software.html#fsa" target="_blank">F-ScriptAnywhere</a> by Ken Ferry. Two very essential tools when hacking just for fun or seriously developing Cocoa applications.<br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/03/hacking-cocoa-method-swizzling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Chess Board released</title>
		<link>http://blog.datenkompost.de/2010/03/quickchessboard-plugin/</link>
		<comments>http://blog.datenkompost.de/2010/03/quickchessboard-plugin/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 22:50:48 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[chess]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1105</guid>
		<description><![CDATA[This plugin for Wordpress allows you to display a chess diagram in your posts or pages.It uses a replication of the Wikipedia template &#8216;Chess diagram small&#8217; and a very basic syntax to insert such a board into a post or page.
Quick Chess Board uses small fragments of Viper007Bond&#8217;s Templatedia plugin.
Download details:
Filename: quickchessboard.zip
File size: 55.188 Bytes
Operating [...]]]></description>
			<content:encoded><![CDATA[<p>This plugin for Wordpress allows you to display a chess diagram in your posts or pages.<br/>It uses a replication of the Wikipedia template &#8216;Chess diagram small&#8217; and a very basic syntax to insert such a board into a post or page.</p>
<p>Quick Chess Board uses small fragments of <a href="http://www.viper007bond.com/wordpress-plugins/discontinued-plugins/templatedia/" target="_blank">Viper007Bond&#8217;s Templatedia plugin</a>.</p>
<p><span id="more-1105"></span>Download details:</p>
<p>Filename: <a href='http://blog.datenkompost.de/wp-content/uploads/2010/03/quickchessboard.zip'>quickchessboard.zip</a><br />
File size: 55.188 Bytes<br />
Operating system: N/A<br />
Additional requirements: Wordpress 2.7+<br />
MD5: 9f4b646d071358ff1cd2da59290379d2</p>
<p>Changes:</p>
<p><code>Quick Chess Board 1.0.0<br />
* Initial release</code></p>
<p>Example:</p>
<table border="0" cellpadding="0" cellspacing="0" width="520">
<tr>
<td valign="top" width="216">
<div class="smallboard" style="width: 220px; padding-top: 6px; padding-bottom: 10px">
		<div class="smallboard" style="width: 218px; text-align: center">
			
			<table style="border:1px solid #b0b0b0; background-color:#f9f9f9">
				<tr>
					<td>
						<table cellpadding="0" cellspacing="0" style="border: 1px solid #b0b0b0">
							<tr>
								<td colspan="3"><img src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/abcdefgh.png" alt="abcdefgh" width="206" height="16" /></td>
							</tr>
							<tr>
							<td><img src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/87654321.png" alt="87654321" width="14" height="178" /></td>
							<td>
								<table cellspacing="0" cellpadding="0" style="border: 1px solid #b0b0b0; background-color: #ffce9e">
									<tr>
										<td><img alt="a8" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/rd_l.png" width="22" height="22" /></td>
										<td><img alt="b8" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/nd_d.png" width="22" height="22" /></td>
										<td><img alt="c8" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/bd_l.png" width="22" height="22" /></td>
										<td><img alt="d8" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/qd_d.png" width="22" height="22" /></td>
										<td><img alt="e8" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/kd_l.png" width="22" height="22" /></td>
										<td><img alt="f8" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/bd_d.png" width="22" height="22" /></td>
										<td><img alt="g8" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/nd_l.png" width="22" height="22" /></td>
										<td><img alt="h8" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/rd_d.png" width="22" height="22" /></td>
									</tr>
									<tr>
										<td><img alt="a7" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pd_d.png" width="22" height="22" /></td>
										<td><img alt="b7" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pd_l.png" width="22" height="22" /></td>
										<td><img alt="c7" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pd_d.png" width="22" height="22" /></td>
										<td><img alt="d7" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pd_l.png" width="22" height="22" /></td>
										<td><img alt="e7" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="f7" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pd_l.png" width="22" height="22" /></td>
										<td><img alt="g7" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pd_d.png" width="22" height="22" /></td>
										<td><img alt="h7" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pd_l.png" width="22" height="22" /></td>
									</tr>
									<tr>
										<td><img alt="a6" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="b6" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="c6" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="d6" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="e6" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="f6" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="g6" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="h6" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
									</tr>
									<tr>
										<td><img alt="a5" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="b5" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="c5" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="d5" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="e5" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pd_d.png" width="22" height="22" /></td>
										<td><img alt="f5" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="g5" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="h5" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
									</tr>
									<tr>
										<td><img alt="a4" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="b4" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="c4" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="d4" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="e4" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pl_l.png" width="22" height="22" /></td>
										<td><img alt="f4" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pl_d.png" width="22" height="22" /></td>
										<td><img alt="g4" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="h4" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
									</tr>
									<tr>
										<td><img alt="a3" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="b3" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="c3" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="d3" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="e3" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="f3" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="g3" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="h3" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
									</tr>
									<tr>
										<td><img alt="a2" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pl_l.png" width="22" height="22" /></td>
										<td><img alt="b2" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pl_d.png" width="22" height="22" /></td>
										<td><img alt="c2" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pl_l.png" width="22" height="22" /></td>
										<td><img alt="d2" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pl_d.png" width="22" height="22" /></td>
										<td><img alt="e2" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_l.png" width="22" height="22" /></td>
										<td><img alt="f2" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/blank_d.png" width="22" height="22" /></td>
										<td><img alt="g2" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pl_l.png" width="22" height="22" /></td>
										<td><img alt="h2" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/pl_d.png" width="22" height="22" /></td>
									</tr>
									<tr>
										<td><img alt="a1" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/rl_d.png" width="22" height="22" /></td>
										<td><img alt="b1" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/nl_l.png" width="22" height="22" /></td>
										<td><img alt="c1" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/bl_d.png" width="22" height="22" /></td>
										<td><img alt="d1" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/ql_l.png" width="22" height="22" /></td>
										<td><img alt="e1" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/kl_d.png" width="22" height="22" /></td>
										<td><img alt="f1" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/bl_l.png" width="22" height="22" /></td>
										<td><img alt="g1" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/nl_d.png" width="22" height="22" /></td>
										<td><img alt="h1" src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/rl_l.png" width="22" height="22" /></td>
									</tr>
								</table>
							</td>
							<td><img src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/87654321.png" alt="87654321" width="14" height="178" /></td>
						</tr>
						<tr>
							<td colspan="3"><img src="http://blog.datenkompost.de/wp-content/plugins/quickchessboard/images/abcdefgh.png" alt="abcdefgh" width="206" height="16" /></td>
						</tr>
					</table>
				</td>
			</tr>
			<tr>
				<td style="line-height: 1.4; text-align: left; font-size: 90%; padding: 2px">Kings Gambit</td>
			</tr>
			</table>
		</div>
	</div></td>
<td valign="top" width="40">&nbsp;</td>
<td valign="top"><img src="http://blog.datenkompost.de/wp-content/uploads/2010/03/qcb_code.png" alt="" title="Quick Chess Board Template Code" width="216" height="241" class="alignnone size-full wp-image-1113" /></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/03/quickchessboard-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Business Model for Open Source Hardware</title>
		<link>http://blog.datenkompost.de/2010/02/a-business-model-for-open-source-hardware/</link>
		<comments>http://blog.datenkompost.de/2010/02/a-business-model-for-open-source-hardware/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 09:29:41 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1359</guid>
		<description><![CDATA[found at longtail.com:
The price of a typical gadget reflects two factors: the cost of making it and the price its inventor is charging for the intellectual property in it. Often the second can be many times the first (as in the case of an Intel processor chip, for example, which costs just a few dollars [...]]]></description>
			<content:encoded><![CDATA[<p>found at <a href="http://www.longtail.com/the_long_tail/2009/01/a-business-mode.html" target="_blank">longtail.com</a>:</p>
<p>The price of a typical gadget reflects two factors: the cost of making it and the price its inventor is charging for the intellectual property in it. Often the second can be many times the first (as in the case of an Intel processor chip, for example, which costs just a few dollars to make but can sell for hundreds of dollars).</p>
<p>But if you don’t charge for intellectual property, gadgets can get a lot cheaper, and potentially reach a much larger market. That’s the philosophy behind “open source hardware”. You give away all the intellectual property (schematics, PCB files, firmware, software, assembly instructions, etc.) but sell the completed units, charging only a set markup on the cost of the hardware itself, which you disclose.</p>
<p>But what’s the right markup that leads to the lowest cost for consumers and still makes money for you? With the help of some open source hardware experts (Lenore Edman, Limor Fried and Phillip Torrone), <a href="http://www.longtail.com/" target="_blank">Chris Anderson</a> found the business model he settled on.</p>
<p><span id="more-1359"></span><strong>The Forty Percent Model</strong></p>
<p>This model is based on a simple rule: transparency about costs and a choice between paying us to make the product or doing it yourself.</p>
<p>The basic process is that we list all the components and other costs of the product and links to where you can buy them yourself, along with instructions on how to put them together. If you want to do it yourself, or perhaps already have some of the parts and don’t need ours, go for it!</p>
<p>But if you want us to make it for you (guaranteed to work), because it’s easier, safer, quicker, etc, we would charge you a 66% markup, which give us 40% profit. </p>
<p><i>(Aside: People often confuse markup and margin. Think of it this way: if a product costs $1 and you mark it up to $1.66, you have a 40% profit margin. $0.66 is 40% of $1.66.) </i></p>
<p>Let&#8217;s say you want to make your own company and compete with us, charging a lower markup to undercut us in price. Excellent—consumers win! All of our source code and PCB/schematic files are open source and licensed to allow commercial use, and if someone else is making the products, it costs us nothing. If you can make it cheaper or better than us, that’s great—the market will grow and we’ll have more people using our stuff. The only requirement of the license is that you credit us for the design and link back to us.</p>
<p><strong>The Third-Party Catch</strong></p>
<p>Okay, the above is a great model when you’re just selling from your own website. But what if you want your product sold through third-party retailers, who can collectively have far greater reach than any one company? Then the economics get a little more complicated because you need two 40% profit margins, one for you and one for the retailer.</p>
<p>So the markups now go like this: $1 –>$1.66 –>$2.76. Furthermore, you must avoid “channel conflict” by undercutting your retail partners, so you need to charge pretty much the same price everywhere, including your own site. So your $1.66 product must now be priced at $2.76, which is a 64% profit margin for direct sales. </p>
<p>We thought that was too high and would feel like a ripoff when we disclosed all the costs to our customers. What to do?</p>
<p>The answer came in limiting our pricing transparency—we wouldn’t disclose our volume discounts. Because we buy in bulk, our costs are actually much lower than the single-unit costs that we post and would be available to a DIYer. So it’s not total transparency, only as much transparency as we can practically offer given the fact that those discounts change from order to order and suppliers don’t want the exact size of those discounts made public. </p>
<p>So we’ll post single-unit prices available to all, even though we actually pay less for most items. We can’t disclose how much less, but it should average about to 30-40%.</p>
<p><strong>The final model: Semi-Transparent Pricing</strong></p>
<p>1. Disclose the prices for components in single-unit quantities and link to sources people can buy from, but do not list our volume discount prices.</p>
<p>2. Set our direct sales price as the sum of the single-unit prices (call that “apparent cost”) plus 66%. However, our actual costs are lower due to our volume discounts, so our actual margin is higher. The point, however, remains: we will only charge 66% more than it would cost you to DIY. </p>
<p>3. Our wholesale price is the apparent cost, allowing retailers to add the 66% markup for themselves. Our own profit comes from the difference between the apparent cost and whatever our real cost is with volume discounts. The harder we push on those discounts, the more money we make.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/02/a-business-model-for-open-source-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meh released</title>
		<link>http://blog.datenkompost.de/2010/02/meh/</link>
		<comments>http://blog.datenkompost.de/2010/02/meh/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 18:24:05 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=978</guid>
		<description><![CDATA[Meh is a very simple screen capturing utility which works similar to the Mac OS X built-in screenshot hotkey functions. I just wanted something similar. Here it is.
Thanks to blogwart for all the testing.
Download details:
Filename: meh.zip
File size: 14.805 Bytes
Operating system: Microsoft Windows 2000, XP &#038; Vista
Additional requirements: Microsoft .NET Framework 2.0 or above
MD5: ﻿0b8a21d5093784c398a611e62f3fb4ac
Changes:
Meh 1.0.0.3
* [...]]]></description>
			<content:encoded><![CDATA[<p>Meh is a very simple screen capturing utility which works similar to the Mac OS X built-in screenshot hotkey functions. I just wanted something similar. Here it is.</p>
<p>Thanks to <a href="http://datenkompost.de/media/" target="_blank">blogwart</a> for all the testing.</p>
<p><span id="more-978"></span>Download details:</p>
<p>Filename: <a href='http://blog.datenkompost.de/wp-content/uploads/2010/02/meh.zip'>meh.zip</a><br />
File size: 14.805 Bytes<br />
Operating system: Microsoft Windows 2000, XP &#038; Vista<br />
Additional requirements: Microsoft .NET Framework 2.0 or above<br />
MD5: ﻿0b8a21d5093784c398a611e62f3fb4ac</p>
<p>Changes:</p>
<p><code>Meh 1.0.0.3<br />
* Initial release</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/02/meh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project: New World Order</title>
		<link>http://blog.datenkompost.de/2010/02/project-new-world-order/</link>
		<comments>http://blog.datenkompost.de/2010/02/project-new-world-order/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 17:25:51 +0000</pubDate>
		<dc:creator>anon</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[diplomacy]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://blog.datenkompost.de/?p=1139</guid>
		<description><![CDATA[Recently I started to make up my mind to create a simple but yet complex game that is playable via E-Mail. About a year ago I watched my inmate playing Diplomacy. A very simple tabletop that advanced to a very good pen and paper game.
But as the match progressed I found it very boring and [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I started to make up my mind to create a simple but yet complex game that is playable via E-Mail. About a year ago I watched my inmate playing <a href="http://en.wikipedia.org/wiki/Diplomacy_(game)" target="_blank">Diplomacy</a>. A very simple tabletop that advanced to a very good pen and paper game.</p>
<p>But as the match progressed I found it very boring and way too linear and somehow too static. So I thought about modifications and such, but always ended up changing to many things to call it just a modification. The idea was born.</p>
<p>With all the things in mind I asked some friends if they would like to assist in testing and further developing the game. Fortunately they all agreed, so we collected all our ideas and tried to measure the efforts to get things done.</p>
<p>Here are some of the project goals and features:</p>
<ul class="ul_cripple">
<li>Extend diplomatics</li>
<li>Tactically helpful and rich detailed map</li>
<li>Keep the game leader role and slightly giving it more permissions</li>
<li>More units like: Infantry, Artillery/Tanks, Submarines, Transporters etc.</li>
<li>Units can have different troop strength</li>
<li>Implement random events (like card stacks)</li>
<li>A piece of software that helps managing the game data</li>
<li>Modified commands and rule-sets</li>
</ul>
<p>I am currently fiddling the game rules and the world map, as well as all the units, participating nations and such. Most of the things that we&#8217;re already written are in German language, so it will take a while till everything is translated.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.datenkompost.de/2010/02/project-new-world-order/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
