<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tiago&#039;s Tech Blog</title>
	<atom:link href="http://www.tiagoespinha.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tiagoespinha.net</link>
	<description>My life, ideas, news and applications</description>
	<lastBuildDate>Mon, 09 Jan 2012 13:56:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
  <link>http://www.tiagoespinha.net</link>
  <url>http://www.tiagoespinha.net/favico.jpg</url>
  <title>Tiago&#039;s Tech Blog</title>
</image>
		<item>
		<title>[Quickies] Why can&#8217;t I move (certain) applications to the SD card?</title>
		<link>http://www.tiagoespinha.net/2012/01/quickies-why-cant-i-move-certain-applications-to-the-sd-card/</link>
		<comments>http://www.tiagoespinha.net/2012/01/quickies-why-cant-i-move-certain-applications-to-the-sd-card/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 13:56:59 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Quickies]]></category>
		<category><![CDATA[android move to SD]]></category>
		<category><![CDATA[Android OS]]></category>
		<category><![CDATA[move applications to SD card]]></category>
		<category><![CDATA[quickies]]></category>
		<category><![CDATA[SD card]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=539</guid>
		<description><![CDATA[Following up on the previous "quickies" format, I decided to answer a question that goes unanswered through a quick Google search. This quickie has to do with the Android OS platform. Question: Why can't I move certain applications to the SD card? Answer: The "move to SD card" feature of Android MUST be explicitly enabled [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2012%2F01%2Fquickies-why-cant-i-move-certain-applications-to-the-sd-card%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2012_2F01_2Fquickies-why-cant-i-move-certain-applications-to-the-sd-card_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2012%2F01%2Fquickies-why-cant-i-move-certain-applications-to-the-sd-card%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Following up on the previous "quickies" format, I decided to answer a question that goes unanswered through a quick Google search. This quickie has to do with the <em>Android OS</em> platform.</p>
<p><strong>Question</strong>: Why can't I move certain applications to the SD card?</p>
<p><strong>Answer</strong>: The "move to SD card" feature of Android MUST be explicitly enabled by the developers of each application. This is the reason why for some apps, the "move to SD card" button is greyed out.</p>
<p>Hope that helps anyone who's ever asked Google this question!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=539" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2012/01/quickies-why-cant-i-move-certain-applications-to-the-sd-card/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Quickies] Galaxy S2 MIUI 1.12.30 Camera Force Closes</title>
		<link>http://www.tiagoespinha.net/2012/01/quickies-galaxy-s2-miui-1-12-30-camera-force-closes/</link>
		<comments>http://www.tiagoespinha.net/2012/01/quickies-galaxy-s2-miui-1-12-30-camera-force-closes/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 21:29:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Quickies]]></category>
		<category><![CDATA[Camera FC]]></category>
		<category><![CDATA[Camera Force Close]]></category>
		<category><![CDATA[FC]]></category>
		<category><![CDATA[Force Close]]></category>
		<category><![CDATA[Galaxy S2]]></category>
		<category><![CDATA[Galaxy SII]]></category>
		<category><![CDATA[MIUI Camera]]></category>
		<category><![CDATA[MIUI Camera FC]]></category>
		<category><![CDATA[MIUI FC]]></category>
		<category><![CDATA[MIUI Force Close]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=535</guid>
		<description><![CDATA[I've tagged this post as a "quickie" as I just want to share the solution to a problem I've been having with my recently bought Galaxy S2. This solution was found indirectly and from my extensive search through the Internet, I haven't found anyone describing either this problem or the solution to it. Problem: When [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2012%2F01%2Fquickies-galaxy-s2-miui-1-12-30-camera-force-closes%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2012_2F01_2Fquickies-galaxy-s2-miui-1-12-30-camera-force-closes_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2012%2F01%2Fquickies-galaxy-s2-miui-1-12-30-camera-force-closes%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">I've tagged this post as a "quickie" as I just want to share the solution to a problem I've been having with my recently bought Galaxy S2. This solution was found indirectly and from my extensive search through the Internet, I haven't found anyone describing either this problem or the solution to it.</p>
<p style="text-align: justify;"><strong>Problem</strong>: When using the MIUI 1.12.30 ROM on the Samsung Galaxy S2, the camera will freeze and eventually force close while attempting to record video.</p>
<p style="text-align: justify;"><strong>Solution</strong>: The solution to this problem is so simple that "it hurts". If you're running MIUI, your kernel will most certainly have the ClockworkMod (CWM) flashed onto it. You will have to go into CWM (i.e. Shutdown phone then power it up with the combo Volume Up + Power + Home), then into the "advanced" menu and choose the "fix permissions" option.</p>
<p style="text-align: justify;">After you've done this, reboot the phone et voilà! It's really that easy!</p>
<p style="text-align: justify;">I've found this <a href="http://forum.cyanogenmod.com/topic/32601-camera-keeps-force-closing/page__p__278856__hl__camera__fromsearch__1" onclick="pageTracker._trackPageview('/outgoing/forum.cyanogenmod.com/topic/32601-camera-keeps-force-closing/page_p_278856_hl_camera_fromsearch_1?referer=');">solution</a> through having a similar problem in CyanogenMod. In their forums they explain how to fix it for CM7.1 so I decided to give it a try on MIUI. Turns out the problem is the same.</p>
<p style="text-align: justify;">Hope this saved you some time!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=535" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2012/01/quickies-galaxy-s2-miui-1-12-30-camera-force-closes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WSO2 PHP&#8217;s WSF Library (or whatever the damn it is called&#8230;) and Turmeric SOA</title>
		<link>http://www.tiagoespinha.net/2011/09/wso2-phps-wsf-library-or-whatever-the-damn-it-is-called-and-turmeric-soa/</link>
		<comments>http://www.tiagoespinha.net/2011/09/wso2-phps-wsf-library-or-whatever-the-damn-it-is-called-and-turmeric-soa/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 08:48:27 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP SOAP]]></category>
		<category><![CDATA[PHP WSF]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[WSF]]></category>
		<category><![CDATA[WSF-PHP]]></category>
		<category><![CDATA[wsfphp]]></category>
		<category><![CDATA[WSO2]]></category>
		<category><![CDATA[WSO2 PHP]]></category>
		<category><![CDATA[WSO2 WSF]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=519</guid>
		<description><![CDATA[The title of this post is verbose enough about the feelings I have regarding the naming of this library. It's as if WSO2 took a page from Microsoft's book regarding names. What's next? A Home Edition? Maybe throw in Professional, Business and Ultimate versions too for good measure. Don't take me wrong, I have no [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F09%2Fwso2-phps-wsf-library-or-whatever-the-damn-it-is-called-and-turmeric-soa%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2011_2F09_2Fwso2-phps-wsf-library-or-whatever-the-damn-it-is-called-and-turmeric-soa_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F09%2Fwso2-phps-wsf-library-or-whatever-the-damn-it-is-called-and-turmeric-soa%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/09/762791717WSO2pic.jpg" rel="lightbox[519]" title="762791717WSO2pic"><img class="alignleft size-full wp-image-523" title="762791717WSO2pic" src="http://www.tiagoespinha.net/wp-content/uploads/2011/09/762791717WSO2pic.jpg" alt="" width="250" height="102" /></a>The title of this post is verbose enough about the feelings I have regarding the naming of this library. It's as if WSO2 took a page from Microsoft's book regarding names. What's next? A Home Edition? Maybe throw in Professional, Business and Ultimate versions too for good measure.</p>
<p style="text-align: justify;">Don't take me wrong, I have no special feelings towards names themselves, it's just how difficult it makes to search for people working on the same things and facing the same problems. What do I Google for? WSO2? WSF? PHP? Any combination of these? It's only made worse by these guys developing frameworks in several platforms, which means I end up finding completely unrelated results from a different implementation, in a different technology.</p>
<p style="text-align: justify;">But, naming rants aside, I thought it would be a good idea to share my experience with getting this library up and running on PHP. I came across this library when converting Apache Stonehenge's web application to use Turmeric's instances of Stonehenge's web services, and it gave me quite some headaches. For this reason, and so that other people in the future don't have to go through the same painful experiences, I decided to write this blog post. Keep reading if I got your attention...<span id="more-519"></span></p>
<p style="text-align: justify;">First and foremost, I should warn that I'm also gonna write the Linux walkthrough and it does expect you to have some basic Linux knowledge. Nothing too advanced, you just need to know your way around a Linux system in a command line. If you meet this criterion, this walkthrough should be a walk in the park (no pun intended there).</p>
<h3 style="text-align: justify;">Setting up the library</h3>
<p style="text-align: justify;">To begin with, you must download the WSF PHP library <strong>sources</strong>. You should be able to find it <a href="http://wso2.com/products/web-services-framework/php/" onclick="pageTracker._trackPageview('/outgoing/wso2.com/products/web-services-framework/php/?referer=');">here</a> somewhere. At the time of writing, the latest version is 2.1.0. Make sure you download the <strong>sources</strong>. Sadly, the binaries only include DLL's for the Windows installation, which means that us, Linux users, must compile our own binaries by hand. No biggie though, it's easier than it sounds.</p>
<p style="text-align: justify;">After you've downloaded the library, the next thing you should do is "cd" into the directory. Then, normally you'd just do ./configure followed by a make and make install, but there's a caveat: it's VERY recommended that you specify a prefix when you do ./configure. The prefix will tell WSO2 where to place the binaries after you compile and "install", and this is extremely useful for WSF as you'll need a clean directory featuring only the binary files of this library. You'll understand why in a minute.</p>
<p style="text-align: justify;">In sum, you should do:</p>
<blockquote>
<pre>./configure --prefix=/usr/local/bin/apache2/php/wsf-php/
 make
 [sudo] make install</pre>
</blockquote>
<p style="text-align: justify;">In my example you'll see that I'm telling "make" to install the library in /usr/local/bin/apache2/php/wsf-php/ and in the last step I've also accounted for those of you who, like me, use Ubuntu. If you use Ubuntu, make sure you add the sudo before the make install command (without brackets).</p>
<p style="text-align: justify;"><strong>Troubleshooting: </strong>If you installed PHP through Ubuntu's packages, it is possible that everything went fine at this point. If it did (i.e. if you got no errors in neither of the stages) then excellent. Move on. Skip this section. If, on the other hand, you got an error about a missing php-config, then you need to specify the path to this binary in the ./configure step. First you should know where your PHP installation lies (and you're entirely on your own for this one) and once you know where it is, your php-config binary is inside &lt;path_to_php&gt;/bin/. Once you figured out where that is, you should go back to those three steps above, except your ./configure should look like:</p>
<blockquote>
<pre>./configure --prefix=/usr/local/bin/apache2/php/wsf-php/ --with-php-config=&lt;path_to_php&gt;/bin/php-config</pre>
</blockquote>
<p style="text-align: justify;">After this, don't forget of course, to do the make and make install steps.</p>
<p style="text-align: justify;">With that done, you should now have the compiled library in /usr/local/bin/apache2/php/wsf/ (or in whichever folder you specified as prefix). You also want to have a look at the final lines of the "make install" step and look for a reference to a wsf.so file. That's THE library that PHP will load and you'll need to know exactly where it is. In my case, the library sits in /usr/local/bin/apache2/php/lib/php/extensions/no-debug-non-zts-20090626/wsf.so . My guess is that the make install step is smart enough to put it in the equivalent folder inside your PHP's installation. Anyhow, copy this directory.</p>
<p style="text-align: justify;">The next step involves editing your php.ini file. Again, you should know where this is. After you found it, add the following lines to it:</p>
<blockquote>
<pre>extension=/usr/local/bin/apache2/php/lib/php/extensions/no-debug-non-zts-20090626/wsf.so
wsf.home="/usr/local/bin/apache2/php/wsf-php/"</pre>
</blockquote>
<p style="text-align: justify;">From that you can see that I put the path to the .so file as an extension that PHP must load, and I specified an entry called "wsf.home" that will tell WSF where its "auxiliary" files are. This is the path you used as the prefix during the compiling process. These are the two most essential parameters that need to be configured to get WSF up and running, there's more but I'm aiming at the quickest way possible to get it running, with as little configuration as possible.</p>
<p style="text-align: justify;">After you've added those lines, you should restart your Apache et voilà! Your PHP installation should now have loaded the WSF library. If you want to be sure that everything is up and running, you can check the contents of /tmp/wsf_php_server.log . If everything went well, this log should have no errors.</p>
<h3 style="text-align: justify;">Creating a client and using it</h3>
<p style="text-align: justify;">Now comes another <strong>tricky part</strong>. Great, now your library is up and running, but how do you <strong>use it</strong>?</p>
<p style="text-align: justify;">I'm gonna provide another quick and simple explanation of how to get a client up and running for an existing service. This assumes, of course, that you already have a service running somewhere which provides you with a WSDL file and SOAP ports that you can invoke.</p>
<p style="text-align: justify;">Provided you have that, you need to copy a folder in the WSF sources to somewhere safe and accessible by PHP (by accessible, I mean, PHP/Apache should have at least read and execute permissions). The folder you need is &lt;WSF_sources&gt;/scripts/. Copy it somewhere you know it won't get deleted by an overzealous system administrator and keep it accessible. I would keep it out of public access via Apache but that's entirely up to you. It's the next step that is <strong>important</strong>.</p>
<p style="text-align: justify;">Now that you copied this folder (and all its contents) to somewhere safe, you need to go back to your php.ini and add the folder to its include_path definition. In my case, I just uncommented the already existing line and added my scripts folder to it. In the end it looked like:</p>
<blockquote>
<pre>include_path = ".:/php/includes:/usr/local/bin/apache2/php/scripts/"</pre>
</blockquote>
<p style="text-align: justify;">After you've added/uncommented this line, be sure to restart Apache once more. This line will just tell PHP where it can find scripts that WSF will need whenever you're using its libraries.</p>
<p style="text-align: justify;">With that out of the way, the next step consists of creating a PHP classmap of all the operations and types you have in your WSDL file. My advice is that you obtain the WSDL file in advance and store it somewhere in your hard-drive. After you've done this, just go to the scripts folder and do:</p>
<blockquote>
<pre>php wsdl2php.php &lt;path_to_your_wsdl_file&gt;</pre>
</blockquote>
<p style="text-align: justify;">It can happen at this step that Linux will tell you it can't find PHP. If that's the case, instead of starting off with just "php", use the full path instead.</p>
<p style="text-align: justify;">By doing this step, you'll see a bunch of PHP code scrolling through your console. If that was the case, repeat the command and redirect the output to a file, e.g. &gt; somefile.php.</p>
<p style="text-align: justify;">This somefile.php is now your client. It includes a PHP class for every type in your WSDL and an action for every SOAP port. It also includes, at the very end, a sample of how you'd invoke every action. By looking at that you can probably get a good idea of how WSF works, and that's pretty much it. I assume that if you're messing around with PHP, you do have enough knowledge to get rid of these sample invokations and just use this file as something you import and use in your PHP application. That's not going to be covered in this tutorial.</p>
<p style="text-align: justify;">If you do have questions or ran into trouble while following these steps, please do leave me a comment and I'll try to answer as soon as possible. I hope this has somehow helped you, reader. I know I wish I had found something like this post when I first started messing around with WSF!</p>
<p style="text-align: justify;">Till the next post!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=519" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2011/09/wso2-phps-wsf-library-or-whatever-the-damn-it-is-called-and-turmeric-soa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Black and white icons for Caffeine</title>
		<link>http://www.tiagoespinha.net/2011/09/black-and-white-icons-for-caffeine/</link>
		<comments>http://www.tiagoespinha.net/2011/09/black-and-white-icons-for-caffeine/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 18:47:50 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Apple Caffeine]]></category>
		<category><![CDATA[Caffeine]]></category>
		<category><![CDATA[Caffeine black and white]]></category>
		<category><![CDATA[Caffeine black icons]]></category>
		<category><![CDATA[Mac Caffeine]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=505</guid>
		<description><![CDATA[This is gonna be a quick and short post about a tool I use on my Mac called "Caffeine". This tool essentially allows me, at the click of a button, to disable the display's dim and eventual turn off function. It's useful when you're reading something and you won't be touching the keyboard or the [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F09%2Fblack-and-white-icons-for-caffeine%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2011_2F09_2Fblack-and-white-icons-for-caffeine_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F09%2Fblack-and-white-icons-for-caffeine%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">This is gonna be a quick and short post about a tool I use on my Mac called "<a href="http://lightheadsw.com/caffeine/" onclick="pageTracker._trackPageview('/outgoing/lightheadsw.com/caffeine/?referer=');">Caffeine</a>". This tool essentially allows me, at the click of a button, to disable the display's dim and eventual turn off function. It's useful when you're reading something and you won't be touching the keyboard or the mouse, but you'd still like the screen to be on. It's useful also when I'm playing along a guitar tab and I can't afford to stop playing just to get the screen back on.</p>
<p style="text-align: justify;">Anyway, this tool places an icon on the status bar. The only problem is that this icon is in color and it just stands out in my status bar like a sore thumb. SO! I created a new icon set. You can get it by clicking <a href="http://www.tiagoespinha.net/wp-content/uploads/2011/09/icons.zip">here</a>. Scroll down to have a look at the icons before you download it.</p>
<p style="text-align: justify;">All you have to do is copy them to <span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">/Applications/Caffeine.app/Contents/Resources/ </span>et voilà! I've included two more icons (not shown here) for the right click behavior.</p>
<p style="text-align: justify;">Icons:<br />
<a href="http://www.tiagoespinha.net/wp-content/uploads/2011/09/active.png" rel="lightbox[505]" title="active"><img class="alignleft size-full wp-image-507" title="active" src="http://www.tiagoespinha.net/wp-content/uploads/2011/09/active.png" alt="" width="22" height="20" /></a><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/09/inactive.png" rel="lightbox[505]" title="inactive"><img class="alignleft size-full wp-image-508" title="inactive" src="http://www.tiagoespinha.net/wp-content/uploads/2011/09/inactive.png" alt="" width="22" height="20" /></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">This is what it looks like in action:<br />
<a href="http://www.tiagoespinha.net/wp-content/uploads/2011/09/Screen-Shot-2011-09-11-at-8.40.20-PM.png" rel="lightbox[505]" title="Screen Shot 2011-09-11 at 8.40.20 PM"><img class="alignleft size-full wp-image-509" title="Screen Shot 2011-09-11 at 8.40.20 PM" src="http://www.tiagoespinha.net/wp-content/uploads/2011/09/Screen-Shot-2011-09-11-at-8.40.20-PM.png" alt="" width="562" height="22" /></a></p>
<p style="text-align: justify;">and<br />
<a href="http://www.tiagoespinha.net/wp-content/uploads/2011/09/Screen-Shot-2011-09-11-at-8.40.48-PM.png" rel="lightbox[505]" title="Screen Shot 2011-09-11 at 8.40.48 PM"><img class="alignleft size-full wp-image-510" title="Screen Shot 2011-09-11 at 8.40.48 PM" src="http://www.tiagoespinha.net/wp-content/uploads/2011/09/Screen-Shot-2011-09-11-at-8.40.48-PM.png" alt="" width="562" height="21" /></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=505" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2011/09/black-and-white-icons-for-caffeine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Turmeric SOA, open-source and the Apache Software Foundation</title>
		<link>http://www.tiagoespinha.net/2011/08/on-turmeric-soa-open-source-and-the-apache-software-foundation/</link>
		<comments>http://www.tiagoespinha.net/2011/08/on-turmeric-soa-open-source-and-the-apache-software-foundation/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 21:32:37 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache DB]]></category>
		<category><![CDATA[Apache Derby]]></category>
		<category><![CDATA[Apache PMC]]></category>
		<category><![CDATA[Apache Software Foundation]]></category>
		<category><![CDATA[ASF]]></category>
		<category><![CDATA[PMC]]></category>
		<category><![CDATA[Program Management Committee]]></category>
		<category><![CDATA[Service Oriented Architectures]]></category>
		<category><![CDATA[Turmeric]]></category>
		<category><![CDATA[Turmeric SOA]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=490</guid>
		<description><![CDATA[It's been a while since I posted something on this blog, partly due to my laziness, but also due to a chronic lack of time and patience to come home after an intellectually intense day of work and still have the peace of mind to gather my thoughts and put them in words. Today was, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F08%2Fon-turmeric-soa-open-source-and-the-apache-software-foundation%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2011_2F08_2Fon-turmeric-soa-open-source-and-the-apache-software-foundation_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F08%2Fon-turmeric-soa-open-source-and-the-apache-software-foundation%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/08/Service-Oriented-Architecture-SOA-For-Dummies.jpg" rel="lightbox[490]" title="Service Oriented Architecture SOA For Dummies"><img class="alignleft size-full wp-image-496" title="Service Oriented Architecture SOA For Dummies" src="http://www.tiagoespinha.net/wp-content/uploads/2011/08/Service-Oriented-Architecture-SOA-For-Dummies.jpg" alt="" width="194" height="240" /></a>It's been a while since I posted something on this blog, partly due to my laziness, but also due to a chronic lack of time and patience to come home after an intellectually intense day of work and still have the peace of mind to gather my thoughts and put them in words. Today was, luckily, one of those days. Not because it was a particularly easy day at work (reengineering someone else's code with little to non-existing documentation is <strong>never</strong> an easy job) but perhaps the intense gym session loosed my brains just enough for organized and coherent thought to just happen. In any case, I digress.</p>
<p style="text-align: justify;">This post has three main themes. I will be talking about a platform for SOA applications called Turmeric (funny name, I know. I'm using for SOA the same I use in my lentil soup), open-source in general and finally, the Apache Software Foundation and some recent events I've been involved in.</p>
<p style="text-align: justify;"><span id="more-490"></span></p>
<p style="text-align: justify;">I shall begin with <a href="https://www.ebayopensource.org/index.php/Turmeric/HomePage" onclick="pageTracker._trackPageview('/outgoing/www.ebayopensource.org/index.php/Turmeric/HomePage?referer=');">Turmeric SOA</a>. Turmeric SOA, despite the strange choice of name, is actually an industry grade platform for web services. Why is it industry grade, you ask? Is it because the developers so claim? Not really. The industry grade designation is actually made by me - the project (and its developers) do not claim anything about it being industry ready or anything of that kind. I should mention, however, that Turmeric SOA is the <strong>open-source</strong> version of the platform that powers eBay. Yes, you read that right, THE eBay. In my book, if a platform handles the millions of customers all over the world that eBay does, that platform is pretty much as industry-grade as it gets these days.</p>
<p style="text-align: justify;">Why am I talking about Turmeric SOA? Why am I even involved in Turmeric SOA?</p>
<p style="text-align: justify;">It's very simple really and it all points back to my work as a Ph.D. student at the <a href="http://www.st.ewi.tudelft.nl/~tiago/" onclick="pageTracker._trackPageview('/outgoing/www.st.ewi.tudelft.nl/_tiago/?referer=');">Delft University of Technology</a>. My research, in broad terms consists of analyzing and coming up with new ways of helping the maintenance, reengineering and testing of Service Oriented Architectures. In this description, I've cleverly omitted the keyword that defines my research, mostly because it's a vague buzzword that means different things to different people (in case you're wondering, the word is <em>multi-tenancy</em>). In any case, my research involving SOA only makes sense if I have a software system on which I can investigate and demonstrate my claims and this is where it all gets hairy.</p>
<p style="text-align: justify;">The fact is that for most companies, SOA simply means exposing some of their data through an API built on top of SOAP or REST, et voilà. All of a sudden they can claim that they are a company of the future because they have a SOA system. This, however, couldn't be farther from what an actual SOA system should be. We can even take the etymological angle and look at what SOA means: Service Oriented <strong>Architecture</strong>. I've emphasized the word "architecture" as I believe that is the keyword in the SOA acronym. Your SOA system should be built using an architectural style consistent with that of services that communicate with each other. It should be oriented towards/based on services, and not a monolithic blob with one tiny service gateway that allows me to query some data, even if that data is provided in a platform-agnostic manner. To people who have such monolithic SOA-wannabe systems, I ask: can I slice part of your software and place it elsewhere in the world with an Internet connection on both ends? If I can't, what if your user-base or your business grow to a point where one server no longer cuts it? What do you do then? Keep buying bigger motherboards with more CPU and RAM sockets?</p>
<p style="text-align: justify;">Let's get real here. Your software system is service-oriented if I can grab all the pieces that compose it and spread it all over the world. The only thing I should have to tell the software system is: "you have service A deployed at this endpoint, service B at this other endpoint, etc etc" and then it would automagically just work, regardless of whether the services are running in the same application server or in each other's antipodes in completely opposite timezones.</p>
<p style="text-align: justify;">So why am I bringing this up? Well, as it stands it's difficult enough to find open-source systems that are truly built around a service-oriented architecture. For most of these services, SOA is an afterthought. It's something those open-source ERP developers woke up one day and thought "hey, wouldn't it be cool if our ERP had some SOA features?" - and alas, the result is invariably slamming some poorly engineered JAXWS or Axis2 solution on top of already existing business logic and inevitably making a mess of a perfectly fine (albeit, poorly scaling) software system.</p>
<p style="text-align: justify;">From my own experience, this is the summary of most open-source ERP systems out there that claim to have some kind of SOA functionality.</p>
<p style="text-align: justify;">This doesn't cut it for us. This is not what the SOA paradigm truly stands for and these systems are ultimately useless for my research. There's only one web service! How the hell is it supposed to communicate with anything? Its business logic is ultimately still relying on local method calls.</p>
<p style="text-align: justify;">Then out of this hell comes another frightening fact. Even the web service platforms out there are useless on their own. I was chatting with a friend of mine - who's not a computer scientist - the other day, and I was struggling to explain to her what exactly my problem was without using terms such as JAXWS, Turmeric, web services or SOA. I think I came up with a clear laymen explanation involving the process of building a car. So, my problem right now is that I need a very specific type of car, say, one that is rocket propelled. There are, of course, brands out there that have rocket propelled cars but there's no way on Earth that these guys are gonna let me even LOOK at their car, set aside open the hood and disassemble its engine. Yet, my research consists of analyzing the problems and challenges of maintaining a rocket propelled car. But I have no car, and no means to get one. This is a pretty big inconvenience. Not even me promising this car brand that I won't build a competitor car, or destroy their car will convince them to let me pop the hood - and so, Houston, we have a problem.</p>
<p style="text-align: justify;">The solution to this problem is seemingly simple. I can just build my own rocket propelled car and hope for the best. But then we run into a more essential problem: I'm not a car maker, nor does my department pay me to make cars. Also, if by the end of my Ph.D. I've only built a rocket propelled car, they're not gonna be happy.</p>
<p style="text-align: justify;">I could also cut some corners and build a mockup of a rocket propelled car. Sure, maybe it doesn't have a gearbox and the steering wheel is made of cardboard, but hey! It's a rocket propelled car! This would be swell, if it wasn't for the fact that even the free tools I can get out there to make cars are pretty... well... horrible. Stepping back out of the metaphor world, the problem is that the technologies available allow me to build simple web services. I can just grab Java's Metro project (aka JAXWS) and very easily deploy a web service, but that's just what it is. A web service, accessible via SOAP, amidst nothingness. There's nothing I can query to know that this service is there, there's no platform managing this service and telling me that it has <em>this many</em> services and that <em>this particular one</em> is one of them, there's no statistics or runtime information being kept on this service, there's basically... nothing. Just a Java class with a "WebService" sticker on it.</p>
<p style="text-align: justify;">These tools make it difficult to build something that even resembles a real world SOA system (i.e. a rocket propelled car). They're the tiniest building blocks that you can think of. The sand in the car's windshield or the iron ore in the chassis' stainless steel. Sure, I can melt the sand, add some caustic soda and fashion my own windshield out of it. I can melt the iron ore and through some process I don't even know, make steel. But how long is this going to take me? And will the final result be a faithful representation of what actual companies in this line of work have made? Or just a silly toy example that doesn't fully represent the pains and benefits of such a system?</p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/08/TurmericLogo.jpg" rel="lightbox[490]" title="TurmericLogo"><img class="alignright size-full wp-image-498" title="TurmericLogo" src="http://www.tiagoespinha.net/wp-content/uploads/2011/08/TurmericLogo.jpg" alt="" width="214" height="117" /></a>That's where Turmeric comes in. My first impression when I started using Turmeric was that of confusion. I thought to myself "well, that's another platform with an awful lot of features that no one's ever going to use", but I was wrong. Over time, with more thoroughly exploring this platform, it became clear that perhaps every single feature in Turmeric really stemmed from a real world use case, most likely from eBay. All those features, if you really think about it, you'll end up realizing "oh yeah, they probably use this to achieve X and Y". In other words, even if we don't have the rocket propelled car, we have the exact tools that we need to build one. Knowing that if the toolset includes a door-shaped mould, it probably means that our car should have at least one door - for which other reason would those guys have built such a tool if they hadn't built a door for their car before?</p>
<p style="text-align: justify;">This makes Turmeric a very good candidate to be used as the tooling for my research. But Turmeric isn't, in my point of view, a very good candidate anymore. It's evolved from that into an <strong>excellent</strong> candidate at that! Now it's the time when I really have to shine a light on <strong>all</strong> the guys behind the task of open-sourcing eBay's platform. Those guys form a small community of people who usually hang around #turmeric-dev at irc.freenode.net and who just happen to be extremely friendly and helpful. Every time I hit a road bump with Turmeric, these guys go out of their ways to help me achieve the things I'm trying to achieve and I think that's a lot more than I could have ever asked for.</p>
<p style="text-align: justify;">Quickly moving to the topic of open-source, since Turmeric SOA is actually an open-source project, this made me ever so fond of open-source stuff. It's really nice to see all these people dedicated in making such a tremendous contribution that is open-sourcing a platform from eBay to the good of the community. I love that. I love being able to - should I need - download a relational database management system from Apache without having to pay for it. I love seeing projects like Ubuntu flourish, showing companies that even software is all about the people it's built to and with a little help, even an open-source can kick big corporations in their royal butts.</p>
<p style="text-align: justify;">All this to say that I've learned a whole lot over the last few days. Amongst the things I've learned is for example, git. The cool kids' versioning system. As Turmeric nowadays relies on Git for its version management, I thought now would be a good time to learn it and see what advantages it brings over SVN - and boy, does it leave SVN in its rear view mirror! I've grown so much accustomed to it that I've started moving my projects to Git as well and I've been trying to influence other people around me to use it (Andy, if you're reading this, wink wink, nudge nudge <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). The saddest part of it all is that, in my opinion, you don't really fully understand the advantages it brings until you really give it a try with real source code that you must maintain in collaboration with other people.</p>
<p style="text-align: justify;">Going on a bit of a tangent, Git (and open-source) has also enabled me to propose some enhancements to David Carver's (Turmeric SOA's top man) IRC bot that idles around #turmeric-dev - all via the clever features of Github, forking and pull requesting.</p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/08/46833_425136126860_586946860_5624931_1569623_n.jpg" rel="lightbox[490]" title="46833_425136126860_586946860_5624931_1569623_n"><img class="alignleft size-full wp-image-499" title="46833_425136126860_586946860_5624931_1569623_n" src="http://www.tiagoespinha.net/wp-content/uploads/2011/08/46833_425136126860_586946860_5624931_1569623_n.jpg" alt="" width="254" height="259" /></a>To finalize, the Apache Software Foundation. I'm gonna make it short and sweet. As of a couple of days ago, my fellow open-sourcers at Apache Derby decided to vote me to become a PMC (Program Management Committee) member for the Apache DB project. I have, of course, accepted and it is a post I will do my best to honor and live up to. I started off as a Google Summer of Code student at Apache Derby, then got promoted to committership, this year I had the privilege to mentor Siddharth Srivastava and now I'm becoming a PMC member. Life's good.</p>
<p style="text-align: justify;">It's late now, time for sleep. If you've read it all the way down here, thank you! You're brave!</p>
<p style="text-align: justify;">Good night!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=490" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2011/08/on-turmeric-soa-open-source-and-the-apache-software-foundation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Idea for Google/Bing</title>
		<link>http://www.tiagoespinha.net/2011/03/idea-for-googlebing/</link>
		<comments>http://www.tiagoespinha.net/2011/03/idea-for-googlebing/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 21:17:37 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Bing]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google ideas]]></category>
		<category><![CDATA[Google results]]></category>
		<category><![CDATA[Google search]]></category>
		<category><![CDATA[Idea]]></category>
		<category><![CDATA[Improve Google]]></category>
		<category><![CDATA[Result Based Engines]]></category>
		<category><![CDATA[Search Engines]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=447</guid>
		<description><![CDATA[I just had this idea that could truly revolutionize search engines. Let's start with the motivation: What do we usually rely on search engines for? Answer-finding, correct? We are part of a generation that mindlessly presses CTRL + T to open a new tab in our browser of choice, points it to www.google.com and types [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F03%2Fidea-for-googlebing%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2011_2F03_2Fidea-for-googlebing_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F03%2Fidea-for-googlebing%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">I just had this idea that could truly revolutionize search engines. Let's start with the motivation:</p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/03/google_logo-copy1.jpg" rel="lightbox[447]" title="google_logo copy"><img class="alignright size-full wp-image-455" style="border: 1px solid black;" title="google_logo copy" src="http://www.tiagoespinha.net/wp-content/uploads/2011/03/google_logo-copy1.jpg" alt="" width="216" height="120" /></a>What do we usually rely on search engines for? Answer-finding, correct? We are part of a generation that mindlessly presses CTRL + T to open a new tab in our browser of choice, points it to <a href="http://www.google.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.google.com?referer=');">www.google.com</a> and types away whatever question we need an answer for. Then comes the tedious process of sorting through all the results in hopes of truly finding the answer to what we're looking for. Typically, in a good day, we will find a link that contains the answer to our question, use the answer and ditch the browser tab. Does this sound like something you do more than once a day? Well, then read on.</p>
<p style="text-align: justify;">What if we could make this process better? Oftentimes, I'll require the answer to my question more than once and most of the times I just can't be bothered with bookmarking the page. Even because, most of the times, I forget that I bookmarked something and I end up going to Google to search for something I already have an answer for, buried within my bookmarks. So there's clearly a problem here. I'm wasting time more than once to find answers for the same information and - drawing on my recently developed and work-in-progress Dutch skills - <em>dat kan niet</em>.<span id="more-447"></span></p>
<p style="text-align: justify;">Why don't we make search engines smarter? Let's look at an example.</p>
<p style="text-align: justify;">I'm a hobbyist guitar player and every now and then, I'll go to Google and search for "soldier of love tab". Then I'll search through all the guitar tab sites and I finally find that one tab that is actually well written and faithful to the original song. Brilliant. I open it, I play it by myself once, I pretend to be an epic guitarist by playing along to the MP3 of the original and I close the tab feeling proud that I can play the guitar. But then, the next weekend comes and my girlfriend comes to visit. Of course, being the romantic guy that I am, I want to play for her but damn... it's going to take me long to find that really good guitar tab again and alas, the mood is killed. BUT! What if the first time around, I could have told Google "<em>this link contains the exact answer for 'soldier of love tab'</em> " so that whenever I searched again for this (or similar, e.g. 'soldier of love chords') string, Google would tell me "<em>hey, you've searched for something similar before and you have previously defined answers for this question</em>". Wouldn't this be great?</p>
<p style="text-align: justify;">Wouldn't it also be great if I could even mark specific segments of a result page as containing the answer for my question? Maybe sometimes I'd search "how to list <a href="http://ant.apache.org/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/ant.apache.org/?referer=');">ant</a> targets on the command line?" and I'd select a specific snippet of a website where it says "<em>ant -p</em>" as the answer to my question. Then, whenever I'd search for it again, Google would give me <strong>THE answer</strong> rather than links to <strong>potential answers</strong>.</p>
<p style="text-align: justify;">Then we could get crazy with it. Make it anonymously social! "<em>Other users have searched for a similar question, these are the links they selected as answers</em>". Users, by adopting this technique for themselves, would be helping each other as well and soon, the millions (billions?) of people using conventional search engines could eventually turn Google from a <strong>result-based</strong> search engine into an <strong>answer-based</strong> one.</p>
<p style="text-align: justify;">We would all spend less time searching and we'd all turn more productive by literally having the answers to everything we need at our fingertips.</p>
<p style="text-align: justify;">That was the basic gist of my idea. Please, Google or Bing engineers, if you read this, you can take this idea. For free. I claim no royalties, copyrights or trademarks... but it'd be pretty cool if you told me about it in case you use it. Also, in roughly 3.5 years I'll be finished with my Doctorate degree and I'll be probably looking for a job. Keep that in mind, will you? <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=447" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2011/03/idea-for-googlebing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe Starts Including Spyware With Acrobat Reader</title>
		<link>http://www.tiagoespinha.net/2010/10/adobe-starts-including-spyware-with-acrobat-reader/</link>
		<comments>http://www.tiagoespinha.net/2010/10/adobe-starts-including-spyware-with-acrobat-reader/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 17:57:52 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe McAfee Security Scan Plus]]></category>
		<category><![CDATA[Adobe Spyware]]></category>
		<category><![CDATA[Adware]]></category>
		<category><![CDATA[McAfee]]></category>
		<category><![CDATA[Spyware]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=434</guid>
		<description><![CDATA[We all know the folks at Adobe are some really nice people and that Steve Jobs was just being a bastard by not allowing Flash on the iPhone. But as it turns out, whilst Apple is too restrictive as to what it allows on their AppStore and their iDevices, Adobe on the other hand is [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F10%2Fadobe-starts-including-spyware-with-acrobat-reader%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2010_2F10_2Fadobe-starts-including-spyware-with-acrobat-reader_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F10%2Fadobe-starts-including-spyware-with-acrobat-reader%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">We all know the folks at Adobe are some really nice people and that Steve Jobs was just being a bastard by not allowing Flash on the iPhone. But as it turns out, whilst Apple is too restrictive as to what it allows on their AppStore and their iDevices, Adobe on the other hand is too permissive and they might have just crossed a line.<span id="more-434"></span></p>
<p style="text-align: justify;">Now, I understand that companies are all just trying to make money but if you attempt to install the latest Adobe Acrobat Reader and you're using Firefox, you'll be asked to install a Firefox extension to manage the download. While I typically try to avoid these downloaders (mostly because they're unnecessary and due to the fact that I don't feel comfortable with a company that thinks they're too important to give me a direct HTTP link), I was in a rush and I couldn't find a direct link on the page I was taken to. Considering this, I just thought "how bad can it be?" and went ahead.</p>
<p style="text-align: justify;">What was not my surprise when I saw the following, without ANY user input at all:<br />
<a href="http://www.tiagoespinha.net/wp-content/uploads/2010/10/adobespyware.jpg" rel="lightbox[434]" title="adobespyware"><img class="size-full wp-image-435 alignnone" title="adobespyware" src="http://www.tiagoespinha.net/wp-content/uploads/2010/10/adobespyware.jpg" alt="" width="454" height="295" /></a></p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2010/10/adobespyware.jpg"></a>Yep, what you see there is Adobe's downloader which has just installed McAfee Security Scan Plus. Without prompting me about it AT ALL. I was pretty annoyed with this situation because if this isn't the definition of <a href="http://en.wikipedia.org/wiki/Privacy-invasive_software" target="_blank" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Privacy-invasive_software?referer=');">ad/spyware</a>, then I don't know what is. I just thought I'd write this as I'm not usually very happy with companies who think it's OK to install software on my computer without my consent. It's not OK. Adobe, you're the one McAfee should be protecting me from.</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=434" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2010/10/adobe-starts-including-spyware-with-acrobat-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Seal a Bag Airtight With a Plastic Bottle</title>
		<link>http://www.tiagoespinha.net/2010/09/how-to-seal-a-bag-airtight-with-a-plastic-bottle/</link>
		<comments>http://www.tiagoespinha.net/2010/09/how-to-seal-a-bag-airtight-with-a-plastic-bottle/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 09:14:12 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Airtight]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Plastic Bottle]]></category>
		<category><![CDATA[Seal Bag]]></category>
		<category><![CDATA[Seal Bag Airtight]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=417</guid>
		<description><![CDATA[You're just about to learn a technique known for many centuries by Buddhist priests, passed on from generation to generation, but always kept in secret within their ranks. This technique teaches you how to seal a bag, in a airtight manner, with nothing but a.... plastic bottle! Yes, my description was dramatically exaggerated. This is [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F09%2Fhow-to-seal-a-bag-airtight-with-a-plastic-bottle%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2010_2F09_2Fhow-to-seal-a-bag-airtight-with-a-plastic-bottle_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F09%2Fhow-to-seal-a-bag-airtight-with-a-plastic-bottle%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2010/09/recycle_logo_13.jpg" rel="lightbox[417]" title="recycle_logo_1"><img class="alignleft size-full wp-image-427" title="recycle_logo_1" src="http://www.tiagoespinha.net/wp-content/uploads/2010/09/recycle_logo_13.jpg" alt="" width="180" height="180" /></a>You're just about to learn a technique known for many centuries by Buddhist priests, passed on from generation to generation, but always kept in secret within their ranks. This technique teaches you how to seal a bag, in a airtight manner, with nothing but a.... plastic bottle!</p>
<p style="text-align: justify;">Yes, my description was dramatically exaggerated. This is just one of those cool DIY things that most people don't think about, but hopefully, after reading this article, you'll remember it next time you need to seal a bag.</p>
<p style="text-align: justify;">Read on if I got your attention.<span id="more-417"></span></p>
<p style="text-align: justify;">So here's what you're going to need:</p>
<p style="text-align: justify;">1. Plastic bottle, any size will do.</p>
<p style="text-align: justify;">2. Plastic bag - obviously it cannot have any holes on it or this trick won't work.</p>
<p style="text-align: justify;">3. Pair of scissors - preferably ones with sharp, pointy tips. This will make it easier for you.</p>
<p style="text-align: justify;">After you have obtained these tools, you start by cutting the "mouth" of the bottle off. You have to cut a little bit under where you screw the cap, so that on one end you have the mouth-less bottle and on the other, you have just the mouth with a little bit of plastic attached to it - just like on the image:</p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2010/09/image001.jpeg" rel="lightbox[417]" title="image001"><img class="size-full wp-image-420 alignnone" title="image001" src="http://www.tiagoespinha.net/wp-content/uploads/2010/09/image001.jpeg" alt="" width="320" height="214" /></a></p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2010/09/image001.jpeg"></a>At this point you should have separated these two parts of the bottle and now is when the "magic" begins. In actual fact, you just need the mouthpiece, you can throw away the rest or fancy a vase out of it. With the mouthpiece, you unscrew the cap, pass the open part of the bag through the mouth of the bottle and apply the cap over the plastic bag, thus sealing it shut. Here's an image explaining showing the end result:</p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2010/09/image002.jpeg" rel="lightbox[417]" title="image002"><img class="size-full wp-image-421 alignnone" title="image002" src="http://www.tiagoespinha.net/wp-content/uploads/2010/09/image002.jpeg" alt="" width="320" height="213" /></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">Now you can store away your peanuts and they'll never go soggy again!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=417" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2010/09/how-to-seal-a-bag-airtight-with-a-plastic-bottle/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Free Storage With Dropbox (Free Online Backups)</title>
		<link>http://www.tiagoespinha.net/2010/09/free-storage-with-dropbox-free-online-backups/</link>
		<comments>http://www.tiagoespinha.net/2010/09/free-storage-with-dropbox-free-online-backups/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 23:40:21 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Free Online Storage]]></category>
		<category><![CDATA[Free Storage]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=412</guid>
		<description><![CDATA[If you need a way to store your files in a manner that they are always accessible everywhere, then Dropbox is for you. In case you haven't yet heard about this service, then know that Dropbox offers you 2Gb for free to store whichever files you like. The guys at Dropbox also have a software [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F09%2Ffree-storage-with-dropbox-free-online-backups%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2010_2F09_2Ffree-storage-with-dropbox-free-online-backups_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F09%2Ffree-storage-with-dropbox-free-online-backups%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2010/09/dropbox.png" rel="lightbox[412]" title="dropbox"><img class="alignleft size-full wp-image-413" title="dropbox" src="http://www.tiagoespinha.net/wp-content/uploads/2010/09/dropbox.png" alt="" width="127" height="127" /></a>If you need a way to store your files in a manner that they are always accessible everywhere, then Dropbox is for you. In case you haven't yet heard about this service, then know that Dropbox offers you 2Gb for free to store whichever files you like. The guys at Dropbox also have a software that integrates nicely with Windows and Mac OS and you can even access the files from your iPhone or Android powered phone.</p>
<p style="text-align: justify;">You might think that 2Gb are rather meager and you are right, that's nothing these days. This is why Dropbox has an awesome <a href="http://www.dropbox.com/referrals/NTU5NzI4OQ" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dropbox.com/referrals/NTU5NzI4OQ?referer=');">referral program</a> that will allow you to go up to 10Gb just by referring friends! That's right, 10Gb for free just by referring Dropbox to a few friends.</p>
<p style="text-align: justify;">Read on to find out more!</p>
<p style="text-align: justify;"><span id="more-412"></span></p>
<p style="text-align: justify;">If you are up for it, Dropbox also offers paid plans where you can pay $9.99 a month for 50Gb of storage or you can go the extra mile and pay $19.99 for the 100Gb service. Still, if this is a little too extreme for you, register an account (with <a href="http://www.dropbox.com/referrals/NTU5NzI4OQ" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dropbox.com/referrals/NTU5NzI4OQ?referer=');">my referral</a>, obviously <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) and start spamming referring friends with your link!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=412" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2010/09/free-storage-with-dropbox-free-online-backups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Rooting For Dummies (What is Rooting?)</title>
		<link>http://www.tiagoespinha.net/2010/09/android-rooting-for-dummies-what-is-rooting/</link>
		<comments>http://www.tiagoespinha.net/2010/09/android-rooting-for-dummies-what-is-rooting/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 23:24:33 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Android rooting]]></category>
		<category><![CDATA[Android Rooting for Dummies]]></category>
		<category><![CDATA[Dummies]]></category>
		<category><![CDATA[For Dummies]]></category>
		<category><![CDATA[Mobiles]]></category>
		<category><![CDATA[Rooting]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=409</guid>
		<description><![CDATA[One of the things I had a hard trouble finding an answer for after I got my first Android phone was: what is all this deal with rooting? I read a lot of articles on how to root my phone but I just couldn't see what benefits I would get from it. I had had an [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F09%2Fandroid-rooting-for-dummies-what-is-rooting%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2010_2F09_2Fandroid-rooting-for-dummies-what-is-rooting_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F09%2Fandroid-rooting-for-dummies-what-is-rooting%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignright size-full wp-image-410" title="root Android" src="http://www.tiagoespinha.net/wp-content/uploads/2010/09/root-Android.gif" alt="" width="150" height="150" /></p>
<p style="text-align: justify;">One of the things I had a hard trouble finding an answer for after I got my first Android phone was: what is all this deal with rooting? I read a lot of articles on how to root my phone but I just couldn't see what benefits I would get from it. I had had an iPhone and I knew the benefits I could get from jailbreaking, but I just didn't know what I could get from rooting.</p>
<p style="text-align: justify;">Well, rooting is in its definition a way to obtain root access to your phone. Does this still not tell you much? Good, then read on.<span id="more-409"></span></p>
<p style="text-align: justify;">This was the geek definition. Now, translating this into English, it means that some applications (some of them widely available in the Android Market), require some deeper privileges to work. Applications like Wireless Tether or Quick Boot are just a few examples of these apps.</p>
<p style="text-align: justify;">By rooting your phone, it won't become faster but it won't become slower either. What rooting means is that you'll have the <strong>option</strong> to grant some applications more access than they would normally have.</p>
<p style="text-align: justify;">Now, as to knowing whether your phone is rooted or not, that's a quite simple task. A rooted Android phone will have an additional application (installed automatically upon the rooting process), that is called "Superuser Permissions". You don't need to use this app but just the fact alone that it sits there, gives you this possibility. If an application ever requires root permissions, you will get a notice saying that the app is requesting super user permissions. Obviously, if you trust the app you will grant these permissions - if you don't trust it, you'll deny them.</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=409" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2010/09/android-rooting-for-dummies-what-is-rooting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

