<?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://www.shlomifish.org/me/blogs/</link>
<description></description>

<item>
<title>Copied from Slashdot.org: &#x22;Heroic people make any job they take awesome.&#x22;</title>
<link>http://blogs.perl.org/users/shlomi_fish/2013/04/heroic-people-make-any-job-awesome.html</link>
<description> First of all, I have written my recent hacktivity log over on my new dreamwidth.org blog, and I am not posting it here, because it involves a lot of non-code hacktivity, which I expect to do quite a lot...</description>
<author>Shlomi Fish</author>
<category>employment</category>
<category>hacktivity log</category>
<category>jobs</category>
<category>work</category>
<guid isPermaLink="true">http://blogs.perl.org/users/shlomi_fish/2013/04/heroic-people-make-any-job-awesome.html</guid>
<pubDate>Sun, 14 Apr 2013 19:04:24 -0000</pubDate>
<content:encoded content="
        
&#x3C;p&#x3E;
First of all, I have written my
&#x3C;a href=&#x22;http://shlomif.dreamwidth.org/464.html&#x22;&#x3E;recent hacktivity log&#x3C;/a&#x3E;
over on my new dreamwidth.org blog, and I am not posting it here, because
it involves a lot of non-code hacktivity, which I expect to do quite a lot
more of from now.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
That put aside, I am copying here something that I wrote
&#x3C;a href=&#x22;http://news.slashdot.org/comments.pl?sid=3619331&#x26;amp;cid=43371075&#x22;&#x3E;in
a Slashdot comment&#x3C;/a&#x3E; about why I am looking for a job not in IT. Especially
of note there are my frustrations with employers being too domineering and
control-freaks, and not letting the good developers do things the way they
most prefer to do it. Here goes:
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I&#x27;ll put it on the table: I have a Bachelor of Science (B.Sc. - 4 year degree)
in Electrical Engineering (more like a mixed CE/EE/CS degree) from &#x3C;a
href=&#x22;http://en.wikipedia.org/wiki/Technion_%E2%80%93_Israel_Institute_of_Technology&#x22;
title=&#x22;wikipedia.org&#x22; rel=&#x22;nofollow&#x22;&#x3E;The Technion in their Haifa, Israel
Campus&#x3C;/a&#x3E; [wikipedia.org], and graduated cum laude, and I have a qualified
engineer certificate which theoretically allows me to write software for
guiding missiles (or other flaw-free software) and give my signature that it is
flaw-free. Nevertheless, right now I&#x27;m looking for part-time jobs as a
seller/vendor in icecream parlours, candy/snack stores,
caf&#x26;#233;s/restaurants/bars/etc. or even as a street sweeper. Lots of places in
Tel Aviv, Israel are now advertising for this, and this seems like a good way
to earn some money, as well as interact with other people and get inspired
which will really help me with my &#x3C;a href=&#x22;http://www.shlomifish.org/humour/&#x22;
title=&#x22;shlomifish.org&#x22; rel=&#x22;nofollow&#x22;&#x3E;creative writing&#x3C;/a&#x3E; [shlomifish.org] and
my &#x3C;a href=&#x22;http://www.shlomifishorg/philosophy/&#x22; title=&#x22;www.shlomifishorg&#x22;
rel=&#x22;nofollow&#x22;&#x3E;essays&#x3C;/a&#x3E; [www.shlomifishorg]. And I can buy an Android
smartphone (nothing really better now and some people have successfully
installed GNU/Linux chroots there) so I can type stuff for later incoporation
into my desktop and laptop devices.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So why not work as a software developer? I don&#x27;t mind getting a job as a
software developer or a hardware developer or whatever, but lately employers in
Tel Aviv and vicinity have become extremely picky: you go to an interview,
answer most technical questions nicely, and don&#x27;t get hired. Furthermore, even
if they like you they are often very domineering: don&#x27;t work from home, work
10-12 hours a day, only full time, don&#x27;t play computer games at all (I only
played some card Patience/Solitaire and Sokoban and not for long and still got
flack), don&#x27;t go to Facebook/Twitter/Google-Plus, we don&#x27;t want you accessing
imgur.com (too muchu traffic to there so let&#x27;s firewall it) etc. etc. Thing is
- &#x3C;a
href=&#x22;http://www.avc.com/a_vc/2012/02/the-management-team-guest-post-from-joel-spolsky.html&#x22;
title=&#x22;avc.com&#x22; rel=&#x22;nofollow&#x22;&#x3E;the junior developers are kings&#x3C;/a&#x3E; [avc.com]
(see the link for the Joel article), and you should leave them alone to their
elements to get shit done at their own pace, and using their own resources
instead of being a control freak. If, as a boss, my developer watched porn for
6 hours a day, while still being available on the forums for questions, and
spent 2 hours creating great code that is functional and beautiful, I would be
happy, and give him a full salary. But finding such enlightened employers is a
big problem.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Software was the first field where workers were in constant demand, but now it
seems that other fields are headed the same way here in Tel Aviv and other
major centres of commerce worldwide: the food outlets, the music industry,
photography, and soon - writing, acting/drama/film and then hopefully also
modelling, and then if we can get past the normal and silly legal barriers -
also more brick-and-mortar industries. Right now I&#x27;ve decided to make a &#x3C;a
href=&#x22;http://blogs.perl.org/users/shlomi_fish/2013/03/ann-my-transition-from-software-developer-to-writerentertaineramateur-philosopherinternet-celebrity.html&#x22;
title=&#x22;perl.org&#x22; rel=&#x22;nofollow&#x22;&#x3E;transition&#x3C;/a&#x3E; [perl.org]
from a software developer to a writer/Internet-entertainer/amateur-philosopher
- a field where I feel I produce better results and also something that people
will find cooler and sexier (although like I note in the article, the fact that
I wrote a Freecell solver has impressed some really cute and intelligent
chicks), and will have a larger influence. I still see knowing programming and
other software development as an absolutely necessary means for that, just like
I can no longer survive without knowing how to read and write English. Everyone
should know at least HTML/XHTML/etc.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
What I&#x27;m trying to say is that one should avoid Fatalism. People can improve
for the better. I spent six and a half year doing my Elec. Eng. degree in the
Technion and it cost me a lot of frustrations, but I&#x27;m still alive and have
constantly become a better person - more competent, more able, smarter, wiser,
and with a greater capacity for love and friendship. As long as you&#x27;re not dead
and still have some health in you, you will do fine. My suggestion to someone
who got a Ph.D. in literature is to realise that that may make them a really
awesome programmer , or a bartender, or a candy store vendor, or a secretary,
or a sys admin, or anything else that they will find a job at. Don&#x27;t think &#x22;I&#x27;m
too good for that&#x22; because like they say in Hollywood &#x22;There are no small roles
- only small (= small-minded) actors.&#x22; You can be an awesome superheroic person
even if you&#x27;re just a factory worker.
&#x3C;/p&#x3E;


        
    " xmlbase="http://blogs.perl.org/users/shlomi_fish/"/>
<dcterms:modified>2013-04-14T19:06:57Z</dcterms:modified>
</item>
<item>
<title>Freecell Solver Enterprises&#x2122; Acquires Google Inc.</title>
<link>http://fc-solve.blogspot.com/2013/04/freecell-solver-enterprises-acquires.html</link>
<description>
&#x3C;p&#x3E;
&#x3C;b&#x3E;1 April, 2013, Tel Aviv, Israel:&#x3C;/b&#x3E;
Due to the spectacular commercial success of Freecell Solver Enterprises&#x2122;&#x2019;s
&#x3C;a href=&#x22;http://fc-solve.blogspot.co.il/2010/03/01-april-2010-freecell-solver.html&#x22;&#x3E;Enterprise Edition&#x3C;/a&#x3E;
and its
&#x3C;a href=&#x22;http://fc-solve.blogspot.co.il/2011/03/freecell-solver-goes-webscale.html&#x22;&#x3E;Webscale&#x2122; edition&#x3C;/a&#x3E;,
we have amassed quite a bit of cash in the bank, so we decided to make
a small but important strategical acquisition. As a result, Freecell Solver
Enterprises&#x2122; is proud to announce its upcoming acquisition of
&#x3C;a href=&#x22;https://en.wikipedia.org/wiki/Google&#x22;&#x3E;Google Inc.&#x3C;/a&#x3E;, which
will result in an exciting synergical merger.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Some of the upcoming changes would be replacing Google&#x2019;s tech support
(which is notoriously bad) by Freecell Solver Enterprises&#x2122;&#x2019;s world-famous and
superb tech support (as detailed in the essay
&#x3C;a href=&#x22;http://www.joelonsoftware.com/articles/customerservice.html&#x22;&#x3E;&#x201C;Seven
    steps to remarkable customer service&#x201D;&#x3C;/a&#x3E; by Joel on Software), as well
as integrating Google search into
&#x3C;a href=&#x22;http://fc-solve.shlomifish.org/&#x22;&#x3E;Freecell Solver&#x2122;&#x3C;/a&#x3E; for an
enhanced experience in solving Freecell. We are also planning on creating
a separate YouTube top-level category for card Solitaire-related videos
(including screencasts and presentations).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
We are sure that the upcoming acquisition is going to allow Freecell Solver
Enterprises&#x2122; to further its competitive edge, and allow us to have
even more significant growth, which will in turn allow us to make even more
significant acquisitions. As our CTO,
&#x3C;a href=&#x22;http://www.shlomifish.org/&#x22;&#x3E;Shlomi Fish&#x3C;/a&#x3E;, notes:
&#x201C;good times are coming.&#x201D;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Soon, people will say &#x201C;Let&#x2019;s Freecell Solver Enterprises&#x2122; Superheroic Web
Search&#x2122; it!&#x201D; instead of &#x201C;Let&#x2019;s Google it!&#x201D;, for an exciting
Web 3.141592&#x2122; experience.
&#x3C;/p&#x3E;

</description>
<author>Shlomi Fish ( shlomif@iglu.org.il )</author>
<category>humour</category>
<category>freecell</category>
<category>fun</category>
<category>enterprise</category>
<category>google</category>
<guid isPermaLink="false">tag:blogger.com,1999:blog-96099636168698788.post-8053664997773858097</guid>
<pubDate>Mon, 01 Apr 2013 16:06:00 +0000</pubDate>
<atom:updated>2013-04-01T09:06:31.066-07:00</atom:updated>
</item>
<item>
<title>XML-Grammar-Screenplay: Alternative Format for Hollywood Screenplays</title>
<link>http://blogs.perl.org/users/shlomi_fish/2013/03/screenplay-text-alternative.html</link>
<description> A short time after I posted a message about XML-Grammar-Screenplay to a Perl forum, a Perl enthusiast sent me a message reading like that: I would think that a proper screenplay grammar would be useful (I&#x27;ve thought of writing...</description>
<author>Shlomi Fish</author>
<category>hacking</category>
<category>hollywood</category>
<category>perl</category>
<category>screenplays</category>
<category>scripts</category>
<guid isPermaLink="true">http://blogs.perl.org/users/shlomi_fish/2013/03/screenplay-text-alternative.html</guid>
<pubDate>Sun, 24 Mar 2013 04:45:09 -0000</pubDate>
<content:encoded content="
        
&#x3C;p&#x3E;
A short time after I posted a message about
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/projects/XML-Grammar/Fiction/&#x22;&#x3E;XML-Grammar-Screenplay&#x3C;/a&#x3E;
to a Perl forum, a Perl enthusiast sent me a message reading like that:
&#x3C;/p&#x3E;

&#x3C;blockquote&#x3E;
&#x3C;p&#x3E;
I would think that a proper screenplay grammar would be useful (I&#x27;ve thought
of writing one myself). Though I&#x27;ve looked through your screenplay examples, I
can&#x27;t see any of them, anywhere, which is actually rendered in correct
screenplay format (&#x3C;a
href=&#x22;http://en.wikipedia.org/wiki/File:Screenplay_example.svg&#x22;&#x3E;example&#x3C;/a&#x3E;),
nor anything which appears to directly support the special directives often
found in screenplays, such as sluglines.  Am I missing something?
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
(Poor) Directions for formatting a screenplay are
&#x3C;a href=&#x22;http://www.scriptfrenzy.org/howtoformatascreenplay&#x22;&#x3E;here&#x3C;/a&#x3E;.
That really doesn&#x27;t cover the *extremely* rigid formatting rules involved (a
reader can often &#x3C;b&#x3E;toss&#x3C;/b&#x3E; a script with &#x3C;b&#x3E;bad margins&#x3C;/b&#x3E; and get paid for it anyway).
&#x3C;/p&#x3E;
&#x3C;/blockquote&#x3E;

&#x3C;p&#x3E;
Screenplay-Text looks something like this:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
&#x26;lt;s id=&#x26;quot;humanity&#x26;quot; title=&#x26;quot;&#x26;#39;Humanity&#x26;#39; - The Movie&#x26;quot;&#x26;gt;

[Note: This screenplay was written by
&#x26;lt;a href=&#x26;quot;http://www.shlomifish.org/&#x26;quot;&#x26;gt;Shlomi Fish&#x26;lt;/a&#x26;gt;, and is original artwork.]

&#x26;lt;s id=&#x26;quot;the-well&#x26;quot; title=&#x26;quot;The Well&#x26;quot;&#x26;gt;

[ The Well is shown. Several women are standing nearby with large pots near
them. They are chatting. Three men approach. ]

Man #1: OK. Let&#x26;#39;s move it.

Man #2: You know, I heard of a guy called Moses who could move a stone like
this all by himself.

The Inventor&#x26;#39;s Voice from outside the frame: That&#x26;#39;s because he was using the
Mosesiom 3000!

Man #3: I beg your pardon?

[ The Inventor enters the frame with his invention that looks suspiciously
like a lever. ]

The Inventor: With this ingenious invention one man can move this stone
all by himself. Wanna try?

Man #1: OK. I&#x26;#39;ll try.

The Inventor: OK. First we tie the stone to the ropes here.

[ He ties the stone]

The Inventor: Now lift the other hand.

Man #1: [After lifting the stone.] Wow, it&#x26;#39;s so easy, look I can move the
stone here [moves it to the left], and here [ moves it to the right].

The Inventor: No! No! Don&#x26;#39;t misuse it.

[The stone falls down on the well, splits into two pieces which both fall down
the well. The men are amazed. ]

The Inventor: Don&#x26;#39;t worry, I can get down and tie the ropes to each stone and
we can lift it up in a flash...

Man #1: I&#x26;#39;ll get the ropes.

Man #2: I&#x26;#39;ll get the horses.

[ They leave the frame ]

The Inventor: This is not my day.

Woman #1: Who is John Galt?

&#x26;lt;/s&#x26;gt;

&#x26;lt;/s&#x26;gt;
&#x3C;/pre&#x3E;

&#x3C;hr /&#x3E;

&#x3C;p&#x3E;
Why is it important? Because it seems that with this pedantic and perfectionist
attitude, Hollywood has left its original rebellious and
&#x3C;a href=&#x22;http://en.wiktionary.org/wiki/insurgent&#x22;&#x3E;insurgent&#x3C;/a&#x3E; roots (the
film production companies were located around Los Angeles to avoid litigation
from Edison&#x27;s patent trolling machine; and Henry Ford voiced some anti-semitic
concerns about the Jewish dominance of Hollywood, which he claimed was
part of their conspiracy to take over the world), and became more strict.
How many good films did not take off because of badly formatted or malformed
screenplays?
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This is why I now think that the format of
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/projects/XML-Grammar/Fiction/#demo-screenplay1&#x22;&#x3E;Screenplay-Text&#x3C;/a&#x3E; is
better simply because it is validated to conform with it and is easier to
write (being based on scripts for drama that I read, as well as some
Internet screenplays such as
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/by-others/hitchhiker-guide-to-star-trek-tng.html&#x22;&#x3E;&#x22;The Hitchhiker&#x27;s Guide to Star Trek - The Next Generation&#x22;&#x3C;/a&#x3E;).
XML-Grammar-Screenplay still has many issues like the fact that its
error messages can be unhelpful, or that it is still lacking many features,
but these should be relatively easy to resolve (possibly by a refactoring,
or partial or complete rewrites).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
As I note in the
&#x3C;a href=&#x22;http://www.shlomifish.org/philosophy/philosophy/putting-all-cards-on-the-table-2013/#david_and_goliath&#x22;&#x3E;&#x22;David and Goliath&#x22; section&#x3C;/a&#x3E; of my
&#x3C;a href=&#x22;http://www.shlomifish.org/philosophy/philosophy/putting-all-cards-on-the-table-2013/&#x22;&#x3E;&#x22;Putting all the Cards on the Table (2013)&#x22; essay&#x3C;/a&#x3E;,
a hacker knows the rules, plays by them, but is not afraid to bend them, or
make up his own rules and that is what
&#x3C;a href=&#x22;http://unarmed.shlomifish.org/2396.html&#x22;&#x3E;action heroes&#x3C;/a&#x3E; is all
about. So now I&#x27;m trying to promote Screenplay-Text and Screenplay-XML
as hackier alternatives to the traditional screenplays of Hollywood which
became more &#x22;professional&#x22; and &#x22;tragic hero&#x22;-like.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Naturally, &#x22;reality, to be conquered, must be obeyed&#x22;, and I think we can use
a manual conversion to the more traditional Hollywood screenplays at first
as a way to challenge the status quo.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I can be reached as &#x3C;tt&#x3E;rindolf&#x3C;/tt&#x3E; on &#x3C;a href=&#x22;http://freenode.net/&#x22;&#x3E;the
Freenode IRC network&#x3C;/a&#x3E; in a private message or in several channels (
see &#x3C;tt&#x3E;/whois rindolf rindolf&#x3C;/tt&#x3E;) to further discuss the vision for
Screenplay-Text and Screenplay-XML. But I think it is a noble goal, which
I would like to pursue.
&#x3C;/p&#x3E;


        
    " xmlbase="http://blogs.perl.org/users/shlomi_fish/"/>
<dcterms:modified>2013-03-24T04:47:02Z</dcterms:modified>
</item>
<item>
<title>ANN: My Transition From Software Developer to Writer/Entertainer/Amateur Philosopher/Internet Celebrity</title>
<link>http://blogs.perl.org/users/shlomi_fish/2013/03/ann-my-transition-from-software-developer-to-writerentertaineramateur-philosopherinternet-celebrity.html</link>
<description> I&#x27;d like to make an announcement: after some serious thought, I decided that from now on, being a software developer (which I am not too bad at) will only be the means (but the absolutely necessary ones) to me...</description>
<author>Shlomi Fish</author>
<category>cpan</category>
<category>hacking</category>
<category>humor</category>
<category>humour</category>
<category>perl</category>
<category>philosophy</category>
<guid isPermaLink="true">http://blogs.perl.org/users/shlomi_fish/2013/03/ann-my-transition-from-software-developer-to-writerentertaineramateur-philosopherinternet-celebrity.html</guid>
<pubDate>Sat, 09 Mar 2013 15:34:16 -0000</pubDate>
<content:encoded content="
        
&#x3C;p&#x3E;
I&#x27;d like to make an announcement: after some serious thought, I decided that
from now on, being a software developer (which I am not too bad at) will only
be the means (but the absolutely necessary ones) to me being a writer /
entertainer / philosopher / Internet celebrity (a little bit of all those
and then some) whose main pride and passion is
&#x3C;a href=&#x22;http://www.shlomifish.org/&#x22;&#x3E;his personal web site&#x3C;/a&#x3E;, which is full
of a lot of material, and various pages and material is constantly added to it.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Note: I am not going to &#x22;quit&#x22; from the Perl world or am going to
stop programming completely. In fact, programming in HTML, XHTML, CSS, XSLT,
Website Meta Language, Perl 5, Bash, Vim/gvim, and many other general
purpose and/or domain-specific languages, is
absolutely necessary for what I do on a daily basis. Furthermore, I have
little
patience for
laymen who do not wish to learn HTML, and just require more and more of our
(= my peers and mine&#x27;s) time to be wasted in a typical
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Parable_of_the_broken_window&#x22;&#x3E;&#x22;Parable
of the broken window&#x22;&#x3C;/a&#x3E; fashion. I think even most of our sisters,
mothers (and yes, I&#x27;m being facetiously sexist on purpose, because a lot of
the most clueless people we can think of are male), etc. can learn some basic
programming skills and even be good at that with the right attitude. When put
in a corner, they will be forced to learn it. and that programming is becoming
more and more essential for everyone to know. Furthermore, clients who wish to
remain ignorant (and often hostile) forever should be avoided, with a clear
honest and sincere explanation telling them why and how to improve.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Anyway, as is evident from
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/TheEnemy/&#x22;&#x3E;my first story&#x3C;/a&#x3E;,
I have already made a gradual transition from being a mathematician and
a mathematical logician, to being a software developer and web developer,
so now it&#x27;s another transition. It took me a lot of time to hone my skills
as a writer of stories, screenplays, aphorisms, Chuck Norris/etc. factoids,
etc. etc. so it&#x27;s now much easier for me. It took me over a year to write
my first story, but now I can whip up text fairly quickly, and find it
enjoyable. Moreover, I now also have not one - but two ideas for new
stories - both of which I have not started writing.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
One implication is that I decided to &#x3C;b&#x3E;transfer the maintenance&#x3C;/b&#x3E; of
&#x3C;a href=&#x22;https://metacpan.org/release/XML-LibXML&#x22;&#x3E;XML::LibXML&#x3C;/a&#x3E; to someone
else, because while I believe I proved myself of utility in maintaing
it, I find it hard to keep with its ongoing maintenance. One can easily
fork
&#x3C;a href=&#x22;https://bitbucket.org/shlomif/perl-xml-libxml&#x22;&#x3E;its bitbucket
repository&#x3C;/a&#x3E;, or given enough motivation, one can set up a similar one
on GitHub or wherever (I recall receiving several patches with &#x22;--git&#x22; there)
so if you have the skills, time, and motivation - just do it, and I&#x27;ll just
upload the archives on your behalf (and eventually ask for giving you COMAINT).
I have mentioned some ideas about what I have in mind for XML-LibXML elsewhere
and you can always ask me on IM or IRC.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;&#x22;Putting all the cards on the table - 2013&#x22;&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
I have started to write &#x3C;a href=&#x22;http://unarmed.shlomifish.org/2109.html&#x22;&#x3E;an
essay&#x3C;/a&#x3E; on my &#x22;Unarmed but still Dangerous&#x22; blog titled &#x22;Putting all the
Cards on the Table&#x22; - I start from the Technion, M.I.T., the film
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Silver_Linings_Playbook&#x22;&#x3E;&#x3C;i&#x3E;Silver
Linings Playbook&#x3C;/i&#x3E;&#x3C;/a&#x3E;
and &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Jennifer_Lawrence&#x22;&#x3E;its lead
actress - Ms. Jennifer Lawrence&#x3C;/a&#x3E; (&#x2665;!) and goes on to discuss lots of other
stuff including David vs. Goliath, computer networking, the second major
battle that Chuck Norris lost, and to why we should initiate action (any
action) instead of letting things go from bad to worse on their own, and
there is much more to come. Hopefully, it will be amateur philosophy (
where amateur is someone who: 1) Loves what he does. 2) Is not professional.
3) Does not play by the same rules as professionals. - i.e: what we often
call today as &#x22;hackers&#x22;) at the best I can do.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
My main issue is that I felt the truly amateuristic intellectuals like me
have been speaking too much in riddles, and that even I have been lying
to myself and hiding many things from other people, and I want to offload
everything I know as of March, 2013 (and it may be very different 10 years
from now or even a year from now). And I want to do it in a truly honest,
sincere, and putting all the cards I have now on the table fashion. There is
a lot of humour in the essay, and a lot of personal analogies and references,
some sex talk, (even sexism) and personal reflections (and my typical
self-promotion), but it&#x27;s still serious, honest, and sincere, and
hopefully enjoyable.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Please comment on it on the blog, where you should be able to register using
any OpenID provider, but anonymous comments, that are not spam, and where you
give a link to identify yourself can also be done (just &#x3C;b&#x3E;please&#x3C;/b&#x3E; preview
the comment before sending it). I am planning on working on further publicity.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;How to Achieve World Domination&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
A lot of people think that the proper way to achieve world domination is
to create an
&#x3C;a href=&#x22;http://www.joelonsoftware.com/articles/fog0000000018.html&#x22;&#x3E;architecture
that will solve the whole world&#x27;s problems and then some&#x3C;/a&#x3E;. We&#x27;ve been seeing
quite a few of them since &#x3C;i&#x3E;Joel on Software&#x3C;/i&#x3E; wrote this article: Ruby,
Google Go, Node.js, Mozilla&#x27;s Rust, Clojure, Scala, Perl 6, etc. Some of them
have or will mature to something truly nice, or have inspired a lot of
features in other languages, but it&#x27;s hard for
plain-old-single-you to compete with them, and here is something interesting:
not too many people want them.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
What do people want? Chuck Norris/etc. factoids, lolcats and other captioned
images, funny cat videos, parodies of
&#x3C;i&#x3E;My Little Pony: Friendship is Magic&#x3C;/i&#x3E; (&#x2665;), photos of attractive (or even
not too attractive) men and women, screencasts of games or other programs
(including many open source programs), photos of scenery, new and improved
recipes for preparing food (and of course - tasty food itself), new, old or
renovated jokes, and some interesting tales and anecdotes from your life. And
naturally - programs that can will scratch an itch - however small.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Some people told me that my solver for Freecell and other solitaire games,
simply called
&#x3C;a href=&#x22;http://fc-solve.shlomifish.org/&#x22;&#x3E;Freecell Solver&#x3C;/a&#x3E; is useless, but
it&#x27;s not - it&#x27;s just a niche program. And I received hundreds of E-mails
about it. Furthermore, given that Freecell is (or used to be) a big phenomenon
in Israel, where many boys and girls starting from 18 found themselves
playing it
on the &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Israel_Defense_Forces&#x22;&#x3E;Israeli
military&#x3C;/a&#x3E; computers out of boredom, then the fact that I have written a
solver for it,
has impressed many people I talked with or met, including some attractive
(both physically and intellectually) young ladies (or what people may
refer to as &#x22;hot chicks&#x22;), and they ended up asking me about how it was
written, and which algorithms it employed.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So Freecell Solver was one of my most successful programs, not despite being
a niche program, but because of it. Niche programs own. Not only that,
but niche everything is great. Many people whom I referred to
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/stories/&#x22;&#x3E;my stories&#x3C;/a&#x3E; helped
themselves to the screenplay
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/Star-Trek/We-the-Living-Dead/&#x22;&#x3E;Star Trek:
&#x22;We, the Living Dead&#x22;&#x3C;/a&#x3E; &#x3C;b&#x3E;because&#x3C;/b&#x3E; it contained Star Trek in the name,
and because there are quite a few fans of the &#x3C;i&#x3E;Star Trek&#x3C;/i&#x3E; franchise and
worlds.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The more of a niche artwork you write, the more a large subset of those
who like it, are likely to pay attention to it, try it out, and enjoy it.
For more information, see
Eric Sink&#x27;s excellent and inspiring essay
&#x3C;a href=&#x22;http://www.ericsink.com/articles/Buzz.html&#x22;&#x3E;&#x22;How to get
people talking about your product&#x22;&#x3C;/a&#x3E;.
For example,
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/DuckDuckGo&#x22;&#x3E;DuckDuckGo&#x3C;/a&#x3E; was originally
marketed as a search engine by Perl geeks, and for Perl geeks, and it was
a good marketing decision because the Perl community is small, cohesive and
is at a good strategical position to influence other communities. Now, many
people who are not Perl programmers, are using it, as well as, or even in
preference to Google, but choosing Perl was a good strategical decision.
We can expect that with the future growth of DuckDuckGo, that it will
use more performant technologies than Perl more and more, but it will still
owe some of its initial success to be a Perl product.
&#x3C;/p&#x3E;


        
    " xmlbase="http://blogs.perl.org/users/shlomi_fish/"/>
<dcterms:modified>2013-03-09T15:35:21Z</dcterms:modified>
</item>
<item>
<title>Joke: &#x201C;NSA Facts&#x201D;</title>
<link>http://shlomif-tech.livejournal.com/66252.html</link>
<description>&#x3C;p&#x3E;
Yesterday, I had the idea of creating some &#x201C;facts&#x201D; about the
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/National_Security_Agency&#x22; rel=&#x22;nofollow&#x22;&#x3E;NSA - the
United States National Security Agency&#x3C;/a&#x3E;, similar to the Chuck Norris
Facts meme. And I got some
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/bits/facts/NSA/&#x22; rel=&#x22;nofollow&#x22;&#x3E;pretty
good factoids&#x3C;/a&#x3E; so far, which I will share here:
&#x3C;/p&#x3E;

&#x3C;blockquote&#x3E;

&#x3C;ul&#x3E;
&#x3C;li&#x3E;
The NSA doesn&#x27;t publish. They perish.
&#x3C;/li&#x3E;
&#x3C;li&#x3E;
The NSA employs the largest number of mathematicians with Ph.D. And the most
stupid and incompetent ones.
&#x3C;/li&#x3E;
&#x3C;li&#x3E;
The NSA has a patent for an efficient process for collecting a lot of
information and doing nothing with it.
&#x3C;/li&#x3E;
&#x3C;li&#x3E;
The Bajoran scholars have positively identified Benjamin Sisko as
The Emissary. They also positively identified the NSA headquarters
as The Dungeon.
&#x3C;/li&#x3E;
&#x3C;li&#x3E;
One of &#x3C;i&#x3E;Buffy the Vampire Slayer&#x3C;/i&#x3E;&#x2019;s episodes took place in the NSA
headquarters, but had to be destroyed, because all of the test audience had
uncontrollable panic attacks.
&#x3C;/li&#x3E;
&#x3C;li&#x3E;
The NSA knows what you did last summer. But no one, in the NSA or outside it,
knows why they should.
&#x3C;/li&#x3E;
&#x3C;li&#x3E;
The more the NSA think, the less they want to be able to think.
So they think less and less.
&#x3C;/li&#x3E;
&#x3C;/ul&#x3E;

&#x3C;/blockquote&#x3E;

&#x3C;p&#x3E;
Hope you enjoyed it and naturally - &#x201C;ha ha, only serious!&#x201D;. Now the ball is in
your court
- can you think of more? Put them in the comments below.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Happy NSA bashing!
&#x3C;/p&#x3E;</description>
<author>Shlomi Fish ( shlomif@iglu.org.il )</author>
<category>humor</category>
<category>security</category>
<comments>http://shlomif-tech.livejournal.com/66252.html</comments>
<guid isPermaLink="true">http://shlomif-tech.livejournal.com/66252.html</guid>
<pubDate>Wed, 06 Feb 2013 06:28:51 GMT</pubDate>
</item>
<item>
<title>Essay: &#x22;Just write the God-damn tests, motherfucker!&#x22;</title>
<link>http://blogs.perl.org/users/shlomi_fish/2013/02/essay-just-write-the-god-damn-tests-motherfucker.html</link>
<description> (I originally wrote this in a post to qa@perl.org, and I apologise for the profanity in the title, but I felt it is needed in this case.) So why am I writing this? I used to feel guilty about...</description>
<author>Shlomi Fish</author>
<category>essay</category>
<category>philosophy</category>
<category>tdd</category>
<category>tests</category>
<guid isPermaLink="true">http://blogs.perl.org/users/shlomi_fish/2013/02/essay-just-write-the-god-damn-tests-motherfucker.html</guid>
<pubDate>Sun, 03 Feb 2013 18:02:18 -0000</pubDate>
<content:encoded content="
        
&#x3C;p&#x3E;
(I originally wrote this in
&#x3C;a href=&#x22;http://www.nntp.perl.org/group/perl.qa/2013/01/msg13350.html&#x22;&#x3E;a post to qa@perl.org&#x3C;/a&#x3E;, and I apologise for the profanity in the title, but I felt
it is needed in this case.)
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So why am I writing this? I used to feel guilty about not being conscious of
the distinction between the various scopes of tests, like unit tests vs.
integration tests vs. system tests vs. functional tests etc. when I wrote the
tests. I just noticed that I need a test here (as a regression test for a bug,
or to &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Test-driven_development&#x22;&#x3E;TDD&#x3C;/a&#x3E; (=
test-driven develop a new feature, or after implementing a new feature,
etc.), and wrote it using Test::More or whatever. However, now I feel that
trying to philosophise about the distinction between all those is not so
useful for the people who are actually trying to write the tests.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;q&#x3E;Tests are good, mmkay? Just freaking write them!&#x3C;/q&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
chromatic has expressed &#x3C;a href=&#x22;http://modernperlbooks.com/mt/2012/04/what-testing-dsls-get-wrong.html&#x22;&#x3E;some sentiments&#x3C;/a&#x3E; against the so-called &#x22;Behaviour
Driven Development&#x22; (BDD) Domain-specific-languages (DSLs) such as cucumber.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
One thing that he notes in a comment there is:
&#x3C;/p&#x3E;

&#x3C;blockquote&#x3E;

&#x3C;p&#x3E;
Our clients are the parents, guardians, and teachers of children between the
ages of eight and twelve inclusive.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The intent of Cucumber is to make readable testcases, just as the intent of
COBOL and AppleScript and visual component programming is to enable
non-programmers to create software without having to learn how to program.
&#x3C;/p&#x3E;

&#x3C;/blockquote&#x3E;

&#x3C;p&#x3E;
It is impossible to have people who are non-programmers write
structure code without learning how to program, at least until we get
sufficiently intelligent Sci-Fi-like artificial intelligence (not the current
crop of artificial ultra-stupidities) that will be able to perform
programming like humans do, and will be willing to do so, while not having
free will and still be obedient to us, and that will perform adequately. I
feel that you need to write &#x3C;b&#x3E;some&#x3C;/b&#x3E; kind of code, however formatted, to
write tests, just like HTML and CSS and spreadsheet programs, involve writing
some kind of *code*.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
If you want to have your clients write tests, my best suggestion is to either
instruct them in the proper methodology and discipline of coding, or
alternatively have them show you how to reproduce the problem (using
screenshots, screencasts, shared remote desktop sessions, etc.) and then
&#x3C;b&#x3E;you&#x3C;/b&#x3E; should write a test for it.

&#x3C;p&#x3E;
Some people fear that teaching laymen how to code will create
competition for professional programmers, and dilute the profession. However,
this is not true, because there&#x27;s always a difference between a casual dealer
in a craftsmanship or art, and someone who invested a substantial amount of
time doing it. E.g: lots of people can cook well, but not everyone is a
professional Chef, and Chefs still often teach other people cooking, or share
their recipes, because that does not dilute their profession.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So I think the distinction between the various tests may be useful for
methodologists and software engineering researchers (people who try to guide
other people how to code) more than the people who are actually coding. To quote
Picasso: &#x22;When art critics get together they talk about Form and Structure and
Meaning. When artists get together they talk about where you can buy cheap
turpentine.&#x22;
( taken from &#x3C;a href=&#x22;http://orip.org/&#x22;&#x3E;Ori Peleg&#x27;s blog&#x3C;/a&#x3E; ).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Similarly, literature critics and researchers have very little to say that is
of use for most writers and even authors. I hated studying Literature (what
Americans might call &#x22;English&#x22; although naturally in Israel, we study Hebrew
texts) with a passion, and didn&#x27;t do too well on the tests (in part because
out of personal honesty, I refused to write a lot of extraneous text, which
the teacher seemed to have preferred), only to become a writer of
&#x3C;a href=&#x22;http://www.shlomifish.org/humour/&#x22;&#x3E;fiction&#x3C;/a&#x3E; and
&#x3C;a href=&#x22;http://www.shlomifish.org/philosophy/&#x22;&#x3E;essays&#x3C;/a&#x3E; (see
&#x3C;a href=&#x22;http://www.paulgraham.com/essay.html&#x22;&#x3E;Paul
Graham&#x27;s &#x22;The Age of the Essay&#x22;&#x3C;/a&#x3E; for why they are not only about
literature) after graduation. Furthermore, most people I
talked with seem to have liked and appreciate the textual works I have
written (although I admit they are certainly not letter perfect), and I
could usually find some value in the criticisms of people who did not, even
if expressed very destructively, and often was able to improve my works
accordingly.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Similarly, I&#x27;m now struggling with &#x3C;a href=&#x22;http://www.amazon.com/xUnit-Test-Patterns-Refactoring-Code/dp/0131495054&#x22;&#x3E;this tome&#x3C;/a&#x3E;
which seems like I cannot see the forest for the trees from it, while I
really enjoyed reading the much shorter and much more hands-on
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Test-Driven_Development_by_Example&#x22;&#x3E;&#x3C;i&#x3E;Test Driven Development by Example&#x3C;/i&#x3E; (by Kent Back)&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The time we talk about how to write tests is often better spent writing tests
(or production code, which is, naturally, what tests are aimed to support and
are meaningless without it), so I think we should just &#x22;freaking write them&#x22;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x3C;q&#x3E;Just write the god-damn test, motherfucker!&#x3C;/q&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
(
&#x3C;b&#x3E;Note:&#x3C;/b&#x3E; the title of this essay was inspired by
the &#x3C;a href=&#x22;http://programming-motherfucker.com/&#x22;&#x3E;&#x22;Programming,
Motherfucker&#x22;&#x3C;/a&#x3E; of Zed Shaw, which is very amusing, even if it seems
to be written in a somewhat ironic tone, and that contains the useful
&#x3C;a href=&#x22;http://programming-motherfucker.com/become.html&#x22;&#x3E;huge list of free
books for learning programming&#x3C;/a&#x3E;.
)
&#x3C;/p&#x3E;

&#x3C;h3 id=&#x22;license&#x22;&#x3E;Licence&#x3C;/h3&#x3E;

&#x3C;p&#x3E;
As opposed to most of my previous essays, this work is Copyright by Shlomi
Fish, 2013, under the
&#x3C;a rel=&#x22;license&#x22; href=&#x22;http://creativecommons.org/licenses/by-nc/3.0/&#x22;&#x3E;Creative
Commons Attribution-NonCommercial 3.0 Unported licence&#x3C;/a&#x3E;, with a
deliberate exemption for using the text on web pages with web commercials.
For more information, see
&#x3C;a href=&#x22;http://www.shlomifish.org/meta/copyrights/&#x22;&#x3E;my interpretation of
the licence&#x3C;/a&#x3E;.
If you wish to use it under any different licence, then
&#x3C;a href=&#x22;http://www.shlomifish.org/me/contact-me/&#x22;&#x3E;drop me a line&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;


        
    " xmlbase="http://blogs.perl.org/users/shlomi_fish/"/>
<dcterms:modified>2013-02-03T18:03:13Z</dcterms:modified>
</item>
<item>
<title>Invitation for the Israeli Perl Workshop 2013 - 25 February 2013</title>
<link>http://shlomif-tech.livejournal.com/65955.html</link>
<description>&#x3C;h2&#x3E;Israeli Perl Workshop 2013 - 25 February 2013&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
(The Hebrew text will be followed by an English one).
&#x3C;/p&#x3E;

&#x3C;div align=&#x22;right&#x22; dir=&#x22;rtl&#x22;&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://act.perl.org.il/ilpw2013/&#x22; rel=&#x22;nofollow&#x22;&#x3E;&#x5E1;&#x5D3;&#x5E0;&#x5EA; &#x5D4;&#x5E4;&#x5E8;&#x5DC; &#x5D4;&#x5D9;&#x5E9;&#x5E8;&#x5D0;&#x5DC;&#x5D9;&#x5EA; &#x5DC;&#x5E9;&#x5E0;&#x5EA; 2013&#x3C;/a&#x3E; &#x5EA;&#x5EA;&#x5E7;&#x5D9;&#x5D9;&#x5DD;
&#x5D1;-25 &#x5D1;&#x5E4;&#x5D1;&#x5E8;&#x5D5;&#x5D0;&#x5E8;, 2013. &#x5D6;&#x5D4;&#x5D5; &#x5DB;&#x5E0;&#x5E1; &#x5D9;&#x5D5;&#x5DE;&#x5D9; &#x5E9;&#x5D9;&#x5EA;&#x5E7;&#x5D9;&#x5D9;&#x5DD;
&#x3C;a href=&#x22;http://act.perl.org.il/ilpw2013/location.html&#x22; rel=&#x22;nofollow&#x22;&#x3E;&#x5D1;&#x5DE;&#x5DB;&#x5DC;&#x5DC;&#x5EA; &#x5E9;&#x5E0;&#x5E7;&#x5E8; &#x5D1;&#x5E8;&#x5DE;&#x5EA;-&#x5D2;&#x5DF;&#x3C;/a&#x3E;.
&#x5DC;&#x5E2;&#x5D9;&#x5D5;&#x5E0;&#x5DB;&#x5DD; &#x5E0;&#x5EA;&#x5D5;&#x5E0;&#x5D4;
&#x3C;a href=&#x22;http://act.perl.org.il/ilpw2013/talks&#x22; rel=&#x22;nofollow&#x22;&#x3E;&#x5E8;&#x5E9;&#x5D9;&#x5DE;&#x5EA; &#x5D4;&#x5DE;&#x5E6;&#x5D2;&#x5D5;&#x5EA;&#x3C;/a&#x3E;
&#x5E9;&#x5EA;&#x5D9;&#x5E0;&#x5EA;&#x5E0;&#x5D4; &#x5D1;&#x5E1;&#x5D3;&#x5E0;&#x5D4;, &#x5D1;&#x5D4; &#x5D9;&#x5D4;&#x5D9;&#x5D5; &#x5E9;&#x5E0;&#x5D9; &#x5DE;&#x5E1;&#x5DC;&#x5D5;&#x5DC;&#x5D9;&#x5DD;.
&#x3C;/p&#x3E;

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

&#x3C;p&#x3E;
&#x5D4;&#x5E4;&#x5E2;&#x5DD; &#x5E1;&#x5D9;&#x5DE;&#x5DF; &#x5D4;&#x5DB;&#x5E0;&#x5E1; &#x5D4;&#x5D5;&#x5D0; &#x22;&#x5E4;&#x5E8;&#x5DC; &#x5DE;&#x5E2;&#x5E9;&#x5D9;&#x5EA;&#x22; (Perl in Practice) &#x5D5;&#x5D0;&#x5E0;&#x5D5; &#x5DE;&#x5E7;&#x5D5;&#x5D5;&#x5D9;&#x5DD; &#x5E9;&#x5E8;&#x5D5;&#x5D1; &#x5D4;&#x5D4;&#x5E8;&#x5E6;&#x5D0;&#x5D5;&#x5EA; &#x5D1;&#x5DB;&#x5E0;&#x5E1; &#x5EA;&#x5D4;&#x5D9;&#x5D9;&#x5E0;&#x5D4; &#x5E2;&#x5DC;
&#x5D9;&#x5D9;&#x5E9;&#x5D5;&#x5DE;&#x5D9;&#x5DD; &#x5DE;&#x5E2;&#x5E9;&#x5D9;&#x5D9;&#x5DD; &#x5E9;&#x5E0;&#x5DB;&#x5EA;&#x5D1;&#x5D5; &#x5D0;&#x5D5; &#x5D9;&#x5DB;&#x5EA;&#x5D1;&#x5D5; &#x5D1;&#x5E9;&#x5E4;&#x5EA; &#x5E4;&#x5E8;&#x5DC;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x5E4;&#x5E8;&#x5DC; &#x5D4;&#x5D9;&#x5E0;&#x5D4; &#x5E9;&#x5E4;&#x5EA; &#x5EA;&#x5DB;&#x5E0;&#x5D5;&#x5EA; &#x5D3;&#x5D9;&#x5E0;&#x5DE;&#x5D9;&#x5EA; &#x5D5;&#x5D7;&#x5D6;&#x5E7;&#x5D4; &#x5E9;&#x5E0;&#x5DE;&#x5E6;&#x5D0;&#x5EA; &#x5EA;&#x5D7;&#x5EA; &#x5E4;&#x5D9;&#x5EA;&#x5D5;&#x5D7; &#x5E4;&#x5E2;&#x5D9;&#x5DC;, &#x5D5;&#x5E9;&#x5D9;&#x5E9; &#x5DC;&#x5D4; &#x5DE;&#x5D0;&#x5D2;&#x5E8; &#x5D4;&#x5E8;&#x5D7;&#x5D1;&#x5D5;&#x5EA; &#x5E4;&#x5E2;&#x5D9;&#x5DC; &#x5D5;&#x5E4;&#x5D5;&#x5E8;&#x5D4; &#x5D1;&#x5E9;&#x5DD;
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/CPAN&#x22; rel=&#x22;nofollow&#x22;&#x3E;CPAN (Comprehensive Perl Archive Network)&#x3C;/a&#x3E;.
&#x3C;a href=&#x22;http://perl.org.il/&#x22; rel=&#x22;nofollow&#x22;&#x3E;&#x5D3;&#x5E3; &#x5D4;&#x5D1;&#x5D9;&#x5EA; &#x5E9;&#x5DC; &#x5E9;&#x5D5;&#x5D7;&#x5E8;&#x5D9; &#x5D4;&#x5E4;&#x5E8;&#x5DC; &#x5D4;&#x5D9;&#x5E9;&#x5E8;&#x5D0;&#x5DC;&#x5D9;&#x5D9;&#x5DD;&#x3C;/a&#x3E;
 &#x5DE;&#x5DB;&#x5D9;&#x5DC; &#x5DE;&#x5D9;&#x5D3;&#x5E2; &#x5E0;&#x5D5;&#x5E1;&#x5E3; &#x5D5;&#x5E7;&#x5D9;&#x5E9;&#x5D5;&#x5E8;&#x5D9;&#x5DD; &#x5E0;&#x5D5;&#x5E1;&#x5E4;&#x5D9;&#x5DD; &#x5DC;&#x5D2;&#x5D1;&#x5D9; &#x5D4;&#x5E4;&#x5E2;&#x5D9;&#x5DC;&#x5D5;&#x5EA; &#x5E9;&#x5DC; &#x5D7;&#x5D5;&#x5D1;&#x5D1;&#x5D9; &#x5D4;&#x5E9;&#x5E4;&#x5D4; &#x5D1;&#x5D9;&#x5E9;&#x5E8;&#x5D0;&#x5DC;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x5D4;&#x5E4;&#x5E2;&#x5DD; &#x5D9;&#x5EA;&#x5D0;&#x5E8;&#x5D7;&#x5D5; &#x5D1;&#x5E1;&#x5D3;&#x5E0;&#x5D4; &#x5DE;&#x5E1;&#x5E4;&#x5E8; &#x5D0;&#x5D5;&#x5E8;&#x5D7;&#x5D9;&#x5DD; &#x5DE;&#x5D7;&#x5D5;&#x22;&#x5DC; &#x5D5;&#x5D1;&#x5D9;&#x5E0;&#x5D9;&#x5D4;&#x5DD; &#x3C;a href=&#x22;http://he.wikipedia.org/wiki/%D7%9C%D7%90%D7%A8%D7%99_%D7%95%D7%95%D7%9C&#x22; rel=&#x22;nofollow&#x22;&#x3E;&#x5DC;&#x5D0;&#x5E8;&#x5D9; &#x5D5;&#x5D5;&#x5DC;&#x3C;/a&#x3E;, 
&#x5D4;&#x5D9;&#x5D3;&#x5D5;&#x5E2; &#x5DB;&#x5D9;&#x5D5;&#x5E6;&#x5E8; &#x5E9;&#x5E4;&#x5EA; &#x5E4;&#x5E8;&#x5DC; (&#x5D5;&#x5DE;&#x5E1;&#x5E4;&#x5E8; &#x5DE;&#x5D9;&#x5D6;&#x5DE;&#x5D9;&#x5DD; &#x5D7;&#x5E9;&#x5D5;&#x5D1;&#x5D9;&#x5DD; &#x5DE;&#x5D5;&#x5E7;&#x5D3;&#x5DE;&#x5D9;&#x5DD; &#x5D5;&#x5D1;&#x5D9;&#x5E0;&#x5D9;&#x5D4;&#x5DD; &#x5D4;&#x5D2;&#x5E8;&#x5E1;&#x5D4; &#x5D4;&#x5E8;&#x5D0;&#x5E9;&#x5D5;&#x5E0;&#x5D4; &#x5E9;&#x5DC; &#x5EA;&#x5D5;&#x5DB;&#x5E0;&#x5EA; &#x5D4;&#x5D4;&#x5D8;&#x5DC;&#x5D0;&#x5D4; 
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Patch_%28Unix%29&#x22; rel=&#x22;nofollow&#x22;&#x3E;patch&#x3C;/a&#x3E;) 
&#x5E9;&#x5D2;&#x5DD; &#x5D9;&#x5E6;&#x5D9;&#x5D2; &#x5D1;&#x5DB;&#x5E0;&#x5E1;; &#x5D0;&#x5DC;&#x5D9;&#x5D5; &#x5EA;&#x5EA;&#x5DC;&#x5D5;&#x5D5;&#x5D4; &#x5E8;&#x5E2;&#x5D9;&#x5D9;&#x5EA;&#x5D5; &#x5D2;&#x5DC;&#x5D5;&#x5E8;&#x5D9;&#x5D4;. &#x5D1;&#x5D4;&#x5DE;&#x5E9;&#x5DA; &#x5E0;&#x5E2;&#x5D3;&#x5DB;&#x5DF; &#x5D0;&#x5EA; &#x5E9;&#x5DE;&#x5D5;&#x5EA;&#x5D9;&#x5D4;&#x5DD; &#x5E9;&#x5DC; &#x5D4;&#x5D0;&#x5D5;&#x5E8;&#x5D7;&#x5D9;&#x5DD; &#x5D4;&#x5E0;&#x5D5;&#x5E1;&#x5E4;&#x5D9;&#x5DD;.
&#x3C;/p&#x3E;

&#x3C;/div&#x3E;

&#x3C;h3&#x3E;English Version&#x3C;/h3&#x3E;

&#x3C;p&#x3E;
The &#x3C;a href=&#x22;http://act.perl.org.il/ilpw2013/&#x22; rel=&#x22;nofollow&#x22;&#x3E;Israeli Perl Workshop of 2013&#x3C;/a&#x3E; will take
place on 25 February, 2013. It will be a daily conference which will
take place &#x3C;a href=&#x22;http://act.perl.org.il/ilpw2013/location.html&#x22; rel=&#x22;nofollow&#x22;&#x3E;in Shenkar College in
Ramat Gan&#x3C;/a&#x3E;. One can view the &#x3C;a href=&#x22;http://act.perl.org.il/ilpw2013/talks&#x22; rel=&#x22;nofollow&#x22;&#x3E;list of
talks&#x3C;/a&#x3E; that will be given in the conference, where there are going to be two tracks.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
&#x200E;This time the conference will cost some money in order to cover the costs and, so there
is a need to register (just follow the link). Therefore, please register as soon as possible. In addition, if
you, or a different company that you know, are willing to sponsor the workshop, please
contact the organisers.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Perl is a dynamic and powerful programming language which is under active development,
and which has an active and comprehensive extension repository called
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/CPAN&#x22; rel=&#x22;nofollow&#x22;&#x3E;CPAN (Comprehensive Perl Archive Network)&#x3C;/a&#x3E;.
&#x3C;a href=&#x22;http://perl.org.il/&#x22; rel=&#x22;nofollow&#x22;&#x3E;The home page of the Israeli Perl Mongers&#x3C;/a&#x3E;
contains other information and more links about the activity of Perl&#x27;s Israeli enthusiasts.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
This year&#x27;s conference will sport some guests from abroad, including
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Larry_Wall&#x22; rel=&#x22;nofollow&#x22;&#x3E;Larry Wall&#x3C;/a&#x3E;, who is known as
the creator of the Perl programming language (and some earlier software projects such
as the original &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Patch_%28Unix%29&#x22; rel=&#x22;nofollow&#x22;&#x3E;patch
program for UNIX&#x3C;/a&#x3E;), and who will give a
talk at the conference; he will be accompanied by his wife, Gloria. We will publish
the names of the other guest speakers as we learn about them.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Everyone is welcome to attend.
&#x3C;/p&#x3E;</description>
<author>Shlomi Fish ( shlomif@iglu.org.il )</author>
<category>events</category>
<category>perl</category>
<category>israeli</category>
<category>foss</category>
<comments>http://shlomif-tech.livejournal.com/65955.html</comments>
<guid isPermaLink="true">http://shlomif-tech.livejournal.com/65955.html</guid>
<pubDate>Thu, 24 Jan 2013 18:47:03 GMT</pubDate>
</item>
<item>
<title>Count-up to 100 CPAN Distributions: Quality *as well as* Quantity</title>
<link>http://blogs.perl.org/users/shlomi_fish/2013/01/count-up-to-100-cpan-distributions-quality-as-well-as-quantity.html</link>
<description> Going over the previous count-ups to 100 CPAN distributions in this blog, I feel I have been carried away: I tried to release a lot of new distributions to the CPAN, while neglecting all the existing distributions I have,...</description>
<author>Shlomi Fish</author>
<category>100</category>
<category>cpan</category>
<category>hacktivity</category>
<category>hacktivity log</category>
<category>perl</category>
<category>sdlx</category>
<category>xml</category>
<guid isPermaLink="true">http://blogs.perl.org/users/shlomi_fish/2013/01/count-up-to-100-cpan-distributions-quality-as-well-as-quantity.html</guid>
<pubDate>Mon, 07 Jan 2013 20:53:26 -0000</pubDate>
<content:encoded content="
        
&#x3C;p&#x3E;
Going over the previous count-ups to 100 CPAN distributions in this
blog, I feel I have been carried away: I tried to release a lot
of new distributions to the CPAN, while neglecting all the existing
distributions I have, and not tending to their pending problems and their
lack of &#x3C;b&#x3E;software quality&#x3C;/b&#x3E; in several aspects (See
&#x3C;a href=&#x22;http://www.shlomifish.org/philosophy/computers/high-quality-software/rev2/&#x22;&#x3E;an
older essay I have written about it&#x3C;/a&#x3E;).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I was reminded of it when
working on a few new or existing distributions using
&#x3C;a href=&#x22;http://dzil.org/&#x22;&#x3E;Dist-Zilla&#x3C;/a&#x3E;. I ran into a few places where some
of its plugins or features were underdocumented, and non-exemplified (in
the SYNOPSIS sections or wherever), which consumed many hours of my time,
sometimes made me need to read or grep the code, and made me frustrated. While
I sent the maintainers some pull requests for better documenting this (and
some of them were applied), I would have prefered for them to be
properly documented and exemplified in the first place.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
While I believe most of my CPAN distributions are in better condition, there
are some aspects that are lacking, and I would like to fix them: more examples
outside the SYNOPSES, and better SYNOPSES; documenting all methods of the
super classes as well as the classes themselves for
&#x3C;a href=&#x22;http://metacpan.org/release/XML-LibXML&#x22;&#x3E;XML-LibXML&#x3C;/a&#x3E;; adding
support for DTD introspection and the oft requested
&#x3C;a href=&#x22;http://code.activestate.com/lists/perl-xml/8953/&#x22;&#x3E;DOM elements
annotations&#x3C;/a&#x3E; for it; more
&#x3C;a href=&#x22;http://cpants.cpanauthors.org/kwalitee.html&#x22;&#x3E;kwalitee&#x3C;/a&#x3E;; etc. and
naturally also better publicity and advertising
(&#x3C;a href=&#x22;http://freecode.com/&#x22;&#x3E;Freecode.com&#x3C;/a&#x3E; (formerly known
as Freshmeat.net), Reddit, blogs.perl.org, video screencasts, etc.) because
people should see how cool your code is. I&#x27;m
not sure if any of these things would be as blog worthy as new
CPAN distributions, but it will make CPAN a bit better.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
(Now that I think of it, perhaps a CPAN janitors initiative, which will
submit pull requests and patches for existing distributions to improve
their quality will be a good idea.)
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Anyway, I am going to split this report into sections:
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;XML-GrammarBase&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
After some work (and misunderstanding of some of the Moo / MooX
documentation, which resulted in some pull requests), I released
&#x3C;a href=&#x22;http://www.shlomifish.org/open-source/projects/XML-Grammar/Base/&#x22;&#x3E;XML-GrammarBase&#x3C;/a&#x3E;
which aims provides roles and base classes for easily writing wrappers around
XML schema formats and XML translation languages. So far only RELAXNG and
XSLT are supported. Here is the synopsis from the docs:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
package XML::Grammar::MyGrammar::ToOtherStuff;

use MooX &#x27;late&#x27;;

use XML::GrammarBase::Role::RelaxNG;
use XML::GrammarBase::Role::XSLT;

with (&#x27;XML::GrammarBase::Role::RelaxNG&#x27;);
with XSLT(output_format =&#x26;gt; &#x27;html&#x27;);
with XSLT(output_format =&#x26;gt; &#x27;docbook&#x27;);

has &#x27;+module_base&#x27; =&#x26;gt; (default =&#x26;gt; &#x27;XML-Grammar-MyGrammar&#x27;);
has &#x27;+rng_schema_basename&#x27; =&#x26;gt; (default =&#x26;gt; &#x27;my-grammar.rng&#x27;);

has &#x27;+to_html_xslt_transform_basename&#x27; =&#x26;gt; (default =&#x26;gt; &#x27;mygrammar-xml-to-html.xslt&#x27;);
has &#x27;+to_docbook_xslt_transform_basename&#x27; =&#x26;gt; (default =&#x26;gt; &#x27;mygrammar-xml-to-docbook.xslt&#x27;);

package main;

my $xslt = XML::Grammar::MyGrammar::ToOtherStuff-&#x26;gt;new(
    data_dir =&#x26;gt; &#x22;/path/to/data-dir&#x22;,
);

# Throws an exception on failure.
my $as_html = $xslt-&#x26;gt;perform_xslt_translation(
    {
        output_format =&#x26;gt; &#x27;html&#x27;
        source =&#x26;gt; {file =&#x26;gt; $input_filename, },
        output =&#x26;gt; &#x22;string&#x22;,
    }
);
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
perform_xslt_translation supports  myriad options and formats, and you
get it all for free.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I&#x27;ve also been contemplating something like
&#x3C;code&#x3E;App::XML::GrammarBase&#x3C;/code&#x3E;
or &#x3C;code&#x3E;XML::GrammarBase::App&#x3C;/code&#x3E; that will allow for easy registry
of such formats from the command line and for processing them.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
At first, I believed that Moo was &#x22;almost-completely-unlike-Moose&#x22;, but
&#xAB;use MooX &#x27;late&#x27;;&#xBB; makes it much more Moose-like and I enjoy it, and it is
now recommended over Any::Moose or maybe even plain Mouse. Mouse is very
fast as well and has a far smaller startup time than Moose, but it does not
interoperate very well with pure-Moose classes, which Moo does
well.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;HTML-Widgets-NavMenu-ToJSON&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
As I was working on &#x3C;a href=&#x22;http://www.shlomifish.org/&#x22;&#x3E;my homepage&#x3C;/a&#x3E;, I
noticed that after I placed all the sub-navigation menus inside the main
navigation menu, it increased the size of the navigation menu considerably,
having it consume over 40,000 bytes. I decided to put only a subset of it
as HTML, and load and populate the rest using an AJAX call to a common
and static .json file. So I needed a way to convert the input of
&#x3C;a href=&#x22;https://metacpan.org/release/HTML-Widgets-NavMenu&#x22;&#x3E;HTML-Widgets-NavMenu&#x3C;/a&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So enter
&#x3C;a href=&#x22;https://metacpan.org/module/HTML::Widgets::NavMenu::ToJSON&#x22;&#x3E;HTML::Widgets::NavMenu::ToJSON&#x3C;/a&#x3E;,
which serialises a navigation menu structure as JSON. I also implemented a
persistence layer for it, currently with only one backend - a YAML file,
so the IDs which jqTree require would be, well, persisted. This is a bit of
an &#x3C;a href=&#x22;http://www.joelonsoftware.com/articles/fog0000000018.html&#x22;&#x3E;architecture
astronautics&#x3C;/a&#x3E;, but I ended up with something concrete at the end so it&#x27;s
under control.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Here is the synopsis:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
use HTML::Widgets::NavMenu::ToJSON;
use HTML::Widgets::NavMenu::ToJSON::Data_Persistence::YAML;

my $persistence =
    HTML::Widgets::NavMenu::ToJSON::Data_Persistence::YAML-&#x26;gt;new(
        {
            filename =&#x26;gt; &#x26;#39;/path/to/persistence_data.yaml&#x26;#39;,
        }
    );

my $obj = HTML::Widgets::NavMenu::ToJSON-&#x26;gt;new(
    {
        data_persistence_store =&#x26;gt; $persistence,
        # The one given as input to HTML::Widgets::NavMenu
        tree_contents =&#x26;gt; $tree_contents,
    }
);

use IO::All;

io-&#x26;gt;file(&#x26;#39;output.json&#x26;#39;)-&#x26;gt;println(
    $obj-&#x26;gt;output_as_json(
        {
            %args
        }
    )
);
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
It could be made a bit simpler using an abstraction, but I feel it&#x27;s not
too bad. You can write custom
&#x3C;a href=&#x22;http://metacpan.org/module/HTML::Widgets::NavMenu::ToJSON::Data_Persistence&#x22;&#x3E;HTML::Widgets::NavMenu::ToJSON::Data_Persistence&#x3C;/a&#x3E;
child classes by implementing the &#x3C;code&#x3E;load()&#x3C;/code&#x3E;
and &#x3C;code&#x3E;save()&#x3C;/code&#x3E; methods - I did not document the process yet,
but you can base your efforts on
&#x3C;a href=&#x22;http://metacpan.org/module/HTML::Widgets::NavMenu::ToJSON::Data_Persistence::YAML&#x22;&#x3E;HTML::Widgets::NavMenu::ToJSON::Data_Persistence::YAML&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Dist-Zilla-Plugin-TestRun&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
Since I&#x27;m used to running &#x3C;kbd&#x3E;./Build runtest&#x3C;/kbd&#x3E; instead of
&#x3C;kbd&#x3E;./Build test&#x3C;/kbd&#x3E; for my distributions, I sought a way of doing the
same using Dist-Zilla. It turned out there wasn&#x27;t an easy way, and
&#x3C;a href=&#x22;http://metacpan.org/release/Dist-Zilla-Plugin-TestRun&#x22;&#x3E;Dist-Zilla-Plugin-TestRun&#x3C;/a&#x3E;
is the best I could do. I hope to write a patch to make the &#x3C;kbd&#x3E;test&#x3C;/kbd&#x3E;
command more configurable.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Test-XML-Ordered&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
&#x3C;a href=&#x22;http://metacpan.org/module/Test::XML::Ordered&#x22;&#x3E;Test::XML::Ordered&#x3C;/a&#x3E;
makes a non-&#x22;semantic&#x22; diff of XML files and tells you if they are
equivalent (up to differences of whitespace and namespace prefixes). It grew
out of my frustration with
&#x3C;a href=&#x22;http://metacpan.org/module/XML::SemanticDiff&#x22;&#x3E;XML::SemanticDiff&#x3C;/a&#x3E;,
upon which Test::XML is based, and which I maintain. A quick CPAN search
revealed other modules for testing XML in a similar manner, but since I have
already written my code, I decided to release it.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
One tip is that with the current API, one should use something like:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
my @common = (validation =&#x26;gt; 0, load_ext_dtd =&#x26;gt; 0, no_network =&#x26;gt; 1);

is_xml_ordered (
    [ string =&#x26;gt; normalize_xml($results_buffer), @common, ],
    [ location =&#x26;gt; &#x22;./t/data/xhtml-results/$fn_base.xhtml&#x22;, @common, ],
    &#x22;Testing for Good XSLTing of &#x27;$fn_base&#x27;&#x22;,
);
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
In order to test XHTML documents for equivalency.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Vered-XML&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
I thought that Vered-XML (currently only available in the
&#x3C;a href=&#x22;http://bitbucket.org/shlomif/perl-begin&#x22;&#x3E;Perl Beginners&#x27; Site&#x27;s
repository&#x3C;/a&#x3E; was probably the most ad-hoc and tailored to match
XML grammar I have ever created, and was used to convert the markup of
&#x3C;a href=&#x22;http://perl-begin.org/tutorials/bad-elements/&#x22;&#x3E;the &#x22;Perl Elements
to Avoid&#x22; page&#x3C;/a&#x3E; from hacky Website META Language markup to XML, so it
will be easier to translate to different (human) languages and also somewhat
easier to maintain and render. Currently it renders to DocBook/XML, which
allows translation to many other formats.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
So why did I call it Vered? Since it was so ad-hoc, and I didn&#x27;t know what
else it would be useful for, I wanted to give it an artsy name, and considered
using a random Hebrew feminine name. Then I thought that &#x22;a rose by any other
name would smell as sweer&#x22;, and thought of calling it Rose, but translated
to Hebrew it was &#x22;Vered&#x22;, which is also a Hebrew feminine name. I still have
to tie up some loose ends, but expect XML-Grammar-Vered at a CPAN mirror
near you Real Soon Now&#x2122;.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Vered-XML supports a subset of XHTML, as well as some specialised tags such
as &#x3C;code&#x3E;&#x26;lt;pdoc /&#x26;gt;&#x3C;/code&#x3E; (perldoc),
&#x3C;code&#x3E;&#x26;lt;pdoc_f /&#x26;gt;&#x3C;/code&#x3E; (perldoc -f),
&#x3C;code&#x3E;&#x26;lt;cpan_self_mod /&#x26;gt;&#x3C;/code&#x3E; (CPAN self link to module), etc. and
contains a RELAX NG schema and an xsltproc/libxslt2-compatible
XSLT 1.0 stylesheet. Here is an excerpt from
&#x3C;a href=&#x22;http://bitbucket.org/shlomif/perl-begin/src/d183a648b865a223c353b16664e05b6046bd478d/src/tutorials/bad-elements/perl-elements-to-avoid.xml-grammar-vered.xml?at=default&#x22;&#x3E;the &#x22;Perl Elements to Avoid&#x22; source XML&#x3C;/a&#x3E;:
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
&#x26;lt;item xml:id=&#x26;quot;slurp&#x26;quot;&#x26;gt;
&#x26;lt;info&#x26;gt;
&#x26;lt;title&#x26;gt;Slurping a file (i.e: Reading it all into memory)&#x26;lt;/title&#x26;gt;
&#x26;lt;/info&#x26;gt;
&#x26;lt;p&#x26;gt;
One can see several bad ways to read a file into memory in Perl. Among them
are:
&#x26;lt;/p&#x26;gt;
&#x26;lt;code_blk syntax=&#x26;quot;perl&#x26;quot;&#x26;gt;
# Not portable and suffers from possible
# shell code injection.
my $contents = `cat $filename`;
# Wasteful of CPU and memory:
my $contents = join(&#x26;quot;&#x26;quot;, &#x26;amp;lt;$fh&#x26;amp;gt;);
# Even more so:
my $contents = &#x26;#39;&#x26;#39;;
while (my $line = &#x26;amp;lt;$fh&#x26;amp;gt;)
{
    $contents .= $line;
}
&#x26;lt;/code_blk&#x26;gt;
&#x26;lt;p&#x26;gt;
You should avoid them all. Instead the proper way to read an entire file
into a long string is to either use CPAN distributions for that such as
&#x26;lt;cpan_self_dist d=&#x26;quot;File-Slurp&#x26;quot; /&#x26;gt; or
&#x26;lt;cpan_self_dist d=&#x26;quot;IO-All&#x26;quot; /&#x26;gt;, or alternatively
write down the following function and use it:
&#x26;lt;/p&#x26;gt;
&#x26;lt;code_blk syntax=&#x26;quot;perl&#x26;quot;&#x26;gt;
sub _slurp
{
    my $filename = shift;
    open my $in, &#x26;#39;&#x26;amp;lt;&#x26;#39;, $filename
        or die &#x26;quot;Cannot open &#x26;#39;$filename&#x26;#39; for slurping - $!&#x26;quot;;
    local $/;
    my $contents = &#x26;amp;lt;$in&#x26;amp;gt;;
    close($in);
    return $contents;
}
&#x26;lt;/code_blk&#x26;gt;
&#x26;lt;/item&#x26;gt;
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
I&#x27;m not sure if Vered-XML will have much utility outside that use case, but
I think that putting it on CPAN won&#x27;t hurt much.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Improving perlresume.org&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
I filed a few issues and sent some pull requests for
&#x3C;a href=&#x22;http://perlresume.org/&#x22;&#x3E;perlresume.org&#x3C;/a&#x3E; for some problems
I ran into, and &#x3C;a href=&#x22;http://showmetheco.de/&#x22;&#x3E;vti&#x3C;/a&#x3E; fixed or
applied them promptly. Thanks!
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Beginners&#x27; Sites&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
I invested more work into &#x3C;a href=&#x22;http://perl-begin.org/&#x22;&#x3E;the Perl Beginners&#x27;
site&#x3C;/a&#x3E;
and also, after some encouragement from the good people on
&#x3C;a href=&#x22;irc://irc.freenode.net/#vim&#x22;&#x3E;#vim&#x3C;/a&#x3E; began work on
&#x3C;a href=&#x22;http://vim.begin-site.org/&#x22;&#x3E;the Vim Beginners&#x27;s site&#x3C;/a&#x3E;, which
I publicised on &#x3C;a href=&#x22;http://shlomif-tech.livejournal.com/65619.html&#x22;&#x3E;my
tech blog&#x3C;/a&#x3E;,
on &#x3C;a href=&#x22;http://www.reddit.com/r/vim/comments/15o6v1/announcing_the_vim_beginners_site/&#x22;&#x3E;Reddit&#x3C;/a&#x3E;,
and on some mailing lists. While in the past I used my own
&#x3C;a href=&#x22;http://web-cpan.shlomifish.org/latemp/&#x22;&#x3E;static site
generator called &#x22;Latemp&#x22;&#x3C;/a&#x3E; based on Website Meta Language for sites
like that,
I used Jekyll this time, at least for the first prototype. I did so
in order to evaluate it for use in a different site
(&#x3C;a href=&#x22;http://www.linux.org.il/&#x22;&#x3E;The
Israeli Linux Portal&#x3C;/a&#x3E; which is currently implemented using an awkward
custom PHP-based system, that mostly just reads stuff out of XML data
files and outputs a constant static HTML as XSLT.). While at first I was
impressed with Jekyll,
I then realised that it was quite opaque, often required many plugins to
get some basic functionality and that one plugin I looked at lacked examples
and was otherwise under documented.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
There is &#x3C;a href=&#x22;http://iwantmyname.com/blog/2011/02/list-static-website-generators.html&#x22;&#x3E;a
list of many more static site generators / offline content-management
systems&#x3C;/a&#x3E; around (which does not include my own Latemp), and it may be
easier to roll up something on my own based on Template Toolkit or its ttree.
All this just confirms my
(and &#x3C;a href=&#x22;http://blogs.perl.org/users/su-shee/&#x22;&#x3E;Su-Shee&#x3C;/a&#x3E;&#x27;s) suspicion
that every self-respecting web programmer has written at least one.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Freecell Solver for JavaScript - &#x263A;&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
I have been distracted for many hours trying to port Freecell Solver
to JavaScript using the very cool
&#x3C;a href=&#x22;https://github.com/kripken/emscripten&#x22;&#x3E;Emscripten&#x3C;/a&#x3E; LLVM bitcode
to JavaScript compiler.
The &#x3C;a href=&#x22;http://fc-solve.shlomifish.org/js-fc-solve/text/&#x22;&#x3E;mostly
final result&#x3C;/a&#x3E; could still use some work, and is still under optimised (in
large part due to what appear to be an Emscripten bug) but it&#x27;s working.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The &#x3C;a href=&#x22;https://github.com/kripken/emscripten/wiki&#x22;&#x3E;Emscripten
wiki&#x3C;/a&#x3E; contains links to many, much more impressive, demos including
&#x3C;a href=&#x22;http://kripken.github.com/meandmyshadow.web/mams.html&#x22;&#x3E;a
JavaScript version of the open-source graphical game &#x22;Me and My Shadow&#x22;&#x3C;/a&#x3E;.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Two Anecdotes from ##programming&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
I enjoy chatting on
&#x3C;a href=&#x22;irc://irc.freenode.org/##programming&#x22;&#x3E;##programming (on Freenode)&#x3C;/a&#x3E;
and along with all the rants about how much every popular programming langauge
in existence sucks, and trying to help various students with their often
badly indented and badly formatted homework code, there are often some
insightful discussions by some smart people. I&#x27;d like to share two Perl-related
anecdotes from there.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The first one was that someone there who has taken studying programming, before
starting to study in university, seriously, and also read the Camel book
and other books and resources about Perl, asked me to look at my code
to see how readable it is. I referred him to the
&#x3C;a href=&#x22;https://metacpan.org/source/SHLOMIF/HTML-Widgets-NavMenu-1.0701/lib/HTML/Widgets/NavMenu.pm&#x22;&#x3E;source
code&#x3C;/a&#x3E; of HTML::Widgets::NavMenu, which will being an early code of
mine (and still not fully modernised), was written in a modular manner, and he
said he found it to be well-factored and yet very readable . He noted that he
suspected that Perl would be less believed to &#x22;hard to understand&#x22; or
&#x22;unreadable&#x22;, if it sandardised on using my preferred style -
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Indent_style#Allman_style&#x22;&#x3E;Allman
style&#x3C;/a&#x3E; - instead of its default style with the opening braces on the
same line as the opening clause (e.g: &#x3C;tt&#x3E;if ( COND ) {&#x3C;/tt&#x3E;).
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The other anecdote was that someone else there, who is working in Visual
Basic and Visual Basic for Applications for a living (for lack of good
alternative for software development job prospects in his homeland), told us
that he found the CPAN documentation to usually be superior than the MSDN
(Microsoft Developers Network) one.
I found it a little strange, because I recall finding the MSDN documentation
to give detailed examples for almost every subroutine and a page of prose and
explanation for each one, and reportedly large parts of it were also
translated into some non-English languages by Microsoft. Then I showed him
the &#x22;SYNOPSIS&#x22; sections of some of the .pm files in CPAN and he was
even more impressed and said it was useful (because you can copy+paste it and
tweak it), but naturally commented that not all .pm files had those.
&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Conclusion&#x3C;/h2&#x3E;

&#x3C;p&#x3E;
I currently stand at &#x3C;a href=&#x22;http://perlresume.org/SHLOMIF&#x22;&#x3E;87 CPAN
distributions&#x3C;/a&#x3E;, some of which a bit lacking, and I still have some in the
pipe. One of them will require quite a lot of cleanup work to do, but it&#x27;s
not a high priority. I also have to juggle some other endeavours, and also
recently started contracting for an Internet friend as a Drupal developer
(and in the future possibly one for Moodle as well), which may consume even
more of my time (but on the bright side pay a little money). It&#x27;s no secret
that I am not a big fan of PHP, but Drupal seems impressive so far, and
hides away a lot of PHP&#x27;s ugliness. It took me some time to get acquainted
with it, so I hope now things will be smoother and easier to do. It seems that
there&#x27;s quite a bit of demand for converting sites into Drupal, setting up new
sites, or maintaining them in Israel (and possibly elsewhere as well) so it
is probably a useful skill to have under my belt.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Hope you enjoyed this hacktivity log, and see you next time. Byeeeee!
&#x3C;/p&#x3E;

        
    " xmlbase="http://blogs.perl.org/users/shlomi_fish/"/>
<dcterms:modified>2013-01-07T20:54:43Z</dcterms:modified>
</item>
<item>
<title>Announcing the Vim Beginners&#x2019; Site</title>
<link>http://shlomif-tech.livejournal.com/65619.html</link>
<description>&#x3C;p&#x3E;
I am glad to announce that I, along with some help from some other people,
have set up &#x3C;a href=&#x22;http://vim.begin-site.org/&#x22; rel=&#x22;nofollow&#x22;&#x3E;the
Vim Beginners&#x2019;s Site - http://vim.begin-site.org/&#x3C;/a&#x3E; (or Vim-Begin
for short). It aims to be a centrally managed, yet fully open content/open
source site, for concentrating the Internet&#x2019;s best material for learning
about the Vim text editor and expanding one&#x2019;s knowledge. The site was
inspired by &#x3C;a href=&#x22;http://perl-begin.org/&#x22; rel=&#x22;nofollow&#x22;&#x3E;the
Perl Beginners&#x2019; site (or &#x201C;Perl-Begin&#x201D; for short)&#x3C;/a&#x3E;, and I set up the
domains begin-site.org (and begin-site.com as a future redirect) to
concentrate other similar high-quality sites introducing people to various
technologies and topics. So if you want python.begin-site.org,
emacs.begin-site.org, linux.begin-site.org, dotnet.begin-site.org,
cooking.begin-site.org etc. then
&#x3C;a href=&#x22;http://www.shlomifish.org/me/contact-me/&#x22; rel=&#x22;nofollow&#x22;&#x3E;contact me&#x3C;/a&#x3E; and I&#x2019;ll
see what I can do.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
The site is incomplete, and there&#x27;s still a lot to do, but we have
&#x3C;a href=&#x22;https://bitbucket.org/shlomif/vim-begin&#x22; rel=&#x22;nofollow&#x22;&#x3E;a Bitbucket
mercurial repository&#x3C;/a&#x3E;, an issue tracker there, a
&#x3C;a href=&#x22;https://bitbucket.org/shlomif/vim-begin/src/260364e02c8606b3e582b03adcbd3bce9400b460/vim-begin/jekyll-prototype/TODO.txt?at=default&#x22; rel=&#x22;nofollow&#x22;&#x3E;TODO
list&#x3C;/a&#x3E;, and we accept pull requests. The text for the site&#x2019;s pages
is under the &#x3C;a href=&#x22;http://creativecommons.org/licenses/by/3.0/&#x22; rel=&#x22;nofollow&#x22;&#x3E;Creative
Commons Attribution 3.0 licence&#x3C;/a&#x3E; (unless noted otherwise) and whatever
original source code is found there is under the
&#x3C;a href=&#x22;http://en.wikipedia.org/wiki/MIT_License&#x22; rel=&#x22;nofollow&#x22;&#x3E;MIT/X11 licence&#x3C;/a&#x3E;, and
both were chosen to allow for maximal reuse. Nevertheless, we may mirror,
restore, or link to, resources under different licences.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
Cheers, happy new year, and happy Vimming!
&#x3C;/p&#x3E;</description>
<author>Shlomi Fish ( shlomif@iglu.org.il )</author>
<category>open</category>
<category>source</category>
<category>vim</category>
<comments>http://shlomif-tech.livejournal.com/65619.html</comments>
<guid isPermaLink="true">http://shlomif-tech.livejournal.com/65619.html</guid>
<pubDate>Sun, 30 Dec 2012 12:48:39 GMT</pubDate>
</item>
<item>
<title>Tech Tip: Overriding the Audio Track of a Video using ffmpeg</title>
<link>http://shlomif-tech.livejournal.com/65462.html</link>
<description>&#x3C;p&#x3E;
In this tip I will cover how to use ffmpeg to override the audio track of a
video from a different audio track (such as the one in a WAV, an OGG or an
MP3 file). To do that use the following recipe (based on
&#x3C;a href=&#x22;http://cfc.kizzx2.com/index.php/muxing-audio-and-video-with-ffmpeg/&#x22; rel=&#x22;nofollow&#x22;&#x3E;this
out-of-date blog post&#x3C;/a&#x3E; and some help from ubitux on
&#x3C;a href=&#x22;irc://irc.freenode.net/#ffmpeg&#x22; rel=&#x22;nofollow&#x22;&#x3E;#ffmpeg&#x3C;/a&#x3E;, with a lot of
trial and error):
&#x3C;/p&#x3E;

&#x3C;pre&#x3E;
ffmpeg -i in_audio.wav -i in_video.ogv -map 0:0 -map 1:1 -shortest \
    -c:a libvorbis -q:a 7 -c:v copy output.ogv
&#x3C;/pre&#x3E;

&#x3C;p&#x3E;
Some of these files are not needed if you&#x27;re not dealing with Ogg Video files.
&#x3C;tt&#x3E;-shortest&#x3C;/tt&#x3E; is useful for making sure that the length of the output
is trimmed to that of the shortest input.
&#x3C;/p&#x3E;

&#x3C;p&#x3E;
I ended up using this command for
&#x3C;a href=&#x22;http://www.youtube.com/watch?v=hYdqNuX4WJc&#x22; rel=&#x22;nofollow&#x22;&#x3E;the latest screencast
I prepared&#x3C;/a&#x3E;. Cheers, and happy holidays.
&#x3C;/p&#x3E;</description>
<author>Shlomi Fish ( shlomif@iglu.org.il )</author>
<category>linux</category>
<category>open source</category>
<category>tech</category>
<category>tech tip</category>
<comments>http://shlomif-tech.livejournal.com/65462.html</comments>
<guid isPermaLink="true">http://shlomif-tech.livejournal.com/65462.html</guid>
<pubDate>Mon, 10 Dec 2012 16:59:01 GMT</pubDate>
</item>
</channel>
</rss>