<?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>SHAOS &#187; programs</title>
	<atom:link href="https://shaos.net/blog/category/programs/feed" rel="self" type="application/rss+xml" />
	<link>https://shaos.net/blog</link>
	<description>{ Personal Blog of Shaos }</description>
	<lastBuildDate>Mon, 04 Aug 2025 00:15:41 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.1</generator>
	<item>
		<title>Hopeless v0.5</title>
		<link>https://shaos.net/blog/2010/05/hopeless-v0-5.html</link>
		<comments>https://shaos.net/blog/2010/05/hopeless-v0-5.html#comments</comments>
		<pubDate>Sun, 23 May 2010 16:22:09 +0000</pubDate>
		<dc:creator><![CDATA[Shaos]]></dc:creator>
				<category><![CDATA[functional_programming]]></category>
		<category><![CDATA[hope]]></category>
		<category><![CDATA[hopeless]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[programs]]></category>

		<guid isPermaLink="false">http://shaos.net/blog/?p=83</guid>
		<description><![CDATA[Recently I released version 0.5 of my fork of pre-existed Hope interpreter (classical functional programming language) named &#8220;Hopeless&#8221;: added &#8216;\r&#8217; to function &#8220;isspace&#8221; in ctype.hop fixed function &#8220;dir&#8221; in system_win.hop path to libraries changed to /usr/local/share/hopeless created man file hopeless.1 (modified hope.1) fixed &#8220;make install&#8221; for Hopeless new library lib/db_sqlite.hop (database support with sqlite3) added [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Recently I released version 0.5 of my fork of pre-existed <a href="http://www.soi.city.ac.uk/~ross/Hope/">Hope interpreter</a> (classical functional programming language) named &#8220;Hopeless&#8221;:</p>
<ul>
<li>added &#8216;\r&#8217; to function &#8220;isspace&#8221; in ctype.hop</li>
<li>fixed function &#8220;dir&#8221; in system_win.hop</li>
<li>path to libraries changed to /usr/local/share/hopeless</li>
<li>created man file hopeless.1 (modified hope.1)</li>
<li>fixed &#8220;make install&#8221; for Hopeless</li>
<li>new library lib/db_sqlite.hop (database support with sqlite3)</li>
<li>added functions &#8220;del&#8221; and &#8220;write_to&#8221; to lib/system.hop</li>
<li>check for &#8216;\n&#8217; and &#8216;\r&#8217; before run commands (&#8220;!&#8230;&#8221;)</li>
<li>defined constant &#8220;stdin&#8221; instead of functions &#8220;getc&#8221; and &#8220;gets&#8221; (lib/system.hop)</li>
<li>modified test _input.hop</li>
</ul>
<p>Source code: <a href="http://hopelog.com/funny/hopeless-v0.5.tar.bz2">hopeless-v0.5.tar.bz2</a> (100K)<br />
For more info see <a title="Hope Programming Language" href="http://www.hopelog.com" target="_blank">www.hopelog.com</a> where you can find all previous versions of Hopeless plus Win32 binaries.</p>
]]></content:encoded>
			<wfw:commentRss>https://shaos.net/blog/2010/05/hopeless-v0-5.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Game of Life in JavaScript</title>
		<link>https://shaos.net/blog/2009/01/today-i-implemented-of-my-old-1994-fast.html</link>
		<comments>https://shaos.net/blog/2009/01/today-i-implemented-of-my-old-1994-fast.html#comments</comments>
		<pubDate>Sun, 25 Jan 2009 03:10:00 +0000</pubDate>
		<dc:creator><![CDATA[Shaos]]></dc:creator>
				<category><![CDATA[game_of_life]]></category>
		<category><![CDATA[programs]]></category>

		<guid isPermaLink="false">http://shaos.net/blog4/?p=27</guid>
		<description><![CDATA[Today I implemented my old (1994) &#8220;fast enough&#8221; algorithm of Game of Life in JavaScript (see source code here &#8211; life.js) and now LIFE table can be &#8220;embedded&#8221; directly to HTML: 0 0 0 0 0 0 1 2 1 1 0 0 0 0 0 0 2 3 5 3 0 0 0 0 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Today I implemented my old (1994) &#8220;fast enough&#8221; algorithm of <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Game of Life</a> in JavaScript (see source code here &#8211; <a href="http://life.shabarshin.com/life/life.js">life.js</a>) and now LIFE table can be &#8220;embedded&#8221; directly to HTML:<br /><span style="font-family:fixed;"><br />
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="10_10_0_0" onclick="setcolor(10,10,0,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_0_1" onclick="setcolor(10,10,0,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_0_2" onclick="setcolor(10,10,0,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_0_3" onclick="setcolor(10,10,0,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_0_4" onclick="setcolor(10,10,0,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_0_5" onclick="setcolor(10,10,0,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_0_6" onclick="setcolor(10,10,0,6)" align="center" bgcolor="white" width="18">1</td>
<td id="10_10_0_7" onclick="setcolor(10,10,0,7)" align="center" bgcolor="white" width="18">2</td>
<td id="10_10_0_8" onclick="setcolor(10,10,0,8)" align="center" bgcolor="blue" width="18">1</td>
<td id="10_10_0_9" onclick="setcolor(10,10,0,9)" align="center" bgcolor="white" width="18">1</td>
</tr>
<tr>
<td id="10_10_1_0" onclick="setcolor(10,10,1,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_1_1" onclick="setcolor(10,10,1,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_1_2" onclick="setcolor(10,10,1,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_1_3" onclick="setcolor(10,10,1,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_1_4" onclick="setcolor(10,10,1,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_1_5" onclick="setcolor(10,10,1,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_1_6" onclick="setcolor(10,10,1,6)" align="center" bgcolor="white" width="18">2</td>
<td id="10_10_1_7" onclick="setcolor(10,10,1,7)" align="center" bgcolor="blue" width="18">3</td>
<td id="10_10_1_8" onclick="setcolor(10,10,1,8)" align="center" bgcolor="white" width="18">5</td>
<td id="10_10_1_9" onclick="setcolor(10,10,1,9)" align="center" bgcolor="white" width="18">3</td>
</tr>
<tr>
<td id="10_10_2_0" onclick="setcolor(10,10,2,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_2_1" onclick="setcolor(10,10,2,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_2_2" onclick="setcolor(10,10,2,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_2_3" onclick="setcolor(10,10,2,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_2_4" onclick="setcolor(10,10,2,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_2_5" onclick="setcolor(10,10,2,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_2_6" onclick="setcolor(10,10,2,6)" align="center" bgcolor="white" width="18">2</td>
<td id="10_10_2_7" onclick="setcolor(10,10,2,7)" align="center" bgcolor="blue" width="18">2</td>
<td id="10_10_2_8" onclick="setcolor(10,10,2,8)" align="center" bgcolor="blue" width="18">3</td>
<td id="10_10_2_9" onclick="setcolor(10,10,2,9)" align="center" bgcolor="blue" width="18">1</td>
</tr>
<tr>
<td id="10_10_3_0" onclick="setcolor(10,10,3,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_3_1" onclick="setcolor(10,10,3,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_3_2" onclick="setcolor(10,10,3,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_3_3" onclick="setcolor(10,10,3,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_3_4" onclick="setcolor(10,10,3,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_3_5" onclick="setcolor(10,10,3,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_3_6" onclick="setcolor(10,10,3,6)" align="center" bgcolor="white" width="18">1</td>
<td id="10_10_3_7" onclick="setcolor(10,10,3,7)" align="center" bgcolor="white" width="18">2</td>
<td id="10_10_3_8" onclick="setcolor(10,10,3,8)" align="center" bgcolor="white" width="18">3</td>
<td id="10_10_3_9" onclick="setcolor(10,10,3,9)" align="center" bgcolor="white" width="18">2</td>
</tr>
<tr>
<td id="10_10_4_0" onclick="setcolor(10,10,4,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_1" onclick="setcolor(10,10,4,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_2" onclick="setcolor(10,10,4,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_3" onclick="setcolor(10,10,4,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_4" onclick="setcolor(10,10,4,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_5" onclick="setcolor(10,10,4,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_6" onclick="setcolor(10,10,4,6)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_7" onclick="setcolor(10,10,4,7)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_8" onclick="setcolor(10,10,4,8)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_4_9" onclick="setcolor(10,10,4,9)" align="center" bgcolor="white" width="18">0</td>
</tr>
<tr>
<td id="10_10_5_0" onclick="setcolor(10,10,5,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_1" onclick="setcolor(10,10,5,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_2" onclick="setcolor(10,10,5,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_3" onclick="setcolor(10,10,5,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_4" onclick="setcolor(10,10,5,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_5" onclick="setcolor(10,10,5,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_6" onclick="setcolor(10,10,5,6)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_7" onclick="setcolor(10,10,5,7)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_8" onclick="setcolor(10,10,5,8)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_5_9" onclick="setcolor(10,10,5,9)" align="center" bgcolor="white" width="18">0</td>
</tr>
<tr>
<td id="10_10_6_0" onclick="setcolor(10,10,6,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_1" onclick="setcolor(10,10,6,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_2" onclick="setcolor(10,10,6,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_3" onclick="setcolor(10,10,6,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_4" onclick="setcolor(10,10,6,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_5" onclick="setcolor(10,10,6,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_6" onclick="setcolor(10,10,6,6)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_7" onclick="setcolor(10,10,6,7)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_8" onclick="setcolor(10,10,6,8)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_6_9" onclick="setcolor(10,10,6,9)" align="center" bgcolor="white" width="18">0</td>
</tr>
<tr>
<td id="10_10_7_0" onclick="setcolor(10,10,7,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_1" onclick="setcolor(10,10,7,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_2" onclick="setcolor(10,10,7,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_3" onclick="setcolor(10,10,7,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_4" onclick="setcolor(10,10,7,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_5" onclick="setcolor(10,10,7,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_6" onclick="setcolor(10,10,7,6)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_7" onclick="setcolor(10,10,7,7)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_8" onclick="setcolor(10,10,7,8)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_7_9" onclick="setcolor(10,10,7,9)" align="center" bgcolor="white" width="18">0</td>
</tr>
<tr>
<td id="10_10_8_0" onclick="setcolor(10,10,8,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_1" onclick="setcolor(10,10,8,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_2" onclick="setcolor(10,10,8,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_3" onclick="setcolor(10,10,8,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_4" onclick="setcolor(10,10,8,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_5" onclick="setcolor(10,10,8,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_6" onclick="setcolor(10,10,8,6)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_7" onclick="setcolor(10,10,8,7)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_8" onclick="setcolor(10,10,8,8)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_8_9" onclick="setcolor(10,10,8,9)" align="center" bgcolor="white" width="18">0</td>
</tr>
<tr>
<td id="10_10_9_0" onclick="setcolor(10,10,9,0)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_1" onclick="setcolor(10,10,9,1)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_2" onclick="setcolor(10,10,9,2)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_3" onclick="setcolor(10,10,9,3)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_4" onclick="setcolor(10,10,9,4)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_5" onclick="setcolor(10,10,9,5)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_6" onclick="setcolor(10,10,9,6)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_7" onclick="setcolor(10,10,9,7)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_8" onclick="setcolor(10,10,9,8)" align="center" bgcolor="white" width="18">0</td>
<td id="10_10_9_9" onclick="setcolor(10,10,9,9)" align="center" bgcolor="white" width="18">0</td>
</tr>
</tbody>
</table>
<p></span><input name="step" value="Step" onclick="step(10,10)" type="button"></p>
<p>Usually programs of LIFE operate two 2-dimensional arrays of booleans calculating neighbours for every cell in every generation by walking through nearest 8 cells for each cell on map and modifying second array according to LIFE rules (alive cell will live if it has 2 or 3 alive neighbours, dead cell will be alive again if it has exactly 3 alive neighbours, otherwise cell must be dead) as a buffer to copy it to primary array later at the end of calculation for each generation. My algorithm uses <span style="font-style: italic;">precalculated</span> number of neighbours for each cell walking through nearest 8 cell ONLY if something changed inside cell (transition from dead to alive or from alive to dead) to decrease or increase number of neighbours in 8 nearest cells respectively.</p>
]]></content:encoded>
			<wfw:commentRss>https://shaos.net/blog/2009/01/today-i-implemented-of-my-old-1994-fast.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Emulator of simple ternary computer</title>
		<link>https://shaos.net/blog/2008/11/emulator-of-simple-ternary-computer.html</link>
		<comments>https://shaos.net/blog/2008/11/emulator-of-simple-ternary-computer.html#comments</comments>
		<pubDate>Mon, 10 Nov 2008 01:35:00 +0000</pubDate>
		<dc:creator><![CDATA[Shaos]]></dc:creator>
				<category><![CDATA[3niti]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[programs]]></category>
		<category><![CDATA[ternary]]></category>

		<guid isPermaLink="false">http://shaos.net/blog4/?p=25</guid>
		<description><![CDATA[If you are interested in ternary computing check open source Java emulator of my ternary computer 3niti alpha: http://ternary.info/ternary/java.php?applet=3]]></description>
				<content:encoded><![CDATA[<p>If you are interested in ternary computing check open source Java emulator of my ternary computer <a href="http://3niti.org/">3niti alpha</a>:</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://shaos.net/blog/uploaded_images/a1num-776882.gif"><img style="cursor: pointer;" src="http://shaos.net/blog/uploaded_images/a1num-776879.gif" alt="" border="0" /></a></p>
<p><a href="http://ternary.info/ternary/java.php?applet=3">http://ternary.info/ternary/java.php?applet=3</a></p>
]]></content:encoded>
			<wfw:commentRss>https://shaos.net/blog/2008/11/emulator-of-simple-ternary-computer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Next oil change will be at 1970&#8230;</title>
		<link>https://shaos.net/blog/2008/07/next-oil-change-will-be-at-1970.html</link>
		<comments>https://shaos.net/blog/2008/07/next-oil-change-will-be-at-1970.html#comments</comments>
		<pubDate>Tue, 01 Jul 2008 23:49:00 +0000</pubDate>
		<dc:creator><![CDATA[Shaos]]></dc:creator>
				<category><![CDATA[humor]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[programs]]></category>

		<guid isPermaLink="false">http://shaos.net/blog4/?p=20</guid>
		<description><![CDATA[Now oil company where I usually change oil uses new computerized system, so now I should change oil after 3 months since zero unixtime &#8211; April 1st, 1970 (or it may be April 1st, 2070?]]></description>
				<content:encoded><![CDATA[<p>Now oil company where I usually change oil uses new computerized system, so now I should change oil after 3 months since zero unixtime &#8211; April 1st, 1970 (or it may be April 1st, 2070? <img src="https://shaos.net/blog/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /> </p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://shaos.net/blog/uploaded_images/Lube-1970-745593.jpg"><img style="cursor: pointer;" src="http://shaos.net/blog/uploaded_images/Lube-1970-745589.jpg" alt="" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>https://shaos.net/blog/2008/07/next-oil-change-will-be-at-1970.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
