<?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>Alex Fajkowski &#187; Open Source</title>
	<atom:link href="http://fajkowski.com/blog/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://fajkowski.com/blog</link>
	<description>Software and other interesting stuff…</description>
	<lastBuildDate>Fri, 23 Jul 2010 20:20:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>OpenFlow: a CoverFlow API replacement for the iPhone</title>
		<link>http://fajkowski.com/blog/2009/08/02/openflow-a-coverflow-api-replacement-for-the-iphone/</link>
		<comments>http://fajkowski.com/blog/2009/08/02/openflow-a-coverflow-api-replacement-for-the-iphone/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 19:47:52 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[coverflow]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[openflow]]></category>

		<guid isPermaLink="false">http://fajkowski.com/blog/?p=115</guid>
		<description><![CDATA[When I released my first iPhone app, Presenter, two months ago, Apple accused me of using their private iPhone CoverFlow API. After appealing to Apple &#038; writing a blog post about my roadblock, Apple reversed their decision. Today at iPhoneDevCamp, I am releasing OpenFlow&#8211;a free, open source replacement for Apple&#8217;s private CoverFlow API. The initial [...]]]></description>
			<content:encoded><![CDATA[<p>When I released my first iPhone app, Presenter, two months ago, <a href="http://fajkowski.com/blog/2009/05/21/clicker-app-rejected-for-coverflow-private-api-use/">Apple accused me of using their private iPhone CoverFlow API</a>. After appealing to Apple &#038; writing a blog post about my roadblock, Apple reversed their decision.</p>
<p>Today at <a href="http://www.iphonedevcamp.org/">iPhoneDevCamp</a>, I am releasing <a href="http://apparentlogic.com/openflow">OpenFlow</a>&#8211;a free, open source replacement for Apple&#8217;s private CoverFlow API. The initial release is simple, but it is also efficient and very fast, even on first generation iPhones.</p>
<p>Go get the code here:<br />
<a href="http://apparentlogic.com/openflow">http://apparentlogic.com/openflow</a></p>
<p>The API should be easy to include in your own program. The main class, <code>AFOpenFlowView</code>, is a subclass of <code>UIView</code>.<br />
To use this in your own project:</p>
<ul>
<li>Add the OpenFlow source code to your project. </li>
<li>Add the <code>QuartzCore</code> and <code>CoreGraphics</code> frameworks.</li>
<li>Import &#8220;<code>AFOpenFlowView.h</code>&#8221; &#038; interact with it as you would a normal <code>UIView</code>.</li>
<li>You should implement both the <code>AFOpenFlowViewDelegate</code> and <code>AFOpenFlowViewDataSource</code> protocols. </li>
</ul>
<p>Currently, the delegate protocol is used to let your code know when the user selected a new object. The datasource protocol is called when <code>AFOpenFlowView</code> needs a <code>UIImage</code> object. This method should be *fast*. Don&#8217;t do <code>NSURL</code> requests or even disk access in this method. See the AFOpenFlowDemo app I provided for an example how to load images from a remote server. The datasource also needs to provide a default <code>UIImage</code>.</p>
<p>At any point, you can set <code>UIImage</code>&#8216;s on your <code>AFOpenFlowView</code>. You don&#8217;t need to wait for the datasource protocol to ask you. Your <code>AFOpenFlowView</code> will start displaying images as soon as you call <code>setNumberOfImages</code>.</p>
<p><a href="http://fajkowski.com/blog/wp-content/uploads/2009/08/OpenFlowDemo.png"><img src="http://fajkowski.com/blog/wp-content/uploads/2009/08/OpenFlowDemo-300x161.png" alt="OpenFlow Demo" title="OpenFlow Demo" width="300" height="161" class="alignnone size-medium wp-image-120" /></a></p>
<p>This is an initial release of OpenFlow. I licensed it under the liberal MIT open source license.<br />
Please drop me a line to let me know what you think &#038; where you want the project to go from here.</p>
<p>The source code for both OpenFlow and the AFOpenFlowDemo project are currently available as a zip files, hosted locally. For the demo application, you will need to register for a Flickr API key and secret. If you try to compile the demo, you will quickly find the error message where your Key &#038; Secret should be added. </p>
<p>I will be moving this code to an online repository in the very near future.</p>
<p>Enjoy!<br />
-Alex</p>
]]></content:encoded>
			<wfw:commentRss>http://fajkowski.com/blog/2009/08/02/openflow-a-coverflow-api-replacement-for-the-iphone/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>&#8220;AFInformationView&#8221; Bubbles on the iPhone</title>
		<link>http://fajkowski.com/blog/2009/06/22/afinformationview-bubbles-on-the-iphone/</link>
		<comments>http://fajkowski.com/blog/2009/06/22/afinformationview-bubbles-on-the-iphone/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 20:17:29 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://fajkowski.com/blog/?p=76</guid>
		<description><![CDATA[My iPhone application, Presenter, lets the user choose whether they want to swipe, tap, or use buttons to change slides. The Settings panel contains a 3 button segmented control to customize this behavior on the fly. Instead of including a help screen or inserting a large UILabel underneath the segmented control, I wrote a class [...]]]></description>
			<content:encoded><![CDATA[<p>My iPhone application, <a href="http://presenterapp.net">Presenter</a>, lets the user choose whether they want to swipe, tap, or use buttons to change slides. The Settings panel contains a 3 button segmented control to customize this behavior on the fly. Instead of including a help screen or inserting a large UILabel underneath the segmented control, I wrote a class that displays a floating UILabel on top of each button when selected.</p>
<p><a href="http://fajkowski.com/blog/wp-content/uploads/2009/06/settings.png"><img class="aligncenter size-full wp-image-79" title="Information View" src="http://fajkowski.com/blog/wp-content/uploads/2009/06/informationview.png" alt="AFInformationView in action" width="320" height="179" /></a></p>
<p>Calling this helper class is very simple. Pass in the target view, location, label text and a few other parameters.</p>
<p><code>- (void)displayInView:(UIView *)theView withText:(NSString *)displayText atLocation:(CGPoint)location width:(CGFloat)width isTriangleOnTop:(Boolean)isTriangleOnTop triangleHorizontalLocation:(CGFloat)triangleHorizontalLocation forDuration:(NSTimeInterval)duration;</code></p>
<p><code>AFInformationView</code> will fade in a multi-line, semi-transparent, black label with rounded corners &amp; a target triangle. The label&#8217;s text will wrap and grow vertically, depending on its width. After a specified amount of time, the label again fades out. If the user taps on the label, it fades out immediately.</p>
<p>I have included a sample Xcode project demonstrating its use.</p>
<p><a href="http://fajkowski.com/code/AFInformationView/AFInformationView.zip">http://fajkowski.com/code/AFInformationView/AFInformationView.zip</a></p>
<p><a title="AFInformationView sample movie" href="http://fajkowski.com/video/AFInformationView.mov">Click here to see a short video</a> of the Xcode project in use.</p>
<p>I have released the code with an MIT license. Feel free to reuse it in any project you&#8217;d like.</p>
]]></content:encoded>
			<wfw:commentRss>http://fajkowski.com/blog/2009/06/22/afinformationview-bubbles-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://fajkowski.com/video/AFInformationView.mov" length="476288" type="video/quicktime" />
		</item>
		<item>
		<title>Problems with Quality of Service on DD-WRT (and a fix)</title>
		<link>http://fajkowski.com/blog/2008/05/27/problems-with-quality-of-service-on-dd-wrt-and-a-fix/</link>
		<comments>http://fajkowski.com/blog/2008/05/27/problems-with-quality-of-service-on-dd-wrt-and-a-fix/#comments</comments>
		<pubDate>Wed, 28 May 2008 01:33:15 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://fajkowski.com/blog/?p=17</guid>
		<description><![CDATA[Following up on my previous DD-WRT post, I&#8217;ve had some problems with Quality of Service on my upgraded router. I am using an Asus WL-500G Premium which has tons of memory and processor power for the job, but occasionally QoS won&#8217;t work properly when I&#8217;m on a phone call. DD-WRT ships with two implementations of [...]]]></description>
			<content:encoded><![CDATA[<p>Following up on my previous DD-WRT post, I&#8217;ve had some problems with Quality of Service on my upgraded router. I am using an Asus WL-500G Premium which has tons of memory and processor power for the job, but occasionally QoS won&#8217;t work properly when I&#8217;m on a phone call.</p>
<p>DD-WRT ships with two implementations of Quality of Service: HTB and HTSC (known to be buggy). My experience with each over time has been that they both kind of work and then fail miserably. Part of the problem might just be that QoS really complicated, and DD-WRT hasn&#8217;t had a release in two years.</p>
<p>However, a few weeks ago, I came across something new to me called <a href="http://en.wikipedia.org/wiki/TCP_Vegas">TCP</a> <a href="http://neal.nu/uw/linux-vegas/">Vegas</a>. A lot of people have had QoS problems with DD-WRT, and <a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=28816">one poster suggested I enter several commands</a> in the Administration section of my DD-WRT router.</p>
<blockquote><p>echo 0 &gt; /proc/sys/net/ipv4/tcp_westwood<br />
echo 1 &gt; /proc/sys/net/ipv4/tcp_vegas_cong_avoid<br />
echo 3 &gt; /proc/sys/net/ipv4/tcp_vegas_alpha<br />
echo 3 &gt; /proc/sys/net/ipv4/tcp_vegas_beta</p></blockquote>
<p>I turned QoS completely off, removed the Up &amp; Down limits on my Internet connection, and just used the four commands above. It worked! I can now download podcasts, stream video, surf the net and take phone calls without worrying about my VoIP connection occasionally messing up. Of course, my speedy DSL provider (Sonic.net) helps, too.</p>
]]></content:encoded>
			<wfw:commentRss>http://fajkowski.com/blog/2008/05/27/problems-with-quality-of-service-on-dd-wrt-and-a-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NBC&#8217;s Clueless Executives</title>
		<link>http://fajkowski.com/blog/2008/01/21/nbcs-clueless-executives/</link>
		<comments>http://fajkowski.com/blog/2008/01/21/nbcs-clueless-executives/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 00:41:37 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[DRM]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://fajkowski.com/blog/2008/01/21/nbcs-clueless-executives/</guid>
		<description><![CDATA[A few months ago, I got an invite to try out NBC&#8217;s online video service, Hulu. It&#8217;s awful. Everyone in the tech community knew it was going to suck, and despite Om Malik&#8217;s enamored praise of the site, it has turned out to be a terrible, DRM-laden, user-hostile piece of crap. The video quality is [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago, I got an invite to try out NBC&#8217;s online video service, <a href="http://hulu.com">Hulu</a>. It&#8217;s awful. Everyone in the tech community knew it was going to suck, and despite <a href="http://gigaom.com/2007/10/29/hulu-hands-on-review/">Om Malik&#8217;s enamored praise of the site</a>, it has turned out to be a terrible, DRM-laden, user-hostile piece of crap. The video quality is *atrocious*. Check out an example of the jaggy encoding from an episode of The Office.</p>
<div style="text-align:center;"><a href="http://fajkowski.com/blog/wp-content/uploads/2008/01/picture-5.png"><img src="http://fajkowski.com/blog/wp-content/uploads/2008/01/dwight.png" alt="dwight.png" border="0" width="301" height="364" /></a></div>
<p>It might as well be from YouTube. What&#8217;s worse is you can&#8217;t download shows to watch on your iPod, TiVo, or laptop later. The selection is a joke, too&#8211;I want to have access to any episode of any show that was ever on NBC. </p>
<p>Techno-luddite television executives have not yet figured out what the music industry is slowly coming to terms with: <strong>DRM only hurts your best customers.</strong> Every single episode of The Office is available for download for free on the Internet in a completely portable format at much higher resolutions than you can get from Hulu, iTunes, Amazon, Netflix or anywhere else online video is sold.</p>
<p>It is impossible to stop piracy if there are no reasonably-priced good alternatives. I want to buy high definition, DRM-free, copies of shows at the exact same time they are broadcast on NBC&#8217;s television stations. NBC should be <em>competing</em> against <a href="http://thepiratebay.org">The Pirate Bay</a>, not trying to stop the BitTorrent firehose. Offer a product that is easy to use and satisfies my needs. iTunes isn&#8217;t perfect, but it&#8217;s pretty close.</p>
<p>NBC&#8217;s feud with iTunes is absolutely ridiculous, too. While it&#8217;s amazingly dumb to shackle iTunes downloads to Apple hardware, Steve Jobs is giving people a slightly more acceptable amount of freedom than NBC. It&#8217;s mind-numbing to try to understand why anyone would refuse to sell its shows through Apple.</p>
<p>Back in October, NBC&#8217;s Jeff Zucker said, &#8220;We know that Apple has destroyed the music business &#8212; in terms of pricing &#8212; and if we don&#8217;t take control, they&#8217;ll do the same thing on the video side.&#8221; However, yesterday he alluded that NBC may return to iTunes, &#8220;We&#8217;ve said all along that we admire Apple, that we want to be in business with Apple. We&#8217;re great fans of Steve Jobs.&#8221;</p>
<p>2008 is going to be a great year for video on the Internet. The writers&#8217; strike might be an opportunity for video podcast producers to steal some of that audience from NBC. There are thousands of very high quality shows on the internet right now. Check out <a href="http://www.tikibartv.com">Tiki Bar TV</a>, <a href="http://revision3.com/diggnation/">Diggnation</a>, <a href="http://tv.boingboing.net/">BoingBoing TV</a>, <a href="http://twit.tv/mb">MacBreak</a>, <a href="http://askaninja.com/">Ask a Ninja</a>, and <a href="http://www.liamlynch.net/">Lynchland</a>. They are all DRM-free. This is the future of television.</p>
<p>Just a few weeks ago, another NBC executive troll, Ben Silverman, remarked about the writers&#8217; strike affecting the Golden Globes ceremony, &#8220;Sadly, it feels like the nerdiest, ugliest, meanest kids in the high school are trying to cancel the prom. But NBC wants to try to keep that prom alive.&#8221;</p>
<p>NBC&#8217;s clueless executives must change their attitudes. Give the writers what they want, and offer every show in their archives for sale through iTunes. Hulu.com needs to be shuttered or converted into a store to sell downloadable DRM-free content to everyone.</p>
]]></content:encoded>
			<wfw:commentRss>http://fajkowski.com/blog/2008/01/21/nbcs-clueless-executives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Linux-based Router Software: DD-WRT</title>
		<link>http://fajkowski.com/blog/2007/12/23/open-source-linux-based-router-software-dd-wrt/</link>
		<comments>http://fajkowski.com/blog/2007/12/23/open-source-linux-based-router-software-dd-wrt/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 21:34:56 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://fajkowski.com/2007/12/23/open-source-linux-based-router-software-dd-wrt/</guid>
		<description><![CDATA[I work from home, and since I spend a considerable amount of time on the phone, I run Asterisk. After my first few phone calls, I quickly discovered that I needed a router with &#8220;Quality of Service&#8221; (QoS). Imagine streaming a movie trailer &#038; running BitTorrent while talking to someone over Skype. It sounds awful [...]]]></description>
			<content:encoded><![CDATA[<p>I work from home, and since I spend a considerable amount of time on the phone, I run <a href="http://asterisk.org/about">Asterisk</a>. After my first few phone calls, I quickly discovered that I needed a router with &#8220;Quality of Service&#8221; (QoS). Imagine streaming a movie trailer &#038; running BitTorrent while talking to someone over Skype. It sounds awful and garbled like you&#8217;re underwater. QoS can prioritize VoIP packets over anything else that might be competing for your Internet connection.</p>
<p>Unfortunately, Linksys/Belkin/D-Link and the other popular router manufacturers consider QoS to be an &#8220;enterprise&#8221; ($$$) feature. Their entry-level $35 routers are purposefully crippled to only provide the most basic functionality. These routers are disposable&#8230;the hardware lasts maybe 2 years; the interfaces are poorly designed, buggy, non-<a href="http://hbswk.hbs.edu/archive/3533.html">anthropomorphic</a> and full of security holes.
</p>
<p><a href="http://dd-wrt.com">DD-WRT</a> is a wonderful open source replacement for the lousy software shipped with many routers. Check out some of DD-WRT&#8217;s <a href="http://www.dd-wrt.com/wiki/index.php/What_is_%2522DD-WRT%2522%253F">features</a>. I particularly liked the Dynamic DNS updater (DynDNS.org and others), PPTP VPN Client &#038; Server, UPnP, and QoS!</p>
<p>I ditched my pretty&#8211;but pretty useless&#8211;Airport Extreme router for a cheap Linksys WRT-54g (version 6). Check out the huge <a href="http://www.dd-wrt.com/wiki/index.php/Supported_Devices">list of supported devices</a>, but beware of the version number of the router. It seems that manufacturers tend to include less memory and cheaper chips in later versions of their routers. You need a router with at least 2 MB of ram and a Broadcom chip. Search the <a href="http://www.dd-wrt.com/phpBB2/search.php">DD-WRT forums</a> before buying.
</p>
<p>The upgrade was totally simple. Everything was working great on the Linksys router until a few months ago when 2 ports mysteriously died. Last weekend, the router decided to only allow Internet access for 3 minutes at a time&#8211;no VoIP/Port Forwarding/UPnP at all. I tried resetting it and reflashing DD-WRT onto the router&#8230;no luck. The hardware finally died.</p>
<p>Fortunately, I had an old D-Link router in the closet that couldn&#8217;t even do port forwarding. As a stop gap, I rushed out to BestBuy to get a <a href="http://brainwreckedtech.wordpress.com/2007/07/01/review-belkin-f5d7230-4-wireless-g-router/">Belkin F5D7230-4. Don&#8217;t buy this junk.</a> DD-WRT cannot be installed on any of the recent versions. As a consumer router, it&#8217;s terrible. Some settings (like &#8216;enable UPnP&#8217;) don&#8217;t save properly in anything but Internet Exploder. Fortunately, since Belkin claims it is compatible with Mac OS X, BestBuy refunded the purchase without charging a restocking fee.</p>
<p>After a bunch of searching it turned out that none of the major brick &#038; mortar retailers (BestBuy, RadioShack, CircuitCity, Fry&#8217;s, Staples, Office Depot/Max, etc) carried any router that looked promising. NewEgg, however, saved the day with a <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16833320008">Asus WL-500g Premium router</a>. This thing is so easy to flash&#8211;it has 32 MB of ram and the load on the router&#8217;s 264 MHz Broadcom chip has never gone above 20%.</p>
<p>If you&#8217;re not running DD-WRT, check out that list to see if your router is supported. Give it a try&#8230;it&#8217;s amazing what that &#8216;always-on miniature computer&#8217; running your DHCP server is capable of.</p>
]]></content:encoded>
			<wfw:commentRss>http://fajkowski.com/blog/2007/12/23/open-source-linux-based-router-software-dd-wrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: fajkowski.com @ 2012-05-18 09:41:44 -->
