shlomif is currently certified at Master level.

Name: Shlomi Fish
Member since: 2001-08-15 16:24:36
Last Login: 2012-05-23 18:00:00

FOAF RDF Share This

Homepage: http://www.shlomifish.org/

Notes:

I am an open-source user and developer, but don't really have anything against commercial software, if written and maintained well. I am an active member of the Israeli Group of Linux Users, the Haifa Linux Club, the Tel-Aviv Linux Club and numerous open-source related mailing lists.

My favourite programming language is Perl, but I also like Haskell, Matlab and Bash where appropriate. And I have a love/hate relationship with C/C++.

So far, my most ambitious open-source project has been Freecell Solver, but I also wrote or contributed to some other projects and hacks.

I received a B.Sc. from Electrical Engineering from the Technion, and am now looking for a good job in IT.

Projects

Articles Posted by shlomif

Complete list of articles by shlomif

Recent blog entries by shlomif

Syndication: RSS 2.0

New Vim Plugin: Add to Word Search

I’ve released a new plugin for the Vim text editor, called "add-to-word-search" ( GitHub repository, Vim Scripts page), and I’d like to introduce it here. If you like Vim, please let me know what you think by commenting below.

In order to properly introduce the plugin, one first should introduce the different (and useful) commands of Vim of * and #. What they do is search forward or backward for the complete word under the cursor (or somewhat before it or after it). Bram Moolenaar (the creator of Vim) covers them in his “Seven habits of effective text editing” document (there’s also a video available), and I think I covered them in a previous Vim tip.

Now, here is the use case that often bugged me: sometimes I searched for a certain function, found it in the text and then found a function that called this function (or often in the case of C code, a preprocessor macro that wrapped it), and wanted to look for its occurrences as well as those of the previous term. I wasn't aware of any good way to do it, so I ended up writing the “add-to-word-search” plugin.

After installing it, and after having searched for a word using * or #, one can press \** to search forward for an additional word under the cursor (or \## to search backward), and then use it more times to add additional words.

After publishing this plugin and mentioning it on #vim, “ironcamel” reported an issue that it gives an error if you have set nowrapscan. I fixed it, but was only able to do so by temporarily disabling nowrapscan, and then enabling it if it was previously enabled. (Apparently, vimscript’s exception-handling cannot handle some of the built-in errors.)

I also demonstrated it to my (now former) co-worker, who had been trying to get used to Vim, and he said it looked useful, but asked if there was an easy way to remove terms from the search query (which there is not at the moment), and I noted it may be a good idea.

Anyway, this Vim plugin is open-source and available under the MIT/X11 licence. Enjoy!

Syndicated 2012-04-24 07:51:03 from shlomif

ANNOUNCEMENT: Resumed maintenance of mikmod and libmikmod

To whom it may concern,

libmikmod is a portable and open-source (LGPLed) library for playing various common formats of Module files, including MOD, S3M, XM, and IT. mikmod is a Curses-based front-end for it, freely available under the GPL. Shlomi Fish would like to announce that he resumed maintenance of libmikmod and mikmod, after many years of lack of maintenance, after getting approval from Raphaël Assénat (raphnet), the previous maintainer.

So far, libmikmod-3.2.0-beta3 has been released with some older changes that lingered in the old version control repository, as well as several important fixes for security bugs taken from the downstream Mageia Linux package. The version control repository was converted from CVS to Mercurial, and more development is expected.

Plans for the future include releasing a stable libmikmod-3.2.0 and afterwards converting the build system from GNU Autotools to CMake, and then looking into fixing more bugs as they are encountered and implementing new features.

The old MikMod homepage ( http://mikmod.raphnet.net/ ) now redirects to the new one at http://mikmod.shlomifish.org/ where new development will take place (some parts of it still need to be updated, but it should already be usable).

Any contribution including testing, reporting bug fixes, contributing changes (as patches or as clones of the repository), or suggesting new features, will be appreciated.

For more information about module files see the wikipedia entry for “Module file”, and the FAQ for alt.binaries.sounds.mods (which was last updated in 1999). </a>

Syndicated 2012-04-15 12:05:18 from shlomif

The Stoic Road to Peace of Mind

If you are like most people, you probably feel angry, frustrated, or disappointed, often. That’s also has naturally been the case for me, but I was told a trick that made it much easier for me to handle these situations, and it dates back to antiquity.

Stoicism was an ancient Greek school of thought (that still exercises some influence today), which among other teachings, advocated self-control and avoiding making your emotions and irrational desires influence your behaviour for the worst. What they claimed was that painful feelings were not a direct result of an experience that induced pain, but rather the human mind's irrational interpretation of it.

If we move from this theory to its implications, then once something frustrating happens to you, you can say to yourself “I don’t like this. This situation is not ideal. However, feeling angry and resentful will not be beneficial, and so I should just accept this as is, try to reasonably cope with it, and make the best of it. I might even grow to like it.”

My psychotherapist told me that “Things must always go my way.” has been identified as an irrational cognitive belief by many people. (It is mentioned in this page in the Google Books’ hosted book). The solution to this is simply to say to myself that “I cannot always get what I want.” and that “Things might not go exactly like I want them to and that’s OK because I’ll survive.”.

Back to Stoicism, we can draw inspiration from the Roman Emperor and Stoic philosopher Marcus Aurelius’s quote from his book Meditations:

Say to yourself in the early morning: I shall meet today ungrateful, violent, treacherous, envious, uncharitable men. All of these things have come upon them through ignorance of real good and ill… I can neither be harmed by any of them, for no man will involve me in wrong, nor can I be angry with my kinsman or hate him; for we have come into the world to work together…

I am not an authority to speak a lot further about Stoicism, because I’ve only heard about it from hearsay and read the wikipedia entry and some other online sources, but I think we can all become a little, or even a lot happier, by adopting the mindset that the key to peace of mind is accepting sub-optimal situations, instead of insisting that we will always have our way.

Thanks

Thanks to steerpike, mofino and perlmonkey from Freenode for going over early drafts of this essay and providing some comments.

Licence

This work is licensed under the Creative Commons Attribution 3.0 License (Unported) (CC-by) or at your option any later version. Copyright © 2012, Shlomi Fish. CC-by is a common, permissive, free/libre/open licence for cultural works, which allows for almost unlimited use. See my interpretation and expectations from people who wish to build upon it (which I believe are pretty fair).

Meta

I realise I’ve neglected this blog for a long time, and I’ve been meaning to write and publish this entry for a long time, but didn’t, but I guess “better late than never”, right? Personally, I’ve been mostly fine recently having found a part-time job, which involves a short bus ride to the office in the downtown city, so it’s at a great location for me. I also enjoyed attending the latest Israeli Perl Workshop for 2012 and written a report about it.

In the meanwhile, livejournal.com’s handling of this blog’s DNS domains has deteriorated, and now just redirects it to shlomifish.livejournal.com. This probably made me even less motivated to post on this blog, and my reports about it appears to have been marked as duplicate without a proper resolution, but I'll try to get it handled and fixed. If not, I might have to investigate other hosted blog solutions.

There’s a lot more going on with my life, but I’m not sure how much it will interest other people and how much I should share it, but I’m fine and happy and have plenty of free time for work and leisure and whatever is in between. So good bye until next time.

Syndicated 2012-03-31 08:57:58 from shlomif

Tech Tip: Getting hgsubversion to Work with subversion-1.7.x

Apache Subversion version 1.7.x broke some backwards compatible and some stuff got broken, including hgsubversion, which provides a way to use subversion remotes with Mercurial.

In order to fix it, just install subvertpy, which provides alternative python bindings for subversion, which hgsubversion prefers by default, and with which it works fine under subversion-1.7.x.

I discovered all that after I attempted to fix it the hard way by installing subversion-1.6.x under /opt/svn-1.6.x, which required building an old version of SWIG, and then setting PATH, LD_LIBRARY_PATH, and PYTHONPATH and then having to remove the global python-svn bindings from under /usr/lib (as root!) because hgsubversion did not like them, a process which took me an entire evening and was frustrating and was ridden with a lot of trial and error, so I would not recommend it.

Hope it helps. Also see this hgsubversion bug report.

Syndicated 2012-03-16 09:04:14 from shlomif

Tech Tip: Getting hgsubversion to Work with subversion-1.7.x

Apache Subversion version 1.7.x broke some backwards compatible and some stuff got broken, including hgsubversion, which provides a way to use subversion remotes with Mercurial.

In order to fix it, just install subvertpy, which provides alternative python bindings for subversion, which hgsubversion prefers by default, and with which it works fine under subversion-1.7.x.

I discovered all that after I attempted to fix it the hard way by installing subversion-1.6.x under /opt/svn-1.6.x, which required building an old version of SWIG, and then setting PATH, LD_LIBRARY_PATH, and PYTHONPATH and then having to remove the global python-svn bindings from under /usr/lib (as root!) because hgsubversion did not like them, a process which took me an entire evening and was frustrating and was ridden with a lot of trial and error, so I would not recommend it.

Hope it helps. Also see this hgsubversion bug report.

Syndicated 2012-03-09 19:04:46 from shlomif

657 older entries...

 

shlomif certified others as follows:

  • shlomif certified mulix as Journeyer
  • shlomif certified alan as Master
  • shlomif certified Shenka as Journeyer
  • shlomif certified fxn as Journeyer
  • shlomif certified esr as Master
  • shlomif certified moshez as Master
  • shlomif certified BrucePerens as Journeyer
  • shlomif certified achitnis as Apprentice
  • shlomif certified jono as Journeyer
  • shlomif certified rms as Master
  • shlomif certified behdad as Journeyer
  • shlomif certified gby as Journeyer
  • shlomif certified ladypine as Journeyer
  • shlomif certified jdike as Master
  • shlomif certified nyh as Journeyer
  • shlomif certified Xantia as Journeyer
  • shlomif certified ndw as Master
  • shlomif certified sun as Journeyer
  • shlomif certified riel as Master
  • shlomif certified kilmo as Journeyer
  • shlomif certified veltzer as Journeyer
  • shlomif certified DaveGoehrig as Master
  • shlomif certified Liedra as Journeyer
  • shlomif certified movement as Master
  • shlomif certified rml as Master
  • shlomif certified RoUS as Master
  • shlomif certified ahu as Journeyer
  • shlomif certified lypanov as Journeyer
  • shlomif certified wli as Journeyer
  • shlomif certified epsalon as Journeyer
  • shlomif certified ask as Master
  • shlomif certified pudge as Journeyer
  • shlomif certified Simon as Journeyer
  • shlomif certified jlouis as Apprentice
  • shlomif certified sussman as Master
  • shlomif certified graydon as Journeyer
  • shlomif certified MUD as Apprentice
  • shlomif certified miguel as Master
  • shlomif certified lewing as Master
  • shlomif certified neo as Master
  • shlomif certified carol as Journeyer
  • shlomif certified mitch as Master
  • shlomif certified vidar as Journeyer
  • shlomif certified bolsh as Journeyer
  • shlomif certified bagder as Master
  • shlomif certified boog as Journeyer
  • shlomif certified petdance as Journeyer
  • shlomif certified AlanHorkan as Master
  • shlomif certified lkcl as Master
  • shlomif certified Pseudonym as Journeyer
  • shlomif certified kfogel as Master
  • shlomif certified Fefe as Journeyer

Others have certified shlomif as follows:

  • neurogato certified shlomif as Apprentice
  • jono certified shlomif as Apprentice
  • baruch certified shlomif as Apprentice
  • fxn certified shlomif as Journeyer
  • mirwin certified shlomif as Master
  • Miod certified shlomif as Master
  • sdodji certified shlomif as Journeyer
  • slef certified shlomif as Journeyer
  • behdad certified shlomif as Journeyer
  • AlanShutko certified shlomif as Apprentice
  • ishamael certified shlomif as Journeyer
  • benad certified shlomif as Journeyer
  • sye certified shlomif as Journeyer
  • xmldoc certified shlomif as Journeyer
  • mglazer certified shlomif as Master
  • jao certified shlomif as Journeyer
  • jerry certified shlomif as Apprentice
  • nyh certified shlomif as Journeyer
  • danielwang certified shlomif as Apprentice
  • mascot certified shlomif as Apprentice
  • Omnifarious certified shlomif as Journeyer
  • epsalon certified shlomif as Apprentice
  • veltzer certified shlomif as Journeyer
  • Liedra certified shlomif as Journeyer
  • zwane certified shlomif as Apprentice
  • pudge certified shlomif as Apprentice
  • petdance certified shlomif as Apprentice
  • kilmo certified shlomif as Journeyer
  • MUD certified shlomif as Master
  • bolsh certified shlomif as Journeyer
  • boog certified shlomif as Journeyer
  • mitsue certified shlomif as Journeyer
  • avriettea certified shlomif as Journeyer
  • tagishandy certified shlomif as Journeyer
  • lkcl certified shlomif as Master
  • ekashp certified shlomif as Journeyer
  • robbat2 certified shlomif as Journeyer
  • teknopup certified shlomif as Journeyer
  • murajov certified shlomif as Master
  • ittner certified shlomif as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page