<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.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>BBSysco development log</title>
	<link>http://blog.bbsysco.com</link>
	<description>The Blog is used to track the development of the BBSysco Open Source Business Basic</description>
	<pubDate>Sat, 25 Aug 2007 02:31:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>RB Tree update</title>
		<link>http://blog.bbsysco.com/?p=39</link>
		<comments>http://blog.bbsysco.com/?p=39#comments</comments>
		<pubDate>Sat, 25 Aug 2007 02:30:33 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=39</guid>
		<description><![CDATA[We&#8217;ve been spending some time creating a generic RB tree routine for use within MSB for Global variables, Memory files, and likely a number of other items as time goes by.  During the coding we were using the general BSD tree.h module as a prototype (with appropriate copyright credit), however we did notice what appears [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been spending some time creating a generic RB tree routine for use within MSB for Global variables, Memory files, and likely a number of other items as time goes by.  During the coding we were using the general BSD tree.h module as a prototype (with appropriate copyright credit), however we did notice what appears to be a performance issue in the generally released RB tree logic. </p>
<p>We have contacted the original author and will be trying our performance enhancement in the MSB release.  It should give us one of the best RB tree implementations in terms of performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=39</wfw:commentRss>
		</item>
		<item>
		<title>Change to file naming convention</title>
		<link>http://blog.bbsysco.com/?p=38</link>
		<comments>http://blog.bbsysco.com/?p=38#comments</comments>
		<pubDate>Fri, 17 Aug 2007 02:32:32 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[General Design]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=38</guid>
		<description><![CDATA[Up to now I have been trying to decide the best way to name the various modules that comprise MSB.  While the original code generally used the first character or two as to what part of the system the &#8216;C&#8217; module played in the system, it has been a bit hard to always figure [...]]]></description>
			<content:encoded><![CDATA[<p>Up to now I have been trying to decide the best way to name the various modules that comprise MSB.  While the original code generally used the first character or two as to what part of the system the &#8216;C&#8217; module played in the system, it has been a bit hard to always figure out where what in.</p>
<p>I have tried a few combinations on file naming for the modules we have written so far, but in general I have not been happy with the results.  I think I have decided to change the module names to the form:</p>
<p>xx_yyyy.c</p>
<p>Where &#8216;xx&#8217; will indicate the section of the system the module relates to such as:</p>
<ul>
<li>nf - Numeric function</li>
<li>sf - String function</li>
<li>nv - Numeric variable</li>
<li>sv - String variable</li>
<li>io - Generic IO</li>
</ul>
<p>This is only a partial list.  As we go forward we will see what other breakdowns we require to ultimately come up with a complete list of module sections.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=38</wfw:commentRss>
		</item>
		<item>
		<title>CSE function added</title>
		<link>http://blog.bbsysco.com/?p=37</link>
		<comments>http://blog.bbsysco.com/?p=37#comments</comments>
		<pubDate>Fri, 17 Aug 2007 02:26:50 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=37</guid>
		<description><![CDATA[The CSE function was added to the system.  In adding the function we had the opportunity to look at the compare logic in the system.  With the design of the compare routine and the built in stacking logic, the CSE function took only a few hours to implement.  This bodes well for future enhancements.
Tomorrow we [...]]]></description>
			<content:encoded><![CDATA[<p>The CSE function was added to the system.  In adding the function we had the opportunity to look at the compare logic in the system.  With the design of the compare routine and the built in stacking logic, the CSE function took only a few hours to implement.  This bodes well for future enhancements.</p>
<p>Tomorrow we will look at enhancing the TBL function.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=37</wfw:commentRss>
		</item>
		<item>
		<title>Trig and Math functions added</title>
		<link>http://blog.bbsysco.com/?p=36</link>
		<comments>http://blog.bbsysco.com/?p=36#comments</comments>
		<pubDate>Fri, 17 Aug 2007 01:27:16 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=36</guid>
		<description><![CDATA[We added the COS, SIN, TAN, ACS, ASN, ATN trigonometric functions along with the LOG, EXP and SQR math functions to the system.  In order to simplify the coding we placed all these functions in a common module called nf_trig.c rather than separate modules for each function which seemed a waste given each function [...]]]></description>
			<content:encoded><![CDATA[<p>We added the COS, SIN, TAN, ACS, ASN, ATN trigonometric functions along with the LOG, EXP and SQR math functions to the system.  In order to simplify the coding we placed all these functions in a common module called <strong>nf_trig</strong>.c rather than separate modules for each function which seemed a waste given each function was basically identical and only a few lines long.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=36</wfw:commentRss>
		</item>
		<item>
		<title>New System variables</title>
		<link>http://blog.bbsysco.com/?p=35</link>
		<comments>http://blog.bbsysco.com/?p=35#comments</comments>
		<pubDate>Thu, 16 Aug 2007 02:02:47 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=35</guid>
		<description><![CDATA[We added the system string variables

DLM - Directory delimiter
NID - Network/workstation name
UID - User-id
WHO - User-id  (same as UID but for compatibility)

During the addition we also moved the SEP system variable out of the variable stack and assigned it a fixed position.  Since MicroShare was at one time a multi-user/multi-tasking system many of [...]]]></description>
			<content:encoded><![CDATA[<p>We added the system string variables</p>
<ul>
<li>DLM - Directory delimiter</li>
<li>NID - Network/workstation name</li>
<li>UID - User-id</li>
<li>WHO - User-id  (same as UID but for compatibility)</li>
</ul>
<p>During the addition we also moved the SEP system variable out of the variable stack and assigned it a fixed position.  Since MicroShare was at one time a multi-user/multi-tasking system many of the system variables were kept in the task stack.  While this made for easy task switching it is not required nor optimal for the system to keep locating the values within the stack.</p>
<p>Since multi-tasking is now an OS issue and multi-threading would require a different approach than having task stacks, we can optimize the performance of MicroShare by moving these off the stack.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=35</wfw:commentRss>
		</item>
		<item>
		<title>Added +=, -=, *=, and /=</title>
		<link>http://blog.bbsysco.com/?p=34</link>
		<comments>http://blog.bbsysco.com/?p=34#comments</comments>
		<pubDate>Wed, 15 Aug 2007 18:35:59 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=34</guid>
		<description><![CDATA[Finalized the coding for the specialized assignment options for the LET directive.  While we did the array assignment with this change we did not include the string template variables for the assignments since this will need to looked at longer term.
During the coding we reviewed the current array assignment functions in the system.  MSB only [...]]]></description>
			<content:encoded><![CDATA[<p>Finalized the coding for the specialized assignment options for the LET directive.  While we did the array assignment with this change we did not include the string template variables for the assignments since this will need to looked at longer term.</p>
<p>During the coding we reviewed the current array assignment functions in the system.  MSB only supports assignments on full arrays &#8212; not ranges.  I will need to come back to this logic later to add in range assignments.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=34</wfw:commentRss>
		</item>
		<item>
		<title>ENV function</title>
		<link>http://blog.bbsysco.com/?p=33</link>
		<comments>http://blog.bbsysco.com/?p=33#comments</comments>
		<pubDate>Mon, 13 Aug 2007 20:17:05 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=33</guid>
		<description><![CDATA[When adding the ENV function to the system we have added an additional option of ENV(-1).  This will return &#8216;all&#8217; ENV entries to the application as a single string delimited using the system field separator. 
]]></description>
			<content:encoded><![CDATA[<p>When adding the ENV function to the system we have added an additional option of ENV(-1).  This will return &#8216;all&#8217; ENV entries to the application as a single string delimited using the system field separator. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=33</wfw:commentRss>
		</item>
		<item>
		<title>Memory Files</title>
		<link>http://blog.bbsysco.com/?p=32</link>
		<comments>http://blog.bbsysco.com/?p=32#comments</comments>
		<pubDate>Mon, 13 Aug 2007 15:41:32 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[General Design]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=32</guid>
		<description><![CDATA[Have spent some time designing the internal layouts of a memory file equivalent for MSB.  Historically I have implemented these as binary searches on a sorted list of records.  While this provides for fast look-ups, WRITE require the list to be shuffled in order to add/remove entries from the list and this can be a fairly [...]]]></description>
			<content:encoded><![CDATA[<p>Have spent some time designing the internal layouts of a memory file equivalent for MSB.  Historically I have implemented these as binary searches on a sorted list of records.  While this provides for fast look-ups, WRITE require the list to be shuffled in order to add/remove entries from the list and this can be a fairly large overhead for large memory files.</p>
<p>What I think I&#8217;m going to do for MSB is implement the memory files as &#8220;symmetric binary trees&#8221; using the generic red-black algorithm which should provide for optimum access time while reducing the insertion/removal overhead.  I had considered a splay tree algorithm which works well if the data is being recalled often as it sorts the tree based on most recent access &#8212; however I think the red-black algorithm will be better.</p>
<p>I also will likely use this for &#8221;string&#8221; based array sub-scripting that I am considering adding to MSB.  Although in this case a Splay tree might be better.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=32</wfw:commentRss>
		</item>
		<item>
		<title>Researching -= and +=</title>
		<link>http://blog.bbsysco.com/?p=31</link>
		<comments>http://blog.bbsysco.com/?p=31#comments</comments>
		<pubDate>Tue, 07 Aug 2007 04:05:31 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=31</guid>
		<description><![CDATA[We spent some time today working out the implementation of the -= and += logic.  These (and ultimately the *=, /=, ++ and &#8211;) all pose some issues for the syntax parser.  Currently when a symbol is detected (non-alphanumeric) the logic looks at the first character and from that determines what the internal code should [...]]]></description>
			<content:encoded><![CDATA[<p>We spent some time today working out the implementation of the -= and += logic.  These (and ultimately the *=, /=, ++ and &#8211;) all pose some issues for the syntax parser.  Currently when a symbol is detected (non-alphanumeric) the logic looks at the first character and from that determines what the internal code should be.  We need to change the logic slightly to handle these multi-character codes.  To do this we will basically steal the logic around the : ( which is used for input validation.</p>
<p>We also spent some time looking into MySql and in particular Berkley DB.  While this is now be owned by Oracle, the Berkley DB interface looks like it could be easily adapted to handle a Business Basic style file system.  The records are dynamic is size and key segments values are defined by the caller.  This might be a way to bring Database technology to MicroShare while avoiding the need to generate SQL which itself causes quite a bit of overhead.  Still are anticipating a MySql interface &#8212; but a direct Berkley DB may be a interesting offering.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=31</wfw:commentRss>
		</item>
		<item>
		<title>SUB function added</title>
		<link>http://blog.bbsysco.com/?p=29</link>
		<comments>http://blog.bbsysco.com/?p=29#comments</comments>
		<pubDate>Thu, 02 Aug 2007 13:28:00 +0000</pubDate>
		<dc:creator>Mike King</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.bbsysco.com/?p=29</guid>
		<description><![CDATA[Completed adding a SUB function to the  system which gave us a chance to play with a bit of the stack manipulation routines within the MSB source. With the addition of the SUB function we are getting closer to be able to run our Apache CGI interface within the MSB code.  We will still need [...]]]></description>
			<content:encoded><![CDATA[<p>Completed adding a SUB function to the  system which gave us a chance to play with a bit of the stack manipulation routines within the MSB source. With the addition of the SUB function we are getting closer to be able to run our Apache CGI interface within the MSB code.  We will still need to add an ENV  function in order to access the environment variables along with += and -=.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bbsysco.com/?feed=rss2&amp;p=29</wfw:commentRss>
		</item>
	</channel>
</rss>
