<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5" -->
<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>Hazel Nuts</title>
	<link>http://www.hazelsoft.com</link>
	<description>This is a professional blog of the founder, owner and the only employee of Hazelsoft, an innovative software company.</description>
	<pubDate>Mon, 11 Apr 2011 12:51:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5</generator>
	<language>en</language>

		<item>
		<title>BibCenter available for download</title>
		<link>http://www.hazelsoft.com/2005/05/21/bibcenter-available-for-download/</link>
		<comments>http://www.hazelsoft.com/2005/05/21/bibcenter-available-for-download/#comments</comments>
		<pubDate>Sat, 21 May 2005 23:38:46 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Software</category>
		<guid>http://www.hazelsoft.com/2005/05/21/bibcenter-available-for-download/</guid>
		<description><![CDATA[First version of BibCenter- a bibliographical reference manager- is available for download. It currently features:


	database- driven information storage
	a BibTeX compliant information set
	export to BibTeX file
	customizable additional fields


Get the software it in the downloads section. ]]></description>
			<content:encoded><![CDATA[	<p>First version of <strong>BibCenter</strong>- a bibliographical reference manager- is available for download. It currently features:</p>
	<ul>
	<li>database- driven information storage</li>
	<li>a BibTeX compliant information set</li>
	<li>export to BibTeX file</li>
	<li>customizable additional fields</li>
	</ul>
	<p>Get the software it in the <a href="http://www.hazelsoft.com/downloads">downloads</a> section.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/21/bibcenter-available-for-download/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Processing rev. 90 available</title>
		<link>http://www.hazelsoft.com/2005/05/19/processing-rev-90-available/</link>
		<comments>http://www.hazelsoft.com/2005/05/19/processing-rev-90-available/#comments</comments>
		<pubDate>Thu, 19 May 2005 23:52:09 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Programming</category>
		<guid>http://www.hazelsoft.com/2005/05/19/processing-rev-90-available/</guid>
		<description><![CDATA[A new revision of Processing (beta version) is available with some new features like full screen graphics, a more complete renderer and better opengl support.

Get the latest revision at http://processing.org/download/. ]]></description>
			<content:encoded><![CDATA[	<p>A new revision of Processing (beta version) is available with some new features like full screen graphics, a more complete renderer and better opengl support.</p>
	<p>Get the latest revision at <a href="http://processing.org/download/">http://processing.org/download/</a>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/19/processing-rev-90-available/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Java BBCode parser</title>
		<link>http://www.hazelsoft.com/2005/05/19/java-bbcode-parser/</link>
		<comments>http://www.hazelsoft.com/2005/05/19/java-bbcode-parser/#comments</comments>
		<pubDate>Thu, 19 May 2005 23:44:53 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Programming</category>
		<guid>http://www.hazelsoft.com/2005/05/19/java-bbcode-parser/</guid>
		<description><![CDATA[I assembled a simple BBCode parser in Java. It might be useful, e.g. in a custom bulletin board. It is still a bit incomplete, but will probably improve over time.

You can download it in the downloads section. ]]></description>
			<content:encoded><![CDATA[	<p>I assembled a simple BBCode parser in Java. It might be useful, e.g. in a custom bulletin board. It is still a bit incomplete, but will probably improve over time.</p>
	<p>You can download it in the <a href="http://www.hazelsoft.com/downloads">downloads</a> section.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/19/java-bbcode-parser/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Three pointers on personal data in databases</title>
		<link>http://www.hazelsoft.com/2005/05/17/some-pointers-on-personal-data-in-databases/</link>
		<comments>http://www.hazelsoft.com/2005/05/17/some-pointers-on-personal-data-in-databases/#comments</comments>
		<pubDate>Tue, 17 May 2005 11:45:57 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Programming</category>
		<guid>http://www.hazelsoft.com/2005/05/17/some-pointers-on-personal-data-in-databases/</guid>
		<description><![CDATA[Pointer 1
	
A mistake commonly made by database designers, is to represent name or surname with single columns. This approach, however easy and natural, clearly breaks the first normal form, because the relations in the database become non- singular when multiple names occur. This makes searching more	difficult, because many combinations and '%'s  have to be [...]]]></description>
			<content:encoded><![CDATA[	<h2>Pointer 1</h2>
	<p>A mistake commonly made by database designers, is to represent name or surname with single columns. This approach, however easy and natural, clearly breaks the <a href="http://www.answers.com/first%20normal%20form">first normal form</a>, because the relations in the database become non- singular when multiple names occur. This makes searching more	difficult, because many combinations and '%'s  have to be used.</p>
	<p>Consider for example, a person with 3 names - "William Henry Bob", and a search string "William Bob".	In the "popular" approach, the name of the person is put into single column, say we call it "name". The SQL query will look something like this:</p>
	<div class="syntax_hilite">
<div id="sql-1">
	<div><span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> people <br />
&nbsp; &nbsp;<span style="color: #993333; font-weight: bold;">WHERE</span> name <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%William%'</span> <br />
&nbsp; &nbsp;<span style="color: #993333; font-weight: bold;">OR</span> name <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%Bob%'</span>;</div>
	</div>
</div>
	<p>Simple, but very consuming for the database. You need to run a full table scan, which is not very good when the database is big.</p>
	<p>Instead, apply the normalization procedure required by the first normal form:</p>
	<div class="img-centering"><img src="http://www.hazelsoft.com/wp-content/images/normalization.gif" width="350" height="176" alt="normalization step" /></div>
	<p>Now, the SQL query will look somewhat like:</p>
	<div class="syntax_hilite">
<div id="sql-2">
	<div><span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> people <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">IN</span> <span style="color:#008800; font-weight:bold;">&#40;</span><br />
&nbsp; &nbsp;<span style="color: #993333; font-weight: bold;">SELECT</span> people_id <span style="color: #993333; font-weight: bold;">FROM</span> people_names <span style="color: #993333; font-weight: bold;">WHERE</span> names_id <span style="color: #993333; font-weight: bold;">IN</span> <span style="color:#008800; font-weight:bold;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> id <span style="color: #993333; font-weight: bold;">FROM</span> names <span style="color: #993333; font-weight: bold;">WHERE</span> name <span style="color: #993333; font-weight: bold;">IN</span> <span style="color:#008800; font-weight:bold;">&#40;</span><span style="color: #ff0000;">'Bob'</span>,<span style="color: #ff0000;">'William'</span><span style="color:#008800; font-weight:bold;">&#41;</span> <br />
&nbsp; &nbsp;<span style="color:#008800; font-weight:bold;">&#41;</span><br />
<span style="color:#008800; font-weight:bold;">&#41;</span>;</div>
	</div>
</div>
	<p>This query seems to be a bit more complicated, but - not surprisingly - runs a lot faster.</p>
	<h2>Pointer two</h2>
	<p>Because of various errors, names or surnames in the database can be misspelled. A simple search with exact matching is obviously not able to find the misspelled words.</p>
	<p>A partial solution of this problem is phonetic indexing. A phonetic index is a coded word hash based on the way a word sounds rather than the way it is spelled (eg. SMYTH or SMITH sound the same, while being spelled differently). There is a couple of phonetic algorithms:</p>
	<ul>
	<li>The original <a href="http://www.nara.gov/genealogy/soundex/soundex.html">soundex</a> algorithm has been 	invented by O'Dell and Russell in 1918. A variation called "American soundex" has been used by the U.S. census archives. This algorithm is very simple, thus not very accurate;</li>
	<li>The <a href="http://www.answers.com/main/ntquery?method=4&#038;dsid=2222&#038;dekey=Metaphone&#038;gwp=8&#038;curtab=2222_1">metaphone</a> algorithm, developed by Phillips,  is more accurate and more complicated;</li>
	<li>The <a href="http://www.avotaynu.com/soundex.html">Daitch- Mokotoff soundex</a> has been developed by the Jewish genealogists in 1985. It had to be done because the two above algorithms are both based on English language and don't work very well for Slavic or Germanic  surnames (eg. Levine vs. Lewin).</li>
	</ul>
	<p>Both the soundex and metaphone algorithms are part of <a href="http://www.php.net">PHP</a> standard library. There also exist freely available implementations in Java at  <a href="http://jakarta.apache.org/commons">Jakarta</a>. Of course many other realisations	can be found on the internet.</p>
	<h2>Pointer three</h2>
	<p>The longest surname I know in Polish language is "Brzęczyszczykiewicz", which is 20 characters long. In a database, I assume 24 chars for surnames and 18 for names.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/17/some-pointers-on-personal-data-in-databases/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>No activity</title>
		<link>http://www.hazelsoft.com/2005/05/16/no-activity/</link>
		<comments>http://www.hazelsoft.com/2005/05/16/no-activity/#comments</comments>
		<pubDate>Mon, 16 May 2005 20:21:32 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Software</category>
		<guid>http://www.hazelsoft.com/2005/05/16/no-activity/</guid>
		<description><![CDATA[I'm killing my brain cells with Addicting Games. ]]></description>
			<content:encoded><![CDATA[	<p>I'm killing my brain cells with <a href="http://www.addictinggames.com/">Addicting Games</a>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/16/no-activity/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Spreading the word - badly</title>
		<link>http://www.hazelsoft.com/2005/05/13/spreading-the-word-badly/</link>
		<comments>http://www.hazelsoft.com/2005/05/13/spreading-the-word-badly/#comments</comments>
		<pubDate>Fri, 13 May 2005 19:31:56 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Software</category>
	<category>Disappointments</category>
		<guid>http://www.hazelsoft.com/2005/05/13/spreading-the-word-badly/</guid>
		<description><![CDATA[This almost looks like a sabotage: http://funnyfox.org/

OMG. Is Microsoft behind this? ]]></description>
			<content:encoded><![CDATA[	<p>This almost looks like a sabotage: <a href="http://funnyfox.org/">http://funnyfox.org/</a></p>
	<p>OMG. Is Microsoft behind this?
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/13/spreading-the-word-badly/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Won&#8217;t play with Scrabble</title>
		<link>http://www.hazelsoft.com/2005/05/12/wont-play-with-scrabble/</link>
		<comments>http://www.hazelsoft.com/2005/05/12/wont-play-with-scrabble/#comments</comments>
		<pubDate>Thu, 12 May 2005 22:52:13 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Programming</category>
	<category>Disappointments</category>
		<guid>http://www.hazelsoft.com/2005/05/12/wont-play-with-scrabble/</guid>
		<description><![CDATA[I just bought the "Official Polish Scrabble Dictionary". Partly because of hope that this dictionary would be in an open format, so I could use it to write some funny stuff. No, it isn't. Forlorn hope. ]]></description>
			<content:encoded><![CDATA[	<p>I just bought the <a href="http://www.pfs.org.pl/New_look/Slownik/Osps.html">"Official Polish Scrabble Dictionary"</a>. Partly because of hope that this dictionary would be in an open format, so I could use it to write some funny stuff. No, it isn't. Forlorn hope.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/12/wont-play-with-scrabble/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Recent software additions</title>
		<link>http://www.hazelsoft.com/2005/05/12/recent-software-additions/</link>
		<comments>http://www.hazelsoft.com/2005/05/12/recent-software-additions/#comments</comments>
		<pubDate>Thu, 12 May 2005 22:47:17 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Software</category>
		<guid>http://www.hazelsoft.com/2005/05/12/recent-software-additions/</guid>
		<description><![CDATA[My programming toolbox has recently seen new additions:


	Notepad 2 - supposedly a replacement for Windows Notepad, this simply rocks! Based on Scintilla, a free source code editor component, this small application (just one file) has everything you need for quick updates. Bye, bye, SciTE.
	Shirusu Pad is a simple tabbed text editor. It runs in the [...]]]></description>
			<content:encoded><![CDATA[	<p>My programming toolbox has recently seen new additions:</p>
	<ul>
	<li><a href="http://www.flos-freeware.ch/notepad2.html">Notepad 2</a> - supposedly a replacement for Windows Notepad, this simply rocks! Based on <a href="http://www.scintilla.org/">Scintilla</a>, a free source code editor component, this small application (just one file) has everything you need for quick updates. Bye, bye, <a href="http://www.scintilla.org/SciTE.html">SciTE</a>.</li>
	<li><a href="http://www.shirusupad.tk/">Shirusu Pad</a> is a simple tabbed text editor. It runs in the background and is available with just one click. Great for taking quick notes.</li>
	<li>Two things I have yet to play with: <a href="http://www.pspad.com/">PSPad</a> and <a href="http://www.brixoft.net/default.asp">SourceEdit</a> are both "programmer source code editor", featuring obvious functionality like syntax highlighting, bracket matching, auto indentation, as well as some more advanced features like hex editor and visual diff. They are much lighter than the editor I currently use, <a href="http://www.jedit.org">jEdit</a>, but I am not yet decided if any of them is "better". Time will tell.</li>
	</ul>
	<p>By the way, I tried to replace Windows "notepad.exe" with the "notepad2.exe". Didn't work, it somehow reverted to the old version. It turned out that I had to delete notepad.exe from C:\Winnt\System32\DLLCache. After that Windows warned me, that notepad is actually a "critical system component". Fortunately I was allowed to simply ignore this warning <img src='http://www.hazelsoft.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/12/recent-software-additions/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>My own Logo</title>
		<link>http://www.hazelsoft.com/2005/05/10/logo/</link>
		<comments>http://www.hazelsoft.com/2005/05/10/logo/#comments</comments>
		<pubDate>Tue, 10 May 2005 23:33:17 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Info</category>
		<guid>http://www.hazelsoft.com/2005/05/10/logo/</guid>
		<description><![CDATA[I "designed" a simple logo for Hazelsoft:



Hmm... not too bad I guess. I don't do graphics after all. ]]></description>
			<content:encoded><![CDATA[	<p>I "designed" a simple logo for Hazelsoft:</p>
	<div class="img-centering"><img src="http://www.hazelsoft.com/wp-content/logo.gif" alt="Hazelsoft logo" width="210" height="54" /></div>
	<p>Hmm... not too bad I guess. I don't do graphics after all.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/10/logo/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>HTML Editors for Content Management Systems</title>
		<link>http://www.hazelsoft.com/2005/05/09/html-editors-for-content-management-systems/</link>
		<comments>http://www.hazelsoft.com/2005/05/09/html-editors-for-content-management-systems/#comments</comments>
		<pubDate>Mon, 09 May 2005 22:25:33 +0000</pubDate>
		<dc:creator>LL</dc:creator>
		
	<category>Software</category>
		<guid>http://www.hazelsoft.com/2005/05/09/html-editors-for-content-management-systems/</guid>
		<description><![CDATA[A CMS is based on the concept that it is the writer who writes content, not the Webmaster or software developer. However, to present visually rich text, the content has to be coded in HTML at some point. What can the web developer do? The basic TEXTAREA is of course not enough.

One idea is to [...]]]></description>
			<content:encoded><![CDATA[	<p>A <acronym title="Content Management System">CMS</acronym> is based on the concept that it is the writer who writes content, not the Webmaster or software developer. However, to present visually rich text, the content <strong>has</strong> to be coded in HTML at some point. What can the web developer do? The basic TEXTAREA is of course not enough.</p>
	<p>One idea is to ask users to write their texts in Word (or another editor), export to HTML and paste into the textarea. I think I don't have to convince anybody on how bad this idea is.</p>
	<p>Another option is to use a plain text markup syntax parser, like <a href="http://textism.com/tools/textile/">Textile</a> or <a href="http://www.michelf.com/projects/php-markdown/">Markdown</a> (the famous BBCode also falls into this category). The idea is to convert simple text markings into HTML, for example converting _text_ to <em>text</em> and *text* to <strong>text</strong>. This is a good option, however, it has two drawbacks:</p>
	<ol>
	<li>users have to learn something new,</li>
	<li>looks uncool.</li>
	</ol>
	<p>The best option is to use a Web- based HTML editor, which allows online content editing with a WYSYWIG interface. A comprehensive list of such editors can be found here: <a href="http://www.htmlarea.com/directory/WYSIWYG_Editors/index.html">list of HTML editors</a>. They range from high- end applications, with prices over 100$ to ones that are totally free. I have used, and can tell something about:</p>
	<ul>
	<li><a href="http://www.hexidec.com/ekit.php">Ekit</a> - this is implemented as a Java applet and is free (open source). Very ugly out-of-the-box, I had to tinker a lot in the code before it was usable. However, being a Java applet, it is more portable than anything else.</li>
	<li><a href="http://www.fckeditor.net/">FCKEditor</a> - open source Javascript program. A wide list of options, this one has fairly everything you need.</li>
	<li><a href="http://tinymce.moxiecode.com/">TinyMCE</a> - another open source Javascript editor. Fever options than the previous one, but works a lot faster.</li>
	<li>Finally, <a href="http://kupu.oscom.org/">Kupu</a>. I haven't really used it, but it was referenced on <a href="http://www.onlamp.com/pub/a/onlamp/2005/04/28/kupu.html">OnLamp</a>. I don't like the name ("kupa" means "poo" in Polish), and the looks of this one; however, it has some clever technical solutions that are worth noting.</li>
	</ul>
	<p>Of course, knowing some HTML is not that bad <img src='http://www.hazelsoft.com/wp-images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.hazelsoft.com/2005/05/09/html-editors-for-content-management-systems/feed/</wfw:commentRSS>
	</item>
	</channel>
</rss>

