<?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"
	>

<channel>
	<title>Diego's Rants</title>
	<atom:link href="http://massanti.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://massanti.com</link>
	<description>Confessions from a Geek</description>
	<pubDate>Tue, 15 Apr 2008 16:13:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Keeping track of your users hardware / Software with Sparkle and PHP.</title>
		<link>http://massanti.com/2008/04/15/sparkle-php-updates-script-tracking/</link>
		<comments>http://massanti.com/2008/04/15/sparkle-php-updates-script-tracking/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[Apple / Macintosh]]></category>

		<category><![CDATA[Computers &amp; Tech]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[script]]></category>

		<category><![CDATA[sparkle]]></category>

		<guid isPermaLink="false">http://massanti.com/?p=145</guid>
		<description><![CDATA[Some months ago I started using the amazing Sparkle framework to manage the auto-update features on my MediaInfo Mac application, and it wasn't until today that I decided to update my Sparkle version to the latest one from the SVN and give it a try, mostly because I'm planning to release upcoming MediaInfo Mac builds [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://massanti.com/wp-content/uploads/2008/04/sparkle.jpg" alt="" title="Sparkle Dialog Screenshot" width="478" height="518" class="right" />Some months ago I started using the amazing <a href="http://sparkle.andymatuschak.org/">Sparkle</a> framework to manage the auto-update features on my <a href="http://massanti.com/mediainfo">MediaInfo Mac</a> application, and it wasn't until today that I decided to update my Sparkle version to the latest one from the SVN and give it a try, mostly because I'm planning to release upcoming MediaInfo Mac builds as 32 and 64bit Universal Binaries, but that's a different story.</p>
<p>I have found that with the new Sparkle version, you can kindly ask the user if he/she wants to send anonymous information about the system they are using to run your application, like the MacOS version, amount of RAM, number of processors, language, etc. This is specially useful for many reasons (at least for me), first, I'm starting the process of localizing my application, so that gives me a pretty good idea of what languages are the most used so far, and, finally, it will let me now <strong>when</strong> I <strong>could</strong> stop caring about Tiger and start a Leopard only version of my Software.</p>
<p>The idea is pretty simple, you have a PHP script that generates the whole AppCast compatible feed, and all the hardware / software information is passed as url parameters, as in <em><strong>feed.php?osVersion=10.2.5&lang=en</strong></em> ... etc.</p>
<p>So, by using good old Google, i found a <a href="http://www.randomsequence.com/articles/php-rss-appcast-generator/">really good script to generate the AppCast feed</a>, but, i also needed a way to store the tracking data into a DB for later usage, and, i came up with this (really barebones, but working) prototype.</p>
<p>So, i did some minor modifications to the original PHP code; first, i changed the way to parse the version number from the file names, so as long as you use the <em><strong>application_name_1.5.zip</strong></em> pattern it will work, please note that you can put as much revision or subversion numbers as you wish: <strong><em>application_name_1.2.3.4.5.zip</em></strong> should also work.</p>
<p>This is the code snippet as i have it working now on my development server:</p>
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #808080; font-style: italic;">// ----------------------------------------------------------- //</span>
<span style="color: #808080; font-style: italic;">// Script to generate an RSS appcast from folder contents</span>
<span style="color: #808080; font-style: italic;">// Version 1.0.1</span>
<span style="color: #808080; font-style: italic;">//</span>
<span style="color: #808080; font-style: italic;">// (cc) Random Sequence 2007, Some Rights Reserved</span>
<span style="color: #808080; font-style: italic;">//</span>
<span style="color: #808080; font-style: italic;">// Licenced under a creative commons Attribution ShareAlike licence</span>
<span style="color: #808080; font-style: italic;">// http://creativecommons.org/licenses/by-sa/3.0/</span>
<span style="color: #808080; font-style: italic;">// ----------------------------------------------------------- //   </span>
&nbsp;
<span style="color: #808080; font-style: italic;">// REQUIRES PHP 5 or greater</span>
<span style="color: #808080; font-style: italic;">// Tested with APACHE 1 &amp; 2 on Mac OS X, Debian Linux   </span>
&nbsp;
<span style="color: #808080; font-style: italic;">// -------------------- BEGIN CONFIG ------------------------- //</span>
&nbsp;
<span style="color: #0000ff;">$title</span> = <span style="color: #ff0000;">&quot;Downloads&quot;</span>;           <span style="color: #808080; font-style: italic;">// Used as feed title in feed readers</span>
<span style="color: #0000ff;">$description</span> = <span style="color: #ff0000;">&quot;File List&quot;</span>;     <span style="color: #808080; font-style: italic;">// Used as feed description in feed readers</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// these are the types of files to list in the appcast &amp; their MIME Types. Use lower case.</span>
<span style="color: #0000ff;">$fileTypes</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;zip&quot;</span>=&gt;<span style="color: #ff0000;">&quot;application/zip&quot;</span>,
                    <span style="color: #ff0000;">&quot;tgz&quot;</span>=&gt;<span style="color: #ff0000;">&quot;application/x-gtar&quot;</span>,
                    <span style="color: #ff0000;">&quot;tar&quot;</span>=&gt;<span style="color: #ff0000;">&quot;application/x-tar&quot;</span>,
                    <span style="color: #ff0000;">&quot;dmg&quot;</span>=&gt;<span style="color: #ff0000;">&quot;application/octet-stream&quot;</span>
                    <span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// -------------------- END OF CONFIG ------------------------ //</span>
&nbsp;
<span style="color: #0000ff;">$appcastHeader</span> = <span style="color: #ff0000;">&quot;&lt;?xml version=<span style="color: #000099; font-weight: bold;">\&quot;</span>1.0<span style="color: #000099; font-weight: bold;">\&quot;</span> encoding=<span style="color: #000099; font-weight: bold;">\&quot;</span>utf-8<span style="color: #000099; font-weight: bold;">\&quot;</span>?&gt;
&lt;rss version=<span style="color: #000099; font-weight: bold;">\&quot;</span>2.0<span style="color: #000099; font-weight: bold;">\&quot;</span> xmlns:dc=<span style="color: #000099; font-weight: bold;">\&quot;</span>http://purl.org/dc/elements/1.1/<span style="color: #000099; font-weight: bold;">\&quot;</span> xmlns:sparkle=<span style="color: #000099; font-weight: bold;">\&quot;</span>http://www.andymatuschak.org/xml-namespaces/sparkle<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;
&lt;channel&gt;
    &lt;title&gt;*title*&lt;/title&gt;
&lt;link&gt;*link*&lt;/link&gt;
    &lt;description&gt;*description*&lt;/description&gt;
    &lt;language&gt;en&lt;/language&gt;
&quot;</span>;
<span style="color: #0000ff;">$appcastTemplate</span> = <span style="color: #ff0000;">&quot;
        &lt;item&gt;
            &lt;guid  isPermaLink=<span style="color: #000099; font-weight: bold;">\&quot;</span>false<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;*guid*&lt;/guid&gt;
            &lt;title&gt;*title*&lt;/title&gt;
            &lt;description&gt;*description*&lt;/description&gt;
&lt;pubDate&gt;*pubdate*&lt;/pubDate&gt;
            &lt;enclosure
                sparkle:version=<span style="color: #000099; font-weight: bold;">\&quot;</span>*version*<span style="color: #000099; font-weight: bold;">\&quot;</span>
                type=<span style="color: #000099; font-weight: bold;">\&quot;</span>*type*<span style="color: #000099; font-weight: bold;">\&quot;</span>
                url=<span style="color: #000099; font-weight: bold;">\&quot;</span>*url*<span style="color: #000099; font-weight: bold;">\&quot;</span>
                length=<span style="color: #000099; font-weight: bold;">\&quot;</span>*length*<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;
        &lt;/item&gt;&quot;</span>;
&nbsp;
<span style="color: #0000ff;">$appcastFooter</span> = <span style="color: #ff0000;">&quot;
&lt;/channel&gt;
&lt;/rss&gt;&quot;</span>;
&nbsp;
<span style="color: #0000ff;">$files</span> = scandir<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/getcwd"><span style="color: #000066;">getcwd</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$etag</span> = <a href="http://www.php.net/sha1"><span style="color: #000066;">sha1</span></a><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/implode"><span style="color: #000066;">implode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;/&quot;</span>,<span style="color: #0000ff;">$files</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// support for conditional fetch</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'HTTP_IF_NONE_MATCH'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> &amp;&amp; <span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'HTTP_IF_NONE_MATCH'</span><span style="color: #66cc66;">&#93;</span> == <span style="color: #0000ff;">$etag</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <a href="http://www.php.net/header"><span style="color: #000066;">header</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'HTTP/1.1 304 Not Modified'</span><span style="color: #66cc66;">&#41;</span>;
    <a href="http://www.php.net/exit"><span style="color: #000066;">exit</span></a>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">$appcast</span> = <span style="color: #0000ff;">$appcastHeader</span>;
&nbsp;
<span style="color: #0000ff;">$link</span> = <span style="color: #ff0000;">&quot;http://&quot;</span>.<span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;HTTP_HOST&quot;</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;PHP_SELF&quot;</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
<span style="color: #0000ff;">$appcast</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*link*&quot;</span>,<span style="color: #0000ff;">$link</span>,<span style="color: #0000ff;">$appcast</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$appcast</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*title*&quot;</span>,<span style="color: #0000ff;">$title</span>,<span style="color: #0000ff;">$appcast</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$appcast</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*description*&quot;</span>,<span style="color: #0000ff;">$description</span>,<span style="color: #0000ff;">$appcast</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #b1b100;">foreach</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$files</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <a href="http://www.php.net/preg_match"><span style="color: #000066;">preg_match</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;/.*<span style="color: #000099; font-weight: bold;">\.</span>([a-z09]{1,3})$/i&quot;</span>,<span style="color: #0000ff;">$file</span>,<span style="color: #0000ff;">$matches</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$matches</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> &amp;&amp; <a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$fileTypes</span><span style="color: #66cc66;">&#91;</span><a href="http://www.php.net/strtolower"><span style="color: #000066;">strtolower</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$matches</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> !== <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$appcastFile</span> = <span style="color: #0000ff;">$appcastTemplate</span>;
&nbsp;
        <span style="color: #0000ff;">$folderUrl</span> = <span style="color: #ff0000;">&quot;http://&quot;</span>.<span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;HTTP_HOST&quot;</span><span style="color: #66cc66;">&#93;</span>.<a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;PHP_SELF&quot;</span><span style="color: #66cc66;">&#93;</span>,<span style="color: #cc66cc;">0</span>,<a href="http://www.php.net/strrpos"><span style="color: #000066;">strrpos</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;PHP_SELF&quot;</span><span style="color: #66cc66;">&#93;</span>,<span style="color: #ff0000;">&quot;/&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">&quot;/&quot;</span>;
&nbsp;
        <span style="color: #0000ff;">$guid</span> = <span style="color: #0000ff;">$folderUrl</span>.<a href="http://www.php.net/sha1"><span style="color: #000066;">sha1</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$title</span> = <span style="color: #0000ff;">$file</span>;
        <span style="color: #0000ff;">$description</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;/^(.*?)([0-9]+[a-z])<span style="color: #000099; font-weight: bold;">\.</span>([a-z09]{1,3})$/i&quot;</span>,<span style="color: #ff0000;">&quot;$1&quot;</span>,<span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$pubdate</span> = <a href="http://www.php.net/date"><span style="color: #000066;">date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;D, d M Y H:i:s&quot;</span>,<a href="http://www.php.net/filectime"><span style="color: #000066;">filectime</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$type</span> = <span style="color: #0000ff;">$fileTypes</span><span style="color: #66cc66;">&#91;</span><a href="http://www.php.net/strtolower"><span style="color: #000066;">strtolower</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$matches</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>;
        <span style="color: #0000ff;">$url</span> = <span style="color: #0000ff;">$folderUrl</span>.<span style="color: #0000ff;">$file</span>;
        <span style="color: #0000ff;">$length</span> = <a href="http://www.php.net/filesize"><span style="color: #000066;">filesize</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$file</span><span style="color: #66cc66;">&#41;</span>;      
&nbsp;
        <span style="color: #808080; font-style: italic;">// Modified by Diego Massanti</span>
&nbsp;
        <a href="http://www.php.net/preg_match"><span style="color: #000066;">preg_match</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;/(<span style="color: #000099; font-weight: bold;">\d</span>+<span style="color: #000099; font-weight: bold;">\.</span>)+<span style="color: #000099; font-weight: bold;">\d</span>+/&quot;</span>, <span style="color: #0000ff;">$file</span>, <span style="color: #0000ff;">$m_version</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0000ff;">$version</span> = <span style="color: #0000ff;">$m_version</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">// End of Mod.</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">// $version = preg_replace(&quot;/^(.*?)([0-9]+[a-z])\.([a-z09]{1,3})$/i&quot;,&quot;$2&quot;,$file);</span>
&nbsp;
        <span style="color: #0000ff;">$appcastFile</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*guid*&quot;</span>,<span style="color: #0000ff;">$guid</span>,<span style="color: #0000ff;">$appcastFile</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$appcastFile</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*title*&quot;</span>,<span style="color: #0000ff;">$title</span>,<span style="color: #0000ff;">$appcastFile</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$appcastFile</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*description*&quot;</span>,<span style="color: #0000ff;">$description</span>,<span style="color: #0000ff;">$appcastFile</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$appcastFile</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*version*&quot;</span>,<span style="color: #0000ff;">$version</span>,<span style="color: #0000ff;">$appcastFile</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$appcastFile</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*pubdate*&quot;</span>,<span style="color: #0000ff;">$pubdate</span>,<span style="color: #0000ff;">$appcastFile</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$appcastFile</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*type*&quot;</span>,<span style="color: #0000ff;">$type</span>,<span style="color: #0000ff;">$appcastFile</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$appcastFile</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*url*&quot;</span>,<span style="color: #0000ff;">$url</span>,<span style="color: #0000ff;">$appcastFile</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$appcastFile</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;*length*&quot;</span>,<span style="color: #0000ff;">$length</span>,<span style="color: #0000ff;">$appcastFile</span><span style="color: #66cc66;">&#41;</span>;                                    
&nbsp;
        <span style="color: #0000ff;">$appcast</span> .= <span style="color: #0000ff;">$appcastFile</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">$appcast</span> .= <span style="color: #0000ff;">$appcastFooter</span>; 
&nbsp;
<span style="color: #808080; font-style: italic;">// Database Functions</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// Fill an array with the options we care about</span>
<span style="color: #0000ff;">$vars</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'osVersion'</span> , <span style="color: #ff0000;">'cputype'</span>, <span style="color: #ff0000;">'cpusubtype'</span>, <span style="color: #ff0000;">'model'</span>, <span style="color: #ff0000;">'ncpu'</span>, <span style="color: #ff0000;">'lang'</span>, <span style="color: #ff0000;">'appName'</span>, <span style="color: #ff0000;">'appVersion'</span>, <span style="color: #ff0000;">'cpuFreqMHz'</span>, <span style="color: #ff0000;">'ramMB'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Initialize an empty array to store results</span>
<span style="color: #0000ff;">$values</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// We start assuming that we are getting all the values we want</span>
<span style="color: #0000ff;">$shouldInsert</span> = <span style="color: #000000; font-weight: bold;">true</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// If any of the values is not sent, then we dont want incomplete info, right ?</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$vars</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$item</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$item</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$item</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/html_entity_decode"><span style="color: #000066;">html_entity_decode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$item</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #0000ff;">$shouldInsert</span> = <span style="color: #000000; font-weight: bold;">false</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// If we have all the data, then let's store it in our DB.</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$shouldInsert</span> == <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #0000ff;">$mysqli</span> = <span style="color: #000000; font-weight: bold;">new</span> mysqli<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;localhost&quot;</span>, <span style="color: #ff0000;">&quot;yourDBuser&quot;</span>, <span style="color: #ff0000;">&quot;yourDBpass&quot;</span>, <span style="color: #ff0000;">&quot;yourDBname&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// If you want your feed to be reachable EVEN if something is REALLY wrong with your DB, then comment the following block</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>mysqli_connect_errno<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	    <a href="http://www.php.net/printf"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Connect failed: %s<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, mysqli_connect_error<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	    <a href="http://www.php.net/exit"><span style="color: #000066;">exit</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">// Prepare the query</span>
	<span style="color: #0000ff;">$stmt</span> = <span style="color: #0000ff;">$mysqli</span>-&gt;<span style="color: #006600;">prepare</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;INSERT INTO stats (osVersion, cputype, cpusubtype, model, ncpu, lang, appName, appVersion, cpuFreqMHz, ramMB) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">// Bind the parameters</span>
	<span style="color: #0000ff;">$stmt</span>-&gt;<span style="color: #006600;">bind_param</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'sississsii'</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'osVersion'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'cputype'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'cpusubtype'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'model'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'ncpu'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'lang'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'appName'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'appVersion'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'cpuFreqMHz'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0000ff;">$values</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'ramMB'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">// Execute the query</span>
	<span style="color: #0000ff;">$stmt</span>-&gt;<span style="color: #006600;">execute</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">// Bingo!</span>
	<span style="color: #0000ff;">$stmt</span>-&gt;<span style="color: #006600;">close</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// Send the feed.</span>
&nbsp;
<a href="http://www.php.net/header"><span style="color: #000066;">header</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Content-type: application/xml; charset=UTF-8&quot;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/header"><span style="color: #000066;">header</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;ETag: $etag&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #0000ff;">$appcast</span>;
<a href="http://www.php.net/exit"><span style="color: #000066;">exit</span></a>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
<p>As usual, suggestions or improvements are welcome <img src='http://massanti.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/04/15/sparkle-php-updates-script-tracking/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MediaInfo Mac 0.7.6.30 update released</title>
		<link>http://massanti.com/2008/04/13/mediainfo-mac-07630-update-released/</link>
		<comments>http://massanti.com/2008/04/13/mediainfo-mac-07630-update-released/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[Apple / Macintosh]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[MediaInfo]]></category>

		<guid isPermaLink="false">http://massanti.com/?p=144</guid>
		<description><![CDATA[Hi there, just a quick note to let you know that a new version of MediaInfo Mac (0.7.6.30) has been released, not only it includes several bugfixes and improvements in the Cocoa arena, but also a new build of the MediaInfo engine which features the following improvements:

AVC: Count of reference frames.
AU: Comments.
Some global speed improvement.
Id3v2: [...]]]></description>
			<content:encoded><![CDATA[<p>Hi there, just a quick note to let you know that a new version of <strong><a title="Official MediaInfo Mac web site." href="http://massanti.com/mediainfo/">MediaInfo Mac (0.7.6.30)</a></strong> has been released, not only it includes several bugfixes and improvements in the Cocoa arena, but also a new build of the <a title="Official MediaInfo site" href="http://mediainfo.sourceforge.net/">MediaInfo engine</a> which features the following improvements:</p>
<ul>
<li>AVC: Count of reference frames.</li>
<li>AU: Comments.</li>
<li>Some global speed improvement.</li>
<li>Id3v2: Unsynchronized frames support (v2.3 &amp; v2.4).</li>
<li>MKV: handling of files created for streaming.</li>
<li>MPEG-4: Handling of corrupted stream size info with some PCM streams.</li>
<li>DVD video: Hebrew patch ("iw" code is mapped to Hebrew).</li>
<li>MPEG-4: better handling of bitrate mode (VBR or CBR).</li>
<li>AVI: MediaInfo reads now the framerate value from the container rather than the stream value.</li>
<li>AC3: TrueHD detection.</li>
<li>MPEG-TS (or Bluray): VC-1, AC3+ and AC3 TrueHD detection.</li>
<li>AVC in MKV: all SEI userdata infos from x264/eavc in Writing library settings.</li>
<li>EVO: Better detection of duration.</li>
<li>Dirac: raw files parsing.</li>
<li>MPEG-TS: Dirac management.</li>
<li>MPEG-TS: DVB subtitles/Teletext management.</li>
<li>MPEG-4 Visual (DivX/XviD): writing library name was missing.</li>
<li>MPEG-Video: some DTS files with wrong extension were detected as MPEG-Video.</li>
<li>SWF: Compressed SWF files support is back.</li>
</ul>
<p>If you are an actual user, just launch the application and use the auto update feature, or you can get the latest version by visiting the official <a href="http://massanti.com/mediainfo/">MediaInfo Mac website</a>.</p>
<p>As usual, feel free to leave any comment or suggestion in here.</p>
<p>Enjoy <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/04/13/mediainfo-mac-07630-update-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sticked WordPress Theme, beta release.</title>
		<link>http://massanti.com/2008/04/12/sticked-wordpress-theme-beta-release/</link>
		<comments>http://massanti.com/2008/04/12/sticked-wordpress-theme-beta-release/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[Web &amp; Design]]></category>

		<category><![CDATA[sticked]]></category>

		<category><![CDATA[theme]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://massanti.com/?p=143</guid>
		<description><![CDATA[After a lot of work I'm happy to say that Sticked is ready!
Sticked is a WordPress theme that i had in mind since too many time ago, and now, i am sharing it with you all :).
Features

Customizable background and body textures. [Click here to see screenshot]
You can select from a bunch of available textures for [...]]]></description>
			<content:encoded><![CDATA[<p>After a lot of work I'm happy to say that Sticked is ready!</p>
<p>Sticked is a WordPress theme that i had in mind since too many time ago, and now, i am sharing it with you all :).</p>
<h3>Features</h3>
<ul>
<li><strong>Customizable background and body textures. <a rel="lightbox" href="http://massanti.com/wp-content/uploads/2008/04/picture-7.png">[Click here to see screenshot]</a></strong><br />
You can select from a bunch of available textures for both your page background and your main body background, you can even create your own if you feel like.</li>
<li><strong>Customizable colors for "Stickies". <a rel="lightbox" href="http://massanti.com/wp-content/uploads/2008/04/picture-6.png">[Click here to see screenshot]</a></strong><br />
Sticked will add a new setting in your admin UI, there you can select an specific color for each post.</li>
<li><strong>Compatible with most modern (and not so modern) browsers.</strong><br />
Sticked has been tested with the following browsers: </p>
<ul>
<li>Internet Explorer 6: 80% - <em>(Some minor image glitches due to the lack of support for PNG transparent images in this browser).</em></li>
<li>Internet Explorer 7 &amp; Internet Explorer 8: 100%.</li>
<li>Safari for Mac and Windows: 100%.</li>
<li>Opera 9 for Mac and Windows: 100%.</li>
<li>Firefox for Mac and Windows: 100%.</li>
</ul>
</li>
<li><strong>Styled blockquotes:</strong><br />
By using the <strong><em>&lt;blockquote&gt;</em></strong> tag, you can create specific boxes to highlight parts of your content, examples below: </p>
<blockquote><p>This text is enclosed between &lt;blockquote&gt;&lt;/blockquote&gt; html tags.</p></blockquote>
<blockquote class="mac"><p>This text is enclosed between &lt;blockquote class="mac"&gt;&lt;/blockquote&gt; html tags.</p></blockquote>
<blockquote class="warning"><p>This text is enclosed between &lt;blockquote class="warning"&gt;&lt;/blockquote&gt; html tags.</p></blockquote>
</li>
<li><strong>Proportional fonts:</strong><br />
Sticked uses proportional fonts, that means that the text size will be readable and consistent at any resolution, including big LCD screens.</li>
<li><strong>Widgets Ready:</strong><br />
Sticked is compatible with most WordPress sidebar widgets out there.</li>
</ul>
<h2><strong>Theme Downloads and Tools</strong></h2>
<p><a href="http://massanti.com/wp-content/uploads/2008/04/sticked.zip">CLICK HERE</a> to download the latest version (0.6) of <strong><em>Sticked</em></strong> for <em>WordPress</em> 2.5</p>
<p><a href="http://massanti.com/wp-content/uploads/2008/04/sticked_header.psd">CLICK HERE</a> to download a PSD (Photoshop) file containing a blank header.</p>
<p>Installation is like with any other WordPress Theme, just upload the contents of the zip file inside your wp-content/themes/ directory and you are done.</p>
<p>If you have any question or suggestion, feel free to leave a comment here.</p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/04/12/sticked-wordpress-theme-beta-release/feed/</wfw:commentRss>
		</item>
		<item>
		<title>8 random facts about myself</title>
		<link>http://massanti.com/2008/04/08/8-random-facts-about-myself/</link>
		<comments>http://massanti.com/2008/04/08/8-random-facts-about-myself/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[General Rants]]></category>

		<category><![CDATA[tagged]]></category>

		<guid isPermaLink="false">http://massanti.com/?p=135</guid>
		<description><![CDATA[Well, it looks like I got tagged. Here are the rules: 

Each player starts with eight random facts/habits about themselves.
People who are tagged need to write a post on their own blog (about their eight things) and post these rules.
At the end of your blog, you need to choose eight people to get tagged and list [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Well, it looks like I got <a href="http://drivel.disko.ath.cx/239">tagged</a>. Here are the rules: </p>
<ul>
<li>Each player starts with eight random facts/habits about themselves.</li>
<li>People who are tagged need to write a post on their own blog (about their eight things) and post these rules.</li>
<li>At the end of your blog, you need to choose eight people to get tagged and list their names.</li>
</ul>
</blockquote>
<ul>
<li>I like absurd humor movies, specially old ones like <em>The Pink Panther</em> series, almost anything from Peter Sellers, stupid things like "<em>The Naked Gun</em>", etc. I also enjoy quality love / history stories like "<em>Cinema Paradiso</em>" or "Somebody like You".</li>
<li>I enjoy sharing my skills with different people, and also learning from them, that makes me discover new things almost daily and meet new cool people all around the world.</li>
<li>I **AM** an addict to technology, specially computers and synthesizers.</li>
<li>I believe that the whole internet era changed the meaning of the word "Friend", I truly believe that you can feel "friendship" for people that you don't know in real life, that usually put me in terrible discussions with other people who seems to believe the contrary.</li>
<li>I am a person who likes good Wines and quality Food, i like to cook my own food and usually i like to invite friends to enjoy whatever i prepare.</li>
<li>Unless I am in a relationship with some girl, I´m usually a lonely person, maybe because I am more of a creative person, and creativity usually comes when you are relaxed and alone.</li>
<li>I do believe in <strong>love</strong> more than anything else, thats a fact.</li>
<li>I enjoy helping others as much as i can, I believe that it is a good way to feel realized about yourself.</li>
</ul>
<p>After all this rant about myself, I'm tagging the following <em>people</em>:</p>
<p><a href="http://thisismyinter.net">Zach</a> &amp; <a href="http://ignorantcow.net">Timothy</a>, sadly, most of my friends don't have blogs, so that's all :p</p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/04/08/8-random-facts-about-myself/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Stck&#8217;d, a new WordPress Theme for my blog.</title>
		<link>http://massanti.com/2008/04/06/stckd-new-wordpress-theme/</link>
		<comments>http://massanti.com/2008/04/06/stckd-new-wordpress-theme/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[Web &amp; Design]]></category>

		<category><![CDATA[theme]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://massanti.com/?p=128</guid>
		<description><![CDATA[Hi there, as you maybe noticed, I did a complete redesign of this blog and I am using for the first time a custom WordPress Theme that i have created from scratch.
This is my first ever WordPress Theme so i hope you like it  
The idea for Stck'd was to create a theme with [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Sticked Screenshot, take 2" rel="rokzoom[Sticked Screenshots]" href="http://massanti.com/wp-content/uploads/2008/04/stckd_screenshot.png"><img class="alignright size-thumbnail wp-image-133" style="float: right;" src="http://massanti.com/wp-content/uploads/2008/04/stckd_screenshot-150x150.png" alt="" width="150" height="150" /></a>Hi there, as you maybe noticed, I did a complete redesign of this blog and I am using for the first time a <strong>custom WordPress Theme</strong> that i have created from scratch.</p>
<p>This is my first ever WordPress Theme so i hope you like it <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The idea for Stck'd was to create a theme with some smooth visual elements while maintaining an <em>easy to the eyes</em> structure and focusing on the contents, instead of graphics.</p>
<p>It is on my plans to release this theme <strong>for free</strong> as soon as i finish fixing bugs, etc, so if you like it or you have any comment / suggestion, feel free to leave a comment in here, any feedback is appreciated.</p>
<blockquote>
<h3>April 7, some updates:</h3>
<h4>Per-post color selection:</h4>
<p>It is now possible to select the post-it color on a per post basis, just add a custom field called "color" to your post, and it will automagically change the paper color for said item. Available colors are:</p>
<ul>
<li>Cyan.</li>
<li>Green.</li>
<li>Pink.</li>
<li>Yellow.</li>
<li>Magenta.</li>
</ul>
<p style="text-align: center;"><a rel="rokzoom[Sticked Screenshots]" title="Adding a custom color field in the WordPress admin UI" href="http://massanti.com/wp-content/uploads/2008/04/stckd_color_selection.png"><img class="aligncenter size-medium wp-image-134" title="Stck\'d for WordPress color selection" src="http://massanti.com/wp-content/uploads/2008/04/stckd_color_selection-300x156.png" alt="Adding a custom color field for a post." width="300" height="156" /></a></p>
<h4>Stck'd is now compatible with the following browsers:</h4>
<ul>
<li>Internet Explorer 6.</li>
<li>Internet Explorer 7.</li>
<li>Internet Explorer 8.</li>
<li>Opera 9 for Windows and Mac.</li>
<li>Safari 2 and Safari 3 for Windows and Mac.</li>
<li>Firefox 2 and Firefox 3 for Windows and Mac.</li>
<li><strong>Stck'd </strong><a href="http://browsershots.org/http://massanti.com/"><strong>renders 100% perfect in more than 50 linux / windows / mac / BSD browsers</strong></a> <img src='http://massanti.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
</blockquote>
<p>// Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/04/06/stckd-new-wordpress-theme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>bbPress, an amazing platform for forums and message boards!</title>
		<link>http://massanti.com/2008/04/05/bbpress-an-amazing-platform-for-forums-and-message-boards/</link>
		<comments>http://massanti.com/2008/04/05/bbpress-an-amazing-platform-for-forums-and-message-boards/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[General Rants]]></category>

		<category><![CDATA[Web &amp; Design]]></category>

		<category><![CDATA[bbpress]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://massanti.com/?p=125</guid>
		<description><![CDATA[In the past days, i have been working on the design and development of a new "community like" website. Since the main purpose of this site is to inform fans of a rock band about tour dates, news, events, etc, WordPress was my CMS of choice for the backend (on top of that, i have [...]]]></description>
			<content:encoded><![CDATA[<p>In the past days, i have been working on the design and development of a new "community like" website. Since the main purpose of this site is to inform fans of a rock band about tour dates, news, events, etc, <a href="http://wordpress.org">WordPress</a> was my CMS of choice for the backend (on top of that, i have been waiting a lot to have a chance to learn the WordPress Theme API), but the real problem showed up when i had to choose what forum software i was going to use.</p>
<p>At first, i started by using <a href="http://phpbb.com">phpbb3</a>, which is great, but even the fact that there are some <a href="http://wp-united.com">WordPress integration solutions</a>, etc, i had to hack a lot the integration code, and it wasn't really working as tight as i wanted to... and then.... i found <a href="http://bbpress.org">bbPress</a>!.</p>
<p>bbPress is a fairly young forum software developed by the same guys in charge of the WordPress codebase, it is not only a pleasure to work with it, but it is also a pleasure to modify it to fit your needs. It uses a templating engine almost 100% identical to the one on WordPress, it integrates seamlessly with WordPress, and, on top of that, it is fast as hell, what more could you ask for ? <img src='http://massanti.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>If you are curious enough, <a href="http://vampweek.com/forums/">you can take a look</a> at how things are looking so far, keep in mind that this is still work in progress <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/04/05/bbpress-an-amazing-platform-for-forums-and-message-boards/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Some CSS explanations&#8230;</title>
		<link>http://massanti.com/2008/04/05/some-css-explanations/</link>
		<comments>http://massanti.com/2008/04/05/some-css-explanations/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[General Rants]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[irc]]></category>

		<guid isPermaLink="false">http://massanti.com/?p=124</guid>
		<description><![CDATA[Another big moment from #CSS on freenode :p
 [Riyonuk] does list-style-type go on ul or li?
[reisio] Riyonuk: either, but ul is a better idea
[Riyonuk] why?
[reisio] ...and I use 'list-style'
[reisio] because ul applies to the ul and the li's within it
[reisio] li only applies to the li's
[Riyonuk] but the ul itself doesn't have bullets
[Riyonuk] the li's [...]]]></description>
			<content:encoded><![CDATA[<p>Another big moment from #CSS on freenode :p</p>
<p><code> [Riyonuk] does list-style-type go on ul or li?<br />
[reisio] Riyonuk: either, but ul is a better idea<br />
[Riyonuk] why?<br />
[reisio] ...and I use 'list-style'<br />
[reisio] because ul applies to the ul and the li's within it<br />
[reisio] li only applies to the li's<br />
[Riyonuk] but the ul itself doesn't have bullets<br />
[Riyonuk] the li's have bullets<br />
[reisio] that's moot<br />
[Riyonuk] how so?<br />
[reisio] for the same reason saying 'guys don't have breasts' is moot<br />
[Riyonuk] not really<br />
[reisio] guys do have breasts<br />
[reisio] they just don't usually have mammory glands<br />
[Riyonuk] ok, how did we go from css bullet propertys to male breasts ]_]<br />
[reisio] you asked :p<br />
[reisio] breast plate?<br />
[reisio] it's basically just the top of your chest<br />
[reisio] female boob fun realm just happens to coincide there<br />
[reisio] so it's become fairly synonymous<br />
[Riyonuk] I'm just gonna add list-style-type to ul<br />
[Riyonuk] ._.<br />
[Riyonuk] I remmeber when were young, and every saturday after school, we'd go down to the beach, and I'd throw sand in your eyes<br />
[reisio] yeah that was fun and lame<br />
[Riyonuk] crap, wrong channel<br />
[Riyonuk] XD</code></p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/04/05/some-css-explanations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Easy way to get root privileges, part 1.</title>
		<link>http://massanti.com/2008/03/28/irc-laughs/</link>
		<comments>http://massanti.com/2008/03/28/irc-laughs/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 19:05:18 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[General Rants]]></category>

		<category><![CDATA[hacker]]></category>

		<category><![CDATA[hosting]]></category>

		<category><![CDATA[irc]]></category>

		<category><![CDATA[laugh]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://massanti.com/2008/03/28/irc-laughs/</guid>
		<description><![CDATA[Some hours ago i was asking for some help at the IRC channel of a really large hosting company. The IRC channel is not an official support channel for this company, but some admins and company staff are kind enough to be there in order to help people, etc.
And well, the following took place. Keep [...]]]></description>
			<content:encoded><![CDATA[<p>Some hours ago i was asking for some help at the IRC channel of a really large hosting company. The IRC channel is not an official support channel for this company, but some admins and company staff are kind enough to be there in order to help people, etc.<br />
And well, the following took place. Keep in mind that i have replaced both real nicknames and also any occurence of the company name for the sake of privacy.<br />
Enjoy <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><code>[RandomKid] By the way, the cookies **Hosting Company** use are no good <img src='http://massanti.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
[RandomKid] anther time why, I think they can be poisioned.<br />
[RandomKid] Will try safari now.<br />
[HostingCompanyGuy] why not just bookmark your control panel?<br />
[HostingCompanyGuy] <strong>RamdonKid: weren't you the same person that thought you could get root access to a server just because of an "insecure" upload form?</strong><br />
[RandomKid] hmmm good idea<br />
[DiegoMax] ...<br />
* <strong>RandomKid doesn't think, me knows.</strong><br />
[HostingCompanyGuy] lol<br />
[HostingCompanyGuy] still waiting for you to show me how<br />
[DiegoMax] kids....</code><span id="more-123"></span><br />
<code>[RandomKid] HostingCompanyGuy, if you don't think this is possible, run a search on google of how image can be exploited to deface serveres. Its an old trick, and there are actually ready made scripts for kidz that still do it.<br />
[DiegoMax] RandomKid, you really have no idea about what you are talking about, sorry man.<br />
[HostingCompanyGuy] RandomKid: you're confusing "servers" with "websites"<br />
[RandomKid] Not at all.<br />
[HostingCompanyGuy] so please show me this old trick in action, then<br />
[RandomKid] You can upload a one file php file that acts like a server.<br />
[HostingCompanyGuy] then how do you execute it?<br />
[RandomKid] It all depends fcouse of what access you set/have on the server.<br />
* HostingCompanyGuy sighs<br />
[DiegoMax] and you are assuming then that the admins on a large hosting company are assholes ?<br />
[HostingCompanyGuy] your example was that you could gain root access to rlparker's server because of the script he was running<br />
[RandomKid] They simply need to call http://victimesite/images/fakeimage.php.gif<br />
[RandomKid] it will run the php file which is a server script.<br />
[RandomKid] n rlparkers site I would do something else <img src='http://massanti.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
[HostingCompanyGuy] that's not true, RandomKid<br />
[RandomKid] Whats not true?<br />
[DiegoMax] but even if you get to run the php script, how you get root access ?<br />
[HostingCompanyGuy] you can't execute a script that way<br />
[RandomKid] If you giv me 30 min, I would providely living examples.<br />
[RandomKid] Yes you can.<br />
[HostingCompanyGuy] i'll give you an example right now<br />
[HostingCompanyGuy] of it *not* working<br />
[RandomKid] It works fine <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[HostingCompanyGuy] http://nevr.net/test.php.gif<br />
[HostingCompanyGuy] give that a shot<br />
[HostingCompanyGuy] let me know how it executes for you<br />
[HostingCompanyGuy] oh wait, IT DOESN'T<br />
[brandoe] lol<br />
[DiegoMax] lol<br />
[HostingCompanyGuy] good try though, you elite hacker, you.<br />
[RandomKid] http://yes.as/dh.gif<br />
[RandomKid] only wors on IE...<br />
[HostingCompanyGuy] lol<br />
[HostingCompanyGuy] dude.. that's HTML<br />
[HostingCompanyGuy] not actual code that you can execute<br />
[RandomKid] DO we have a bet here?<br />
[RandomKid] <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
* DiegoMax is saving this discussion for the laguhs book<br />
[HostingCompanyGuy] good luck rooting a server with HTML<br />
[RandomKid] If I am going to spend 30-60 min on showing you how an image can be exploited with a php script.<br />
[HostingCompanyGuy] your browser has *nothing* to do with how code executes on the server<br />
[HostingCompanyGuy] your browser just *renders* information<br />
[RandomKid] That was a joke.<br />
[brandoe] RandomKid, HostingCompanyGuy has yummy cookies for you<br />
[HostingCompanyGuy] no it wasn't<br />
[RandomKid] and its client side.<br />
[HostingCompanyGuy] you just got owned.<br />
[rawrly] your browser just *renders* information<br />
[DiegoMax] client side, interesting<br />
[DiegoMax] so you getting root to your own machine then ?<br />
[RandomKid] IE brwoser side<br />
[DiegoMax] i see, you're hacking yourself<br />
[RandomKid] in olddays you could even run a cframe via IE...<br />
[RandomKid] That was fun <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[HostingCompanyGuy] oh my god<br />
[HostingCompanyGuy] just stop<br />
[HostingCompanyGuy] you're done.<br />
[RandomKid] ?<br />
[RandomKid] Didnt do nothing.<br />
[HostingCompanyGuy] yeah. that's my entire point.<br />
[RandomKid] And wil ot do anything unless explicitly requested...<br />
[RandomKid] And paid <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[HostingCompanyGuy] i'll keep that in mind when i need someone to hack a server in the future<br />
[HostingCompanyGuy] since you've already demonstrated your elite skillz<br />
[RandomKid] A php in cmbination with image can be used to take over servers.<br />
[HostingCompanyGuy] okay <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[RandomKid] I didnt demonstarte anything.<br />
[HostingCompanyGuy] i know <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[RandomKid] god <img src='http://massanti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[HostingCompanyGuy]<br />
[RandomKid] good<br />
[RandomKid] If you want CV, I can provide you a nice one.<br />
[RandomKid] But I am not a hacker<br />
[HostingCompanyGuy] obviously<br />
[DiegoMax] thats obvious.<br />
[RandomKid] nor a cracker.</code></p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/03/28/irc-laughs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mi buenos aires querido</title>
		<link>http://massanti.com/2008/03/13/mi-buenos-aires-querido/</link>
		<comments>http://massanti.com/2008/03/13/mi-buenos-aires-querido/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 00:57:21 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[pictures]]></category>

		<category><![CDATA[buenos aires]]></category>

		<guid isPermaLink="false">http://massanti.com/2008/03/13/mi-buenos-aires-querido/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://massanti.com/wp-content/uploads/2008/03/mi_buenos_aires_querido.jpg" alt="Mi Buenos Aires Querido" /></p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/03/13/mi-buenos-aires-querido/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iPhone&#8217;s &#8220;Code Signing&#8221;: Is there any limit for the ridiculous ?</title>
		<link>http://massanti.com/2008/03/09/iphone-code-signing-thoughts/</link>
		<comments>http://massanti.com/2008/03/09/iphone-code-signing-thoughts/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 11:45:52 +0000</pubDate>
		<dc:creator>Diego Massanti</dc:creator>
		
		<category><![CDATA[Apple / Macintosh]]></category>

		<category><![CDATA[Computers &amp; Tech]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[freedom]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[ridiculous]]></category>

		<category><![CDATA[SDK]]></category>

		<category><![CDATA[signing]]></category>

		<guid isPermaLink="false">http://massanti.com/2008/03/09/iphone-code-signing-thoughts/</guid>
		<description><![CDATA[Some hours ago i was pointed to an interesting post about the new "code signing" features that Apple is going to implement for the iPhone software developers, and honestly, I am speechless...
There was a time when i used to believe that there was a good reason for Apple to be so closed in some aspects: [...]]]></description>
			<content:encoded><![CDATA[<p>Some hours ago i was pointed to an <a href="http://www.rogueamoeba.com/utm/2008/03/07/code-signing-and-you/">interesting post about the new "code signing" features</a> that Apple is going to implement for the iPhone software developers, and honestly, I am speechless...<br />
There was a time when i used to believe that there was a <strong>good</strong> reason for Apple to be so closed in some aspects: <em>To keep the user experience as clean and smooth as possible.</em><br />
That could explain several behaviors in the iTunes Music Store, in the iPod and of course in the whole Mac platform, but after reading several times this <a href="http://www.rogueamoeba.com/utm/2008/03/07/code-signing-and-you/">great article at Rogue Amoeba's blog</a>, just one thing comes to my mind... <em>"is there any limit ?"</em>.</p>
<p>I still can't believe the fact that it is just <strong>NOT</strong> possible to load an application inside an iPhone unless it's <em>blessed</em> (read: digitally signed) by Apple, and yes, you read it right, <strong>not even for testing purposes</strong>, which means that if you want to start writing some code for the iPhone, you have to a) buy a <strong>$99</strong> testing certificate, and b) buy an extra iPhone compatible with that extra certificate.<br />
But the story continues....</p>
<p>Apple seems to have a list of things that they are not going to <em>bless</em>, like for example Porn, or "Bandwidth Hog" applications, and there is also the "unforeseen" category, which translated to plain English means "anything that we don't like at all or we consider bad for our business model".</p>
<p>I happen to believe that protecting the user experience as much as you can is a good thing, and that is mainly the reason because Mac OS is more enjoyable than any other OS out there, no discussion there, but when a company starts telling me what I am allowed to run <strong>(or not)</strong> on a device that i <strong>OWN</strong>, I think that something is really wrong. In my particular case, I don't own an iPhone (and not even planning to own one, mostly because I use Nextel, and I wouldn't change it for anything), for the contrary i own a Motorola headset, and i can load any application on it, or even write my own if I feel like.</p>
<p>No matter how much I love Apple and their products, I think that freedom of choice is one of the most valuable things that our society must protect, and while I read a lot of forum / blog posts by the so called <em>"Apple fanboys"</em> saying things like <em>"if you don't like it, don't buy it"</em> I just don't want to believe what could happen if a company with this way of thinking becomes the market leader.</p>
<p>I have yet to see the evolution of this whole thing, but right now this just makes me re-think if some other <em>eternally blamed</em> companies are really sooooo evil after all...</p>
]]></content:encoded>
			<wfw:commentRss>http://massanti.com/2008/03/09/iphone-code-signing-thoughts/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
