<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

  <title><![CDATA[Asinine Tech]]></title>
  
  <link href="http://asininetech.com/" />
  <updated>2012-05-24T22:01:23-04:00</updated>
  <id>http://asininetech.com/</id>
  <author>
    <name><![CDATA[staticsafe]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/AsinineTech" /><feedburner:info uri="asininetech" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>AsinineTech</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
    <title type="html"><![CDATA[IPv6 adventures - WRT54GL and OpenWRT]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/kSJOgMeWmBI/" />
    <updated>2012-05-04T12:33:25-04:00</updated>
    <id>http://asininetech.com/2012/05/04/ipv6-adventures-wrt54gl-and-openwrt</id>
    <content type="html">&lt;p&gt;Yesterday foxwolfblood told me that his WRT54GS was capable of doing IPv6 (via tunnel) so I decided to put my WRT54GL to some use.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;Things needed :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;OpenWRT capable router&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IPv6 tunnel (preferably from HE)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Flash your router with OpenWRT if you, haven&amp;#8217;t already done so.&lt;/p&gt;

&lt;p&gt;According to the IPv6 essentials &lt;a href="http://wiki.openwrt.org/doc/howto/ipv6.essentials"&gt;page&lt;/a&gt; on the OpenWRT wiki, you need to install these packages:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;opkg install kmod-ipv6 radvd ip kmod-ip6tables ip6tables&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Due to the limited amount of flash memory on my WRT54GL I left off the kmod-ip6tables and ip6tables packages. After those packages are installed, you need to install the 6in4 package.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;opkg update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;opkg install 6in4&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then, make sure IPv6 forwarding is enabled, edit /etc/sysctl.conf with this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;net.ipv6.conf.all.forwarding=1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then, restart sysctl:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/etc/init.d/sysctl restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then, restart networking:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/etc/init.d/network restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Wait a bit for networking to come back up. After that we need to configure 6in4, according to instructions from HE (example configurations: OpenWRT Backfire):
&lt;code&gt;
uci set network.henet=interface
uci set network.henet.proto=6in4
uci set network.henet.peeraddr=$IPV4ENDPOINT
uci set network.henet.ip6addr='$CLIENTIPV6ADDRESS'
uci set network.henet.tunnelid=$YOURTUNNELID
uci set network.henet.username=$USERNAME
uci set network.henet.password='YOUR_PASSWORD'
uci commit network
uci set firewall.@zone[1].network='wan henet'
uci commit firewall
ifup henet
/etc/init.d/firewall restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You also need to give the LAN interface a IPv6 address, like so (/etc/network):
&lt;code&gt;option 'ip6addr' '$FIRSTIPINROUTED64'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Get the needed values from your tunnel example configuration. After those steps are done, IPv6 should be working &lt;strong&gt;on the router&lt;/strong&gt;. Test it out by pinging a IPv6 capable server, like so:&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;root@overlord:~# ping -6 -c 5 ipv6.google.com
&lt;/span&gt;&lt;span class='line'&gt;PING ipv6.google.com (2607:f8b0:4004:800::1010): 56 data bytes
&lt;/span&gt;&lt;span class='line'&gt;64 bytes from 2607:f8b0:4004:800::1010: seq=0 ttl=58 time=36.507 ms
&lt;/span&gt;&lt;span class='line'&gt;64 bytes from 2607:f8b0:4004:800::1010: seq=1 ttl=58 time=35.575 ms
&lt;/span&gt;&lt;span class='line'&gt;64 bytes from 2607:f8b0:4004:800::1010: seq=2 ttl=58 time=35.187 ms
&lt;/span&gt;&lt;span class='line'&gt;64 bytes from 2607:f8b0:4004:800::1010: seq=3 ttl=58 time=36.053 ms
&lt;/span&gt;&lt;span class='line'&gt;64 bytes from 2607:f8b0:4004:800::1010: seq=4 ttl=58 time=37.506 ms
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;--- ipv6.google.com ping statistics ---
&lt;/span&gt;&lt;span class='line'&gt;5 packets transmitted, 5 packets received, 0% packet loss
&lt;/span&gt;&lt;span class='line'&gt;round-trip min/avg/max = 35.187/36.165/37.506 ms&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Yay! The tunnel is working properly, but now we want IPv6 addresses for all our machines in the LAN. To do that, we need to configure radvd first. Empty out /etc/config/radvd (This is because for some reason UCI config for radvd fails) and then add this:&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;config 'radvd'
&lt;/span&gt;&lt;span class='line'&gt;        option 'config_file' '/etc/radvd.conf'&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Now, create a /etc/radvd.conf and put this in there (make sure to replace the prefix value with your /64 and the lan interface if yours is named differently):&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;interface br-lan
&lt;/span&gt;&lt;span class='line'&gt;{
&lt;/span&gt;&lt;span class='line'&gt;        AdvSendAdvert on;
&lt;/span&gt;&lt;span class='line'&gt;        prefix $YOURROUTED64
&lt;/span&gt;&lt;span class='line'&gt;        {
&lt;/span&gt;&lt;span class='line'&gt;                AdvOnLink on;
&lt;/span&gt;&lt;span class='line'&gt;                AdvAutonomous on;
&lt;/span&gt;&lt;span class='line'&gt;        };
&lt;/span&gt;&lt;span class='line'&gt;};&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;After you did that, start radvd like so:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/etc/init.d/radvd start&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And you are good! Your IPv6 capable machines should have picked up a IPv6 address via autoconf.
&lt;strong&gt;
More reading:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://ipv6.com/articles/security/IPsec.htm"&gt;IPSec&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://linux.die.net/man/5/radvd.conf"&gt;radvd man page&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.sixxs.net/wiki/IPv6_Firewalling"&gt;ip6tables&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://tldp.org/HOWTO/Linux+IPv6-HOWTO/basic-history-ipv6-linux.html"&gt;History of IPv6 in Linux&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ir_kCfjWi3EcA9ldes9TKpB1Dxs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ir_kCfjWi3EcA9ldes9TKpB1Dxs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ir_kCfjWi3EcA9ldes9TKpB1Dxs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ir_kCfjWi3EcA9ldes9TKpB1Dxs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/kSJOgMeWmBI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/05/04/ipv6-adventures-wrt54gl-and-openwrt/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The browser is dead, The browser is alive.]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/hWz7BLjqscc/" />
    <updated>2012-04-21T16:58:34-04:00</updated>
    <id>http://asininetech.com/2012/04/21/browser-dead-browser-alive</id>
    <content type="html">&lt;p&gt;Blah blah Chrome OS blah blah Google blah blah the cloud is the future. I have been on that horse for more than a year now, and with due therapy, I can finally admit that I am wrong. The browser is dead for applications, everything will be on the Internet. But it will not be on the web.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;With the latest update to Chrome OS, Google created a new user interface called Ash. The press is dubbing it Aura, but Aura is the compositing and all the backend stuff. Ash is the actual name for user facing elements. But I digress.&lt;/p&gt;

&lt;p&gt;I have a whole rant on things wrong with Ash on my own&lt;a href="http://blog.technoticraccoon.com/post/21525447577/aura-why"&gt; blog, so read that if you are interested.&lt;/a&gt; To summarize, browser based applications are dead. And I am ok with that.&lt;/p&gt;

&lt;p&gt;The future of applications is applications that are connected to cloud services. They won&amp;#8217;t run in a browser, even though a browser may be powering them. Google has given in to the idea of Chrome actually running applications. Even Mozilla has research for running web applications outside of the browser.&lt;/p&gt;

&lt;p&gt;This brings me to another point, what is a web application? If you say that it is an application that is powered by web technologies. Then you are also implying that applications such as Rdio and Tweetdeck, which are desktop applications, are also web applications. They just run in a webkit wrapper. To say that a web application is an application that runs in a browser is short sided. As both Google and Mozilla seem to be moving towards having environments that run applications outside of what we see as a browser. We don&amp;#8217;t have any real difference (buzz-word speaking) on so called native applications. The only real differentiation is the platform they run on.&lt;/p&gt;

&lt;p&gt;That does mean, however, that applications will all be connected to the Internet in some form. I don&amp;#8217;t think it matters if it it written in javascript, python, objective-c, or even dart. Once you get down to it, the only difference is the language you write it in. A modern day javascript application should work offline. Hell, the spec for HTML5 offline is pretty thorough and stable. The issue is that no one uses it. This interpolation does lead to something, it leads to the idea that all applications will work offline regardless of language written in as every language now has support some way or another for offline. (Honestly, javascript was the only exception to this before, but that point is now moot.)&lt;/p&gt;

&lt;p&gt;To conclude, I think that the whole web application versus native application debate is a dying one and that we need to point our heads in one direction. What language and platform can the user get the best experience on? At the moment it is the one with native applications, but with the renaissance javascript is going through, I would not put money on that. Personally I am trying to switch back to all native applications, but this is more so for privacy reasons with cloud providers.&lt;/p&gt;

&lt;p&gt;That however is another topic for another day.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fOFD7N1b9lL1Vk9I4X2xvBrGpt4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fOFD7N1b9lL1Vk9I4X2xvBrGpt4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fOFD7N1b9lL1Vk9I4X2xvBrGpt4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fOFD7N1b9lL1Vk9I4X2xvBrGpt4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/hWz7BLjqscc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/04/21/browser-dead-browser-alive/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The World of VPS]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/k4g1Mrfqd04/" />
    <updated>2012-04-21T16:44:58-04:00</updated>
    <id>http://asininetech.com/2012/04/21/the-world-of-vps</id>
    <content type="html">&lt;p&gt;This will be a bunch of small reviews of all the VPS services that I have used in the past few years. Some of the details are a bit hazy (especially if the service was bad) and mostly put together from Paypal invoices so here goes &lt;em&gt;something.&lt;/em&gt;&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;(In chronological order)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://fastsh.it/"&gt;Fastsh.it&lt;/a&gt; (now merged with Bytesized Hosting)
&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This was my first real virtual private server. Excited with the prospects of a remote server with root access I go to install Apache, only to find out the repo URLs in the sources.list are broken. After finding the fix in their forums, I proceeded to install the software I needed. The server itself worked decently, except for server.lu having some annoying outages that resulted in complete loss of connectivity. I stayed with these guys for a month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.omegabox.me/"&gt;Omegabox&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another server.lu reseller (at least for the 100mbit VPS plan I used). No issues with the VPS itself, the connectivity issues previously experienced seem to have resolved.****&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://aws.amazon.com/ec2/"&gt;Amazon EC2&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TingPing told me that there was a one year free trial so I signed up. The trial is for a micro instance with enough instance hours for every month&lt;strong&gt;. &lt;/strong&gt;You get a decent amount of bandwidth and 613MB of RAM (a weird amount). The CPU is heavily throttled but is very usable for simple web hosting and running a IRC server.****&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://prgmr.com/xen/"&gt;Prgmr&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Probably one of the best providers out there. I mean look at the tagline - &lt;em&gt;&amp;#8220;We don&amp;#8217;t assume you are stupid.&amp;#8221;&lt;/em&gt; After initial payment, they ask you for a SSH key so they can give you out-of-band access to your VPS. Reverse DNS is available via request and you set up IPv6 connectivity yourself. A few downsides - they seem to be a pretty small team so tickets take a bit to get replies but on the flip side I only had to contact support for the initial set up. I only had a single instance of downtime and that was really my fault (I didn&amp;#8217;t realize Apache&amp;#8217;s default settings were not very safe for a 512MB VPS and the OOM killer kicked in.)&lt;/p&gt;

&lt;p&gt;Overall, a highly recommended provider with great prices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.leaseweb.com/en/cloud-hosting"&gt;Leaseweb&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Leaseweb probably has some of the best connectivity among the European providers&lt;strong&gt;. &lt;/strong&gt;I had some issues with the VPS randomly rebooting (which is particularly annoying if you run a IRC server link on it). Technical support told me that was their automatic system for moving VMs when the host machine had issues&lt;strong&gt;.
&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt; &lt;a href="http://www.linode.com/?r=eb502ec47e3acaa700d98c0bc94a44453f958520"&gt;Linode&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is my current provider. If you know anything about VPSes, you have probably heard about Linode. I currently have 2 Linode 512 instances, both are running perfectly with no issues except for the occasional latency issues. They also have full IPv6 support with reverse DNS (both for IPv4 and v6), six different DC locations, DNS Manager for your domains and amazing customer service. Oh, and an amazing &lt;a href="http://library.linode.com"&gt;wiki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overall conclusions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;****The VPS industry is cutthroat one and it is wise to be careful. Remember, the age old adages - &amp;#8220;You get what you pay for&amp;#8221; and &amp;#8220;If it looks too good to be true, it probably is&amp;#8221;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hFDeco0lLZTy1LHuH6JPmarERyY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hFDeco0lLZTy1LHuH6JPmarERyY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hFDeco0lLZTy1LHuH6JPmarERyY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hFDeco0lLZTy1LHuH6JPmarERyY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/k4g1Mrfqd04" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/04/21/the-world-of-vps/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Programming and me]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/-rCLqxzFtVw/" />
    <updated>2012-04-21T00:11:57-04:00</updated>
    <id>http://asininetech.com/2012/04/21/programming-and-me</id>
    <content type="html">&lt;p&gt;Wow, writing this post at 12:26 AM on the 21st while listening to k-pop, so excuse any random rambling. Eh, rambling? What the hell, this is my blog, I post whatever the hell I want to&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;

&lt;p&gt;(And no I&amp;#8217;m not high)&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;Getting on topic, this post is about programming and how much I love it and what it means to me (yes, I know that sounds so damned corny). Programming is a sort of weird thing for me, sometimes I hate it (Ugh indentation errors!), sometimes I&amp;#8217;m like &amp;#8220;COMPUTERS ARE AMAZING&amp;#8221;.&lt;/p&gt;

&lt;p&gt;You know that feeling when you are working on a tricky bit of code and it&amp;#8217;s getting quite complicated, and you go to debug it and it actually frigging works? Best feeling ever. You are all like, &amp;#8220;that was probably written by an Italian because that is some goddamn good-looking spaghetti&amp;#8221;, and then the sinking feeling five minutes later when your annoying Perl loving friend on IRC tells you he could do that with an ugly ass one liner. But whatever, he can keep his oh-so-beautiful regexp(es?) and I can go write that beautifully indented Python (oh wait, didn&amp;#8217;t I say I hated indentation errors?) But hey, I&amp;#8217;m not here to start a flame war between Perl and Python fanboys. Speaking of indentation errors&amp;#8230;&lt;/p&gt;

&lt;p&gt;My next favourite (and yes that is how you spell that word, contrary to what my browser&amp;#8217;s spellchecker tells me) topic is editors. I bet you are like, &amp;#8220;oh man, this guy wants to start another flame war even after what he said in the last paragraph&amp;#8221;. My thoughts on editors? I&amp;#8217;m mostly a vim guy but I love me some Sublime Text 2 and Notepad++ and Kate and Geany and&amp;#8230;you get the point. I write code in whatever editor I feel suits my mood at the time. vim when I have to hand in that annoying C# assignment due the next day, Sublime Text 2 when I want to look at some pretty code, not writing some, Notepad++ for when I want to write a text file that doesn&amp;#8217;t actually have any (pseudo)code in it at all, Kate for when I want to spend time making my Linux desktop pretty&amp;#8230;more like not opening it at all and spending hours customizing KDE. Geany is an odd one, the only thing I prefer it for is writing shell scripts. Go figure.&lt;/p&gt;

&lt;p&gt;Yeah, that last paragraph was probably terrible, but I guess it gets the point across.&lt;/p&gt;

&lt;p&gt;Version control systems? I absolutely love Git and by extension &lt;a href="https://github.com/staticsafe"&gt;Github&lt;/a&gt;. I also occasionally use SVN, don&amp;#8217;t hate it but I don&amp;#8217;t love it either. Never used hg, cvs, bzr etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I love programming and would like to do it as for long as I can.&lt;/strong&gt; (Bolded, just cause.)&lt;/p&gt;

&lt;p&gt;Now if you will excuse me, I have to go debug a particularly annoying bit of Python (I absolutely love functions that generate generator objects&amp;#8230;yeah not really.)&lt;/p&gt;

&lt;p&gt;P.S - Something &lt;a href="https://github.com/github/gitignore"&gt;cool&lt;/a&gt; for you git lovers.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HyOyUSL5k1XvSSEBqB6CWIpT3_8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HyOyUSL5k1XvSSEBqB6CWIpT3_8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HyOyUSL5k1XvSSEBqB6CWIpT3_8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HyOyUSL5k1XvSSEBqB6CWIpT3_8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/-rCLqxzFtVw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/04/21/programming-and-me/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Theme concerns]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/xJ5UZHnZdMM/" />
    <updated>2012-03-29T19:04:22-04:00</updated>
    <id>http://asininetech.com/2012/03/29/theme-concerns</id>
    <content type="html">&lt;p&gt;So I&amp;#8217;ve been told that the current theme is ugly. Yeah, it doesn&amp;#8217;t have fancy CSS animations and backgrounds with fancy fonts using the Google Fonts API (and &lt;a href="http://typographica.org/on-typography/roboto-typeface-is-a-four-headed-frankenstein/"&gt;fuck Roboto&lt;/a&gt; for web pages).&lt;/p&gt;

&lt;p&gt;But hey, its damned readable and clean. So unless you have a theme that is :&lt;/p&gt;

&lt;p&gt;a) clean and readable&lt;/p&gt;

&lt;p&gt;b) not filled with a shit ton of JavaScript&lt;/p&gt;

&lt;p&gt;c) preferably not fixed-width&lt;/p&gt;

&lt;p&gt;Don&amp;#8217;t bother telling me to change it.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TKU6hO9uPxY_Q7rSHjNZkg-lTCw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TKU6hO9uPxY_Q7rSHjNZkg-lTCw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TKU6hO9uPxY_Q7rSHjNZkg-lTCw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TKU6hO9uPxY_Q7rSHjNZkg-lTCw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/xJ5UZHnZdMM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/03/29/theme-concerns/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Python development on Windows]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/ghJeVaOQRPI/" />
    <updated>2012-02-10T10:51:43-05:00</updated>
    <id>http://asininetech.com/2012/02/10/python-development-on-windows</id>
    <content type="html">&lt;p&gt;This post will be talking about how to set up a proper Python environment on Windows for development work.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;Things that we need and where to get them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://python.org/getit/"&gt;Python&lt;/a&gt; (make sure to get Python 2 or 3 depending on what you are developing for)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.pip-installer.org/en/latest/installing.html"&gt;Pip&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; (optional, but can be helpful for the tools it comes with)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Windows_PowerShell"&gt;Windows Powershell&lt;/a&gt; (comes by default with Windows 7; you can still use cmd but I prefer Powershell due to its nice aliases. )&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A text editor of your choice. (My preference is &lt;a href="http://www.sublimetext.com/2"&gt;Sublime Text 2&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;There are a few more steps to getting this working properly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Firstly we add the directory Python resides in to the user PATH.
To do this, go to the Windows Control Panel -&gt; System -&gt; Advanced System Settings -&gt; Advanced -&gt; Environment Variables. Now add a user PATH variable if it doesn&amp;#8217;t already exist. We will be adding other paths here later on. My path variable:
&lt;code&gt;C:\Python27&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To test this, open a command prompt, and type python, you will then get a python prompt&lt;a href="http://asininetech.com/a/2012-02-10-python-development-on-windows/pythonshell.png"&gt;&lt;img src="http://asininetech.com/a/2012-02-10-python-development-on-windows/pythonshell.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now that we have Python up and running properly, we will be installing pip which will let us install third party modules easily. Its nice to have even if you are not planning on using any third party modules. The pip installer site instructs us to use curl to get the correct installer scripts but you may not have curl/wget if you don&amp;#8217;t have Cygwin installed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download the two installer scripts to your C:\Users\USERNAME directory using your browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Execute the distribute_setup.py script using Python, like this:
&lt;code&gt;python distribute_setup.py&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then execute the get-pip script, like this:&lt;code&gt;
python get-pip.py&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you have pip installed we need to make it accessible via the command prompt, to do this we add the Python Scripts directory to our path variable. So our PATH variable value now looks like this:
&lt;code&gt;C:\Python27;C:\Python27\Scripts&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now try pip out. &lt;code&gt;
pip install requests&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Congrats, your Python development environment is ready.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;P.S - &lt;a href="http://docs.python-requests.org/en/latest/"&gt;requests&lt;/a&gt; &gt; &lt;a href="http://docs.python.org/library/urllib2.html"&gt;urllib2&lt;/a&gt;
Example:&lt;/p&gt;

&lt;figure class='code'&gt; &lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;span class='line-number'&gt;12&lt;/span&gt;
&lt;span class='line-number'&gt;13&lt;/span&gt;
&lt;span class='line-number'&gt;14&lt;/span&gt;
&lt;span class='line-number'&gt;15&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class='python'&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="c"&gt;# vim: fileencoding=utf-8&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;https://github.com/staticsafe/useful-scripts/blob/master/webserversetup.py&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="n"&gt;file_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;webserversetup.py&amp;quot;&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;wb&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;span class='line'&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;




&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4vebMz671c_FzBrS-ihCTpVZVQ0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4vebMz671c_FzBrS-ihCTpVZVQ0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4vebMz671c_FzBrS-ihCTpVZVQ0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4vebMz671c_FzBrS-ihCTpVZVQ0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/ghJeVaOQRPI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/02/10/python-development-on-windows/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Why KDE is the future]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/-6dmKtn1N-0/" />
    <updated>2012-01-27T15:31:48-05:00</updated>
    <id>http://asininetech.com/2012/01/27/why-kde-is-the-future</id>
    <content type="html">&lt;h4&gt;KDE, not Unity, is the future of desktop GNU/Linux.&lt;/h4&gt;

&lt;p&gt;If you haven&amp;#8217;t been living under a rock this past week you probably know that the KDE Software Compilation version 4.8.0 has been released. This version brings a lot of great improvements and in my opinion is the best KDE release to date. Among the rather large list of new features, this release includes several kwin optimizations, the blur effect has been fixed, a new dolphin view engine, improvements to gwenview, a new QML splash screen (as well as most of the plasma widgets being ported to QML), the new Secret Service framework and many more. Rather than bore you with all the details which can be obtained from the &lt;a href="http://kde.org/announcements/4.8/"&gt;announcement page&lt;/a&gt;, I&amp;#8217;m going to visually showcase why KDE had it right all along.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;h4&gt;Say Hello to KDE&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://i.imgur.com/p6ItU.png"&gt;&lt;img src="http://i.imgur.com/Bj7c6.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since it&amp;#8217;s inception, KDE has held true to the classic desktop metaphor that we&amp;#8217;ve all come to love over the past 20 years. Refined to perfection, KDE is both visuall appealing and functional allowing users to work in an environment that is both familiar and quite powerfull. Customizable to the extreme, the KDE project believes in giving users the freedom to work in the environment of their choosing. Whether that environment is a classic desktop, a netbook interface or even on tablets, KDE can adapt to multiple form factors without sacrificing usability; something which the other Linux desktops have failed to accomplish.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://i.imgur.com/LtXtQ.jpg"&gt;&lt;img src="http://i.imgur.com/ude2s.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The GNOME team have only now just incorporated search into their (albeit limited) system settings application. It&amp;#8217;s a wonderful feature, and kudos to them but KDE has had this since 3.x. As you can see above, KDE goes beyond just search and even hilights what each module contains for easy discoverability. While that may be a trivial feature, the amount of options available in KDE is not. Unlike other environments, the KDE team decides not to treat you, the user, like an idiot. Rather than force decisions on you and assume you will use your computer a certain way, KDE gives you every option you could need and assumes you will want to use your computer in the way that you want. This may seem overwhelming to some, but KDE also has sane defaults for everything and is perfectly usable out of the box with no configuration at all. It&amp;#8217;s this attitude towards users that will ensure KDE has a long and bright future, far ahead of the direction Unity is taking.&lt;/p&gt;

&lt;h3&gt;Looks are good, but it&amp;#8217;s what makes KDE tick that is awesome.&lt;/h3&gt;

&lt;p&gt;While looks and user experience are all important aspects of a desktop environment, it&amp;#8217;s the backend that powers it all that ultimately matters most. Without a solid back-end all you have are pretty pictures. While many would credit Unity and gnome for pioneering many great Linux Desktop features, what most fail to realize is they all started out as KDE technologies. I know what you are thinking, &amp;#8220;Wait. Did he just say &amp;#8216;ALL&amp;#8217; features?&amp;#8221; Why yes, yes I did. I&amp;#8217;ll show you.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;KIO&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;KIO is a technology pioneered by KDE to handle accessing things such as network shares, digital cameras, MP3 players, and other devices seamlessly through the file manager. It works using what are called &amp;#8220;KIO Slaves.&amp;#8221; Thanks to KIO slaves, you can seamlessly browse the contents of your iPod, Windows share, NAS, digital camera, Android phone, ftp server and anything else you can dream of. Sounds a lot like gvfs (now GIO, coincidence? I think not). Only KIO came to be in 1996. GIO? It just to &lt;em&gt;almost &lt;/em&gt;have feature parity with KIO in 2010.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Phonon&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Phonon is the sound architecture in KDE. It is a front end to managing sound devices, mixers and a plethora of other options. But wait, what&amp;#8217;s so special about Phonon? Don&amp;#8217;t other desktop environments manage sound just fine? Well yes, they do if you only like to have one backend to handle your system&amp;#8217;s sound. Phonon supports using VLC, Alsa, Pulse Audio, OSS and Jack as audio backends without hassle. It is literally as simple as opening up system settings and choosing your option from a list. Unity (and gnome) by attempting to be &amp;#8220;simple&amp;#8221; completely lacks this functionality. Did I mention KDE has had this ability since the first 5.x release?&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;KDE PIM&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;KDE PIM. Love it or hate it, this suite of Applications is unmatched on any other Linux desktop that exists. It is the Microsoft Outlook of Linux and I mean that in a good way. In one application (or separate if you choose, remember KDE is about freedom) you can manage your email, contacts, calendar, RSS feeds, notes, blog and to-do list. You can store information locally, or keep in sync via any number of protocols.  This entire system got a major overhaul in the 4.7 release and has been polished in 4.8.0, I encourage you to give it a try to find out for yourself why Evolution is no match.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;KDE Applications&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;While not a back-end feature, the KDE suite of applications deserves a mention. The suite of applications that are part of the KDE SC have no match on other desktop environments, and even on other platforms. While the Unity and Gnome camp have touted the features of applications like Shotwell, Banshee, and the like, they don&amp;#8217;t even come close to their KDE counter parts. In fact, people who find themselves missing feature packed Windows only applications on Linux need to look no further than the KDE SC. Lets take a look at Gwenview for example.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://i.imgur.com/TNK4i.png"&gt;&lt;img src="http://i.imgur.com/gcnTu.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this one application you can rate, tag, organize, crop, resize, reduce red eye, create slideshows, rotate and share your images with a ridiculous number of services via plugins including Facebook, Picasa, imgur, twitpic and many more. That&amp;#8217;s not all Gwenview can do but it&amp;#8217;s features are far too many to list in this post so why not install it and give it a whirl, I guarantee you&amp;#8217;ll never go back to another photo management application again.&lt;/p&gt;

&lt;p&gt;Another application worth mentioning specifically is Blogilo, which this very post was written in. Ever since the release if Windows 7 I&amp;#8217;ve been searching for a Linux application that was on par with Windows Live Writer. I tried a variety of gnome applications (since that&amp;#8217;s what I was using at the time) but none of them came even close. Then I discovered Blogilo.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://i.imgur.com/VBlzk.png"&gt;&lt;img src="http://i.imgur.com/9wKNz.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Blogilo can connect to any number of weblog services and allow you to both edit old posts and create new ones. It can assign categories, tags and much more. It can edit HTML, Visually and even show you a preview of what the post would look like using your blog&amp;#8217;s theme. It also supports as many blogs as you want to add to it.&lt;/p&gt;

&lt;p&gt;Some other KDE Applications that far exceed anything that follows the Unity/Gnome philosophy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Amarok - A music player with everything but the kitchen sink&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ktorrent - On par, if not better than, uTorrent on Windows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dolphin - The KDE file manager that is easily the best file manager on Linux&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Digikam - Simply the best digial camera photo management software in the world&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;k3b - Light years ahead of Braserro and on par with UltraISO on Windows. Just ask my stack of failed DVDs from Brassero&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;KSecretService - A password management backend that is compatible with GNOME&amp;#8217;s for interoperability&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kate - A really advanced programmer&amp;#8217;s text editor with support for GDB integration, call stack browser, SQL statement tester and many more features&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Okular - Hands down the best document reader across all platforms.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If you aren&amp;#8217;t convinced that KDE is the future yet, I encourage you to try out this new release. The Kubuntu guys have it all packaged up and ready to go in their backports repository if you need an easy way to install it. It is well worth it, and once you get KDE set up the way you want it you will be happy you said so long to GNOME and Unity. Afterall, there is a good reason why most of the freedesktop.org standards started out as KDE technologies.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;note: I was going to include a screencast to demonstrate the awesomeness of this KDE release but due to technical limitations of my laptop, I was unable to. I encourage you to stay tuned to this post as I will manage to have a screencast posted in the coming week. Thanks for reading!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1jO7ZruzsiAaj561f6rSFpJwHQ8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1jO7ZruzsiAaj561f6rSFpJwHQ8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1jO7ZruzsiAaj561f6rSFpJwHQ8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1jO7ZruzsiAaj561f6rSFpJwHQ8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/-6dmKtn1N-0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/01/27/why-kde-is-the-future/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Moving to nginx + php-fpm : A lesson learnt in verbosity]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/HRvyLmljwy8/" />
    <updated>2012-01-27T14:04:10-05:00</updated>
    <id>http://asininetech.com/2012/01/27/moving-to-nginx-php-fpm-a-lesson-learnt-in-verbosity</id>
    <content type="html">&lt;p&gt;So yesterday I decided to move my web server from a typical LAMP setup with Memcached to a nginx + php-fpm setup. This in of itself is a rather simple task, I have already moved another site of mine to the same setup. But I ran into some issues while I was moving.&lt;/p&gt;

&lt;p&gt;The issue was that my VirtualHost for this site wasn&amp;#8217;t working, it decided to redirect to my web root (which resulted in a 503 Forbidden of course since there wasn&amp;#8217;t anything there).&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;The error message:&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;2012/01/26 21:56:06 [error] 6931#0: *16 directory index of "/var/www/" is forbidden, client: 2001:470:1f06:dd1::2, server: localhost, request: "GET / HTTP/1.1", host: "asininetech.com"&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;At first I thought maybe my VirtualHost configuration was wrong:&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;span class='line-number'&gt;12&lt;/span&gt;
&lt;span class='line-number'&gt;13&lt;/span&gt;
&lt;span class='line-number'&gt;14&lt;/span&gt;
&lt;span class='line-number'&gt;15&lt;/span&gt;
&lt;span class='line-number'&gt;16&lt;/span&gt;
&lt;span class='line-number'&gt;17&lt;/span&gt;
&lt;span class='line-number'&gt;18&lt;/span&gt;
&lt;span class='line-number'&gt;19&lt;/span&gt;
&lt;span class='line-number'&gt;20&lt;/span&gt;
&lt;span class='line-number'&gt;21&lt;/span&gt;
&lt;span class='line-number'&gt;22&lt;/span&gt;
&lt;span class='line-number'&gt;23&lt;/span&gt;
&lt;span class='line-number'&gt;24&lt;/span&gt;
&lt;span class='line-number'&gt;25&lt;/span&gt;
&lt;span class='line-number'&gt;26&lt;/span&gt;
&lt;span class='line-number'&gt;27&lt;/span&gt;
&lt;span class='line-number'&gt;28&lt;/span&gt;
&lt;span class='line-number'&gt;29&lt;/span&gt;
&lt;span class='line-number'&gt;30&lt;/span&gt;
&lt;span class='line-number'&gt;31&lt;/span&gt;
&lt;span class='line-number'&gt;32&lt;/span&gt;
&lt;span class='line-number'&gt;33&lt;/span&gt;
&lt;span class='line-number'&gt;34&lt;/span&gt;
&lt;span class='line-number'&gt;35&lt;/span&gt;
&lt;span class='line-number'&gt;36&lt;/span&gt;
&lt;span class='line-number'&gt;37&lt;/span&gt;
&lt;span class='line-number'&gt;38&lt;/span&gt;
&lt;span class='line-number'&gt;39&lt;/span&gt;
&lt;span class='line-number'&gt;40&lt;/span&gt;
&lt;span class='line-number'&gt;41&lt;/span&gt;
&lt;span class='line-number'&gt;42&lt;/span&gt;
&lt;span class='line-number'&gt;43&lt;/span&gt;
&lt;span class='line-number'&gt;44&lt;/span&gt;
&lt;span class='line-number'&gt;45&lt;/span&gt;
&lt;span class='line-number'&gt;46&lt;/span&gt;
&lt;span class='line-number'&gt;47&lt;/span&gt;
&lt;span class='line-number'&gt;48&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;upstream php {
&lt;/span&gt;&lt;span class='line'&gt;server 127.0.0.1:9000;
&lt;/span&gt;&lt;span class='line'&gt;}
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;server {
&lt;/span&gt;&lt;span class='line'&gt;listen 80;
&lt;/span&gt;&lt;span class='line'&gt;listen [::]:80;
&lt;/span&gt;&lt;span class='line'&gt;root $SITEROOT;
&lt;/span&gt;&lt;span class='line'&gt;server_name asininetech.com;
&lt;/span&gt;&lt;span class='line'&gt;index index.php;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;# Cloudflare
&lt;/span&gt;&lt;span class='line'&gt;set_real_ip_from 204.93.240.0/24;
&lt;/span&gt;&lt;span class='line'&gt;set_real_ip_from 204.93.177.0/24;
&lt;/span&gt;&lt;span class='line'&gt;set_real_ip_from 199.27.128.0/21;
&lt;/span&gt;&lt;span class='line'&gt;set_real_ip_from 173.245.48.0/20;
&lt;/span&gt;&lt;span class='line'&gt;set_real_ip_from 103.22.200.0/22;
&lt;/span&gt;&lt;span class='line'&gt;set_real_ip_from 141.101.64.0/18;
&lt;/span&gt;&lt;span class='line'&gt;set_real_ip_from 108.162.192.0/18;
&lt;/span&gt;&lt;span class='line'&gt;real_ip_header CF-Connecting-IP;
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;location = /favicon.ico {
&lt;/span&gt;&lt;span class='line'&gt;log_not_found off;
&lt;/span&gt;&lt;span class='line'&gt;access_log off;
&lt;/span&gt;&lt;span class='line'&gt;}
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;location = /robots.txt {
&lt;/span&gt;&lt;span class='line'&gt;allow all;
&lt;/span&gt;&lt;span class='line'&gt;log_not_found off;
&lt;/span&gt;&lt;span class='line'&gt;access_log off;
&lt;/span&gt;&lt;span class='line'&gt;}
&lt;/span&gt;&lt;span class='line'&gt;location / {
&lt;/span&gt;&lt;span class='line'&gt;index index.php index.html index.htm;
&lt;/span&gt;&lt;span class='line'&gt;try_files $uri $uri/ /index.php?$args;
&lt;/span&gt;&lt;span class='line'&gt;}
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;location ~ \.php$ {
&lt;/span&gt;&lt;span class='line'&gt;include fastcgi_params;
&lt;/span&gt;&lt;span class='line'&gt;fastcgi_pass php;
&lt;/span&gt;&lt;span class='line'&gt;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
&lt;/span&gt;&lt;span class='line'&gt;fastcgi_index index.php;
&lt;/span&gt;&lt;span class='line'&gt;}
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
&lt;/span&gt;&lt;span class='line'&gt;expires max;
&lt;/span&gt;&lt;span class='line'&gt;log_not_found off;
&lt;/span&gt;&lt;span class='line'&gt;}
&lt;/span&gt;&lt;span class='line'&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;But this was the exact same configuration I was using for my other VirtualHost which was working just fine.&lt;/p&gt;

&lt;p&gt;My next thought was that maybe the SQL file I imported the database from was corrupted. So I redid the dump and re-imported the database. Still no luck, and I was still getting the same error. The logs didn&amp;#8217;t tell me anything more.&lt;/p&gt;

&lt;p&gt;Now I figured, if there wasn&amp;#8217;t anything wrong with nginx or MySQL, the last remaining issue was the WordPress files I restored from my backup. So I downloaded the latest tarball from the wordpress.org and replaced the files. Still no luck.&lt;/p&gt;

&lt;p&gt;The next morning, when I woke up, I decided to try the standard LAMP setup again, and to no surprise, it wasn&amp;#8217;t working either. So I took a look at the Apache error.log and voila:&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;[Fri Jan 27 11:01:22 2012] [error] [client 99.*.*.*] PHP Fatal error: Class 'Memcache' not found in $SITEROOT/wp-content/plugins/wp-memcached-manager/wp-memcached-manager.php on line 11&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;&lt;em&gt;facedesk&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;While I was moving the site over, I removed all the plugins that used Memcached (object-cache.php, batcache) EXCEPT for that specific one. Removed the plugin directory for WP Memcached Manager and the site worked fine.&lt;/p&gt;

&lt;p&gt;Lesson learnt - VERBOSE ALL THE ERRORS!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SNUzRCi5wfVYbwgeiT5GsVum3BY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SNUzRCi5wfVYbwgeiT5GsVum3BY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SNUzRCi5wfVYbwgeiT5GsVum3BY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SNUzRCi5wfVYbwgeiT5GsVum3BY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/HRvyLmljwy8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/01/27/moving-to-nginx-php-fpm-a-lesson-learnt-in-verbosity/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Commentless?]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/p86DwORg_oQ/" />
    <updated>2012-01-04T23:20:14-05:00</updated>
    <id>http://asininetech.com/2012/01/04/commentless</id>
    <content type="html">&lt;p&gt;Well, once again MG Siegler has done it again; wrote an article on Tumblr that somehow ends up affecting a some random web sites out there. &lt;a href="http://parislemon.com/post/15305835451/bile"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He makes many good points, and the article in question &lt;em&gt;he&lt;/em&gt; was talking about makes good points. So that leads to today, where we decided to jump on the bandwagon and turn off comments. The bottom line is this, &amp;#8220;these are &lt;em&gt;our&lt;/em&gt; words and &lt;em&gt;you&lt;/em&gt; don&amp;#8217;t&lt;em&gt; &lt;/em&gt;have the right to put &lt;em&gt;your&lt;/em&gt; words on it.&amp;#8221; Does that make us sound like a bunch of dicks? Of course. Do we have a good reason for this? Yep.&lt;/p&gt;

&lt;p&gt;Don&amp;#8217;t get me wrong here, comments are a &lt;em&gt;great &lt;/em&gt;thing when done right. But there lies the issue. For every good comment, there is around 5 more ones that add no value and just add trash to the site. And for those who do actually write cohesive and great comments that are tasteful and add value? We are sorry, this was not meant to offend you in any manner. But with the couple other hundred ways you have to contact the author, the hope is that you will partake in that.&lt;/p&gt;

&lt;p&gt;To summarize, we have better things to do (like make articles of good quality) then moderate comments all day. Now I know this blog isn&amp;#8217;t that popular compare to other more spam-filled ones. But you could ask anyone who watches over their comments and you would be told that it is a pain.&lt;/p&gt;

&lt;p&gt;As always, thank you for reading and have a great day.&lt;/p&gt;

&lt;p&gt;(Due to the lack of comments, if you want to actually discuss this with me, you can contact me via a plethora of ways. &lt;a href="http://twitter.com/technoticracoon"&gt;Twitter&lt;/a&gt;&lt;a href="http://twitter.com/technoticracoon"&gt;,&lt;/a&gt; &lt;a href="https://plus.google.com/113065569337723072601/posts"&gt;Google+&lt;/a&gt; )&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CA8w9FRt2RfJvb8fCU3oXYux6_k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CA8w9FRt2RfJvb8fCU3oXYux6_k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CA8w9FRt2RfJvb8fCU3oXYux6_k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CA8w9FRt2RfJvb8fCU3oXYux6_k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/p86DwORg_oQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/01/04/commentless/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Comments]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/OZFT1K_22VU/" />
    <updated>2012-01-04T23:00:54-05:00</updated>
    <id>http://asininetech.com/2012/01/04/comments</id>
    <content type="html">&lt;p&gt;Yep. I have disabled comments. Why? Please read &lt;a href="http://parislemon.com/post/15305835451/bile"&gt;Exhibit A&lt;/a&gt; and &lt;a href="http://daringfireball.net/2010/06/whats_fair"&gt;Exhibit B&lt;/a&gt;. Despite my personal dislike for Messieurs Gruber and Siegler, I will agree with them on those points.&lt;/p&gt;

&lt;p&gt;Oh, and I disabled in-post ads because they look absolutely horrible.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/reYKZzibf4ozetQ1s4DZXZp7JU0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/reYKZzibf4ozetQ1s4DZXZp7JU0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/reYKZzibf4ozetQ1s4DZXZp7JU0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/reYKZzibf4ozetQ1s4DZXZp7JU0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/OZFT1K_22VU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2012/01/04/comments/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Cloud Computing]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/bh_EXFo_WQ4/" />
    <updated>2011-11-24T07:39:37-05:00</updated>
    <id>http://asininetech.com/2011/11/24/cloud-computing</id>
    <content type="html">&lt;p&gt;Today’s computing needs increasingly demand for the use of cloud services, in this post the writers of Asinine Tech will be giving their widely different opinions on the use/abuse of cloud services for developers, enterprise and consumers.&lt;/p&gt;

&lt;h3&gt;Fox: Power-User, Developer and CLI Fanboy&lt;/h3&gt;

&lt;p&gt;I have an interesting viewpoint, I&amp;#8217;m both an end user and a developer, I’ve decided to not talk too much about development all too much because I pretty much only use C, PHP and Perl and avoid having anything to do with the user interface. I’m going to represent the “power user” for this large block of text.&lt;/p&gt;

&lt;p&gt;After seeing &lt;a href="http://asininetech.com//anderse.wordpress.com/os-js/%E2%80%9D"&gt;OS.js&lt;/a&gt;, I saw what cloud computing could really be. Not the bad experience you get from a slow port of chrome for Linux called ChromeOS. You feel like you are running on a real computer, not a browser. Its made me wonder why Google set their target so low, They created a worthless toy that works for maybe an elementary school or an internet café, but doesn’t work for much else. They want to make Google on top for everything? They should have really just designed a new desktop interface that kind of uses Chrome’s technologies to get the job done. I’ve never had a problem with some of the technologies used by browsers such as CSS and XML, they speed up development and make it easier to make a consistent interface; but they shouldn’t be used as the only part of the software. Javascript is not a solution to not having a programming language, HTML isn’t a great markup language for desktop UIs, and CSS just has too many issues with portability. What so many people seem to forget is that the web was never designed to handle our everyday lives, it was designed to share papers and information easily. Google has just bastardised the whole thing by going ahead and naming stuff in confusing ways, People think that native can exist in a browser now, Companies think that an office suite, email, and other applications that really need real time performance can live online with varying levels of success.&lt;/p&gt;

&lt;p&gt;Some applications have lived on as desktop applications, while some people are moving to web music services some still use iTunes, no matter how clunky the interface may be, it still feels better. Even I would prefer iTunes compared to many other online services. Another example of software that people prefer to be native is game clients, this includes the social elements like Steam. Steam wouldn’t work if it was in a browser, nor would XFire. (if anyone remembers that) All of these applications require some level of native software, even though they could really just be on the web with a service that listens for special protocols&amp;#8220;. People like that interface they get because it doesn’t get in their way, it stays in a notification area till it needs to be used.&lt;/p&gt;

&lt;h3&gt;Cafejunkie:&lt;/h3&gt;

&lt;p&gt;Let me start off by saying I don’t necessarily represent the views of your average end user. I mostly see things from a software development perspective as that is the world that I live in. The way I use computers isn’t how most people use them.&lt;/p&gt;

&lt;p&gt;First, I want to point out some projects that get “cloud computing” right.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.spotify.com"&gt;Spotify&lt;/a&gt; is a good example. It is a native application but pulls it data from web (cloud) services while, because it is a native application, having the ability to play my music from my local storage. Social media is another area where one paradigm succeeds while the other fails. On one hand you have the “in the browser” paradigm which merges email, chat, status updates, etc into one clunky web interface. On the other hand, you have the native application+transparend web service paradigm. The “People Hub” in Windows Phone 7 is a near perfect way to handle social media.&lt;/p&gt;

&lt;p&gt;Another flaw to the “everything in the browser” paradigm is bandwidth constraints.. With mobile plans now lacking unlimited data I don’t want to load an entire UI and fancy animations into my browser on a limited plan. I would rather have the UI elements be local and just pull the data I need, which is usually in text or a very small binary format. That paradigm is much more efficient.&lt;/p&gt;

&lt;p&gt;All of the above reasons I think are proof that using only a browser is not the way to go and I would even argue in favor of killing the browser for all but documents, seeing as that was what HTML was originally designed for. To top it all off, I still don’t like the idea of browser technologies. The DOM sucks and Javascript is still slow inside of the browser. I much prefer native applications. Javascript, as a language (in my humble opinion) sucks for server-side programming. Also, HTML 5 and CSS3 for UI design and development are still pretty bad. Why move to those technologies for UI design when we have so many established technologies that just work (and work rather well)? I don’t want to suffer browser compatibility problems while programming a UI. Not only are compatibility problems rampant, HTML was never meant to design user interfaces whereas something like XAML was. Native applications that pull data from web services eliminate that suffering. I can use the UI technologies I’m used to while still taking advantage of web services without the mess that is the browser. Besides document viewing, the browser is old technology and was never designed to be used the way it is now. HTML is just a document markup language, not a language to design user interfaces with.&lt;/p&gt;

&lt;p&gt;Even with cloud computing in it’s infancy, already the two paradigms are battling for control. Both want to use what’s known as a “thin client” but both paradigms define “thin client” differently. In my opinion Google gets it wrong while Microsoft (and others) gets it right. Here is why.&lt;/p&gt;

&lt;p&gt;A “thin client” still needs to have native apps. What Google did is the wrong way to approach it. Don’t make people feel like they are locked in a browser. Make the fact that they are using web services transparent. Let them have a native application shell that pulls XML, JSON, or YAML data from web services transparently. No browser.&lt;/p&gt;

&lt;p&gt;In the end I think Google’s “platform” will lose. People don’t want a browser, or worse, to be locked inside of one. Microsoft and Apple’s idea of “cloud” computing (native applications pulling in data from web services) will win out.&lt;/p&gt;

&lt;h3&gt;staticsafe:&lt;/h3&gt;

&lt;p&gt;As a user of multiple operating systems (Windows, OSX, Linux), cloud computing can be quite the savior sometimes. I use Dropbox quite often to back up configuration files and to move file across systems easily. I’m also currently using Dropbox to manage my programming assignments that I get from school. I also use Github (cloud service?) to put my code up in the cloud to share with other people.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Addressing vendor lock in&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Cloud computing addresses vendor lock in an interesting way from the layman’s perspective. It essentially forces developers to use standard file formats for files. This makes it easier for a user to move files &lt;strong&gt;off&lt;/strong&gt; the cloud and aforementioned files still being easily accessible within the operating system of their choice, such as: a Google Docs document can be easily outputted to various formats which can be easily edited and shared offline.&lt;/p&gt;

&lt;h3&gt;Raccoon: User Experience/ UI Design Pundit: At Large.&lt;/h3&gt;

&lt;p&gt;And when Eric Schmidt first announced ChromeOS, he basically said that it was the modern day implementation of the “thin client” idea. But per that idea, it means that the host computer would basically be useless..or “dumb” when not connected to the host. Which is a big problem for basically the whole world. Internet connections are not very speedy nor reliable in most of the world. And the half-assed attempts Google has made currently to rectify this situation is laughable at best. Gmail Offline is a rip of the tablet UI, Google Docs offline can only view things, and Calender can’t even add events. Also none of the “browser based” IDE’s support HTML offline, Cloud 9 being excluded, but that only “supports” HTML/JS/CSS and maybe one or two scripting languages. Basically, no one wants a dumb terminal because&amp;#8230;&amp;#8230;. it’s kinda dumb.&lt;/p&gt;

&lt;p&gt;Basically, I just want Web OS and stateless computing to come together. I can care less about the technology used for it, nor do I care about how it is done. I just want pretty, and I want things to work. Is that so hard of me to ask in 2011? As each day goes on, Google’s mentality of design being put behind raw engineering power is really starting to show. Only when something works a hell of a lot better than a competitors product, and not just by a bit. That is when I switch, and that gap is widening.&lt;/p&gt;

&lt;p&gt;To add insult to injury, Google is going ahead and making their own “web-like” scripting language called Dart. As far as we know (though the information Google gave out), it is like Javascript but uses classes instead of prototypes per Javascript. And it runs multi threaded in the browser. From my “Oh look at this new shiny thing” perspective. It looks like yet-another-programing-language. Too little and too late on this one Google.&lt;/p&gt;

&lt;p&gt;But I am honestly not against the idea of Cloud Computing, I find that idea to be up there. And I have the most ground to state my opinion on this as I have had a Cr-48 for almost a year. I really want ChromeOS to succeed in some form, just not the current form. Call me a fanboy, but I use basically Google everything, and because of that I want this product to work. I really do, but the flaws are so large that I just can’t. Not in the current form.&lt;/p&gt;

&lt;p&gt;Let me add one more thing about the pains of ChromeOS. I’m going to walk you through the fun steps of handling a picture. First you plug in your camera, or get it from an email, or someone how get it onto your device. Second, you then go ahead and sign into Picasa. Second point Five, if you want to edit it, you upload to picnik or some other service. And said service is in flash, and due to them using pepper flash in ChromeOS because of sandboxing, it is slow. Third, you redownload the finished copy and then reupload to where ever you wanted it to be. (Facebook, Twitter, 4Chan, Etc.) And the same 3 to 4 step process applies to everything in this OS.&lt;/p&gt;

&lt;p&gt;To summarize my little rant, “Ground” Computing is nice sometimes Google, and it rains when you stay in the cloud for too long..&lt;/p&gt;

&lt;h3&gt;Acronyms:&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;HTML - HyperText Markup Language: the language of the web&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;XML - Extensible Markup Language: a markup language often used for communication between applications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JSON - JavaScript Object Notation: another markup language used for communication between applications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IDE - Integrated Development Environment: A tool that programmers can use to write software&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JS - Javascript: A programming language used primarily on the web to create active content.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS - Cascading Style Sheets: A markup language designed to make styling websites easier.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;XAML - Extensible Application Markup Language: An XML based markup language designed for creating applications and user interfaces.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;YAML - YAML Ain&amp;#8217;t Markup Language(recursive acronym): A language designed for data interchange.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DOM - Document Object Model:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Node.js - Node.js is an event-driven I/O server-side JavaScript environment based on V8.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RlXL7K48deLgV2vsaMHoFYhtzCo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RlXL7K48deLgV2vsaMHoFYhtzCo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RlXL7K48deLgV2vsaMHoFYhtzCo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RlXL7K48deLgV2vsaMHoFYhtzCo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/bh_EXFo_WQ4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/11/24/cloud-computing/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[My little rant on piracy]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/QHGJbhrOGcg/" />
    <updated>2011-11-21T16:44:38-05:00</updated>
    <id>http://asininetech.com/2011/11/21/my-little-rant-on-piracy</id>
    <content type="html">&lt;p&gt;Today, the European commissioner of the digital agenda. Neelie Kroes. expressed her &lt;a href="http://torrentfreak.com/copyright-is-failing-says-european-commissioner-111121/"&gt;opinions&lt;/a&gt; about the issues of failing copyright. And she is right. Why should we care about the Intellectual property and copyright? Isn’t it all about the artist getting a compensation for his work? Who stated we need copyright to get this working? Or draconian laws like SOPA and ACTA? Copyright is failing. That’s one thing that is clear. Piracy is only increasing, and the fight against it hasn’t been extremely effective yet. And hopefully never will be. Because for that to be effective. It would mean we would live in a world with a censored Internet.&lt;/p&gt;

&lt;p&gt;The next question is: “why does the entertainment industry, and its lawyer groups) want piracy dead?&lt;/p&gt;

&lt;p&gt;They don’t. They want control over the medium used to spread piracy. Which, today is the Internet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hunting pirates has become their new business model.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why spend billions in creating a new business model that &lt;strong&gt;might&lt;/strong&gt; be successful, when you can use your lobby groups to get laws passed that makes you being able to directly profit from piracy?
The entertainment industry doesn’t want piracy dead. It wants it to be alive. Very much alive. This makes it being able for them to keep up the current “status quo”. and being able to profit from it outside traditional business models.&lt;/p&gt;

&lt;p&gt;The entertainment industry wants to make itself unmissable. It is stating music will disappear, if they do. this is not true though. there are many artists who are doing new business models to promote their work, like &lt;a href="http://binaerpilot.no/"&gt;binärpilot&lt;/a&gt; and &lt;a href="http://www.bradsucks.net/"&gt;brad sucks.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This shows once again, that most of the efforts of the entertainment industry are not to fight piracy but to keep up the status quo.&lt;/p&gt;

&lt;p&gt;This was my little rant on piracy (for the day)&lt;/p&gt;

&lt;p&gt;-Kazen&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A little bit about myself: My name is Kazen, a 23 year old student from the Netherlands. I usually hang out a lot with the Asinine Tech people. And I’m interested in computers and new issues that arise thanks to digitalization.  This was my first post on Asinine Tech. and I hope you enjoyed it. Also, please don’t burn me to death for any errors as this is my first blog post since the beginning of the Internet :P.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b6W4fFmVoQaCEEMOiOvdq_xrh1w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b6W4fFmVoQaCEEMOiOvdq_xrh1w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/b6W4fFmVoQaCEEMOiOvdq_xrh1w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b6W4fFmVoQaCEEMOiOvdq_xrh1w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/QHGJbhrOGcg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/11/21/my-little-rant-on-piracy/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[What has happened to you Capcom.....]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/L39hX1M77ng/" />
    <updated>2011-11-15T19:40:50-05:00</updated>
    <id>http://asininetech.com/2011/11/15/what-has-happened-to-you-capcom</id>
    <content type="html">&lt;p&gt;(Note: This has sat in my to-post pile for a while, so some of the information may be outdated)&lt;/p&gt;

&lt;p&gt;Capcom, makes some of (arguably) best games out there. I’m sure many of you remember yelling at your TV set while playing Megaman back in the NES days. But recently it seems that Capcom has put other things in front of its main game series. Marvel Vs. Capcom 3 doesn’t have Megaman in the roster of characters and they are charging much much more than they should for what is bug fixes and a couple of extra characters. And the best of all, a new mode that should have been there from the start! I’m starting to think that Capcom is starting to loose sight of what it should be doing as a company. The earlier Resident Evil games were better than the latest entries in the series, for example.  The thing that has really started to make me disappointed in Capcom is the cancellation of 2 games. One being Megaman legends 3 for the 3ds and the other being Megaman universe for the Xbox 360 and PS3.&lt;/p&gt;

&lt;p&gt;Fans are starting to get a bit angry at Capcom as stated &lt;a href="http://www.capcom-unity.com/go/suggestion/box"&gt;here&lt;/a&gt;, &lt;a href="http://www.gameinformer.com/b/news/archive/2011/07/18/mega-man-legends-3-canceled.aspx#comments"&gt;here&lt;/a&gt;, &lt;a href="http://www.joystiq.com/2011/07/18/mega-man-legends-3-project-canceled/#comments"&gt;here&lt;/a&gt;, &lt;a href="http://www.gamespot.com/3ds/rpg/mega-man-legends-3/news/6324412/mega-man-legends-3-officially-cancelled#comments"&gt;here&lt;/a&gt;, &lt;a href="http://www.moetron.com/2011/07/18/mega-man-legends-3-officially-canceled#comments"&gt;here&lt;/a&gt; and &lt;a href="http://www.siliconera.com/2011/07/18/mega-man-legends-3-canceled-prototype-version-also-canned#comments"&gt;here&lt;/a&gt;. What seems to make Capcom enthusiasts the most frustrated is the cancellation of Megaman legends 3. Megaman Legends 3 had 2 releases planned for it, a prototype version and the real game. The prototype version was going to be a collection of levels explaining what happened before the real game takes place. Capcom had released a dev room where players could make characters and designs and share with other players and the developers of the game would peer in from time to time to see the most popular. Capcom said the game was canceled due to lackluster support for the dev room, but noted in the links above, I’m pretty sure that was inaccurate.&lt;/p&gt;

&lt;p&gt;Most people have been saying that the cancellation of the project has something to do with the fact the Keji Inafune left Capcom late last year. He was one of the big drivers at Capcom and he started the 2 games that were canceled.&lt;/p&gt;

&lt;p&gt;So today Capcom should do some rethinking of its strategy, fans aren’t very happy in the direction they are going in. And at the end of the day we gamers loose out on games that we want and know will be good. And Megaman fans never get to find out what happens at the end of Megaman legends.  The only thing that you, as gamers can do is going to their forums and suggestions pages and make it known that they are killing games that you want to play. My suggestion to them would be just to actually go ahead with the game due to the fact that it was in development and there is working versions of it out there. And if you check the comments section of any site posting about the games being killed, you can see that the fans are mad. So if you want your voice to be heard on what companies do, all it takes is talking in the right places.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oMymPuYcu0dJDySwhiwtLtt6MNA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oMymPuYcu0dJDySwhiwtLtt6MNA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oMymPuYcu0dJDySwhiwtLtt6MNA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oMymPuYcu0dJDySwhiwtLtt6MNA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/L39hX1M77ng" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/11/15/what-has-happened-to-you-capcom/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[A Rant on PC Gaming and Communities]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/kkEwYJ8v-iE/" />
    <updated>2011-11-15T14:27:41-05:00</updated>
    <id>http://asininetech.com/2011/11/15/a-rant-on-pc-gaming-and-communities</id>
    <content type="html">&lt;p&gt;One topic nobody ever brings up in the console vs PC debate is the communities that form around them. So I thought I would just put my thoughts out there on why PC gaming is my primary choice and how the community aspect of that formed my decision.&lt;/p&gt;

&lt;p&gt;The only points I ever see or hear about is graphics of the games. Sure that&amp;#8217;s one of many points of why its better and some people really are just graphics whores. The thing is though that even this one aspect of gaming forms its own community around it. The people that build custom computers and overclock their hardware are a massive community. This has even formed an entire industry around enthusiast hardware such as video cards.&lt;/p&gt;

&lt;p&gt;Another argument in favor of PC is dedicated servers. Dedicated servers do of course help prevent cheating and improve the overall performance and fairness of the game but it helps form communities. Having an always on place to come hang out and talk to other like minded individuals can create communities. These communities can vary from people who just like to relax to hardcore competitive clans and everything in between.&lt;/p&gt;

&lt;p&gt;With the release of Skryim another valid point brought up is mods. These form many communities from the mod developers to the mod players. These communities can outlast even the original game itself and, in combination with my previous point, people running servers can elongate the life of a game indefinitely.&lt;/p&gt;

&lt;p&gt;All of this adds up to a very compelling reason for anyone that is into gaming and has the desire and time to commit to a game. Not everyone wants or needs a community which is fine but those who do will find much more value in the PC as a platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MTbHtD6EZwB7SjcJMjh4kjZd7qE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MTbHtD6EZwB7SjcJMjh4kjZd7qE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MTbHtD6EZwB7SjcJMjh4kjZd7qE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MTbHtD6EZwB7SjcJMjh4kjZd7qE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/kkEwYJ8v-iE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/11/15/a-rant-on-pc-gaming-and-communities/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Howto: Unity Launcher on Bottom]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/OjKHysiRDZQ/" />
    <updated>2011-11-07T04:20:25-05:00</updated>
    <id>http://asininetech.com/2011/11/07/howto-unity-launcher-on-bottom</id>
    <content type="html">&lt;p&gt;Ubuntu 11.10 launched with a slightly revamped unity interface bringing subtle yet important changes. One of these changes being the relocation of the Ubuntu button onto the launcher. Some people saw this as unneeded, out of place, or just a bit silly. Most people didn&amp;#8217;t look past the little things enough to realize that this small change brought along the possibility that the launcher would some day be movable. Well, thanks to a Russian interface tweaker named &amp;#8220;Paulo&amp;#8221;, that possibility is now a reality. Paulo has ingeniously figured out a way to move the unity launcher to the bottom of the screen. What I am going to do, is show you how to get this for yourself and what problems you may run into.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to get it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NOTE: 32Bit Only! I do not accept any responsibility for any negative impact on your system that may occur from enabling this!&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;1. Go ahead and download [unityshell.tar.lzma](http://dl.dropbox.com/u/47006748/unityshell.tar.lzma) and extract it to your home folder.


2. Open up a terminal, and get your copy and paste ready, one line at a time now.
&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;&lt;p&gt;mkdir -p ~/.compiz-1/plugins
cd ~/unityshell
cp libunityshell.so ~/.compiz-1/plugins/
mkdir /tmp/unityshell
cp &lt;em&gt;.png /tmp/unityshell/
cd /tmp/unityshell/
chmod 644 &lt;/em&gt;.png
sudo chown root:root &lt;em&gt;.png
sudo cp &lt;/em&gt;.png /usr/share/unity/4/&lt;/p&gt;&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Now just log out then log back in.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;a href="http://asininetech.com/wp-content/uploads/2011/11/Screenshot-at-2011-11-07-00-48-51.png"&gt;&lt;img src="http://asininetech.com/wp-content/uploads/2011/11/Screenshot-at-2011-11-07-00-48-51-1024x575.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Known Issues&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As you can see from the picture there are some issues. To start off, the first and most annoying bug that I have found; If you have more than instance of a certain application running and you pan out to view your open windows it doesn&amp;#8217;t always show every window that is actually open. Though the next few bugs are much more minor than the previous they should still be considered. If it is preferred to use the dash in a minimized view this tweak may not exactly be your cup of tea because when you do use minimized dash with this tweak the dash sort of detaches itself from the top panel and looks like it is broken(shown above) but using maximized dash of course is completely flawless. Unfortunately you aren&amp;#8217;t going to be able to drag the shortcuts from the dash or the desktop to the launcher when you are using this tweak. Thankfully you can still pin the items to the launcher using the unity quick list. Although most features like auto-hide surprisingly still work great given the launchers new placement the unity desktop still seems to think that the launcher is on the left with this tweak so there are still a few noticeable incompatibilities. For instance when you use workspace switcher there is a big black bar where the unity launcher used to be and you are also unable to drag and drop desktop shortcuts to the space where the panel used to be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that you know what you are getting into, its your choice if you wanna take it for a spin or not. I say give it a shot I kinda like it even though it can get a bit tedious sometimes. I originally stumbled upon this tweak on &lt;a href="http://www.webupd8.org/2011/10/how-to-move-unity-launcher-to-bottom-of.html"&gt;webupd8.org&lt;/a&gt;. If you want more info or just want to see the original posts where this tweak first came about &lt;a href="http://forum.ubuntu.ru/index.php?topic=171694.0"&gt;forum.ubuntu.ru&lt;/a&gt; and &lt;a href="http://ubuntu.onego.ru/articles/solves/launcher-unity-vnizu-ekrana/"&gt;ubuntu.onego.ru&lt;/a&gt; both web pages are in Russian so Google translate is advised. If you would like to undo this just run:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;rm ~/.compiz-1/plugins/libunityshell.so&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a9UiMehdRg6igKkB5K2WBKHm9nM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a9UiMehdRg6igKkB5K2WBKHm9nM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a9UiMehdRg6igKkB5K2WBKHm9nM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a9UiMehdRg6igKkB5K2WBKHm9nM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/OjKHysiRDZQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/11/07/howto-unity-launcher-on-bottom/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Desura Client]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/PEu8yDIdgSk/" />
    <updated>2011-11-04T17:49:58-04:00</updated>
    <id>http://asininetech.com/2011/11/04/desura-client</id>
    <content type="html">&lt;p&gt;If you have been paying attention to this blog for the past few days, you probably have heard me mention Desura a time or two or seen it in a screen shot. If you haven&amp;#8217;t figured out what it is yet, Desura is a content distribution client that mostly specializes in distribution of indie games. This isn&amp;#8217;t you average run of the mill content distribution service though, what sets it apart is its recently released Linux client. Although there are some pretty good Linux game stores on-line like Gameolith, or tux games, they just don&amp;#8217;t compare to the solid streamlined experience that Desura offers. So what exactly does it have to offer?&lt;/p&gt;

&lt;p&gt;To start off, the Desura library is loaded with tons of games to ensure that you won&amp;#8217;t soon get bored. Games from indie and free open source developers alike. All you have to do is pick what you want and desura will download and install it all for you.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://ubuntuone.com/0jPPT4joGWvcXod7SpyfWs" alt="Desura Game Library" /&gt;&lt;/p&gt;

&lt;p&gt;Desura has a ton of features. For instance, right from the library you can choose to launch a game, for some games start a server, or you can go ahead and add the game to your favorites.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://ubuntuone.com/40VjnryYqdTcPtDyXnWLuD" alt="Desura Library Features " /&gt;&lt;/p&gt;

&lt;p&gt;Another great aspect of Desura is that most games have the option to try a demo. Since you don&amp;#8217;t always know whether the game you are going to spend your hard earned cash on will work okay your system, its really convenient to have a demo a few clicks away.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://ubuntuone.com/7e2YysTVsheptMuLyNO4WM" alt="One Click Demo" /&gt;&lt;/p&gt;

&lt;p&gt;Desura conveniently ties all the info you&amp;#8217;d ever want to know about a game into one place. It has a number rating system, a section for news, videos, and pictures for each one of it&amp;#8217;s entries.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://ubuntuone.com/0szmUw6TCRJoxAEK7b4GC1" alt="Desura game info." /&gt;&lt;/p&gt;

&lt;p&gt;The social side of Desura is very well done; You can join groups, add friends and send messages. It really helps to fill the gap between the gamers and the developers.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://ubuntuone.com/6N4x1PDne2KzttUrzBMnaZ" alt="Desura social features" /&gt;&lt;/p&gt;

&lt;p&gt;Game distribution services are a rare sight on Linux. A client like this will really help to take the fear from developers making games for Linux since they can be assured that everyone has a chance to easily obtain and play their games on Linux. Keep in mind that Desura for Linux is in its early stages so bugs should be expected. Of course it has a mature Windows client For you Windows users out there. You can head over to desura.com for more info or to try it out.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/M2kBcdOgjRvQqjWCw6w13dQo28I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M2kBcdOgjRvQqjWCw6w13dQo28I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/M2kBcdOgjRvQqjWCw6w13dQo28I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M2kBcdOgjRvQqjWCw6w13dQo28I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/PEu8yDIdgSk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/11/04/desura-client/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Clip Grab: multi-platform Youtube downloader]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/lHlnuULx_U4/" />
    <updated>2011-11-03T23:05:34-04:00</updated>
    <id>http://asininetech.com/2011/11/03/clip-grab-multiplatform-youtube-downloader</id>
    <content type="html">&lt;p&gt;Have you been searching for a way to download and convert video&amp;#8217;s and music from sites like YouTube, Vimeo, or many others but while using Linux? Well look no further. An open source application called Clip Grab does just that in one great looking little package.&lt;/p&gt;

&lt;p&gt;Clip Grab is the little downloader that could. It&amp;#8217;s jam-packed with a ton of useful features that make it really handy in a jiff. You can search for videos directly from the application or simply use good ol&amp;#8217; copy and paste with a YouTube link. Once done it gives you the option to select the format and the quality. Then clip grab magically downloads and converts it all for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://asininetech.com/wp-content/uploads/2011/11/clip-grab-21.png"&gt;&lt;img src="http://asininetech.com/wp-content/uploads/2011/11/clip-grab-21-300x168.png" alt="" /&gt;&lt;img src="http://asininetech.com/wp-content/uploads/2011/11/clip-grab-ulrich-300x168.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are like me and using Ubuntu, you can get clip grab in a few easy steps:
&lt;code&gt;
sudo apt-add-repository ppa:clipgrab-team/ppa&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get install clipgrab&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you are one of the many not using Ubuntu, have no fear. Clip Grab works on Windows and OS X along with Linux. It is super easy to get on those systems as well. Just head over to &lt;a href="http://clipgrab.de/en"&gt;http://clipgrab.de&lt;/a&gt; to snag a download for your OS.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FJO75QOabUucPx8mvBnPpuHprfw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FJO75QOabUucPx8mvBnPpuHprfw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FJO75QOabUucPx8mvBnPpuHprfw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FJO75QOabUucPx8mvBnPpuHprfw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/lHlnuULx_U4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/11/03/clip-grab-multiplatform-youtube-downloader/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[IndieRoyale Bundle]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/qqInZceRG74/" />
    <updated>2011-11-03T17:01:36-04:00</updated>
    <id>http://asininetech.com/2011/11/03/indieroyale-bundle</id>
    <content type="html">&lt;p&gt;Look out Humble Bundle fans, theres a new bundle in town; It&amp;#8217;s called IndieRoyale.
IndieRoyale is a freshly launched indie game bundle, from the same great guys that brought us Desura, indieDB, and modDB. This isn&amp;#8217;t the pay what you want bundle you are used to though, it has a twist. The price for the bundle starts at $1.99, and increases in price as more people buy it. But if you pay more than the minimum, the price goes down for everyone.&lt;/p&gt;

&lt;p&gt;The bundle launched with four great indie games:&lt;/p&gt;

&lt;p&gt;The first game is an action packed 2D side scrolling platformer called &lt;a href="http://www.indiedb.com/games/ares"&gt;A.R.E.S. : Extinction Agenda&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The second is, as the game&amp;#8217;s makers describe, &amp;#8220;a neo-noir science-fiction point and click adventure.&amp;#8221; and it is called &lt;a href="http://www.indiedb.com/games/gemini-rue"&gt;Gemini Rue&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Third on the list is a science fiction FPS called &lt;a href="http://www.indiedb.com/games/sanctum"&gt;Sanctum&lt;/a&gt;, it is unique because combines elements of tower defense into its first person gameplay.&lt;/p&gt;

&lt;p&gt;And finally, the last game in the bundle is &lt;a href="http://www.indiedb.com/games/nimbus"&gt;Nimbus&lt;/a&gt;. Nimbus is a 2D side-scroller that mixes puzzle aspects, with racing.&lt;/p&gt;

&lt;p&gt;These games are all redeemable on Steam and all except Sanctum  can be redeemed on Desura. Sorry Linux guys, this is an all Windows bundle. I speculate heavy Linux support will be added in the future though, due to high demand for it on the Desura website. Unfortunately, the launch bundle is over from now on but I think you can still buy the games if you beat the minimum and a new bundle is coming within a week.&lt;/p&gt;

&lt;p&gt;So there you have it, a promising new bundle, happy bundling! Visit &lt;a href="http://www.indieroyale.com/"&gt;http://indieroyal.com&lt;/a&gt; for more info.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/la7xNcvzyuFnmTu7I9CpXjCU2zc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/la7xNcvzyuFnmTu7I9CpXjCU2zc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/la7xNcvzyuFnmTu7I9CpXjCU2zc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/la7xNcvzyuFnmTu7I9CpXjCU2zc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/qqInZceRG74" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/11/03/indieroyale-bundle/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[HOWTO: Secure a SSH server]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/vpOqqvA3cvE/" />
    <updated>2011-10-31T08:51:54-04:00</updated>
    <id>http://asininetech.com/2011/10/31/how-to-secure-a-ssh-server</id>
    <content type="html">&lt;p&gt;If you manage a Linux server, chances are that you will want to control and check it remotely. This involves the use of SSH. This how-to will show you how to secure your SSH server in two different ways.&lt;/p&gt;

&lt;p&gt;These are the steps I take to securing a new Linux server:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Login as root.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a new non-root account.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt; adduser bob &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;ol&gt;
&lt;li&gt;Give it sudo privileges using &lt;a href="http://man.cx/visudo"&gt;visudo&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt; bob ALL=(ALL) ALL &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Protip, visudo by default opens vim as your editor, you can use the editor of your choice by:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt; $EDITOR=nano visudo &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;ol&gt;
&lt;li&gt;Disable root login in /etc/ssh/sshd_config&lt;/li&gt;
&lt;/ol&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt; PermitRootLogin no &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;ol&gt;
&lt;li&gt;From here you can go two routes, passwordless auth only (using keys) or using passwords + a bruteforce protection system.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;strong&gt;Passwordless authentication only&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Disable password logins in /etc/ssh/sshd_config&lt;/li&gt;
&lt;/ol&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt; PasswordAuthentication no &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;ol&gt;
&lt;li&gt;Now you need to generate OpenSSH keys on whatever machine you want to login from. Do this if on Linux:&lt;/li&gt;
&lt;/ol&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt; ssh-keygen -t rsa -b 4096 &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If on a Windows machine, you can use &lt;a href="http://the.earth.li/%7Esgtatham/putty/latest/x86/puttygen.exe"&gt;puttygen&lt;/a&gt; to generate a OpenSSH key. &lt;a href="http://dl.dropbox.com/u/2888062/Screens/20111029162916834.png"&gt;Screenshot&lt;/a&gt; . Make sure to use a strong passphrase.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now you need to put the public key in the authorized_keys file in $HOME/.ssh/authorized_keys on the host machine. On Linux, to get the pubkey of the SSH key you just generated go into $HOME/.ssh/&lt;/li&gt;
&lt;/ol&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt; cat id_rsa.pub &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Copy and paste that into the authorized_keys file. In puttygen, the pubkey is displayed when the key is generated.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Save the authorized_keys file. Restart SSH server, &lt;strong&gt;but keep the SSH connection open.&lt;/strong&gt; This is to prevent a lockout in case of misconfiguration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open another SSH connection and test using your new key, if all goes well, you should be asked for a username and the &lt;strong&gt;passphrase for your SSH key&lt;/strong&gt;. If you are using putty, the procedure will be slightly different, use puttygen to save a private key (when you make your pubkey) and load that private key using the Auth option in putty.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;strong&gt;Password based route&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First and foremost, make sure you have a strong password for your user accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change port number to a number &gt;1024.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt; Port 990 &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;ol&gt;
&lt;li&gt;Install bruteforce protection software like &lt;a href="http://www.fail2ban.org/wiki/index.php/Main_Page"&gt;fail2ban&lt;/a&gt;/&lt;a href="http://denyhosts.sourceforge.net/"&gt;denyhosts&lt;/a&gt;/&lt;a href="http://www.sshguard.net/"&gt;sshguard&lt;/a&gt;. I use fail2ban on my servers, the default config is mostly sane, you may want to increase the bantime for SSH though. All of these softwares watch /var/log/auth.log so make sure your logging daemon is working properly.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;strong&gt;Note: You can still use key-based authentication at the same time if you want to.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Further iptables security (by foxwolfblood)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can add to the security by adding in other iptables rules, also if you can get access to this from your local network you may want to also have it listening on port 22 out of convenience. (wanport == your non-standard port)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt;Port wanport Port 22 &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To make sure this can&amp;#8217;t be accessed from the WAN you would use (im going to use 192.168.1.0 as the example subnet)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;code&amp;gt;iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT; iptables -A INPUT -p tcp --dport wanport -j ACCEPT; iptables -A INPUT -p tcp --dport 22 -j DROP &amp;lt;/code&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dSxzApZIQt6Nse6cXeXuHrJxM8c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dSxzApZIQt6Nse6cXeXuHrJxM8c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dSxzApZIQt6Nse6cXeXuHrJxM8c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dSxzApZIQt6Nse6cXeXuHrJxM8c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/vpOqqvA3cvE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/10/31/how-to-secure-a-ssh-server/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[A rant on a flaw in iOS' design]]></title>
    <link href="http://feedproxy.google.com/~r/AsinineTech/~3/G7BrfLrfk4Q/" />
    <updated>2011-10-30T00:51:50-04:00</updated>
    <id>http://asininetech.com/2011/10/30/a-rant-on-a-flaw-in-iose28099s-design</id>
    <content type="html">&lt;p&gt;So, as we all know iOS is this magical piece of software that powers the iPhone which tends to change everything. If you follow me on Twitter and Google+, you probably know I’m in the Android camp. I do have lots of issues with Android, but today I thought I would write a rant on iOS. My really big gripe with iOS is something that I see as a major flaw. It is application based instead of information based.&lt;/p&gt;

&lt;p&gt;Now what do I mean by application based? To get information you have to open an app, the only weak attempt of Springboard showing you information is a badge on the app, and badges only show for certain things. So you know that something happened, you just don’t know what happened. The new notification center in iOS 5 does try to help that, but if you have lots of applications pushing to it, then you get notification spam, which is a completely different problem. Yes, you can limit the notifications you get from a specific app, but the normal user does not actively manage who and what notifies them. The best version of notifications that I have seen on any OS is Ubuntu, because you can sort through what type of notifications you want to see, they aren’t in the way, and it is clean.&lt;/p&gt;

&lt;p&gt;Back to the main point though, as I can go on about notifications for &lt;em&gt;hours&lt;/em&gt;. When you compare iOS to competing platforms like Windows Phone 7 and Android, you can see that there is on major difference in the UI. Windows Phone 7 is all about getting information without jumping from icon to icon and everything flows together. Android on the other hand has widgets on the lockscreen and homescreen. Speaking of Windows Phone 7, while it does save you some time by taking a glance and go homescreen, you lose out one the benefits of an application based UI. If I want to specifically see one feed (Facebook), in Windows Phone 7, you have to go the people hub on the homescreen. Then you have to swipe over to the feed view, and then you have to specify Facebook. In iOS you open the Facebook app and you’re done, that might not seem like big of an issue, but it’s the little things that counts. And my second issue is that you are overloading__ the user with information; metro is only text, and lots of it at that. I think there is a reason that users like a nice GUI with icons, it’s not text overload like a CLI is (to some of course, as many users love typing away).&lt;/p&gt;

&lt;p&gt;Android has it’s fair way share of issues, and the only big gripe I can see relative to this is how it presents it’s information. You can have widgets, but not application badges. With Android being a mess of colors and different UIs and generally not consistent, that also causes for information to not be received as well as it can be. The latter of this &lt;em&gt;should &lt;/em&gt;be changing with Ice Cream Sandwich, but for now, it’s still an issue.&lt;/p&gt;

&lt;p&gt;To fix this issue in iOS though, it causes two things. First off, you need to add things like widgets to the system and allow more information to be shown on the icon for the app (like Windows Phone 7), that also applies to Android. Second off, you have to change developers way of thinking, Apple pushes for iOS apps, apps, apps, and more apps. And if you follow Apple’s API’s then it works fine with all the Apple apps and to an extent with other apps. But developers need to make their apps work seamlessly together, instead of each app doing different things, the functionality needs to blur slightly so it seems more cohesive.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D5yKH-Z6-m6oep_NkSskIo2dqxk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D5yKH-Z6-m6oep_NkSskIo2dqxk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D5yKH-Z6-m6oep_NkSskIo2dqxk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D5yKH-Z6-m6oep_NkSskIo2dqxk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AsinineTech/~4/G7BrfLrfk4Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://asininetech.com/2011/10/30/a-rant-on-a-flaw-in-iose28099s-design/</feedburner:origLink></entry>
  
</feed>

