<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ronware.org/w/index.php?action=history&amp;feed=atom&amp;title=Blog%2FOctober_2018%2FOct_5th</id>
	<title>Blog/October 2018/Oct 5th - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ronware.org/w/index.php?action=history&amp;feed=atom&amp;title=Blog%2FOctober_2018%2FOct_5th"/>
	<link rel="alternate" type="text/html" href="https://ronware.org/w/index.php?title=Blog/October_2018/Oct_5th&amp;action=history"/>
	<updated>2026-05-15T04:53:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://ronware.org/w/index.php?title=Blog/October_2018/Oct_5th&amp;diff=11034&amp;oldid=prev</id>
		<title>Ron at 05:41, 12 October 2018</title>
		<link rel="alternate" type="text/html" href="https://ronware.org/w/index.php?title=Blog/October_2018/Oct_5th&amp;diff=11034&amp;oldid=prev"/>
		<updated>2018-10-12T05:41:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:41, 12 October 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot; &gt;Line 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{nav|Blog|Blog|Blog/September 2018/Sep 28th|Sep 28th||}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{nav|Blog|Blog|Blog/September 2018/Sep 28th|Sep 28th|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Blog/October 2018/Oct 12th&lt;/ins&gt;|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Oct 12th&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ron</name></author>
	</entry>
	<entry>
		<id>https://ronware.org/w/index.php?title=Blog/October_2018/Oct_5th&amp;diff=11024&amp;oldid=prev</id>
		<title>Ron: Created page with &quot;&lt;!-- vim: tw=0 complete=.,w,b,kspell spelllang=en :   --&gt; {{blog}}  &#039;&#039;&#039;October 5th&#039;&#039;&#039;  The week started off with preparations for the holiday [https://en.wikipedia.org/wiki/Sh...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ronware.org/w/index.php?title=Blog/October_2018/Oct_5th&amp;diff=11024&amp;oldid=prev"/>
		<updated>2018-10-05T06:38:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;!-- vim: tw=0 complete=.,w,b,kspell spelllang=en :   --&amp;gt; {{blog}}  &amp;#039;&amp;#039;&amp;#039;October 5th&amp;#039;&amp;#039;&amp;#039;  The week started off with preparations for the holiday [https://en.wikipedia.org/wiki/Sh...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!-- vim: tw=0 complete=.,w,b,kspell spelllang=en :  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{{blog}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;October 5th&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The week started off with preparations for the holiday [https://en.wikipedia.org/wiki/Shemini_Atzeret “Shemini ʿAṣeret”], which is on the “eighth day” of Sukkot; but since Sukkot only has seven days, this holiday is a separate one, though it’s adjacent to the preceding holiday.  Yes, we’re confused by it too.&lt;br /&gt;
&lt;br /&gt;
Confusion notwithstanding, we had a restful holiday; we decided that sleeping-in was a good idea, so we pretty much were lazy bums.  Not that there’s anything wrong with that, you understand!  Anyway, the beginning-of-the-Jewish-year-holiday bonanza is over, and we’re back to work.&lt;br /&gt;
&lt;br /&gt;
Esther &amp;#039;&amp;#039;really&amp;#039;&amp;#039; went back to work: she’s got IRS deadlines and her company has a big backlog of work because of the holidays, so she is working every day, at their office.  She comes back exhausted, and I try my best to have a decent dinner waiting for her.  I’m the domestic type.&lt;br /&gt;
&lt;br /&gt;
I too have gone “back to work”.  Some of my clients have awakened and are preparing to give me tasks, and a brand-new (potential) client found me via “big-data” analysis.  Don’t ask me.&lt;br /&gt;
&lt;br /&gt;
But I spent most of my time doing some research for 8th.  Specifically, on speeding up some of the slower parts.  My big win was getting “maps” to be about twice as fast as before (gory details ahead, you’ve been warned!), which results in 8th performing one of my benchmarks more than twice as fast as the previously fastest version.  So that’s pretty cool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;tech&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
So what &amp;#039;&amp;#039;was&amp;#039;&amp;#039; the big speedup?  First, I’ll explain what a “map” is, in case you don’t already know.  All it is, is a way to make it possible to associate a “key” (usually a bit of text, like “cat”) with a “value” (could be anything, like “Felix”).  It’s a data-structure which is used extensively in many programming languages, and certainly it is in 8th.&lt;br /&gt;
&lt;br /&gt;
All versions of 8th until this current one, used the [https://en.wikipedia.org/wiki/Hash_table “hash table”] implementation from [https://sqlite.org/index.html SQLite].  I did that because SQLite’s known to be fast and very stable, and the code is free to be used.  But then I did some benchmarking against other languages, specifically to see how my “map” fared.  It didn’t do so well, to be honest.&lt;br /&gt;
&lt;br /&gt;
Some of that’s due to other architectural issues in 8th, but a significant bit is due to the choice of hash-table used by SQLite (and 8th).  The version they use is a “chaining” one, which in that implementation did a lot of memory allocations (when there were “hash collisions”).  I switched that to an “open addressing” version (with limited linear probing).&lt;br /&gt;
&lt;br /&gt;
As a result, the hash-table (”map”) implementation in 8th is now about twice as fast as before, as well as using less memory in general.  Win-win!&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;&amp;lt;/tech&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides all that, nothing exciting to report.  Trying to resume our normal schedule after all the holidays, and not succeeding too well just yet.&lt;br /&gt;
&lt;br /&gt;
It’s been quite hot, though it’s going to be relatively pleasant for the upcoming week.  According to the weather site I use, this past September marks four months in a row which were average or below average in temperature.  I concur: this summer’s been very mild for the Middle East (at least, for our part of it).&lt;br /&gt;
&lt;br /&gt;
We’re back to the basic-three this &amp;#039;&amp;#039;shabbat&amp;#039;&amp;#039;. We’re looking forward to:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;ḥalla&amp;#039;&amp;#039;,&lt;br /&gt;
chicken soup with matsa-balls,&lt;br /&gt;
chicken breast with artichokes,&lt;br /&gt;
various &amp;#039;&amp;#039;salatim&amp;#039;&amp;#039;,&lt;br /&gt;
and chocolate-chip cookie bars.&lt;br /&gt;
&lt;br /&gt;
Until next time,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;shabbat shalom&amp;#039;&amp;#039; and &amp;#039;&amp;#039;ḥag sameaḥ&amp;#039;&amp;#039;!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{nav|Blog|Blog|Blog/September 2018/Sep 28th|Sep 28th||}}&lt;/div&gt;</summary>
		<author><name>Ron</name></author>
	</entry>
</feed>