<?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>vultaire.net &#187; Software Development</title>
	<atom:link href="http://www.vultaire.net/blog/category/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vultaire.net/blog</link>
	<description>The Blog</description>
	<lastBuildDate>Tue, 24 Apr 2012 13:12:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>J-Ben 2: update</title>
		<link>http://www.vultaire.net/blog/2010/01/19/j-ben-2-update/</link>
		<comments>http://www.vultaire.net/blog/2010/01/19/j-ben-2-update/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 14:30:07 +0000</pubDate>
		<dc:creator>Paul Goins</dc:creator>
				<category><![CDATA[J-Ben]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.vultaire.net/blog/?p=57</guid>
		<description><![CDATA[Obviously the New Years J-Ben release didn&#8217;t happen.  Anyway, I&#8217;m going to remove any tentative date on the software&#8217;s release, although I am continuing to work on it (as is evidenced by the git repository logs). I&#8217;ve been doing a lot of code reorg, but things are starting to look good.  I&#8217;m also rethinking what&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Obviously the New Years J-Ben release didn&#8217;t happen.  Anyway, I&#8217;m going to remove any tentative date on the software&#8217;s release, although I am continuing to work on it (as is evidenced by the git repository logs).</p>
<p>I&#8217;ve been doing a lot of code reorg, but things are starting to look good.  I&#8217;m also rethinking what&#8217;s really required by the program and am focusing on getting the necessities implemented cleanly first, before even thinking about some of the old &#8220;extras&#8221; like &#8220;mobile mode&#8221;.  I&#8217;ve also decided to, for now, drop development on the console interface and focus purely on the GTK one.</p>
<p>Anyway, that&#8217;s that.  To quote 3D Realms, J-Ben 2 will be done &#8220;When Its Done.&#8221;  No specific timeframe; I feel that&#8217;d be rude at this point in time with how little time I have.  But unlike Duke Nukem Forever, J-Ben <em>will</em> be released.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vultaire.net/blog/2010/01/19/j-ben-2-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy New Year!</title>
		<link>http://www.vultaire.net/blog/2009/12/30/happy-new-year/</link>
		<comments>http://www.vultaire.net/blog/2009/12/30/happy-new-year/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 16:29:55 +0000</pubDate>
		<dc:creator>Paul Goins</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[J-Ben]]></category>
		<category><![CDATA[Japan Blog]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.vultaire.net/blog/?p=41</guid>
		<description><![CDATA[The new year has nearly arrived, and with it, a small update. For family, I have some big personal news.  I prefer not to say it publicly right now, but if you ask Mom, she can tell you what it is.  Otherwise, ask me in an e-mail directly.  I&#8217;ll update this in a couple of [...]]]></description>
			<content:encoded><![CDATA[<p>The new year has nearly arrived, and with it, a small update.</p>
<p>For family, I have some big personal news.  I prefer not to say it publicly right now, but if you ask Mom, she can tell you what it is.  Otherwise, ask me in an e-mail directly.  I&#8217;ll update this in a couple of weeks when it&#8217;s safe to reveal this.</p>
<p>For everyone else: well, I&#8217;ve now moved to Amagasaki, back in Hyogo prefecture.  I no longer live in a &#8220;gaijin house&#8221;, but rather have a proper two bedroom semi-new apartment.  Got a good price on it, and of course I found out a few reasons later; I&#8217;ve known that it was close to both a highway (overpass) and a railroad, but I did not know that it was close enough to the highway for &#8220;earthquakes&#8221; to happen when a semi truck goes across it at night.  Also, in winter it is rather cold; Yukari keeps complaining about it.  I&#8217;m sure she&#8217;d rather I found a different place, but considering how much money I&#8217;ve put down on this one, I don&#8217;t see myself moving so soon.  But those weak points aside, it&#8217;s a fairly comfortable place, very roomy for a Japanese apartment, in a halfway decent neighborhood.  I no longer live in a slum, yay!!</p>
<p>Then, on the development front, J-Ben development has of course been on and off.  Since I&#8217;m on vacation from work, I&#8217;m planning to get at least a working beta of J-Ben 2 out within the next week.  I have the basic individual pieces working fairly well; I just need to hook them together properly.  The beta will not have all the same features as J-Ben 1, but it should be a much quicker program.</p>
<p>I also noticed just today that J-Ben 1 does not seem to want to compile on Ubuntu Karmic.  Seems that the Boost libraries are not being linked in properly, perhaps due to being in a different directory or something.  More reason to eliminate the Boost dependency and get everything going with the Python version.</p>
<p>That&#8217;s all for this time &#8211; take care everyone, and have a happy new year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vultaire.net/blog/2009/12/30/happy-new-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python snippet: SAX parser with internal entity expansion disabled</title>
		<link>http://www.vultaire.net/blog/2009/07/20/python-snippet-sax-parser-with-internal-entity-expansion-disabled/</link>
		<comments>http://www.vultaire.net/blog/2009/07/20/python-snippet-sax-parser-with-internal-entity-expansion-disabled/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 19:08:02 +0000</pubDate>
		<dc:creator>Paul Goins</dc:creator>
				<category><![CDATA[J-Ben]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.vultaire.net/blog/?p=23</guid>
		<description><![CDATA[This was a rough problem. I&#8217;m using Python&#8217;s SAX modules for parsing JMdict, and ran into a problem regarding its use of XML entities. Nothing wrong with JMdict, but the expansion is rather verbose and does not lend itself well to what I&#8217;m doing. I don&#8217;t want &#8220;word containing irregular kanji usage&#8221;, but rather, I [...]]]></description>
			<content:encoded><![CDATA[<p>This was a rough problem.  I&#8217;m using Python&#8217;s SAX modules for parsing JMdict, and ran into a problem regarding its use of XML entities.  Nothing wrong with JMdict, but the expansion is rather verbose and does not lend itself well to what I&#8217;m doing.  I don&#8217;t want &#8220;word containing irregular kanji usage&#8221;, but rather, I want the &#8220;iK&#8221; code.</p>
<p>Unfortunately, the default ExpatParser doesn&#8217;t have a clear way to disable this.  But if you read the docs closely enough, you can find out about setting a &#8220;default handler&#8221; for it, which has the side effect of disabling internal expansion.</p>
<p>This isn&#8217;t a perfect fix, but here&#8217;s the class I used to get this done:</p>
<p><span id="more-23"></span></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># Code is Copyright 2009 by Paul Goins</span>
<span style="color: #808080; font-style: italic;"># Released into the public domain - but let me know if this is useful!</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">xml</span>.<span style="color: black;">sax</span>.<span style="color: black;">expatreader</span> <span style="color: #ff7700;font-weight:bold;">import</span> ExpatParser
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> ExpatParserNoEntityExp<span style="color: black;">&#40;</span>ExpatParser<span style="color: black;">&#41;</span>:
&nbsp;
    <span style="color: #483d8b;">&quot;&quot;&quot;An overridden Expat parser class which disables entity expansion.&quot;&quot;&quot;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> reset<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        ExpatParser.<span style="color: black;">reset</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>._parser.<span style="color: black;">DefaultHandler</span> = <span style="color: #008000;">self</span>.<span style="color: black;">dummy_handler</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> dummy_handler<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, <span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kwargs<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">pass</span></pre></div></div>

<p>So, use an instance of this class instead of one by xml.sax.make_parser (or xml.sax.parse, for that matter).  Then, in your xml.sax.handler.ContentHandler, specify a handler for skippedEntry(self, name), since that&#8217;s where your internal entities are going to pop up.  By the way, built-ins such as &amp;amp; and &amp;lt; still seem to be parsed; at least in the case of JMdict it seems to just affect the parsing of the inline DTD.</p>
<p>Hope this helps someone!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vultaire.net/blog/2009/07/20/python-snippet-sax-parser-with-internal-entity-expansion-disabled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recent Events</title>
		<link>http://www.vultaire.net/blog/2008/05/27/recent-events/</link>
		<comments>http://www.vultaire.net/blog/2008/05/27/recent-events/#comments</comments>
		<pubDate>Tue, 27 May 2008 00:41:27 +0000</pubDate>
		<dc:creator>Paul Goins</dc:creator>
				<category><![CDATA[J-Ben]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.vultaire.net/blog/?p=17</guid>
		<description><![CDATA[It&#8217;s been quite some time since I&#8217;ve updated this blog, so today I&#8217;ll write a few words. My life&#8217;s been pretty busy as of late, preparing for job hunting here in Japan. I will be continuing to live here for a while longer; I am unsure how many more years. So, I&#8217;m beginning to search [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been quite some time since I&#8217;ve updated this blog, so today I&#8217;ll write a few words.</p>
<p>My life&#8217;s been pretty busy as of late, preparing for job hunting here in Japan. I will be continuing to live here for a while longer; I am unsure how many more years. So, I&#8217;m beginning to search for employment here in Japan as a software engineer. Also, I am actually being kept somewhat busy at my job as of late, which is without question a good thing, except that I do have less time to work on my projects.</p>
<p>Speaking of my projects, I do have an additional one now. I have become the official maintainer of GNU Typist, and have been working on it a little to prepare it for a new release. The next version should be available within a few days from http://www.gnu.org/software/gtypist. This is a lesser priority project for me, and mainly I&#8217;m going to try to rely on contributions from other programmers, however I&#8217;ll be handling support issues and will occasionally contribute code. Both the gtypist patches here on vultaire.net have been integrated into the soon-to-be-released version.</p>
<p>J-Ben has been sitting idle as of late, since I am trying to focus on job hunting as well as actually using J-Ben to study Japanese. However, I have a number of ideas for improvement:</p>
<p>* Add a new dictionary loader for JMDict-format dictionaries.<br />
* Rewrite GUI so that the GUI will load instantly but be disabled while dictionaries load. Currently J-Ben just loads in the background, and on some systems this is very slow. I&#8217;d like quick feedback that the program is indeed loading. A splash screen would also work, but I don&#8217;t really care for splashes so much.<br />
* Add lazy dictionary loading. Dictionaries are auto-loaded when they are needed, and not before. It will slow down the first search but should be an overall improvement, especially if the user only uses one of the dictionaries (without cross referencing between them).<br />
* Add dictionary cache. A cache file would be loaded instead of the dictionary files, if present. It&#8217;s hard to get any faster at loading data into memory than this.<br />
* Read data from dictionaries on disk as required. This may lower our memory footprint significantly at a (hopefully slight) cost in speed. Implementation may be a challenge since I&#8217;m supporting many dictionary formats, but if this code is based on the above mentioned cache instead, it should be a reasonable goal.<br />
* Add multi-radical search to the Kanji search window.<br />
* Tweak the resizing code for the Kanji search window.<br />
* Replace GTKmm code with straight GTK+. Yes, this seems backwards, but it&#8217;ll save about 5.2M of hard drive space on installs. GTK+ itself is almost 8.75M, which is already a heavy penalty to pay. I&#8217;d rather not add more weight to J-Ben than necessary.</p>
<p>The above is a lot of work, and I&#8217;ve been trying hard to avoid getting sucked into it too soon. J-Ben as it stands is not so bad, but it does take too long to load and eats a bit of memory since all dictionaries are loaded into RAM for performance. I think this may make it less appealing than other programs to many users, and would like to, eventually, fix this.</p>
<p>Finally, I&#8217;ve been working on a small new project. It&#8217;s a program called NonoPaper, a &#8220;helper&#8221; program for doing nonogram puzzles, also known as gridlers or Japanese number crosswords. It&#8217;s written in C++ with GTK+ (not GTKmm), and it supports multiple color nonograms and partial-block nonograms (nonograms where the end of a segment may be a right triangle rather than a square). No solver is intended; this is meant just to be an application for doing nonograms yourself.</p>
<p>That&#8217;s a summary of what&#8217;s in the works. So, expect a new release of GNU Typist from www.gnu.org/software/gtypist in a few days, and maybe within a month you can expect a first beta of the nonogram program. J-Ben, barring any critical issues (or unexpected extra spare time), will be put on the back burner until probably late June or early July.</p>
<p>- Paul</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vultaire.net/blog/2008/05/27/recent-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Ben 1.1.1: details</title>
		<link>http://www.vultaire.net/blog/2007/12/05/j-ben-111-details/</link>
		<comments>http://www.vultaire.net/blog/2007/12/05/j-ben-111-details/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 06:22:25 +0000</pubDate>
		<dc:creator>Paul Goins</dc:creator>
				<category><![CDATA[J-Ben]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.vultaire.net/blog/2007/12/05/j-ben-111-details/</guid>
		<description><![CDATA[Over the last two days I&#8217;ve finished a series of bug fixes for J-Ben, addressing the multibyte search issue, a previously unknown infinite loop bug, and some other minor issues. I&#8217;m getting ready for a new release, which I think will be out within the next few days. However, I think there&#8217;s one more feature [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last two days I&#8217;ve finished a series of bug fixes for J-Ben, addressing the multibyte search issue, a previously unknown infinite loop bug, and some other minor issues.  I&#8217;m getting ready for a new release, which I think will be out within the next few days.</p>
<p>However, I think there&#8217;s one more feature I want to add to that release, and that is making the English-Japanese search recognize English word boundaries.  This will not affect Japanese-English searching; I may add restrictions in the future like 2-or-more kana on kana-only searches, but for the time being I don&#8217;t think it&#8217;s terribly necessary.</p>
<p>One last detail: I am pushing my code to a public git repository now.  Repository details are listed at http://repo.or.cz/w/jben.git.  Do I have a real serious reason why I chose git as opposed to CVS/SVN?  Honestly, just that I would like to learn how to use git properly since it is what is used for Linux kernel development, and I&#8217;ve been curious how different it is from CVS/SVN.</p>
<p>That&#8217;s it for now.  Oh, if anyone reading this checks out my <a href="http://www.vultaire.net/japanblog/">Japan blog</a>, I uploaded about 11 months worth of photos and videos to the <a href="http://www.vultaire.net/japanblog/media/">media</a> section last night.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vultaire.net/blog/2007/12/05/j-ben-111-details/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

