<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3" -->
<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>Technology, Education, Self-Actualization and me (Charles Abbott)</title>
	<link>http://www.forthecode.org</link>
	<description>Software Engineering, Personal Info and more.</description>
	<pubDate>Tue, 26 Aug 2008 21:06:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3</generator>
	<language>en</language>
			<item>
		<title>169 Kanji and growing</title>
		<link>http://www.forthecode.org/2008/07/07/169-kanji-and-growing/</link>
		<comments>http://www.forthecode.org/2008/07/07/169-kanji-and-growing/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 14:35:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.forthecode.org/2008/07/07/169-kanji-and-growing/</guid>
		<description><![CDATA[Its true, I&#8217;ve committed myself to learning Japanese Kanji.  Some of you might be saying &#8220;It&#8217;s about time&#8221;, others might say &#8220;Why bother?&#8221;.
Well, I&#8217;ve been in school full-time for the past 2 years all while working 50+ hours a week.  So time has been scarce - and until now I&#8217;ve only managed to [...]]]></description>
			<content:encoded><![CDATA[<p>Its true, I&#8217;ve committed myself to learning Japanese Kanji.  Some of you might be saying &#8220;It&#8217;s about time&#8221;, others might say &#8220;Why bother?&#8221;.</p>
<p>Well, I&#8217;ve been in school full-time for the past 2 years all while working 50+ hours a week.  So time has been scarce - and until now I&#8217;ve only managed to <a href="http://www.japanesepod101.com/learn-japanese.php">learn Japanese Hirigana and Katakana</a> which has been quite helpful.  But in the end Kanji is necessary if I want to advance my Japanese proficiency.</p>
<p>At the time of this writing I have covered, practiced, drilled, and memorized 169 Kanji in the last month.  I feel somewhat accomplished.  My goal is 300 by the end of July.  300 Kanji will be the basis for me passing the Japanese Language Proficiency Test (JLPT) level 3.</p>
<p>Sounds like a lot, right?  Well consider that the next level in difficulty (JLPT 2) requires a working knowledge of 1000 Kanji.  And what does the most difficult level require?  2000.</p>
<p>I think 2009 is the year of Kanji for me ^^</p>
]]></content:encoded>
			<wfw:commentRss>http://www.forthecode.org/2008/07/07/169-kanji-and-growing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WetNote.com - a brush with Encryption</title>
		<link>http://www.forthecode.org/2008/06/26/wetnotecom-a-brush-with-encryption/</link>
		<comments>http://www.forthecode.org/2008/06/26/wetnotecom-a-brush-with-encryption/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 06:33:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Software Projects]]></category>

		<guid isPermaLink="false">http://www.forthecode.org/2008/06/26/wetnotecom-a-brush-with-encryption/</guid>
		<description><![CDATA[So this is my first official post about the site.  It was a &#8220;for-fun&#8221; project that is here to stay.  What can I say, I like it =)

This is a different concept - and if it has already been done before, well it probably hasn&#8217;t been done in the same way.
Essentially, wetnote.com lets [...]]]></description>
			<content:encoded><![CDATA[<p>So this is my first official post about the site.  It was a &#8220;for-fun&#8221; project that is here to stay.  What can I say, I like it =)</p>
<p><a href="http://www.wetnote.com/notebook/cwabbott/18" target="_blank"><img src="http://www.wetnote.com/notebook/cwabbott/image18" /></a></p>
<p>This is a different concept - and if it has already been done before, well it probably hasn&#8217;t been done in the same way.</p>
<p>Essentially, <a href="http://www.wetnote.com">wetnote.com lets you write encrypted messages or notes</a> to other people.  A very simple concept, and likewise, a very simple (on the outside) website.</p>
<p>Underneath, however, lurks a big effort and many lines of object-oriented code.  The seperation of logic and display is clear, and the layer of data encryption is suitably abstracted.</p>
<p>I&#8217;ve dug my heels deep into TwoFish encryption along with Cipher-block chaining and other technologies.  My interest is growing, and I feel that data security is going to be a particular niche of expertise for me.</p>
<p>If you haven&#8217;t checked out the site yet, give it a whirl.  You can post a note without signing up, but I&#8217;d rather you <a href="http://www.wetnote.com/account/create" title="Wetnote.com Share encrypted messages or notes">just do a free signup to see the cool features</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.forthecode.org/2008/06/26/wetnotecom-a-brush-with-encryption/feed/</wfw:commentRss>
		</item>
		<item>
		<title>System i SQL Record Locks and PHP</title>
		<link>http://www.forthecode.org/2008/02/03/system-i-sql-record-locks-and-php/</link>
		<comments>http://www.forthecode.org/2008/02/03/system-i-sql-record-locks-and-php/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 01:58:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.forthecode.org/2008/02/03/system-i-sql-record-locks-and-php/</guid>
		<description><![CDATA[This is just a reply to a forum post I made some time ago.  Thought it wise to save it here, lest I forget where it was at =)
  Their response is what I was expecting - all db resources in the web world are generally destroyed between each request (the stateless-www). Unfortunately [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a reply to a forum post I made some time ago.  Thought it wise to save it here, lest I forget where it was at =)</p>
<blockquote><p> <span class="MsgBodyText"> Their response is what I was expecting - all db resources in the web world are generally destroyed between each request (the stateless-www). Unfortunately for those of us interacting with software that operates under a different paradigm - this simply wont do.</span></p>
<p>At my previous employer (I freelance now) we made this work by writing an RPG program and a CL program. When PHP needed to lock a record - we called the CL passing it the file and record that we wanted to lock. The CL would then call the RPG-lock program and it would lock the record for us.</p>
<p>You may have a couple questions on how this really worked, and why we chose to call a CL that called an RPG program&#8230; so let me explain a little(and be assured - THIS DID WORK WITHOUT A PROBLEM FOR US).</p>
<p>First off, we had to call a CL from PHP -&gt; which in turn called an RPG program, so that the CL script would end successfully which would allow our PHP script to continue processing (otherwise our PHP script would wait indefinitely for the RPG program &#8212; which is keeping a lock for us).</p>
<p>Second, I developed a PHP 5 framework with the System i / i5OS in mind - while doing so I wanted to deeply integrate the PHP SESSIONS - so that they could easily interact with Green Screen Sessions. While doing so - we managed to come up with a system that involved a DataQ for each PHP SESSION. Using the Dataq we could pass messages to interactive Green Screen sessions, other interactive PHP Sessions, and even messages to RPG programs (such as our Record-Lock program). Whenever we called the Record-Lock CL we passed it the PHP SESSION&#8217;s dataq. Since the RPG-lock program now knew what PHP Session called it (via its DataQ) - it would sit and wait for an UNLOCK instruction to be placed into the DataQ.</p>
<p>So the PHP Session could go through multiple pages and not worry about the record lock disappearing. And whenever it was ready to update and unlock the record - it would just drop the UNLOCK instruction into its dataQ.</p>
<p>There were a few other things to consider (what happens if the person in the web browser clicks that red X in the top right?), but we were able to solve those as well.</p>
<p>I hope that gives you some idea of how you can solve this issue - because it is doable!</p></blockquote>
<p>The <a href="http://www.zend.com/forums/index.php?t=msg&amp;th=4818&amp;start=0&amp;S=19c1b49773e31b79449ee1f4bf2915f8" target="_blank">original post can be found here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.forthecode.org/2008/02/03/system-i-sql-record-locks-and-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HTML and PHP the basics</title>
		<link>http://www.forthecode.org/2007/10/16/html-and-php-the-basics/</link>
		<comments>http://www.forthecode.org/2007/10/16/html-and-php-the-basics/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 21:52:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP Training]]></category>

		<guid isPermaLink="false">http://www.forthecode.org/2007/10/16/html-and-php-the-basics/</guid>
		<description><![CDATA[Below is a link to a presentation I gave early in 2007.  My fellow RPG developer&#8217;s were just starting to get interested in PHP and I thought it wise to distinguish the differences between PHP / RPG / and HTML.
I think it helped them out before they took their first online PHP training course. [...]]]></description>
			<content:encoded><![CDATA[<p>Below is a link to a presentation I gave early in 2007.  My fellow RPG developer&#8217;s were just starting to get interested in PHP and I thought it wise to distinguish the differences between PHP / RPG / and HTML.</p>
<p>I think it helped them out before they took their first online PHP training course.  So, I hope it can be of help to someone else as well.  I believe that if you are making the leap from RPG to PHP - you need to find that common ground before you really get moving.   In several areas I tried to highlight a few commonalities between these different technologies.</p>
<p><a href="http://www.forthecode.org/wp-content/uploads/2007/10/html-php.ppt" title="HTML and PHP my first Presentation">HTML and PHP my first Presentation</a></p>
<p>Now let me give a disclaimer - I still have relatively little experience working with RPG, but I feel confident my comparisons are somewhat accurate.  However, if they aren&#8217;t, or if you can give a better example - please leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.forthecode.org/2007/10/16/html-and-php-the-basics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DB2. Resources. Overhead.</title>
		<link>http://www.forthecode.org/2007/10/15/db2-resources-overhead/</link>
		<comments>http://www.forthecode.org/2007/10/15/db2-resources-overhead/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 02:52:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[i, PHP, and me]]></category>

		<guid isPermaLink="false">http://www.forthecode.org/2007/10/15/db2-resources-overhead/</guid>
		<description><![CDATA[I want to point out a potential &#8220;gotcha&#8221; to anyone moving from the traditional LAMP (Linux, Apache, MySQL, PHP) stack to PHP on the IBM System i + DB2 (is there an acronym for that yet? iADP?).
PHP loves MySQL&#8230; so much so that MySQL has always received favorable treatment. Although I love MySQL too, I [...]]]></description>
			<content:encoded><![CDATA[<p>I want to point out a potential &#8220;gotcha&#8221; to anyone moving from the traditional LAMP (Linux, Apache, MySQL, PHP) stack to PHP on the IBM System i + DB2 (is there an acronym for that yet? iADP?).</p>
<p>PHP loves MySQL&#8230; so much so that MySQL has always received favorable treatment. Although I love MySQL too, I was a bit upset when that close relationship cost me a lot of time with my new datasource.  Lets be honest, one of the larger overheads in your application is the connection it has to make to the database - although it usually isn&#8217;t noticeable, it still isn&#8217;t as fast as the code itself.  However, if your PHP programs are constantly calling db2_connect you are certainly going to see some overhead&#8230;</p>
<p>Generally this wont affect you - simply because you shouldn&#8217;t be making multiple calls to db2_connect in your code.  In my case, I was developing on a Linux + MySQL server at first, and was using mysql_connect wrapped within a class following the Singleton pattern.  In my tests on the Linux machine I saw no problems, and it seemed to work as expected (anytime my application requested the connection - the class returned that same open database resource link).  However, when I ported it to the System i and DB2 I saw my same programs go from &lt; 1 second execution to 6 seconds!  Here is the gotcha:</p>
<blockquote><p>&#8220;If a second call is made to <strong>mysql_connect()</strong> with the same arguments, no  new link will be established, but instead, the link identifier of the already  opened link will be returned.&#8221; &#8211;PHP Help Manual</p></blockquote>
<p>Do not let them fool you - although db2_connect looks very similar to mysql_connect in the manual - it will not emulate this feature!  Unfortunately the egg was on my face, simply because the Singleton class I thought was working - turned out to have a slight mistype in it.  Now, you are probably thinking that my application was horribly written to have such a performance impact from a few extra DB2 connect calls&#8230; well, that wasn&#8217;t the case - because at most I may have checked for a db connection at approximately 4-5 locations during runtime.  But what I discovered from IBM (and from error logs) is that opening a second connection (or link resource) in PHP can cause a lot of errors.  This is also a problem with other CGI interfaces (confirmed by IBM support).</p>
<p>Although this slight difference in connection implementation cost me many an hour, it did help me find a problem in design.  Good or bad, take it as you will - but take note and ensure you&#8217;re not wasting precious resources =)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.forthecode.org/2007/10/15/db2-resources-overhead/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Quick Setup of PHP</title>
		<link>http://www.forthecode.org/2007/10/15/quick-setup-of-php/</link>
		<comments>http://www.forthecode.org/2007/10/15/quick-setup-of-php/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 01:53:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP Training]]></category>

		<guid isPermaLink="false">http://www.forthecode.org/2007/10/15/quick-setup-of-php/</guid>
		<description><![CDATA[Presentations are part of my weekly routine, so it seems.  Many of these are geared toward different levels of PHP + HTML experience.  I plan on posting these here with a brief description of each as time goes by.
This small group of slides is aimed at helping the newcomer get a PHP development [...]]]></description>
			<content:encoded><![CDATA[<p>Presentations are part of my weekly routine, so it seems.  Many of these are geared toward different levels of PHP + HTML experience.  I plan on posting these here with a brief description of each as time goes by.</p>
<p>This small group of slides is aimed at helping the newcomer get a PHP development environment up and running on their own PC.  If you haven&#8217;t used <a href="http://www.uniformserver.com" title="Uniserver for PHP / MySQL / Apache" target="_blank">Uniserver</a> before, be sure to check it out - I highly recommend it.</p>
<p>As you will notice, these slides are not very cohesive, but I covered how to get Uniserver, and why you should investigate phpMyAdmin.  I also covered the use of the mysql_* functions instead of the much improved mysqli_* versions (simply because many hosts still do not have them - however, if you are only developing locally - I highly suggest trying them out).</p>
<p>The last slide is just a filler - but is an extremely simple example of an xHTML table.</p>
<p><a href="http://www.forthecode.org/wp-content/uploads/2007/10/setting-up-a-development-environment.ppt" title="Setting Up a Local Development Environment">Setting Up a Local Development Environment</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.forthecode.org/2007/10/15/quick-setup-of-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Refactoring Vital to Software Engineering</title>
		<link>http://www.forthecode.org/2007/10/14/refactoring-vital-to-software-engineering/</link>
		<comments>http://www.forthecode.org/2007/10/14/refactoring-vital-to-software-engineering/#comments</comments>
		<pubDate>Sun, 14 Oct 2007 20:49:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.forthecode.org/?p=1</guid>
		<description><![CDATA[I just wanted to point out that on my other blog ForTheCode.com (.com!) I recently posted about refactoring.  Although it should have been on this site, its going to stay there for now - so as not to duplicate my efforts&#8230;
A snippet:
&#8220;Refactoring is a process of redesign that prevents software entropy, and was first [...]]]></description>
			<content:encoded><![CDATA[<p class="content">I just wanted to point out that on my other blog ForTheCode.com (.com!) I recently posted about refactoring.  Although it should have been on this site, its going to stay there for now - so as not to duplicate my efforts&#8230;</p>
<p>A snippet:</p>
<blockquote><p>&#8220;Refactoring is a process of redesign that prevents software entropy, and was first coined as a software development term during the early days of the Smalltalk community. Refactoring, in itself, is nothing amazing&#8230;&#8221;</p></blockquote>
<p>Read more on <a href="http://www.forthecode.com/user/comment/34" target="_blank">ForTheCode.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.forthecode.org/2007/10/14/refactoring-vital-to-software-engineering/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
