Home

Personal Log: Report on the Last Days

  • Jan. 21st, 2008 at 10:44 PM
millie O&M David C. Simpson

I started working on Sunday, a week and a day ago. It's a (paid) one month trial so both sides can see if they are happy with the arrangement. I'm working as a Linux C++ server programmer for Emblaze. So far I'm mostly happy with the job.

On Saturday I met with [info]peachuk and TDDPirate on the University Café close to my home. Peach has been visiting Israel and wanted to meet us (we met online on IRC and MSN Messenger), and we decided to arrange a meeting. Since TDDPirate is deaf, I brought a laptop from home to facilitate communication with him, but I couldn't turn it on after we met. As it evidently turned out, its battery was dead. (I was worried that my back will hurt from carrying it, but thankfully it still doesn't.). So we had to do with a pad of paper.

We ate dinner there and had a nice conversation. Peach seemed different in real life, than her Instant Messaging persona, and I was happy to meet TDDPirate again.

Yesterday was an eventful day. In the morning, I was dismayed to discover that my cellphone had a low battery, because it wasn't charged properly. Then at lunch, I accidently ate some fava beans at lunch, which I might be allergic to due to G6PD. So far, I'm OK, though.

Then I left work early to go to a Tel Aviv Linux Club meeting. When I arrived at the final bus station, I noticed that I could not feel my watch. As I discovered, its chain broke, but I still have both pieces at home. I attended the talk which was about open-source Geographic Information Systems, and included many nifty and visual presentations.

That's it for real life. Otherwise, the Mandriva Cooker Linux distribution at home, recently upgraded perl to version 5.10.0, which caused many software packages there to become broken because they relied on it being the previous version (5.8.8). I had to fix some of the problems on my system myself, while submitting or reporting them to the distributor for inclusion. At work I'm now using Ubuntu Gutsy, which has its own share of bugs that are almost, but not quite, entirely unlike the Mandriva ones.

One of the things that got broken was Website Meta Language, which is an HTML preprocessor I'm using for all my sites. I've hacked a quick patch to build it, but since now the GNU Autotools setup for it has also become broken, I've decided to ditch them in favour of CMake. So far, CMake seems nice, but I only really started with the conversion process.

EvilPHish evil fish shlomi fish

Update: I'm sorry for having posted this on my non-technical blog. The problem was that Firefox got stuck when posting the message, and when I went to LiveJournal again after killing it, it restored the text of the post, but not the rest of the parameters. So I forgot to switch the destination to "shlomif-tech". I'm sorry for that, but it seems it's too late to change it now.

STAF stands for "Software Testing Automation Framework" and is a framework for IBM for software testing. I spent a large amount of the last two days trying to get it up and running on my Mandriva Cooker Linux system, in order to fullfill this request for a Linux beta-tester.

Trying to get the binary to work with my Perl failed due to a segfault when running it. So I opted to build it for source. I followed the STAF developer's guide which explains how to build STAF, but still needed a lot of trial and error.

Eventually, I installed ActivePerl-5.8 and used the following shell script, that needs to be sourced (or "."ed) into the current shell, to build everything. You may need to customise it a little.

#!/bin/bash
# One needs staf to build the main things, connprov* to be able to 
# run STAFProc on the local machine and perl because I needed it.
export OS_NAME=linux BUILD_TYPE=debug PROJECTS="staf connprov* perl"
export JAVA_LIBS="/usr/java/jdk1.5.0_09/" JAVA_VERSION="1.5" 
export JAVA_V12_ROOT="/usr/java/jdk1.5.0_09/" JAVA_V12_LIBDIRS="/usr/java/jdk1.5.0_09/libs/"
export PERL_BUILD_V58=1
export PERL_BUILD_V56=0
export PERL_V58_ROOT="/opt/ActivePerl-5.8"
export PATH="/opt/ActivePerl-5.8/bin:$PATH"
PLIB="$PERL_V58_ROOT/lib/"
A="$PLIB/CORE"
export PERL_V58_INCLUDEDIRS="$A" PERL_V58_LIBDIRS="$A"
# This variable is completely undocumented in the relevant part of the
# STAF documentation, but with its default value it won't work correctly.
export PERL_V58_TYPEMAP="$PLIB/ExtUtils"

After doing it, type "make". Cheers. Now I can go on with my business.

Recent Hacktivity Log

  • Feb. 24th, 2007 at 9:15 PM
EvilPHish evil fish shlomi fish

I've decided to make another weblog entry enumerating all the boring things I've been working on lately, based on items ticked off from my daily to-do lists. Feel free to skip this entry and read Reddit instead.

  1. Installed Plagger on Mandriva from RPMs
  2. Worked on Test::Run
  3. Added Google AdSense to DocBook/XML-generated essays, and to the Quad-Pres-generated presentations. Hopefully it will both result in more AdSense revenue for my site as well as not be a deterrent.
  4. Prepared the slides for a presentation I'm giving to the Israeli Pythoneers about the Joel Test.
  5. Did some other work on my site.
  6. Pruned bugs from the XML::RSS queue.
  7. Blogged, and blogged and blogged some more. ("When in doubt - blog!")

Well that's it for now. Now to get some more work done.

EvilPHish evil fish shlomi fish

This video in which someone tries to write a Perl script using Vista's voice recognition made me lough very hard. A link to it was spotted on the perl5-porters mailing list. I think it's a huge step forward in Perl programmers' productivity.

Tip: Incremental Devel-Cover Update

  • Jan. 20th, 2007 at 12:07 PM
EvilPHish evil fish shlomi fish

Devel-Cover is a Perl module to test for tests' coverage. What you do is run your test scripts through it, and it gives you a report of which code was covered by them.

Now let's suppose you ran all your test scripts, and now modified one test file in order to get better coverage. In this case, you may not need to run everything again. Just do from the command line:

# Run the test script through Devel::Cover.
# You can also use prove instead of runprove

HARNESS_PERL_SWITCHES="-MDevel::Cover" runprove --blib t/0.9-strict.t

# Update the display.

cover

It worked for me several times, and it's a huge time-saver.

IceWM Exile

  • Jan. 6th, 2007 at 8:56 PM
millie O&M David C. Simpson

Well, the upgrade to Mandriva 2007.1 Alpha went relatively flawlessly. urpmi was successful. However, then I ran into this KWin (KDE's window manager) bug, which made using KDE unusable for me. So I've switched to using IceWM and am now speaking from an IceWM exile. Nevertheless, I am still using all the nifty KDE applications that I'm used to using so it's not that bad. I still miss the KDE environment, though.

Today I've placed my QClam modifications online, and notified the author about it. I also installed the Inkscape trunk, found a bug, and confirmed or said I could not reproduce a few others. I read LWN, and added several links to the Vi Humour page on the Text Editors' Wiki (so no one should say that "Vi is serious.".).

I also tested bleadperl (The development version of perl5). I was able to install the CPANPLUS bundle, but installing Task::Sites::ShlomiFish was dead-on-arrival because of a Params::Validate compilation problem. I didn't feel I was as productive as yesterday, but today things tended to get in my way.

Well, I'm off to write a report about the recent Perl Mongers meeting.

Two Productive Days

  • Jan. 5th, 2007 at 11:30 PM
EvilPHish evil fish shlomi fish

Yesterday at work, I tried to configure the soundcard again, this time using the Windows "Add New Hardware" wizard, and it still rebooted the machine. Then my supervisor came and told me I can just use Linux for what I need to do. So I did. So I was able to finally write some code. At the end of the work day it compiled. Yay! I'm going to test it next week.

I left work early in order to go to the Israeli Perl Mongers meeting. Since I arrived at home early, I did some work on my old "Graham's Function" Perl code. Then I went to the meeting.

The meeting was very nice. Shmuel Fomberg gave an interesting talk about Perl/Tk. It didn't renew too much to me, but it was still fun. Then Gabor Szabo gave a talk about Perl 6, which from what I understood was a port of his Perl 5 course to Perl 6. Several things there sparked a lot of discussion, especially the junctions. For example, it turns out that in Perl 6 "if ((3|4) == 3) { ... }" will execute the condition, but so will "if ((3|4) != 3) { ... }". That's because the "|" means "any", and so it tests whether any of the operands is equal to 3 or whether any of them is not. Another interesting feature is the chained conditionals: "if (3 < 7 == 7 < 10 > 8)" will evaluate to true in Perl 6.

I left the meeting prematurely along with my ride (Shmuel), so I may have missed some more interesting stuff. The slides are online, however. I spent the rest of the evening reading the 2006 Perl Advent Calendar, which while I took part in preparing, did not have a chance of fully reading until then.

The whole work week was sunny and bright, but the weekend was and is going to be stormy, so I cannot go out a lot. In any case, today I woke up relatively early (before 9 AM), and decided to perform many outstanding tasks on the computer. As it turned out, I performed quite a lot of them, and felt I was very productive. Among the things I did were:

  1. Schedule two upcoming Tel Aviv Linux Club lectures, after talking with the future presenters.
  2. Wrote 4 blog entries (in three different blogs) and decided against writing on one topic I kept in my todo list.
  3. Researched how to get QClam to connect to clamd instead of using clamscan, which is very resource intensive - just tell it to use clamdscan instead of clamscan. I also hacked on QClam a bit in the process.
  4. Added a new link to my "Stop Using Internet Explorer" page.
  5. Read the latest "People behind KDE" feature"
  6. Added some books to my Amazon.com wishlist.
  7. Reported two bugs in perl-5.8.x.
  8. Continued porting my Graham's Function program (see above) to Common Lisp. This time I also dabbled a bit with creating new Lisp classes and methods.
  9. Right now, I've started the upgrade process to upgrade my system to Mandriva 2007.1 Alpha.

So I think I can give myself a positive mental feedback for all this. Some days I feel like I'm not doing anything, but that was certainly not the case for these last two days.

Update

  • Dec. 28th, 2006 at 1:49 AM
EvilPHish evil fish shlomi fish

Three nights ago, my computer made strange noises. They had a certain long repetition duration. I decided to turn off the computer for the night, and see what happens in the morning. When I turned on the computer the next morning it made loud noises. Since this had me worried I decided to do a backup of all the files, in case something happens - which I did. I left it on since, and the noises subsided, so I don't know what was wrong originally.

I've finished reading all the relevant chapters out of Linux Device Drivers. I kept some notes with Errors I found, and reported the ones that have not been reported yet to the book errata. Otherwise I've been heavily immersed in working on this Golf quiz. I hope tomorrow I'll do some other things besides it, though.

Today I went to the Israeli Pythoneers meeting. The small conference room we gathered in was crowded with people, and we heard two interesting presentations: one about TurboGears and the other one about Construct, which is a framework for writing protocol and formats dissectors, which the presentor has been working on. After the meeting we went to a café for some food and chat. This has been my first Python-Israel meeting in quite a while, and I wasn't disappointed.

Puzzles by Wei-Hwa Huang

  • Dec. 18th, 2006 at 12:13 PM
EvilPHish evil fish shlomi fish

bramcohen points to a capture only chess puzzle by Wei-Hwa Huang. I already solved the first three puzzles from there, and found the rest too complicated for my taste. Huang has put other puzzles on his site which look interesting.

I tried to solve the 3, 3, 8, 8 one, and when I could not find a solution, I wrote a Perl script to verify that such a solution exists. The script failed, but by printing the solutions, I found that such a solution existed, only it was a rounding error. Memo to self: next time use a fraction module for such things.

Vim Tips (and other Stuff)

  • Nov. 29th, 2006 at 10:43 PM
millie O&M David C. Simpson

I apologise for not posting here in a few days, but publicising the Tel Aviv Linux club meetings, and working on this year's Perl Advent Calendar is relatively time-consuming. But now happy that I finished two articles for the calendar, I can blog a little about other stuff, like Vim Tips.

So here are two Vim tips I've found:

  1. When using the visual mode, one can use the o to move to the other end of the selection and modify it. Read more about it in the link.
  2. If you are in insert mode and your line is indented (say after pressing o on an indented line) but wish to start writing from the beginning of the line, you can press Ctrl+W to delete the leading whitespace and start typing at the beginning of the line.

That put aside the last Tel Aviv Linux Club meeting was very successful - many people came, Gilad gave a good presentation about Development Tools for Linux, and four of us went to the café afterwards. And here's some publicity for the next presentation in the series. (Ignore the title of the page and message - they're a leftover from the previous announcement).

Have a lot of fun!

My First Amarok Scripting Experience

  • Nov. 25th, 2006 at 11:59 AM
millie O&M David C. Simpson

Currently I'm still using Amarok as a music player, and I like very much. One thing that kept bothering me, even back when I was using XMMS, was that sometimes I had to fiddle with the volume because the songs were too loud or too soft. I tried using XMMS Volnorm but it caused the songs to have artificats and since it operated only on portions of the songs, damaged volume increasing and decreasing effects.

But I had a better idea. Why not keep track of the volume the user used for each song, and restore it to its last value when the song is played again? Today, I finally decided to implement exactly that on my Amarok system somehow. When I searched for something to do that on Google, I could not find anything for Amarok, but found a different Java player that sported "per-song volume". So per-song volume it would be.

After reading the Amarok Script-Writing Howto, I knew how to write this script. It's very simple really: one used the dcop command line command to control Amarok, and listens to events that are sent as lines on the standard input. I initially thought I'll need to use Ruby for that, but the Ruby examples on the page did not use any external KDE or Amarok-specific bindings, so Perl is also suitable, and I used it instead due to the laziness factor.

The script I wrote keeps a state of the current volume and the current song, and maintains the recorded volumes inside an SQLite database (which is just a single file on the filesystem.). Writing it was not very hard, but I encountered a few bugs I had to tackle.

What turned out to be more irritating was uploading the script to kde-apps.org. I had an account there (possibly due to my old kde-look.org account), and so logged in, but after changing the password got rejected. An email with the password that I sent to myself indicate the password I had was correct. I opened another account with the same password and again no luck.

After inspecting the markup and seeing that the password <input /> tag contained a truncated version of the password, I conjectured that maybe it couldn't handled long passwords properly. That was indeed the case, and I could login from a new account I opened and upload the script. I recall that I struggled with it so much that I didn't eat by 8:20 PM.

After the script was uploaded I updated the Amarok wiki. I noticed at the top that there were also French and German versions of that page. Therefore, I joined #perlcafe, and got someone to update the French page with that information as well (just for the heck of it). Looking at a note inside the WikiWiki markup at the top it seems that I also need to add it to the German page (so it'll be in the sync with the English one).

Today I also added a section to my Open-Source "Bits and Bobs" page with this script.

At the moment, this script received an average rating of "50% Good" in the kde-apps.org page, and no comments were posted on the page. I've started using it and it seems to work very nicely for me so far. Maybe you'll find it useful too, or would like to implement similar functionality for other music players. Oh and I'd also like to implement a compatible script in Common Lisp because I'm learning it now. Stay tuned.

EvilPHish evil fish shlomi fish

Today I checked my gmail E-mail and saw that my friend sent me a link to a hilarious videoclip of "A Finite Simple Group (of Order Two) by the Klein Four Group, which are a mathematically-inclined a-capella group. I liked it so much that I decided to send it to the members of my long-forgotten Jokes Distribution List using my KDE mail account.

Well, the problem was that it really was long-forgotten as KAddressbook did not list it or any other distribution list I had prepared in its previous incarnations. So I decided to investigate. I created a new distribution list with a few members and saved it. When inspecting the KAddressbook directory (~/.kde/share/apps/kabc/) I found it no longer stored them in the file distlists but rather inside std.vcf in specially-formatted records. So I whipped up a quick Perl script to convert it to the new format, which worked after a tweak or two. After restarting kmail, I was able to see my distribution lists' again, and could send my mail.

Read more... )

Daily Log

  • Nov. 18th, 2006 at 10:55 PM
millie O&M David C. Simpson

Today was a productive day, as it was not interrupted by bugs or other disrepencies. It started with writing and posting a blog entry about Test::Run. Then I added pages for the "Lotg" code and my own situation puzzle to my home site.

I was able to bike during the afternoon (starting around 15:00). Afterwards, I worked on WWW::Form: fixing a bug that was caused due to a Test::More regression (hopefully more about it later), raising its kwalitee and releasing a new version on CPAN.

Finally, during the evening when I was tired, I caught up with my Slashdot interview backlog.

Tomorrow there's a Telux "Welcome-to-Linux" meeting and there's going to be a Pythoneers meeting on wednesday. I also have to find out the whereabouts of the next Perl-IL meeting so I can publicise it.

Lately I've been

  • Nov. 11th, 2006 at 2:01 PM
millie O&M David C. Simpson

Lately I've been playing a lot of computer games. Mostly PySol, Fish Fillets, WarCraft 3, or Monkey Island 4 (last both on the nearby Windows machine). I've made quite a lot of progress in them. While I don't play too much, it seems that I've been much less productive than at the times I didn't play at all. I mostly didn't code.

I've also been resting at bed during the mornings, and yesterday also rested for an hour or so after lunch. Today, however, I woke up early, ate breakfast at 11:00 and did not sleep, so maybe I'm back on track. I also spent the day until now doing some mostly productive work (like fixing WWW-Search-MSN bugs, or writing a report on the last meeting of the Israeli Perl mongers.)

I've been making some progress on Practical Common Lisp, and also a lot of other reading. Sometimes I feel that I'm reading too much. And I'm having a love-hate relationship with my RSS aggregator.

EvilPHish evil fish shlomi fish

Well, I stayed up all night during the night before last to backup. In the morning afterwards and during the rest of the day, I still really wasn't tired. One good thing that came out of it was that I covered several full chapters of "Perl Best Practices" (which I can now highly recommend).

During the day, I tried to get my Kubuntu system to work with my existing data which seems to be completely OK. I eventually upgraded to Ubuntu Dapper which is the most recent release. Even that is still missing recent software that exists in my Mandriva 2007 system, like Vim 7.0, or Apache 2.2.x, but it's still better.

At first I tried creating an account on my Kubuntu partition with the same UID as "shlomi" on Mandriva, but a different home directory location (/mnt/mandrake/home/shlomi). This worked well for some things, but eventually I opted for a better solution: create a symbolic link for /home/shlomi to point to the same directory in the Mandriva partition, and have the same username. This seems to work very well.

I had to install a lot of software to start hacking again, and as a result my 5.2GB Kubuntu partition is 90% full. I can install software using ./configure --prefix="", but I'd really like to enlarge the partition. Fortunately, due to backups and backup induced cleanups my mandriva partition now has 32 GB free space and I can comfortably reduce it. (Assuming the XFS tools can handle the bad blocks properly.).

I already updated my home site with two new ideas, and fixed some bugs I discovered there. I also discovered a very obscure Apache 2.0.x bug, which only Konqueror was affected from, and unsuccesfully tried to compile my homesite using perl-5.9.4. I'll try again later, but this may involve squashing some CPAN bugs.

Meanwhile, we bought a new hard disk (a 160 GB SATA one) to use as a replacement for the Linux one. This time I'll have one partition for home, and one or more partitions for the roots of the different distributions. I already burned a CD of Ehad 2006, where Ehad is the Israeli-oriented remastering of Mandriva, and am going to install it.

In case, I'm not going to write in this blog until Rosh Hashanah (which takes place this Friday) then Shanah Tovah. I expect that I'll again spend part of Yom Kippur summarising the previous year as reflected from my blogs.

Finally, today when I went to a walk, I took our good camera with me, and took some pictures. Expect them at a Flickr near you soonishly.

New stable versions of Quad-Pres and Latemp

  • Aug. 30th, 2006 at 1:54 PM
EvilPHish evil fish shlomi fish

As promised, there's a new stable version of Quad-Pres - 0.12.0 with many improvements. This is the first new release since 2003. Otherwise, I also released Latemp 0.4.0 (also see the announcement on the site). Now it seems like I'm on a roll.

Next on my agenda is trying to find a good Look&Feel for the Welcome-to-Linux site and ,with a lower priority, for Perl-Begin.

A Productive Day

  • Aug. 20th, 2006 at 3:48 AM
EvilPHish evil fish shlomi fish

Yesterday (Saturday, 19-August-2006) was a very productive day for me.

During the morning, I was able to fix the "Website Meta Language" (WML) site. This gave me enough time to package wml-2.0.11 and announce it on Freshmeat and on my use.perl.org weblog.

A little after midday, Sagiv dropped by my house, and we both downloaded Joomla! and played with it. Despite a few glitches that were easily resolved, we were able to achieve everything we've tried and we were very impressed. The only fly in the ointment was the fact that the stable version does not support UTF-8 yet, and as such all the Hebrew characters we entered were automagically converted to Unicode SGML entities. Sagiv also ate lunch at our house, and while they were eating he and my mother exchanged some cooking tips.

I also started working on Test::Count and was able to get release 0.01 on CPAN. Test::Count is a module to extract meta-comments like # TEST:$num_iters=5 and # TEST*$num_iters*3 out of a test script and update the test counter, so one can always make sure he has an accurate count of the tests.

After all that, I became a bit hungover (which implied I wasn't very productive), but eventually found something good to do with my time: learn XSLT (from the tutorials at w3schools and zvon.org), and start working on an XML grammar for home-site syndication of various products (such as books, CDs, movies, etc.). At the moment, I only have a work-in-progress DTD as well as several XML files as test cases for it. So I'm in a lame but hopeful condition.

Well, enough blogging for now. Either gvim or my bed (or both) await me…

Discussions of Interest

  • Jul. 13th, 2006 at 3:25 PM
EvilPHish evil fish shlomi fish

This thread in Linux-IL discusses tcsh vs. bash vs. sh (various Unix shells) for learning how to program in shell. We discuss why tcsh is bad, why Bourne shell or Bash should be taught instead, and why pure Bourne shell may be less suitable than Bash/ksh/zsh. We also touch on the login shell ergo scripting shell issue.

This thread on discussions@hamakor.org.il (in Hebrew) touches on what is the suitable introducory language. I've been meaning to write an essay (in English) about it for some time, and given what I and other people said in the thread, I guess I'll have less work now.

A thread I started in advocacy@perl.org about a Central Wiki for Perl. Eventually we settled on using the perl.net.au MediaWiki for that, at least until a Socialtext-based wiki will be set up. I should note that merlyn told me on IRC that he suggested the idea back in August 2005. Oh well.

Finally, if you want to read an entirely pointless discussion about software licenses for Perl code on perl-qa, be my guest. It was started by a message that I posted there, gained a lot of (negative) momentum by the criticism of a few people, and I daresay I didn't handle the criticism properly. Memo to self: when this happens next time - don't respond and let the discussion fade away.

The other threads on perl-qa (as of today) are a much more civil and interesting.

That's all folks! For now, that is. I have a lot of other stuff to blog about, but I also have many other things I'd like to do.

OSDC::Israel::2006

  • Mar. 3rd, 2006 at 10:51 AM
millie O&M David C. Simpson

As promised here is my report and feedback from the OSDC::Israel::2006 conference, as posted to the osdc-discuss mailing list.