<?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>RKWare.com &#187; Open Source</title>
	<atom:link href="http://rkware.com/tag/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://rkware.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 05 Jan 2010 11:18:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Why Chrome OS is a big ball of awesome</title>
		<link>http://rkware.com/2009/11/why-chrome-os-is-a-big-ball-of-awesome/</link>
		<comments>http://rkware.com/2009/11/why-chrome-os-is-a-big-ball-of-awesome/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 21:29:25 +0000</pubDate>
		<dc:creator>RyanK</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[chrome os]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://rkware.com/?p=51</guid>
		<description><![CDATA[Since the announcement of ChromeOS 4 days ago, the Internet is buzzing with reactions. For example, TechCrunch has two recent articles, one positive and one negative. 
The negative story hammers Chrome for not supporting Android apps. This isn&#8217;t surprising given the rumblings that Google prefers web apps over android apps. its hard to say where [...]]]></description>
			<content:encoded><![CDATA[<p>Since the announcement of ChromeOS 4 days ago, the Internet is buzzing with reactions. For example, TechCrunch has two recent articles, <a href="http://www.crunchgear.com/2009/11/19/what-chromeos-means-for-netbooks-and-why-microsoft-needs-to-be-scared/">one positive</a> and <a href="http://www.techcrunch.com/2009/11/19/google-is-keeping-chrome-os-simple-maybe-too-simple/">one negative</a>. </p>
<p>The negative story <strong>hammers Chrome for not supporting Android apps</strong>. This isn&#8217;t surprising given the rumblings that <a href="http://mobilestance.com/2009/03/02/google-losing-focus-on-android-sdk-in-favor-of-mobile-web-apps’-offline-functionality-part-ii/">Google prefers web apps over android apps</a>. its hard to say where things will be in 3-5 years, but if WebKit does evolve to the point where it performs as well as native Android apps, then it makes sense to abandon Android apps, especially if Android doesn&#8217;t become the dominant platform. Assuming a split between the iPhone and Android (and perhaps WebOS or Windows Mobile, HA!) and a web app performs well on both (and supports all the native phone features), why bother writing apps for just one platform? If web apps can&#8217;t easily do what native apps can, Android functionality can always be added to Chrome OS at a later date, even by someone outside of Google, thanks to the wonders of Open Source. I can&#8217;t imagine it would be that hard to launch a Java Virtual Machine, with the Android Activity rendered to a panel in Chrome OS, I&#8217;m just not sure that it fits in with the goal of Chrome OS. And really, when are people going to stop freaking out about the stability or reliability of an Open Source project, just because anyone can change it or make their own derivative or find flaws in the program. (All of those are good things, btw.. given that proper controls are in place). <strong>Open Source is an advantage, not a liability.</strong></p>
<p>Also, a big limitation of mobile phones is its <strong>lack of any real processing power</strong>. Up until when I finally rooted my G1 a few months ago, I was under the impression that the web browsing was slow on my device due to latency or bandwidth on T-Mobile&#8217;s 3G network. That is until I tethered my laptop and was able to get 600KB/s download speeds and web pages rendered with images almost immediately, while 10-15 second page load times are common. I have to presume it&#8217;s WebKit rendering the HTML that is slow with limited processor and memory. So, there&#8217;s a fundamental difference between mobile devices and actual computers. Perhaps they will converge over time, but <strong>there will need to be some breakthroughs in power consumption</strong> of more powerful processors. </p>
<p>What&#8217;s interesting in the positive story is all of the negative comments by people who just don&#8217;t get it.  For even more fun, check out <a href="http://www.crunchgear.com/2009/07/08/why-we-need-to-chill-about-chromeos/">a negative post&#8217;s comments from July</a>. <strong>Chrome OS is about FAR more then just a web browser.</strong> First, <strong>Chrome OS moves everything to the Cloud</strong>, for better or worse. Assuming we trust Google to not lose or snoop our data, I don&#8217;t have a problem with this as it&#8217;s benefits are far outweighed. Imagine losing your laptop and being able to sign in to another ChromeOS device (replacement, friend&#8217;s laptop, coffee shop, etc.) and instantly have access to all of your data. Of course, this assumes that Google is going to provide potentially hundreds of GBs of storage for your videos, photos and music. Perhaps their strategy is going to be to leverage YouTube and Picasa Web Albums.</p>
<p>Also, people are panicked over Chrome OS being &#8220;just&#8221; a browser. First off, they are acknowledging that this isn&#8217;t going to be targeted at Power Users (ie, most of TechCrunch&#8217;s audience) but rather at the vast majority of &#8220;regular users&#8221;. Google stated that they have a LONG list of use cases that they want to implement. Many of those cases are already satisfied by existing web apps for things like emails or calendars. Its not hard to conceive Chrome OS recognizing USB devices and accessing photos or videos on a camera or phone, and music on a MP3 Player or phone&#8230; and syncing those with the laptop and conversely up into the cloud to the appropriate services.</p>
<p>I think many people would be <strong>amazed at what some web apps are capable of now</strong>. Photoshop is often pointed to as a necessary app that people need on their computers. Really? If you are a graphic designer, then sure&#8230; but Chrome OS isn&#8217;t directed towards you, at least not for advanced graphic work. I really doubt that many people use Photoshop for more then cropping, rotating, watermarking, or minor corrections like red eye or color levels. A quick web search turned up <a href="http://www.splashup.com/">several</a> <a href="http://www.pixlr.com/">web</a> <a href="http://www.picnik.com">apps</a> that are up to those tasks, and a year from now they may have even more functionality. </p>
<p>And, for all the <strong>concerns about requiring an active Internet connection</strong>, remember that HTML5 includes offline storage and even without HTML5, projects like Gears (among others) provide for offline access. <a href="http://gmailblog.blogspot.com/2009/01/new-in-labs-offline-gmail.html">Gmail has had offline access for about a year now</a>. Chrome OS devices will have plenty of storage to mirror your data that is in the cloud. There&#8217;s no reason that these web apps can&#8217;t be accessible as offline applications, syncing your data up to the cloud automatically when you next get an internet connection.</p>
<p>And finally, the biggest reason why I think Chrome OS is a big ball of awesome&#8230; It&#8217;s Linux. Yes, people railed on Google about it not really creating anything new. Its Chrome on Linux with some other glue. Saying that isn&#8217;t an OS is like saying that Ubuntu isn&#8217;t an OS since its based heavily on Debian. And, Chrome on Linux IS a new thing. Chrome started as a Windows App. That makes sense as there are MANY Windows users, so it is a brilliant move as it exposes those windows users to a superior browser and allows Google to work out its issues and add features. <strong>Its a great way for Google to get their foot in the metaphorical door.</strong> Some choices were made to make it easier to port to other platforms, like using <a href="http://code.google.com/p/skia/">Skia</a> rather then <a href="http://msdn.microsoft.com/en-us/library/ms536795(VS.85).aspx">GDI</a>. Clearly google planned on Chrome running on more then windows.</p>
<p>So, yeah.. the Chromium project has been making great progress and Chrome has been usable on Linux for some time now. Yes, it makes me a little bit happy to see this as an opportunity for someone to hand Microsoft some stiff competition (since Apple priced themselves out of that role). But, the REAL thing to be excited about it the fact that if Chrome OS is even mildly successful, it means that there may <strong>finally be a critical mass of Linux users.</strong> So, finally there will be a real reason for hardware manufacturers to provide Linux support. Support has been pretty good from the likes of Intel, Nvidia and ATI/AMD for graphics drivers. But things that are clearly lacking are low level things like power management, suspend/resume, some wifi-drivers, etc. Having Google working with hardware manufacturers means that the rest of the Linux community will benefit greatly. Hopefully, the days of buying a laptop and hoping that all your hardware will be well supported will soon be gone for good!</p>
<p>It will definitely be an interesting year or so! I, for one, will be eagerly awaiting to see how this all plays out.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Frkware.com%2F2009%2F11%2Fwhy-chrome-os-is-a-big-ball-of-awesome%2F&amp;linkname=Why%20Chrome%20OS%20is%20a%20big%20ball%20of%20awesome"><img src="http://rkware.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://rkware.com/2009/11/why-chrome-os-is-a-big-ball-of-awesome/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yet another example of why Microsoft sucks!</title>
		<link>http://rkware.com/2009/02/yet-another-example-of-why-microsoft-sucks/</link>
		<comments>http://rkware.com/2009/02/yet-another-example-of-why-microsoft-sucks/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 22:03:35 +0000</pubDate>
		<dc:creator>RyanK</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://rkware.com/?p=8</guid>
		<description><![CDATA[Wow&#8230; I wasted many hours today due to Microsoft and general stupidity&#8230;
Here&#8217;s the situation.. we have a legacy Classic ASP site that we are moving to more scalable and stable environment&#8230; Since we want to have multiple web servers handling the load during peak hours (it runs just fine on one right now) and be [...]]]></description>
			<content:encoded><![CDATA[<p>Wow&#8230; I wasted many hours today due to Microsoft and general stupidity&#8230;</p>
<p>Here&#8217;s the situation.. we have a legacy Classic ASP site that we are moving to more scalable and stable environment&#8230; Since we want to have multiple web servers handling the load during peak hours (it runs just fine on one right now) and be able to perform new releases along with testing during off peak times while the website continues to run on one server. This also means that we can easily throw more webservers into the mix should that be necessary later.</p>
<p>The easy (and open-source and free) solution is to use Apache as a <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html">reverse proxy</a>.  This also allows for some other neat tricks (<a href="http://www.modsecurity.org/">mod_security</a>, <a href="http://httpd.apache.org/docs/2.2/mod/mod_deflate.html">mod_deflate</a>) without having to deal with Windows and IIS configuration.. or make any code changes for that matter.</p>
<p>The problem comes in with how Classic ASP deals with cookies. Deep in the bowels of ASP, Microsoft was benevolent enough to add in HTML encoding of your cookie&#8217;s name and value. This actually isn&#8217;t a horrible thing as it prevents some poorly written code from creating an exploitable bug (<a href="http://en.wikipedia.org/wiki/HTTP_Header_Injection">HTTP Header injection</a>), but its a bit overzealous and there&#8217;s <strong>no</strong> way to alter its behavior. You&#8217;re simply stuck with it.</p>
<p>Of course, if you&#8217;re happily writing ASP code, it gets encoded and decoded for you so you never even know its going on.</p>
<p>ASP Code to set a cookie:</p>
<blockquote><p>Response.Cookies(&#8221;SERVERID&#8221;) = &#8220;balancer.www2&#8243;</p></blockquote>
<p style="text-align: left;">ASP Code to display that cookie:</p>
<blockquote style="text-align: left;">
<p style="text-align: left;">Response.Write &#8220;Cookie: &#8221; &amp; Request.Cookies(&#8221;SERVERID&#8221;)</p>
</blockquote>
<p style="text-align: left;">Outputs:</p>
<blockquote><p>SERVERID: balancer.www2</p></blockquote>
<p>The problem lies in what is actually being sent by IIS:</p>
<blockquote><p>Set-Cookie: SERVERID=balancer%2Ewww2; path=/</p></blockquote>
<p>%2E is simply an HTML Encoded period. I&#8217;ve never known a period within a string to cause a security issue&#8230; but it gets encoded anyway. Apache&#8217;s <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html">mod_proxy_balancer</a> looks at that cookie and expects to find a period within it, using the part after the period to determine which server that person should get sent back to.</p>
<p>I spent a large part of the day thinking the issue was an Apache configuration issue, as even with debug logging on, it wasn&#8217;t outputing anything. Once I looked through the code for mod_proxy_balancer, i saw that it ignores the cookie unless there&#8217;s a period in the string, and clearly there wasn&#8217;t one in my string.</p>
<p>After spending about 5 minutes trying to find a way to disable or change that behavior within ASP (there isn&#8217;t any as far as I can tell), I quickly found a solution within Apache!</p>
<p>Since Apache 2.2.4, the <a href="http://httpd.apache.org/docs/2.2/mod/mod_headers.html">mod_headers</a> module provides a method to edit a header using a regular expression. I was already using mod_headers to pass along some values through Apache (like the external IP address, or if the request was over HTTPS), so simply adding one line to the Apache configuration file fixed the issue:</p>
<blockquote><p>Header edit Set-Cookie balancer%2Ewww balancer.www</p></blockquote>
<p>Now, apache watches the response headers for when we are setting a cookie,  and if it contains &#8220;balancer%2Ewww&#8221; it gets rewritten as &#8220;balancer.www&#8221; and sure enough both Apache and IIS are perfectly happy with the cookie and everything is working well.</p>
<p>If I didn&#8217;t have access to the source code, it would have taken me weeks of trial and error to determine what the issue was or it would have been given up on for simply being incompatible. If apache wasn&#8217;t as flexible as it is, i would have been stuck writing a patch to mod_proxy_balancer and recompiling my own apache rather then relying on the distro&#8217;s packages for updates.</p>
<p>This is exactly where the closed source commercial software (Microsoft) and, to a much lessor-extent, the walled-garden open-source approach (like <a href="http://www.djangoproject.com/">Django</a>) run into issues. As long as you are only using that vendor&#8217;s software in the way that the vendor envisioned you would be using it, you&#8217;re just fine. Its also why standards are a good thing.</p>
<p>Yet another example of why <a href="http://compoundthinking.com/blog/">Mark Ramm</a> was right when he <a href="http://compoundthinking.com/blog/index.php/2009/02/04/wsgi-and-cooperation/">wrote</a> and <a href="http://www.youtube.com/watch?v=fipFKyW2FA4">talked</a> about WSGI being the right way to write tools that properly interact with one another. I&#8217;m really convinced now that the <a href="http://turbogears.com/">TurboGears</a>/<a href="http://pylonshq.com/">Pylons</a> approach is the proper way to build web applications.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Frkware.com%2F2009%2F02%2Fyet-another-example-of-why-microsoft-sucks%2F&amp;linkname=Yet%20another%20example%20of%20why%20Microsoft%20sucks%21"><img src="http://rkware.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://rkware.com/2009/02/yet-another-example-of-why-microsoft-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
