<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0"
 xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
 xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:atom="http://www.w3.org/2005/Atom"
 xmlns:dcterms="http://purl.org/dc/terms/"
>

<channel>
<title></title>
<link>http://shlomif.livejournal.com/</link>
<description></description>

<item>
<title>Tech Tip: Finding CPAN Distributions that only have a Build.PL</title>
<link>http://community.livejournal.com/shlomif_tech/28615.html</link>
<description>&#x3C;p&#x3E;
A few times in the past, I wanted to find perl 5 CPAN distributions that only
had a 
&#x3C;a href=&#x22;http://search.cpan.org/dist/Module-Build/&#x22;&#x3E;Module-Build&#x3C;/a&#x3E;-based
Build.PL file and not a fallback Makefile.PL file. Yesterday, after some
trial and error, I was able to formulate 
&#x3C;a href=&#x22;http://search.yahoo.com/&#x22;&#x3E;Yahoo Search&#x3C;/a&#x3E; query, to do just that.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Here it is - the shortened URL with a hyperlink to the full one:
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://search.yahoo.com/search;_ylt=A0geusbSektKDlEAwnJXNyoA?p=%22Build.PL%22+%22This+Release%22+%22CPAN+Testers%22+-%22Makefile.PL%22+-%22create_makefile_pl%22&#x26;amp;y=Search&#x26;amp;fr=sfp&#x26;amp;vm=p&#x26;amp;vs=search.cpan.org&#x26;amp;vf=all&#x26;amp;fr2=sb-top&#x26;amp;sao=0&#x22;&#x3E;http://xrl.us/bezbkx - Yahoo Search to find Build.PL
only distributions&#x3C;/a&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
It works by looking for specific phrases in the /dist pages, looking for
&#x22;Build.PL&#x22; and specifically excluding &#x22;Makefile.PL&#x22;. I hereby place this
URL and whatever associated techniques under 
&#x3C;a href=&#x22;http://creativecommons.org/license/zero&#x22;&#x3E;CC0 / Public Domain&#x3C;/a&#x3E;. 
Enjoy!
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>search</category>
<category>tip</category>
<category>tech</category>
<category>building</category>
<category>tech tip</category>
<category>extutils-makemaker</category>
<category>build.pl</category>
<category>perl</category>
<category>build</category>
<category>module-build</category>
<category>yahoo</category>
<category>cpan</category>
<comments>http://community.livejournal.com/shlomif_tech/28615.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/28615.html</guid>
<pubDate>Wed, 01 Jul 2009 15:27:35 GMT</pubDate>
</item>
<item>
<title>Introducing CPANHQ and a Response to Limbic Region&#x27;s &#x22;Improving search.cpan.org (Advanced Search)&#x22;</title>
<link>http://community.livejournal.com/shlomif_tech/28209.html</link>
<description>&#x3C;p&#x3E;
Limbic Region recently wrote a post on his use Perl journal
titled &#x3C;a href=&#x22;http://use.perl.org/~Limbic+Region/journal/39132&#x22;&#x3E;&#x22;Improving 
search.cpan.org (Advanced Search)&#x22;&#x3C;/a&#x3E;. The post concludes by saying that 
&#x22;Feel free to add your own [ideas] - I know someone who may actually be
motivated to implement some of them as an alternate to search.cpan.org is 
reading :-)&#x22;. Since I talked with L~R about CPANHQ, a seacrch.capn.org
alternative in question, that I have been contributing to, I can assume
meant me.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Before I reply to L~R&#x27;s points, let me introduce 
&#x3C;a href=&#x22;http://github.com/bricas/cpanhq/tree/master&#x22;&#x3E;CPANHQ&#x3C;/a&#x3E;. As
documented in &#x3C;a href=&#x22;http://wiki.github.com/bricas/cpanhq&#x22;&#x3E;the first
and only wiki page it has so far&#x3C;/a&#x3E; (which I wrote two days ago), 
&#x22;CPANHQ aims to be a community-driven, meta-data-enhanced alternative to
such sites as &#x3C;a href=&#x22;http://search.cpan.org/&#x22;&#x3E;http://search.cpan.org/&#x3C;/a&#x3E;
and &#x3C;a href=&#x22;http://kobesearch.cpan.org/&#x22;&#x3E;http://kobesearch.cpan.org/&#x3C;/a&#x3E;.
Currently, the functionality is very basic, but we have great ambitions.&#x22;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I learned about CPANHQ by overhearing a conversation on Freenode&#x27;s #perl
channel. I joined the effort, and made several enhancements to the
&#x3C;a href=&#x22;http://www.catalystframework.org/&#x22;&#x3E;Catalyst&#x3C;/a&#x3E; and 
&#x3C;a href=&#x22;http://www.perlfoundation.org/perl5/index.cgi?dbix_class&#x22;&#x3E;DBIx-Class&#x3C;/a&#x3E;-based 
code, which was a useful learning experience. The functionality is still very
basic, and there&#x27;s a lot of work to do, so any help would be appreciated.
Just fork the github repository ( or 
&#x3C;a href=&#x22;http://github.com/shlomif/cpanhq/tree/master&#x22;&#x3E;my repository&#x3C;/a&#x3E;,
which I tend to keep somewhat more up-to-date ), and play with the code.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Now back to L~R&#x27;s suggestions. At first I was a bit sceptical of them
and they seemed like an overkill, and not really useful. When I&#x27;m using
search.cpan.org to search for a distribution, either I know the name of the
module that I&#x27;m looking for and just perform a search to be directed
to the location of the exact page, or I usually find the order of the
search sufficient for my needs.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
However, on a second reading, it seems like what Limbic suggests (like
being able to sort results by Kwalitee, creation date, number of downloads,
last update date, rating, etc., providing a code search, or recommendations)
actually has some merit and should be considered. One thing I&#x27;m sure about
is that the default CPAN search should remain simple, while only giving
an option for an advances search using a different form, where it might
be possible to formulate a more complex query using a specialised language.
Otherwise, if we complicate the existing search, it could prove confusing
to many users.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
L~R&#x27;s suggestions remind me of 
my &#x3C;a href=&#x22;http://perl.net.au/wiki/Finding_a_Module_on_CPAN/Module-Rank&#x22;&#x3E;CPAN
Module-Rank&#x3C;/a&#x3E; thought experiment, that aimed to define an automatically
calculated metric for the relevance of CPAN modules. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
L~R later referred me to &#x3C;a href=&#x22;http://perlmonks.org/?node_id=773093&#x22;&#x3E;a
post to Perlmonks.org titled &#x22;Advanced CPAN Search?&#x22;&#x3C;/a&#x3E; where someone
asks a similar question.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
To sum up, please consider monitoring or even contributing to CPANHQ if
you want to improve the future of finding stuff and interacting with CPAN.
It seems that some people have issue with the current CPAN search
state-of-the-art, and would like to see it improved. We&#x27;d be happy to hear
what you think.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>search</category>
<category>limbic region</category>
<category>dbix-class</category>
<category>cpanhq</category>
<category>catalyst</category>
<category>region</category>
<category>kobesearch</category>
<category>perl</category>
<category>search.cpan.org</category>
<category>limbic</category>
<category>github</category>
<category>cpan</category>
<comments>http://community.livejournal.com/shlomif_tech/28209.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/28209.html</guid>
<pubDate>Sun, 28 Jun 2009 11:58:28 GMT</pubDate>
</item>
<item>
<title>Maintenance Freecell Solver 2.32.1 Release</title>
<link>http://fc-solve.blogspot.com/2009/06/maintenance-freecell-solver-2321.html</link>
<description>&#x3C;p&#x3E;
Hot on the heels of &#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E;
2.32.0, there&#x27;s now a 2.32.1 maintenance release available from 
&#x3C;a href=&#x22;http://fc-solve.berlios.de/download.html&#x22;&#x3E;the download page&#x3C;/a&#x3E;.
This release fixes several important build bugs, especially on Windows,
but also on UNIXes.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Please test it to see if any other problems remain.
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-1943224766083000855?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>version</category>
<category>freecell</category>
<category>msvc</category>
<category>maintenance</category>
<category>release</category>
<category>building</category>
<category>cmake</category>
<category>solving</category>
<category>solver</category>
<category>2.32.1</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-1943224766083000855</guid>
<pubDate>Fri, 26 Jun 2009 10:41:00 +0000</pubDate>
<atom:updated>2009-06-26T03:42:20.672-07:00</atom:updated>
</item>
<item>
<title>Freecell Solver 2.32.0 was Released</title>
<link>http://fc-solve.blogspot.com/2009/06/freecell-solver-2320-was-released.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E; version 2.32.0
has been released. It is available in the form of a source tarball from 
&#x3C;a href=&#x22;http://fc-solve.berlios.de/download.html&#x22;&#x3E;the
    download page&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This version features a large code cleanup which also resulted in a
substantial speed boost. The code cleanup was guided by
&#x3C;a href=&#x22;http://svn.berlios.de/viewcvs/fc-solve/trunk/fc-solve/source/scripts/find-ids.rb?view=log&#x22;&#x3E;a 
    script&#x3C;/a&#x3E; that was written to list all occurences of identifiers with
the same name, in order to find uncommon identifiers.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
There were several bug-fixes done to the 
&#x3C;a href=&#x22;http://www.cmake.org/&#x22;&#x3E;CMake&#x3C;/a&#x3E;-based build system, and there&#x27;s
now suppot for &#x3C;a href=&#x22;http://code.google.com/p/google-perftools/&#x22;&#x3E;Google&#x27;s 
    tcmalloc&#x3C;/a&#x3E; and hidden internal identifiers in the DLL/shared-library.
The inline keyword for definining inline functions is now supported
on more compilers and more functions or macros have been converted
to inline functions.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
We hope you enjoy this release.
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-7325001057906480073?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>gcc</category>
<category>dlls</category>
<category>optimise</category>
<category>release</category>
<category>solving</category>
<category>2.32.0</category>
<category>version</category>
<category>games</category>
<category>optimisation</category>
<category>freecell</category>
<category>cmake</category>
<category>inline</category>
<category>solver</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-7325001057906480073</guid>
<pubDate>Wed, 24 Jun 2009 13:36:00 +0000</pubDate>
<atom:updated>2009-06-24T06:37:36.798-07:00</atom:updated>
</item>
<item>
<title>Tel Aviv FOSS Meeting on 28-June-2009: Programming Red Flags</title>
<link>http://community.livejournal.com/shlomif_tech/28073.html</link>
<description>&#x3C;p&#x3E;
The &#x3C;a href=&#x22;http://www.cs.tau.ac.il/telux/&#x22;&#x3E;Tel Aviv Open Source Club&#x3C;/a&#x3E; 
will host &#x3C;a href=&#x22;http://wiki.osdc.org.il/index.php/Tel_Aviv_Meeting_on_28_June_2009&#x22;&#x3E;a talk by Yaron Meiry (&#x22;Sawyer&#x22;) about &#x22;Programming Red Flags&#x22;)&#x3C;/a&#x3E;
on 28-June-2009.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The meeting will take place at Tel Aviv University, at the Schreiber 
Maths&#x26;amp;CS building, room 008 on 18:30. So mark your calendars. More 
information can be found &#x3C;a href=&#x22;http://wiki.osdc.org.il/index.php/Tel_Aviv_Meeting_on_28_June_2009&#x22;&#x3E;on the wiki page for the meeting&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Attendance is free, it is not necessary to RSVP and everyone are welcome.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
With any other problems, feel free to &#x3C;a href=&#x22;http://www.shlomifish.org/me/contact-me/&#x22;&#x3E;contact me&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;b&#x3E;Abstract&#x3C;/b&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Some programming habits should be avoided at all costs; some should be
considered with care and some are just divine. Red flags tell us what to try
and avoid and what to inspect more closely. They are a sign of code that might
become problematic or straightforwardly dangerous. The talk will be
Perl-oriented (with Perl examples) but the programming practices are generic
and can be applied to most programming languages, so if you program in Ruby,
Python, PHP or other languages, this talks to you as well.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Hopefully by the time we&#x27;re done, you&#x27;ll be able to write cleaner, more
maintainable, less error-prone, and better code. If not, your money back
guarantee!
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>php</category>
<category>open source</category>
<category>software</category>
<category>ruby</category>
<category>telux</category>
<category>programming</category>
<category>red</category>
<category>telfoss</category>
<category>meeting</category>
<category>foss</category>
<category>free</category>
<category>perl</category>
<category>club</category>
<category>sawyer</category>
<category>flags</category>
<category>python</category>
<comments>http://community.livejournal.com/shlomif_tech/28073.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/28073.html</guid>
<pubDate>Sun, 21 Jun 2009 11:14:44 GMT</pubDate>
</item>
<item>
<title>New Release of HTML-Widgets-NavMenu - 1.0300</title>
<link>http://community.livejournal.com/shlomif_tech/27843.html</link>
<description>&#x3C;p&#x3E;
Just for the fun of it, I decided to join
&#x3C;a href=&#x22;http://www.enlightenedperl.org/ironman.html&#x22;&#x3E;the Iron Man
Blogging Challenge&#x3C;/a&#x3E;, so here&#x27;s my first post.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I recently released a new version (1.0300) of
&#x3C;a href=&#x22;http://web-cpan.berlios.de/modules/HTML-Widgets-NavMenu/&#x22;&#x3E;HTML-Widgets-NavMenu, 
my CPAN module for generating navigation menus&#x3C;/a&#x3E;. This release fixes a bug
in the &#x22;HeaderRole&#x22; type of navigation menus (which I believe is not widely
used) and also cleans up the internals. Instead of 
&#x3C;tt&#x3E;my ($self, %args) = @_;&#x3C;/tt&#x3E;, there&#x27;s now &#x3C;tt&#x3E;my ($self, $args) = @_;&#x3C;/tt&#x3E;,
which is cleaner and should also be a little faster.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
You can see HTML-Widgets-NavMenu in action on 
&#x3C;a href=&#x22;http://www.shlomifish.org/&#x22;&#x3E;my homepage&#x3C;/a&#x3E;. By going to various pages,
you can see the navigation menu expands or unexpands in certain places, and
the breadcrumbs&#x27; trail and next/previous/up links updated.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The story of how I created this module is interesting. It started with a lot
of ugly and crufty 
&#x3C;a href=&#x22;http://thewml.org/&#x22;&#x3E;Website Meta Language&#x3C;/a&#x3E; logic that evolved
to generate my homesite&#x27;s navigation menu. I didn&#x27;t really like it so I look
for an alternative. I looked for one on the CPAN and found two modules that
didn&#x27;t seem too inviting. Then when I mentioned my quest on 
&#x3C;a href=&#x22;http://www.perl.org.il/&#x22;&#x3E;Perl-Israel&#x3C;/a&#x3E;, a fellow Perler said he 
created a hack based on his module for generating JavaScript menus to do 
just that and uploaded it to CPAN. That module seemed to have the most
user-friendly interface, so I decided to use it. However, I patched it,
inherited from one of its classes, and created a lot of code of my own.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Eventually, I ended up with only original code, and so I wrapped things up,
licensed it under the 
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/MIT_License&#x22;&#x3E;MIT/X11 licence&#x3C;/a&#x3E;
and uploaded it to CPAN. Since then, it was improved to some extent, including
adding 100% Automated Test coverage at one point (which didn&#x27;t prevent
the HeaderRole bug).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So far I received
&#x3C;a href=&#x22;http://cpanratings.perl.org/dist/HTML-Widgets-NavMenu&#x22;&#x3E;two 
five star reviews of the module on CPAN Ratings&#x3C;/a&#x3E;, and also heard from
other people using the bug tracker and on E-mail. As a result, I believe
this module is moderately popular, and fills a nice niche.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
If you&#x27;re looking for a module to generate navigation menus for your site,
then please take a look at it. And if you have ideas for improvements, I&#x27;ll be 
glad to hear from you.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>html-widgets-navmenu</category>
<category>wml</category>
<category>web</category>
<category>language</category>
<category>design</category>
<category>menus</category>
<category>css</category>
<category>perl</category>
<category>navigation</category>
<category>website</category>
<category>meta</category>
<category>html</category>
<category>cpan</category>
<category>www</category>
<comments>http://community.livejournal.com/shlomif_tech/27843.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/27843.html</guid>
<pubDate>Sun, 14 Jun 2009 14:03:24 GMT</pubDate>
</item>
<item>
<title>Freecell Solver&#x27;s Subversion Repository&#x27;s 2,000&#x27;th Revision</title>
<link>http://www.flickr.com/photos/shlomif/3622652030/</link>
<description>&#x3C;p&#x3E;&#x3C;a href=&#x22;http://www.flickr.com/people/shlomif/&#x22;&#x3E;shlomif2&#x3C;/a&#x3E; posted a photo:&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x3C;a href=&#x22;http://www.flickr.com/photos/shlomif/3622652030/&#x22; title=&#x22;Freecell Solver&#x27;s Subversion Repository&#x27;s 2,000&#x27;th Revision&#x22;&#x3E;&#x3C;img src=&#x22;http://farm4.static.flickr.com/3611/3622652030_3973c2d2d3_m.jpg&#x22; width=&#x22;240&#x22; height=&#x22;185&#x22; alt=&#x22;Freecell Solver&#x27;s Subversion Repository&#x27;s 2,000&#x27;th Revision&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/p&#x3E;

&#x3C;p&#x3E;A Screenshot of Firefox showing Freecell Solver revision at 2,000.&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<guid isPermaLink="false">tag:flickr.com,2004:/photo/3622652030</guid>
<pubDate>Sat, 13 Jun 2009 09:42:57 -0700</pubDate>
</item>
<item>
<title>Freecell Solver 2.30.0 was Released</title>
<link>http://fc-solve.blogspot.com/2009/06/freecell-solver-2300-was-released.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E; version 2.30.0
has been released. It is available in the form of a source tarball from 
&#x3C;a href=&#x22;http://fc-solve.berlios.de/download.html&#x22;&#x3E;the 
    download page&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This release adds the run-time presets &#x22;gooey-unknown-thing&#x22;, &#x22;sand-stone&#x22; 
and &#x22;slick-rock&#x22; that aim to minimise the average lengths of the resultant 
solutions. (as opposed to minimising the time it takes to solve). It also
adds support for using any of the tree imlpementation supplied by
&#x3C;a href=&#x22;http://www.stanford.edu/~blp/avl/&#x22;&#x3E;libavl version 2&#x3C;/a&#x3E; for
both the positions storage and the stacks storage.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
There&#x27;s a bug fix in the fc-pro range solver for a bug that caused the 
Freecell Pro compatible moves to be mis-calculated. Moreover, the code
has experienced a substantial re-organisation and the Makefiles for the
different compiler were merged into one (which was later fixed).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
There are also new compile-time options to exclude various functionality
that may not be needed.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Download it while its hot!
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-7784316368620976391?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>patience</category>
<category>trees</category>
<category>release</category>
<category>balanced</category>
<category>solving</category>
<category>libavl</category>
<category>avl</category>
<category>version</category>
<category>games</category>
<category>2.30.0</category>
<category>freecell</category>
<category>binary</category>
<category>solitaire</category>
<category>solution</category>
<category>cmake</category>
<category>length</category>
<category>solver</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-7784316368620976391</guid>
<pubDate>Sun, 07 Jun 2009 11:02:00 +0000</pubDate>
<atom:updated>2009-06-07T04:04:12.498-07:00</atom:updated>
</item>
<item>
<title>Recent Hacktivity</title>
<link>http://community.livejournal.com/shlomif_tech/27619.html</link>
<description>&#x3C;p&#x3E;
Before I start with the entry itself, I should note that 
&#x3C;a href=&#x22;http://leto.net/dukeleto.pl/2009/05/recent-hacktivity.html&#x22;&#x3E;someone
copied my &#x22;Recent Hacktivity&#x22; meme&#x3C;/a&#x3E;. So I am going to tell my team 
intimidating lawyers to send him a &#x22;Cease and Desist&#x22; letter for 
Copyrights/trademarks/patents/trade-secrets/whatever violation. (Just kidding)
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
OK, I did a lot of work on &#x3C;a href=&#x22;http://perl-begin.org/&#x22;&#x3E;Perl-Begin&#x3C;/a&#x3E;.
I went over all the pages and updated all the out-of-date information I could
find, and then also implemented a decent &#x22;Testimonials&#x22; sidebar instead of the
half-assed &#x22;These companies/projects are using&#x22; Perl that there was there 
earlier. Next, I plan to have to create a tools/IDEs/etc. section.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I also did 
&#x3C;a href=&#x22;http://better-scm.berlios.de/news/changes-2009-05-19/&#x22;&#x3E;some work on
the Better-SCM site&#x3C;/a&#x3E;. Most of it was done by going over the emails in 
my relevant folder and implementing their suggestions.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I did a lot of work on Freecell Solver. I implemented 
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Simple_Simon_(solitaire)&#x22;&#x3E;Simple 
Simon&#x3C;/a&#x3E; support in Games-Solitaire-Verify, and verified all the
FCS-generated Simple Simons solutions up to PySol deal No. 5,000. I also
&#x3C;a href=&#x22;http://tech.groups.yahoo.com/group/fc-solve-discuss/message/983&#x22;&#x3E;prepared 
updated Simple Simon statistics&#x3C;/a&#x3E;.
I also &#x3C;a href=&#x22;http://tech.groups.yahoo.com/group/fc-solve-discuss/message/980&#x22;&#x3E;did
some Perl and PDL work on creating a meta-scan that minimises the
average solutions&#x27; lengths generated by the solver&#x3C;/a&#x3E;. This worked out
pretty well. Finally the code in the Freecell
Solver trunk
&#x3C;a href=&#x22;http://tech.groups.yahoo.com/group/fc-solve-discuss/message/984&#x22;&#x3E;is
now worth over a million U.S. Dollars&#x3C;/a&#x3E; (at least according to SLOCCount
by David A. Wheeler).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I did some extensive work on refactoring and cleaning up 
&#x3C;a href=&#x22;http://web-cpan.berlios.de/modules/Statistics-Descriptive/&#x22;&#x3E;the
Statistics-Descriptive CPAN module&#x3C;/a&#x3E;, and released version 3.0000 to the 
CPAN. Next I&#x27;d like to create a perltidy theme to correspond with my
personal style, so I&#x27;ll be able to reformat the code there properly. At the 
moment, a lot of it is still using 2-whitespace-wide indentation levels, which
is annoying.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Next I tended to &#x3C;a href=&#x22;https://bugs.kde.org/show_bug.cgi?id=183022&#x22;&#x3E;this akregator bug, where the &#x22;Copy Link Location&#x22; did not copy to the middle-mouse
button paste&#x3C;/a&#x3E;. Fixing it was pretty easy because there was a line doing it
commented-out. The patch was accepted and is now in both KDE-4.2 and KDE-trunk.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I helped sort out 
&#x3C;a href=&#x22;http://www.perlfoundation.org/perl5/index.cgi?mailing_lists&#x22;&#x3E;the
Perl-related mailing lists page at the Perl 5 Wiki&#x3C;/a&#x3E;. The effort was
started by szabgab, and I did most of the sorting. In the process, I learned 
about many interesting mailing lists, and of many almost dead ones. After
I was through, I did not know what to do with the rest of my life.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I ran into &#x3C;a href=&#x22;https://qa.mandriva.com/show_bug.cgi?id=51121&#x22;&#x3E;this bug
with Amarok 2.x on my system&#x3C;/a&#x3E;, which I fixed, by removing some weird
junk from the end of &#x3C;tt&#x3E;/etc/fstab&#x3C;/tt&#x3E;. The fact that I could not use Amarok 
irritated me a lot, and I was glad that I resolved it.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I released a new version of the Config-IniFiles CPAN module with some fixes
and a t/pod.t and t/pod-coverage.t files to prevent POD problems.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Finally, one evening after an intensive biking session,
I worked on forward-porting my 
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/bits.html#amarok&#x22;&#x3E;Amarok
per-song-volume script&#x3C;/a&#x3E; to Amarok 2.x. Now, the original Perl script 
could not be used because running arbitrary UNIX process scripts is no longer
supported by Amarok 2.x, which now requires all scripts to be written in
JavaScript using QtScript. Porting it took all evening, but I had it
working eventually. I still resent the Amarok developers for only allowing
JavaScript there now, which I don&#x27;t hold in high esteem.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>meme</category>
<category>per-song-volume</category>
<category>perl-begin</category>
<category>pysol</category>
<category>begin</category>
<category>akregator</category>
<category>bug</category>
<category>lists</category>
<category>beginners</category>
<category>freecell</category>
<category>javascript</category>
<category>cpan</category>
<category>recent hacktivity</category>
<category>bugs</category>
<category>simple simon</category>
<category>hacktivity log</category>
<category>better-scm</category>
<category>szabgab</category>
<category>leto</category>
<category>statistics</category>
<category>log</category>
<category>recent</category>
<category>hacktivity</category>
<category>perl</category>
<category>solver</category>
<category>mailing</category>
<category>sloccount</category>
<category>wiki</category>
<category>amarok</category>
<category>testimonials</category>
<comments>http://community.livejournal.com/shlomif_tech/27619.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/27619.html</guid>
<pubDate>Mon, 01 Jun 2009 19:23:46 GMT</pubDate>
</item>
<item>
<title>An Eventful Day.</title>
<link>http://shlomif.livejournal.com/58549.html</link>
<description>&#x3C;p&#x3E;
Two days ago I had an eventful day. During the second walk I took that day 
(in the afternoon), there was a car that passed through the roundabout
at a big speed, shortly after I crossed the road there. Then, at the park
with the many cats in it, there was this woman who found a lost kitten.
She held him in her hand and said he had many fleas. Nearby, there was
also the corpse of a dead cat, which I had seen in earlier days, and we
also discused it. This woman was not from the neighbourhood and was looking
for the lady who was feeding the cats. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Anyway, there was little I could do and so I walked away, and on the way back, 
in a different park I saw a pretty girl walking in the opposite direction
from me.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Later that day, I decided to go biking, and this time took my longer
ride through &#x22;Park Hayarkon&#x22;. There were many people on the streets which
was expected of &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Shavuot&#x22;&#x3E;a 
holiday&#x3C;/a&#x3E;. When I passed through the southern end of Tel Aviv university,
I saw the grey-and-white cat (which I 
&#x3C;a href=&#x22;http://shlomif.livejournal.com/39551.html&#x22;&#x3E;told this blog about 
earlier&#x3C;/a&#x3E;) sitting on the fence, and stopped by. It was in a friendly mood
and I was able to pet it, and it even rubbed my foot. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
When I returned home, I bathed and ate and was in a good mood, then I decided
to finally get to the task of forward-porting 
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/bits.html#amarok&#x22;&#x3E;my Amarok
per-song-volume script&#x3C;/a&#x3E; to Amarok 2.x. This took a lot of trial and error
and took me the rest of the evening, but I now have it written and it works
nicely. Hopefully, I&#x27;ll tell more about it in 
&#x3C;a href=&#x22;http://community.livejournal.com/shlomif_tech/&#x22;&#x3E;my tech-blog&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<comments>http://shlomif.livejournal.com/58549.html</comments>
<guid isPermaLink="true">http://shlomif.livejournal.com/58549.html</guid>
<pubDate>Sun, 31 May 2009 19:24:59 GMT</pubDate>
</item>
<item>
<title>Tech Tip: Perl Debugger: Preserving the History Between Invocations</title>
<link>http://community.livejournal.com/shlomif_tech/27187.html</link>
<description>&#x3C;p&#x3E;
One thing that always bothered me about
&#x3C;a href=&#x22;http://debugger.perl.org/&#x22;&#x3E;the Perl debugger&#x3C;/a&#x3E; is the fact that
it didn&#x27;t rememeber / preserve the GNU readline command history from previous 
sessions like a shell does for example. Today I discovered how to enable
the preservation of the command history from previous sessions of the 
debugger. To do so, add something like the following the the file &#x22;~/.perldb&#x22;
(under your home directory):
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
&#x26;amp;parse_options(&#x22;HistFile=$ENV{HOME}/.perldb-history HistSize=5000&#x22;);
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
I explictly set the history size to a large value, but this is optional. You
can also set the path to the history file to a different value.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Now when you start perl -d it will recall all the latest values from previous 
invocations.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>tip</category>
<category>perl</category>
<category>preserving</category>
<category>tech</category>
<category>debugger</category>
<category>history</category>
<category>tech tip</category>
<comments>http://community.livejournal.com/shlomif_tech/27187.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/27187.html</guid>
<pubDate>Sun, 31 May 2009 13:23:08 GMT</pubDate>
</item>
<item>
<title>Adventures in Compiling</title>
<link>http://fc-solve.blogspot.com/2009/05/adventures-in-compiling.html</link>
<description>&#x3C;p&#x3E;
I&#x27;ve generally been using &#x3C;a href=&#x22;http://gcc.gnu.org/&#x22;&#x3E;GCC (= The
    GNU Compiler Collection)&#x3C;/a&#x3E; exclusively for
compiling &#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E;
under Linux for its constant development. For a time, I used to compile the 
Windows binaries using Microsoft Visual C (&#x22;cl.exe&#x22;) and a really hideous 
batch file I wrote for the purpose (so it  would work on the Technion&#x27;s 
computers). Lately, however, I&#x27;ve switched to compiling using 
&#x3C;a href=&#x22;http://www.mingw.org/&#x22;&#x3E;MinGW&#x3C;/a&#x3E; on Windows, which is gcc based.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
A few weeks ago, I decided to try out other compilers and see what they
had to offer. I
downloaded the proprietary &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler&#x22;&#x3E;icc (Intel&#x27;s C Compiler)&#x3C;/a&#x3E;, which is 
gcc-compatible and has a Linux trial version. It was a huge download and ended
up occupying a lot of space on the hard-disk. At first, I could not get it to 
emit working code, but after messing a little with my makefiles, I was 
successful. It is about the same speed as gcc for compiling my ANSI C program 
(maybe a bit slower), and generates somewhat faster code.
&#x3C;/p&#x3E;.

&#x3C;p&#x3E;
icc kept emitting many of the so-called &#x22;remarks&#x22; which I eventually took upon
myself to eliminate. This improved the quality of my code. But it worked
properly with these many remarks being emitted. After installing icc,
msec (the Mandriva security mechanism) complained about world-writable files
in the icc installation, so I reported it on the Intel forum. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The next compiler I tried was &#x3C;a href=&#x22;http://bellard.org/tcc/&#x22;&#x3E;tcc, the 
    Tiny/Turbo C Compiler&#x3C;/a&#x3E;. The version in the Mandriva repositories was 
old and did not yield a working binary, and so I tried upgrading to version 
0.9.24 and then to the git version, but none of them worked either. I 
&#x3C;a href=&#x22;http://lists.gnu.org/archive/html/tinycc-devel/2009-05/msg00032.html&#x22;&#x3E;reported this attempt to the tcc mailing list&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I also tried icc&#x27;s -fast flag, which is supposed to make the output faster,
but it actually made the binaries slower (much slower than even gcc).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
However, later on, after cleaning up my makefile, tcc produced perfectly
working binaries. I don&#x27;t know what the problem was, but it was solved. (I
reported that in a reply). Compiling with tcc is much faster than with gcc,
but the resulting code is much slower than gcc&#x27;s, and occupies more space on 
the disk.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The next compiler was &#x3C;a href=&#x22;http://www.tendra.org/&#x22;&#x3E;TenDRA&#x3C;/a&#x3E;. Now
the homepage a 403 (and still does) and so I went on Freenode and asked. I 
eventually did:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
$ svn co http://svn.tendra.org/trunk/
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
Only to discover that 
&#x3C;a href=&#x22;http://svn.tendra.org/trunk/tendra/INSTALL&#x22;&#x3E;http://svn.tendra.org/trunk/tendra/INSTALL&#x3C;/a&#x3E; is 
empty except for a reference to the Trac web-site (which was also off-line). 
So I needed to use the guidance of the people from Freenode&#x27;s #tendra to build 
it.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
In the process, I had to install &#x3C;a 
    href=&#x22;http://www.crufty.net/help/sjg/bmake.html&#x22;&#x3E;bmake&#x3C;/a&#x3E;, 
because that&#x27;s the only make
that would compile TenDRA. The ./configure in the standard distribution
failed to work here, but I was able to find an .src.rpm which compiled 
and installed fine. The TenDRA boot process also complained about one of my 
system&#x27;s header which had a list or enum with a trailing comma, and I had 
to manually fix the code.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
But I was able to build TenDRA and install it, and it was able to compile
a working program. Before it did, though, I had to fix many compilation
errors it reported, as TenDRA is stricter than gcc. It also didn&#x27;t recognise
my use of strdup, and I had to specify -Ysystem for it to work (the previous
-Y&#x27;s I tried did not work properly). But then it worked. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
TenDRA generated larger and slower executables than gcc but it worked.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I failed to get &#x3C;a href=&#x22;http://www.cs.princeton.edu/software/lcc/&#x22;&#x3E;lcc 
    (which isn&#x27;t strictly open source )&#x3C;/a&#x3E; and 
&#x3C;a href=&#x22;http://pcc.ludd.ltu.se/&#x22;&#x3E;pcc (which is open source )&#x3C;/a&#x3E; to 
either compile  or produce working code. Seems like neither of them are ready
for prime time - at least not here on Mandriva Linux Cooker.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So after a lot of frustration, my experiments with different compilers
were mostly successful. As a result, my code is more strict, and better
tested. So I guess it was worth it.
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-5863435541892256733?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>compilers</category>
<category>gcc</category>
<category>lcc</category>
<category>compilation</category>
<category>intel</category>
<category>gnu</category>
<category>tcc</category>
<category>freecell</category>
<category>tendra</category>
<category>icc</category>
<category>compiler</category>
<category>compile</category>
<category>pcc</category>
<category>solver</category>
<category>ansi c</category>
<category>tinycc</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-5863435541892256733</guid>
<pubDate>Fri, 29 May 2009 14:22:00 +0000</pubDate>
<atom:updated>2009-05-29T07:23:35.494-07:00</atom:updated>
</item>
<item>
<title>Tech Tip: Kopete: Recalling Previous Messages</title>
<link>http://community.livejournal.com/shlomif_tech/26928.html</link>
<description>&#x3C;p&#x3E;
When using &#x3C;a href=&#x22;http://kopete.kde.org/&#x22;&#x3E;Kopete&#x3C;/a&#x3E;, a unified 
instant-messaging client for the KDE desktop environment, one can recall
previous messages using Ctrl+Up and Ctrl+Down. A friend, who is a KMess
developer, told me it was also a &#x3C;a href=&#x22;http://kmess.org/&#x22;&#x3E;KMess&#x3C;/a&#x3E; 
feature.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This wasn&#x27;t very discoverable, and I discovered it only by accident. But
it seems useful.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>tip</category>
<category>tech</category>
<category>messages</category>
<category>tech tip</category>
<category>kde</category>
<category>down</category>
<category>kopete</category>
<category>up</category>
<category>recall</category>
<comments>http://community.livejournal.com/shlomif_tech/26928.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/26928.html</guid>
<pubDate>Thu, 28 May 2009 10:33:02 GMT</pubDate>
</item>
<item>
<title>Toggle Squares Game, A New Privacy Policy, and Other Updates</title>
<link>http://community.livejournal.com/shlomif_hsite/11232.html</link>
<description>&#x3C;p&#x3E;
The &#x3C;a href=&#x22;http://www.shlomifish.org/MathVentures/toggle-squares/&#x22;&#x3E;Toggle
    Squares game&#x3C;/a&#x3E; whose link was broken, and non-functional, was restored
and placed on the main site, as a pure-JavaScript game. A method for solving
it &#x3C;a href=&#x22;http://www.shlomifish.org/MathVentures/toggle_squares.html&#x22;&#x3E;is
    explained&#x3C;/a&#x3E; in the MathVentures section.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.shlomifish.org/meta/privacy-policy/&#x22;&#x3E;A privacy policy&#x3C;/a&#x3E;
has been added to the site. I&#x27;d like to thank a friend who is also a webmaster
for allowing me to borrow and adapt his privacy policy.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The &#x3C;a href=&#x22;http://www.shlomifish.org/open-source/anti/apple/&#x22;&#x3E;Anti-Apple
    Page&#x3C;/a&#x3E; now contains 99 items with links. &#x3C;a href=&#x22;http://www.shlomifish.org/open-source/anti/&#x22;&#x3E;other pages 
    against bad software&#x3C;/a&#x3E; were also updated.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/bits/Mastering-Cat/&#x22;&#x3E;The page
    about the &#x22;Mastering Cat&#x22; book&#x3C;/a&#x3E;, which proved to be very popular has
been updated with &#x22;Thanks&#x22; and &#x22;Coverage&#x22; sections.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
There are new &#x3C;a href=&#x22;http://www.shlomifish.org/humour/fortunes/&#x22;&#x3E;Fortune
    Cookies in the collection&#x3C;/a&#x3E;:
&#x3C;/p&#x3E;

&#x3C;blockquote&#x3E;
    &#x3C;p&#x3E;
Well, it&#x27;s not a threat - it&#x27;s a warning, and he won&#x27;t be
harmed much by acting against my advice. A threat is
something like &#x22;Stop posting political posts or I will burn
your house, rape your wife and daughters, banish you to the
middle of Antarctica, convert all your Perl code to PHP, and
then post it on thedailywtf.com.&#x22; 
    &#x3C;/p&#x3E;
&#x3C;/blockquote&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.shlomifish.org/me/resumes/&#x22;&#x3E;My Resum&#xE9;s&#x3C;/a&#x3E; have
been enhanced and updated.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
There is a new version
&#x3C;a href=&#x22;http://www.shlomifish.org/rwlock/&#x22;&#x3E;of the First-Come First-Served
    Readers/Writers Lock&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>fortunes</category>
<category>toggle</category>
<category>privacy</category>
<category>warning</category>
<category>humour</category>
<category>policy</category>
<category>fish</category>
<category>fcfs</category>
<category>cv</category>
<category>shlomif</category>
<category>cat</category>
<category>squares</category>
<category>mastering</category>
<category>maths</category>
<category>shlomi</category>
<category>mastering cat</category>
<category>linear algebra</category>
<category>threat</category>
<category>rwlock</category>
<category>apple</category>
<category>resume</category>
<category>mathematicas</category>
<category>links</category>
<category>game</category>
<comments>http://community.livejournal.com/shlomif_hsite/11232.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_hsite/11232.html</guid>
<pubDate>Mon, 25 May 2009 14:43:00 GMT</pubDate>
</item>
<item>
<title>Meeting your Blog Readers&#x27; Expectations</title>
<link>http://shlomif.livejournal.com/58360.html</link>
<description>&#x3C;p&#x3E;
Recently, a prominent &#x3C;a href=&#x22;http://use.perl.org/&#x22;&#x3E;use.perl.org&#x3C;/a&#x3E; 
blogger (and a &#x3C;a href=&#x22;http://perl-begin.org/&#x22;&#x3E;Perl&#x3C;/a&#x3E; 
contributor) started posting many political posts to his blog, which
I found annoying and disturbing. After commenting to him about it, it started
a conversation and I ended up &#x3C;a href=&#x22;http://use.perl.org/comments.pl?sid=42958&#x26;amp;cid=68552&#x22;&#x3E;writing
a comment about the importance of meeting your blog reader&#x27;s expectations&#x3C;/a&#x3E;.
I&#x27;d like to copy it here:
&#x3C;/p&#x3E;

&#x3C;blockquote&#x3E;

&#x3C;p&#x3E;
You say you only want to have one blog where you&#x27;ll post about everything, 
including political posts. In that case, let me tell you a story from my own
experience.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I used to have only one blog - first at Advogato and then 
&#x3C;a href=&#x22;http://shlomif.livejournal.com/&#x22;&#x3E;at LiveJournal&#x3C;/a&#x3E;. I posted
everything I wanted there whether technical or non-technical.
At one point &#x3C;a href=&#x22;http://shlomif.livejournal.com/39551.html?thread=32639#t32639&#x22;&#x3E;I 
    received some important input&#x3C;/a&#x3E; in which that particular reader
said that they were not interested in my technical posts (like vim tips, Linux 
bugs, etc.), and would rather have them separated. I commented (later in the 
link) that I agreed, and so &#x3C;a href=&#x22;http://shlomif.livejournal.com/41970.html&#x22;&#x3E;started
    a separate blog for technical matters&#x3C;/a&#x3E;. I also mention (in the
previous link) the fact that a blog I used to read and enjoy deteriorated
after its owner became a mother, and started posting exclusively about
her motherhood experiences. As a result, I unsubscribed from that blog&#x27;s feed.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This separation of my blogs proved fruitful afterwards, because several planets
have opted to syndicate only the technical blogs (or in the case of Perlsphere,
only the Perl subset of them).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Moreover, when I discussed blogging with a certain famous blogger, he said
that he reached the conclusion that specialisation of blogs was the key to
success, and that people will only subscribe to blogs that concentrate
on topics that interest them.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
My point is that in blogging, you need to meet your readers&#x27; expectations.
I am subscribed to the feed of all of use.perl.org&#x27;s blog entries, because
I&#x27;m interested in reading what Perl enthusiasts say. I don&#x27;t mind the
personal posts (or otherwise posts that are tangential to Perl) but I find
political posts disturbing and annoying and would rather not read them.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So far your blog has received no special treatment as I read it along with all
the rest of the posts. But if you don&#x27;t guarantee that you&#x27;re not going
to post political posts here anymore, I will filter it out, and stop reading
everything you have to say, including the Perl-related, and other non-political
posts. So you&#x27;ll lose me as a reader and possibly some other people who will
opt not to read your blog. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
It&#x27;s your blog and you can post what you want to it, but I hope you understand
that your subscribers may opt out of it, if they feel your blog no longer
meets their expectations.
&#x3C;/p&#x3E;

&#x3C;/blockquote&#x3E;

&#x3C;p&#x3E;
I received quite a lot of heat in that discussion, in what seemed to me like
an innocent intention on my part to warn someone of an unpleasant trend in
their blog, before I unsubscribe. Eventually, he didn&#x27;t take my advice,
and as a result, I 
&#x3C;a href=&#x22;http://use.perl.org/~Shlomi+Fish/journal/38969&#x22;&#x3E;wrote a script
to filter posts from use.perl.org based on the author&#x3C;/a&#x3E; and am now filtering
out his posts from the feed I&#x27;m reading.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I unsubscribed from some blogs that started not to meet my expectations
before, but this was the first time I tried to warn the blog
owner about a bad trend.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I should note that once, before blogs became popular, I was subscribed to
a mailing list, where I&#x27;ve written many posts. At one point, I had written
many posts of a similar theme, only to have learned later from someone
else, that many people disliked them, and as a result decided to filter out
all of my posts to the list, while receiving the posts of anyone else (using
mail filters). I felt offended by this fact, and wished they would have
told me (or the list in general) how they felt.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Unsubscribing from a blog is probably less of an issue due to the technological
nature of web feeds, but I still think that if a blog that you used to like
has deteriorated in some respect, you should let the blog owner know, and I
hope to continue in doing this.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<comments>http://shlomif.livejournal.com/58360.html</comments>
<guid isPermaLink="true">http://shlomif.livejournal.com/58360.html</guid>
<pubDate>Thu, 21 May 2009 13:28:30 GMT</pubDate>
</item>
<item>
<title>Freecell Solver 2.28.0 was Released</title>
<link>http://fc-solve.blogspot.com/2009/05/freecell-solver-2260-was-released.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E; version 2.28.0
has been released. It is available in the form of a source tarball from 
&#x3C;a href=&#x22;http://fc-solve.berlios.de/download.html&#x22;&#x3E;the 
    download page&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This version contains several significant optimisations. Now the 
&#x22;freecell-only&#x22; preset can solve the first 32,000 Microsoft Freecell 
deals at 286 deals per second with gcc, and 301 deals per seconds with
&#x3C;a href=&#x22;http://software.intel.com/en-us/intel-compilers/&#x22;&#x3E;Intel&#x27;s icc.&#x3C;/a&#x3E;
(on a Pentium 4 2.4GHz computer). There are many other internal cleanups, 
build system tweaks, and new makefiles to build using some alternative C compilers.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The source archives from now on will be distributed as tar.bz2 instead of
tar.gz which gives better compression, and a faster download.
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-7868619768627350983?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>patience</category>
<category>2.28.0</category>
<category>release</category>
<category>optimization</category>
<category>solving</category>
<category>version</category>
<category>games</category>
<category>optimisation</category>
<category>freecell</category>
<category>gzip</category>
<category>bz2</category>
<category>solitaire</category>
<category>cmake</category>
<category>solver</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-7868619768627350983</guid>
<pubDate>Sun, 17 May 2009 16:48:00 +0000</pubDate>
<atom:updated>2009-05-17T12:57:25.364-07:00</atom:updated>
</item>
<item>
<title>New Coldplay Record Available for Download Today</title>
<link>http://shlomif.livejournal.com/57900.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.coldplay.com/&#x22;&#x3E;Coldplay&#x3C;/a&#x3E; have a new record
called &#x22;Left Right Left Right Left&#x22; available for download on their site
only today. So head over, and download it. I&#x27;m not sure if this record is
legally freely redistributable in the 
&#x3C;a href=&#x22;http://creativecommons.org/&#x22;&#x3E;Creative Commons&#x3C;/a&#x3E;-sense.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I downloaded it and listened to it and like it very much. The &#x22;Viva La Vida&#x22;
track is especially good.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<comments>http://shlomif.livejournal.com/57900.html</comments>
<guid isPermaLink="true">http://shlomif.livejournal.com/57900.html</guid>
<pubDate>Fri, 15 May 2009 13:46:26 GMT</pubDate>
</item>
<item>
<title>Source for the &#x22;E Text Editor&#x22; Was Released</title>
<link>http://community.livejournal.com/shlomif_tech/26837.html</link>
<description>&#x3C;p&#x3E;
Apparently, 
&#x3C;a href=&#x22;http://e-texteditor.com/blog/2009/releasing-the-source&#x22;&#x3E;the
source for E Text Editor, a multi-platform Textmate clone was
released under a not-entirely-open-source licence&#x3C;/a&#x3E;. This is good
news despite the fact that it is not a fully-open-source licene, because
now Textmate-like functionality is available for Linux and other
platforms, and not only on 
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/anti/apple/&#x22;&#x3E;the Mac&#x3C;/a&#x3E;. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I&#x27;m still sticking with &#x3C;a href=&#x22;http://www.vim.org/&#x22;&#x3E;Vim&#x3C;/a&#x3E;, though,
which is fully cross-platform, open-source and even GPL-compatible.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>apple</category>
<category>file</category>
<category>e text editor</category>
<category>open source</category>
<category>editors</category>
<category>text</category>
<category>macintosh</category>
<category>linux</category>
<category>textmate</category>
<category>source</category>
<category>vim</category>
<comments>http://community.livejournal.com/shlomif_tech/26837.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/26837.html</guid>
<pubDate>Thu, 14 May 2009 10:04:52 GMT</pubDate>
</item>
<item>
<title>Meta: Script to Filter the Master use.perl.org Blogs&#x27; Feed</title>
<link>http://use.perl.org/~Shlomi+Fish/journal/38969?from=rss</link>
<description>&#x3C;p&#x3E;
As expected from the latest trend in the Perl blogosphere this post will
be about Roles. And Moose! And Roles in Moose! And Moose in Roles! And
Roles outside Moose&#x26;#8230;
&#x3C;/p&#x3E;&#x3C;p&#x3E;
Seriously now, this is a post about &#x3C;a href=&#x22;http://svn.berlios.de/svnroot/repos/web-cpan/XML-Feed/trunk/filter-use.perl.org/&#x22;&#x3E;a completely non-Moosey
and non-Roley script I wrote to filter the use.perl.org master journals&#x27;
feed&#x3C;/a&#x3E;. What this script does is fetch the Atom feed of all the use.perl.org
journals&#x27; posts, and filters out the entries of the use.perl.org authors
that the invoker specified.
&#x3C;/p&#x3E;&#x3C;p&#x3E;
Here is out to use it. First of all: &#x3C;tt&#x3E;svn checkout&#x3C;/tt&#x3E; it (or otherwise
fetch it using HTTP). Then you can simply use:
&#x3C;/p&#x3E;&#x3C;blockquote&#x3E;&#x3C;div&#x3E;&#x3C;p&#x3E; &#x3C;tt&#x3E;perl filter-use-perl-journals.pl -o everything.atom&#x3C;/tt&#x3E;&#x3C;/p&#x3E;&#x3C;/div&#x3E; &#x3C;/blockquote&#x3E;&#x3C;p&#x3E;
Then you can serve &#x3C;tt&#x3E;everything.atom&#x3C;/tt&#x3E; with a web-server to read it
using your web feeds&#x27; aggregator.
&#x3C;/p&#x3E;&#x3C;p&#x3E;
To simply create a non-filtered copy of the feed. Now let&#x27;s say you want
to get rid of posts from my journal (because it sucks). In that case, say:
&#x3C;/p&#x3E;&#x3C;blockquote&#x3E;&#x3C;div&#x3E;&#x3C;p&#x3E; &#x3C;tt&#x3E;perl filter-use-perl-journals.pl -o non-shlomif.atom \&#x3C;br&#x3E;&#x26;nbsp; &#x26;nbsp; --blacklist=&#x22;Shlomi Fish&#x22;&#x3C;/tt&#x3E;&#x3C;/p&#x3E;&#x3C;/div&#x3E; &#x3C;/blockquote&#x3E;&#x3C;p&#x3E;
Now, let&#x27;s say you also want to get rid of
&#x3C;a href=&#x22;http://use.perl.org/~Ovid/journal/&#x22;&#x3E;Ovid&#x27;s&#x3C;/a&#x3E; posts. I have no idea
why you&#x27;d want to do that, because his journal is great, but it&#x27;s just for
the sake of the example. In that case, do:
&#x3C;/p&#x3E;&#x3C;blockquote&#x3E;&#x3C;div&#x3E;&#x3C;p&#x3E; &#x3C;tt&#x3E;perl filter-use-perl-journals.pl -o non-shlomif-and-ovid.atom \&#x3C;br&#x3E;&#x26;nbsp; &#x26;nbsp; --blacklist=&#x22;Shlomi Fish&#x22; --blacklist=&#x22;Ovid&#x22;&#x3C;/tt&#x3E;&#x3C;/p&#x3E;&#x3C;/div&#x3E; &#x3C;/blockquote&#x3E;&#x3C;p&#x3E;
Finally, there&#x27;s the &#x3C;tt&#x3E;--rand&#x3C;/tt&#x3E; flag which is useful in case you&#x27;re
running the script with cron. What it does is wait for a period of
time of random length, before fetching the feed, so the HTTP server would not
be overloaded at regular periods. This requires a working&#x3C;nobr&#x3E; &#x3C;wbr&#x3E;&#x3C;/nobr&#x3E;&#x3C;tt&#x3E;/dev/urandom&#x3C;/tt&#x3E; for the time being.
&#x3C;/p&#x3E;&#x3C;p&#x3E;
The script is made available under
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/MIT_License&#x22;&#x3E;the MIT/X11 Licence&#x3C;/a&#x3E;
so its use is completely unencumbered. I wrote this script today, because
I have a personal use for it, but other people may find it useful too.
It requires a recent version of Perl (5.8.x should be enough I think) and
&#x3C;a href=&#x22;http://search.cpan.org/dist/XML-Feed/&#x22;&#x3E;XML-Feed&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
</item>
<item>
<title>&#x5E4;&#x5D2;&#x5D9;&#x5E9;&#x5EA; &#x5E7;&#x5D5;&#x5D3;-&#x5E4;&#x5EA;&#x5D5;&#x5D7;-&#x5EA;&#x5DC;-&#x5D0;&#x5D1;&#x5D9;&#x5D1;: &#x5D9;&#x5D9;&#x5E9;&#x5D5;&#x5DE;&#x5D9; &#x5D4;&#x5E7;&#x5D5;&#x5D3; &#x5D4;&#x5E4;&#x5EA;&#x5D5;&#x5D7; &#x5E9;&#x5DC; &#x5E4;&#x5E8;&#x5D9;&#x5E0;&#x5D2;</title>
<link>http://community.livejournal.com/shlomif_tech/26463.html</link>
<description>&#x3C;div dir=&#x22;rtl&#x22; align=&#x22;right&#x22;&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.cs.tau.ac.il/telux/&#x22;&#x3E;&#x5DE;&#x5D5;&#x5E2;&#x5D3;&#x5D5;&#x5DF; &#x5D4;&#x5E7;&#x5D5;&#x5D3; &#x5D4;&#x5E4;&#x5EA;&#x5D5;&#x5D7; &#x5D4;&#x5EA;&#x5DC;-&#x5D0;&#x5D1;&#x5D9;&#x5D1;&#x5D9; (&#x5EA;&#x5DC;&#x5D5;&#x5E7;&#x5E1;)&#x3C;/a&#x3E;
&#x5D9;&#x5D9;&#x5E4;&#x5D2;&#x5E9; &#x5E9;&#x5D5;&#x5D1; &#x5DB;&#x5D3;&#x5D9; &#x5DC;&#x5E9;&#x5DE;&#x5D5;&#x5E2; &#x5D0;&#x5EA;
&#x3C;a href=&#x22;http://wiki.osdc.org.il/index.php/Tel_Aviv_Meeting_on_31_May_2009&#x22;&#x3E;&#x5D4;&#x5E8;&#x5E6;&#x5D0;&#x5EA;&#x5DD; &#x5E9;&#x5DC; &#x5D0;&#x5DC;&#x5DB;&#x5E1; &#x5E0;&#x5E8;&#x5E1;&#x5D8; &#x5D5;&#x5DE;&#x5D9;&#x5DB;&#x5DC; &#x5D2;&#x5D1;&#x5E2; &#x5D0;&#x5D5;&#x5D3;&#x5D5;&#x5EA; &#x5D9;&#x5D9;&#x5E9;&#x5D5;&#x5DE;&#x5D9;
&#x5D4;&#x5E7;&#x5D5;&#x5D3; &#x5D4;&#x5E4;&#x5EA;&#x5D5;&#x5D7; &#x5E9;&#x5DC; &#x5E4;&#x5E8;&#x5D9;&#x5E0;&#x5D2;&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x5D4;&#x5D4;&#x5E8;&#x5E6;&#x5D0;&#x5D4; &#x5EA;&#x5E2;&#x5E8;&#x5DA; &#x5D1;&#x5D9;&#x5D5;&#x5DD; &#x5E8;&#x5D0;&#x5E9;&#x5D5;&#x5DF;, 31 &#x5D1;&#x5DE;&#x5D0;&#x5D9; 2009, &#x5D1;&#x5E9;&#x5E2;&#x5D4; 18:30, &#x5D1;&#x5D7;&#x5D3;&#x5E8;
008 &#x5E9;&#x5DC; &#x5D1;&#x5E0;&#x5D9;&#x5D9;&#x5DF; &#x5E9;&#x5E8;&#x5D9;&#x5D9;&#x5D1;&#x5E8; (&#x5DC;&#x5DE;&#x5EA;&#x5DE;&#x5D8;&#x5D9;&#x5E7;&#x5D4; &#x5D5;&#x5DE;&#x5D3;&#x5E2;&#x5D9; &#x5D4;&#x5DE;&#x5D7;&#x5E9;&#x5D1;) &#x5D1;&#x5D0;&#x5D5;&#x5E0;&#x5D9;&#x5D1;&#x5E8;&#x5E1;&#x5D9;&#x5D8;&#x5EA; &#x5EA;&#x5DC; &#x5D0;&#x5D1;&#x5D9;&#x5D1;. &#x5E4;&#x5E8;&#x5D8;&#x5D9;&#x5DD; &#x5E0;&#x5D5;&#x5E1;&#x5E4;&#x5D9;&#x5DD; &#x5E0;&#x5D9;&#x5EA;&#x5DF; &#x5DC;&#x5DE;&#x5E6;&#x5D5;&#x5D0; 
&#x3C;a href=&#x22;http://www.cs.tau.ac.il/telux/&#x22;&#x3E;&#x5D1;&#x5D0;&#x5EA;&#x5E8;&#x3C;/a&#x3E;
&#x3C;a href=&#x22;http://wiki.osdc.org.il/index.php/Tel_Aviv_Meeting_on_31_May_2009&#x22;&#x3E;&#x5D5;&#x5D1;&#x5D5;&#x5D9;&#x5E7;&#x5D9;&#x3C;/a&#x3E;.
&#x5D4;&#x5E0;&#x5D5;&#x5DB;&#x5D7;&#x5D5;&#x5EA; &#x5D1;&#x5D4;&#x5E8;&#x5E6;&#x5D0;&#x5D4; &#x5D4;&#x5D9;&#x5D0; &#x5D7;&#x5D9;&#x5E0;&#x5DE;&#x5D9;&#x5EA; &#x5D5;&#x5DC;&#x5D0; &#x5E0;&#x5D3;&#x5E8;&#x5E9;&#x5EA; &#x5D4;&#x5E8;&#x5E9;&#x5DE;&#x5D4; &#x5DE;&#x5E8;&#x5D0;&#x5E9;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x5D1;&#x5D4;&#x5E8;&#x5E6;&#x5D0;&#x5D4; &#x5D6;&#x5D5; &#x5E0;&#x5DB;&#x5E1;&#x5D4; &#x5D0;&#x5EA; &#x5D4;&#x5D3;&#x5D5;&#x5E8; &#x5D4;&#x5D1;&#x5D0; &#x5E9;&#x5DC; &#x5E4;&#x5D9;&#x5EA;&#x5D5;&#x5D7; &#x5D9;&#x5D9;&#x5E9;&#x5D5;&#x5DE;&#x5D9;&#x5DD; &#x5DC;&#x5D8;&#x5DC;&#x5E4;&#x5D5;&#x5E0;&#x5D9;&#x5DD; &#x5E0;&#x5D9;&#x5D9;&#x5D3;&#x5D9;&#x5DD;.
&#x5E4;&#x5E8;&#x5D9;&#x5E0;&#x5D2; &#x5D4;&#x5D9;&#x5D0; &#x5D9;&#x5D9;&#x5E9;&#x5D5;&#x5DD; &#x5DC;&#x5D8;&#x5DC;&#x5E4;&#x5D5;&#x5E0;&#x5D9;&#x5DD; &#x5E0;&#x5D9;&#x5D9;&#x5D3;&#x5D9;&#x5DD; &#x5D5;&#x5E7;&#x5D4;&#x5D9;&#x5DC;&#x5D4; &#x5E2;&#x5DD; &#x5DE;&#x5D9;&#x5DC;&#x5D9;&#x5D5;&#x5E0;&#x5D9; &#x5DE;&#x5E9;&#x5EA;&#x5DE;&#x5E9;&#x5D9;&#x5DD;
&#x5D1;&#x5E8;&#x5D7;&#x5D1;&#x5D9; &#x5D4;&#x5E2;&#x5D5;&#x5DC;&#x5DD; &#x5E9;&#x5DE;&#x5D0;&#x5E4;&#x5E9;&#x5E8;&#x5EA; &#x5DC;&#x5DE;&#x5E4;&#x5EA;&#x5D7;&#x5D9;&#x5DD; &#x5DC;&#x5D1;&#x5E0;&#x5D5;&#x5EA; &#x5D9;&#x5D9;&#x5E9;&#x5D5;&#x5DE;&#x5D9;&#x5DD; &#x5E0;&#x5D9;&#x5D9;&#x5D3;&#x5D9;&#x5DD; &#x5D1;&#x5D0;&#x5DE;&#x5E6;&#x5E2;&#x5D5;&#x5EA;
&#x5D9;&#x5DB;&#x5D5;&#x5DC;&#x5D5;&#x5EA; &#x5E4;&#x5D9;&#x5EA;&#x5D5;&#x5D7; &#x5D4;&#x5D5;&#x5D5;&#x5D1; &#x5E9;&#x5DC;&#x5D4;&#x5DD; (&#x5DB;&#x5DE;&#x5D5; PHP, Java &#x5D5;&#x5DB;&#x5D5;).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x5D0;&#x5E0;&#x5D5; &#x5EA;&#x5DE;&#x5D9;&#x5D3; &#x5DE;&#x5D7;&#x5E4;&#x5E9;&#x5D9;&#x5DD; &#x5DE;&#x5E8;&#x5E6;&#x5D9;&#x5DD; &#x5E9;&#x5D9;&#x5EA;&#x5E0;&#x5D3;&#x5D1;&#x5D5; &#x5DC;&#x5EA;&#x5EA; &#x5D4;&#x5E8;&#x5E6;&#x5D0;&#x5D5;&#x5EA; &#x5D1;&#x5E0;&#x5D5;&#x5E9;&#x5D0;&#x5D9;&#x5DD; &#x5E9;&#x5D5;&#x5E0;&#x5D9;&#x5DD; &#x5D4;&#x5E7;&#x5E9;&#x5D5;&#x5E8;&#x5D9;&#x5DD; &#x5DC;&#x5E7;&#x5D5;&#x5D3;-&#x5E4;&#x5EA;&#x5D5;&#x5D7; &#x5D5;&#x5DC;&#x5DE;&#x5D7;&#x5E9;&#x5D1;&#x5D9;&#x5DD;.
&#x5D1;&#x5DE;&#x5D9;&#x5D3;&#x5D4; &#x5E9;&#x5D0;&#x5EA;&#x5DD; &#x5DE;&#x5E2;&#x5D5;&#x5E0;&#x5D9;&#x5D9;&#x5E0;&#x5D9;&#x5DD; &#x5DC;&#x5EA;&#x5EA; &#x5D4;&#x5E8;&#x5E6;&#x5D0;&#x5D4;, &#x5D0;&#x5D5; &#x5D9;&#x5E9; &#x5DC;&#x5DB;&#x5DD; &#x5D4;&#x5E6;&#x5E2;&#x5D4; &#x5DC;&#x5D4;&#x5E8;&#x5E6;&#x5D0;&#x5D4; &#x5E9;&#x5DE;&#x5E2;&#x5E0;&#x5D9;&#x5D9;&#x5E0;&#x5EA; &#x5D0;&#x5EA;&#x5DB;&#x5DD;, &#x5E0;&#x5E9;&#x5DE;&#x5D7; &#x5DC;&#x5E9;&#x5DE;&#x5D5;&#x5E2; &#x5DE;&#x5DE;&#x5DB;&#x5DD;.
&#x3C;/p&#x3E;

&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>may</category>
<category>announcement</category>
<category>mobile</category>
<category>activities</category>
<category>open source</category>
<category>israel</category>
<category>telux</category>
<category>telfoss</category>
<category>meeting</category>
<category>foss</category>
<category>linux</category>
<category>fring</category>
<category>tel aviv</category>
<category>phones</category>
<category>cellphones</category>
<comments>http://community.livejournal.com/shlomif_tech/26463.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/26463.html</guid>
<pubDate>Tue, 12 May 2009 18:07:49 GMT</pubDate>
</item>
<item>
<title>Recent Hacktivity</title>
<link>http://community.livejournal.com/shlomif_tech/26136.html</link>
<description>&#x3C;p&#x3E;
I worked a lot on &#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E;,
doing refactoring and optimisations. On my Birthday (5-May, Tuesday) I tried
to do several optimisations, and most of them did not work, so it was a bit
frustrating. But some of them did work, and at least I know not to repeat
the other ones.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
After using it for Freecell Solver, I had decided to adopt the
&#x3C;a href=&#x22;http://search.cpan.org/dist/Statistics-Descriptive/&#x22;&#x3E;Statistics-Descriptive&#x3C;/a&#x3E;
CPAN module, and eventually got the necessary permissions. I uploaded version
2.7 which featured some bug fixes, cleanups and a conversion to Module-Build.
This release still failed some CPAN Testers tests, mainly on 64-bit 
architectures, due to rounding problems, so I uploaded a new release - 2.8 -
yesterday, with more robust tests and a few other improvements.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I worked a bit on &#x3C;a href=&#x22;http://perl-begin.org/&#x22;&#x3E;the Perl Beginners&#x27;
Site&#x3C;/a&#x3E;, fixing some broken links, adding more external links, and fixing
some other problems. While working on it, I found a validation problem caused 
by 
&#x3C;a href=&#x22;http://web-cpan.berlios.de/modules/HTML-Widgets-NavMenu/&#x22;&#x3E;HTML-Widgets-NavMenu&#x3C;/a&#x3E;, which I corrected on its trunk, but did not upload to CPAN yet.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
One day, I did not have a lot to do, so I decided to convert 
&#x3C;a href=&#x22;http://web-cpan.berlios.de/modules/Test-Run/&#x22;&#x3E;Test-Run&#x3C;/a&#x3E;
from the old and deprecated NEXT.pm to 
&#x3C;a href=&#x22;http://search.cpan.org/dist/MRO-Compat/&#x22;&#x3E;MRO::Compat&#x3C;/a&#x3E;. I ran into
a few problems because my inheritance graph was incompatible with the C3
guidelines, but &#x3C;a href=&#x22;http://www.trout.me.uk/&#x22;&#x3E;mst&#x3C;/a&#x3E; helped me (again).
Thanks! So I ended up uploading Test-Run along with all of its plugins with the
converted code.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I also worked on &#x3C;a href=&#x22;https://bugs.kde.org/show_bug.cgi?id=159251&#x22;&#x3E;a
solution for this KMail bug&#x3C;/a&#x3E; that a friend referred me to. It took me
a lot of experimentation to get a Perl script to be able to properly
filter the Postfix outgoing e-mail, and after everything seemed to work,
my ISP&#x27;s email-server rejected the message. Either I&#x27;m doing something wrong,
or I need to use a different outgoing SMTP server.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Happy Hacking and happy birthday to 
&#x3C;a href=&#x22;http://alanhaggai.org/#home&#x22;&#x3E;Alan Haggai Alavi&#x3C;/a&#x3E;!
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>html-widgets-navmenu</category>
<category>perl-begin</category>
<category>testing</category>
<category>mro-compat</category>
<category>statistics-descriptive</category>
<category>cpan testers</category>
<category>test-run</category>
<category>smtp</category>
<category>inheritance</category>
<category>qa</category>
<category>freecell</category>
<category>cpan</category>
<category>birthday</category>
<category>email</category>
<category>hacking</category>
<category>tap</category>
<category>c3</category>
<category>kmail</category>
<category>log</category>
<category>recent</category>
<category>hacktivity</category>
<category>perl</category>
<category>fcs</category>
<category>postfix</category>
<category>solver</category>
<comments>http://community.livejournal.com/shlomif_tech/26136.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/26136.html</guid>
<pubDate>Sun, 10 May 2009 08:59:42 GMT</pubDate>
</item>
<item>
<title>Several Vim Tips</title>
<link>http://community.livejournal.com/shlomif_tech/26010.html</link>
<description>&#x3C;p&#x3E;
I have collected several &#x3C;a href=&#x22;http://www.vim.org/&#x22;&#x3E;vim&#x3C;/a&#x3E; tips in the 
past weeks, so here they are:
&#x3C;/p&#x3E;

&#x3C;ol&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
One can use &#x3C;a href=&#x22;http://vimdoc.sourceforge.net/htmldoc/windows.html#:sp&#x22;&#x3E;the
:sp(lit) command&#x3C;/a&#x3E; to split a window into two. &#x3C;tt&#x3E;:new&#x3C;/tt&#x3E; splits and
starts editing a new buffer. Finally, both of these commands followed by
a filename stats editing the specified file in the new viewport.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
This tip is long overdue. You can make Vim behave more like a Windows-like
editor by adding &#x3C;a href=&#x22;http://vimdoc.sourceforge.net/htmldoc/gui_w32.html#mswin.vim&#x22;&#x3E;source $VIMRUNTIME/mswin.vim&#x3C;/a&#x3E; to your &#x3C;tt&#x3E;.vimrc&#x3C;/tt&#x3E;.
Reportedly, it causes many problems and is not recommended, but I still
like to use it, afer all these years.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
One can 
&#x3C;a href=&#x22;http://vimdoc.sourceforge.net/htmldoc/pattern.html#/\_&#x22;&#x3E;match
any char including newline using \_.&#x3C;/a&#x3E;. The &#x22;\_&#x22; construct works for
other character classes, and allows you to match all of them as well as 
newline.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;
It took me a long time to find that, back when I did, so I&#x27;m documenting
it here.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;
&#x3C;li&#x3E;
&#x3C;p&#x3E;
After one 
&#x3C;a href=&#x22;http://vimdoc.sourceforge.net/htmldoc/change.html#shift-left-right&#x22;&#x3E;indents 
or unindents several lines using 
&#x22;&#x26;lt;&#x22;, &#x22;&#x26;gt;&#x22;, &#x22;&#x26;lt;&#x26;lt;&#x22;, &#x22;&#x26;gt;&#x26;gt;&#x22;, etc.&#x3C;/a&#x3E; and the indentation level 
needs to be promoted or demoted further, one can use the &#x22;.&#x22; (= repeat) 
command to repeat the shifting again (and again) until it is right.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;
I discovered this trick by accident, but immediately found it useful.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;
&#x3C;/ol&#x3E;

&#x3C;p&#x3E;
Hope all Israelis had a nice &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Yom_Ha%27atzmaut&#x22;&#x3E;Independence Day&#x3C;/a&#x3E;.
Happy Vimming!
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>tip</category>
<category>text</category>
<category>tech tip</category>
<category>indent</category>
<category>windows-like</category>
<category>tips</category>
<category>new window</category>
<category>tech</category>
<category>mswin</category>
<category>editing</category>
<category>newline</category>
<category>editor</category>
<category>split</category>
<category>vim</category>
<category>any char</category>
<category>repeat</category>
<comments>http://community.livejournal.com/shlomif_tech/26010.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/26010.html</guid>
<pubDate>Thu, 30 Apr 2009 10:00:19 GMT</pubDate>
</item>
<item>
<title>Freecell Solver 2.26.0 was Released</title>
<link>http://fc-solve.blogspot.com/2009/04/freecell-solver-2260-was-released.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E; version 2.26.0
has been released  It is available in the form of a source tarball from 
&#x3C;a href=&#x22;http://fc-solve.berlios.de/download.html&#x22;&#x3E;the 
    download page&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This version contains several significant optimisations (up to the point where
the &#x22;freecell-only&#x22; preset can solve the first 32,000 Microsoft Freecell 
deals in 200 deals per second.), and improvements to the build system 
(including the elimination of compiler warnings). Finally, the test suite
now builds correctly inside the source distribution.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
We have more ideas for optimisations and other enhancements, and this is just
an intermediate release (but one which should be perfectly usable).
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-438448153293326271?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>version</category>
<category>games</category>
<category>patience</category>
<category>optimisation</category>
<category>freecell</category>
<category>2.26.0</category>
<category>solitaire</category>
<category>release</category>
<category>cmake</category>
<category>optimization</category>
<category>solving</category>
<category>solver</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-438448153293326271</guid>
<pubDate>Mon, 27 Apr 2009 11:59:00 +0000</pubDate>
<atom:updated>2009-04-27T05:00:01.299-07:00</atom:updated>
</item>
<item>
<title>Tech Tip: using iotop to monitor the disk activity.</title>
<link>http://community.livejournal.com/shlomif_tech/25706.html</link>
<description>&#x3C;p&#x3E;
Today I discovered &#x3C;a href=&#x22;http://guichaz.free.fr/iotop/&#x22;&#x3E;iotop&#x3C;/a&#x3E; (
&#x3C;a href=&#x22;http://freshmeat.net/projects/iotop&#x22;&#x3E;on Freshmeat&#x3C;/a&#x3E;). It&#x27;s a 
(Linux-only) tool 
to find which processes are doing the most hard-disk activity at present. 
Useful for the cases where your hard-disks&#x27; LED is active and you 
don&#x27;t know why.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The 0.2.1 version (which is the latest) is available in the Mandriva Cooker 
repositories, and it was a single urpmi command away from installation. I 
assume installing it on Debian, Ubuntu, etc. should be just as easy.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I learned about iotop in &#x3C;a href=&#x22;http://ilsh.info/?p=1471&#x22;&#x3E;this blog post 
(in Hebrew) by Ilan Shavit&#x3C;/a&#x3E;, which I read today. Thanks Ilan, for the tip!
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>tip</category>
<category>iotop</category>
<category>tech</category>
<category>hard disk</category>
<category>tech tip</category>
<category>activity</category>
<category>top</category>
<category>linux</category>
<category>i/o</category>
<comments>http://community.livejournal.com/shlomif_tech/25706.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/25706.html</guid>
<pubDate>Sat, 25 Apr 2009 19:04:15 GMT</pubDate>
</item>
<item>
<title>No Wiki Spam Lately</title>
<link>http://community.livejournal.com/shlomif_tech/25425.html</link>
<description>&#x3C;p&#x3E;
I&#x27;m administrating several instances of 
&#x3C;a href=&#x22;http://www.mediawiki.org/&#x22;&#x3E;MediaWiki&#x3C;/a&#x3E;. Up to several months ago,
it had been the case that every few days, there was a spam attack on one
or more of them, which required my attention. Lately however, they haven&#x27;t
been spammed at all. So I wonder why.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The anti-spam measures we employ are: 
&#x3C;/p&#x3E;

&#x3C;ol&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
We do not allow anonymous commits, and instead require registration. 
Nevertheless, the registration does not require an E-mail-handshake, which 
means it can be implemented more easily by pure-HTTP bots.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
We utilise the 
&#x3C;a href=&#x22;http://www.mediawiki.org/wiki/Extension:SpamBlacklist&#x22;&#x3E;MediaWiki
SpamBlacklist plugin&#x3C;/a&#x3E;, which blacklists edits based on URLs matching
certain regular expressions. We use both the Wikimedia-maintained blacklist
and our own blacklist, where we add URLs that we were spammed with. 
&#x3C;/p&#x3E;
&#x3C;p&#x3E;
Lately, our custom blacklist has not been updated, since we didn&#x27;t encounter
any spam.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
All external URLs in the wikis are using 
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Nofollow&#x22;&#x3E;rel=&#x22;nofollow&#x22;&#x3C;/a&#x3E; 
to make sure they do not gain page rank. This did not prevent wiki spam, but 
it makes sure that spammers don&#x27;t benefit from spamming.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;
&#x3C;/ol&#x3E;

&#x3C;p&#x3E;
Possible explanations to why there was no wiki spam lately is that the 
wikimedia-blacklist has been more promptly maintained and prevented most
spam, or that spam-bots check for the rel=&#x22;nofollow&#x22; attribute and in case
they find it, do not spam. That, or something changed in the configuration
of the wikis, which I wasn&#x27;t made aware of.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I&#x27;m happy that I have less work to do to combat the spam, but am worried
that I may become negligent. But I guess I should enjoy it while it lasts.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>wiki spam</category>
<category>linux</category>
<category>open source</category>
<category>israel</category>
<category>mediawiki</category>
<category>spam</category>
<category>wiki</category>
<category>foss</category>
<comments>http://community.livejournal.com/shlomif_tech/25425.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/25425.html</guid>
<pubDate>Sat, 25 Apr 2009 10:18:09 GMT</pubDate>
</item>
<item>
<title>My Review of The Perl Review, Winter 2008 Issue</title>
<link>http://community.livejournal.com/shlomif_tech/25219.html</link>
<description>&#x3C;p&#x3E;
For all those who are interested, I have written 
&#x3C;a href=&#x22;http://wiki.perl.org.il/index.php/Book_Review_-_The_Perl_Review_-_Winter_2008_-_reviewed_by_Shlomi_Fish&#x22;&#x3E;a 
review of the Winter 2008 issue of the journal &#x22;The Perl Review&#x22;&#x3C;/a&#x3E; on the 
Israeli Perl Mongers wiki. I was given a copy of this issue as a present
by &#x3C;a href=&#x22;http://szabgab.com/&#x22;&#x3E;szabgab&#x3C;/a&#x3E; in one of the recent 
&#x3C;a href=&#x22;http://www.cs.tau.ac.il/telux/&#x22;&#x3E;Tel Aviv Open Source club&#x3C;/a&#x3E;
meetings, and felt that I should review it.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>journal</category>
<category>open source</category>
<category>bdfoy</category>
<category>the perl review</category>
<category>telux</category>
<category>review</category>
<category>brian d foy</category>
<category>perl</category>
<category>magazine</category>
<category>book review</category>
<comments>http://community.livejournal.com/shlomif_tech/25219.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/25219.html</guid>
<pubDate>Mon, 20 Apr 2009 19:56:37 GMT</pubDate>
</item>
<item>
<title>The Linmagazine Events Calendar Has Become Unreliable</title>
<link>http://community.livejournal.com/shlomif_tech/24941.html</link>
<description>&#x3C;p&#x3E;
This is a small warning for open-source enthusiasts in Israel
not to rely on the &#x3C;a href=&#x22;http://linmagazine.co.il/event&#x22;&#x3E;Linmagazine
Events Calendar&#x3C;/a&#x3E;. It&#x27;s no longer actively maintained, and my two 
submissions of &#x3C;a href=&#x22;http://wiki.osdc.org.il/index.php/OSDClub&#x22;&#x3E;Tel
Aviv Open Source Club&#x3C;/a&#x3E; meetings were not published. For one of them,
I sent a request to the editor to accept my event via Drupal&#x27;s messaging
mechanism, and he didn&#x27;t.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
For alternatives you may consider the 
&#x3C;a href=&#x22;http://www.whatsup.org.il/&#x22;&#x3E;Whatsup.org.il&#x3C;/a&#x3E; post calendar (
available on the front page) and hopefully we&#x27;ll be able to arrange an
aggregated Google Calendar/iCalendar for FOSS events in Israel soon. But
if you&#x27;ve relied on Linmagazine.co.il&#x27;s calendar alone - you shouldn&#x27;t.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>events</category>
<category>open source</category>
<category>israel</category>
<category>telux</category>
<category>foss</category>
<category>linmagazine</category>
<category>open</category>
<category>tel aviv</category>
<category>source</category>
<category>meetings</category>
<comments>http://community.livejournal.com/shlomif_tech/24941.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/24941.html</guid>
<pubDate>Mon, 20 Apr 2009 18:52:47 GMT</pubDate>
</item>
<item>
<title>Freecell Solver 2.24.0 was Released</title>
<link>http://fc-solve.blogspot.com/2009/04/freecell-solver-2240-was-released.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E; version 2.24.0
was released today. It is available in a source archive from 
&#x3C;a href=&#x22;http://fc-solve.berlios.de/download.html&#x22;&#x3E;the 
    download page&#x3C;/a&#x3E;. Windows command-line binaries should be available
momentarily.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This version contains some fixes to crashes and memory leaks when
using the &#x3C;tt&#x3E;-opt&#x3C;/tt&#x3E; with a range
of boards (or otherwise when a solver instance is recycled), a new
&#x22;freecell-solver-fc-pro-range-solve&#x22; executable (built by default,
but not installed), which runs a range of 
deals using the solver and outputs the number of FCS moves, the number of 
FC-Pro moves, and the FC-Pro moves in standard notation.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
For developers, this release also contains a build type for profiling,
many cleanups to the code, and a makefile to generate
&#x3C;a href=&#x22;http://llvm.org/&#x22;&#x3E;LLVM&#x3C;/a&#x3E; bitcode.
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-2824828636272187726?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>version</category>
<category>optimization scan</category>
<category>freecell</category>
<category>cleanups</category>
<category>release</category>
<category>solving</category>
<category>solver</category>
<category>refactoring</category>
<category>profiling</category>
<category>2.24.0</category>
<category>llvm</category>
<category>range</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-2824828636272187726</guid>
<pubDate>Sat, 18 Apr 2009 15:02:00 +0000</pubDate>
<atom:updated>2009-04-18T08:03:50.214-07:00</atom:updated>
</item>
<item>
<title>Recent Hacktivity</title>
<link>http://community.livejournal.com/shlomif_tech/24631.html</link>
<description>&#x3C;p&#x3E;
This is another log of my (= Shlomi Fish) hacktivity. 
&#x3C;/p&#x3E;

&#x3C;ol&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
&#x3C;b&#x3E;xine-lib patch got applied&#x3C;/b&#x3E;
&#x3C;a href=&#x22;http://community.livejournal.com/shlomif_tech/23482.html&#x22;&#x3E;I 
mentioned my xine-lib patch for fixing the MOD/S3M/XM/IT/etc. mime
types&#x3C;/a&#x3E;, and after pinging the mailing list
discovered &#x3C;a href=&#x22;http://sourceforge.net/mailarchive/forum.php?thread_name=200903252055.59889.shlomif%40iglu.org.il&#x26;amp;forum_name=xine-devel&#x22;&#x3E;that it
has been applied, and later on corrected&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;
After one of the recent Mandriva updates, I can now listen to Module files
on Amarok 2.x comfortably. Thanks to the Amarok developers for applying and 
correcting my patch.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
&#x3C;b&#x3E;Building the KDE 4.x trunk&#x3C;/b&#x3E; - I decided to try the 
&#x3C;a href=&#x22;http://www.kde.org/&#x22;&#x3E;KDE&#x3C;/a&#x3E; 4.x-trunk to 
help with the wallpaper-per-virtual-desktop feature that was incorporated
there. It took me quite a long time to build it, because I did it wrong 
and the KDE build process did not warn me about it. Here&#x27;s the executive
summary of how to do it right: you need to build the following
modules from trunk (in order): kdesupport, kdelibs, kdepimlibs, and kdebase,
using a script such as the following:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
#!/bin/bash
k4d=&#x22;/opt/kde4-trunk&#x22;
k4sd=&#x22;$k4d/share&#x22;
k4bd=&#x22;$k4d/bin&#x22;
PATH=&#x22;$k4bd:$PATH&#x22;
test ! -e build &#x26;amp;&#x26;amp; mkdir build
cd build
rm -f CMakeCache.txt
export CMAKE_PREFIX_PATH=&#x22;$k4d:$CMAKE_PREFIX_PATH&#x22;
cmake -DCMAKE_INSTALL_PREFIX=&#x22;$k4d&#x22; \
    -D&#x22;PYTHON_SITE_PACKAGES_DIR:PATH&#x22;=&#x22;$k4d/lib&#x22; \
    -DCMAKE_BUILD_TYPE=debugfull \
    ..
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
In kdebase, you may see that &#x22;make install&#x22; tries to install some python
files under &#x3C;tt&#x3E;/usr&#x3C;/tt&#x3E;. I workarounded it by editing the appropriate .cmake
files and deleting the installation instructions for them, but there&#x27;s a 
patchset in the works for that.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;

&#x3C;p&#x3E;
&#x3C;b&#x3E;KDE trunk bug&#x3C;/b&#x3E; - In any case, I noticed a few bugs in kde4-trunk (as 
expected) and
&#x3C;a href=&#x22;https://bugs.kde.org/show_bug.cgi?id=188751&#x22;&#x3E;reported a bug
about the picture names in the wallpaper selection&#x3C;/a&#x3E;. I spent the rest
of the day searching the code and running it under the debugger, in order
to try to fix the bug, and was eventually able to supply a patchset for that
(in the bug report). The patches were not committed yet.
&#x3C;/p&#x3E;

&#x3C;/li&#x3E;

&#x3C;li&#x3E;

&#x3C;p&#x3E;
&#x3C;b&#x3E;First-Come First-Served Readers/Writers Lock&#x3C;/b&#x3E; - A Chinese 
programmer contacted me by email and reported the fact that
&#x3C;a href=&#x22;http://www.shlomifish.org/rwlock/&#x22;&#x3E;the First-Come First-Served
Readers/Writers Lock&#x3C;/a&#x3E; did not implement the _destroy() function, which
was documented there. He was right, and it was funny because I 
haven&#x27;t touched this code for many years (2002 according to Freshmeat), and 
didn&#x27;t expect it to contain
any problems. Apparently, they were one of the first to want to use it in
production.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So I went to work. I converted the build system to CMake, because GNU
Autohell gave me a weird error (again), that I couldn&#x27;t care to fix. I fixed
this problem, and also fixed some more issues with the code and API. Then
I uploaded a new version and published it on Freshmeat.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I guess Murphy was right by saying that every computer programme contains
one more bug than has been discovered so far.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
&#x3C;b&#x3E;CPAN&#x3C;/b&#x3E; - In the 
&#x3C;a href=&#x22;http://search.cpan.org/dist/XML-RSS/&#x22;&#x3E;XML::RSS&#x3C;/a&#x3E; realm, I applied a 
patch that Simon Wistow sent me for a test file, and corrected it for 
style, and then uploaded a new version (1.44) to the CPAN on 1-April-2009.
I also corrected some bugs in 
&#x3C;a href=&#x22;http://search.cpan.org/dist/HTML-Links-Localize/&#x22;&#x3E;HTML-Links-Localize&#x3C;/a&#x3E;
and 
&#x3C;a href=&#x22;http://search.cpan.org/dist/WWW-Search-MSN/&#x22;&#x3E;WWW-Search-MSN&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;
&#x3C;p&#x3E;
&#x3C;b&#x3E;Freecell Solver&#x3C;/b&#x3E; - I investigated 
&#x3C;a href=&#x22;http://tech.groups.yahoo.com/group/fc-solve-discuss/message/927&#x22;&#x3E;a 
build problem of recent Freecell Solvers with CMake-2.6.2&#x3C;/a&#x3E;, and
discovered that it was a bug in CMake-2.6.2, which was corrected in 2.6.3.
I also &#x3C;a href=&#x22;http://tech.groups.yahoo.com/group/fc-solve-discuss/message/932&#x22;&#x3E;applied some cleanups to the code&#x3C;/a&#x3E;,
and extracted some incredibly complicated C-preprocessor-macros into 
functions, and afterwards wrote a makefile for 
targetting &#x3C;a href=&#x22;http://llvm.org/&#x22;&#x3E;LLVM bitcode&#x3C;/a&#x3E;, and 
&#x3C;a href=&#x22;http://tech.groups.yahoo.com/group/fc-solve-discuss/message/933&#x22;&#x3E;implemented a working &#x22;profile&#x22; CMAKE_BUILD_TYPE&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;li&#x3E;

&#x3C;p&#x3E;
&#x3C;b&#x3E;GUI for a Ruby Library&#x3C;/b&#x3E; - as an exercise in learning the Ruby programming
language, I started writing a library, and then I needed a GUI to
visualise it. My first thought was using wxRuby, but Mandriva didn&#x27;t have
a package for it. After contemplating on using gtk+, I decided against it,
and started prepared an .src.rpm for wxRuby, while trying to adapt an
existing wxPerl GUI to use the Ruby library using 
&#x3C;a href=&#x22;http://gitorious.org/projects/inline-ruby&#x22;&#x3E;Inline::Ruby&#x3C;/a&#x3E;. I
discovered that the CPAN version was incredibly broken and completely
non-functional on recent perl&#x27;s, but looking at the rt.cpan.org bug-report,
I found a &#x3C;a href=&#x22;http://gitorious.org/projects/inline-ruby&#x22;&#x3E;an up-to-date
version on gitorious&#x3C;/a&#x3E;, which I was able to use.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So I started adapting the wxPerl library to use the Ruby code. It worked
very nicely at first, but then I ran into a strange crash. I reproduced this
with a simple non-GUI Perl Inline::Ruby script that used my code, while
the equivalent Ruby script ran flawlessly. So I reported this as a bug in
the gitorious Inline::Ruby. Meanwhile, wxRuby failed to build, and I
have some bugs to report. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I realised I needed to write the GUI in Ruby, and so, decided to use QtRuby.
I started from the final tutorial example, and now have a mostly working
code. All of this wasted a lot of time that could otherwise be invested
on the library itself. But at least I uncovered some bugs.
&#x3C;/p&#x3E;
&#x3C;/li&#x3E;

&#x3C;/ol&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>rwlock</category>
<category>ruby</category>
<category>kdelibs</category>
<category>programming</category>
<category>fcfs</category>
<category>kdebase</category>
<category>bug</category>
<category>llvm</category>
<category>gtk</category>
<category>freecell</category>
<category>module files</category>
<category>bugs</category>
<category>hacking</category>
<category>inline-ruby</category>
<category>hacktivity</category>
<category>patch</category>
<category>xine</category>
<category>mod</category>
<category>gui</category>
<category>wxwidgets</category>
<category>kde</category>
<category>c preprocessor macros</category>
<category>cpan</category>
<category>qt</category>
<category>cmake</category>
<category>log</category>
<category>kde 4</category>
<category>recent</category>
<category>perl</category>
<category>fcs</category>
<category>solver</category>
<category>s3m</category>
<category>xm</category>
<category>amarok</category>
<comments>http://community.livejournal.com/shlomif_tech/24631.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/24631.html</guid>
<pubDate>Tue, 14 Apr 2009 13:12:56 GMT</pubDate>
</item>
<item>
<title>Alphabets</title>
<link>http://shlomif.livejournal.com/57637.html</link>
<description>&#x3C;p&#x3E;
First of all, happy &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Passover&#x22;&#x3E;Passover&#x3C;/a&#x3E;
to everybody. If you&#x27;re Jewish - have a happy Seder today.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
We once showed &#x3C;a href=&#x22;http://he.wikipedia.org/&#x22;&#x3E;writing in the Hebrew
alphabet&#x3C;/a&#x3E; to an English IM-friend of ours, and she called it &#x22;Tetris&#x22;.
As a result, the nickname stuck and our circle of friends keeps referring
to the Hebrew alphabet as &#x22;Tetris&#x22;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
One day we were discussing 
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Jackal&#x22;&#x3E;Jackals&#x3C;/a&#x3E;, and someone linked
to &#x3C;a href=&#x22;http://ta.wikipedia.org/wiki/%E0%AE%95%E0%AF%81%E0%AE%B3%E0%AF%8D%E0%AE%B3_%E0%AE%A8%E0%AE%B0%E0%AE%BF&#x22;&#x3E;the 
page about them on the Tamil wikipedia&#x3C;/a&#x3E;. Then she said that Tamil &#x22;looked 
like a drunk spider walked across the page!&#x22;. Then I asked her to nicname
it in a similar manner to &#x22;Tetris&#x22; and she said she would call it 
&#x22;curly wurly&#x22;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
And the obligatory media recommendations: I really enjoyed listening to
&#x3C;a href=&#x22;http://www.magnatune.com/artists/albums/costlow-woods/&#x22;&#x3E;Rob Costlow&#x27;s
&#x22;Woods of Chaos&#x22; album on Magnatune.com&#x3C;/a&#x3E;. Costlow plays the piano, and
he has very moving and original melodies, with excellent quality. Magnatune is
a music publisher that publishes freely distributable music, and you can
listen to the album online.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
And I also recently became addicted
&#x3C;a href=&#x22;http://www.youtube.com/watch?v=4WAapKx2TvM&#x22;&#x3E;to this song by 
Rihanna&#x3C;/a&#x3E; (which isn&#x27;t free),  so you may enjoy it too. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Happy Passover!
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<comments>http://shlomif.livejournal.com/57637.html</comments>
<guid isPermaLink="true">http://shlomif.livejournal.com/57637.html</guid>
<pubDate>Wed, 08 Apr 2009 11:51:10 GMT</pubDate>
</item>
<item>
<title>azuki-broth</title>
<link>http://www.flickr.com/photos/shlomif/3419217176/</link>
<description>&#x3C;p&#x3E;&#x3C;a href=&#x22;http://www.flickr.com/people/shlomif/&#x22;&#x3E;shlomif2&#x3C;/a&#x3E; posted a photo:&#x3C;/p&#x3E;
&#x3C;p&#x3E;&#x3C;a href=&#x22;http://www.flickr.com/photos/shlomif/3419217176/&#x22; title=&#x22;azuki-broth&#x22;&#x3E;&#x3C;img src=&#x22;http://farm4.static.flickr.com/3612/3419217176_58f5b1907e_m.jpg&#x22; width=&#x22;240&#x22; height=&#x22;180&#x22; alt=&#x22;azuki-broth&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/p&#x3E;

&#x3C;p&#x3E;Broth made out of Azuki (or what we call &#x26;quot;Red Lubyah&#x26;quot; - &#x26;quot;Red Black-eyed Peas&#x26;quot;) that my mother prepared.&#x3C;br /&#x3E;
&#x3C;br /&#x3E;
License is Public Domain, but an attribution or a donation will be appreciated.&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<guid isPermaLink="false">tag:flickr.com,2004:/photo/3419217176</guid>
<pubDate>Mon, 06 Apr 2009 12:46:46 -0700</pubDate>
</item>
<item>
<title>Escaping Special Characters in MySQL Regular Expressions</title>
<link>http://community.livejournal.com/shlomif_tech/24326.html</link>
<description>&#x3C;p&#x3E;
MySQL sports the 
&#x3C;a href=&#x22;http://dev.mysql.com/doc/refman/5.1/en/regexp.html&#x22;&#x3E;REGEXP&#x3C;/a&#x3E; to
enable search using a regular expression pattern. However, it does not contain 
a built-in function (such as Perl&#x27;s &#x3C;a href=&#x22;http://perldoc.perl.org/functions/quotemeta.html&#x22;&#x3E;quotemeta&#x3C;/a&#x3E;) to escape the special characters in such 
patterns in order to prevent injecting malicious regular expression code.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Some time ago, I needed to search for a string within word-boundaries in MySQL
in a PHP site I help maintain. Here&#x27;s the solution I came up with for
constructing this search:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
function enbackslash($matches)
{
    return &#x27;\\&#x27; . $matches[1];
}

$safe_word = $mysqli-&#x26;gt;real_escape_string(
    preg_replace_callback(&#x27;/([^\\w\\s])/&#x27;, &#x22;enbackslash&#x22;, $word)
    );
      
$sql .= &#x22;text regexp &#x27;[[:&#x26;lt;:]]${safe_word}[[:&#x26;gt;:]]&#x27;&#x22;;
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
Basically what happens is that I prefix a backslash to any non-alphanumeric 
and non-whitespace character, and then escape the string again using
the standard RDBMS-specific escaping function.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I would appreciate any ideas for improving upon this code, but it seems to
work for me.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>tip</category>
<category>regexps</category>
<category>tech tip</category>
<category>rdbms</category>
<category>escape</category>
<category>regexes</category>
<category>expressions</category>
<category>php</category>
<category>regular</category>
<category>characters</category>
<category>regex</category>
<category>tech</category>
<category>chars</category>
<category>mysql</category>
<category>databases</category>
<category>special</category>
<category>security</category>
<comments>http://community.livejournal.com/shlomif_tech/24326.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/24326.html</guid>
<pubDate>Sun, 05 Apr 2009 14:00:50 GMT</pubDate>
</item>
<item>
<title>The PONIE Subversion Repository</title>
<link>http://community.livejournal.com/shlomif_tech/24185.html</link>
<description>&#x3C;p&#x3E;
While cleaning up an old hard-disk, I found a Subversion working copy of
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/PONIE&#x22;&#x3E;PONIE - the Perl 5 
port to Parrot&#x3C;/a&#x3E;, and found out &#x3C;a href=&#x22;http://svn.perl.org/ponie/&#x22;&#x3E;the
URL of its long-lost Subversion repository&#x3C;/a&#x3E;. Now I see it&#x27;s the first
hit on a Google search for &#x22;ponie repository&#x22;, but still I wondered what
it was for a long time.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>version control</category>
<category>parrot</category>
<category>vcs</category>
<category>perl 5</category>
<category>rcs</category>
<category>svn</category>
<category>perl</category>
<category>repository</category>
<category>ponie</category>
<category>scm</category>
<category>perl 6</category>
<category>subversion</category>
<comments>http://community.livejournal.com/shlomif_tech/24185.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/24185.html</guid>
<pubDate>Thu, 02 Apr 2009 17:46:53 GMT</pubDate>
</item>
<item>
<title>New Book Coming Soon</title>
<link>http://community.livejournal.com/shlomif_tech/24014.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/bits/Mastering-Cat/&#x22;&#x3E;&#x3C;img src=&#x22;http://www.shlomifish.org/humour/bits/Mastering-Cat/small-cover.png&#x22; alt=&#x22;Mastering cat&#x22; /&#x3E;&#x3C;/a&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
It&#x27;s official! I&#x27;m going to publish a new book soon, and I placed
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/bits/Mastering-Cat/&#x22;&#x3E;a new interview
    with me about it&#x3C;/a&#x3E;. Read it so you&#x27;ll understand why &#x22;Mastering
cat&#x22; would be an essential addition to your collection of technical books.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>interview</category>
<category>unix</category>
<category>shlomifish.org</category>
<category>mastering</category>
<category>book</category>
<category>homesite</category>
<category>oreilly</category>
<category>cat</category>
<category>linux</category>
<category>books</category>
<category>homepage</category>
<comments>http://community.livejournal.com/shlomif_tech/24014.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/24014.html</guid>
<pubDate>Wed, 01 Apr 2009 05:11:43 GMT</pubDate>
</item>
<item>
<title>New Book Coming Soon</title>
<link>http://community.livejournal.com/shlomif_hsite/10799.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/bits/Mastering-Cat/&#x22;&#x3E;&#x3C;img src=&#x22;http://www.shlomifish.org/humour/bits/Mastering-Cat/small-cover.png&#x22; alt=&#x22;Mastering cat&#x22; /&#x3E;&#x3C;/a&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
It&#x27;s official! I&#x27;m going to publish a new book soon, and I placed
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/bits/Mastering-Cat/&#x22;&#x3E;a new interview
    with me about it&#x3C;/a&#x3E;. Read it so you&#x27;ll understand why &#x22;Mastering
cat&#x22; would be an essential addition to your collection of technical books.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>book</category>
<category>cat</category>
<category>mastering</category>
<category>oreilly</category>
<category>books</category>
<category>interview</category>
<category>linux</category>
<category>unix</category>
<comments>http://community.livejournal.com/shlomif_hsite/10799.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_hsite/10799.html</guid>
<pubDate>Wed, 01 Apr 2009 05:05:40 GMT</pubDate>
</item>
<item>
<title>Freecell Solver 2.22.0 was Released, Now Under the MIT/X11 License</title>
<link>http://fc-solve.blogspot.com/2009/03/freecell-solver-2220-was-released-now.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E; version 2.22.0
is now available for 
&#x3C;a href=&#x22;http://fc-solve.berlios.de/download.html&#x22;&#x3E;download 
    from the download page&#x3C;/a&#x3E;. This release converts from Public Domain
&#x22;licensing&#x22; &#x3C;a href=&#x22;http://linuxmafia.com/faq/Licensing_and_Law/public-domain.html&#x22;&#x3E;which 
    is problematic for source code&#x3C;/a&#x3E; to the more explicit and less 
controversial &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/MIT_License&#x22;&#x3E;MIT/X11 
    License&#x3C;/a&#x3E;. (Some source files that had been originated by other parties 
are still under the public domain).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Also in this release is some fixes to the build system (in part thanks to
a contribution by Risko Gergely), including the ability to prepare a static
library. 
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Happy solving, and enjoy April Fool&#x27;s Day Tomorrow.
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-3090410347377127318?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>version</category>
<category>rpm</category>
<category>x11 license</category>
<category>freecell</category>
<category>library</category>
<category>2.22.0</category>
<category>cmake</category>
<category>solving</category>
<category>solver</category>
<category>mit license</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-3090410347377127318</guid>
<pubDate>Tue, 31 Mar 2009 19:33:00 +0000</pubDate>
<atom:updated>2009-03-31T12:34:46.393-07:00</atom:updated>
</item>
<item>
<title>New Humour Items and Links</title>
<link>http://community.livejournal.com/shlomif_hsite/10573.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.shlomifish.org/humour.html#wikipedia_has&#x22;&#x3E;a new aphorism
    was added to the humour collection:&#x3C;/a&#x3E;
&#x3C;/p&#x3E;

&#x3C;blockquote&#x3E;
&#x3C;p&#x3E;
Wikipedia has a page about everything including the 
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Kitchen_sink&#x22;&#x3E;http://en.wikipedia.org/wiki/Kitchen_sink&#x3C;/a&#x3E; .
&#x3C;/p&#x3E;
&#x3C;/blockquote&#x3E;

&#x3C;p&#x3E;
Recommendations for &#x3C;a href=&#x22;http://www.shlomifish.org/open-source/favourite/#gdb&#x22;&#x3E;GDB&#x3C;/a&#x3E;, 
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/favourite/#ack&#x22;&#x3E;Ack&#x3C;/a&#x3E;
and &#x3C;a href=&#x22;http://www.shlomifish.org/open-source/favourite/#windows-console&#x22;&#x3E;the 
    improved windows console&#x3C;/a&#x3E;, have been added to the 
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/favourite/&#x22;&#x3E;favourite open-source
    software page&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
There are new fortunes in the &#x3C;a href=&#x22;http://www.shlomifish.org/humour/fortunes/&#x22;&#x3E;fortunes&#x27; collection&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
New links were added to &#x3C;a href=&#x22;http://www.shlomifish.org/open-source/anti/apple/&#x22;&#x3E;the 
    page about Apple&#x3C;/a&#x3E;, 
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/anti/mysql/&#x22;&#x3E;the 
    one about MySQL&#x3C;/a&#x3E;, 
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/anti/windows-vista/&#x22;&#x3E;to the 
    page about Windows Vista&#x3C;/a&#x3E;,
&#x3C;a href=&#x22;http://www.shlomifish.org/no-ie/&#x22;&#x3E;and to the &#x22;Stop Using Internet
    Explorer!&#x22; page&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://www.shlomifish.org/me/&#x22;&#x3E;My GnuPG Public Key&#x3C;/a&#x3E; was updated
, and I now link to my Plurk account on 
&#x3C;a href=&#x22;http://www.shlomifish.org/me/contact-me/&#x22;&#x3E;my contact page&#x3C;/a&#x3E; page.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>gdb</category>
<category>humour</category>
<category>fish</category>
<category>kitchen sink</category>
<category>shlomif</category>
<category>gpg</category>
<category>contact page</category>
<category>grep</category>
<category>msie</category>
<category>console</category>
<category>windows</category>
<category>shlomi</category>
<category>plurk</category>
<category>aphorism</category>
<category>pgp</category>
<category>ack</category>
<category>wikipedia</category>
<comments>http://community.livejournal.com/shlomif_hsite/10573.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_hsite/10573.html</guid>
<pubDate>Tue, 31 Mar 2009 11:42:28 GMT</pubDate>
</item>
<item>
<title>Tel Aviv FOSS Meeting on 5-April-2009: Intro to Perl 6 - Part II</title>
<link>http://community.livejournal.com/shlomif_tech/23557.html</link>
<description>&#x3C;p&#x3E;
The &#x3C;a href=&#x22;http://www.cs.tau.ac.il/telux/&#x22;&#x3E;Tel Aviv Open Source Club&#x3C;/a&#x3E; 
will host the second part of a series of talks by 
&#x3C;a href=&#x22;http://www.szabgab.com/&#x22;&#x3E;Gabor Szabo&#x3C;/a&#x3E; about &#x22;Introduction to 
Perl 6&#x22; - on 5-April-2009.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The meeting will take place at Tel Aviv University, at the Schreiber 
Maths&#x26;amp;CS building, room 008 on 18:30. So mark your calendars. More 
information can be found &#x3C;a href=&#x22;http://wiki.osdc.org.il/index.php/Tel_Aviv_Meeting_on_05_April_2009&#x22;&#x3E;on the wiki page for the meeting&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Attendance is free, it is not necessary to RSVP and everyone are welcome.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
With any other problems, feel free to &#x3C;a href=&#x22;http://www.shlomifish.org/me/contact-me/&#x22;&#x3E;contact me&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;b&#x3E;Abstract&#x3C;/b&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Introduction to Perl 6.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
A series of presentations on learning and using Perl 6 from the ground up to 
the special features.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Many would think that Perl 6 is just a new version of Perl and that it might 
only be interesting for Perl programmers. However, Perl 6 is in fact a 
compiled language running on a virtual machine that embraces many new concepts 
not found in most programming languages.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The presentations will be equally interesting for Perl, Java and C# 
programmers.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
During the series of talks we will start by learning the basics of the 
language and will get to various high level concepts. For now we have
planned 2 sessions but if we need more time we&#x27;ll schedule more meetings.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;b&#x3E;Note:&#x3C;/b&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
After the talk we will go to the caf&#xE9; at the main entrance where we can 
continue the discussion. If people bring portable computers, we can get the 
off the ground on the spot. VirtualBox images will be provided with everything 
that is needed for playing with Perl 6 set up inside. So you may opt to bring
a computer with VirtualBox installed. 
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>open source</category>
<category>szabgab</category>
<category>telux</category>
<category>meeting</category>
<category>foss</category>
<category>perl</category>
<category>tel aviv</category>
<category>perl 6</category>
<category>szabo</category>
<category>gabor</category>
<comments>http://community.livejournal.com/shlomif_tech/23557.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/23557.html</guid>
<pubDate>Tue, 31 Mar 2009 10:41:51 GMT</pubDate>
</item>
<item>
<title>Fixing the Amarok 2.x Playback of Module Files</title>
<link>http://community.livejournal.com/shlomif_tech/23482.html</link>
<description>&#x3C;p&#x3E;
This is a behind-the-scenes story of a patch I worked on. The problem
I encountered was that &#x3C;a href=&#x22;http://amarok.kde.org/&#x22;&#x3E;Amarok&#x3C;/a&#x3E; (
a KDE-based music player) version 2.x could not play 
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Module_file&#x22;&#x3E;Module files&#x3C;/a&#x3E;, such
as &#x22;.mod&#x22;, &#x22;.s3m&#x22;, &#x22;.xm&#x22; or &#x22;.it&#x22;. The symptom was that dropping them
in the playlist did not get them enqueued. Talking about it on IRC, I got
a lead that led me to investiage the following code in Amarok&#x27;s 
&#x3C;tt&#x3E;src/EngineController.cpp&#x3C;/tt&#x3E;:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
    // Filter the available mime types to only include audio and video, 
    // as amarok does not intend to play photos
    static QStringList mimeTable = 
        Phonon::BackendCapabilities::availableMimeTypes().filter( 
            &#x22;audio/&#x22;, Qt::CaseInsensitive ) +
        Phonon::BackendCapabilities::availableMimeTypes().filter(
            &#x22;video/&#x22;, Qt::CaseInsensitive );

    const QString mimeType = item.mimetype();
    const bool valid = mimeTable.contains( mimeType, Qt::CaseInsensitive );
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
So when I ran it using the gdb debugger, while using 
&#x3C;a href=&#x22;http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/kde-devel-gdb&#x22;&#x3E;kde-devel-gdb 
(a set of gdb macros to facilitate debugging KDE applications)&#x3C;/a&#x3E;, I dumped
&#x22;mimeTable&#x22;, and, after grepping it, found that it indeed did not contain
the MIME types associated with module files. Then I investigated why I
could still select and play module files in KDE 4&#x27;s Dragon Player, and 
realised that while it used the mime types list as a file-chooser dialog,
it did not enforce a file that was not associated with any of them from being 
played.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Having realised that, I set out to see why the list of mime types was not
complete. I first tried to see what is the list that phonon returns as is.
So I wrote (or more actually copy and pasted) the following code:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
#include &#x26;lt;iostream&#x26;gt;

#include &#x26;lt;Phonon/VideoWidget&#x26;gt;
#include &#x26;lt;Phonon/BackendCapabilities&#x26;gt;

#include &#x26;lt;KAboutData&#x26;gt;
#include &#x26;lt;KApplication&#x26;gt;
#include &#x26;lt;KCmdLineArgs&#x26;gt;
#include &#x26;lt;KLocalizedString&#x26;gt;


static KAboutData aboutData( &#x26;quot;test-phonon&#x26;quot;, 0,
        ki18n(&#x26;quot;Dragon Player&#x26;quot;), &#x26;quot;0.1.5&#x26;quot;,
        ki18n(&#x26;quot;A video player that has a usability focus&#x26;quot;), 
        KAboutData::License_GPL_V2,
        ki18n(
        &#x26;quot;Copyright 2006, Max Howell\nCopyright 2007, Ian Monroe&#x26;quot;
        ), 
        ki18n(
        &#x26;quot;IRC:\nirc.freenode.net #dragonplayer\n\n&#x26;quot;
        &#x26;quot;Feedback:\nimonroe@dragonplayer.org&#x26;quot;),
        &#x26;quot;http://dragonplayer.org&#x26;quot; );

int main(int argc, char * argv[])
{
    aboutData.setOrganizationDomain( &#x26;quot;mpris.org&#x26;quot; ); //for DBus
    aboutData.addCredit( ki18n(&#x26;quot;David Edmundson&#x26;quot;), 
    ki18n(&#x26;quot;Improvements and polish&#x26;quot;) );
    aboutData.addCredit( ki18n(&#x26;quot;Matthias Kretz&#x26;quot;), 
    ki18n(&#x26;quot;Creator of Phonon&#x26;quot;) );
    aboutData.addCredit( ki18n(&#x26;quot;Eugene Trounev&#x26;quot;), 
    ki18n(&#x26;quot;Dragon Player icon&#x26;quot;) );
    aboutData.addCredit( ki18n(&#x26;quot;Mike Diehl&#x26;quot;), 
    ki18n(&#x26;quot;Handbook&#x26;quot;) );
    aboutData.addCredit( ki18n(&#x26;quot;The Kaffeine Developers&#x26;quot;),
    ki18n(&#x26;quot;Great reference code&#x26;quot;) );
    aboutData.addCredit( ki18n(&#x26;quot;Greenleaf&#x26;quot;), 
    ki18n(&#x26;quot;Yatta happened to be the only video &#x26;quot;
    &#x26;quot;on my laptop to test with. :)&#x26;quot;) );

    KCmdLineArgs::init( argc, argv, &#x26;amp;aboutData );

    KCmdLineOptions options;
    options.add(&#x26;quot;+[URL]&#x26;quot;, ki18n( &#x26;quot;Play &#x26;#39;URL&#x26;#39;&#x26;quot; ));
    options.add(&#x26;quot;play-dvd&#x26;quot;, ki18n( &#x26;quot;Play DVD Video&#x26;quot; ));
    options.add(&#x26;quot;debug&#x26;quot;, 
    ki18n( &#x26;quot;Show Additional Debug Output&#x26;quot; ));
    KCmdLineArgs::addCmdLineOptions( options );

    KApplication application;

    QStringList mimeTypes = Phonon::BackendCapabilities::availableMimeTypes();

    QStringListIterator mimeIter(mimeTypes);
    while (mimeIter.hasNext())
    {
        std::cout &#x26;lt;&#x26;lt; mimeIter.next().toLocal8Bit().constData() 
            &#x26;lt;&#x26;lt; std::endl;
    }
    return 0;
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
It has a lot of KDE verbiage, but I hope you get the idea. The most important
lines are at the end. And indeed it did not print the associated mime types.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Reading a bit about Phonon, I tried to see what the backend that it
was using was. I believed it was 
&#x3C;a href=&#x22;http://www.xine-project.org/home&#x22;&#x3E;Xine&#x3C;/a&#x3E; but wanted to be sure. 
Eventually, what I did was to read &#x3C;tt&#x3E;/proc/`pgrep amarok`/maps&#x3C;/tt&#x3E;
which contains a list of all the shared libraries that it used. A bit
afterwards, I discovered that the Phonon backend was configurable from
&#x22;Settings &#x2192; Configure Amarok &#x2192; Playback &#x2192; Sound System Configuration&#x22;
and indeed had Xine as the most prioritised backend. After switching it
to gstreamer, I realised that Amarok could now play files ending with 
&#x3C;tt&#x3E;.mod&#x3C;/tt&#x3E;, but not with say &#x3C;tt&#x3E;.xm&#x3C;/tt&#x3E; or other Module files&#x27; formats, 
so it indicated that the problem was with Xine.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Looking at the code of the Xine Phonon backend (after some investigation), I 
found the following:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
QStringList Backend::availableMimeTypes() const
{
    if (m_supportedMimeTypes.isEmpty())
    {
        char *mimeTypes_c = xine_get_mime_types(m_xine);
        QString mimeTypes(mimeTypes_c);
        free(mimeTypes_c);
        QStringList lstMimeTypes = 
            mimeTypes.split(&#x22;;&#x22;, QString::SkipEmptyParts);
        .
        .
        .
    }
}
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
So it seemed that Phonon returns its results based on xine_get_mime_types().
Therefore, I wrote the following test program to see what xine returns:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
#include &#x26;lt;xine.h&#x26;gt;
#include &#x26;lt;stdio.h&#x26;gt;
#include &#x26;lt;stdlib.h&#x26;gt;

int main(int argc, char * argv[])
{
    xine_t * xine_h;
    char * mime_types;

    xine_h = xine_new();
    xine_init(xine_h);
    mime_types = xine_get_mime_types(xine_h);
    printf(&#x26;quot;%s\n&#x26;quot;, mime_types);
    free(mime_types);
    xine_exit(xine_h);

    return 0;
}
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
And it didn&#x27;t return the appropriate mime types for the MOD files, either. So
the problem was with xine-lib.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Next I decided to look at xine-lib and investigate. Searching for the 
&#x3C;tt&#x3E;xine_get_mime_types()&#x3C;/tt&#x3E; functions yielded a multiplexer that collected
the mime types of the various plugins. So I looked at 
&#x3C;tt&#x3E;src/demuxers/demux_mod.c&#x3C;/tt&#x3E; and found the following:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
static const char *get_mimetypes (demux_class_t *this_gen) {
    return NULL;
}
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
So no wonder no Module files-related mime types are returned. After fixing
it by writing 
&#x3C;a href=&#x22;http://sourceforge.net/mailarchive/forum.php?thread_name=200903252055.59889.shlomif%40iglu.org.il&#x26;amp;forum_name=xine-devel&#x22;&#x3E;a patch that just added
the mime types as one-big comma-delimited string&#x3C;/a&#x3E; 
(as seen in other demuxers), and rebuilding xine-lib, both of my test
programs returned the appropriate mime types, and I was able to play files
in Amarok.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://sourceforge.net/mailarchive/forum.php?thread_name=200903252055.59889.shlomif%40iglu.org.il&#x26;amp;forum_name=xine-devel&#x22;&#x3E;I submitted the patch to
the xine-devel mailing list&#x3C;/a&#x3E; after subscribing to it. I have yet
to receive a reply, to say nothing of getting my patch applied, but at least
I now know the problem has been fixed and I (and others) will be able to play 
Module files in Amarok to my heart&#x27;s content.
&#x3C;/p&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>hacking</category>
<category>kde</category>
<category>hacktivity</category>
<category>patch</category>
<category>xine</category>
<category>code</category>
<category>coding</category>
<category>xine-lib</category>
<category>story</category>
<category>amarok</category>
<category>phonon</category>
<comments>http://community.livejournal.com/shlomif_tech/23482.html</comments>
<guid isPermaLink="true">http://community.livejournal.com/shlomif_tech/23482.html</guid>
<pubDate>Thu, 26 Mar 2009 19:55:52 GMT</pubDate>
</item>
<item>
<title>Freecell Solver 2.20.0 was Released, along with a Windows Installer</title>
<link>http://fc-solve.blogspot.com/2009/03/freecell-solver-2200-was-released-along.html</link>
<description>&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://fc-solve.berlios.de/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E; version 2.20.0
is now available for 
&#x3C;a href=&#x22;http://fc-solve.berlios.de/download.html&#x22;&#x3E;download 
from the download page&#x3C;/a&#x3E;. The big news is that executables for Microsoft
Windows (x86) are now available for it, for the first time since the early 
2.8.x releases. And this time, they come in the form of an interactive
&#x22;Next&#x2192;Next&#x2192;Finish&#x22; installer based on 
&#x3C;a href=&#x22;http://nsis.sourceforge.net/&#x22;&#x3E;the Nullsoft Scriptable Install System
(NSIS)&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Also in this release are a fix to a crash when using the range solver with 
the &#x22;-opt&#x22; flag (and other similar scenarios), a more comprehensive NEWS file 
and some other fixes.
&#x3C;/p&#x3E;&#x3C;div class=&#x22;blogger-post-footer&#x22;&#x3E;&#x3C;img width=&#x27;1&#x27; height=&#x27;1&#x27; src=&#x27;https://blogger.googleusercontent.com/tracker/96099636168698788-6871019008607215475?l=fc-solve.blogspot.com&#x27;/&#x3E;&#x3C;/div&#x3E;</description>
<author>shlomif@iglu.org.il (Shlomi Fish)</author>
<category>win32</category>
<category>version</category>
<category>freecell</category>
<category>2.20.0</category>
<category>windows</category>
<category>solving</category>
<category>solver</category>
<category>nsis</category>
<category>executables</category>
<category>microsoft</category>
<category>installer</category>
<category>binaries</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-6871019008607215475</guid>
<pubDate>Thu, 26 Mar 2009 15:22:00 +0000</pubDate>
<atom:updated>2009-03-26T08:26:53.963-07:00</atom:updated>
</item>
</channel>
</rss>