<?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>Lotti&#039;s DevLog</title>
	<atom:link href="http://lotti.netsons.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://lotti.netsons.org</link>
	<description>Studies and Experiments</description>
	<lastBuildDate>Sun, 01 Nov 2009 20:17:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>hackme!</title>
		<link>http://lotti.netsons.org/2009/11/hackme/</link>
		<comments>http://lotti.netsons.org/2009/11/hackme/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 11:54:46 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=115</guid>
		<description><![CDATA[download
hackme is a test-program: i figured out a way to protect variables from hacking and now i need some tester  
the program is really simple: 1 dynamic text, 1 buttons.
the dynamic text contains the output of the variable.
the &#8220;update&#8221; button refresh the dynamic text with the content of the variable.
you (the hacker) have to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lotti.netsons.org/files/hackme.zip">download</a></p>
<p>hackme is a test-program: i figured out a way to protect variables from hacking and now i need some tester <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>the program is really simple: 1 dynamic text, 1 buttons.<br />
the dynamic text contains the output of the variable.<br />
the &#8220;update&#8221; button refresh the dynamic text with the content of the variable.</p>
<p>you (the hacker) have to hack my variable (with cheatengine, for example) injecting &#8220;1337&#8243; value in the variable, then press &#8220;update&#8221; button <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
obviously, hack the dynamic text doesn&#8217;t mean hack my variable.</p>
<p>send comments or opinion to lotti *A.T* fastwebnet *D.O.T* it or reply to this post</p>
<p>thanks.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2009%2F11%2Fhackme%2F&amp;linkname=hackme%21"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2009/11/hackme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery: igoogle box-set like script</title>
		<link>http://lotti.netsons.org/2009/09/igoogle-box-set-like-script/</link>
		<comments>http://lotti.netsons.org/2009/09/igoogle-box-set-like-script/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 07:47:01 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Various]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Js]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=79</guid>
		<description><![CDATA[hello world! (sounds familiar..)
lr1 parser is complete! woooah. it takes me 3 weeks of work and now i will have a printed permanent smile on my face for at least 1 month. well i will post source codes, but not for now  .
today i&#8217;d like to show you a nice work made with jquery, [...]]]></description>
			<content:encoded><![CDATA[<p>hello world! (sounds familiar..)</p>
<p>lr1 parser is complete! woooah. it takes me 3 weeks of work and now i will have a printed permanent smile on my face for at least 1 month. well i will post source codes, but not for now <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>today i&#8217;d like to show you a nice work made with <a href="http://www.jquery.com/">jquery</a>, a powerful javascript library that i discovered two days ago.</p>
<p>This is a tutorial that will show how to make a simple but nice customizable blocks-made interface/homepage, with jquery. the script is based on <a href="http://www.shopdev.co.uk/blog/sortable-lists-using-jquery-ui/">this other tutorial</a>.</p>
<p>Here it is the demo: <a href="http://lotti.netsons.org/jquery/lotti-block.html">http://lotti.netsons.org/jquery/lotti-block.html</a><br />
how to use the demo: you will see 6 blocks. click on the wrench to enter customization mode, a dialog will appear. click on every boxes&#8217; icon (click and drag to move blocks with 4 arrow cross) and customize your layout. save or restore states/order/everything if you don&#8217;t like the customization.</p>
<p>features:</p>
<ul>
<li>movable blocks</li>
<li>closable blocks</li>
<li>minimizable blocks</li>
<li>save blocks&#8217; state and order into cookies</li>
</ul>
<p>let&#8217;s start with the html template.</p>
<p>build your html layout.. with divs! made 1 or 2 or 3 or how many you need div &#8220;columns&#8221;. i&#8217;ll choose 3. then, you have to put inside each columns some divs that will be acting as boxes with some simply css commands.</p>
<p>here it is my example [remember to include always jquery library, jquery cookie plugin, jquery ui theme script and of course, my script (lotti-block)]<br />
there is also a css example for people that doesn&#8217;t know how to make divs act as blocks</p>
<p><a href="http://lotti.netsons.org/wp-content/demo.zip">download the demo files!</a></p>
<pre class="brush: xml;">
&lt;html&gt;
 &lt;head&gt;&lt;title&gt;Demo&lt;/title&gt;
 &lt;link type=&quot;text/css&quot; href=&quot;css/demo/jquery-ui-1.7.2.demo.css&quot; rel=&quot;stylesheet&quot; /&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.cookie.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-ui-1.7.2.demo.min.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;js/lotti-block.js&quot;&gt;&lt;/script&gt;
 &lt;style&gt;
 #left { width: 20%; float:left; }
 #center { width: 58%; float: left; margin-right:1%; margin-left:1%; }
 #right { width: 20%; float:right; }
 .box { background-color:#eef3f8; border:1px solid #d5dde5; border-bottom:4px solid #d5dde5; padding:10px; margin-bottom:15px; overflow:hidden; }
 .box h3{ background:#d5dde5; color:#1d3652 }
 .portlet-header .ui-icon { float: right; }
 .placeholder { border: 1px dotted black; visibility: visible !important; background-color: #0066CC; color: #FFFFFF; font-weight: bold; }
 .placeholder * { visibility: hidden; }
 .ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 100px !important; }
 .ui-sortable-placeholder * { visibility: hidden; }
 &lt;/style&gt;
 &lt;/head&gt;
 &lt;body&gt;

&lt;div id=&quot;customize-dialog&quot; title=&quot;Reset Layout Page&quot;&gt;
&lt;p&gt;Now you can customize your page.&lt;br /&gt; Move boxes from column to another, minimize/close them or get back to default settings by clicking on these buttons:&lt;/p&gt;
&lt;/div&gt;

&lt;div id=&quot;left&quot;&gt;
 &lt;div align=&quot;center&quot;&gt;PLACEHOLDER&lt;/div&gt;
 &lt;div id=&quot;b1&quot;&gt;&lt;h3&gt;Block 1&lt;/h3&gt;
 &lt;div&gt;Block 1&lt;/div&gt;
 &lt;/div&gt;
 &lt;div id=&quot;b2&quot;&gt;&lt;h3&gt;Block 2&lt;/h3&gt;
 &lt;div&gt;Block 2&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;center&quot; &gt;
 &lt;div align=&quot;center&quot;&gt;PLACEHOLDER&lt;/div&gt;
 &lt;div id=&quot;b3&quot;&gt;&lt;h3&gt;Block 3&lt;/h3&gt;
 &lt;div&gt;Block 3&lt;/div&gt;
 &lt;/div&gt;
 &lt;div id=&quot;b4&quot;&gt;&lt;h3&gt;Block 4&lt;/h3&gt;
 &lt;div&gt;Block 4&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;right&quot; &gt;
 &lt;div align=&quot;center&quot;&gt;PLACEHOLDER&lt;/div&gt;
 &lt;div id=&quot;b5&quot;&gt;&lt;h3&gt;Block 5&lt;/h3&gt;
 &lt;div&gt;Block 5&lt;/div&gt;
 &lt;/div&gt;
 &lt;div id=&quot;b6&quot;&gt;&lt;h3&gt;Block 6&lt;/h3&gt;
 &lt;div&gt;Block 6&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;

 &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>ok. now let&#8217;s examine this page. every column (they have IDs: left, center and right) must have the class identifier &#8220;sortable&#8221; and each block must have a different ID (in this example from b1 to b6). then placeholder divs (class=&#8221;placeholder&#8221;) blocks are used only to facilitate boxes drag&#8217;n'drop inside each column.<br />
Every box have some special class that are: customizer, movable, minimizable, closable. each of those words adds an ability to the block. There must be at least 1 customizer (and preferably it doesn&#8217;t have to be closeable). you can use every combinations of those class identifier.</p>
<p>Then, a box is defined, as you can see, by this code (for example, i took the last block)</p>
<pre class="brush: xml;">
&lt;div id=&quot;b3&quot;&gt;&lt;h3&gt;Block 3&lt;/h3&gt;
 &lt;div&gt;Block 3&lt;/div&gt;
 &lt;/div&gt;
</pre>
<p>REMEMBER! there must be a tag with class identifier &#8220;portlet-header&#8221; (i used h3 but it could be a div too) and another tag (preferably a div) with class identifier &#8220;portlet-content&#8221;</p>
<p>there is a &#8220;dialog&#8221; div too (it will act as a dialog box) that will appear when the customizer icon is clicked. it contains buttons to save or restore the homepage configuration/style.</p>
<p>now let&#8217;s see something about the js code</p>
<pre class="brush: jscript;">
//configurable variables
var cookiename='demo';
var cookie_options = { path: '/', expires: 10 };

function resetCookie() //delete cookie
{
jQuery.cookie(cookiename, null, cookie_options);
}

function resetCookieState() //delete only blocks' states from cookie
{
var cookie = jQuery.cookie(cookiename);
if (!cookie) return;

var cookie=cookie.split(&amp;amp;quot;|&amp;amp;quot;);

var savedBlocks = cookie[0];
var savedState = cookie[1];

jQuery.cookie(cookiename, savedBlocks+'|', cookie_options);
}

function resetCookieOrder() //delete only blocks' order from cookie
{
var cookie = jQuery.cookie(cookiename);
if (!cookie) return;

var cookie=cookie.split(&amp;amp;quot;|&amp;amp;quot;);

var savedBlocks = cookie[0];
var savedState = cookie[1];

jQuery.cookie(cookiename, '|'+savedState, cookie_options);
}

function getCookie() //read the cookie and restore blocks' order and states
{
var cookie = jQuery.cookie(cookiename);
if (!cookie) return;

var cookie=cookie.split(&amp;amp;quot;|&amp;amp;quot;);

var savedBlocks;
var savedStates;

if (cookie[0]) savedBlocks = cookie[0];
if (cookie[1]) savedStates = cookie[1];

//order
if (savedBlocks)
{

        var orders = savedBlocks.split(&amp;amp;quot;;&amp;amp;quot;);

//below you need to be replace with your columns id!!
        jQuery(&amp;amp;quot;#left&amp;amp;quot;).sortable('toArray');
        jQuery(&amp;amp;quot;#center&amp;amp;quot;).sortable('toArray');
        jQuery(&amp;amp;quot;#right&amp;amp;quot;).sortable('toArray');

//here too!!
        if(orders[0]) restoreOrder('#left',orders[0]);
        if(orders[1]) restoreOrder('#center',orders[1]);
        if(orders[2]) restoreOrder('#right',orders[2]);
  }

//states
if (savedStates)
{
        var states = savedStates.split(&amp;amp;quot;,&amp;amp;quot;);
        var blocks_id = new Array();
        var blocks_state = new Array();
        var i=0;
        for (i=0; i&lt;states.length; i++)
        {
            var temp = states[i].split(&amp;amp;quot;=&amp;amp;quot;);
            blocks_id[i]=temp[0];
            blocks_state[i]=temp[1];
        }

        for (i=0; i&lt;states.length; i++)
        {
        	 var item=blocks_id[i];
        	 var state=blocks_state[i];
           if (state==1)
             jQuery(&amp;amp;quot;#&amp;amp;quot;+item).find(&amp;amp;quot;.portlet-content&amp;amp;quot;).hide();
           else if (state==2)
             jQuery(&amp;amp;quot;#&amp;amp;quot;+item).hide();
        }
   }
}

function setCookie() //save the blocks' order and states inside a single cookie
{
  var s=&amp;amp;quot;&amp;amp;quot;;
  var i=0;
  var n=0;

 //order
//below you need to be replace with your columns id!!
        if (jQuery(&amp;amp;quot;#left&amp;amp;quot;).sortable('toArray')!=&amp;amp;quot;undefined&amp;amp;quot;)		s+=jQuery(&amp;amp;quot;#left&amp;amp;quot;).sortable('toArray')+&amp;amp;quot;;&amp;amp;quot;
if (jQuery(&amp;amp;quot;#center&amp;amp;quot;).sortable('toArray')!=&amp;amp;quot;undefined&amp;amp;quot;)		s+=jQuery(&amp;amp;quot;#center&amp;amp;quot;).sortable('toArray')+&amp;amp;quot;;&amp;amp;quot;
if (jQuery(&amp;amp;quot;#right&amp;amp;quot;).sortable('toArray')!=&amp;amp;quot;undefined&amp;amp;quot;)		s+=jQuery(&amp;amp;quot;#right&amp;amp;quot;).sortable('toArray')+&amp;amp;quot;;&amp;amp;quot;

  s=s.substr(0,s.length-1);

  s+='|';

  //states
  			var blocks_minimized = new Array();
  			var blocks_closed = new Array();

  			n=jQuery('.portlet-content:hidden').size();
  			for (i=0; i&lt;n; i++)
     			s+=jQuery('.portlet-content:hidden').eq(i).parent('.minimizable').attr('id')+&amp;amp;quot;=1,&amp;amp;quot;;

  			n=jQuery('.closable:hidden').size();
  			for (i=0; i&lt;n; i++)
    			s+=jQuery('.closable:hidden').eq(i).attr('id')+&amp;amp;quot;=2,&amp;amp;quot;;

  if (n!=0) s=s.substr(0,s.length-1);

  if (s.length&gt;0) jQuery.cookie(cookiename, s, cookie_options);
  else jQuery.cookie(cookiename, null);
}

function restoreOrder(list,order)  //restore blocks' order for each column
{
var list = jQuery(list);
if (list == null) return

// make array from saved order
var IDs = order.split(&amp;amp;quot;,&amp;amp;quot;);

for (var i = 0, n = IDs.length; i&lt;n; i++)
        {
var item = IDs[i];

 	   // select the item from the proper column
var child = jQuery(&amp;amp;quot;div.ui-sortable&amp;amp;quot;).children(&amp;amp;quot;#&amp;amp;quot; + item);

// make a copy of the item
var savedOrd = jQuery(&amp;amp;quot;div.ui-sortable&amp;amp;quot;).children(&amp;amp;quot;#&amp;amp;quot; + item);

// remove the original item
child.remove();

           //insert the copy inside the ordered column
jQuery(list).append(savedOrd);
}
}

function removeButtons() //remove cutomization buttons
{
jQuery(&amp;amp;quot;.ui-icon-newwin&amp;amp;quot;).replaceWith('');
jQuery(&amp;amp;quot;.ui-icon-arrow-4&amp;amp;quot;).replaceWith('');
jQuery(&amp;amp;quot;.ui-icon-power&amp;amp;quot;).replaceWith('');
}

function addButtons() //adds customization buttons and actions
{
removeButtons();
jQuery(&amp;amp;quot;.minimizable&amp;amp;quot;).find(&amp;amp;quot;.portlet-header&amp;amp;quot;).append('&lt;span class=&amp;amp;quot;ui-icon ui-icon-newwin&amp;amp;quot;&gt;&lt;/span&gt;')
jQuery(&amp;amp;quot;.movable&amp;amp;quot;).find(&amp;amp;quot;.portlet-header&amp;amp;quot;).append('&lt;span class=&amp;amp;quot;ui-icon ui-icon-arrow-4&amp;amp;quot;&gt;&lt;/span&gt;')
jQuery(&amp;amp;quot;.closable&amp;amp;quot;).find(&amp;amp;quot;.portlet-header&amp;amp;quot;).append('&lt;span class=&amp;amp;quot;ui-icon ui-icon-power&amp;amp;quot;&gt;&lt;/span&gt;')

jQuery(&amp;amp;quot;.minimizable&amp;amp;quot;).find(&amp;amp;quot;.portlet-header&amp;amp;quot;).find(&amp;amp;quot;.ui-icon-newwin&amp;amp;quot;).click(function() {
jQuery(this).parents(&amp;amp;quot;.minimizable&amp;amp;quot;).find(&amp;amp;quot;.portlet-content&amp;amp;quot;).toggle();
});

jQuery(&amp;amp;quot;.closable&amp;amp;quot;).find(&amp;amp;quot;.portlet-header&amp;amp;quot;).find(&amp;amp;quot;.ui-icon-power&amp;amp;quot;).click(function() {
                        jQuery(this).parents(&amp;amp;quot;.closable&amp;amp;quot;).hide();

});
}

function enableCustomization() //shows the dialog, the placeholders, makes columns item sortable and adds buttons
{
jQuery('#customize-dialog').dialog('open');
jQuery(&amp;amp;quot;.placeholder&amp;amp;quot;).show();
jQuery(&amp;amp;quot;.sortable&amp;amp;quot;).sortable({
    														handle: '.ui-icon-arrow-4',
    														tolerance: 'pointer',
items: '.movable',
    														connectWith: '.sortable',
    														update : function () { setCookie(); }
    										});
   											addButtons();
}

function disableCustomization() //remove buttons, set the cookie, hides the placeholders and block the columns
{
removeButtons();
   											setCookie();
jQuery(&amp;amp;quot;.placeholder&amp;amp;quot;).hide();
                				jQuery(&amp;amp;quot;.sortable&amp;amp;quot;).sortable('destroy');
}

jQuery(function() { //jQuery &amp;amp;quot;Main&amp;amp;quot;

jQuery('#customize-dialog').dialog({ //configure the dialog box
                         autoOpen: false, width: 400, buttons: {
                              &amp;amp;quot;Everything&amp;amp;quot;: function() { //reset to normal page layout
                                jQuery(this).dialog(&amp;amp;quot;close&amp;amp;quot;); //close the dialog
                                resetCookie(); //full reset
                                window.location.reload(); //refresh page to see changes
                              },
                              &amp;amp;quot;States&amp;amp;quot;: function() { //reset only the states
                                jQuery(this).dialog(&amp;amp;quot;close&amp;amp;quot;); //close the dialog
                                resetCookieState(); //partial reset, only states
                                window.location.reload(); //refresh page to see changes
                              },
                              &amp;amp;quot;Order&amp;amp;quot;: function() { //reset only the order
                                jQuery(this).dialog(&amp;amp;quot;close&amp;amp;quot;); //close the dialog
                                resetCookieOrder(); //partial reset, only order
                                window.location.reload(); //refresh page to see changes
                              },
                              &amp;amp;quot;Save&amp;amp;quot;: function() { //save state and order
                                jQuery(this).dialog(&amp;amp;quot;close&amp;amp;quot;);  //close the dialog
                              }
                         },
   											 close: function(event, ui) { disableCustomization(); } //every time the dialog is closed.. disableCustomization is launched!
                });

    jQuery('.placeholder').hide(); //hides the placeholders

jQuery('.customizer').find('.portlet-header').append('&lt;span class=&amp;amp;quot;ui-icon ui-icon-wrench&amp;amp;quot;&gt;&lt;/span&gt;') //adds the customization button on customizer boxes..

jQuery('.customizer').find('.portlet-header').find('.ui-icon-wrench').click(function() { //and add his action
enableCustomization();
});

jQuery('.sortable').sortable({ //instiate columns as sortable to fetch order from cookie
    				handle: '.ui-icon-arrow-4',
    				tolerance: 'pointer',
items: '.movable',
    				connectWith: '.sortable',
    });

 		getCookie(); //read the cookie

jQuery('.sortable').sortable( 'refresh' ) //refresh columns status
 		jQuery('.sortable').sortable('destroy'); //lock columns

});
</pre>
<p>well, i commented every function, i hope you will understand. if not, go to jQuery documentation or view the linked tutorials on top of this post.<br />
however, inside the cookie the order is save with strings like this: b1,b2;b3,b4;b5,b6 where the ; stands for &#8220;end of column&#8221; so it is most important to put ids in the correct order inside getCookie e setCookie functions. the blocks&#8217; state is saved like this: b1=1,b2=2,b4=1 where 1 stands for minimized and 2 for closed. no need to save &#8220;normal state&#8221; because we already have it by default (everytime you load the page, every is on default order/state). that&#8217;s all. hope you liked! feel free to ask questions!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2009%2F09%2Figoogle-box-set-like-script%2F&amp;linkname=jquery%3A%20igoogle%20box-set%20like%20script"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2009/09/igoogle-box-set-like-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RS232-TTL Logic converter :)</title>
		<link>http://lotti.netsons.org/2009/06/rs232-ttl-logic-converter/</link>
		<comments>http://lotti.netsons.org/2009/06/rs232-ttl-logic-converter/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 11:27:57 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Various]]></category>
		<category><![CDATA[DIY]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=71</guid>
		<description><![CDATA[Here it is the schema to make a rs232-ttl logic converter for general purpose. I used this schema to read the dvd key of my xbox 360. Quite easy to do and works perfectly. See you.

]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Here it is the schema to make a rs232-ttl logic converter for general purpose. I used this schema to read the dvd key of my xbox 360. Quite easy to do and works perfectly. See you.</p>
<p style="text-align: center;"><a href="http://lotti.netsons.org/wp-content/circuit_232.jpg"><img class="aligncenter size-full wp-image-72" title="RS232 to TTL" src="http://lotti.netsons.org/wp-content/circuit_232.jpg" alt="RS232 to TTL" width="392" height="299" /></a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2009%2F06%2Frs232-ttl-logic-converter%2F&amp;linkname=RS232-TTL%20Logic%20converter%20%3A%29"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2009/06/rs232-ttl-logic-converter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projects that kept (and keep) me busy in these months</title>
		<link>http://lotti.netsons.org/2009/05/projects-that-kept-and-keep-me-busy-in-these-months/</link>
		<comments>http://lotti.netsons.org/2009/05/projects-that-kept-and-keep-me-busy-in-these-months/#comments</comments>
		<pubDate>Tue, 12 May 2009 15:42:18 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Grammars]]></category>
		<category><![CDATA[Homebrews]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Publishing]]></category>
		<category><![CDATA[Various]]></category>
		<category><![CDATA[WWTBAFM]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=57</guid>
		<description><![CDATA[Hi everybody! I don&#8217;t know why i keep update this wordpress release but not post something new.. maybe i lack of inspiration or i just think that people don&#8217;t care (and me too). So, this is the first 2009 update, let&#8217;s start.

NeXtRL.it FanZine
I was six years old when i bought and read my first magazine, [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everybody! I don&#8217;t know why i keep update this wordpress release but not post something new.. maybe i lack of inspiration or i just think that people don&#8217;t care (and me too). So, this is the first 2009 update, let&#8217;s start.</p>
<ol>
<li>NeXtRL.it FanZine<br />
I was six years old when i bought and read my first magazine, console magazine, and now i&#8217;m a sort of publisher of a community-made magazine, the NeXtRL.it Fanzine (started on December 2008). <a href="http://issuu.com/lotti/docs" target="_blank">Here</a> are the published issues.<br />
I made a lot of experience with both amateur (publisher 2007) and professional (quarkxpress) press software and i studied some way to share works (the written articles) and simplify human interactions with a &#8220;nothing-can-go-wrong&#8221; module (see point (2)). Now i&#8217;m working on the third issue of the fanzine and i&#8217;d like to do it with adobe indesign (another pro app) because i didn&#8217;t enjoy my experience with quarkxpress &#8211; complicated also on easy tasks like pick the right tool from the panel and no color picker!</li>
<li>NeXtRL.it &#8211; Form to submit articles for the FanZine<br />
It&#8217;s a simple form with some javascript  that uses a validation engine (in javascript too) found on <a href="http://www.javascript-coder.com/html-form/javascript-form-validation.phtml" target="_blank">this tutorial</a>. People can enter various type of articles, filling in the different fields that the chosen type of article requires. Then they can modify, delete or send (to themselves or to publisher &#8211; me) their ready-to-print articles. Then the articles arrive on my google docs account so i can share them with my collaborators that check for grammar errors and i finally i can paginate the final articles.<br />
I made it with php, mysql and IPB API because nextrl.it uses IPB Forum. So here it is the <a href="http://www.nextrl.it/">link</a>, but you can&#8217;t access if you&#8217;re not logged in &#8211; and it&#8217;s all written in italian, too.<br />
Source code not available because i made it just for nextrl.it</li>
<li>NeXtRL.it &#8211; Tournament script<br />
Here, i enanched an old script that i made adhoc for nextrl.it a year ago. It was messy and hardcoded, now it&#8217;s more flexible and still a bit messy <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  I think i need to switch my php&#8217;s habits to OOP and start comment while (and not after) coding.<br />
Now the script can handle more than one tournament and of various type: ladders, points, victories. I rewritten quite the 95% of the code and it took me a week. <a href="http://www.nextrl.it/tourney/" target="_blank">This</a> is the link and, also there, you can&#8217;t access if you&#8217;re not logged in and it&#8217;s in italian too.<br />
Source code not available because i made it just for nextrl.it</li>
<li>Automata &amp; Languages: Cocke-Younger-Kasami Parser<br />
I made this parser in a month for university purpose. I will post and explain the code when i will pass the related exam, so <a href="http://en.wikipedia.org/wiki/CYK_algorithm">here </a>there are some info form wikipedia. Basically, i did a program that manipulate a context-free grammar to eliminate epsilon production, unit production, put it in chomsky normal form and last parse a word with CYK algorithm and say if it belong, or not, to the given grammar.<br />
Made with Java (instead of C++) for it&#8217;s wide library of string manipulation functions.</li>
<li>ns2/nsmiracle<br />
I started to study about my thesis: understand how ns2 and nsmiracle modules are written to implement specific ones. Next monday (the 18th of May 2009) i will know more about those modules.</li>
<li>WWTBAFM: new release?<br />
I though two times about release a new version of wwtbafm: two separated homebrew, one to play and the other to update questions. when i&#8217;ll have time and i will get my nds back i would give it a try, now that palibs are fixed to work with latest ndslib</li>
</ol>
<p>That&#8217;s all, let&#8217;s hope more updates soon <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>UPDATE: oh, well, i forgot to mention that i have also build a simple rs232-ttl interface to mod my x360. I will post schema and how-to on next post <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2009%2F05%2Fprojects-that-kept-and-keep-me-busy-in-these-months%2F&amp;linkname=Projects%20that%20kept%20%28and%20keep%29%20me%20busy%20in%20these%20months"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2009/05/projects-that-kept-and-keep-me-busy-in-these-months/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerSet Construction</title>
		<link>http://lotti.netsons.org/2008/07/powerset-construction/</link>
		<comments>http://lotti.netsons.org/2008/07/powerset-construction/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 09:59:45 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Grammars]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=54</guid>
		<description><![CDATA[well.. almost a year is passed from my last post.. :\ ugh. it must seems that i did nothing! while it&#8217;s quite true on the programming side.. it&#8217;s not so much true on life side. i just miss four exam, two apprenticeship and a thesis to get gratueted as IT engineer. So apart from my [...]]]></description>
			<content:encoded><![CDATA[<p>well.. almost a year is passed from my last post.. :\ ugh. it must seems that i did nothing! while it&#8217;s quite true on the programming side.. it&#8217;s not so much true on life side. i just miss four exam, two apprenticeship and a thesis to get gratueted as IT engineer. So apart from my wasted social life, here it is one of my last work: an algoritm to compute a generic powerset construction. I did it while i was studying something about grammars and languages. So here it is, the program in java <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Basically, a powerset construction it&#8217;s the set of all combinations of the items given, and the number of combinations is very simple to calculate: 2^x is the answer where x is the number of element to combine. well, after this we need to think how to pick the elements to write down all the combinations. we will have 2^x combinations starting from the empty set to the full elements set. but how to compute that on an easy way?<br />
that is the basic idea: 2^x is our number of combinations (ugh i said it about twenty-eight times..) that can pratically be represented by a binary number where every digit represent an element.. then now we have now to include (or exclude) an element if its representative digit is one or zero.</p>
<p>So we will have just four elements a,b,c,d and we start from the binary number &#8220;0000&#8243; (if we have 4 element to combine) and we will exclude all the elements (empty set, represented with &#8220;{}&#8221;). Then we just need to &#8220;add 1&#8243; (logically, in binary!) to get the next set: &#8220;0001&#8243; -> {a}, sum 1, &#8220;0010&#8243; -> {b}, sum 1 again, &#8220;0011&#8243; -> {a,b}, sum 1, &#8220;0100&#8243; -> {c}, &#8220;0101&#8243; -> {a,c}, &#8220;0110&#8243; -> {b,c}, &#8220;0111&#8243; -> {a,b,c}, and go on till have &#8220;1111&#8243; -> {a,b,c,d}.. now let&#8217;s put all togheter to make our powerset construction!</p>
<p>{};{a,};{b,};{a,b,};{c,};{a,c,};{b,c,};{a,b,c,};{d,};{a,d,};{b,d,};{a,b,d,};{c,d,};{a,c,d,};{b,c,d,};{a,b,c,d,}</p>
<p>So that is the result.. but it&#8217;s very simple and a bit odd.. because it isn&#8217;t not in the <em>standard </em>order.. maybe one day i will improve the algoritm including ordering. not that hard to do.</p>
<p>well, here it is the code <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  thank you for reading.</p>
<pre class="brush: java;">
import java.util.Scanner;
import java.util.StringTokenizer;

public class Powerset {

	private int num;
	private boolean save_parts;
	private String string;
	private String elements[];
	private boolean binary[];
	private String parts[];

	public Powerset()
	{
		num=0;
		string=&quot;&quot;;
		save_parts=false;
	}

	public void save_parts_on()
	{
		save_parts=true;
	}

	public void save_parts_off()
	{
		save_parts=false;
	}

	public void  insert_elements()
	{
		System.out.print(&quot;Please type in the elements separated by \&quot;|\&quot; symbol: &quot;);
		Scanner scanner = new Scanner(System.in);
		string=scanner.next(); //carico la stringa digitata
		StringTokenizer token = new StringTokenizer(string, &quot;|&quot;);
		int count = token.countTokens();
		elements = new String[count]; //dimensiono l'array degli elementi
		num=(int)Math.pow(2, count);
		if (save_parts) parts = new String[num];
		binary = new boolean[count]; //e quello dei valori binari

		count = 0;
		while (token.hasMoreTokens()) //prendo gli elementi uno ad uno e li assegno nel vettore
			elements[count++] = new String(token.nextToken());

		if (save_parts)
			for (count=0; count&lt;parts.length;count++) //azzero l'array parts
				parts[count]=&quot;&quot;;
		for (count=0; count&lt;binary.length;count++) //azzero l'array binary
			binary[count]=false;
	}

	private void get_parts()
	{
		int num,i,j;
		if (!save_parts) System.out.print(&quot;PowerSet Construction: &quot;);
		for (i=0; i&lt;this.num; i++)
		{
			if (save_parts) parts[i]=&quot;{&quot;;
			else System.out.print(&quot;{&quot;);
			num=i;
			for (j=0; j&lt;binary.length; j++)
			{
				if (num%2==1) binary[j]=true;
				else binary[j]=false;
				num=num/2;
			}

			for (j=0; j&lt;elements.length; j++)
			{
				if (binary[j]==true)
				{
					if (save_parts) parts[i]+=elements[j]+&quot;,&quot;;
					else System.out.print(elements[j]+&quot;,&quot;);
				}
			}
			if (save_parts) parts[i]+=&quot;}&quot;;
			else System.out.print(&quot;};&quot;);
		}
	}

	public void print_parts()
	{
		int i;

		if (save_parts)
		{

			System.out.print(&quot;PowerSet Construction: &quot;);
			//stampa le parti dell'insieme
			for (i=0; i&lt;parts.length; i++)			System.out.print(parts[i]+&quot;;&quot;);
		}
		else			get_parts();
	}	

	public static void main(String[] args)
	{
		Powerset  pippo = new Powerset();
		pippo.insert_elements();
		pippo.get_parts();
	}
}
</pre>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2008%2F07%2Fpowerset-construction%2F&amp;linkname=PowerSet%20Construction"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2008/07/powerset-construction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WWTBAFM now speaks DUTCH!</title>
		<link>http://lotti.netsons.org/2007/08/wwtbafm-now-speaks-dutch/</link>
		<comments>http://lotti.netsons.org/2007/08/wwtbafm-now-speaks-dutch/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 17:34:26 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Console]]></category>
		<category><![CDATA[Homebrews]]></category>
		<category><![CDATA[MancalaDS]]></category>
		<category><![CDATA[WWTBAFM]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=52</guid>
		<description><![CDATA[Do you remember YvanSoftware? He is a very nice guy and he did a basic question&#8217;s file in dutch for WWTBAFM! now we have a total of 6 languages! cool!
]]></description>
			<content:encoded><![CDATA[<p>Do you remember YvanSoftware? He is a very nice guy and he did a basic question&#8217;s file in dutch for WWTBAFM! now we have a total of 6 languages! cool!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2007%2F08%2Fwwtbafm-now-speaks-dutch%2F&amp;linkname=WWTBAFM%20now%20speaks%20DUTCH%21"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2007/08/wwtbafm-now-speaks-dutch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WWTBAFM: Internet updates doesn&#8217;t work any more :\</title>
		<link>http://lotti.netsons.org/2007/08/wwtbafm-internet-updates-doesnt-work-any-more/</link>
		<comments>http://lotti.netsons.org/2007/08/wwtbafm-internet-updates-doesnt-work-any-more/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 14:01:39 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Console]]></category>
		<category><![CDATA[Homebrews]]></category>
		<category><![CDATA[WWTBAFM]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=51</guid>
		<description><![CDATA[hi all. i don&#8217;t know why but the automatic questions update doesn&#8217;t work anymore. now i&#8217;ll spend time on that bug :\
]]></description>
			<content:encoded><![CDATA[<p>hi all. i don&#8217;t know why but the automatic questions update doesn&#8217;t work anymore. now i&#8217;ll spend time on that bug :\</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2007%2F08%2Fwwtbafm-internet-updates-doesnt-work-any-more%2F&amp;linkname=WWTBAFM%3A%20Internet%20updates%20doesn%26%238217%3Bt%20work%20any%20more%20%3A%5C"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2007/08/wwtbafm-internet-updates-doesnt-work-any-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WWTBAFM OQM &#8211; Offline Questions Manager :)</title>
		<link>http://lotti.netsons.org/2007/08/wwtbafm-oqm-offline-questions-manager/</link>
		<comments>http://lotti.netsons.org/2007/08/wwtbafm-oqm-offline-questions-manager/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 11:47:55 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Console]]></category>
		<category><![CDATA[Homebrews]]></category>
		<category><![CDATA[WWTBAFM]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=50</guid>
		<description><![CDATA[YvanSoftware is coding an offline questions writer for WWTBAFM! that&#8217;s very cool for who want to develop questions without access to internet. if you want to add the questions written with this software, you must email me the questions file, specifying the language, and i&#8217;ll add it to the database  
here it is the [...]]]></description>
			<content:encoded><![CDATA[<p>YvanSoftware is coding an offline questions writer for WWTBAFM! that&#8217;s very cool for who want to develop questions without access to internet. if you want to add the questions written with this software, you must email me the questions file, specifying the language, and i&#8217;ll add it to the database <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://yvansoftware.x10hosting.com/index.php?option=com_content&#038;task=view&#038;id=5&#038;Itemid=11">here it is the website of this nice project!</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2007%2F08%2Fwwtbafm-oqm-offline-questions-manager%2F&amp;linkname=WWTBAFM%20OQM%20%26%238211%3B%20Offline%20Questions%20Manager%20%3A%29"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2007/08/wwtbafm-oqm-offline-questions-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WWTBAFM v0.7</title>
		<link>http://lotti.netsons.org/2007/08/wwtbafm-v07/</link>
		<comments>http://lotti.netsons.org/2007/08/wwtbafm-v07/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 09:45:05 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Console]]></category>
		<category><![CDATA[Homebrews]]></category>
		<category><![CDATA[WWTBAFM]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=43</guid>
		<description><![CDATA[WWTBAFM v0.7 is out with a gfx! this is a temporary release, because sephzero will redesign the entire gfx and some animations will be added.
[change log]

it uses a gfx! wow!
play with the Stylus (keys are no more supported, exeption is Start)
the game now will check if you questions&#8217; file has more than 15 question without [...]]]></description>
			<content:encoded><![CDATA[<p>WWTBAFM v0.7 is out with a gfx! this is a temporary release, because sephzero will redesign the entire gfx and some animations will be added.</p>
<p>[change log]</p>
<ul>
<li>it uses a gfx! wow!</li>
<li>play with the Stylus (keys are no more supported, exeption is Start)</li>
<li>the game now will check if you questions&#8217; file has more than 15 question without freeze</li>
<li>added a menu</li>
</ul>
<p>Please add more questions! French and Spanish player still doesn&#8217;t have more than 5 questions for each difficulty!<br />
<center><br />
<a href='http://lotti.netsons.org/wp-content/screen1.jpg' title='WWTBAFM V0.7 (1)'><img src='http://lotti.netsons.org/wp-content/screen1.thumbnail.jpg' alt='WWTBAFM V0.7 (1)' /></a> <a href='http://lotti.netsons.org/wp-content/screen2.jpg' title='WWTBAFM V0.7 (2)'><img src='http://lotti.netsons.org/wp-content/screen2.thumbnail.jpg' alt='WWTBAFM V0.7 (2)' /></a> <a href='http://lotti.netsons.org/wp-content/screen3.jpg' title='WWTBAFM V0.7 (3)'><img src='http://lotti.netsons.org/wp-content/screen3.thumbnail.jpg' alt='WWTBAFM V0.7 (3)' /></a><br />
<a href='http://lotti.netsons.org/wp-content/screen4.jpg' title='WWTBAFM V0.7 (4)'><img src='http://lotti.netsons.org/wp-content/screen4.thumbnail.jpg' alt='WWTBAFM V0.7 (4)' /></a> <a href='http://lotti.netsons.org/wp-content/screen5.jpg' title='WWTBAFM V0.7 (5)'><img src='http://lotti.netsons.org/wp-content/screen5.thumbnail.jpg' alt='WWTBAFM V0.7 (5)' /></a> <a href='http://lotti.netsons.org/wp-content/screen6.jpg' title='WWTBAFM V0.7 (6)'><img src='http://lotti.netsons.org/wp-content/screen6.thumbnail.jpg' alt='WWTBAFM V0.7 (6)' /></a><br />
</center></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2007%2F08%2Fwwtbafm-v07%2F&amp;linkname=WWTBAFM%20v0.7"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2007/08/wwtbafm-v07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sourced Removed :\</title>
		<link>http://lotti.netsons.org/2007/08/sourced-removed/</link>
		<comments>http://lotti.netsons.org/2007/08/sourced-removed/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 09:59:30 +0000</pubDate>
		<dc:creator>Lotti</dc:creator>
				<category><![CDATA[Various]]></category>
		<category><![CDATA[WWTBAFM]]></category>

		<guid isPermaLink="false">http://lotti.netsons.org/?p=41</guid>
		<description><![CDATA[hi! i don&#8217;t know if you know what happen to DragonMinded DSOrganize but this forced me to remove all the source of my works (apart from PAFont that wasn&#8217;t a program of mine. i just upgraded the code   ). This doesn&#8217;t means that my works aren&#8217;t opensource because you can feel free to [...]]]></description>
			<content:encoded><![CDATA[<p>hi! i don&#8217;t know if you know what happen to <a href="http://dragonminded.blogspot.com/2007/08/my-work-stolen.html">DragonMinded DSOrganize</a> but this forced me to remove all the source of my works (apart from PAFont that wasn&#8217;t a program of mine. i just upgraded the code <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). This doesn&#8217;t means that my works aren&#8217;t opensource because you can feel free to ask me about source codes. I&#8217;ll be happy to share my knowledge with you.</p>
<p>WWTBAFM is under development and the &#8220;basic&#038;ugly&#8221; gfx is almost done. please come back later <img src='http://lotti.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Flotti.netsons.org%2F2007%2F08%2Fsourced-removed%2F&amp;linkname=Sourced%20Removed%20%3A%5C"><img src="http://lotti.netsons.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://lotti.netsons.org/2007/08/sourced-removed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
