<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>I want to be free</title>
	<link>http://i1t2b3.com</link>
	<description></description>
	<pubDate>Mon, 05 May 2008 21:13:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Phonetic won!</title>
		<link>http://i1t2b3.com/2008/05/05/phonetic-won/</link>
		<comments>http://i1t2b3.com/2008/05/05/phonetic-won/#comments</comments>
		<pubDate>Mon, 05 May 2008 21:12:51 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[development]]></category>

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

		<guid isPermaLink="false">http://i1t2b3.com/2008/05/05/phonetic-won/</guid>
		<description><![CDATA[Yes, my class Phonetic won the first place of the PHPClasses Innovation Award.
Thanks to everyone voted for me!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://a4.users.phpclasses.org/browse/package/4400.html" title="winner"><img src="http://i1t2b3.com/wp-content/uploads/2008/05/winner1.gif" alt="winner1.gif align=" align="right" /></a>Yes, my class <a href="http://a4.users.phpclasses.org/browse/package/4400.html">Phonetic</a> won the first place of the <a href="http://www.phpclasses.org/award/innovation/">PHPClasses Innovation Award</a>.</p>
<p>Thanks to everyone voted for me!</p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2008/05/05/phonetic-won/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vote for Phonetic class</title>
		<link>http://i1t2b3.com/2008/04/01/vote-for-phonetic-class/</link>
		<comments>http://i1t2b3.com/2008/04/01/vote-for-phonetic-class/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 20:09:06 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[development]]></category>

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

		<guid isPermaLink="false">http://i1t2b3.com/2008/04/01/vote-for-phonetic-class/</guid>
		<description><![CDATA[My PHP class Phonetic is nominated on phpclasses.org Innovation Award.
Vote for it!
The class generates words that phonetically are equal to the given one, but are written differently.

]]></description>
			<content:encoded><![CDATA[<p>My PHP class <a href="http://a4.users.phpclasses.org/browse/package/4400.html">Phonetic</a> is nominated on phpclasses.org Innovation Award.</p>
<p><a href="http://a4.users.phpclasses.org/vote.html">Vote</a> for it!</p>
<p>The class generates words that phonetically are equal to the given one, but are written differently.</p>
<p><img style="margin: 0px auto 10px; display: block; text-align: center; wwidth: 400px;" src="http://a4.users.phpclasses.org/browse/view/image/file/22138/name/phonetic.PNG" alt="" border="0" /></p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2008/04/01/vote-for-phonetic-class/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Get Mozilla FireFox T-Shirt</title>
		<link>http://i1t2b3.com/2008/03/12/get-mozilla-firefox-t-shirt/</link>
		<comments>http://i1t2b3.com/2008/03/12/get-mozilla-firefox-t-shirt/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 23:06:11 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[FireFox]]></category>

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

		<guid isPermaLink="false">http://i1t2b3.com/2008/03/12/get-mozilla-firefox-t-shirt/</guid>
		<description><![CDATA[Do you want to get a Mozilla Add-ons Developer T-shirt?
Recently I have received an email from Mozilla:
If you are able to achieve Firefox 3 beta 3 compatibility by March 18th on addons.mozilla.org, you are eligible for a Mozilla Add-ons Developer T-shirt. If you have updated your add-on, and would like a shirt, please fill out [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://i1t2b3.com/wp-content/uploads/2008/03/caec245d62119364f690a3e71250ca52.jpg" alt="Firefox" align="right" />Do you want to get a Mozilla Add-ons Developer <span id="st" name="st" class="st">T</span>-<span id="st" name="st" class="st">shirt?</span></p>
<p>Recently I have received an email from Mozilla:</p>
<blockquote><p><em>If you are able to achieve <span id="st" name="st" class="st">Firefox</span> 3 beta 3 compatibility by March 18th on <a href="http://addons.mozilla.org/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">addons.mozilla.org</a>, you are eligible for a Mozilla Add-ons Developer <span id="st" name="st" class="st">T</span>-<span id="st" name="st" class="st">shirt</span>. If you have updated your add-on, and would like a <span id="st" name="st" class="st">shirt</span>, please fill out the following form:</em></p>
<p><em><a href="https://addons.mozilla.org/en-US/firefox/developers/tshirtrequest" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">https://addons.mozilla.org/en<wbr></wbr>-US/<span id="st" name="st" class="st">firefox</span>/developers/tshirtr<wbr></wbr>equest</a></em></p>
<p><em>Additionally, if your add-on is one of the top 50 most used add-ons by <span id="st" name="st" class="st">Firefox</span> 3 users on the <span id="st" name="st" class="st">Firefox</span> 3 release day, Mozilla will offer to sponsor (for an amount we will determine) a party for you and your friends. That is, Mozilla will chip in for you and your friends to celebrate your tools success! Mozilla will be in contact with the top add-ons shortly after the <span id="st" name="st" class="st">Firefox</span> 3 release.</em></p></blockquote>
<p>As for me, I have created a <a href="https://addons.mozilla.org/ru/firefox/addon/6656">Get File Size plugin</a>, and as soon as I did it, I have become eligible to fill a shipping form.</p>
<p>Here is a couple of links to help you on this way:</p>
<ul>
<li><a href="http://developer.mozilla.org/en/docs/Firefox_3_for_developers" class="linkification-ext" title="Linkification: http://developer.mozilla.org/en/docs/Firefox_3_for_developers">http://developer.mozilla.org/en/docs/Firefox_3_for_developers</a></li>
<li><a href="https://addons.mozilla.org/en-US/firefox/blog/4" class="linkification-ext" title="Linkification: https://addons.mozilla.org/en-US/firefox/blog/4">https://addons.mozilla.org/en-US/firefox/blog/4</a></li>
</ul>
<p>It is a good chance to make your cool plugin idea come true.</p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2008/03/12/get-mozilla-firefox-t-shirt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Get file size</title>
		<link>http://i1t2b3.com/2008/03/10/get-file-size/</link>
		<comments>http://i1t2b3.com/2008/03/10/get-file-size/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 21:40:42 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[FireFox]]></category>

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

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

		<guid isPermaLink="false">http://i1t2b3.com/2008/03/10/get-file-size/</guid>
		<description><![CDATA[I have created a &#8216;Get File Size&#8217; plugin for FireFox. By the time I write this it&#8217;s in the SandBox of Mozilla&#8217;s Developers Zone, but I hope it will be available for the IT crowd soon.

This simple plugin creates a HEAD request to the URL you clicked and alerts the size of the file - [...]]]></description>
			<content:encoded><![CDATA[<p>I have created a <a href="https://addons.mozilla.org/ru/firefox/addon/6656">&#8216;Get File Size&#8217; plugin</a> for FireFox. By the time I write this it&#8217;s in the SandBox of Mozilla&#8217;s Developers Zone, but I hope it will be available for the IT crowd soon.</p>
<p style="text-align: center"><img src="http://i1t2b3.com/wp-content/uploads/2008/03/screenshot.png" alt="Example screen" /></p>
<p>This simple plugin creates a HEAD request to the URL you clicked and alerts the size of the file - the value of &#8216;Content-Length&#8217; header.</p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2008/03/10/get-file-size/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I&#8217;m here to delete code</title>
		<link>http://i1t2b3.com/2008/02/18/im-here-to-delete-code/</link>
		<comments>http://i1t2b3.com/2008/02/18/im-here-to-delete-code/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 16:13:32 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[development]]></category>

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

		<guid isPermaLink="false">http://i1t2b3.com/2008/02/18/im-here-to-delete-code/</guid>
		<description><![CDATA[What do you think you are supposed to do as developer? To create code? Nope. To delete it.]]></description>
			<content:encoded><![CDATA[<p align="right">“<em>I have only made this letter longer<br />
because I have not had the time to make it shorter</em>”<br />
Blaise Pascal, Lettres provinciales.</p>
<p>What do you think you are supposed to do as developer? To create code? Nope. To delete it!</p>
<p><img src="http://i1t2b3.com/wp-content/uploads/2008/01/delete_eraser1.jpg" alt="delete_eraser1.jpg" align="right" />Have you ever thought why it takes 5-15 minutes to get into the flow? From my point of view, that&#8217;s because you have to understand the root of a task, to load its code base into your operating memory - brain. So the less code you have to deal with, the more productive you are in juggling with it.</p>
<p>Alongside this fact consider these statements:</p>
<blockquote>
<ul>
<li>Less software is easier to manage.</li>
<li>Less software reduces your codebase and that means less maintenance busywork (and a happier staff).</li>
<li>Less software lowers your cost of change so you  can adapt quickly. You can change your mind without having to change boatloads of code.</li>
<li>Less software results in fewer bugs.</li>
<li>Less software means less support.</li>
</ul>
<p align="right">( <a href="http://gettingreal.37signals.com/index.php" title="Getting Real">Getting Real</a> :: <a href="http://gettingreal.37signals.com/ch10_Less_Software.php">Less Software</a> chapter )</p>
</blockquote>
<p>At the same time it&#8217;s funny how often I got more robust code by moving from 100 lines to 10&#8230;</p>
<p>In the next post I will describe the ways I use to achieve that goal.</p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2008/02/18/im-here-to-delete-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fusebox cheat sheet</title>
		<link>http://i1t2b3.com/2008/01/27/fusebox-cheat-sheet/</link>
		<comments>http://i1t2b3.com/2008/01/27/fusebox-cheat-sheet/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 11:31:26 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[Fusebox]]></category>

		<category><![CDATA[cheat sheets]]></category>

		<guid isPermaLink="false">http://i1t2b3.com/2008/01/27/fusebox-cheat-sheet/</guid>
		<description><![CDATA[A wonderful list of Fusebox XML tags can be found at &#8220;Fusebox 4.1 XML Cheat Sheet&#8220;.
By the way, an astonishing variety of cool cheat sheets (Ajax, CSS, Regexp, Ruby, PHP and many others) can be found at Smashing Magazine.
]]></description>
			<content:encoded><![CDATA[<p>A wonderful list of Fusebox XML tags can be found at &#8220;<a href="http://www.dopefly.com/projects/fuseboxxmlcheatsheet.cfm" title="Fusebox 4.1 XML Cheat Sheet">Fusebox 4.1 XML Cheat Sheet</a>&#8220;.</p>
<p>By the way, an astonishing variety of cool cheat sheets (Ajax, CSS, Regexp, Ruby, PHP and many others) can be found at <a href="http://www.smashingmagazine.com/2006/10/30/cheat-sheet-round-up-ajax-css-latex-ruby/" title="Cheat Sheet Round-Up: Ajax, CSS, LaTeX, Ruby">Smashing Magazine</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2008/01/27/fusebox-cheat-sheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Digg effect</title>
		<link>http://i1t2b3.com/2008/01/13/digg-effect/</link>
		<comments>http://i1t2b3.com/2008/01/13/digg-effect/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 00:11:18 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://i1t2b3.com/2008/01/13/digg-effect/</guid>
		<description><![CDATA[This blog is quite young, so not so many visits is obvious. This is what submitting to Digg and Reddit can do&#8230;

Hehe&#8230;
]]></description>
			<content:encoded><![CDATA[<p>This blog is quite young, so not so many visits is obvious. This is what submitting to <a href="http://digg.com">Digg</a> and <a href="http://reddit.com">Reddit</a> can do&#8230;</p>
<p><a href="http://i1t2b3.com/wp-content/uploads/2008/01/digg1.png" title="Digg effect"><img src="http://i1t2b3.com/wp-content/uploads/2008/01/digg1.png" alt="Digg effect" /></a></p>
<p>Hehe&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2008/01/13/digg-effect/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CRUD Class</title>
		<link>http://i1t2b3.com/2008/01/12/crud-class/</link>
		<comments>http://i1t2b3.com/2008/01/12/crud-class/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 21:58:53 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://i1t2b3.com/2008/01/13/crud-class/</guid>
		<description><![CDATA[I have intention to complete my draft of a CRUD PHP-class. Don&#8217;t know what is it? Easy!
Imagine you have a site where users point some places at Google Maps framed at your page. As developer of this site you will have to create several admin pages:

a page to manage users: e.g. grant permissions to your [...]]]></description>
			<content:encoded><![CDATA[<p>I have intention to complete my draft of a CRUD PHP-class. Don&#8217;t know what is it? Easy!</p>
<p>Imagine you have a site where users point some places at Google Maps framed at your page. As developer of this site you will have to create several admin pages:</p>
<ul>
<li>a page to manage users: e.g. grant permissions to your friend or deactivate a gonzo user</li>
<li>another page to tune options of the map points: fix a typo or edit coordinates of points</li>
</ul>
<p>Just two pages, but I bet you&#8217;d need at least 3-5 hours to make a small draft form to manage these entities. To make things worse, let me remind you of paging, client and server sides validation, date-picker dialogs or even data integrity checks.</p>
<p>So, to cut the long story short, CRUD class generates all this for you in a couple of lines of code. So you just define what database table you&#8217;d like to manage - <em>drum-roll!</em> - you get a ready-made interface! (I call it a <em>Table Manager Class</em> - it helps you to manage any table in your system)</p>
<p>By the way, <a href="http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete" title="wikipedia is wise">CRUD</a> stands for Create, Read, Update and Delete. So CRUD class allows to play with data you have.</p>
<p class="L1">As Petrovich said (a <span title="мужской род" onmouseover="funcLY(170,this)" style="color: brown"><em><span style="color: brown"><span lang="ru"></span></span></em></span>laboratory assistant in my university), &#8220;first check what others have done&#8221;.</p>
<p class="L1">So, I found a <a href="http://a4.users.phpclasses.org/browse/package/4273.html" title="CRUD">CRUD class</a> and I remember about <a href="http://www.symfony-project.org/book/1_0/14-Generators#Administration">Symfony framework admin generator</a>.</p>
<p class="L1"><a href="http://a4.users.phpclasses.org/browse/package/4273.html" title="CRUD class"><img src="http://a4.users.phpclasses.org/browse/view/image/file/21516/name/image.png" alt="CRUD class" align="middle" border="1" height="227" width="302" /></a></p>
<p>While the former is rather crude (it doesn&#8217;t work in some conditions, settings are embedded in PHP code), Symfony&#8217;s generator is quite nice: settings are separated from logic in a Yaml file and the code is being regenerated for you every time you make a change.The drawback of the latter is that you have to deal with huge Symfony framework to have this feature.</p>
<p><a href="http://www.symfony-project.org/book/1_0/14-Generators#Administration" title="Symfony admin generator"><img src="http://www.symfony-project.org/images/book/1_0/F1405.png" alt="Symfony admin generator" align="middle" border="1" height="206" width="460" /></a></p>
<p>So my idea is to prepare a stand-alone PHP class to make generation of admin inteface easier. I&#8217;m going to use an <a href="http://extjs.com/">Ext.js</a> JavaScript framework to beautify the interface.</p>
<p>Maybe someone has a better solution?</p>
<p><a href="http://www.rentacoder.com/RentACoder/SoftwareBuyers/ShowBuyerInfo.asp?lngAuthorId=6793629">Andrisi</a>  suggests this to be like this:</p>
<p><img src="http://konyvtar.info/andrisi/interface.gif" alt="A draft of CRUD" border="1" height="448" width="353" /></p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2008/01/12/crud-class/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Automatical turn to AJAX with FuseBox</title>
		<link>http://i1t2b3.com/2007/12/31/automatical-turn-to-ajax-with-fusebox/</link>
		<comments>http://i1t2b3.com/2007/12/31/automatical-turn-to-ajax-with-fusebox/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 00:40:34 +0000</pubDate>
		<dc:creator>Skakunov Alexander</dc:creator>
		
		<category><![CDATA[AJAX]]></category>

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

		<guid isPermaLink="false">http://i1t2b3.com/2007/12/31/automatical-turn-to-ajax-with-fusebox/</guid>
		<description><![CDATA[You as web developer might have thought about how to develop applications having both AJAX and HTML-only versions at the same time. Fusebox can make your life easier!
The solution has two simple steps:

determine whether JavaScript is turned on in user&#8217;s browser;
if JavaScript is turned on, the application loads HTML chunks via AJAX, otherwise PHP is [...]]]></description>
			<content:encoded><![CDATA[<p>You as web developer might have thought about how to develop applications having both AJAX and HTML-only versions at the same time. Fusebox can make your life easier!</p>
<p>The solution has two simple steps:</p>
<ol>
<li>determine whether JavaScript is turned on in user&#8217;s browser;</li>
<li>if JavaScript is turned on, the application loads HTML chunks via AJAX, otherwise PHP is used to load the same chunks while an HTML page is generated.</li>
</ol>
<p>It may look confusing how the same snippets of HTML code could be load by both AJAX and PHP. It&#8217;s not a big deal if the snippets are HTML parts of code ready to be outputed to browser. To do this, let&#8217;s create an &#8216;ajax&#8217; circuit in our fictitious application. In general, this circuit don&#8217;t have a header or footer - it&#8217;s used just to return pieces of HTML.</p>
<p>Let&#8217;s imagine our application must show a table of products. The fuseaction &#8216;list&#8217; of &#8216;products&#8217; circuit could be defined like this:</p>
<pre><code>&lt;circuit access=&quot;public&quot;&gt;

  &lt;fuseaction name=&quot;list&quot;&gt;
    &lt;if condition=&quot;1==${jsdisabled}&quot;&gt;
      &lt;true&gt;
        &lt;set name=&quot;some_var1&quot; value=&quot;1&quot;  /&gt;
        &lt;set name=&quot;some_var2&quot; value=&quot;2&quot;  /&gt;
        &lt;do action=&quot;ajax.GetProducts&quot; contentvariable=&quot;ProductsList&quot;/&gt;
      &lt;/true&gt;
    &lt;/if&gt;
    &lt;include template=&quot;dspList.php&quot; /&gt;
  &lt;/fuseaction&gt;

&lt;/circuit&gt;</code></pre>
<p>This means that if <code>$jsdisabled</code> variable equals to 1 (which tells us that JavaScript is turned off - we will see later how to determine this), we grab contents of fuseaction &#8216;ajax.GetProducts&#8217; to get an HTML code of products list into a variable <code>$ProductsList</code>.
</p>
<p>All the magic is in <code>dspList.php</code> template: it determines what must be called - AJAX or PHP:</p>
<pre><code class="php">&lt;? if ( 0 == $jsdisabled )  {?&gt;
  &lt;script&gt;
    new_AJAX_request('index.php?fa=ajax.GetProducts&amp;some_var1=1&amp;some_var2=2');
  &lt;/script&gt;
&lt;?
}
else
{
  echo $ProductsList;
}
?&gt;</code></pre>
</p>
<p>There are a couple of variables defined for both calls ( <code>some_var1</code> and <code>some_var2</code> ). Such variables are used to tune the output of <code>ajax.GetProducts</code> fuseaction, for example, if your table supports sorting by click on its header, you can define the hyperlinks locations for sorting: if AJAX is used, they probably will look like <code>&lt;a href=&quot;javascript: update_rows()&quot;&gt;...&lt;/a&gt;</code>, otherwise usual page reloading links would be used. </p>
<p>It&#8217;s worth saying a couple of words about how your application could find out whether it can use AJAX or not, i.e. if JavaScript is turned on at client side. Let&#8217;s consider the way which is used by Google Maps: if you turn JavaScript off in your browser and reload the page, you will be automatically redirected to a Google Maps page created with help of hyperlinks and images only. The algorithm is simple - if JavaScript is turned off, SCRIPT tag doesn&#8217;t work, but the NOSCRIPT tag does, so we can put a redirection command into this block. Then, if you switch back to have JavaScript available (and SCRIPT tag would make sense again), the application must be informed about the fact, so we redirect to the same location, but with additional parameter, telling the application about the change. The current value of JavaScript state can be stored in session or cookies.</p>
<p>Here is a PHP snippet, showing this at work:</p>
<pre><code class="php">&lt;html&gt;
  &lt;head&gt;
    &lt;? if ( 0 == $attributes['jsdisabled'] ) : ?&gt;
      &lt;noscript&gt;
        &lt;meta http-equiv=&quot;refresh&quot; content=&quot;0; URL=http://&lt;?=$_SERVER[&quot;HTTP_HOST&quot;] . $_SERVER['REQUEST_URI'] . (strpos($_SERVER['REQUEST_URI'], '?')!==false ? '&amp;' : '?' ) ?&gt;jsdisabled=1&quot;/&gt;
      &lt;/noscript&gt;
    &lt;? else : ?&gt;
      &lt;script&gt;
        top.document.location.href='http://&lt;?=$_SERVER[&quot;HTTP_HOST&quot;] . $_SERVER['REQUEST_URI'] . (strpos($_SERVER['REQUEST_URI'], '?')!==false ? '&amp;' : '?' ) ?&gt;jsdisabled=0';
      &lt;/script&gt;
    &lt;? endif; ?&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2007/12/31/automatical-turn-to-ajax-with-fusebox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mind-mapping in Fusebox</title>
		<link>http://i1t2b3.com/2007/12/24/mind-mapping-in-fusebox/</link>
		<comments>http://i1t2b3.com/2007/12/24/mind-mapping-in-fusebox/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 15:08:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Fusebox]]></category>

		<category><![CDATA[Mind-mapping]]></category>

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

		<guid isPermaLink="false">http://i1t2b3.com/2007/12/24/mind-mapping-in-fusebox/</guid>
		<description><![CDATA[In our fast-moving world visual designing tools become more and more popular, allowing to generate code snippets or whole projects from a graphical scretch. This article describes what a Fusebox developer can get from it.Circuits and fuses of a Fusebox project form a strict hierarchy, so we can draw the project schema as a tree. [...]]]></description>
			<content:encoded><![CDATA[<p>In our fast-moving world visual designing tools become more and more popular, allowing to generate code snippets or whole projects from a graphical scretch. This article describes what a Fusebox developer can get from it.Circuits and fuses of a Fusebox project form a strict hierarchy, so we can draw the project schema as a tree. Is there any software to draw trees? Of course! There is an astonishing variety of tools to create mind-maps which we can adopt to our needs.</p>
<p>If you are not familiar with mind maps, let&#8217;s take a closer look on them:</p>
<blockquote><p>A mind map is a diagram used to represent words, ideas, tasks or other items linked to and arranged radially around a central key word or idea. It is used to generate, visualize, structure and classify ideas, and as an aid in study, organization, problem solving, decision making, and writing [wikipedia].</p></blockquote>
<p>Mind maps are a result of mind-mapping: a technique allowing to keep track of ideas generated while a brain-storm session (yes, it&#8217;s when people jot down as many ideas as they can and after that they &#8220;separate grains and tares&#8221; - choose the most brilliant ones). So, valuable thoughts are hierarchically organized as a tree. As any tree, mind map has nodes and leafs, i.e. nodes with no children.</p>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/MindMapGuidlines.JPG/300px-MindMapGuidlines.JPG" alt="mind map" align="right" /></p>
<p>Structural similarity between a mind map and a Fusebox project provides a basis for a conclusion that the former can be used to generate the latter (and vice versa). A glue between the two layers can be the XML format as most mind-mapping utilities can import from and export to it. A drawback of using XML is that almost every application has its own kind of the XML format our converter will have to deal with.</p>
<p>As long as mind-mapping utilities are concerned - there are a plenty of on-line tools and desktop applications (usually written in Java). We will decide in favour of <a href="http://Bubbl.us" target="_blank">Bubbl.us</a> as the web site and FreeMind as example of a free desktop tool.</p>
<p><a href="http://Bubbl.us" target="_blank">Bubbl.us</a> is a web2.0 on-line application written in Flash, and it&#8217;s quite fun to work with it - for example,  a deleting node can explode, so be aware! There is a feature of export to several graphical formats, so you can have a big glyph of your project on the wall. You can register if you want to save your masterpieces (so called &#8216;lazy registration&#8217;). Minus is that if you have too many items it could work a bit slower.</p>
<p><img src="http://a4.users.phpclasses.org/browse/view/image/file/19328/name/bubbl.us.png" alt="Preparing project structure at bubble.us. Export to XML feature is available in the right bottom" border="1" /></p>
<p>FreeMind is a Java tool so you can use it on many operating systems. It is not as fun as the previous one but it provides extensive export capabilities (XHTML format as well which allows a user to create a mapped image with links to a folding outline) and has some extra features - you can provide nodes with icons, lock nodes (protect with password) and search within a single branch.</p>
<p><img src="http://a4.users.phpclasses.org/browse/view/image/file/19329/name/freemind.png" alt="Preparing a project structure in FreeMind. XML is available as .mm-file" border="1" /></p>
<p>Since Fusebox supports ColdFusion and PHP platforms, instruments for both platforms are available.</p>
<p>ColdFusion implementations can be found in the <a href="http://fusebox.org/go/fusebox-community/community-resources/tools" target="_blank">Tools part</a> of the <a href="http://fusebox.org/" target="_blank">fusebox.org</a> site. Among them are:</p>
<ul>
<li>Fuseminder2 - Converts Mind Maps to Fusebox 3</li>
<li>Fuseminder - Generates a Fusebox 2.0 framework based on a mind mapping file</li>
<li>FuseminderPlus - Fuseminder for Fusebox 3</li>
<li>FuseminderFB4 - Fuseminder for Fusebox 4</li>
<li>MindFuser - Reads a Fusebox 2.0 application and generates an outline file</li>
</ul>
<p>You can easily download them and give them a try.</p>
<p>There is not so many tools written in PHP. One of a kind is the <a href="http://a4.users.phpclasses.org/browse/package/3920.html" target="_blank">Fusebox Manager</a> supporting several XML formats. This package implements a code generator that takes project definition and generates PHP code to implement the Fusebox methodology. The generated code uses a run-time PHP framework also provided within the package to deploy projects using this methodology all in PHP. For now it works in only one direction - it generates a Fusebox application from a mind map, but it&#8217;s planned to add backward function, so that you could use it for existing Fusebox projects to manage them visually and then save back as a bunch of PHP files.</p>
<p><img src="http://a4.users.phpclasses.org/browse/view/image/file/19288/name/working.PNG" alt="Fusebox Manager at work" border="1" /></p>
<p>All in all, the day when you would be able to create a whole project by several movements of your mouse is not as far as you may think.</p>
]]></content:encoded>
			<wfw:commentRss>http://i1t2b3.com/2007/12/24/mind-mapping-in-fusebox/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
