<?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 &#187; Uncategorized</title>
	<atom:link href="http://www.tiagoespinha.net/category/uncategorized/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>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>Sidekick data recovered (most of it, maybe all)</title>
		<link>http://www.tiagoespinha.net/2009/10/sidekick-data-recovered-most-of-it-maybe-all/</link>
		<comments>http://www.tiagoespinha.net/2009/10/sidekick-data-recovered-most-of-it-maybe-all/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 12:58:48 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=278</guid>
		<description><![CDATA[You just have to take the fun of being a critical blogger, don't you T-Mobile? It seems that T-Mobile has actually managed to recover most of the data that was deemed 'probably lost' as the result of the massive server crash. According to the magenta folks, they will be able to recover most, if not [...]]]></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%2F2009%2F10%2Fsidekick-data-recovered-most-of-it-maybe-all%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F10_2Fsidekick-data-recovered-most-of-it-maybe-all_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F10%2Fsidekick-data-recovered-most-of-it-maybe-all%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/2009/10/Batman-Robin-Photograph-C12150175.jpg" rel="lightbox[278]" title="BatmanRobinSidekick"><img class="alignnone size-full wp-image-279" style="border: 0pt none; float:left; padding-right:10px; padding-bottom:10px" title="BatmanRobinSidekick" src="http://www.tiagoespinha.net/wp-content/uploads/2009/10/Batman-Robin-Photograph-C12150175.jpg" alt="BatmanRobinSidekick" width="240" height="192" /></a>You just have to take the fun of being a critical blogger, don't you T-Mobile? It seems that T-Mobile has actually managed to recover most of the data that was deemed 'probably lost' as the result of the massive server crash. According to the magenta folks, they will be able to recover most, if not all, of their customers' data. Good news for the Sidekick owners, but if I was you I'd just go with Robin anyway...</p>
<p style="text-align: justify;">Official Microsoft statement after the break.</p>
<p>[via <a href="http://gizmodo.com/5382208/most-if-not-all-sidekick-data-recovered" target="_blank" onclick="pageTracker._trackPageview('/outgoing/gizmodo.com/5382208/most-if-not-all-sidekick-data-recovered?referer=');">Gizmodo</a>]</p>
<p><span id="more-278"></span></p>
<blockquote><p>Dear T-Mobile Sidekick customers,</p>
<p>On behalf of Microsoft, I want to apologize for the recent problems with the Sidekick service and give you an update on the steps we have taken to resolve these problems.</p>
<p>We are pleased to report that we have recovered most, if not all, customer data for those Sidekick customers whose data was affected by the recent outage. We plan to begin restoring users' personal data as soon as possible, starting with personal contacts, after we have validated the data and our restoration plan. We will then continue to work around the clock to restore data to all affected users, including calendar, notes, tasks, photographs and high scores, as quickly as possible.</p>
<p>We now believe that data loss affected a minority of Sidekick users. If your Sidekick account was among those affected, please continue to log into these forums for the latest updates about when data restoration will begin, and any steps you may need to take. We will work with T-Mobile to post the next update on data restoration timing no later than Saturday.</p>
<p>We have determined that the outage was caused by a system failure that created data loss in the core database and the back-up. We rebuilt the system component by component, recovering data along the way. This careful process has taken a significant amount of time, but was necessary to preserve the integrity of the data.</p>
<p>We will continue working closely with T-Mobile to restore user data as quickly as possible. We are eager to deliver the level of reliable service that our incredibly loyal customers have become accustomed to, and we are taking immediate steps to help ensure this does not happen again. Specifically, we have made changes to improve the overall stability of the Sidekick Service and initiated a more resilient backup process to ensure that the integrity of our database backups is maintained.</p>
<p>Once again, we apologize for this situation and the inconvenience that it has created. Please know that we are working all-out to resolve this situation and restore the reliability of the service.</p>
<p>Sincerely,</p>
<p>Roz Ho</p>
<p>Corporate Vice President</p>
<p>Premium Mobile Experiences, Microsoft Corporation</p></blockquote>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=278" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/10/sidekick-data-recovered-most-of-it-maybe-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Story of my Life</title>
		<link>http://www.tiagoespinha.net/2009/06/story-of-my-life/</link>
		<comments>http://www.tiagoespinha.net/2009/06/story-of-my-life/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 12:15:45 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Advanced Software Engineering]]></category>
		<category><![CDATA[Leicester]]></category>
		<category><![CDATA[Master's]]></category>
		<category><![CDATA[Master's Degree]]></category>
		<category><![CDATA[my life]]></category>
		<category><![CDATA[University of Leicester]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=215</guid>
		<description><![CDATA[Today, I bring you something that happened with me recently and that I think it is worth sharing. As some of my readers may know, I applied for a Master's degree in Advanced Software Engineering at the University of Leicester. As of a couple of months ago, I received a letter saying I had been [...]]]></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%2F2009%2F06%2Fstory-of-my-life%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F06_2Fstory-of-my-life_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F06%2Fstory-of-my-life%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">Today, I bring you something that happened with me recently and that I think it is worth sharing.</p>
<p style="text-align: justify;">As some of my readers may know, I applied for a Master's degree in Advanced Software Engineering at the University of Leicester. As of a couple of months ago, I received a letter saying I had been accepted. The said letter was a conditional offer from the University, where the condition was obtaining my current degree (BSc in Computer Science) with an average grade no lower than 65%.</p>
<p style="text-align: justify;">"Perfect." - I thought. 65% in a 20 point scale represents 13 points, which would be totally doable with my 14.2 points average.</p>
<p style="text-align: justify;">Still, just to be sure, I decided to e-mail the Post-Graduate Admissions Office to assert how much would 65% be in my scale. For much of my surprise, I am told that 65% actually corresponds to 16 marks in my grading system. I was shocked. This meant that my goal simply could not be done...</p>
<p style="text-align: justify;">I e-mailed the PGA office back, asking whether that hadn't in fact been a mistake. Some days passed. Since the last time I e-mailed the PGA office it took them some two weeks to come back at me, I thought I'd send in the artillery and decided to call them. The lady who picked up my call didn't know how to help me but checked with a colleague who told her that I would have to contact the UK NARIC if I wasn't happy with that grade comparison.</p>
<p style="text-align: justify;">So I did. I e-mailed UK NARIC, only to realize that this is actually a paid service in the UK that provides people with comparison statements between systems in foreign countries and the UK system. Without being very helpful, their reply mentioned a £40 fee for requesting such a statement, without a warranty at all that I would get in at Leicester in the end.</p>
<p style="text-align: justify;">In the same day (yesterday), I also decided to e-mail my course coordinator (Prof. Patrício Domingues) at ESTG; I thought that perhaps he could help me and he did in fact help me. He provided me with a link to the Portuguese Republic Diary (Diário da República) where it clearly states that the grade range of 60% through 69% in the UK corresponds to 16 marks in Portugal. Bummer. It was all going down the drain... but I wasn't just about to give up. There was one last option: having my entrance requirement lowered.</p>
<p style="text-align: justify;">The last thing I did yesterday was e-mailing Ms. Stacey March, from the Department of Computer Science at Leicester. She'd been the one to announce that I had been accepted so I thought that she could help me in this situation. In my second e-mail, since the artillery had failed before - I had to send a nuke. And so I did. I factored it all in. I mentioned the fact that on the entry requirements it says that the applicant should have a good Second Class degree, and that Second Class is actually divided in the First and Second division (60 to 69% and 50 to 59% respectively). So technically I do have a Second Class degree with my 14 marks. Plus, I threw all that I have left at them: my work experience at Omerta, the one-month job I got in Leiria, the fact that I am currently engaged in the Google Summer of Code program, and that I still am a Microsoft Student Partner. That, on top of the fact of having scored much higher than what's required in the TOEFL exam.</p>
<p style="text-align: justify;">An hour ago, I had a surprise. The PGA office was e-mailing me, notifying that they reviewed my transcripts and together with UK NARIC they agreed that I would be accepted with a minimum of 13 points in a 20-point based scale.</p>
<p style="text-align: justify;">YAHOO! <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p style="text-align: justify;">Essentially I feel like I was accepted twice...</p>
<p style="text-align: justify;">Till the next time <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=215" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/06/story-of-my-life/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The First Flaw in Windows 7</title>
		<link>http://www.tiagoespinha.net/2009/05/the-first-flaw-in-windows-7/</link>
		<comments>http://www.tiagoespinha.net/2009/05/the-first-flaw-in-windows-7/#comments</comments>
		<pubDate>Wed, 06 May 2009 20:14:31 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flaw]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Release Candidate]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows 7 flaw]]></category>
		<category><![CDATA[Windows 7 RC]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=183</guid>
		<description><![CDATA[Hold your horses, this isn't a flaw per se. There isn't a massive hole in Windows 7 that allows the execution of malicious code. Instead, there's a legacy feature that has been around ever since Windows 98 (maybe even 95, but that I do not know for sure) that is used by virus writers to [...]]]></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%2F2009%2F05%2Fthe-first-flaw-in-windows-7%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F05_2Fthe-first-flaw-in-windows-7_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F05%2Fthe-first-flaw-in-windows-7%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Hold your horses, this isn't a flaw per se. There isn't a massive hole in Windows 7 that allows the execution of malicious code. Instead, there's a legacy feature that has been around ever since Windows 98 (maybe even 95, but that I do not know for sure) that is used by virus writers to fool users into executing their viruses.</p>
<p>The feature I am talking about is the ability to hide the extension for known file types. This comes enabled by default on XP and Vista and it was not addressed in Windows 7. Basically, as <a href="http://blogs.zdnet.com/hardware/?p=4317&amp;tag=nl.e550" target="_blank" onclick="pageTracker._trackPageview('/outgoing/blogs.zdnet.com/hardware/?p=4317_amp_tag=nl.e550&amp;referer=');">Adrian over at ZDNet</a> reports, with this feature enabled, a file with 'double extension' can easily be fooled for its fake extention. For example, a file named Report.txt.exe will automatically have the '.exe' extension hidden, and to the eyes of the less computer-savvy it can easily be mistaken for an innocent Report.txt file. Moreso when the creator of the virus is careful enough to add an innocent notepad icon to the malevolent application.</p>
<p>To be perfectly honest, I agree with Adrian. This is a feature that I disable right after I install Windows. More often than not I find myself having to change the extension of a file, and it's impossible to do so with this feature enabled and without resorting to the command line.</p>
<p>This feature is dangerous and it has been the gateway for many viruses to spread. Adrian also suggests adding some sort of overlay to the icons of executable files that aren't digitally signed - this is an incredibly good idea. Maybe something glarey as the icons of running applications on the new Windows 7 start bar. If properly done, this could be flashey and would cause a good impression on end-users, both visually and safety-wise. Personally, I would remove the feature altogether and leave it off - and please, without the possibility of working around it on the registry - but that's just my two pennies worth of opinion.</p>
<p>Have a good one.</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=183" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/05/the-first-flaw-in-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LG KM900 &#8211; You&#8217;re doing it wrong</title>
		<link>http://www.tiagoespinha.net/2009/04/lg-km900-youre-doing-it-wrong/</link>
		<comments>http://www.tiagoespinha.net/2009/04/lg-km900-youre-doing-it-wrong/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 21:46:43 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[KM900]]></category>
		<category><![CDATA[LG]]></category>
		<category><![CDATA[LG KM900]]></category>
		<category><![CDATA[LG KM900 Release Date]]></category>
		<category><![CDATA[Phones]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=178</guid>
		<description><![CDATA[As the newest LG KM900 is released, I can't help the thought: LG, you're doing it wrong. Honestly, I do not feel motivated to write about this phone simply because it is not aimed at mainstream; whoever tells me otherwise is clearly missing on the whole point. Put it this way, a phone isn't really [...]]]></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%2F2009%2F04%2Flg-km900-youre-doing-it-wrong%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F04_2Flg-km900-youre-doing-it-wrong_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F04%2Flg-km900-youre-doing-it-wrong%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>As the newest <a href="http://uk.lge.com/products/model/detail/mobilephones_lgarena(km900).jhtml" onclick="pageTracker._trackPageview('/outgoing/uk.lge.com/products/model/detail/mobilephones_lgarena_km900_.jhtml?referer=');">LG KM900</a> is released, I can't help the thought: LG, you're doing it wrong.</p>
<p>Honestly, I do not feel motivated to write about this phone simply because it is not aimed at mainstream; whoever tells me otherwise is clearly missing on the whole point. Put it this way, a phone isn't really just a phone anymore these days. The market requires customisable and flexible phones, such phones that can be expanded. What is the point of having a next-gen, touch-screen phone if afterwards you can't extend it with third-party applications and functionality?</p>
<p>In my humble opinion, it is safe to say that nowadays, a phone without:</p>
<p>1) Windows Mobile<br />
or<br />
2) Symbian OS<br />
or<br />
3) iPhone OS</p>
<p>is just doomed to extinction and failure. I know I wouldn't buy anything outside that. (I am a proud owner of an iPhone 3G by the way)</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=178" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/04/lg-km900-youre-doing-it-wrong/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Summer of Code 2009 &#8211; Part 2</title>
		<link>http://www.tiagoespinha.net/2009/04/google-summer-of-code-2009-part-2/</link>
		<comments>http://www.tiagoespinha.net/2009/04/google-summer-of-code-2009-part-2/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 19:58:59 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Summer of Code]]></category>
		<category><![CDATA[GSoC 2009]]></category>
		<category><![CDATA[Summer of Code]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=175</guid>
		<description><![CDATA[Waaaaaaait for it, waaaaait for it....... YES PEOPLE! I was accepted for Google Summer of Code 2009 This will be my smallest post ever but that is all I have to say I am friggin' ecstatic!]]></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%2F2009%2F04%2Fgoogle-summer-of-code-2009-part-2%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F04_2Fgoogle-summer-of-code-2009-part-2_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F04%2Fgoogle-summer-of-code-2009-part-2%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Waaaaaaait for it, waaaaait for it....... YES PEOPLE! I was accepted for Google Summer of Code 2009 <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>This will be my smallest post ever but that is all I have to say <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  I am friggin' ecstatic!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=175" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/04/google-summer-of-code-2009-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VMWare Unity &#8211; The ultimate virtualization?</title>
		<link>http://www.tiagoespinha.net/2009/03/vmware-unity-the-ultimate-virtualization/</link>
		<comments>http://www.tiagoespinha.net/2009/03/vmware-unity-the-ultimate-virtualization/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 17:46:09 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=164</guid>
		<description><![CDATA[Would it not be cool to have two operating systems interweaved in the same machine in a seamless manner? What if you could be running Ubuntu and alongside with its 'normal' windows, you could just have your favourite Windows applications running as if they were running natively? It would be awesome, right? Well, if this [...]]]></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%2F2009%2F03%2Fvmware-unity-the-ultimate-virtualization%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F03_2Fvmware-unity-the-ultimate-virtualization_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F03%2Fvmware-unity-the-ultimate-virtualization%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Would it not be cool to have two operating systems interweaved in the same machine in a seamless manner? What if you could be running Ubuntu and alongside with its 'normal' windows, you could just have your favourite Windows applications running as if they were running natively? It would be awesome, right?</p>
<p>Well, if this is still an utopia for you, then you are probably missing out on VMWare's Unity functionality, available since the version 6.5 on their Workstation platform.</p>
<p>What's Unity you ask? I say it is the best damn thing ever invented.</p>
<p>Unity, as I have hinted, gives you the ability of having the applications of a guest operating system 'running under' the host OS. I used quotes because in actual fact, only the windows from those apps are transported from the guest to the host - all the applications will still be running under the guest OS.</p>
<p>So in practice, you can be running Ubuntu (or any other flavour of Linux) and have Adobe's Photoshop or Microsoft Word running <strong>right there</strong>, alongside Gnometrix or any other of the applications that you can run under Linux. The opposite also works. As a matter of fact, I'm running Vista as we speak and I am developing under Netbeans on Ubuntu. Neat eh?</p>
<p>I cannot begin to address the multitude of possibilities that this opens. It is still buggy but even when you have applications that still can't run on Vista, you can just have a virtual machine running XP and your applications can run straight off along the other windows. It's just the ultimate invention.</p>
<p>I'll leave you with a printscreen since an image is worth a thousand words.</p>
<p><img class="alignnone size-medium wp-image-165" title="vistabuntu" src="http://www.tiagoespinha.net/wp-content/uploads/2009/03/vistabuntu-300x168.jpg" alt="vistabuntu" width="300" height="168" /></p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=164" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/03/vmware-unity-the-ultimate-virtualization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accelero Twin Turbo by Artic Cooling &#8211; Review</title>
		<link>http://www.tiagoespinha.net/2009/03/accelero-twin-turbo-by-artic-cooling-review/</link>
		<comments>http://www.tiagoespinha.net/2009/03/accelero-twin-turbo-by-artic-cooling-review/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 20:40:01 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Accelero]]></category>
		<category><![CDATA[Artic Cooling]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Twin Turbo]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=159</guid>
		<description><![CDATA[Recently I had been having a problem. My graphics card (a humble PowerColor HD4850) was overheating to smithereens. Each time I wanted to play a game I would manually pump up the only small fan, increasing the noise tenfold, only to keep the temperature at a scorching 100ºC. Yes, you read correctly. Under load (running [...]]]></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%2F2009%2F03%2Faccelero-twin-turbo-by-artic-cooling-review%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F03_2Faccelero-twin-turbo-by-artic-cooling-review_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F03%2Faccelero-twin-turbo-by-artic-cooling-review%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Recently I had been having a problem. My graphics card (a humble PowerColor HD4850) was overheating to smithereens. Each time I wanted to play a game I would manually pump up the only small fan, increasing the noise tenfold, only to keep the temperature at a scorching 100ºC.</p>
<p>Yes, you read correctly. Under load (running Team Fortress 2) this card would easily reach the 100 degrees Celsius. The funny thing about it? It wouldn't absolutely stutter at all!</p>
<p>After having done research on it, I came to the conclusion that this card was simply <a href="http://www.overclock.net/ati/347689-hd4850-heat-problem-hot-do-i.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.overclock.net/ati/347689-hd4850-heat-problem-hot-do-i.html?referer=');">hot by nature</a>. Or, better put, the stock cooler is not appropriate for the kind of heat this graphics card generates. There is being hot and there is not having appropriate cooling. This case is most certainly the latter.</p>
<p>My results, despite not having screenshots of it, were of:<br />
- 80ºC idle (with the fan at 40% - which is the maximum I was willing to go noise-wise)<br />
- 100ºC ++ load (with the fan at 80% and a deafening noise that even got my mom scared about it)</p>
<p>Now, while the card was most certainly designed with this sort of temperatures in mind, heat rarely does any good to electrical components. When we're talking about temperatures enough to make your kettle whistle, then you know you should do something about it.</p>
<p>I did.</p>
<p>Today, I bought the Accelero Twin Turbo and at first I was a little reluctant. I was afraid it was just going to be more of the same as the stock cooler, with little improvement. I couldn't have been more wrong. The installation is pretty straight-forward, although, to its own right, the RAM and voltage regulators heatsinks definitely could use more glue. With a little nudge I managed to remove one of the heatsinks so I am still wondering how they will hold up through time (literally).</p>
<p>This cooler packs quite a punch when compared to the stock cooler. It comes with two 80mm fans, attached to a massive aluminum block, which has a copper pipeline system that goes straight to the actual block that attaches to the GPU. Keep in mind that space may be an issue with this cooler; if you are going for CrossFire then think again about buying the Twin Turbo as your graphics card will use up THREE slots on the back of your computer case.</p>
<p>It is crazy, I know, but right now I have the same 40% setting on the fans (this cooler is pluggable to your graphics' card fan power supply) and I get a cool 33ºC . While gaming, it never goes above the 36ºC and that is with the very same 40% !</p>
<p>As far as noise goes, it can't even compare to the stock cooler, which is actually expectable. There is a trade-off between the size of a fan, the amount of air it can move per second and the noise in decibels it produces. Basically, with a bigger fan, you can move the same (or a bigger) amount of air with the same (or less) noise. These two fans are really silent, barely audible. If I push them to 100% then you actually start to hear them, but at 100% they are less audible than the single, stock fan, at 80%.</p>
<p>So if you still needed any proof that this is the cooler for you, look no further. This will solve ALL your temperature problems and I advocate that this graphics card should actually come with one of these coolers by default.</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=159" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/03/accelero-twin-turbo-by-artic-cooling-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gmail now has customizable themes &#8211; what about us?!</title>
		<link>http://www.tiagoespinha.net/2009/02/gmail-now-has-customizable-themes-but-what-about-us/</link>
		<comments>http://www.tiagoespinha.net/2009/02/gmail-now-has-customizable-themes-but-what-about-us/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 18:37:30 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GMail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Apps]]></category>
		<category><![CDATA[Themes]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=156</guid>
		<description><![CDATA[That's right, what about us, Google Apps users? Google has recently released means for people to customize the looks of their GMail inboxes, but we, Google Apps users, are still in the blue. (That's my poor attempt at a pun) Ever since Theming was released for GMail that I have been waiting and hoping to get [...]]]></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%2F2009%2F02%2Fgmail-now-has-customizable-themes-but-what-about-us%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F02_2Fgmail-now-has-customizable-themes-but-what-about-us_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F02%2Fgmail-now-has-customizable-themes-but-what-about-us%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>That's right, what about us, Google Apps users?</p>
<p>Google has recently <a href="http://gmailblog.blogspot.com/2009/02/choose-your-own-theme-colors.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/gmailblog.blogspot.com/2009/02/choose-your-own-theme-colors.html?referer=');">released means</a> for people to customize the looks of their GMail inboxes, but we, Google Apps users, are still in the blue. (That's my poor attempt at a pun)</p>
<p>Ever since Theming was released for GMail that I have been waiting and hoping to get the very same feature for Google Apps. After all, some of the G. Apps users are paying users, so one would expect the guys at Google to roll out the new features fairly quickly for their Apps users. That has not been the case. It was not the case with IMAP and it was not the case with Google Labs.</p>
<p>Now once more, it is not the case with Themes.</p>
<p>Sure, you can throw out all the excuses that there are a lot of users and that it needs a lot of work to roll out the features to everyone, but that just doesn't stick with me. Even recently we (Apps users) got our default theme changed to the default theme brought by the theming feature, however, the Themes tab is still MIA on the Settings page.</p>
<p>Clearly, part of the code has already been rolled out, but not all of it. The why is yet to be known, as Google won't give anything more than "soon, Themes will come to Google Apps". But how soon, Google?</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=156" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/02/gmail-now-has-customizable-themes-but-what-about-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PasteBins &#8211; Usenet 2.0</title>
		<link>http://www.tiagoespinha.net/2009/01/pastebins-usenet-20/</link>
		<comments>http://www.tiagoespinha.net/2009/01/pastebins-usenet-20/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 11:33:24 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HaxTools]]></category>
		<category><![CDATA[PasteBin]]></category>
		<category><![CDATA[Usenet 2.0]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=150</guid>
		<description><![CDATA[Here I am again with a crazy project of mine: HaxTools. Ok, the name wasn't particularly well thought but I think you will find the idea quite well engineered. On a little background note, let me introduce you to Usenet. Usenet started off in 1979 as a forum-like service. It was a discussion board were [...]]]></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%2F2009%2F01%2Fpastebins-usenet-20%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F01_2Fpastebins-usenet-20_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F01%2Fpastebins-usenet-20%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">Here I am again with a crazy project of mine: HaxTools.</p>
<p style="text-align: justify;">Ok, the name wasn't particularly well thought but I think you will find the idea quite well engineered.</p>
<p style="text-align: justify;">On a little background note, let me introduce you to Usenet. Usenet started off in 1979 as a forum-like service. It was a discussion board were allowed to discuss and share opinions, very much like forums as we know them nowadays. Instead of using your webclient, you would have to use an e-mail client with support for NNTP (the newsgroups protocol) or an actual application dedicated to newsgroups, this means that this service, unlike forums, doesn't work over HTTP but over a different protocol, NNTP.</p>
<p style="text-align: justify;">What happened after was that people realized the potential of the newsgroup servers for other purposes, namely file distributing based on a centralized server (as opposed to peer-to-peer). Such newsgroup servers are most commonly provided over very powerful Internet backbones which makes them great platforms for distributing all kinds of binary files to several people just at the cost of one single upload.</p>
<p style="text-align: justify;">And so it started happening. Programs were developed that were able to post binary files on newsgroups, and newsgroup clients that were able to download binary files also started showing up. From posting innocent files to using Usenet as a gateway for piracy was quite a small leap and nowadays one could say that the Usenet is perhaps most used for illegal content than for actual discussion of ideas.</p>
<p style="text-align: justify;">Now, back to my application. HaxTools is a proof of concept set of tools; therefore, I won't be liable for any damage it causes to your computer or to <strong>whatever</strong> uses people give it. In principle, the program does not violate any terms of service, although it is likely that the service it uses currently (http://rafb.net/paste/) will get up measures to fight it.</p>
<p style="text-align: justify;">My application makes use of PasteBin sites (like the RAFB.net) to store files online. The HaxUploader allows you to choose the granularity of the upload up to 500Kb (meaning that your file will be sliced in 500Kb pieces) and allows files of up to 10Mb - this limit is in place so that your computer doesn't crash. This is just because I had no concern with optimization, so all operations are done in memory, which can be cumbersome on the computer for big files. However, optimizations can indeed be made so that all operations are done out of the hard drive, making the process slower but workable for bigger files. Depending on the success of this proof of concept, I may get into optimizing the idea.</p>
<p style="text-align: justify;">How does it work from a user's perspective?<br />
Nothing simpler. The user chooses a file on HaxUploader, presses upload and waits until the green bar gets filled completely and links show up on the box below. When the links are there, you just have to copy the said links (<strong>don't ever change the order!</strong>) and distribute them to other people.</p>
<p style="text-align: justify;">From the receiver's perspective, they will open HaxDownloader, paste in the links on the <strong>SAME</strong> order as they have received them and press Download. After a while, a message will appear saying that the process was completed; at this point, on the same folder as HaxDownloader was ran, there will be a NewFile.bin - this is the standard name for all downloaded files. Afterwards you'll have to rename it to whatever you like and also keep in mind that you do have to change the extension of the file to what it was originally - this is also something that could be done better in an actual program.</p>
<p style="text-align: justify;">After that is done, your file is ready to use. Whether it is a RAR file, or an MP3... whatever, it will work with all file types and we'll now get to how it works from the code's perspective.</p>
<p style="text-align: justify;">What's the whole idea? In a nutshell, the HaxUploader grabs the file it is meant to upload, streams it into memory (treating it as a binary file, thus working for any kind of files) and then moves on to convert the file contents to Base64. This is the standard format on which files are stored on Usenet; so the core idea is kept. With the contents on Base64, it goes on to split them into smaller chunks (given by the granularity setting) and uploads each of the chunks into a separate 'pasting'.</p>
<p style="text-align: justify;">When it has finally submitted all the parts and acquired all the links from the 'pastings' we're all done and it simply outputs the links to the user.</p>
<p style="text-align: justify;">The order in which the links are arranged does matter and it is imperative that they are kept in the order they are provided to you, otherwise it simply won't work as I haven't put in place any order measure. (It can be done though and on an actual application this would be needed).</p>
<p style="text-align: justify;">The Downloader program simply fetches the content of the paste links, puts it all back together and decodes the Base64 string into binary, recreating the file.</p>
<p style="text-align: justify;">As a final note, there isn't a big deal of protections and validations in place, that is why this is a proof of concept - I just wanted to prove that it can be done.</p>
<p style="text-align: justify;">For now I am not releasing the source code but just the binaries. If you are interested in the source code, you can contact me at tiago[at]espinhas[dot]net and we can discuss the situation.</p>
<p style="text-align: justify;">Until the next time!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=150" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/01/pastebins-usenet-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

