02-Dec-2002
Internet Bits and Pieces
The Technion's connectivity is fine now, but has been a bit sporadic lately. (sometimes it congests). What does
not work is my CVS repository at BerliOS. It seems that
I can't even login into the CVS server, even from shell.berlios.de. And the new CVS instructions on the project's page are lacking.
I joined a web-designers mailing
list which I spotted on Google. So far, the traffic there has not been particularily high, and the SNR is quite high (lots of talk about HTML standards, CSS, etc.). I received one response (in private) to my question about how to make the navigation looks fine in MS Internet Exploder, so I'm going to switch to Windows and tinker with the CSS stylesheet. Then I'll have to switch back to Linux and fix it in the WMLized source, and upload it again. <sigh /> Maybe I should use VMWare or Cross-Over Office.
Hacktivity
I download the source RPM of the new version of aspell, compiled and installed. Using its HTML/SGML mode I was able to spell check one of the chapters of the Architecture Document. I could not commit it into the CVS yet, due to the aformentioned BerliOS problems so I'm on hold now until it is fixed. The previous version of aspell gave me problems when ran in HTML mode, and Emacs's ispell-buffer mode started asking me to verify all the DocBook/XML tags, which made it quite useless. It's good to know Kevin Atkinson is hard at work on aspell.
I also managed to do a lot of the
Solving lecture: covered Neo-Tech, and Homesteading the Noosphere and almost finished the Magic Cauldron. What's left is giving a section that explains how Solving integrates and expands on the two, and giving it some final touches, and adding sections if necessary.
I received a user account on a Co-Op server and am going to set up a globally accessible Subversion repository there. So far Berkeley DB-4.0 compiled without a problem. However, Apache 2.0.x requires the headers of OpenSSL to compile mod_ssl and it is not available there. I guess I'll have to wait for it to be installed.
./configure and the compilation of C modules is very fast on this machine, so it must be a pretty spiffy one. I remember timing the Freecell Solver scans ran so much faster on the Pentium 4 1.7 gHz at the Com-Net Lab than it did on my P3 667 MHz workstations. Working on my home P3 600 MHz is also pretty nice and fast, but greater speed still makes you a bit less frustrated.
Life
It's Hanukah now, so I light up the candles every evening, and we eat latkes. The weather has become quite cold at night. The Technion was closed yesterday and today, so I'll have to postpone doing my arrangements on Tuesday.
I have to check the "Hever" students' personnel company for available temporary positions, register as a tutor for some of the courses I have taken (those that I received a suitable grade and feel confident enough about teaching to others), and talk with the supervising lecturer of "Intro to Software Systems" about breezing through the course. I basically know this course already, and would just like to get the extra points for it.
I got to bike twice yesterday. What I could not do was wash my hair, because we ran out of available shampoo and then there was a lack of hot water. I'm already three days late in washing my hair.
17-Dec-2002
Hacktivity
I've been mostly obsessed with the program I wrote to solve the Perl 'Expert' Quiz of the Week #8. Since it was finalized, I added two optimizations and tweaked it a bit. You can see the results here and here.
Since I decided to learn O'Caml now, I also converted this code to O'Caml. It took a lot of time to get it to compile and then I had a bug or two to iron. Google pointed me to an entire thread about Memoizing in Caml. Now I should take a look at O'Caml object-oriented features.
I also finished all 100 boards of StoneAge, so I'll have another thing that won't distract me anymore. Aside from that, I now finished all the chapters of "Programming Perl" up to and including the one about regexps. I did not read too much of the other books.
I reviewed my WebMetaLanguage lecture today, and corrected some typos in one of the newer pages. I also checked out the GIMP 1.3.x from the CVS, compiled it and installed it. The fact that an older version was installed in its installation directory gave me some problems, but I after I deleted it and ran "make install" again, everything resolved itself. Hopefully, I will work on the Gradients logic a bit and get a functionality similar to my gradient-fu patch.
Lastly and very importantly, I implmemented the "{long_test_name}" notation for Freecell Solver's test order, and refactored the tests' order parser a bit. Now I still have the hard part of implementing the generic state ordering functionality.
18-Dec-2002
Camel Book
I'm progressing nicely with it. I have just finished the chapter about
modules, and am on page 308. By skipping to the history part, I found out it
was Perl's birthday today by coinicidence. Happy Birthday, Perl!
Graham's Function Program
By profiling Perl using the Devel::DProf module, I found out that the
multiple_squaring_factors function takes out %40 of the run-time.
I tried to optimize it in several ways but they all proved to be worse
than the original. Then I tried to code it in C, so I can give a lower
bound to its CPU requirements. By using the Inline::C module I was able
to write my first Perl extension:
SV * multiply_squaring_factors(SV * n_ref, SV * m_ref) {
AV * ret, * n, * m;
int n_idx = 0, m_idx = 0, n_elem, m_elem, n_len, m_len;
SV * * n_elem_proto, * * m_elem_proto;
n = (AV *)SvRV(n_ref);
m = (AV *)SvRV(m_ref);
ret = newAV();
n_len = av_len(n)+1;
m_len = av_len(m)+1;
while((n_idx < n_len) && (m_idx < m_len))
{
n_elem_proto = av_fetch(n, n_idx, 0);
n_elem = SvIV(*n_elem_proto);
m_elem_proto = av_fetch(m, m_idx, 0);
m_elem = SvIV(*m_elem_proto);
if (n_elem == m_elem)
{
n_idx++;
m_idx++;
}
else if (n_elem < m_elem)
{
av_push(ret, newSViv(n_elem));
n_idx++;
}
else
{
av_push(ret, newSViv(m_elem));
m_idx++;
}
}
while (n_idx < n_len)
{
n_elem_proto = av_fetch(n, n_idx, 0);
av_push(ret, newSViv(SvIV(*n_elem_proto)));
n_idx++;
}
while (m_idx < m_len)
{
m_elem_proto = av_fetch(m, m_idx, 0);
av_push(ret, newSViv(SvIV(*m_elem_proto)));
m_idx++;
}
return newRV_noinc((SV *)ret);
}
This required a lot of consulting from the perlguts man page and the
Inline::C-Cookbook one. After I ran the script using it, I found out its
CPU usage was reduced to %10, which means the Perl implementation slows it
down a bit. Using a C extension is cheating, but I still wanted to identify
some bottlenceks.
Aside from that I also implemented code
to generate the sequence that compose the perfect squares. Then I
decided to see if I can generate the linear base of n+1 based on that of n,
but I realized that the base generated was lossy, and so it will not give
good results.
I go into an awful lot of trouble for this limited task. I'm positively
obsessed with it. I can't wait for Mark Jason Dominus to publish the
official solution so my mind will be relieved of it.
Gimp Bug
I tried to hack on the CVS Gimp code to get gradient scriptability to work
there. I looked at the gradients code a little, and sort of understood where
it falls apart. Then, when playing with the gradient editor I discovered
a bug which I
reported to the GNOME Bugzilla. It
turned out to be a bug in glib (!) and is now resolved.
19-Dec-2002
Hacktivity
I left's Graham function alone today... ;-) Instead I began with some work on
Quad-Pres (my presentation tool) which involved some minor cleanups. After
breakfast, I discovered it started to rain so I could not go out to bike
today. Instead, I spent some time working on a lecture management system
for the Haifa Linux Club Home-Site.
As of today, the situation is, that every lecture has to be placed and
maintained in several pages. I wrote a Perl script and module that will render
everything based on a set of tables that are updated at one place. Here's what
sloccount has to say about it:
SLOC Directory SLOC-by-Language (Sorted)
1008 top_dir perl=1008
0 CVS (none)
0 dest (none)
Totals grouped by language (dominant language first):
perl: 1008 (100.00%)
Total Physical Source Lines of Code (SLOC) = 1,008
Development Effort Estimate, Person-Years (Person-Months) = 0.20 (2.42)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 0.29 (3.50)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 0.69
Total Estimated Cost to Develop = $ 27,244
(average salary = $56,286/year, overhead = 2.40).
SLOCCount is Open Source Software/Free Software, licensed under the FSF GPL.
Please credit this data as "generated using 'SLOCCount' by David A. Wheeler."
2.42 person-months of effort concentrated in a day...
Afterwards, I spent the late afternoon, vainly trying to re-design the
Syscalltrack Homepage the
way I want it while using only <div>'s and CSS 2 for layout. If I
had been able to use table tags, I would have finished it in no time. After
I visited the #html channel on EF-Net I found a site that accomplishes what
I wanted to do, but was not able to fully duplicate its functionality. I'll try again later tomorrow, or simply fall back on tables.
Reading
I made some progress with "Programming Perl", reading part of the chapter
about Objects. By reading it, I become familiar with a lot of new tricks
and new Perl nuances.
21-Dec-2002
Hacktivity
Yesterday, I started the morning with giving some final touches to the
lectures' management code, and adding an extra future lecture. Then I went on
to handle the Syscalltrack homepage, converting everything to table based
layout, and handling the various issues ladypine had with
it. It took me sometime to understand where things went wrong, but I was
finally able to.
Finally, I did some work on Quad-Pres. I encountered a Permissions conflict,
where I wanted files to be created with a certain group, so they can be
handled by both the user and the httpd-ran process. Two kind Linux-ILers
answered to me how I can do that (with two different methods), and one method
I tried worked so far. (using a chgrp-like system call). The
other
method seems even nicer, and I'll have to check if it works.
Reading
I finished the chapter about Objects in "Programming Perl". Then, I went on
and finished the one about Operator Overloading. That's it, I think.
Life
There was a strong wind and some raining yesterday, so I could not go out
biking again. I stayed at home most of the time, either reading or working
on the computer. At the evening, I watched "Whose Line is it Anyways?",
"Just Shoot Me" and "Third Rock from the Sun", which are given on Friday
nights.
21-Dec-2002
Hacktivity
The newer method using SGID for directories, and a 02775 mode worked
beautifully so I switched Quad-Pres to using. Afterwards, I spent most of
the day cleaning up Quad-Pres and adding some new functionality. I still
did not got to implementing the global installation of the executable, Perl
code, and the common base WML template yet, but it was still a lot of
important work.
ladypine applied most of my changes to syscalltrack's
home-site. I wrote a message to its mailing list
with some other observations. I'll have to see what the other web-masters
think about them.
At the evening, I added the ability to generate a raw list of the future
lectures to the lectures manager. This required cleaning up the code a
little, but I intended to do it anyway.
Life
The sun came out at the late morning, so I went out for a walk (taking an
advice from my mother). Michal was busy all day preparing a Linear Algebra
assignment she got from school, and I helped her out a little.
29-Dec-2002
dmoz Cleanup
Throughout the last couple of days, I settled out on cleaning the
"Configuration Management : Tools" dmoz category. Now I'm left with 17
pending links. Man, this takes a lot of time, but I'm almost finished with
it.
Syscalltrack's Homepage
I started a branch in the Syscalltrack CVS to implement some homepage cleanups.
Here is a report I wrote on what I did.
Meanwhile, it was reported that MSIE displays the border of the navigation bar
in white instead of black. This turned out to be a bug in the CSS stylesheet in
which the text specified border-right : medium solid ; color : black;
instead of border-right : medium solid black. I also fixed it in my
branch.
KDE 3.1
While looking at the KDE archives, I found out that packages of KDE 3.1-RC5 for
Mandrake 9.0 were prepared. I decided to install it. The installation went
quite OK, and my new system is stable. Some bugs were eliminated from 3.0.x
and some were added (as usual).
Strangely enough, I found old bug reports of the same bugs in the
KDE bugs tracker, but then realized
they were very old. So I reported them again.
kdegames from the CVS
Having KDE 3.1 installed made it possible to compile the HEAD branch of kdegames
from the CVS. Took a bit to install, and the out-of-date makefiles (which I had
to run automake with) gave me some trouble. Then the DocBook documents
absolutely refused to compile, so I removed their directory from the SUBDIRS
of the makefile. And naturally, it takes a long time for g++ to compile
KDE code. At the end of the day, however, I had it built and installed.
This enabled me to work on kpat and integrate the changes I wanted their. I
removed the limitation for game numbers only up to 32,000, and integrated the
new Freecell Solver their. gcc was ran with a lot of extra flags (-ansi,
-pedantic, -Wundef, etc.) and it spewed a lot of warnings and complained about
many things. Eventually, however, I was able to resolve them.
Then, while trying to solve a game, I discovered a bug in Freecell Solver which forced me to release the 2.8.3 version of it. I fixed it in both CVS branches, and in
the KDE integration, and now I'm back on track. What's left to do is to
hard-code a nice command line preset into kpat, so it will have less unsolvable
games reports.
Life
It was raining on and off the last couple of days. On Friday morning,
there was a beautiful sunshine and I went to bike. Then it started raining in the afternoon. On Saturday it was also sunny, so I went to a walk in the morning
and biked in the afternoon. Today seems sunny as well so far.
My sister Noa and Dad returned from their trip to England and the States. Noa
had a surgery which was supposed to handle her over-perspiration problem.
They brought a lot of toys, food, books and other stuff.
Michal (my other sister) meanwhile has homework to do. In her "Intro to
Programming" class, she had to write an C function, that removes a specified
character from a string. It can be done in O(n) time by keeping two pointers.
Today, she worked on her Linear Algebra exercises and I also helped her
a little.
30-Dec-2002
Dmoz
Cleanup is complete! The "CM :: Tools" category now has 4 pending links and
they are all inside the CVS sub-category which I cannot edit. Now I can
focus on other things, and just login into dmoz occasionally to see if
new links were submitted.
Hacktivity
Yesterday I worked a little on Quad-Pres (turned exceptions into classes
and wrote a TODO list). I also worked on getting a Freecell Solver command
line preset into kpat and wrote two scripts to do that in the process. Then
I discovered an incompatibility of the command line interface: it changed
a char * argument, which I passed from a global constant. I changed its
code in the KDE CVS and now it is working. In any case, I think it is
a good idea I change the relevant places to const char *.
Reading
Since I last updated you, I read several Camel Book chapters. I'm now in the
middle of Security. Besides that I also started reading the
Namesys Future Vision
paper which I've been referred to by several people. I admit that I did not
fully understand it. And now I also read the latest Linux Weekly News edition,
and several documents that were referred there.
Life
My bike broke when I drove it on Saturday. Apparently, the chair fell down and
blocked the handle that enables to lower and upper it. When my father came
home yesterday's evening he was finally able to fix it, and brought the chair
to its right height. Now I can ride it again.
He did notice that I was out of air. The problem is that I don't think
the current air pump I use is very good, and I have troubles using it.
31-Dec-2002
Hacktivity
Freecell Solver-wise, I busted the warnings
I encountered in the KDE compilation inside the CVS development version. Then
I worked a bit on Kpat
Integration, and made sure the solver instances are recycled.
I also worked on the Syscalltrack home-site. I sent a message to a web-design
mailing list I am a member of to find out if the various versions of Microsoft
Internet Explorer, view it with the proper top vertical alignment. I already
received several inputs that they did, so I assumed the report I got was
singular.
After that, I got a green light to merge my CVS branch into the HEAD, but was
told to watch for a change that mulix did to the HEAD involving
the logo. I applied his change, and then used the cvs update -j command
to integrate my changes. There were some conflicts there, which I resolved
manually. And then I re-built and uploaded the site.
Reading
In "Programming Perl" I finished the chapter about Security, and am now
in the middle of the chapter about idiomatic programming, which is very
interesting.
Life
There were more trouble with the bicycle. As much as I tried to pump air
into them I could not, and I tried two different pumps with both wheels.
When my dad returned home, he again was able to pump air there, and said the
trick was screwing them till the end, and pumping very hard and till the end.
I did manage to walk at quarter to four. In any case, since I jogged the day
before yesterday, then yesterday my feet muscles became sore, and they might be sore today as well.
It rained tonight, and the weather forecast said there are going to be local
rains today. I don't know if it would be a good idea to go biking today.
4-Jan-2003
I left you at last year, Dec 30, or maybe it was the Israeli Jan 1. So
here's what happened so far.
Syscalltrack Home-site
I posted a request-for-comments for the Syscalltrack web-site on
webdesign-l and received
some useful comments. The web-design people are really professional,
and the posts there are of very good quality.
Once thing I noted there is that they are recently littered with posts about
trying to get CSS2-based layout to work. This makes me happy that I'm using
table-based layout for all my site.
In a private E-conversation with Muli and Orna, it was made clear that Orna
is our official web-master and has the final verdict on everything, and that
I am just a web-technician. I also noted Muli that I might resume my efforts
working on the Perl+Lex+Yacc configurator. But like I said to him, I could not
promise anything as I have many other things to do.
Freecell Solver
I also worked on a detailed and elaborated to-do-list for Freecell Solver.
The original TODO list found in the main distribution and in the CVS is very
brief and may only be understood by myself. The reason I did was in accordance
with what ESR says in Homesteading the Noosphere: "If one does
one's braggin through the code, and then says 'Well shucks, it doesn't do x, y, and z, so it can't be that good", patches for x,y, and z will often switfly follow."
Whether it will indeed happen with Freecell Solver remains to be seen. A
problem is that I feel that Freecell Solver is a fairly complete package that
satisfies the need of most "hobbyist" and "professional" Freecell gamers. It
will remain satisfactory even if no added-features development takes place
(just like Perl, gcc, gvim, Mozilla or many other "complete" packages).
Many times when developing it and releasing a release version, I felt that
"damn, after I release x.y.0, all I'd like to do with it is purely speculative,
so I can just leave it at that." But I kept discovering more and more things
to implement. I guess a project never ends, but I still can't see anything
pertinent I'd like to add to FCS after I integrate Patsolve's state ordering.
Except maybe Patsolve's mixed bfs-dfs scan and what Bill Raymond wrote for his
solver (should he agree to convert it to the new Freecell Solver architecture).
Quad-Pres
Not to much in this direction. The autoconf-based installer is working and
functional, but the functionality is still limited and the user documentation
is non-existent. I think I'll now begin to write some lectures and use the
quadp command line interface exclusively (in accordance with the
using your own dog-food principle). That may give me motivation to improve
it further.
I also have some craving to write my lectures using PerlPoint, because it
is very brief. Maybe I should find a nice way to integrate it into Quad-Pres
to create an hierarchy of pages. It has an API, but what could be a problem is
that the HTML it creates is quite non-standard and does not match my
conventions, and it places all the slides in one directory with names like
"slide0003.html" regardless of their organization. But when there is a will,
there is a way. The worse-case scenario is that I'll fork the code, or update
the new version in CPAN.
I should also check other presentation tools (there are dozens of them around)
and rob good ideas out of them to integrate into Quad-Pres. But first, I'd
better release Quad-Pres 0.8.0 and then make other changes I have in mind.
Other Hacktivity
I started worked on a summary
of a lecture about Vim. It's not just as much as the summary as is the full
lecture without the fancy HTML formatting.
Reading
I read Programming Perl and finished the chapter about Perl Culture. This brings
me to chapter V (which is the final one) which only contains reference to
many elements of perl: special variables, functions, pragmatic modules, modules
in the standard distro, etc. The perl meeting is quite close, so maybe I'll just
browse through looking for interesting parts. After all, it is present in the
man pages, and in Perl what you don't know, can't hurt you much.
One interesting thing I discovered about the book is that it is written in Perl
POD. POD is nice, but I never expected one can write serious books with it.
(that's what DocBook is for). Apparently it is possible, but I think I'll stick to DocBook for these things because it is more flexible. I'm still going to use
POD for man-pages and such small-scope documents.
I also saw that there is a module in CPAN to convert POD to DocBook
(and the other way around). This is very cool, and should prove useful.
Life
Our united-states friend Ron and Carol Sekura sent us their new years greeting
along with their usual summary of what they did in the past year. I discovered
this yearly summary is a common convention among Americans. We usually don't
do it in Israel, but I wonder what I would write in mine:
<<<
At January 1, I was hard at work finishing the winter semester, and also tying
the lose end-points with Roy Glasberg's and mine IP-Noise Simulator project. We
eventually were able to finish on time, and our project got a perfect 100
score, and it was considered to represent the Com-Net lab in the Technion-wide
project excellence contest. (eventually another project was chosen and it won)
The spring semester came with many interesting computer-related subjects, that
I constructed especially. They all turned out to be very interesting. Also,
nother project of creating a web-interface for managing seminars Technion-wide.
Roy and I did not have a lot of time to work on the project during the
semester. After my tests were finished (which I did pretty well in them), we
set out to work on the project together, thus "ruining" the summer vacation
once again.
The project was finished, and we eventually were graded 94. Now started the
winter semester, with many courses. My problem was that I kept changing my
schedule, and eventually decided that I'd better take a year off because I've
been studying consecutively for too long. After spending some time without
scholastic responsibilites, I felt freshened up again to resume my studies,
and so notified that I will return next semester.
>>>
Hah! and their cards are filled with trips and family visits, and other
entirely recreational stuff. But this is the life of a Technion student, who
is a computer nerd and does not have a dime for himself besides what his
parents give him. Not that I think my life aren't exciting: by all means what
I do in the Internet, and with my computer is very enlightening to me. I don't
think you have to travel a lot in order to accomplish a lot.
Besides, I did not mention the numerous Haifux meetings, the Welcome-to-Linux
series, my hacks and endeavours, etc. I don't know how many people who are not
computer geeks would find them interesting.
Biking
There were a few good days which I took to bike in the afternoon and possible
take a walk in the morning. It rained very heavily yesterday, though. Still,
in the early afternoon it stopped and there was some sunshine, so I biked to the
end of the University road and back.
6-Jav-2003
SCMs for Linux
I was recently contacted by Rick
Moen regarding the configuration management :: tools category of
dmoz. We discussed whether we should use the word proprietary and commercial
and he also mentioned he had constructed a list of SCMs which I may link to.
Since the list was in plaintext, I volunteered to convert it to HTML. I did
and I sent it to him.
I did not hear from him since until I E-mailed him yesterday. He immediately
replied that he had received my page, and modified it a bit since. He gave me
the URL and I placed it in Dmoz. Moen used quite a lot of Hebrew phrases in his
messages, and I found out from him that he's been studying in the Hebrew
university campus and also volunteered in a kibuttz. :-) From his homepage and
a Google search I understood he was quite a Linux hot-shot. Man, I'm honoured.
Freecell Solver
Someone contacted me regarding Freecell Solver. He said he wrote his own solver
and asked if I want to take a look. His solver was a rather crude C program,
which stored the current position in global variables, used a stack of moves.
When it recursed into a new position it applied the current move on the state,
and when it back-tracked, it undo the move.
This could have been quite smart, but there is one problem. To be solved
effectively Freecell and most game AI programs in general, need to keep track
of the previously encountered state, to determine (preferably with a good
complexity) if a state has been visited or not. His architecture did not have
a state collection, and so did not work properly.
I gave him this advice, and referred him to some Freecell Solver documentation
where he can learn about it, which is a fairly complete Freecell solving
package. As much as I support re-inventing your own wheel for fun, it is
usually faster to improve an existing wheel. He said he'll have some reading
to do, and maybe will have the mood to contribute to Freecell Solver.
On a slightly different note, I should say that I had a chat with
rms about making Freecell Solver a GNU package. He dispelled
some myths I acquired regarding it, but eventually concluded that it may not
be of wide-spread usefulness enough to justify GNUing it. Hopefully, I'll be
able to talk to him some more on the event on Wednesday.
Syscalltrack Homepage
Wow! A lot of talk and a lot of decisions passed either between Muli, Orna and
I or on the Syscalltrack-hackers mailing list. So much, that Muli and I decided
to start a separate mailing list - syscalltrack-website.
After everything, there was finally some hacking. I changed the stylesheet a
bit to agree more with other browsers beside Mozilla. It seems that Konq 3.1.x
and MSIE 6.0 have buggy CSS 2 support. The new stylesheet is still valid CSS 2,
but is simple enough to be processed correctly there. Maybe I should install
Opera to have yet another browser to check on.
I had lesser luck with the screenshot of the console. Since it was compressed
as jpeg it now has some compression noise in it, and I had a bad time
compressing it as a 256-bit png. Reducing the jpeg quality made it look much
worse in natural size. I hope the original loss-less image exists somewhere or
that Muli can quickly produce another one. I suggested taking the text,
putting it in a <pre> block and using some CSS styles to make it
resemeble a console Window. I'm still not sure it's a good idea.
Reading
I decided I did not like "Emily of New Moon" so far, and began to read Daniel
Handler's "The Basic Eight" instead. It's a very funny book, which tells about
a gang of teenagers in San-Fransisco, and one girl who decides to write a
book out of her diary. (or so I understood). Very amusing, so far.
Daniel Handler also uses the pseudonym "Lemoney Snicket" when writing the
"Series of Unfortunate Events". I read the first one which was quite OK, but
a bit depressing. I decided I won't go on, because the rest of the book are
pretty much of the same vain, (sad ending, and this Count Olaf character
terrorizing the protagonists).
Women in Linux
I have already replied to kilmo's response to my comment on the
HOWTO in private. Maybe he misunderstood what I meant to say, or maybe takes
a completely different opinion. I still, however, take the stand that the
HOWTO's proposed strategy was deficient despite the fact that some parts of it
were good and enlightening.
10-Jan-2002
Biking
After a long of time of not seeing here I encountered the girl^H^H^H^Hyoung
woman jogger whom I encountered for many times. As usual she was listening using
some ear-phones to a CD or mp3 player, and as usual she crossed at red lights.
When we reached the standard friday Flower-stand on the pavement, she began
walking and did not resume running. She is a very fast runner.
"HOWTO Encourage Women in Linux - Conclusion"
First of all regarding my status in the Linux club: it is safe and sound, and
no-one is going to outcast me as I gathered. People just find my opinions
unusual which is true. As someone whose philosophy consists of
Neo-Tech, Objectivism,
what ESR said in the Catherdral and the Bazaar series, and many extensions of
my own and others, I hold quite unorthodox opinions. I try not to preach
them intensively (that's entirely contradictory to general conventions), but I
often expresses them. Then, people complain: "what the hell are you talking
about? This does not make sense at all!" And then I can show that they
are logically deducible from more basic premises.
I don't see conformism as something which is necessarily beneficial.
Everybody around me use Windows, while I use Linux almost exclusively. This is
just an example. So, to quote what I said, and is now in mulix
's new signature: "My opinions may seem crazy. But they all make sense.
Insane sense, but sense nontheless".
But back to the HOWTO. After a nice online correspondence with the LinuxChix
issues mailing list, the following conclusions were reached:
-
The HOWTO was mainly directed at men who wanted to know how they can better
attract and accept women to take part in their Linux User-Groups. It was
not intended for women. As such it is OK.
-
A first draft of a similar guide for women, on how to cope with abuse from
their male peers, is now being written by a distinguished LinuxChix member
by the name of Poppy (it is her first name and please don't misspell it).
-
I still have some problems with the HOWTO, but they are relatively minor.
Namely, I think it was not made clear enough that a similar document for
Women on how to cope with abuse would be written, and that it is intended
for men. Furthermore, it gives too many guidelines, and you can easily not
see the forest for the trees. Finally, the claim that a minority of
"abusive" members can reject members from an otherwise perfectly
enlightened LUG was not something I liked very much. And the only real
solution is for Women themselves to stay away, ignore, penetrate or
otherwise cope with the abuse of such minority. After all, despite telling
blond jokes, a Linux hacker can be a fully capable and sexually enlightened
person. One member of Haifux externalizes a lot of obsession with sex, but
I don't think he is chauvinistic. And he is a very old, knowledgable and
capable hacker.
I am sorry if I criticized the HOWTO too harshly, but it was just an opinion I
expressed here. Things I say in my diary are subject to change, as everything
as I say. (I change my opinions sometimes). I hope no-one was too offended by
it, and I hope the conclusions I reached now are even more enlightening.
Some other anecdotes from the "encouragin women" fiasco
What happened was that I wasn't subscribed to the mailing list, and the
moderator had to acknowledge each of my reply. Eventually she got tired of
it altogether, and asked to subscribe without actually receiving messages
(which was possible using the Mailman interface), I did just that. (from now
on I'll know to do it in the future). I'll stay being able to post because this
may come in useful
One woman kept insisting that she dislikes men trying to hit on her, because it
happens way too often, and has become annoying. She later said that she hated
her body, and wish she were not attractive at all and that many women felt the
same. This is opposed to me who like my body very much (even though I need to
lose some weight), and feel an ego-boost whenever a woman makes a pass on me, or
flirts with me. (which does not happen much)
I claimed that women should be more sexually liberated, be proud of their
attractiveness, try to be as attractive to the MOTOS (or the MOTSS, for PC-ness sake), as possible. While they cannot change the fact that men hit on every
female that moves, they can at least treat it like criticism: you receive a lot
of criticism daily, but most of it is quite useless. However, sometimes it is
enlightening and causes a shift in opinions or behaviour. If an exceptionally
attractive (not necessarily only physically) man hit on them, they should
still be proud. But this is all speculation.
(she did confessed that her beloved grandmother passed away recently and so may not be in a perfectly reasonable status psychologically)
One thing we could not agreed on was this: I said that hitting on a woman on
the first time she appears at a club meeting was not a nice thing to do.
However, I believed that after 5-10 meetings when she gets to know everybody,
it is perfectly OK for a fellow LUG member to ask her on a date. (not making a
pass on by any means. A simply suggestion). She claimed this too was
illegitimate. I responded like this:
<<<
Can I not ask a fellow university student on a date? Can I not ask my
neighbour on a date? If I meet a woman at a Wedding/Bar Mitzva/etc. can
I not ask her on date? Can I not ask a woman I'm meeting at the bar on the
date? (reductio ad absordum, if you did not notice)
>>>
I think she was taking it too far. I hope that there will soon be a roughly
equal number of men and women on LUG meetings and they will become a good an
event to ask somebody out as any. But as she noted, there were appropriate
places and appopriate times.
Another issue was the etymology of the word "girl". I referred to
Chen Shapira as a girl,
and was immidiately flamed for using this word, which they claimed was
derogatory. I went on by analyzing every posssible alternative (damsel, maiden, chick, lass, lassie, and even consulted M-W for maid, quail and wench) and
found none of them to be as good. And "young woman" and "young lady" are two
words. Ironically, in Hebrew there is a perfectly good word for it - "Bahura",
which is the feminine version of "Bahur" (= a guy) with no derogatory
cronations at all.
Ironically, Chen snapped it me when I told her that I referred to her as girl.
"Do I call you Boy by any chance?" (which was what the LinuxChix girl told me).
Then I said, there wasn't really any appropriate word and we started discussing
derogatory origins of words in Hebrew and English. I finally asked her if I
can call her "Hatikha" (a word for female babe in Hebrew, which was not very
derogatory). And she said, "if you really think so - fine.". ;-)
I asked my sister Michal (who is 23 years old) if she is willing that someone
refer to her as "girl" and she said that it would be perectly OK. Maybe it's
because Chen used to be a feminist (or some other women-lib activist) and so
was still a bit edgy. Michal, OTOH, was never obsessed with women
discrimination, but is still very intelligent and competent.
One should note that the word "guy" or "guys" can sometimes be a substitute for
"girl". "Rachel, you're a nice guy". "Hey guys - listen". But the following sentence would make little sense "I met a guy at the bar, talked to her and she
gave me her phone number." Etymology is fascinating. Seriously.
There was one point where I noted I'll just listen and not contribute much
because it was spending too much of my time and I had plenty of other things to do. I noted that it was nice of my original post in the first place and to
respond to their comments. But I was not responsible to do it in any way.
(it was their privilege, not their right).
The IBM Event and the RMS Dinner
Hmmm. So much to tell, but I already spent too much time on this dictionary.
I'll tell it some other time. Just a quick note to mulix: I
deliberately introduced myself to Ted Ts'O as "Hi! My name is Shlomi Fish. I'm
a Linux user and developer who developed Freecell Solver, a program that
attempts to solve games of Freecell and occasionaly makes a good job at it"
(and that's it). The reason I preferred it over "Hi! Shlomi Fish! <shaking
hands />" is because I knew Shlomi Fish would be just another random name
for him which he probably would not remember (I know I wouldn't), and with
this introduction he can at least associate me with a relatively successful
open-source project. A purely strategical choice. I'm sure you could have
introduced yourself as "Hi! I'm Muli Ben-Yehuda! I work in IBM as well here in
Haifa. You may know me as the Syscalltrack Guy" Nothing wrong with that.
Later on, I met Mr. Ts'o outside and we discussed the possible adoption
of my "IP-Noise Project" (which is specifically Linux-based), The Ken Thompson
"Reflections on Trusting Trust" effect, and GNU/Linux on PDAs, home computes
and stuff. You can ask him for what he thought of me, but he did not seem one
bit annoyed by me.
Syscalltrack Homesite
I decided to convert it to XHTML 1.0 Transitional so it will have a more strict
syntax. I indeed found some errors in the validation, but it went very quickly.
You can see what I did here. At least I managed to get some hacking done. *sigh*
12-Jan-2003
CLAN - The Comprehensive Linux Archive Network
I pondered an idea for this for some time. Yesterday I went to
irc.kernelnewbies.org there, found riel and some other
people and discussed it with it. He liked it so I wrote
whitepaper and posted
it to the Linux Kernel Mailing List. Tzafrir Cohen gave me some useful
commentary. What it does basically is allow to download, compile and install
kernel modules incrementally while resolving dependencies. Something
like Perl's CPAN or Debian Apt meets the Linux Kernel.
Right now, I'm pondering how to implement it in a robust enough way, and maybe
should start hacking on a SPEC. riel said hosting should not be a problem,
but that I'll need to make sure I'm serious about it. If anyone wishes to do
it instead of me, (or bring out ideas, SPEC portions, etc.) feel free to.
On the IRC, riel and some other guys also discussed Perl modules and objects
and what you should use them, and also a system they wrote at Connective (where
Rik-van-riel) works that is something like dmoz meets Slashdot, and he claims
makes the support guys job much easier. He said something about the code being
in Portugese (variables, function names, comments and all) and that they wish
to clean it up before they releas it. I've seen a Freecell implementation (with
its own solver) code written in French, and it was not something I could begin
to understand. use English;!
IBM Event and RMS Dinner
The lectures in the IBM Event where cum-si cum-sa. The Israeli Organization
of Information Engineers guy told a nice joke, and made a useful comment
about open-source in the government. Basically, the government should not be
forced to use OSS because it can stand on its own merits technically and
philosophically. However, I do think the government should make sure its
users will not be forced to use proprietary software which they'll have to
pay for.
An IIS and Oracle site that outputs valid HTML and looks fine in Mozilla, Konq
, Opera, etc. is acceptable. MS Word documents for download (without PDFs or
HTML) are not.
Next came Moshe Bar's lecture which confused the hell out of the terms "free
software" and "open source software". Generally Moshe Bar's lecture are pretty
good, but this time I was very disappointed. I tried to correct him sometimes,
and he dismissed me and there's a discussion of it in the Linux-IL archives.
Next came Theodor Ts'o lecture. He is not head of the IBM Linux Development
Center (or something like that) and talked about everything IBM is doing with
Linux and Open-Source. I hope Mr. Ts'o won't take it the wrong way but the
lecture was too long and there were too many names and numbers and not enough
meat. I left it a couple of times. (but note my impression from Ted below)
Next was a brief but to the point lecture about PHP and Zend Inc. which was
very interesting. I did not learn anything too new but it was interesting.
Next came a lecture about the Eclipse IDE project. The project has an
interesting design and goals and is widely deployed, but since I'm not an avid
IDE user (give me konsole, gvim, gcc, make, gdb, perl, perl -d, Subversion, etc.everyday) and found Eclipse exteremely unconventional to what I was used to, I
went away. I think the lecture was interesting, though.
I met Ts'o outside, and we had a few chats. In one he explained to me that ext2
uses the standard direct, indirect, indirect->indirect, etc. convention that
is common on the UFS, which I learned at at the course Structure of OS in the
Technion. We also talked about my IP-Noise project and if he can recommend
anyone who knows where I can forward a "call for adoption" notice. He instructed
me to E-mail him which I did. Another chat (between him, me and several other people) was on Linux for the masses, Linux on PDAs, Life, the Universe and
Everything.
He calls Linux "liynex" but otherwise is one hell of a nice guy from my first
impression, and a good speaker. Ted, next time, please include concrete
examples in your lecture. All those graphs, facts, figures, etc. bored the
hell out of me.
Right afterwards was a Linux dinner which we decided to do with RMS or without
it. (he did eventually came straight from the airport). I was disappointed from
the RMS-part of the dinner, because I did not get to talk to him too much, and
was pre-empted. Other people were disappointed from me because I did not behave
very well. What was interesting was the company.
I met two Hebrew University students who work on the MOSIX team. I talked with
one of them about open-source and then mentioned the Cathedral and the Bazaar.
He said he printed it the same day, and intended to read it. I hope
"Amnon Barak" reads it as well, and MOSIX will become a true open-source
project and not just one of those projects with a free software license. Taking
Freecell Solver - I did more than 95% of the work on the code. But it would
have advanced nowhere, if it were not for the users' feedback, motivation,
encouragement, ideas, compliments and even the occasional contribution. I'm not
sure it was 100% Bazaar-style, but it was quite close. And even in most
Bazaar style projects the core group is very small - usually one or two people.
openMOSIX was supposed to be a MOSIX fork that was done bazaar-style. Now Prof.
Barak is a bit possessive about the source, and so shined away from it. I do
hope these projects merge in a certain point into one Bazaar-style project
headed by Barak (or an anarchy-style project like KDE). But at the time being
Prof. Barak won't accept patches to the code even if they are perfectly fine.
I then met Mark Veltzer and few people I did not know, and started talking. We
began discusssing the "Microsoft - Good or Evil" endless-discussion. I maintain
that Microsoft should be left alone and suffer from their own mistakes and
dogma. I also believe Microsoft is smarter than many think it is, and eventually
port stuff to Linux, and adopt a more bazaar-like development style of its
software. I don't think they will ever go entirely open-source, but I think they
can survive to one extent or the other in an open-source dominated world.
Making free software is not about getting rid of Microsoft. It's about changing
the rules of the game and making people more free to choose their software,
and better be aware of their freedom. As was noted in the conference IBM is the
god-mother of proprietary software, distributed such a long time before
Microsoft, and still does. It is now one of the largest open-source developers.
I think Microsoft can adapt as well as IBM can. It dumped DOS in favour of
Windows and MacOS, and can dump both in favour of Linux and MacOS X. This will
give them all other UNIXes for free. (just re-compile) And Windows has become
so over-engineered, over-complicated, over-x86-specific, over
backwards-compatible, over-bloated, and over-un-understood, that they have
more profitable pathes to do with the elite group that is supposed to maintain
the Windows XP code. (which is the Linux equivalent of the kernel, glibc, X, gtk+, half of GNOME, bash and a lot of the GNU fileutils etc., Mozilla (IE within),atd, CORBA, and maybe other things I forgot).
Granted, some things are nicer in Windows. Multi-threading for instance. But it
would take less time to tweak gdb to better support threads, than it would be
to fix all the Windows brain-damage around. I once preferred using Win98 over
Linux for doing non-development stuff. Now I simply can't stand Windows, not
even Windows XP. My Mandrake system with KDE 3.x and everything on it gives me
so much more opportunities and is so much more comfortable. I can easily show
that there are things that are trivial in Linux which are not possible in the
Windows XP as it ships from Redmond. Many things.
If Microsoft wants to beat Linux they would have to seriously hack on the
already bloated code. But sometimes, if you can't beat them - join them, and I
think that's what they'll eventually do.
24-Feb-2003
"Open Source, Free Software and Other Beasts"
I wrote an essay aims to introduce
open source, and free software to beginners. It covers the history, the
meaning of the terms and some issues and myths. It's a bit longish (14 A4
pages), but otherwise aims to be encompassing enough.
Chen Shapira has reviewed the early versions of the document, and gave some
very essential commentary (including how to trim them - they were even
longer than now). nyh summarized the history of early UNIX
and the BSDs for me, so I'm grateful for him as well as I was able to use
it and link to it.
Hope you enjoy it and let me know what you think. At the moment, I've started
working on another document titled "Free the Mouse!". It is a critique of
current copyright law, a proposal for modification, and an explanation why
it would benefit both consumers and content owners (large and small).
IRC Chatting
I spend quite a lot of time recently chatting on the IRC. I use the
irc.kernelnewbies.org network, and usually hang on on the #offtopic channel.
It's a cozy little channel with a good SNR, and some very enlightened and
interesting people. It's a way to procrastinate I suppose, but then again,
I don't have anything critical to do until I start studying.
wli and I have actually fought about our keyboard preferences
(Sun vs. PC). wli seems to be very knowledgable and interesting. It turned out
that as opposed to me he started working on computers from UNIX workstations,
and later switched to Linux on PCs. I, OTOH, actually worked with DOS, Windows
3.1, and various Win32 variants. I think that you appreciate UNIX much more
after you work on some really sucky OSes like that. I kept knowing they were
bad, but not knowing why, until I started working on UNIX, where I saw a
sensible system for the first time in my life. :-)
Life
It's still raining on and off. Yesterday, I was able to bike twice, but today's
its raining. I'm going to start studying a week from now on Monday. I eventually
decided to take a semester off instead of a year off. At one point I believed
I had enough recreation, but now it seems that I'll miss having all this
free time. Oh well, the Summer vacation is not far away, and there are some
holidays and weekends as well.
I do wish to be able to hike sometime in the springtime. It's been a long time
since I've been outdoors.
27-Feb-2003
Life
Still raining on and off, so not much biking for me. I'm spending a lot of
time on the IRC lately, but still can get some useful work. Besides, when
I start studying again this Monday, IRC would not be as accessible and much
less recommended. So I'd better make the best use of it now. And even wasting
time is good if you're enjoying it. ;-)
My father and I went to buy a new desk lamp for my Haifa apartment, right
before he went to England. The light bulb holder there is broken, and so
the room would be completely dark without it. Mom and I are going to set
things up in the Haifa Apartment this weekend. At the time being, I don't
spend too much time thinking about studying, but I suppose it will occupy
quite a lot of my time, soon. Hopefully, this semester, should not be too
hard.
Hacktivity
Worked a bit on my
version of the Perl beginners portal, a bit on revamping the perl 5
perl*.pod man pages, and some on
DocBookifying
the OSS/FS document. I ran into a few problems with the PDF generation
of DocBook (namely that Hyperlinks and footnotes are not functional), and I
hope the good people of the DocBook-apps mailing list would help me soon.
Some IRC, E-mail, etc. Musings
riel is moving out to
New Hampshire, while being in Brazil at the moment. The link is quite
informative, so I suggest you read it if you are wondering about this issue. He also confirmed the fact that the core Connectiva distribution was open-source,
much like RedHat, Mandrake or Debian. According to LWN, some non-free
distributions proved to be a bit risky after they become defunct. Suse and
Caldera are doing fine, but I still would not trust them.
I noticed a certain pattern with the #perl channels on the IRC. In EF-Net,
#perl is reserved for expert talk and no CGI/Web/Net::IRC/newbie questions
are allowed. That is reserved for #perlhelp. Of course, a lot of newbies
log on to the IRC seeking perl help, and go to #perl, and without reading
the subject-line (Rule #2 of GUI design: people don't read!), ask one of
those common questions there. And I instinctively try to help them, only
that both of us get flamed later on.
I think it would have been a better idea to create a #perlguru channel
and designate #perl as a channel for everything including newbie questions. In
Undernet, there's this permanent profile with a few scripts, that bans anybody
who mentions the word CGI... I was eventually banned after using "c g i" and
"c**" and posting a perfectly innocent URL. Again, something that could be
remedied by designating #perl as a channel that accepts Newbie questions.
This all reminds me of Linux-IL and how newbie questions used to cause a lot
of flamatory reactions. I think the situation is much better now there in this
regard.
I visited #iglu at EF-net as well, which is the channel of the Israeli Group
of Linux Users. I had a pleasant chat there. Someone asked me about Perl's
XML writing capabilites, and I asked him what was wrong with print.
Eventually it turned out he was used to a Visual Basic API that made sure
the written file was a valid XML at each point. I.e: by appending all the
closed tags to the end of the file. This requires an extra overhead, and I'm
not sure is a good idea. (in a worst case scenario, it can increase writing
from O(n) to O(n^2) for a UNIX file-system) Even so, implementing such an
object should not be too hard.
I managed to help someone, I met on the IRC with a Perl CGI script he
needed to write, and ended up writing the entire script and a form to power it
for him. Which wasn't hard because all he needed to do was append a line to a
file. It eventually turned out he was an Israeli, and we ended up chatting some
more.
Finally, a flame-war broke out in Linux-IL
regarding whether we as Linux developers should be considerate of the needs
of Windows users as well. (e.g: use PDF instead of PostScript, maintain a port
of the software to Windows). I'll let you be the judge.
5-Apr-2003
Studies
Technion studies have began. I'm taking four courses this semester. Three
of them were taken out of understanding that they would probably be easy to me
and the other one (Micro-computers) interested me, and was also taken by a
fellow Haifuxer. So far, I have quite a lot of homework assignments, but I
still have a lot of free time. (maybe too much for my own good). I no longer
have the Com-Net workstation due to the fact I no longer study there, and
could not get a work there. This leaves me with the Technion facilities, which
are inadequate for my needs at best. :-(
Perl Golf
I've been playing quite a lot of Perl
Mini Golf lately. Perl Golf is a contest in which the participants
try to write the shortest (character-wise) Perl program to achieve a certain
end. This creates highly compressed and obfuscated programs, with some very
unorthodox tricks, and lack of attention to conventions.
Perl Golfing is an addiction in which I routinely use gvim to edit two lines,
trying to make the second one shorter than the original. I also tend to
scan the core perl man pages a lot looking for clues on how to make it shorter.
So far, I've been doing relatively well, but there always seem to be some
people who can find better (or slightly better) solutions, and it's a bit
frustrating. Oh well.
IRCing
I spent most of yesterday hanging on the IRC. (despite the fact that I have
a Micro-Computers exercise that I'd like to prepare by myself this weekend).
I was able to help an Apache newbie (who actually uses Slackware and knows
his way around Linux), with the Alias and ScriptAlias directives. I also
discussed E-mail MTAs with a couple of people on the Perl channel. Then
there was naturally, #offtopic on irc.kernelnewbies.org, in which topics
ranged from the latest TPC-C results
for 32-way Itanium 2 machines running Windows 2003, to SMP machines in general,
to the history of ancient Europe, to Linguistics. In short: Life, the Universe
and Everything. Off-topic indeed.
Certification
I certified wli as Journeyer, because of his work on the
Linux kernel, and his vast knowledge. (I also taken into account the fact
he writes his scripts in Haskell). He is already certified as a Master,
but I'll have to know him better than my superficial familiarity with
him to do so.
Hacktivity
Not much to show for, unfortunately, but quite a lot of small, relatively
useless stuff. Been working on my Haifux Lectures Manager a bit. And then
I wrote google.pl, a CGI (or mod_perl and friends) Perl script that acts
as a mirror for Google. (I did not release it yet). I also made a coverage
of the bugzilla bugs I reported, and found out most of them could be
overcome or have been resolved. Kudos to the Mozilla team for the great
work.
Per request of my Debian package maintainer, I updated the Freecell Solver
config.guess and config.sub files to the latest avaialable from the
GNU site. It took me quite
some time to find out how to get them properly, and someone on the
Autoconf mailing list helped with that. It is strange that libtool 1.4.3
which is quite recent does not contain them, but rather very old ones. Who
can tell the ways of the GNU?
Some Thoughts about UNIX TCO
A recent Slashdot feature pointed to an Enlightening article about the TCO
of a system with one central server and several X terminals. I've seen this
X terminals, which can only be used to connect to a server over the network,
and realize they require almost zero maintenance in comparison to
full-fledged workstations. As far as a university is concerned, by using a
server, one can install things in only one computer and allow everyone else
to enjoy it, while a corresponding client-server architecture, would require
installing packages on several different workstations somehow.
Now in a workplace where everybody administers his own workstation, the second
option may actually make sense. But a university has farms with unpriviliged
access. In the Technion we have many farms with such client-server
configurations, and the software installed on it, is inadequate for the needs
of many (if not all) students. And naturally, it is impossible to install
new one, because it requires a system-wide installation. Strangely enough,
there are also UNIX farms with a multiple workstation configuration, that
suffer from similar symptoms as well. This X-terminals configuration sounds
like a solution with a TCO from paradise, and it's interesting that the
Technion did not deploy it widely.
17-Apr-2003
The Go-Linux Conference
A conference for promoting Linux in Israel took place in the Hilton Hotel some
days ago. There had been a lot of buzz about it beforehand, and a lot of
prepartions. I believed I was going to study throughout the entire today, so
I did not took a very active part. I eventually attended the event from about
midday, after attending a class in the morning. I must say it went extremely
well and everybody seemed to think so as well. Hackers and Suits integrated
nicely to give an exciting yet accurate depiction of the Linux world and
potential. The conference was financed by People and Computers and many
industrial companies.
I came mostly to talk to people I know, but also attended a presentation, the
free software developers panel and the Perl-IL meeting. I bought a Perl in
Israel T-shirt for 50 NIS, but forgot it there when I exchanged some books.
(the Israeli Perl Master have taken it, so I'll get it eventually).
Refer to the Linux-IL mailing list archive for April and
my record of it.
Perl Beginners Site
My Perl beginners site moved to a more
Permanent Location. As for the
standard rant+suggestions regarding the suitability of the Perl online world
for newcomers: I was not happy from most of the comments I received in the
Advogato post. Most of them beat around the bust in one way or another.
I am going to do my best to improve the situation and hope others would take
notice of it as well. At the moment, too many resources of the Perl world are
claimed by too few entities. I'd like the situation to improve.
24-Apr-2003
Perl Beginners
I eventually posted a link to the essay to the
perl advocacy mailing list.
There I finally received a useful discussion of it. I'm not sure if I was
able to convince anyone who was not previously convinced, but the discussion
was to the point and of high quality.
I also added quite a lot of new things to the
Perl Beginners site. I posted
a link to it on a web-design mailng list I am a member of, and received
a useful comment with a lot of suggestions for modifying the style and content.
I applied most of them, and planning to apply another one in a different
variation. (dedicating parts of the site for the various common uses of Perl
like CGI, QA, Bio-info, Sys Admin).
Homework
My Software Systems partner drove to my Tel-Aviv home to sit on the home
exercise. We had to write a rudimentary spell checker in VAX-11 assembler.
It took us all day, but OTOH we ended up talking a lot about various things,
and also took a long lunch break, to grab a byte in the commercial center, and
to recreate. At the end of the day, it worked and we were very happy.
The simulator we work with is written in Turbo-Pascal with the old Borland
style look, only a much worse behaviour and some exotic bugs and
misbehaviours. I was told that a pair of students was assigned to rewrite it
for Win32 using MFC, but they are not finished yet. What I could really use
is a UNIX-style gdb-like application, with a basic scriptability and an ability
to automate everything. As it is, over-GUIing it really decreases from its
functionality.
Since the vacation involved a lot of Jewish holidays, my partner for Intro
to Software Systems (a different course with a similar name, mind you) and I
decided that we solve the exercise independently and then compare them. So
in the recent days, I say on implementing the implementation of a linked list,
as well as a stupid dating service management that uses it. The various
operations, all have sub-optimal complexity if you ask me, but we were not
requested to do otherwise. "Oh ANSI C, ANSI C! If only you were Perl..."
Now I still have the written part of it, which should not be too hard, and then
the exercise in Financial Management. Financial Management is a relatively
technical and dry course, but one that explains many important financial
concepts such as interest rate, inflataion, loans, etc. and how they work
behind the scenes. So far, I can wholeheartedly recommend it.
Impressions from the Mozilla Culture
It turns out Mozilla has spawned a great deal of culture and add-ons. I
installed the Mozilla Google Bar, which is the Mozilla equivalent of the
same offering from Google Inc. to MSIE. It's really nice and handy. I also
downloaded a web-developers toolbar from somewhere, which is also very good.
Finally, I took a look at Cascades, a CSS editor for Mozilla. As it turned out,
the page was an old leftover and its functionality was already integrated into
the core Mozilla. The CSS editor is handy and gives a nice dynamic
functionality. My only problems with it is are that it: (1) bloats the CSS
stylesheet, (2) does not preserve its indendation, (3) has no decent HSV colour
picker. Still, I could rip the styles I edited and apply them manually to my
stylesheet, so it's better than nothing.
I am very glad that Mozilla spawned such rich culture, and I think what I
discovered is just the tip of the iceberg. Is there a similar case with
Konqueror/KHTML? Is it possible to program plug-ins and extensions for it
in Python or in Perl or will C++ have to do? With Mozilla, many of the things
were programmed in XUL and JavaScript, which is a much better idea as far as
the programmer is concerned than messing with C++.
08-May-2003
Studies
I sat on the "Financial Management" exercise this weekend, and met with
my partner on Monday and was able to finalize it then. I also worked on the
Micro-computers exercise. I solved Questions 1,3,4 but I don't know how to
solve question 2. Maybe my partner will have a better luck.
This Tuesday my partner for Software Systems and I sat on the project and
the third home exercise. We finished an implementation for one part of the
project, and also part of the home exercise. We should meet tomorrow as well.
There is now a vacation that started on Tuesday and will end at the Weekend,
due to the Israeli Independence Day and so on.
Hebrew Glossary for Perl
I started writing a Hebrew
Glossary for Perl. I wrote it in XML format and it took me some time
to learn the Perl XML::LibXML module to get it to render it into HTML. Then,
I also wrote a DTD for it, and prepared an XSLT stylesheet.
When I tried to view the XML in Mozilla, I got a blank page. I spent the better
part of yesterday trying to get it to work. The problem turned out to be
in the "Content-Type" HTTP header that the browser sent for the .xsl file,
which wasn't "text/xml" as it should have been. After I fixed it using a short
.htaccess file, it worked perfectly. <sigh />
So I filed a bug report for it
in the Mozilla Bugzilla but it was closed, because that's what should happen.
<sigh /> again.
06-Jun-2003
Studies
I handed out the "Intro to Soft. Systems" exercise, a Micro-computers exercise
about MMX, and a Financial Management exercise. Now I am working on another
Financial Management exercise, and will meet with my "Intro to Soft. Systems"
partner on Monday to work on the next exercise in that subject.
On Sunday, I'll meet Ran to work on the "Software Systems" exercise and
project. Last time, we ran into problems and after I talked with the T.A. it
turned out that we did not enable the interrupts functionality in the
simulator. After it was enabled everything worked fine. <sigh />
Hacktivity
I was able to get several things done. First I created
a QuadPres Bundle on CPAN to install the modules it requires. It turns
out the dependencies of the bundle, are specified in the CONTENTS POD section
in the module, and it took me some time to figure it out.
I also worked on "use strict"ing the main script of
the Chiq-Chaq Wiki
Implementation. I finished doing this and now I'm going
to fix the HTML to make it validate.
Perl
I discovered that the <> directive does not do the
same thing as <STDIN>. While the second reads from standard
input, the first one tries to open files on the command line one by one.
There's also a new Perl Golf - Boggle. I'm doing pretty well at it -
I'm in 5th place. But there's still room for improvement and I'm stumped.
Life
My sister Noa has gone abroad the night before yesterday. She will be there
for three monthes on a trip to South America.
21-Jun-2003
Studies
In the "Software Systems" front, my partner and I showed our presentation
to the lecturer, and he had some issues with it. To resolve it we sat on
it on Thursday, and revamped it greatly. We sent him the modified version,
but did not hear from him since.
Right now I have homework pending in Financial Management, and in
Micro-computers. The latter I only have 20% of the score left to do as I
alredy did the wet part.
I attended the various lectures and tutorials given this week. In the Software
Systems lecture, a student gave a presentation on a device he wrote using
Blue-tooth and a TI DSP, and the lecturer told us about what the company
he founded deals with. (connecting variable data sources together to integrate
information)
Hacktivity
I gave some touches to the list of mailing lists manager. I had to fix the
build, and integrated building an RPM Spec. I also worked on Quad-Pres a
little. Since I needed to render the presentations into HTML that is
viewable on the hard-disk, I created a script that does just that. All
it does is append index.html to links to directories. At home
, I extracted it into a module, and placed it on CPAN.
I called it HTML::Hard::Disk. However, I received a reply to the namespace
request that was sent to the CPAN module maintainers list, in which someone
claimed it was not a good name. He suggested HTML::LocalizeLinks, and
I think I'll go with HTML::Links::Localize.
In any case, I integrated its functionality into Quad-Pres, and will
probably release a new development version, and announce it on Freshmeat.
30-Jun-2003
Studies
I had the test of Financial Management yesterday. I did not understand the
first part at first so I decided to move to the second part, which was easier.
Then I returned to the first part and this time understood it and was able
to solve most of it. Now I have some vacation until the next test on July 14.
The registration for the Winter semester is today, and I hope I can make
a convenient schedule with Thermodynamics and another subject. I'd like not
to have an apartment near the Technion next semester, so I need good times.
Knoppix
Someone testified on GNUbies-IL that he could not run a Knoppix CD he
burned. To see if it happens for me, I downloaded and burned the Knoppix
CD. I ran it on my computer, and it ran perfectly fine. I was impressed
from it a great deal. I was able to use KDE, surf the Internet, see Java
applets, and listen to mp3s. Very impressive.
Now it seems either his CD was not burned correctly, or there's something
wrong with his computer. I'll check that out in the coming days.
Hacktivity
I fixed the style on my Dmoz categories. When I had tried to apply to a new
category, I was notified that the style on some of the entries did not
correspond to the dmoz guidelines. So I tried to remedy it.
Other than that, I worked a bit on Quad-Pres, and added multiple themes
functionality to it.
Reading
I finished the chapter about SVG animations in "SVG Programming" and am now
in the beginning of "Integrating SVG with HTML".
02-Jul-2003
Subversion
The day before yesterday I wrestled with two Subversion problems. The first
one was that whenever I tried to check a file out of an https:// mounted
directory, I got a strange OpenSSL-error report. An old version of Subversion
worked perfectly fine. It turned out to be a problem that the WebDAV library
was not compiled against the most recent version of OpenSSL. A re-compilation
of the WebDAV library solved the problem.
The problem I encountered afterwards was that Subversion kept rejecting my
repository's certificate. In order to solve it I had to add a pointer to the
server's .pem file to the Subversion configuration file. I mistakengly used
the wrong configuration file, but eventaully Ben Collins-Sussman corrected
me on the IRC. Then I discovered my certificate got expired, so I created
a new one that will be good for the next 30 years, and re-tried.
This whole business took a few good hours, but now everything is working
and I'm happy.
The IGLU Server
What kept me busy yesterday was an entirely different problem. It turned out
that the Israeli Group of Linux Users's
web-server version of Squishdot had
a cross-server scripting problem. Upgrading it requires a lot of manual steps,
and we got sick of Zope anyhow. So I had to install a new content management
system. I first tried phpBB, but could not get it to look more or less like the
original Slashdot-like way. So I switched to PostNuke, and managed to configure
most of it yesterday and today.
Studies
I finished the last "Intro to Software Systems" exercise today (yay!). I'm
enjoying the vacation before the next test.
Biking
I kept thinking my bike had a flat wheel. Yesterday, I went to take them to the
bike fixer and it turned out there was still a lot of air in the wheels. So,
I tried to fill the rest of it. However, in the front wheel, the filling caused
all the air to come out. Aaarrggh!
Failed Linux Install
The one who contacted me about Knoppix, called again, and he gave me a life
to his apartment. I brought my Knoppix CD and the Mandrake CDs with me. It
turned out his computer was constructed out of "components he found in the
garbage". Thus, we could not get either Knoppix or the Mandrake installation
CD to load, no matter what we tried.
I invited him home to see my Linux system in action. When he left he was quite
impressed from it. I'm still disappointed that we could not get Linux to
install there.
05-Jul-2003
mod_php using Qmail
I encountered some problems on iglu.org.il with PostNuke. Apparently, I could
not send mail. After I upgraded php to the latest version, I discovered that
I could send mail from the command line, but not from mod_php. By "tail -f"-ing
the web-server's log, I found out an error: "qmail-inject: fatal: read error". I searched for it and eventually found a post that says how to resolve it.
Worked like a charm.
Biking
I tried to fill air in my bicycle's wheel, and it worked. Hallelujah! Now,
I've already went biking twice, and it's good to be back in the habit. I hope
that's the end of the phantom problems with it.
Hacktivity
This and that. I've been trying to find some Subversion bugs to resolve, and
so far have been only bugging with it the Subversion development list. I also
wrote a Perl script to submit a site to dmoz,
seeing how my browser gets stuck doing that. The script seems to submit
everything, but the site does not arrive at dmoz (checked it with my own
category). Then I discovered there is a better way for me as an editor
to submit sites.
10-Jul-2003
Studies
I got 93 as the final score of Financial Management. (yay!). OTOH, I did not
do too well in the last exercise of Micro-computers. I'll have to see the
T.A. about it. I also solved some exams for the "Intro to Software Systems"
test and prepared part of the next Micro-computers exercise.
Hacktivity
I provided fixes for two Subversion bite-sized tasks. I also worked on the
latest Perl Golf contest - Mathematical
Forest - what a delightful waste of time.
GnuPG
I needed to get a password from someone, who refused to talk on the phone
for some reason. So I eventually opted to generate a PGP public key and
transfer it to him, so he can send me the password encrypted. This is the
first time, I'm seriously using PGP/GnuPG for a long time now.
Forums, Forums, Forums
I don't like the fact that PostNuke requires registartion and logging in to
post an article, so I was looking for an alternative forum. While I was,
I discovered Phorum, which seems to behave very much like the Joel on Software
web forum. I'll try to install it on my home server and see how it behaves.
If I like it, I'll install it on the Perl Beginners' site.
14-Jul-2003
Kernel 2.5.75
Persuaded by an IRC conversation with mulix, I set out to
install the Linux kernel 2.5.75 on my system. The first problem I encountered
was that the some of the kernel's modules would not compile. To solve it,
I removed them from the configuration, but they were still enabled by default,
so it wasn't my fault.
Then, after I had the kernel compiled, I tried to boot it only to find a blank
screen, and some hard-disk activity. It turned out I had to enable some
configuration options that enable the console and stuff. (check
Dave Jones'
Post Halloween Document for details). Then, the keyboard did not work,
and some guy on #kernelnewbie helped me with some extra options to enable it as
well.
Afterwards, I was able to boot it, and use the network and the sound card. But,
then when invoking the full boot process, I encountered a problem that the
system won't start. I traced the problem to /etc/rc.sysinit, and by adding a lot
of echo messages, fixed it for the kernel. Then my system was operational,
albeit some of the startup modules did not load and had to be loaded
explicitly by me.
So, X worked, the sound card worked, and the network worked, but I could not
get the Nvidia kernel drivers to compile with the new kernel. So I switched
back to kernel 2.4.x. I can still boot 2.5.75 if I like, but I don't see much
reason to.
Subversion Hosting
I discovered that I could save more space on stalker.iguide.co.il by deleting the subversion .a
libraries, and stripping the .so ones.
I plan to link to my online subversion homepage repository there, from my
homepage soon. That way people would be able to check out the source code
of it.
Studies
I took the exam of "Intro to Software Systems" today. It went pretty well and
wasn't very hard. I also handed in the assignment for this subject. Other
than that, I only have the Micro-computers exam, and the last exercise in it
to hand.
20-Jul-2003
Hacktivity
My Fix for Subversion Issue #1311 turned out to be faulty, and I discussed
the best to really resolve it with one of the Subversion developers. Next,
I provided a fix for Issue #1267
(have to say "no" several times to reject SSL certificate), which I had to
update after a modification in the Subversion code.
Next I talked, yesterday, with Ben Collins-Sussman on the IRC about an issue I
found in the bugtracker, and he suggested a way to resolve it. So I
implemented it and added a new feature.
Nothing of what I did was applied yet, which is a bit frustrating, but I hope
a core Subversion developer will find the time to review and accept my patches.
Studies
I met with my Micro-computers partner on Thursday, and we compared the
two versions of the exercise that we solved. We shortly came to a combined
version. Then there was the issue of handing it out which was resolved
by me doing so on Saturday, when my parents and I travelled to move things
out of the apartment (see below).
Since I only study on two days in the next semester, and it should be my last
, we decided to stop keeping the apartment lease in Haifa. So we went there,
and took our things, and moved them back to Tel Aviv. We took quite a lot
of things and needed a few hours and several transactions to move everything.
At one time, I climbed up the stairs (7 floors) and when I arrived I was
all sweaty, so I was told to take off my T-shirt, and after a while replace it.
Subversion Hosting
I encountered another problem with Subversion that took me some time to
resolve. Subversion kept rejecting my SSL certificate and asking for
confirmation. By talking on the IRC with some people, I was finally able to
resolve this. Apparently, the problem was that I rsynced the SSL certificates
from my localhost back to the server, and so ran it over, and invalidated what
I had in the Subversion configuration.
I resolved the problem by generating a new certificate and syncing the Svn
configuration with it, and then making sure the SSL overriding won't happen
again.
Another problem solved!
21-Jul-2003
Perl Mongers Meeting
This Thursday the Israeli Perl Mongers had a meeting where Stas Bekman gave
a several hours talk about mod_perl 2.0. Many people attended the meeting
(about 20-25), and we had a lot of fun. The lecture was very instructive,
and taught a lot about what can be done with mod_perl besides writing
simple CGI scripts.
After the meeting was over, I explained to someone about Subversion as he
said he had problems with CVS and was looking for a good alternative. (I
eventually wrote an E-mail to the mailing list about it). Oron Peled gave me and Kfir
Lavy a ride home as he was returning home to Haifa. We asked him about his
past experience with UNIX and what he does now, and we had a very interesting
conversation on the way home.
Project Introductions at the TAU OSS Course
Yesterday, I went to a lecture of the Tel-Aviv University Open Source
development course. There was a lecture there about CVS, which I interrupted
with some corrections and additions. After the lecture several people and I
introduced our projects to the students.
I gave a 10 minute introduction about Freecell Solver (that was
accompanied by a demonstration of kpat solving Freecell). One of the
Xparam developers gave an overview
of his Xparam project. Shachar Shemesh said some words about Hamakor NPO, and
then introduced the WINE project to the students.
The students in the course are expected to choose a project to work on and to
perform about 300 hours of work each on it. The Xparam guy got three students
who were interested in the project and gave him their details. When I returned
home, and checked my E-mail, I found out from the course initiator that two
students expressed interest in Freecell Solver as well, and would probably
contact me. I did not hear from them yet, but I'm looking forward to it.
Subversion and Perl Makefile.PL - problem and solution
I now started to maintain LM-Solve using Subversion. However, after importing
the project into Subversion, I encountered a problem that I remembered
from Linux::Kernel::Module::Builder: the Makefile.PL also did something with
all the files under the .svn/ files. (and in my case even corrupted the working
copy).
A quick Googling made me realize that the solution was to install the
development snapshot of ExtUtils::MakeMaker
and use it instead. This has worked, and the Subversion resident Perl guru
told me the same thing on the IRC.
Subversion Neon Usage
Subversion has a problem of asking confirmation of a certificate for
as many times as the https:// path has path components, as it keeps
trying upward components. I wrote a fix for this issue, and posted
it to the Subversion development list. Ben Collins-Sussman criticized it
saying it was a workaround and maybe we are using Neon (the WebDAV client
library) wrong.
I inspected the code of Neon and found it does indeed return a plain
NE_ERROR error if the certificate's authenticity failed. This makes it
impossible to tell if we failed due to that or due to something else
altogether. We decided to wait for the Neon project head to tell us
what he makes of it, and what we should do.
Dmoz.org Perl Tutorials Category Blues
My application for editing the Dmoz.org Perl "FAQs, Help and Tutorials"
category was rejected for the third time. This time, there were problems
in the grammar of my submission (which I'll make sure won't happen next time)
and some vague critique of what is present in my existing categories. I should
probably go over them and fix it, and then try to apply again.
Studies
I got 86 as the final score in Introduction to Software Systems after I got
83 in the test. My final exam for this semester is two days from now, and I
hope it will go as well as the others.
There was a project brewing on writing a Freecell solver. I contacted its
supervisor today asking if I can take it next semester, but he said he already
filled the quota of projects he can give, and so I cannot. :-(.
25-Jul-2003
Subversion and Neon Verdict
At the end, the Subversion maintainer told us we can use the HTTP error code
to distinguish between the different kind of errors Neon is returning. So I
wrote an updated patch and Ben Collins-Sussman commited it. (thanks, Ben!). Now,
there's a part of me in the Subversion core.
LM-Solve Re-work
I spent part of the last couple of days reworking LM-Solve. I
started out a
Subversion repository for it, changed its namespace to "Games::LMSolve",
added a lot of documentation, etc. It's also in CPAN now.
Studies
I took the test of Micro-computers on Wednesday. It went pretty well. I was
first worried that I won't have enough time to finish it, but then it turned
out I did have, even without the time extension. I still don't know what
my score is. This is my last test for this semester, so now I'm free!.
Subversion
I submitted a patch to add a --config-dir option to the subversion
command line clients to specify an alternate directory for the configuration
files. The first incarnation became out of date after a change in the code.
The second
one was also more encompassing, and modified more configuration
commands. I still have a small queue of patches that did not get accepted yet.
2-Aug-2003
August Penguin II
I attended the August Penguin II event yesterday. It was very nice and
I met many people I knew there. At first Shachar Shemesh gave an instructive
presentation about the Linux activities in Israel the past year. Then, there
was a lecture about MOSIX by one of its Hebrew University workers. It was
very nice as well. Afterwards, moshez gave a lecture about
PyPy, instead of the Python internals lecture that appeared in the agenda.
Moshe is a very entertaining lecturer and the lecture went very well.
Then came the geek trivia, which pitted two groups of three "geeks" and "nerds"
against each other. It was very fun. And finally, came the key signing party
, which I took part in and signed the keys of 20 people or so.
There were a few glitches there, as far as I was concerned. First of all, I
discovered the building did not have any coolers and I had to drink water from
the taps of the restroom. Then, it was too cold in the lecture hall, and I
had to leave once or twice to regain my senses. Finally, my ride back to home,
disappeared during the key-signing party, which caused me to have to take the
bus again. But all in all, they did not spoil the fun.
After the event was over, I went back home, ate, and went to sign everybody's
key. It turned out some
of the key could not be checked out of the servers I tried. (read the
thread for more information). However, it turned out mulix
who organized the key signing party, prepared a keyring with all the keys,
and was about to send it to everyone for signing. Thus, I was able to sign
the rest of the keys.
Freecell Solver
I discovered a game of Simple Simon that could be solved by hand, but not
by Freecell Solver (which gave up after checking only the initial state). So
I set out to discover why. Apparently there was a function there which was
responsible for performing the initial move, only it had a bug. I only had
to remove one = from an <= operator and the bug was fixed and
the game was solvable. Hah!
Reading
I finished a large part (most?) of "Games, Diversions and Perl Culture :
Best of the Perl Journal". I also read the Freshmeat GUI Toolkits feature
and started reading ESR's "The Art of Unix Programming" which is very
interesting so far.
Subversion
I wrote a couple of tests for my Issue #1297 patch, and indeed the unpatched
Subversion failed them both. However, I was told the patch is not correct
because it does not handle some working copy parameters correctly.
LM-Solve
After releasing version 0.8.0 I discovered a bug and released version 0.8.1.
Now I think I did not document the Hexagonal Planks ID in the man page of
the executable so I'll need to release 0.8.2... :-). In any case, I also
revamped the LM-Solve
homepage and now maintain it separately from my homepage.
Finally, I announced LM-Solve on Freshmeat.
Dmoz.org
I finally got permission to edit the Perl "FAQs, Help and Tutorials" category
on dmoz.org. I created a tutorials sub-category and will move all the
tutorials there. I might create other sub-categories there if I feel the
main one becomes too crowded. Let me know if there's anything you'd like to see
there.
Lectures
I prepared a lecture about my solution to the Graham Function
Perl Quiz of the Week. This time I used PerlPoint, which enabled me
to quickly translate the summary into the lecture itself. Here's
a discussion
of it on Hackers-IL.
I also prepared a summary (but not the slides themselves) for a lecture about
LM-Solve. Both are intended for the next Israeli Perl Mongers meeting.
7-Aug-2003
Hacktivity
I finished preparing a lecture about LM-Solve.
Then I worked on Subversion, and formed an updated patch to Issue #1297.
This took a really long time (almost an entire day), but I'm really
happy that it's complete now. The fix had a small bug-let which was easy
to fix by adding a few lines.
Reading
I sort of finished reading "Games, Diversions and Perl Culture", and
reached to the middle of "The Art of Unix Programming"'s chapter about
Mini-languages. TAOUP is a very interesting and entertaining book as is
the usual tradition with esr's writings.
Perl Meetings
Gabor Szabo, who is the Israeli Perl Mongers leader is abroad, and as
it turned out Shlomo Yona, who was appointed to organize the meeting
instead is busy moving to a new apartment. Thus, I took the lead
and decided on how to resolve the date, place, etc. issues for the next
meeting.
Translucent Cursor
I wanted a Knoppix-like translucent cursor for my X-Windows. So,
I asked around the IRC. Someone told me a similar effect exists in
the cursor_themes package found in the Mandrake Cooker. Looking there,
I found it. The cursor is darker than the Knoppix one, but still is
nice in a way. The package has other interesting themes, which I may
try out.
10-Aug-2003
Subversion
It turned out my updated patch was not acting according to the Subversion conventions.
What I did wrong was not create temporary files, and not use the run log
mechanism to perform the operations that could be performed with it. So,
I sat on it on Friday, and wrote an updated patch (revision 5). This was
applied, and so I'm happy.
Today I took some time to prune my patches archive from patches that were
already applied.
Haifa Apartment
I met with the Apartment owners and one of my apartment-mates on Friday
to settle the payments for the apartment. There was a bit of a fuss between
my dad and the owner, about a payment for replacing a lock that was done
a year earlier. But other than that it went fine.
On the way back, I ate lunch at the MacDonald in the Yoqne'am Mall.
Other Hacktivity
I worked and reviewed the lectures I wrote a bit. I've started adding missing
slides to the Gimp lecture I prepared, and hopefully, I'll put the full
lecture online soon. Other than that - not much.
Hard-Disk Problems Revisited
A few days ago, I got the same faulty noises when booting the hard disk. A
reboot did not help, but after I started Knoppix and mounted it, everything was
fine. Today, the same noises also happened, but this time the system could
load. Hmmm... I think I'll try to buy a new hard disk as soon as I can.
14-Aug-2003
Hacktivity
This and that. I've organized my Subversion patches directory to
exclude patches that were already applied. That way, the other maintainers
can best know what needs to be applied. I've been looking for other Subversion
issues to work on, and found some candidates, but so far did not find the
time to work on it.
I also made progress in translating "Homesteading the Noosphere". A couple
of people contacted me with corrections to it, and I'm grateful for them.
Then, I made the data for my version of the Haifux lectures manager
up-to-date with recent lectures.
Finally I edited the Wikipedia
entry of Freecell to make it less lame and more accurate than it was. I
actually woke up in the morning thinking about Wikipedia and whether it
mentions Freecell, checked it a bit afterwards, and in the evening changed
it. ;-)
Reading
I read part of the book about Statistical Physics and Thermodynamics I have
(I'm studying Thermo next semester). I also read the first two chapters
of "The House of Arden", after being reluctant to read it for a while.
Free Software "Monopolies"
jlouis, I don't really see free software "monopolies" as
a bad thing. It takes a lot of time and effort to create quality software,
and so it make sense one or a few packages will rise above the rest, and
concentrate most of the effort around them. If we take gcc, for example,
then everybody use it because it's a great and trustworthy compiler.
I don't see much point in switching to using anything else, just to make
an anti-monopolistic point. If gcc works, I am sticking with it. If something
better ever comes along, I might switch, but there isn't anything better
now. If you ask me, you'd better hack on gcc and make it an even better
compiler than it is now, then try to make a half-decent competition.
Certification
Certified jlouis as Apprentice because of the above and
other stuff I found on his homepage.
17-Aug-2003
Perl Meeting
Here's a report I wrote on the latest Israeli Perl Mongers, that took place on
Thursday. My father drove me to the meeting, and at first I bought some Burekas
in the nearby bakery. Then was the meeting. After the meeting Ronen Kfir drove
me and Kfir Lavy home. Kfir and I chatted for a long time and ate supper
at McDonalds. We discussed Linux and touched on many topics, including my
projects.
Python Bindings
I've been toying up with the idea of integrating Freecell Solver into PySol.
Since Freecell Solver is written in C, and PySol is a Python program, I had
to create bindings for it. At first I started using SWIG. This created very
C'ish APIs without much trace of a native language behaviour. Then I
realized it does not handle arrays well. So I set out
to write Python in the native bindings language. I consulted the Python
tutorial, the Python extensions writing manual, and the people at the #python
channel on FreeNode and eventually got things to work nicely enough.
I'm still a bit worried about memory leaks, but I suppose that Valgrind will
help me detect if they exist.
Subversion Issue #1473
To further test my Repos->WC file copy code, I wrote a test that set up
the svn:keywords property on the source file and then copied it. The result
was nothing less than a segfault. So I filed an issue about it. The problem is that
the translation is done without an entry existing in the .svn/entries file.
Ben Collins-Sussman and I discussed the best way to resolve it on IRC.
Our conclusion was that we should probably create another post-process routine
that will do the translation after the entry is created (which is already the
case, just that the translation is done beforehand). However, Ben thought
it was inelegant and so he wanted to consult the list.
Reading
I made some progress with "The Art of UNIX Programming". I also took the
book "Apache : The Definitive Guide" from the Perl Mongers book pool and
started reading it. I reached the beginning of the chapter on authentication.
Biking
Two days ago, when I biked, I noticed 1/3 of the way that a lot of air went
out from the back wheel. So, I returned. I don't know what causes it,
but I'll have to investigate, because I can't bike otherwise.
Hello there Yahoo! my name is Shlomi
Fish and I'd
21-Aug-2003
Haifux Meeting and Birthday Party
On Monday, I went to hear a Haifa Linux Club lecture about Real Time and
Embedded in Linux given by Iftach Hyams. The lecture was very nice and
there were many bursts of laugh throughout it. Afterwards, we went to a
restaurant to celebrate Haifux' 4th birthday (which was incidentally
ladypine's birthday as well)
Ori Idan (who drove me back to Hertzliya the last meeting) gave Meir Maor and
me a ride to the restaurant. (the arrangement was that Ori had a car, Meir knew
how to get there, and I neither). We arrived there, and I sat at one end of
the table next to Ori and Jess. The food was good, and Jess told a lot of jokes
throughout the dinner.
sun gave Jess, some other guy and me a ride home. The
first part of the ride was full of jokes, but the second one held a serious
discussion of Intellectual Property and whether "all software should be
free".
I arrived at home at 1 A.M. and went to bed even later, but had a fun day.
Warcraft III
I finally discovered how I can finish a level I was stuck in. My problem was
that the gameplay was fast, and when I switched it to slow it was doable. I
did not finish it yet, but I'm getting there.
Movie: Pirates of the Carribean
I went to see the movie "Pirates of the Carribean: Curse of the Black Pearl"
yesterday, along with my father and my sister. The movie was very entertaining
and Action-paced. Highly recommended.
Hacktivity
I worked on integrating Freecell Solver with Python using the Python
bindings I wrote. It was quite straightforward as a basis for it was
in the code and all I needed to do was adapt it to my new interface. The
Python debugger was a lot of help in tracking some crashes. Now I have
it working for most Freecell variants.
Upcoming Open Source Events
There's an installation party and conference tomorrow at John Bryce College in
Tel Aviv which I'm going to attend as an installer. Afterwards, on Sunday,
there's a lecture about Mono at the Inter-Disciplinary Center in Hertzliya.
If there's time, I'll also give part of my lecture about CatB.
Reading
I read several chapters out of "Apache: The Definitive Guide", and
chapter 3 of "The House of Arden". I also covered "Homesteading the Noosphere"
in preparation of the lecture on Sunday.
27-Aug-2003
Linux Events
On Friday there was the conference and installation party. I spent most of the
time installing RedHat on a few computers. One installation was done through
VMWare which gave some problems in installing the xpdf RPM. Other than that,
a guy I tried to install a system for him, brought his computer there
and we again failed to install it. Then he drove back home and brought his
new computer, on which the installation went fine. (he also drove me back
home).
Then there was a raffle, which I did not took part in and so did not earn
anything, but it was fun to watch, especially as one name (of someone who
wasn't there) came up three times.
On Sunday, I went to the Hertzlia Inter-Discplinary Center to hear a lecture
about Mono (the open-source .NET implementation), and also was able to give
a lecture about The Cathedral and the Bazaar series. We were about 10 people
there.
Finally, on Monday, there was a coordination meeting for the Haifa Linux Club
Welcome to Linux series, which I volunteered to be responsible for some of
the tasks there. They rejected my suggestion to make a shorter "Linux in
Action" series, claiming that the first lecture was about that already. I
still think the W2L as it is, wastes too much of our time, while giving
very little in return to the beginners.
Hacktivity
This and that. I worked on implementing the Patsolve logic into Freecell
Solver. It is working now, but does not give as good results as Patsolve
has. I'll have to analyze the results to see if there's a bug.
I also worked on
Devel::LineTrace - a Perl module to assign callbacks to lines in the
code without modifying it. (for debugging purposes, like adding prints).
I also went over the CatB lecture and fixed typos. There were quite a few of
them and two of which (one which I forgot) crept up during the lecture. :-)
Vipe is Disconnected
vipe.technion.ac.il is disconnected because it's lying in the Technion's
dormitories network which was entirely disconnected to facilitate dealing with
the worms attack. This means part of my homepage and the Haifa Linux Club
homepage and mailing lists are inaccessible, and I cannot read my primary
E-mail account. The Technion staff is now on vacation so it's not going to
be fixed until Sunday.
Reading
I read a lot from "The Art of Unix Programming", as well as some chapters
out of "The House of Arden". I also advanced a little in "Apache : The
Definitive Guide". The latter seems a bit boring and technical to me,
and I'm not entirely sure I need this information.
02-Sep-2003
Vipe is back online
Vipe returned online this morning. After logging in, I discovered that
some of my mail folders had bootloads of messages which I had to delete,
and that the mail bounces caused the Mailman-based mailing lists to
make me in "no mail" mode. So I had to cover them and change it back.
In any case, without vipe I felt that I was missing a rib, and am very
happy that it's back online.
Getting MikMod to Play using Artsd
I wrestled a bit trying to find a solution to get the command line mikmod
player to play using Artsd. I believed this was the case in Knoppix, but
then discovered it plays there using OSS. After contemplating coding a
libmikmod driver for Arts, I found an easier hackish solution:
artsdsp /usr/bin/mikmod -d 2
Smile! You're on camera!
Hacktivity
I advanced a little in the Hebrew translation of ESR's
"Homesteading the Noosphere". Other than that, after vipe returned, I've
been looking at Subversion Issue 854. The instructions there for reproducing the bug
worked flawlessly on my computer. So I closed the bug, and sent in a patch
for a regression test.
Reading
I read a chapter or two from "The House of Arden". I also covered some
chapters from "Apache: the Definitive Guide". Some of the later chapters
were interesting but as a whole the book is quite disappointing.
Finally, I finished "The Art of Unix Programming". Now I'm looking for
something else to read online.
05-Sep-2003
Bug in uniq on my system
shlomi:~# cat uniq-test.txt
uses/bio-info
uses
uses/qa
shlomi:~# /usr/bin/uniq < uniq-test.txt
uses/bio-info
uses/qa
A bug isn't it? My system is Mandrake 9.1, and neither the uniq from
RedHat 6.2 nor the latest from the GNU diffutils exhibits this problem. It
broke one of my scripts and so I installed the latest uniq to my $HOME/bin
directory.
Objectivism and Open Source Essay
I wrote an essay titled "Objectivism and Open Source" today. It aims
to explain to Objectivists why open source is a Good Thing<tm>. Read
and flame away!
Subversion Issue #854 Revisited
Apparently, I did not notice some comments in the issue in the Subversion
bug-tracker, that said that the behaviour has changed, but still was not
as expected. So, the bug was re-opened and I created a new fix, that checks
if "svn revert ." is done on a newly added directory and throws an error
if it does. Quite a trivial fix, but I also wrote a regression test to
make sure this is what happens.
It was eventually applied with small fixes. One less bug before Subversion
1.0.
Larry McVoy Interview
I went to the BitKeeper homepage today to recall the name of the push
command, and saw on its front page that Linux World
conducted an interview with Larry McVoy. This was partially in
response to a previous interview with Bruce Perens. I wonder how I could have missed it.
I searched the Perens interview for BitKeeper and read this part. Basically,
Perens accuses McVoy of threatening him every time he meets him. McVoy denies
these accusations in his interview. It's one's word against the other. I do
know Larry McVoy has threatened several other people with ligitation online.
And he does seem to me to be quite hot-headed. So I tend to believe Perens.
This all brings me back to my conclusion that reverting the BitKeeper license would be a good
idea.. The reason the source code was hidden in the first place,
was because some companies modified it to subvert BitKeeper and disable the
OpenLogging facility. This is all very well, but I doubt a substantial number
of them would have become paying customers.
With its current licensing scheme, BitKeeper would never become
the state of the art. Never. While it is technically superior to any free
software alternative (at least for now), hardly anyone dares touch it with a
ten-foot pole because of its license. If its licensing change to something much
saner, and its source code be revealed, it could, OTOH, eventually conquer the
market and be distributed as part of major distributions. I don't know why
McVoy does not realize that, but it is mainly his loss.
08-Sep-2003
Windows Bound
My Linux hard disk is causing more and more problems. So I found myself working
more with Windows. I installed Cygwin on the desktop computer's Win98 system,
but then the CPAN installation of Perl's LWP caused the computer to hang
(twice). So I installed it on our Windows XP system, where everything went
flawlessly. XP has the option of hiding all the taskbar icons, but I could not
find a way to resize the taskbar to make it two rows high. Apparently, it
crashes less often than Win98.
Version Control Comparison
I started writing a file in XML format that contained a comparison of several
version control systems: CVS, Aegis, Arch, BitKeeper and Subversion. Then I
wrote a perl script to translate it to HTML. My main problem in working on it
was that my laptop's mouse-pad that was in the way of my hands to the keyboard,
caused the cursor to jump. Then, I switched to working on Linux on the desktop
computer where it was a better environment.
My code had some problems after I got it to run, but I solved it. I'm using
XML::LibXML, perl's interface to libxml, which provides a great API for
analyzing XML documents. It's much better than the tedious work involved
in working with XML::Parser.
I then set out to write a DTD for the XML format I defined. I encountered
two problems. The first was that I had several isomorphic tags and I had
to write an identicla element definition for each one and enumerate them
inside their container tag. I solved it by generating the DTD by
another
perl script.
The next problem I encountered was that I wanted the container to contain
each at most one of each of the elements in any order. The good people at
EF-Net's #perl channel helped me, and it turned out that it was not
possible. So I settled for zero or one occurences of any of the tags. (it's
the closest thing supported by the DTD definition).
In any case, I notified the Subversion mailing list and afterwards the Arch
mailing list about the comparison and received a lot of useful input and corrections.
It's great to know there are so many enthusiastic people out there.
"Objectivism and Open Source" Essay
Based on some input from people I sent a notification about the essay to, and
some ideas of my own, I updated and revised "Objectivism and Open Source".
Thanks to everybody who contributed input!
Biking
The bicycle turned out to be fine after all (after we filled a lot of air
in the back wheel), so I went out biking the past few days. Yesterday, when
I biked and stopped at the Yarkon Park to drink, I noticed some rabbits
on a nearby patch of grass. There were two kids nearby who were trying to
chase them. I approached them and asked them if the rabbits were theirs. They
said yes and told me they ran away and that they tried to catch them.
I helped them in our attempts to catch the rabbits (an older, bigger one who was
the father of the smaller one), but we were not successful. When I left, ten
minutes later, the rabbits were still on the loose. One anecdote was that
the son has escaped to a closed container, so I tried to scare him away
by throwing things at him. One date which I threw at him was eventually eaten
by him... ;-)
22-Sep-2003
New Computer
My father and I set up the new computer. A lot of data was lost and some
of the backups turned out to be faulty, but we manage. The new computer
is a spiffy Pentium 4, 2.4 GHz with a GeForce 4 video card, and two 80 GB
hard-disks with 8 MB Cache. Thus, everything is much faster than before.
I had to finetune the Linux system, as well as install stuff there and on
the Windows system. Now everything feels more or less right.
Linux Meeting at the Cafe
Ori drove me there, and we arrived rather early. Later on, other people
arrived. All in all, it was a nice meeting and the only thing that disturbed
me was that many of the other attendents were smoking. I ordered a chicken
salad, which was good, but not too large, so I also ordered a sandwich. I
ended up paying 70 shekels for it which is quite a lot.
We talked a lot about KDE, GNOME, Hebrew support, PHP and Perl, MLdonkey
and many other topics.
Yesterday's Lecture
I remembered to announce the lecture only on Saturday, and so the attendance
may have been smaller than the optimal. Still, quite a few people came, and
I lectured and demonstrated the Gimp to them. I was asked that in the
next lecture, I'll demonstrate more programming-stuff like Perl, PDL, etc.
and hopefully I'll prepare something in this direction.
Biking
I took the bike for repairs. It took the repairman exactly one minute
to make it fine, and he did not even charge money for it. Now I can bike
again, and indeed did.
ALSA sound
On the new computer, I had some problems hearing sound. The sound seemed
to be playing and all the volume controls were correct, but no sound was
emitted. After consulting people on the IRC and a lot of frustration,
I was finally able to solve it. What solved it was downloading the
updated ALSA drivers from the Intel (the motherboard manufacturer) site,
and compiling them.
Hacktivity
I worked on getting the Freecell Solver integration with PySol working again.
It did not work at first, and it took me some time to iron out the bugs
in the development version of Freecell Solver that have caused it. I wanted
to upgrade to the latest PySol, and so I had to compile the Python 2.3 RPM,
and to upgrade Python.
One problem I encountered which took me a lot of time to resolve was that
PySol was looking for the data in . instead of /usr/share/games/pysol/. Eventually, it turned out it was caused by a file I left there as
part of a previous experiment. All in all, the bindings turned out to be fine,
and there were different problems altogether.
I also worked on integrating svn-push into the Subversion repository. I searched
for a way to build but not install svn-push, and eventually settled on adding
my own buildonly meta-target and adding it to the
configure.in as those targets that are built. I also re-indented
the code (GNU indent seemed to get most of the job done). The code was not
commited yet, because I'm waiting to see if people can suggest a better
way to modify the build process.
Kmail
It took me exactly 10 minutes to configure Kmail, subscribe to the
Subversion developers' list and send a message with my patch there. Kudos
to the Kmail team for such a nice product. My only problems with it is that
when viewing a message, I cannot reply to it from the viewer, and have to
go to the messages folders to do so; and that I cannot find how to sort
messages by thread. But all in all, it's a very nice program.
DVD Playing
We bought a CD Encoder+DVD Drive for the computer. When playing "Bring it
On", the DVD installed its own player on the Windows machine, which was
not as nice as PowerDVD which came with the drive. I tried playing the DVD
in Linux. Ogle crashed on me, and Xine refused to play it with some cryptic
message. mplayer did work (after I found out it needs to be invoked
with mplayer dvd://1/) and kmplayer gives it a half-decent but a
bit buggy GUI.
27-Sep-2003
Rosh Hashana
Today is Rosh Hashana - the Jewish beginning of the new year. So, yesterday's
evening we had a family dinner with the extended family. Unfortunately, many
people were abroad, and another sub-family were visiting their in-laws. Still
, it was very fun.
I also greeted several people in the IRC and in the Linux-IL mailing list. I
truly hope it would be a good new year with few harms and disappointments
for everybody benevolent out there.
DVD Playing (cont.)
I downloaded and installed the new version of Ogle from the RPMs/SRPMs I
found at its site. Now it plays the DVD I tried very nicely, with a much
better interface than mplayer (or kmplayer for that matter) and with
DVD menus and all. Very nice.
That put aside it seems that mplayer has a bug in relocating the position
within the film. (it also happens for MPEG films).
Hacktivity
I did some work on Subversion: placed svn-push inside the Subversion
repository, created a branch for it for future developments, and clarified
some things in the mailing list and the IRC.
Then I took a break and started writing the
Haskell for Perl Programmers presentation. wli helped
a little after I queried him on the IRC. There are still things I'd like to
add there, but it's quite OK as it is.
HTML Blues
While working on the presentation, I decided that I want to emulate the
<table border="1"> look with CSS. I asked it on the web-design list and someone answere me with a recipe.
I was able to customize it to emulate Konqueror's look and feel. But then
when I tried it on the slides, it did not work.
After a long investigation, I finallly found that if I remove the DOCTYPE
everything works again. Then I found out that the problem was that my
selector was table.border1 > tr > td instead
of table.border1 > tbody > tr > td. After that was applied
it was solved in both Konqueror and Mozilla.
Then someone I consulted with on the IRC reported that it does not work
in Internet Explorer. After some investigation, it was discovered that
MSIE does not support the child selector (parent_tag > child_tag)
at all. Aaaarrggghhhh! So, now either I make a non-IE compatible site, or
switch to table.border1 td (which may cause problems in the future),
or apply class elements to all the <td> tags inside. I can also kidnap
Bill Gates and threaten to kill him unless Microsoft makes MSIE more standards
compliant and makes newer versions of it available for
free download, but that would be too sadistic for my reputation.
MSIE Die Die Die!!!!
1-Oct-2003
BitKeeper
IBM has recently bought Rational, the producers of Rational ClearCase, which
is an SCM system competing with BitKeeper. Does it mean all IBM employees
(including many Linux kernel hackers) are forbidden from using BitKeeper? ;-)
I suppose only Larry McVoy can tell. I talked about it on the IRC with
some people and they said IBM is so large, that it can hardly be considered
as one entity. Still, I'm not sure it is a separate entity as far as
copyright law is concerned.
Hacktivity
Various bits and pieces. I worked a bit on perl-begin, compiling it again after
the move to the new computer. Then, I added some links to web-forums
there. I also worked a bit on the Haskell for Perl Programmers lecture,
adding stuff on arrays.
I worked on the Homesteading the Noosphere translation. I finished the chapter
"Ownership Rights and Reputation Incentives", replaced my own translation
with a corrected first chapter I received from someone else, and also went
over the existing translation and corrected various stuff.
I also modified my homepage to include the interviews section, and placed Adrian
Ettlinger's translation online. You probably know of it from the front-page
article.
Haifux Lecture
Been to the latest Haifux lecture on Monday. Ron Artstein talked about Multi-lingual Typesetting. It was basically a coverage of the
constraints that written languages imply on getting them typesetted. It was
loads of fun and amusing.
10-Oct-2003
Hacktivity
I wrote some patches to the perlop and perlsyn Perl Man Pages, which I
sumbitted to perl5-porters and there Michael Schwern and others have revised
them. The two patches were applied to the bleadperl version.
I also copy-editted the translation of Open Source Software - A History that was done by
Oren Maurer. Finally, I made some modifications to the Haifa Linux Club
"Welcome to Linux" lectures that I'm responsible for. There may have been some
other things, but I don't quite recall them.
Subversion Woos
I upgraded the Subversion at the stalker host, without first dumping the
repository. That has put me into trouble, as nothing I tried to resotore
the old homepage repository (which was changed since the last backup)
worked. Eventually, I settled on using the few-days-old backup, checking
out a working copy, and syncing the new working copy in, using a Perl script
I wrote for the job. Now everything is up again.
Next time, I'll know to be more careful.
New Cellphone
My father decided that the entire family will switch their cellphones to
Orange (GSM cellphones) to enjoy their intra-family calls discount. So,
I now have a new cellphone. I still have to get used to it, and so far using
it is a bit annoying.
One thing I noticed was that I could not enter Hebrew contact names longer
than 5 or so characters. After calling the support, it turned out that we
could only have it longer if the interface (and the names) were in English.
So much for human engineering.
Orange Site
I had wanted to view the new cell-phone in the catalog so I tried to
use the Orange site. With Konqueror
it was dead on arrival, so I tried Mozilla. This worked better, but when
I accessed the catalog page, I could not see anything displayed there.
I wrote an E-mail to the webmaster telling them that Mozilla was not supported.
In reply, I got a message saying that the site is guaranteed to work only
with Microsoft Internet Explorer 5.5 and above. I asked them if they plan
to support Mozilla any time soon, and got a reply that they don't for reasons
I found very interesting. Here's my reply:
> Dear Mr. Fish,
> I thank you again for your mail.
>
> I regret being so blunt but, no, we are not going to change our website in
> the near future. We have developed an amazing website,
"amazing"? By this do you mean full of non-portable bells and whistles,
and other idiosyncracies? Sorry, but that's not an amazing web-site
according to my book.
A good web-site is either simple and clean, or includes
standard-compliant, portable embelishments. (which are usually not
necessary).
Usability, low bandwidth, etc. is much more important than "amazingness"
and I bet it's not very usable in MSIE either.
> that costs us a
> lot of money to develop and maintain,
Why does it? Why should it? I maintain a few web-sites in my free time and
I'm not getting paid to do so. If you keep your web-site clean and simple,
it will cost less money to maintain and will also attract more visitors.
> and it is currently built exactly
> according to our business needs.
I seriously doubt it is built according to anyone's business needs. Why do
you need JavaScript to display the catalog of images? Why not simply
include them in the HTML? If you look at popular international sites,
you'll see that most of them are built with simple and clean HTML
(sometimes without any trace of JavaScript).
> I can also say that although
> technologically it might be possible to develop a version for Mozilla or
> other browsers,
1. It is possible.
2. I'm not talking about a separate version for other browsers. I'm
talking about one version for _all_ browsers.
> orange, and many other content providers, are investing
> in the most common browser, it is currently not cost efficient to
> develop versions for other browsers.
>
It is cost efficient if you hire clueful developers. Look at my site:
http://t2.technion.ac.il/~shlomif/
(which links to other sites I made).
They all look perfectly fine in all modern browsers, including lynx (a
minimalistic text browser). Why? Because I know what I'm doing and I know
how to write good HTML.
First you tell me your site costs a lot of money to maintain, and then you
tell me it is not cost efficient to support other browsers. Now, let me
tell you this: if you keep your site clean and standards compliant, you
can have it support all browsers and it will cost you much less money to
maintain.
Regards,
Shlomi Fish
12-Oct-2003
Movie
I went to see "Finding Nemo" the other day along with my father. The movie
was nice, albeit not quite as much as "Monsters Inc.". At the end of the
movie there was a very long list of credits, and my father joked that
it would have taken less time to draw the movie pixel by pixel. In any
case, the Graphics was great.
Reading
I finished reading "The House of Arden", which had a rather disappointing
end. I also read
Joel on Software's Unicode article. Not too much I did not know,
but it was still a very amusing read.
Finally, I started reading "Ender's Game", and read two or three chapters.
It's a bit strange so far.
Backup
I decided to backup my Linux system. Due to the fact I have an IDE CD Writer,
I had to install ide-scsi. So I followed the instructions in
the "Installing your
ATAPI CDRW Drive in Linux" tutorial, which involved rebooting the
computer (gasp! I thought in Linux we were never supposed to do that).
Eventually, after the reboot and setting a parameter in loadlin, it worked on
the first try, and I have a burned CD with some backups.
Hacktivity
I worked on Quad-Pres the past two days. At first I added an option to set
the encoding and language, on a per-presentation level and a per-page level.
To make sure it works correctly, I wrote a test script for it. Eventually,
I ended up with more lines of test code, than lines of added code, and the code
worked at the first try my test suite had no bugs in it. The test suite
involves a bash script that calls two Perl scripts. (%-) - it was the easiest
way to do it).
Then when I fixed a bug (that the rendering process did not stop on the first
WML error), I added a test for this as well.
Finally, I added a module to channel Getopt::Long and make sure it can use
an array besides @ARGV. (a kludge, if you ask me, but that's life).
And I added a unit test for this as well. After I got the test to work, I found
out I had a bug in my code (!) because of it.
I'm quite happy with this "write tests as you write code" scheme. So far, it
slowed me down a bit, but in the long run it gives way for more robust code.
17-Oct-2003
Quad-Pres
More Hacking. More tests, and finally a new stable version release. I branched
and tagged version 0.10.0 only to discover I did not update the file list of
the tests directory, so I released version 0.10.1 as well.
It seems Quad-Pres has disappeared from Freshmeat, possibly because vipe was
down for a while. (I did not receive an E-mail about it, though). Eventually,
I registered a project at BerliOS, and no it has a new homepage. So, now Freshmeat points at it and hopefully it
would be safer there.
Version Control Systems
Added a few items and corrected some typos in the version control comparison.
Also, I recommended Subversion in a recent discussion in webdesign-l, and
someone posted a message that when he tried to install Subversion on Win32,
it did not work for him.
To help him and others in the future, I installed Subversion myself on my
Windows XP laptop, and documented the process. Et voila:
a
Subversion Win32 Installation Walkthrough. Share and enjoy!
Translation
I'm taking a break from translating "Homesteading the Noosphere" by translating
the Joel on Software "Rub a Dub Dub" article (to Hebrew, of course. Like I know any
other language besides that and English well enough.) Here's the
site
where I'll put intermediate copies of the translation.
Finally, I went over the slides of the GIMP Lecture in preparation for my
lecture on Sunday. And on Monday there's a Haifux Welcome to Linux coordination
meeting.
21-Oct-2003
GIMP Lecture at Telux
I gave a lecture about the GIMP on Sunday to the Tel Aviv Linux club. It
went pretty well, but there were few people there (less than the previous lecture). Some things sparked a bit of discussion, like whether Graphic Artists can
learn the GIMP Scripting or do they need something more foolproof.
After the lecture I talked to two guys. One of them was a system administrator
in a high school who converted some of the server infrastructure there to
Linux, and wanted to conduct an experiment to see if development could be
taught there.
Quad-Pres Hacking
I released a new stable version of Quad-Pres, with some critical bug-fixes. The
problem was that upload did not work, because of a leftover file which was
revamped without proper modifications to the rest of the code. So, I added
some tests and now have some items on my pressing to-do list.
Rub-a-dub-dub Translation
It's finished! Did not take too long at all, but maybe the article was
just short. I have applied some corrections by going over the translated
text. Now I'm looking for someone to go over the translation and
copy-edit it.
Setting up ViewCVS for Subversion
I wanted to set up ViewCVS for
the Subversion repository. So I read the install file of ViewCVS from the
CVS, and followed it. The first problem I encountered was that
the
Python SWIG bindings of Subversion refused to install. I received
a hint in response, which led me to a solution. (an explicit
make install-swig-py-lib command)
Then I installed and configured the ViewCVS config files and they refused to
work due to an unfound module error. Turns out the problem was that Apache
did not pass the PYTHONPATH environment variable to the CGI scripts.
After RTFMing, I found a solution: a simple "PassEnv" directive.
Then it worked, but I'm not sure that it traced files across copies. I may
try Chia-Ling Kao's SVN::Web script later on.
Haifux Welcome-to-Linux Preparation Meeting
We held a meeting in preparation for the "Welcome to Linux" series.
kilmo was there as he returned from abroad, and I was surprised
to see him there. Here is the summary of the meeting which I took down.
Studies
Studies are beginning tomorrow. I have to get up early to catch the bus,
which should arrive a while before the first lecture.
26-Dec-2003
Studies
My first week started quite eventfully. After the day in which I had
Thermodynamics, which went OK and in which I learned little new things, I
went expectedly to the "Automata and Formal Languages" lecture. There, I
discovered that "Set Theory and Logic" is a hard pre-requisite for the
course. I talked with the lecturer during the break and he told me that he
won't allow me to take the course. I asked him why the requisite was so
important and he said that "You see, we have set theory all over the place".
But I did not have a problem to understand what I saw in the first half of
the lesson!
In any case, I cancelled the registration for this course and registered to
a different course from the Electrical Engineering Department on the same
day. ("Design of High-Speed Digital Systems") For it I'm sure I have the
pre-requisites.
DVD Playing Trouble
I had a trouble playing DVDs. Ogle and mplayer have emitted the
error ""Can't open file VIDEO_TS.IFO" and Google could not help me. I then
tried playing a music CD, and mounting a filesystem, and neither of them
worked. Then it hit me: the ide-scsi emulation! After I switched the
device to /dev/scd0 (the SCSI device) everything worked fine
again.
Am I lame or what?
Translation
I done a little translation of Homesteading the Noosphere, up to and including
the end-note about the Fijian Village Chiefs. I also received some corrections
about "Rub a dub-dub" which I happily applied.
Subversion and Win32 Guide
I received an E-mail from the guy from whom the guide was intended, telling
me he failed to install Subversion once again. This time, he did do a step
he did not do before, but he did not follow the guide exactly (and named a
URL differently), so this may be a problem. He said he'll try again later,
but meanwhile will use CVSNT for the current project.
grip woos
grip ripped at 4x speed, while my CD-ROM drive is 52x max. I posted
a
message to Linux-IL about it and Matan Ziv-Av replied with a good
advice, that increased the speed to 10x. Still not maximum but better.
Welcome to Linux
I ended up preparing the slides for 3 out of 6 of the lectures that would be
given in the Welcome to Linux series. Recently I was asked to prepare a
version of them that would be viewable from the hard-disk. A quick script
did the job, but it took me some time to debug it.
The first lecture was given yesterday by Ori Idan. The lecturing hall was
full, many questions were asked, and Ori gave a good presentation. There
were a few glitches in the lecture that KDE there got stuck, and so
the lecture came out longer than agreed on. I came to the lecture with Ori,
and went back with a guy who had to drive to Northern Tel Aviv, which was very
convenient for me. He was a Linux newbie, and I told him a lot about what
I'm doing right now, about CVS, about software patents and other things.
Perl Golf
The last three days I was heavily occupied with the PERT/Gantt chart conversion
Perl Golf. The day before yesterday, I ended up with a 65-characters
long solution, and yesterday I was able to optimize it twice, each time by one
character. Right now, I'm stuck 6 characters before the currently best
solutions, with no ideas on how to further optimize it. But I'm still not
giving up.
3-Nov-2003
The Neo-Tech FAQ
tk suggested to me that I read the Neo-Tech FAQ to gain
a better perspective on Neo-Tech and understand why it is an "evil cult".
Well, I was reluctant from reading it for a long time, but today decided
to take Baz Luhrman's advice and "do one thing everyday that scares you".
So I read the most recent version of the FAQ, which was pretty old (1996)
that I found on Google Groups.
The FAQ is so ridiculous that it made me laugh a couple of times. I anticipated
(from previous impressions of it) that it will try to attack mainly the
Neo-Tech staff, while having little to say about the Neo-Tech wisdom, and I was
right. Furthermore, most of the attacks on the Neo-Tech people were based
on information or reports which I cannot easily assert, and most of the attacks
on its wisdom quoted out-of-context snippets out of the Neo-Tech material,
which can easily be refuted by someone with a better grasp of the Neo-Tech
material. (and sometimes directly contradict other quotes, which state the
opposite, plain and simple)
What killed me was the fact that it claimed Frank R. Wallace (the founder of
Neo-Tech) advocated dishonesty because he said that in poker it was
OK to cheat. (!) Seriously, Poker is very much about cheating as everybody
know. Plus, the Neo-Tech Advantages state countless of times that dishonesty
and lies are plain wrong and destructive.
tk, if you think this poor excuse for criticism is good enough
to invalidate the Neo-Tech Philosophy, then think again. If only, it made me
more convinced that Neo-Tech is "The One True Way<tm>". And it certainly
did not convince me that Neo-Tech is a cult or is Evil. Granted, Neo-Tech is
huge in scope and takes some time to fully understand and integrate. But it
is just an idea system, and a pretty darn good one.
5-Nov-2003
Subversion
I tried to resolve Subversion issue #1093. My uneducated attempt at it received
a complete depracation from C. Michael Pilato which followed with a discussion
on how to best resolve it. The problem is that we need to efficiently trace
the history of a file backwards, which can only be done in the repository
level.
So, the final question is whether to perform each such lookup for every
remote operation that need to do it (which would require changing the
protocol in many places), or assigning a separate command to perform the
lookup. The second option is simpler and would require fewer modifications,
so we'll probably go with it.
Talk with Ya'El (Orr's ex-Roommate)
On the way to the Technion on a Thursday a week and a day ago, I met
Ya'El, who is Orr's former roommate and someone who studied Game Theory with
me. We talked when we were waiting for the Haifa local bus, and on the bus
about various stuff. (details are in my private diary). But it was a fun
talk and I enjoyed it a great deal. One thing she told me was that she
did not take any programming courses except the required ones, because
they were too much work. One would thing one would study Computer Science
to become a programmer, but she was more interested in the theory.
I discovered something interesting about the buses that day. Even though,
there's a previous inter-city bus that comes 45 minutes earlier, the bus
from there to the Technion just leaves, and so I don't get to the Technion
earlier. And using the other bus I get to the Technion at 10:20, which is
in the nick of time. Oh well.
Transcribing Thermodynamics into LaTeX
My mom suggested that I transcribe the Thermodynamics material into the
computer, so it will be more organized and that I'll review it further.
So, I fired my favourite Hebrew LaTeX editor (he2) and started transcribing
it. So far, I did two lectures out of three. In any case, it's progressing
quite slowly because all the formulas slow me down considerably.
For your enjoyment, I give you a group of macros I wrote for one body of
equations. Note that my code still code use a lot of modularization.
\newcommand{\parens}[1]{\left(#1\right)}
\newcommand{\halfN}{\frac{N}{2}}
\newcommand{\hNpm}{\halfN+m}
\newcommand{\hNmm}{\halfN-m}
\newcommand{\tmN}{\frac{2m}{N}}
\newcommand{\osomething}[2]{\parens{1 #1 #2}}
\newcommand{\otmN}[1]{\osomething{#1}{\tmN}}
\newcommand{\ox}[1]{\osomething{#1}{x}}
\newcommand{\exprone}[1]{\parens{\halfN}\otmN{#1}\ln\left[\parens{\halfN}\otmN{#1}\right]}
\newcommand{\exprtwo}[1]{\parens{\halfN}\ox{#1}\ln\left[\parens{\halfN}\ox{#1}\right]}
\newcommand{\exprthree}[1]{\halfN\ox{#1}\ln\ox{#1}}
Telux Meeting
On Sunday we had a Telux meeting. Eddie Aronovich gave a nice intro to the
advancements in RPC technology from RPC through CORBA to Web Services. One
highlight from the lecture was that he prepared it on his laptop in Linux,
and then discovered the screen had a problem there, so he had to switch it
to Windows. So he converted the presentation from OpenOffice to PowerPoint.
Then we told him OpenOffice was available for Windows... ;-).
But it was a lot of fun.
Israeli Perl Mongers Meeting
We met yesterday for the monthly meeting of the Israeli Perl Mongers. Before
the meeting there was some food and a lot of interesting conversations with
many people. There was someone there named Jason who came to Israel from
Australia. When people asked him why he came to Israel, when all Israelis
would prefer to be in Australia, he said it was more interesting here. ("May
you live in interesting times"). We also discussed many of the books and other
stuff.
Then came the lectures. Abraham Bernstein gave an overview of the things
Tcl excel in. The lecture was very interesting. There was something there I did not understand about how to write an interpreter with Tcl. Then Gabor Szabo
gave a brief overview of the Phalanx project which aimed to provide good
test coverage for 100 of the most popular Perl modules. Afterwards, Ran Eilam
gave a very entertaining and funny lecture about "Extreme Programming". He
compared the common way that software houses manage themselves, which yield
the "Big Ball of Mud" syndrome, and how Extreme Programming solves it.
A funny story that he told was that a manager once told the programmer to
create a prototype of a software for a deadline in which he needed to
demonstrate the software. So the programmer wrote something whose internals
were lacking and gave it to the manager on schedule. After the manager
returned from the meeting, the programmer asked him how did the software
perform. "Great!" said the manager, "we need three more features by Monday".
During the break, I also talked with some people like Oded Resnik, and Eli
Marmor. I took with me two books from the library: "Writing Perl Modules for
CPAN" and "Extending and Embedding Perl".
Reading
I read through Eric Raymond's Libertarianism
FAQ. It was a good read as most of the things by Raymond. I also read
a few pages out of "Ender's Game", and some more out of my re-read of
"Programming Perl". Other than that, I started reading the CPAN book, which
did not renew too much so far, but it's just the start.
Orange Site Continued
I decided to post my correspondce with the Orange webmaster to Linux-IL. I
wanted people who were Orange customers to voice their support of making
the site compatible with Mozilla. The reaction overwhelmed me. The story
was
posted on Whatsup and on other people, and many people voiced
their opinion that the Orange customer customer service is lacking in other
respects. The response of the webmaster was analyzed as condesending and
bold. (which was not what I thought of it originally).
However, many people sent various messages to the webmasters with their
support of my agenda. Most of them received some generic (copy and paste)
response that Orange has prepared in advance. A pretty good response,
but not such that can solve the problem at hand.
15-Nov-2003
Linux Day of Haifux
There was a Linux day this Wednesday organized by Haifux at the Technion.
It involved an installation party, several instances of the
Basic Use lecture, and a presentation about Instant Messaging tools
for Linux.
I arrived at the morning with a ride given to me by Ofer Weisglass (who also
drove me back from the the first "Why Linux" lecture this year). On the way,
we talked about Linux and Open Source. I arrived there at about 10:15, and
had to go soon afterwards to a class until 12:20. Afterwards, I bought me
something small to eat, took a book out from the Dean Library, and went back
there. There were plenty of installers there, and most places were occupied
by installations in progress so I did not have much to do. I was able to
see Orr giving the Basic Use lecture, but not much besides. I eventually
volunteered to carry an extra screen from Alon's room to the hall
in the Student house were the insta-party took place. The screen was quite
heavy, and my hands have ached for a few days afterwards, but at least I
did something useful.
Then Chinese Food was served and I ate to my stomach's content. And then
I had a recitation to go to. After I returned, I was able to perform a few
installations. One of them had to be carried out in a limited space, so we
choose the minimal installation (that was still 3 GB). It was networked. Took
about an hour net. I almost forgot to set up a swap space - I'm getting a bit
rusty at these kind of things.
The next installation, was done on a computer without an Ethernet card and
so was installed from the CDs. The installation took about an hour and a half
on a P3 733 MHz computer with a fast CD-drive. (perhaps because of a slow
hard-disk). While the packages were installed, I talked with the lady for
which the system was installed, and told her about Linux, Unix and their
philosophy and gave her some basic concepts. The installation of the
updates was pre-empted after all the packages were installed, due to
the late hour.
In the party I met (again, I think) Etzion's Girlfriend, who designed the
covers for the CD. I heard her say something about the GIMP, and so approached
her asking what she meant. She said she really liked it when she used it, and
think it has a great potential. I told her I found it easier to use than
Photoshop. Still, the CD covers were designed in Windows on Photoshop. (but
I told her GIMP could run on Windows as well).
One of the installed computer came with a faulty CD-ROM drive and had
to be rebooted a lot for the CD to boot. This was quite annoying. At the
end of the evening, Emil (Kohn Dan) drove me home and we talked about the
usual things (Linux, the Technion, etc.). I arrived home at about 12:30.
All in all, it was a very nice day, with the usual overwhelming feeling
of insta-parties. There is an estimate that 40 installations were done.
Studies
I found the High-Speed digital systems course quite hard to understand
and counter-intuitive for me. So I switched courses to "Introduction to
Statistics" (of Industrial Eng.). The course seems OK so far: a lot
of Probability theory, with exercises that are not too hard. (but require
some research as I did not attend the previous classes)
Now, I'm studying Monday and Wednesday instead of Wednesday and Thursday.
kilmo is blogging again
kilmo is blogging again after the long time he's been in
South America. It's great reading his diary after all this time. kilmo,
welcome back!
TeX Problems (and their Solutions)
I tried to get the Hebrew fonts not to appear blurry when I convert
them to PDF and view them using Acrobat Reader. So, I followed the
instructions the kind people of the Haifux mailing list gave me and
downloaded the latest IvriTeX RPM. It did not work at first, and
after I did something the Hebrew fonts did not appear at all.
Anxious to get it working (I had a homework to typeset and print), I started
researching the source of the problem. It was a dvips problem and I played
with the command lines it gave me until I found a command line argument to
gsftopk that could achieve it. But I could not tell dvips to use it.
Eventually, after a few failed attempts I was able to modify the file
/usr/share/texmf/web2c/updmap.cfg and add the map of the
culmus fonts of ivritex there. Then it worked like a charm and my documents
even look nicer than before.
The error message I got was:
kpathsea: Running mktexpk --mfmode ljfour --bdpi 8000 --mag 1+0/8000 --dpi
8000 rdavid
mktexpk: don't know how to create bitmap font for rdavid.
dvips: Font rdavid not found, characters will be left blank.
After I resolved the problem, the maintainer of the package told me that
I have to install the updmap-something package in the same directory as
it is needed for tetex version 1, and that will resolve the problem. (after
I resolved it manually). But it was not mentioned in the README, which also
said I should install a separate ivritex-Fonts package, which I was looking
for, for a long time. But everything is good now.
Next thing on my agenda: PDF table-of-contents.
Mandrake 9.2
The Mandrake 9.2 ISO files are available to the public. I downloaded them
yesterday, partly overnight, and today discovered that their md5sum don't
match, and the file size are too long by about a 100 MB. Must be a wget -c
problem.
rsync resolved the problem, but it took quite a long time to do so.
18-Nov-2003
Article at Perl.com
An
Article I wrote to Perl.com was published yesterday. The article covers solving some types of puzzles with the
LM-Solve
framework. (which I authored). I did not mention I originally wrote it (which was some months ago) here because I did not want to ruin the element of surprise. I'd like to take the forum and thank two correpondants from Perl-IL who
commented on an early draft of the article, and for
Simon, the Perl.com editor, for instructing me how to do a thorough revamp of it, and for
publishing it.
Maybe I should take the opportunity to clarify my opinion on Perl.com, because some people who read
the "usabilty" of the Perl Online World for Newcomers
misinterpreted it. I don't have a problem with perl.com as a site. It's a nice site, with interesting articles. I do have a problem that it is considered the homepage of Perl, because it is very much inappropriate for it. Recently, www.perl.org got a facelife, and regardless of its shortcomings, is already more suitable as a homepage for the Perl culture. So I suggest people to link to that as Perl and not to Perl.com.
22-Nov-2003
Job Tracker Revamp
I've decided to take some time and revamp the iglu.org.il Job Tracker. I first decided that since
practically everything I had in mind was going to be different, I'd be
better off starting from scratch. But, then I thought better of it, and
started from the code I already have, and don't regret it. I already
accomplished quite a bit and only been working on it for a couple of
hours net.
Yesterday, I went to sleep at 23:00 because I tried to track a couple of bugs.
One of them ended being an Apache mis-configuration. Apparently, when
you use ScriptAlias the plaintext non-executable .css files
are not served from some reason. Trying to solve it, required writing
an ugly configuration code, with a regular alias, and then association of
*.pl files with the cgi-script handler. But it works! (
I wish I would remember more of "Apache: The Definitive Guide", but I don't)
In any case, here are a few insights from the process:
-
At one time, we needed to add a posting date directive to tell when the
job was posted. Someone volunteered to add it, and he created a workaround,
that treated the "PostDate" field especially in the code. I still thought
back then, that it was a good ad-hoc solution for a complex problem.
When I did the change yesterday, I did it the right way, by designating the
field in the fields' list with a few special directives, that were then
treated by the code regardless of the field name. This took me exactly 5
minutes. Go figure! (this reminds me of what Joel Spolsky told about
the Excel
Drag&Drop Prototype).
-
Someone was unhappy with the jobs tracker before and suggested he would
revamp it. I sent him the code, and he said that the first thing he'll
do was convert it to Python. I told him he should rather not do it,
because I don't know Python very well. So he told me that as an ex-Perl
hacker, I wouldn't have any problem understanding his code. (I forgot
to tell him that I would have a problem hacking his code).
Anyway, with his attitude, I knew nothing would come out of it. Last
I heard of him, he said his code was "close to be finished", but he
then neglected working on it. And my code is working perfectly right
now. (in Perl)
-
More recently, some other hacker I met, said a completed system he wrote
in Python could be used as a replacement for what we have now. However,
he turned out to be quite unresponsive, so I don't have access to the code
now.
Reading
I read Paul Graham's Why
Nerds are Unpopular article. It was quite a good read, but I got
the central message right at the start, and then it continued chewing
it. I also continued reading "Extending and Embedding Perl". It now covers
the Perl 5 API, which has a lot of functions, and it is getting quite
tedious. Nevertheless, it is probably a better reference and introduction
than the Perl man pages on the subject.
Studies
In Statistics, we have to submit each three consecutive exercises in the
following lesson. Since I joined late, I had to prepare all of them in one
week. It was quite a lot of concentrated work, but I did it.
Other than that - it's fine. Thermodynamics seems quite easy so far and I
understand almost everything. I hope this situation will last.
LM-Solve Article
I received a few comments for the LM-Solve article. Ran Eilam (my former
boss at Cortext) commented that it was very well-written and that he
understood everything. He did say that it raised many questions that will
be addressed at the next meeting.
A certain correspondant also responded, that a pattern found in the code
was discussed in the perl6-language mailing list, but also that there's a
more efficient algorithm (which he sent to me). I acknowledged this was the
case, but said that I didn't want to invest time thinking how to do it right
when I wrote the code, and also that the original code was conceptually
simpler.
Yapcom
My comments regarding Yapcom
(the Perl Conference mangement software that Israel.PM is writing)
sparked an interesting discussion between Gabor Szabo and I
in its mailing list. I
commented a bit about the Subversion repository organization. I also had
trouble getting all the tests to succeed, and was able to solve it with
some consulting. Eventually, a patch of mine was accepted there.
Bill Joy Interview
haruspex: I agree with what you say about the Bill Joy
interview. He seems incredibly cynical and pessimstic. His comments about Linux
are also strange:
Re-implementing what I designed in 1979 is not interesting to me
personally. For kids who are 20 years younger than me, Linux is a
great way to cut your teeth. It's a cultural phenomenon and a business
phenomenon. Mac OS X is a rock-solid system that's beautifully designed.
I much prefer it to Linux.
First of all, there has been much progress in Linux since what was the
state of the art at 1979. Secondly, in a way Mac OS X benefits from the
progress done by the Linux community. Most Linux programs can run on Mac
OS X as well, just as much as they can run on other UNIXes. Hell, some
UNIX programs were also made to run on Windows, so in a way Windows people
benefit from them, too.
Thirdly, Linux still has some clear advantages over Mac OS X, and many features
that are present in Linux are not present there. (and naturally, vice versa).
Finally, if you want to compete with Microsoft and Windows, Mac OS X is not
enough. You can't tell people that they need to buy a non-i386 computer
just to run the alternative Operating System that they want. Linux can co-exist
on the same x86 computer as Windows, which is not the case for Mac OS X.
I'm not the kind of guy who would immediately denounce Mac OS X, just because
some of the GUI and the desktop there is not open source. Also, while being a
big fan of the GNU extensions, I still accept other more minimalistic UNIXes.
But saying "Mac OS X Rocks while Linux Sucks" is kind of like saying that
"Windows XP Rocks while Windows 2000 Sucks". (or vice versa).
dmoz.org
I finally became editor of the dmoz.org Linux User Groups category. I've been
cleaning it up by accepting pending links, and handling errors. When I finish
with all my current pending links, I'll probably post an editorial on
Advogato, asking for people who are members of LUGs that do not appear them
to submit them there. As it is, it is still very lacking.
Thoughs about XML
movement: I
agree with you that Linus Torvalds does not understand too much what XML is all
about. I don't think it's good for anything. I also, many times invented my
own configuration syntaxes instead of using XML, because they were more
human readable and maintainable or suitable for what I had to do.
Nonetheless, XML nested nature and the fact that you can apply arbitrary
transformations to selected pieces of text, and that you also have attributes
are sometimes priceless. Linus' indented example can only get you so far,
before you start re-inventing a lot of XML and poorly.
Usually, XML is not very suitable for configuration files which need to be
human editable. I don't know if the LM-Bench configuration syntax requires
XML or not (I never used LM-Bench), but there are times people should use
it. I defined my own XML syntax in two occasions already, create a lot of
XHTML and DocBook documents and uses it indirectly in some programs (like
OpenOffice).
Women in Linux
I hope I don't get flamed for this, because I really don't mean it, but here
goes. After my discussion in the LinuxChix issues mailing list, I spent some
time corresponding with one of them. One of the conclusions I reached was that
until there were more women in prominent positions in the open source world,
then female Linux enthusiasts will always suffer from being viewed as
second class citizens by their male peers. (I'm not saying people should
view them this way, but they will).
In a sense, in the open source world, as in other worlds, there is the
iceberg effect, in which there is always a close to the spotlight elite.
For example, in Holywood we hardly ever hear about someone who is not an
Actor or a Director (or sometimes screenplay writer), even though the
other people involved in producing movies are much more numerous.
If someone told me "Women can't write Novels", I could point him at a great
deal of excellent Women Novelists out there. But if someone told me that
"Women can't hack open source software", I'll have a harder time, because
the examples are more isolated and few.
So my question is: why? The "Encouraging Women in Linux HOWTO" goes a great
deal to dispel some of the common myths about why Women are and are not
deterred from computers. But all these reasons can only go so far to explain
why we see so few of them as project heads or first-class programmers.
Even if we assume that there are fewer Women Linux users than men, then
we still have to accept the fact that the number of first class hackers who
are female is even lower.
One thing I believe is true, is that less women believe that programming is
fun. Many male software professionals share this view as well, but among women
it is more severe. Even the correponsdant I talked to emphasized that she
much prefers system administration to programming, because the former was
more "social".
So, what can we do to convince people (men and women) that programming is
fun?
Hacktivity
Worked a bit on the IGLU Jobs Tracker. It is almost ready for replacing the
original one. There are still a lot of things on my to-do, but they are not
as critical.
I also contributed some feedback and a few small patches to Yapcom, but have
yet to do a substantial contribution for it. (partly because it does not work
on my system for some reason).
Finally, I wrote an essay titled "The Joy of Perl", which explains why I
like Perl so much. It is available upon request. (send me an E-mail)
Reading
Made some progress with "Extending and Embedding Perl". Also, read many things
on the Net, among them Paul Graham's Java's Cover. The latter is an excellent article, as most of the
things by Paul Graham. He was right that there was something very fishy about
Java at the time. And I still think it is over-hyped and much less capable
as a language than other languages I know.
Talks with Laymen
I went to the Barber on Sunday (finally - my hear was way too long). During the
hair-cut, I had a conversation with him, told him about my degree and my
projects, and started explaining about Open Source and what it was good for. (
he naturally could not understand why anyone would embark on a software project
which he did not intend to sell) I could not explain anything I wanted within
my time frame - maybe next time or I could stop by. At the end, another patron
came in, who tried to help him with a computer problem he had. Turned out he
worked in 012 support and knew Jess.
Yesterday, on the way back home, I talked with a woman on the ride back home.
The conversation started from politics (a flat income tax, the settlements in
the west bank, the poverty-reduction paradox), and I ended up telling about
Neo-Tech, Julian Jaynes' Bicameral mind theory, "Feeling Good" and cognitive
psychology, and finally open source software in a nutshell (for completeness
sake). She actually knew
about Mozilla and heard about Linux, and I explained her the four Freedoms
of Free Software, etc. She agreed that most of what I told her indeed made
sense, but naturally could not convince her of the my entire philosophy within
the time frame.
She told me her son was now studying Math, Physics and CS in the Hebrew
University as part of the IDF "Talpioth" project. (a famous project aimed
to create very knowledgable and intelligent army researchers). The problem
was that each year, several people whose grades are low are removed from the
program, and so there's a lot of pressure to suceeed. I'm sure glad as hell
that I don't have such constraints in my studies.
29-Nov-2003
Computer Science vs. Software Engineering (cont.)
kilmo: in regards to
your comments
regarding the usefulness (or lack thereof) of the output of the Computer
Science department. First of all, it does not invalidate my point that most
students come to the Technion's CS department to learn how to program or at
least to get a certificate that will show their competence as programmers.
(whether it indeed does is a different question).
Secondly, in regard to the post itself: my condolences. ;-). It is highly
possible that 20% of the faculty cater to 80% of the students as far as their
research is concerned, while 20% of the faculty cater to 80% of the students.
From what I know of the Electrical Engineering department, a larger part of
their research is more down to earth and useful. Maybe that what happens when
you have a department dedicated to a theoretical science.
I know that in M.I.T., for example, there's one department for both Computer
Science and Electrical Engineering. This removes the duplicacy of the courses
between the two faculties that we see so much in the Technion, and also
possibly injects a lot of practicality to them CS researchers.
Linux in Action revisited
Well, my suggestion to turn the Haifux' Welcome to Linux series into a
shorter "Linux in Action" series was rejected (possibly for a good reason),
but Linux in Action could still be a good idea as a complement to it. For
instance, we could have a day full of Linux demonstrations, in a similar
manner to the Linux Circus that took place a couple of years ago.
A Good Reference for Perl
Eran has recently installed RedHat Linux 9.0 in order to learn how to
program better. He wanted to learn Perl, having heard so many good things
about it, and so started out with my "Perl for Perl Newbies" series, which
he claimed was very well written. Then he wanted to look something in the
perl man pages, and said he could not make heads nor tails of them.
As he wasn't the first one I heard to express this amount of unhappiness from
them, it got me thinking about writing a better reference for Perl, in a
similar fashion to what Python and PHP have. So I brought this on perl5-porters and
received many heated responses. Apparently, many people believed that the
man pages should be left in their current not-so-idiot-proof state, or that
it was rightful to expect people to pay to get a better reference.
From my experience getting my patches to the documentation into bleadperl,
it was a relatively painful experience. While there were many people who
actually had meaningful comments, there were always those few who complained
that it's making them too wordy, or loses character out of the document.
Eventually, most of my patches were accepted, but it was still a painful
procedure, as it seems there isn't a consensus in the perl5-porters mailing
list on the exact purpose of the perl*.pod documents.
Add this to the fact that I'm not sure that the Perl POD documents can ever be
made very suitable for beginners, and that their organization is a bit lacking,
and I think it may be a good idea to simply start a documentation project
("Doclanx" or "Reflanx" both named after the Phalanx project) from scratch
that will produce a comprehensive reference that is more suitable for
beginners. Our own codebase, our own rules, our own progress.
What I would like to do first or as I start is collect user stories about the
existing documentation. That way we can tell how to best organize the new one.
ISP/Phone Company Support Incident
A couple of days ago I sank into an all-time low: I called the ISP support line
and he actually guided me in something. It all started when my Internet
connection got hanged out and nothing I tried to do to resolve it (restarting
the modem, restarting the router) helped. So I called the ISP line. A support
person answered and when I told him I had a NAT, he said I should connect the
computer to the modem straight or else he can't help me. So I did (I have
two Internet cards). Here he guided me through the procedure (my Windows
networking configuration skills got a bit rusty lately), and then it still did
not work. Then he heard that the modem was configured to use PPPoE, so he said
that we either need to set it back to PPTP or he can't help me. (as usual,
these support people are more clueless than us hackers or power-users).
I knew that my father would not like it so I gave him my father.
My father got angry, and eventually disconnected and tried to contact the
Phone company support team. They eventually said that the line was probably
OK, and possibly the modem mis-configured itself. So we reset the modem (with
a tooth-pick), and it went back to PPTP, but we were able to connect to the
Internet again. Pheewww! Now we need to set it back to PPPoE sometime, but
still it wasted a couple of good hours.
Browser Wars
I read the beginning of the Browser Wars II: The Saga Continues
article. It was quite entertaining, but short of useful information. But it
got me thinking: as Mozilla (and browsers based on its engine, like Firebird)
is mature and usable and MSIE is buggy as hell, and will only ship with new
versions of the operating system, we can expect the user-base of Mozilla and
similar alternative browsers to actually grow, at least not if it weren't
for all those MSIE-only sites. But I thought of a way to accelerate it: start
creating clean, standards' compliant web-sites that may
or may not look well in Internet Explorer. I'm not saying that we
should break them on purpose. Just not test them on it, and if people complain
that they break tell people to switch to Mozilla or whatever. (as it will be
good for them).
The question naturally rises why it is not equally as worse as web-sites that
are MSIE-only. There are several reasons:
-
MSIE 5.5 and above are specific to a certain operating system and
architecture. Mozilla and similar browsers are truly cross-platform.
- as such MSIE may not be available on the development platform of the
web designer. I design all my sites and have tested them on MSIE by
using the laptop. Now, I'm not going to bother.
-
MSIE is not open source. Mozilla is - I cannot fix the bugs there
even if I wanted to. If bugs exist in an open source project I can either
fix them myself, hire someone else to do it, or blame myself for not doing
either. With MSIE, I have every right to blame Microsoft for their
incompetence. And I can have them eat their own arrogance.
-
Users can always switch to Mozilla or whatever - I can always tell
them to do so. On the other hand, I cannot switch to Internet Explorer if
I'd like to use Linux (which I do).
-
MSIE is not standards compliant while other browsers are - in
fact, a prominent Microsoft engineer said standards-compliance is not
a high priority for the MSIE team. Since I design according to web
standards, I don't want the new Netscape Navigator 4 to be in my way.
-
MSIE is not going to be maintained independently - the only
prospect of getting a browser upgrade for MSIE is to buy a new OS. Buy
a new OS just to get a new version of the browser? That's the joke of the
month. Other browsers come with periodic upgrades with many improvements -
all for free.
So that's it. I'm going to use such cool stuff such as CSS child selectors
(html > body), max-width, Alpha-transparency PNGs, and
:hover on elements besides links, as well as the full XSLT
specification. I'm not going to break compatibility on purpose, but I
certainly won't prevent a cool standards-complaint feature from inhibiting
my pages. And I can't run MSIE on my choice of system, so Microsoft have
themselves to blame if it doesn't work.
Finally, I may put the no-MSIE icon on each and everyone of my sites.
With a link to a page explaining this new WWW order. No more Mister Nice
Guy! Microsoft: adapt or perish!
(this scheme may not be an option for your organization's sites, but I'll apply
it to mine)
2-Dec-2003
Computer Science and Software Engineering (cont.)
kilmo: I agree with most of what you said in
your
entry. I agree that the CS department should teach theoretical
computer science, because these are the foundations that a good programmer
eventually needs to know or at least understand. I don't agree that the
definition of Computer Science is "the science that deals with the study,
implementation and creation of algorithms". This is more like the definition
of Algorithmics which is a subset of Computer Science. CS is more inclusive
and also talks about writing modular code, computer language design, OS
design, and everything else that has to do with writing software for
a computer. (hence the name).
Between the time the algorithm is written in paper in pseudo-code, to the
time it runs inside the computer, many choices can be made that will affect
its performance and ease of integration. I remember one time where two
optimizations I implemented in Freecell Solver made the program run about 50
times as fast (in brute, with the overhead of executing a separate process
for each of the inputs), while not decreasing the overall complexity at all.
And naturally, there is the art of designing a software right: choosing the
right tools and APIs, creating good interfaces, writing modular code, etc.
Then, of course, there is software management: working as a team, building
a schedule, writing tests for the software, using version control, bug
tracking procedures, and so on. All of these fall under Computer
Science. Unless, of course you want to claim that they (and CS) are included
under Software Engineering, and then we can continue the argument over the
meaning of terms ad infinitum. :-)
Doclanx
I wrote a Mission Statement for Doclanx. I don't intend to publish it until
I have some serious content to show for, but at least it's there to organize
my thought. Next, I wrote a small section about how to learn Perl in the first
place, so people can understand the reference.
Meanwhile, there was a lot of messages posted to perl5-porters on the original
thread. Most of them were bashing me, but some came with bizarre albeit perhaps
useful suggestions.
IGLU Jobs Tracker
Worked a bit on the IGLU Jobs tracker. I converted it to use CGI::Application
and fixed some bugs and made the interaction a bit nicer (added colours to
the table rows, etc).
Someone reported a bug in which transmitting an illegal parameter in the
area, caused the server to display an "Internal Error" error. He initially
thought it was an SQL injection bug, but I realized it was a non-harmful
Perl bug, that could have been caused with any area that's not on the list.
Next on my agenda is a small redirect bug that someone else has discovered
(relatively by mistake), and converting the code to use Tangram. And then
ton of other stuff. :-). So many things to do, so little time.
Wrong Predictions
In Java's Cover Paul
Graham says: "Sun's business model is being undermined on two fronts. Cheap Intel processors, of the same type used in desktop machines, are now more than fast enough for servers. And FreeBSD seems to be at least as good an OS for servers as Solaris. ". Of course, what he said was true, only that Linux became
the most common operating system for Intel servers.
This reminded me of a similar prediction in the C++ Programming HOWTO:
"As memory (RAM) prices are dropping and CPU speeds are increasing, scripting
language like PIKE will EXPLODE in popularity. PIKE will become most the widely
used scripting language as it is object oriented and it's syntax is very
identical to that of C++ language. " Obviously, Perl, Python, PHP, Ruby and Tcl
are more popular than Pike is, and there isn't a visible trend of Pike becoming
more popular. Guess that similarity to C++ is not the top priority when
choosing a scripting language.
9-Dec-2003
Wine Lecture at Telux
The Sunday before the last, Shachar Shemesh gave a re-run of his lecture about
Wine to the Tel Aviv Linux Club. This time, the lecture was more polished than
the time he gave it on Haifux. He threw a lot of funny jokes throughout the
lecture and it was very entertaining. Shachar is a great lecturer.
Next I have a Perl-IL
meeting, with presentations by three people including me. In the Haifux
front, there was a meeting yesterday of a post-mortem to the
Welcome-to-Linux series. I could not attend it because of an exam I had (see
below). In any case, next week, Aviram Jenik will give a lecture about Spam,
which I look forward to.
Studies
I had to hand out three statistics homework sheets yesterday. Two exercises
gave me some trouble. One of them was tackled, but the other - a very similar
one yielded a solution that was similar to the correct one but not identical.
I ended up handing it as is because I could not find what the trouble was,
despite the long hours of staring.
Otherwise, I had an exam in Thermodynamics yesterday at 18:30. It came out
quite convenient to me because I study that day and plus my father had a
conference at the Technion, so he could give me a ride there and back. I woke
up early so I was quite sleepy throughout the day, but during the exam
I was OK. The exam was not too hard, but I'm not sure I did all the
exercises correctly. I'll see what my score is.
Yapcom
I finally got Yapcom to work. As expected it turned out to be a problem in
which the E-mail could not be sent. After that was fixed everything worked.
Still it is a bug.
Meanwhile, I bugged the other developers with comments about the PATH_INFO
environment variable and other such things.
IGLU Jobs Tracker
I implemented an ad-hoc administration screen that so far only displays
the records with some inactive links. Now I have to restrict it to a
a certain logon, which would take some work. Having done it, I was glad
I used Template::Toolkit because I was able to extend the template of
the job to display the links.
I talked with Eran on the ICQ about it and he gave some useful commentary
which I may choose to implement.
Reading
Read some more of "Extending and Embedding Perl". The book is not too
interesting so far, but I suppose it can prove useful if I need to write
a Perl extension.
I also read another chapter of Mary Poppins. Maybe I should get myself
to read more fiction.
Dmoz
Another day - more pending links. Only this time, I was able to clean
the pending links out of the User Groups category. Now, all I have to do
is add all the remaining groups there. Guess, it's time for the editorial
about it.
fc-solve-discuss
There was quite a lot of action recently in fc-solve-discuss. It started when Danny A. Jones
posted some questions that were raised after he wrote a Breadth-First-Search
Freecell Solver to find optimal or near-optimal solutions for Freecell. Then
it took on a more active tangent when Eric Helser posted some question on how
to actually write a solver, as he had problem doing so. So, the guys and I
helped him.
I hope this trend go on.
17-Dec-2003
Studies
I had two tests one in each subject I'm taking this semester. The Thermodynamics
test went pretty well, but I'm not entirely sure I did it perfectly. I'll see
what my grade will be.
Yesterday, I had a test in Statistics. It went so-so, and I had difficulties
with some sections. Nonetheless, both tests just protect the main score from
the main test, so they are not critical.
I had a relatively hectic few couple of days. On Monday, I had to get up early
to attend the Statistics lessons (as usual), and in the evening I had a Haifux
meeting, which meant I arrived home late. On Tuesday, I had the test in
Statistics from 17:30 to 19:30, and I returned home again, and went to sleep
at about 10:30 PM. And today (Wednesday) I had to get up early and go to the
Thermodynamics lessons. But I'm glad it's over and now I have an extended
weekend in front of me.
Perl Meeting
I had a Perl Meeting last Thursday. I went there by bus and had to walk. When
I came there, there were few people there and not too many joined us. But it
was fun. Before the meeting, Ran collected money from everybody and we went
together to buy the snacks. Then the presentations started.
Shlomo Yona gave a presentation about the Perl Garbage Collector. I could not
say he renewed too much to me. (except in telling that the Java garbage
collector supported distributed GC). Still, it was a very good and fun lecture.
It was followed by a small demo by Ran Eilam. He demonstrated how he started
from the Java test in Eclipse, and gradually wrote the rest of the code with
the help of the IDE that did a lot of code writing for him. We concluded that
it would be very difficult to do it with Perl, because it's a more complex
langauge and such that is much less easy to manipulate.
Then, some people had to leave and could not hear me give the presentation on Haskell. The audience asked many questions during the lecture, and I had to
explain some of the simpler examples in detail. Eventually, I ran out of time
and skipped some of the more complex ones. But it went quite well, albeit
I'm not sure how many understood it.
During the meeting, I returned the "Writing Perl Modules for CPAN" book and
took the "Perl and XML" book (by O'Reilly) which was something that someone
returned.
Afterwards, the guys decided to go to the bar, including the one who was
supposed to give me a ride. I decided to skip it as I was tired and found
a ride with Thomas Maier. On the road, we talked about his job and my
educational/employment status.
Ran Eilam wrote a meeting
report on the new Israeli Perl Mongers Wiki.
Haifux Meeting
On Monday, Aviram Jenik gave a
presentation about Spam to the Haifa Linux Club. The presentation was
very entertaining and fun, with many interruptions from the audience to
discuss the dynamics of Spam and how to deal with it. I was especially amused
by the "Time Traveller stuck in 2003" junk-mail he received.
After the Meeting, Aviram gave a ride to Tzafrir Cohen and me until the Netanya
Junction. I called Dad on the way, and he drove us from there to Tel-Aviv.
Reading
I finished reading Mary Poppins. It's a very nice book, and I might order
the sequels if I feel like it. I also read more of "Extending and Embedding
Perl". I also read things I found on the web like
myths
open source developers tell ourselves.
Hacktivity
I added some idioms to the page in progress of
Idiomatic
Perl. The Wiki implementation gave me some trouble and sometimes
reported the page has changed during its editing, which it didn't.
I also added some things to the newly set up
Israeli Perl Mongers Kwiki:
a page for Israeli
Perl Projects which is now more up to date than the one at the regular
site. (I imported all the existing content there); and I also started
a book reviews
section, where I place my book reviews without having to wait for
the webmaster.
I also downloaded and installed the latest GIMP 1.3.x and played with it
a bit. It's very impressive and polished, but so far it seems that the Script-Fu
logos scripts got broken. This may have been fixed according to a message
I saw in its developers list.
20-Dec-2003
YAPC::Israel::2004
The presentations
list for
the "Yet
Another Perl Conference" in Israel, 2004. So, it's final that
I'm going to give a lightning talk about
the
Template Toolkit and a 60-minutes long presentation about LM-Solve.
Now I need to prepare the presentation about the Template Toolkit, but first
I'm waiting for the notice about which formats are acceptable for submission
,so I won't work twice. Meanwhile, I'm planning it...
KDE Problem and its Resolution
The "Konqueror" and "Home Directory" buttons of the KDE panel stopped working.
I found out the very command line kfmclient openProfile webbrowsing
did not work at all, not even from the konsole. (got a "KDEInit could not
execute kfmexec" or something like that message). After some investigation,
I realized that it worked for different users.
At first I was able to resolve it by creating a
$HOME/.kde/share/kfmclientrc file with some settings there. (this
is after some investigation of its source code). But then
yesterday, it broke again. Renaming .kde to .kde-bak resolved the problem, but
made me lose all the settings. So I started renaming directories inside it,
and seeing if they change anything. After a long time I found out that renaming
applnk-mdk resolved the problem. Then I tried just deleting the
konqueror.desktop file there which also made the problem disappear.
All in all, I wasted a lot of good hours on this problem which could have been
invested in something more productive. Whatever, now I'll know what do when
it happens again.
Gimp Patch
Now I can tell that I updated my
Gradient-Fu patch to
the latest development version of the GIMP. I received some helpful comments
from the core developers on the mailing list and on the GimpNet #gimp IRC
channel.
What this patch does is create Procedural Database functions for manipulating
gradients, thus allowing them to be manipulated from withing scripts. Here is
the Gimp Bugzilla
Issue for it, where one can follow its development.
The patch is not complete yet, as there are some gradient manipulation routines
that can still only be done in the gradient editor. But I'm getting there. The
patch was scheduled for inclusing in Gimp 2.2, because the developers are
anxious to get Gimp 2.0 out soon.
What is "Computer Science"
kilmo:
I think that defining "Computer Science" solely as "The science that deals
with the study, implementation and creation of algorithms" is incorrect and
tries to convey some political agenda. By all means, "Computer Science" deals
with the entire whole of programming for a computer, not just theoretical
algorithms. What you describe is better defined as "Algorithmics".
Let's look some definitions. The Wikipedia entry say: "In its most general sense, computer
science (CS) is the study of computation and information processing, both
in hardware and in software. In practice, computer science includes a variety
of topics relating to computers, which range from the abstract analysis of
algorithms to more concrete subjects like programming languages, software,
and computer hardware. As a scientific discipline, it is a very different
activity from computer programming and computer engineering, although the
three are often confused. ".
The Free Dictionary says: "computer science - the branch of engineering
science that studies (with the aid of computers) computable processes
and structures". And you can find
more in Google.
So limiting the definition of Computer Science to pure theoretical
Algorithmics is probably not a rational thing to do. By all means, it includes
many areas that are more practical and applied.
A Productive Day
Yesterday was a productive day. I prepared several questions from the
pending Statistics homework, and also worked on the GIMP patch, managing to
do a lot of work. Eventually, I was interrupted for a while by the KDE
problem, but I was still very productive. Today is a bit slower with
all the E-mail reading/web-surfing/arrangement stuff, but I hope to get
on the swing soon.
Haifux Site
Haifux has a new site courtesy
of ladypine. It is based on her and mine original design
of the syscalltrack site. I also contributed some comments
in the
discussion about it in the mailing list.
An anatomy of Wikis
Recently I had to work with several Wikis, and I can testify that the syntax
or implementation of several of them could made using them a bit frustrating
at times. For instance, Chiq-Chaq's heavy reliance on JavaScript made it
unusable on Konqueror. Also, Kwiki seems to have a relatively poor syntax,
and some things are simply not possible in it. It is however, supposed to be
very easy to set up.
The Wikipedia seems nice for what I dealt with so far. It has a very powerful
syntax and also allows uploading of images and stuff like that.
23-Dec-2003
Studies
I now have an extended vacation as I don't have to study tomorrow as part of
the Hanukkah vacation, which is nice. Meanwhile, in Statistics I had a
difficulty with one of the home exercises. The problem was that we were
given several distributions for the case in which there are two populations.
And it was not clear from the page when to use which. But I think I can overcome
it now.
Private Lesson in Perl
Someone who once drived me away from a Linux event and I later met in others,
wanted to learn Perl or other Linux things that I can teach him. Today, we
finally held our first session. I first asked him for what his experience was
with Linux and programming. It turned out he worked as a sys admin in a
company with several Linux installations, and had very little experience in
programming (not even from school). Then he told me that he asked people
what should he learn first: some said "shells", others "Perl" and others "C".
This is without taking Python, Ruby and Tcl into account. :-).
I said I think we will start with Perl. The reasons for it are that it is
easier to write shell scripts in Perl, than it is to write many Perl programs
in shell, so there will be a faster path to results. Retrospectively, I think
there are other reasons: I would not recommend C as a first language, because
it's two low-level and as such newbie-unfriendly. Also, learning shell first
may have a relatively crippling, because shell programming has a different
philosophy than either Perl (and friends) or C.
So I began teaching him Perl by following my Perl
for Newbies series. I found out he was quite
proficient in vi, and a fast typist, so it was not frustrating to watch
him code. During one hour (which was the sesssion length) we covered most of
the first lecture (which is originally intended for two hours). I realized
that there were many things he did not understand at first, which I had
to explain to him verbally. This may indicate a deficiency of the material I
prepared as far as people who are complete beginners to Perl are concerned.
During the lecture I made a couple of small comparisons with Python. For
instance, I showed that "+=" and friends did not exist in earlier versions
of python and "++" still does not.
I ended up receiving 50 NIS for the lecture, but it was fun any way you
look at it.
Site about Giving Presentations
Someone read in this weblog that I'm going to give a presentation, so
he pointed me to his
site which is dedicated on how to give effective presentations.
I checked this site and it is very good, so I'm mentioning it here.
Gimp Gradient-Fu Patch
I finished writing the patch, and it even has one more function that was
not present in the previous incarnations of it. You can check it out
on Gradient-Fu
for GIMP 1.3.x page. Now I have to wait until the development
of GIMP 2.1.x to start for it to be integrated. Or I can accelerate its
accpetance by resolving standing issues with GIMP 1.3.x myself... ;-)
WWW::Form
If you remember, I started using WWW::Form in the past for the IGLU Jobs
tracker and had to modify it to suit my needs. I haven't heard from its
developer for quite some time, after sending a couple of messages, so today
I decided to try and reach him again. I emailed him asking if he received
my last modifications, and if he'd like us to cooperate somehow on its
development more closely. He answered me saying he would gladly accept me
as co-developer, and we agreed that we will use a Wiki, and a version control
system, and modify the module extensively together.
Hopefully something good will come out, because it's preferable not to fork
it and the developer seems very much alive and kicking.
Some Threads of Possible Interest
Check this thread on Linux-IL about the Hurd for some discussion on how good
Hurd is, and some speculations if it'll ever be ready for prime time. (taking
into account the fact that Linux has been for years) It's quite amusing.
Here is a Hackers-IL
post I wrote about the "Great Divide" between Windows and UNIX.
Finally, here are my answers to the recent Microsoft Poll as I posted on the appropriate
Newsforge article about it.
2003-Dec-26
Life after Gradient-Fu
Now that I finished the gradient-fu patch, I don't know what to do with
myself. Well, let's not exagerate: I have plenty of things to do, but
still need to get on the hacktivity schwong.
I have some pending Perl-related tasks to do. For once, I want to find a
good Perl module that will enable me to maintain all the navigation menus
I created in my sites. I found two of them on CPAN - one of them is not
maintained and its author did not respond to me; for the other one I got
a response from its author with a CGI script he wrote for me that
demonstrates one of the menus in question. However, the CGI script uses a
CGI parameter to distinguish between the pages, and is not spread across
two servers as is the case with what I need. Thus, it, and perhaps the module
as well, may justify some more work.
Now, after I received this, I also received an answer from an Israeli
correspondant, who tweaked his code to do what I need. I suppose I have to
check it as well. In any case, this probably can wait for later on, because
my ad-hoc code for navigation bar is still functional and extensible. (even
though it sucks)
Next is the work on WWW::Form, which I have still to hear from its author
after the last E-mail I sent him a couple of days ago. (I'm beginning to
think, I should just fork it off for the time being, and continue to work
on it on my own).
And finally there's Quad-Pres. Here it's quite pressing, because I need some
new features for the Template Toolkit presentation I'm going to give on YAPC.
Maybe I should just throw the glove, and prepare it using Open Office.
Next, there are some lectures I want to prepare: the TT one naturally, and
"Freecell Solver: The Next Presentation", and the "Web Publishing with LAMP"
(Linux, Apache, MySQL and Perl/PHP/Python) one.
Then there's Doclanx. I have great plans for taking the Perl man pages, and
revamping the hell out of them, but haven't really started to do so, yet. I
suppose it can wait as well.
Finally, there are some political/philosophical essays I'd like to write. I'll
probably go with the one about drug legalization first.
So I have plenty of things to do, and not enough time to do them. At least
that would mean I'm going find time to do some of them. If it weren't for all
these E-mails I keep wanting to send...
Advogato Diary Interest Ratings
I'm not entirely sure the Diary Interest Ratings are a good idea. For a very
simple reason: people don't rate other people diaries! I don't think I ever
rated the diaries of fellow Advogatoers. Some of the blogs, I read because
I personally know these people and I'd like to keep up-to-date with their
whereabouts and thoughts. (so I don't rate because I cannot objectively
testify for their interest, as they are surely interesting to me).
The others I read on occasion, when I go over the recent entries list, when
I post one. I usually don't recognize all the nicknames, so I can't tell if
their diaries are intersting or not. (and I don't consider myself a blog
lurker, so there you go).
Even the blog I write is mostly for myself and my friends, and only secondly
for other people to read. (albeit I did receive some interesting comments in
response to things I wrote here from people I did not know).
Politics #1: Normalizing Thorahic Education vs. Antiochus' Decrees
Recently a suggestion was put forth to make sure the pupils who receive
Thorahic education (among the Orthodox Jews in Israel), also receive general
studies like the more secular Jews do. So one MP said it was unacceptable and
in the wonderful spirit of Hanukkah compared it to Antiochus' Decrees during
the time of the Macabees.
The problem here is that the Thorahic education are financed by the Government
out of Tax Payer's money. If this was not the case and these Religious
Jews were self-staining, I wouldn't have cared less if they received general
education or not, but this is far from being the case. As the financers of
this education, we have a right to pose conditions for them, and if they don't
like it they can stop receiving funds and try to finance it on their own. If
you ask me, an even better idea would be to stop financing education at all,
and simply lower the taxation considerably. It is getting more and more
sub-standard anyhow, and privatized education is usually the only good
long-term way to handle state-wide education.
Politics #2: A solution to the Palestinian Problem
And on a more serious note: I'd like to bring forth here, something I thought
about (and conveyed to an American correspondant of mine) as a solution to the
Palestinian problem. So far, the general belief among the Israelis is that
the Palestinians are primarily responsible for the situation. Likewise, the
general belief among Palestinians is that the Israelis are responsible.
So we have a deadlock.
Here I propose a way for the Israeli leaders to solve the problem once and
for all for the mutual happiness of both sides. Furthermore, this way is
very easy and simple. Here goes:
-
Give Israeli Soldiers a choice of whether they wish to protect the
Israeli Settlements inside the West Bank or not. Soldiers may choose
to stop protecting the settlements at any time, and will be relocated
to inner-Israeli squads.
Forcing someone to protect someone else is wrong, as any mandatory
draft is in essence.
-
The settlements can either remain using only their self-protection, or its
settlers can choose to relocate to Israel, where they will be given an
alternate home.
-
Israel will stop giving food relief to the occupied territories. If this
implies that a Palestinian State must be established, so be it. (I don't
care if there's a Palestinian State or just a very hostile governing body)
The
Geneva Accord has three serious flaws:
-
It advocates disarming the terror organizations. I don't see how it can
be done efficiently and the right to bear arms also come to mind. I would
adovcate the opposite: give arms to each and every palestinian. That way,
they will be less afraid of the terror organizations, who in turn would
be much more afraid of them. (you could allow all Israelis to carry
arms as well, for good measure.)
-
It adovcates forcibly evacuating the Israeli settlements. By all means
the Israeli Settlers have a right to live there as every lawful
person has a right to live anywhere. The entire concept of immigration
regulation and "fathers' land" is wrong.
What is wrong is forcing other people to protect them living there. (as
force is always wrong) This distinction must be understood and followed.
-
Last, but probably most important is that it requires the mutual
cooperation of both sides. One cannot expect the other side to follow
his part of the deal, while my suggestion does not require the
cooperation of the Palestinians.
If all of this seems to be absurd to you, just remember that I'm just
an everyday
libertarian.
(well Neo-Tech Objectivist to be
exact, but the political agenda is the same). As such I am doing my best
to be loyal to Justice, Freedom, Individual Rights and lack of Government
Control. This suggestion is perfectly in accordance to it.
I'm not trying to classify myself as the (Nationalistic/Religious) Israeli
Right-wings, or the (Pragmatic and Regulation-enacting) Israeli Left. Instead,
I'm trying to be Just, Noble and Free. It's a bit hard in Israel, where most
people do not know what Objectivism or Libertarianism are, or sometimes
even that this political option exists. But I'm handling it, as this is
what my ideals dictate.
2003-Dec-30
Linux Events
I attended Aviram Jenik's lecture on Sunday. Before the lecture I had enough
time to give a quick appetizer in the form of my "Template Toolkit" Lightning
Talk. I received one positive criticism, and two others that said that it
was not very understoodable. I believe they were correct and I understood how
to improve it. (but think it may make it into a seven minutes or ten
minutes talk).
Immediately after I was finished (and before I had the chance to hear any
feedback) Aviram came, and started with the lecture. The lecture was very good,
funny, and interesting. I first believed it was going to be a "preaching to the
choir" type of lecture, but it ended up also bringing up alternatives for
full disclosure, and many cases from the security history. (some of which were
very amusing) The room was crowded, and Shachar (who is also a humorist
"behesed") also contributed things.
There was also a Haifux Lecture on SMTP and Qmail by kilmo.
It seemed interesting and Eran was there, but I was very tired that day so
I decided to leave prematurely. I dozed off at least twice during the ride
back home, so I guess I couldn't have made it through the lecture.
I ended up modifying my Template Toolkit lecture and am looking for a chance
to give the modified one before the YAPC.
Talk with Ya'el Marksemer
On Monday, I drove to the Technion with Ya'el Marksemer (the girl who studied
Game Theory with me, and also was Orr's Officemate), and had a very pleasant
talk with her on the way. We discussed many topics. Among them:
-
SQL - she said she studied about databases in a course, and found the
bare SQL standard very hard to get by with. I told her that database
vendors create incompatiblity on purpose so people will not want to port
their databases to something else. I then told her of my (so far failed)
Extended SQL initiative.
-
I told her about a Technion lecturer I know. When I came to see him
once he was running an old PC computer with fvwm on it probably running
Linux. What he did was that he invoked one Emacs window and worked on it
exclusively.
When I came to meet him again, a year ago or so, his computer was upgraded.
Now, he had a Red Hat system with the Red Hat icon instead of the K,
anti-aliased graphics, flashy looking and all. What he did? Invoke an
Emacs session and worked in it exclusively.
Of course, he was quite old and studied at MIT back then. I'm still very
fond of him.
-
Software Management Stuff - we discussed having private offices
(Peopleware, etc.) vs. two or three people in an office. I told her of
a company I worked for, where people had to move their chairs to let me
out and she said that was indeed unbearable. I told her that Microsoft
U.S.A. allocates an office even for interns. Like I said, she was a
theoretical computer scientist, but she was still interested.
-
Her Thesis - she said she and her instructor for the M.Sc. were
now writing a scientific article about the proof she did for his
conjecture. She said she only used high-school Combinatorics there, but
there was a certain tricky part. I told her I wish to write an article
for a scientific journal about Freecell Solver, but said I would
need someone to tutor me and instruct me exactly what to do.
Forums Threads of Interests
My post to Hackers-IL's about "Reading Open Source Code" took several interesting turns.
First of all we came into conclusion that reading code was relatively neglected
in university, even though it's a very important skill and can possibly teach
students how to write better one. Otherwise, Tzahi Fadida said that some
open source code (and non-open-source code) was very hard to read, and we
discussed what measures could be taken. We discussed the XP-belief that no
documentation should be written for the code, because the code needs to be
self-explanatory. And we further discussed the validity of XP and how
"scientific" it is or should be.
My post Some
Thoughts on FogBUGZ for Windows on the Joel on Software forum
may be of interest, because it contains a answer by Joel.
Here's another one: More Linux Developers than Windows Ones
. This statistic, and what does it mean. (and what would be the
implications of open source on programmers) An offspring of this post is
Open source complexity Issue.
There was an opinion piece in the Register that was Slashdotted and
discuss.fogcreek.com'ed. See this thread on Joel on
Software for some of my comments.
Finally, if you want to converge the two most common themes in the JoS
forum (outsourcing and open source vs. the world) to one big conspiracy theory,
look no further than here.
All in all, mailing lists, the Joel on Software forum and Whatsup.org.il are
a huge productivity killers! But they do add some insights and understanding
even to very knowledgable persons.
Linux Problems
Here's a bootload of problems I've encountered recently. Ever since I installed
the Bitstream Vera TTF fonts, many fonts on my desktop got uglier. I don't know
why it happens and I don't know how to fix it, but I'll look into it. (removing
the package did not help).
I also was able to install and use kernel 2.6.0 today, with some advice from
a Linux-ILer (to install the module-init-tools package). At first, the Internet
did not work because I did not compile the Tulip-class modules (they were off by
default), but now everything is in order. (I'm writing this E-mail on 2.6.0)
The mouse cursor however, became much faster after the upgrade. I found a good
workaround by issuing "xset m 10/10" (play around with the numbers), but
all in all it is quite frustrating, and I'm not sure I'm happy with it as it
is now.
Finally, an old problem which still was not resolved. When I play an mp3 file
using XMMS with artsd, then I must set my buffer size to over 1000ms
(precisely that - 999ms does not work) or else the sound sounds garbled.
It does not happen with directly to ALSA playback or with KDE's Noatun. It is
annoying because the music gets played for another second when I press the
stop button or when a song is switched.
Hacktivity
I populated some of the Israeli
Perl Mongers Wiki (created a page there for non-Perl Israeli Projects)
and created a
Wiki hypertext base for WWW::Form. I also wrote some of the outline
for the second draft of an essay I wrote a prelimary version of some time ago.
Now comes the hard part of writing it in DocBook, entirely.
I also wrote the Cross-UNIX Portability - Facts
and Myths technical article. (first on paper and then on computer - don't ask).
Too much time E-mailing. Far too less coding. Teh teh.
2004-Jan-09
Perl Meeting
I had a Perl Meeting yesterday. It was raining on the way to the bus stop, but
from the bus stop next to Dapey Zahav until then, it wasn't raining, so I was
lucky because it is a long walk. I met Shlomo Yona at the hall, and we talked
a bit. Then other guys came. Kfir Lavi brought a digital camera and took a few
pictures throughout the meeting.
Before the lectures, we chatted about various topics. We talked about processor
speeds (Pentium 4's vs. UltraSPARCs), form process handling (WWW::Form and
friends), whether to use my meta-data database access or Tangram,
DBIx::DWIW, the August Penguin conferences, and other things. It was very fun. I went to buy two bottles
of mineral water, because I saw that we were going to run out of them in the
fountain. (they don't seem to keep a spare container there for some reason).
Afterwards, Ran Eilam and I went to buy some pastries to eat, which were eaten
like crazy.
Gabor could not come for the second time in a row, and his presence was once
again missed. Some people paid entrance fee to the YAPC::Israel::2004
conference, to the other organizers.
Then the lectures started. Shlomo Yona gave a very nice presentation about
edit distance. I recall needing to do this algorithm in one of my Algorithmics
courses, so this was a nice comeback. What I did learn there was that related
algorithms like this are a field of very active research and that they are
very useful.
Afterwards, Ran Eilam gave the second part of his presentation about Extreme
Programming. It was very insightful and entertaining as well, with various
interesting ideas and techniques for better software management. Like the
"Dukes and Engineers" game. Or cards to write the names of classes in the
program as you come with them, instead of UML. And naturally, the usual
depreciation of the Gantt chart. He explained why "pay-per-project"
outsourcing and especially off-shore outsourcing cannot work. Someone told
there that an outsourcing project that costed twice as much and had half
the requested feature-set was declared a success, because most projects don't
do that well.
Afterwards the guys went to hang in a pub, but I picked a ride home with
someone who drove northwards as I was quite tired.
Studies
I ended up switching to gvim for my Hebrew LaTeX needs. he2 sucks pretty
badly as an editor, and gvim is naturally much better. Now I'm using F9
to toggle the direction leftwards and rightwards and it is much more
convenient. And I have all my favourite gvim features.
Hacktivity
Did some work on my yet-to-be-reviewed/yet-to-be-published philosophical
essay. But more importantly, it seems that the development on
WWW::Form is really going to take off. Its Wiki is
being filled up, its author sent me the password he wants for the Subversion
repository. I'm still waiting for the code to be imported there, but it may
take a while, because the author has a job and is quite busy. Still, I was
able to talk with him on ICQ and AIM, and so I have a way to reach him
in which he is very responsive.
I upgraded my system to kernel 2.6.0. One thing I notice is that the first
instance of gvim (running above KDE) takes much less time to load.
Mailing Lists Threads of Interest
Here's a thread I started about the NVidia drivers. The problem I mention there
may be better now that I upgraded to kernel 2.6.0. In any case, here's
my
conclusion of the thread.
I joined the linux-elitists
mailing list and witnessed a large and lively GNOME-related discussion.
I introduced
myself which sparked a lot of discussion about BASIC. I always thought
the WHILE...WEND loop was present in most BASIC interpreters, but it only
got introduced later on in the PC revolution.
Then, I joined
in the GNOME discussion with some rants about GNOME's lack of similarity
to what I was used to. Just read it to find what a GNOME developer
answered to my complaints, but I was not satisfied by it. (I still find its
behaviour annoying)
Reading
Finished reading Extending and Embedding Perl. The book was written
professionally but was pretty boring. Here's my review of it.
I also read more chapters out of "Perl & XML". This book is very short,
but also very interesting, so I think I'm going to finish it soon. Then, I'll
have to find something else to read, and I did not take any books out of the
Perl library. (due to the fact that no one brought the requested books from
Gabor's house)
15-Jan-2003
Studies
On Wednesday, there was some construction on the Tel-Aviv->Haifa road so
the inter-city bus came late on Wednesday, and I had to take a later bus
and arrived late at class. Nevertheless, it seems it just started, and I was
able to write everything that had been written on the board in my notebook.
I then took the material for the previous lecture that was given in the
week in which I missed the lecture.
Other than that, I've been a bit busy solving the exercises in Statistics.
They seem to be pretty easy once you get the hang of them. Now, I have an
exercise about Linear Regression which seems very easy, but the page with
the formulas is a bit illegible.
Scanner under Linux
Turns out my scanner (UMAX Astra 3450) works fine under Linux. I first tried
it with kernel 2.4.x in which it did not work too well. After trying it in
Windows, and then rebooting, it worked well again. With kernel 2.6.x, I needed
to compile the USB sub-system and load some modules with various parameters.
(which I did not do already, but now I have the right configuration file to do
it).
WWW::Form
Ben Schmaus (WWW::Form's head developer) finally commited the most up-to-date
files into the WWW::Form
repository. I continued the work by first generalizing the "tr_class",
"tr_hint_class", etc. parameters to be "container_attributes" and
"hint_container_attributes". Then I documented everything that I added.
Following that, I wrote a couple of tests to one of the utility functions
in the module, and hope to continue this trend of writing tests. Ben is a bit
busy at work now, so he cannot invest a lot of time into it. We are still
discussing things via Instant Messaging, which is very convenient.
Anti-MSIE Campaign
I finally started out the
anti-MSIE campaign
on my web-site, after frustration from Microsoft's abuse of its
users, the web-developers community at large, and their apathy towards users
of non-Windows systems. Also pay attention to the large no-IE icon at the side-bar. Feel free to join!
Telux Meeting
I've been to gby's Telux presentation on Sunday, about
Embedded Linux. He gave some guidelines for error-free development of
Embedded Linux systems, and introduced uClibc (a libc that can be customized
with just the right functionality), BusyBox (an all-in-one UNIX toolchain, that
is also configurable to death), Kaction (formerly Tiny X), and FLTK (the Fast
Light Toolkit). It was very interesting and lasted only one hour.
Egged Site
The new incarnation of Egged's (the
Israeli national bus company) stopped working with Konqueror, and
only a basic functionality half-works with Mozilla. I filled in the feedback
form (an E-mail to webmaster@egged.co.il did not work), and got this reply:
"Hello Shlomi. I'm sorry, but the site is designed only for the Explorer
browser. I will thank you for your understanding."
This answer is very laconic, and does not address half of my complaints
there, nor assured me that they were going to be fixed. I answered him in
return, but was not answered. Guess I'll have to find some other means of
complaining.
24-Jan-2004
Life + Studies
I had been sick starting a week ago, but now I'm OK. Meanwhile I missed
the Statistics Monday, so I had a gap of several lessons which I did not
learn, and could not hand in the three assignments. I E-mailed the T.A.
asking when to hand them, and she told me to hand them on Wednesday. (which
came right before my Thermodynamics lecture).
On Wednesday I felt better, and took a ride to the Technion. I found her
room and waited for her there a long time, but the door was closed and she
was nowhere to be seen. I came to the room two other times throughout the day,
but she wasn't there then, either.
She eventually E-mailed me that she had an urgent meeting and could not come
to her reception hours that day, and so I should hand in my assignment at
the class on Monday (two days from now). I also need to hand in another
assignment then, but I don't know how to solve one of the questions because
it covers material that I did not learn yet. Whatever, I solved the other
question.
At Wednesday I also photo-copied the Thermo lecture that took place at the
hall without proper tables to write on, so I won't need to go through
understanding my bad writing being even worse.
The Eternal Jew
I might as well tell that the philosophical essay I worked on is
The
Eternal Jew. It is complete now, and I sent it to several people
for review, but none have responded yet. If you wish, you can read it
and comment.
WWW::Form
I added a lot of tests to it, and fixed another bug (while writing a test
to it, first). Ben promised he will release a new version of CPAN based on
what we have in the repository now, when he finds some spare cycles. (he
is very busy in work, now) We'll probably continue covering more and more
of the functionality in tests, and when the tests coverage is reasonable,
we'll start adding more features.
We've talked with instant messaging about some stuff, including error handling,
and adding common controls (like country-list, U.S. states' list) to be
auto-generated, as well as creating a function inside _setFields to
set one field.
Review of Perl & XML
I finished reading Perl & XML and wrote a review of it. This means
I now wrote the 10 last book reviews of the Israeli Perl mongers.
Quad-Pres Logo
I've been working on a logo for Quad-Pres using the GIMP. I started by
constructing a wireframe text saying "Quad-Pres". I finished the Q and the
u by now, but they are not perfect. Maybe I just need to look harder for a
suitable font. I think I'll install "Print Shop Ensemble III" as it comes
with plenty of fonts.
GIMP Bug Squashing
I spent some time tracing and fixing some bugs that had to do with the
GIMP Image Info Window. You can find the patches and discussion
in Bug
#118084 and
Bug
#132329.
Spam
Despite the fact that my SpamAssassin installation is up-to-date, a lot
of Spam on Vipe still slipped through. So I decided to enable its Bayesian
filtering. I invoked "sa-learn" with my ham and gradually had more and more
spam to put there. Now it seems to be working better and better.
I don't have a spam filter on my home E-mail, but I may eventually. To prepare
for this, I started collecting all my spam, so I'll later can input it into
the Bayesian filtering. I wonder if SpamAssassin can easily work with kmail,
because it's very nice.
Otherwise I discovered my ISP's SMTP server is on the black-lists of several
other SMTP servers. I still don't know if it's really an open relay or not.
MySQL Client Library
The MySQL client library for versions 3.x of the product was LGPLed, and for
versions 4.x it is GPLed, which does not allow proprietary applications to
link against it, without purchasing a license. So, I decided to compare them
to see how different they are and if the old one could be forward-ported to
the other.
It turns out to be a 2,764-lines patch, that most of it are whitespace-changes,
and can easily be manually applied to the older source, in a few days of work.
Generally, I disapprove of using the GPL in hope of getting more revenue this
way when LGPLed original is available, and the library does not have something
substantial to offer. So I think I'll forward-port the MySQL library.
Version Control Systems Overview Article
An
article that I wrote with an overview of Version Control Systems
got published on O'Reilly's ONLamp.com. I wrote a suggestions to it (with a
summary, IIRC) to the editors of O'ReillyNet some monthes ago.
chromatic answered me, said he would publish it and asked me
to write a draft. I wrote a draft and sent it to a couple of people I know
from the version control business, and they helped me revise and correct it.
Tom Lord of Arch fame was especially helpful with his commentary, but I
received a lot of useful commentary from other people.
The published article is not identical to the final draft I have. Some things
were clearly modified, and I believe that it detracted a lot from the article's
colour. But whatever.
Studies
I have no more lectures and tutorials for this semester. My first test is
in two weeks, and the next one a few days afterwards, which gives me some time
to study. I have a lot of material to cover as far as Thermodynamics is
concerned, and also need to prepare some material summary pages for
Statistics. (and naturally need to prepare for that too)
Work on WWW::Form
It turns out we forgot to include the README in the MANIFEST of WWW::Form 1.13.
I fixed it along with a test to make sure it won't be neglected. Now, the
question is what will make sure the test file will be included there. (Who will
watch the watcher?).
I also did some refactoring of the code. The original code had a function to
set all the fields parameters as inputted from the user. I converted it to
one small loop that calls a function that sets each parameter individually.
I thought that was enough to add new parameters for every form field, but then
thought of a better idea, and so created a function to return them as a hash.
Now, the user can sub-class this method alone, call the original and add more
parameters of his own to the hash reference that is returned.
I'm doing test-driven development now, writing tests before writing the code.
Hebrew XML with Perl
I wrote an article about processing Hebrew with Perl (it's in Hebrew).
I received some useful commentary on it and revised it accordingly. Now I hope
it will be published in the Perl
and Hebrew page.
PCLinusOS Live CD
I downloaded the PCLinuxOS LiveCD which is a Mandrake-based Linux Live CD. The
first burning produced a CD that booted but got stuck with some errors in the
middle of the initialization. It was probably because I did too many things
at once. So I re-verified the MD5 sum and did another copy. This time it worked
perfectly.
Well, I only played with it a little. I found out it did not have gvim, or joe,
(guess that if you want to have both GNOME and KDE, you have to give up
something), and so it wasn't ideal as a rescue CD. Still, it seems nice.
Probably a nice way to introduce Linux for newbies, or install Mandrake for
them.
GIMP
I stambled across a
bug in the GIMP Curves dialog when I was looking for interesting
GIMP bugs to solve. So, I tried to reproduce it on my system, but could not.
One thing I was able to do, even with fewer clicks than were described was
in the bug report, is to grab the pointer for the window with a few rapid
clicks. It is so bad, I have to kill the GIMP to release it.
However, Sven Neumann could not reproduce it on his machine, and he claims
it is a problem in my X server. I tried to disable the Nvidia acceleration,
but this did not help either. Even a bug fix from Sven to disable the
explicit pointer grab did not help. What could be the problem?
DocBook
I ended up using the XSL stylesheets of DocBook for processing "The
Eternal Jew" into XHTML. They are quite nice and I was able to customize
them to include a CSS stylesheet and other stuff. Now, I'm stuck as I want
to make sure a specific itemizedlist will be CSS-classed according
to its role attribute. This turned out to require a hairy XSL customization,
and I guess I'll have to learn XSLT better to do it by myself.
07-Feb-2004
Aarrggh! My Hebrew has turned into Question Marks
I edited a Hebrew HTML file with kedit, but forgot to set the encoding
appropriately. The Hebrew was edited fine. However, when I closed it,
I realized (after some experimentation) that the Hebrew characters have
all turned to question marks. The actual ASCII question mark letter.
I ended up losing the entire document. What the hell? Fury... fury... fury.
To prevent it once and for all, I added this to my .bashrc:
function kedit
{
LC_CTYPE=he_IL.UTF-8 /usr/bin/kedit $*
}
The reason I don't use an i18n'ed locale by default is because it causes my
fonts to become uglier. How lame is that? <sigh />
DocBook continued
Well, Bob Stayton helped me and instruced me the how to modify to the code
of the DocBook/XSLT itemizedlist handler to make it propagate the
role attribute as a class. Now, it works and I'm happy. Still I think it's
a huge mis-feature that role is not propagated for any element.
Version Control Article
My Version
control article now has many more comments. Many of them were in the
vain of trying to protect CVS and why it should still be used. I think this
is not true, and new projects should not start with CVS. I expect CVS to be
used in years to come, but be considered hugely deprecated just as RCS and
SCCS are still used today, but are also deprecated.
It was referenced
on OSNews.com (courtesy of Eugenia
Loli-Quero who also contributed to the Better-SCM site and
comparison), where there are more comments, and
it also hit Whatsup in this
feature in Hebrew. There it seems to form a discussion of the Linux
Kernel Development Model, why it requires BitKeeper, and whether it's a good
thing.
As a result, or just out of word of mouth, I received a great deal of E-mails
about the Better-SCM site lately. Someone even sent an addition to put in
Visual SourceSafe and CM Synergy to the comparison. (which I bounced
because it wasn't a patch to the XML file). I have modified the pages a bit
since then. Next, I plan to put its source on a public Subversion repository
so people can contribute more easily.
I also started sending a Newsletter about Better-SCM to all the people who
contacted me about it. ("Cathedral and Bazaar"-style) It worked pretty nicely
so far and I received a lot of useful input. Someone, however, wished to be
unsubscribed from it, and suggested I ask before I add someone to the
Newsletter. I have to think about it a little, but think I'll go with
unsubscribe on demand, given that most people are not very responsive.
Finally, there's now a
new mailing list - better-scm-discuss. Several people have joined now,
and there was some active discussion. That's good.
Perl-Begin
I managed to do quite a bit of work on
Perl-Begin. I moved its source
to a Subversion repository at opensvn.csie.org (which offers a very discreet
and unintrusive service, albeit sometimes the connectivity seems slow), and
then added a lot of content and changed the CSS somewhat (made it more modular
and nicer). Finally, I created a newsletter for it as well, and sent some
announcements to the people who contacted me about the site. One of them
replied with some useful suggestions. :-)
In any case, I contacted ask and the rest of the beginners
workers about contributing to learn.perl.org. Eventually, I found out that
perl.org had a hardware failure and so work on learn.perl.org was stalled.
What I did do was write a "learn/" section to
www.perl.org, which will take some time
until it is proof-read, and integrated into the main site. What I did there
was simply link to the appropriate places on learn.perl.org and perl-begin.
I'm glad I could find some time to do a lot of really productive work. I missed
hacking, and hacking on web-sites, while not being as challenging as hacking
on code, is still fun and rewarding.
Hackers-IL
Check this
message of Hackers-IL for a post I made to Hackers-IL in regards
to the new and annoying Yahoo Groups limitations. (Hackers-IL is hosted there).
There are three possibilities: accept the Status Quo, pay Yahoo Groups for
getting a primum service, or move to our own service.
We decided that being hackers, the last option would be best. The problem
is that several people have resources at their disposal, but none has the
time (except me). So, I went out and contacted sun, one of
the beak.hamakor.org.il's admins to host the hackers.org.il domain
there. He told us we should send a description of what Hackers-IL is all
about to the appropriate list and he'll see if everything can be arranged.
I wrote a
charter, which was criticized as being too long to be effective and
Arik Baratz wrote a shorter one, which was still very good. I ended up revising
both charters and
putting
them online. We decided we are going to use the shorter charter for
contacting the beak admins and for further purposes like that, and the more
verbose one for putting on the future site.
The discussion was pretty long, and eventually we debated if it was off-topic
or whatever. We reached a conclusion that it was just a "meta" discussion,
which was a necessary evil, but that it was still annoying. This was towards
the end when everything stabilized, so it just closed the discussion.
Yesterday, I sent the mini-charter in its final form to the appropriate list,
with some explanations on what we need in the present and in the future.
Mozilla's Firefox
I'm glad the Mozilla people changed the name of their browser so it
won't clash with the Firebird database. I also like the new name. It is
almost certainly based on the Biblical story where Samson sets fire to the
tails of 400 foxes and drives them to the Philistines camp to throw it into
chaos and destruction. There's a nice symbolism with trying to do the
same with MSIE, but I don't know how many of the target audience know the
Old Testament well enough to realize that.
Still, the name is very cool, even without recalling the story. Of course,
I have a feeling that it might start a new trend: Fire+[Animal]. Firecat.
Firedog. Firedove. Firebear. Firepeguin. Etc. All these names are very cool,
but one will have a hard time distinguishing between them. But who is John
Galt?
How Good are my Technion Grades?
I posted a post to the Joel on Software forum about
my Technion grades. This seemed to be a mis-calculation as many people
took the opportunity to criticize me, claim I was no-good or lazy, etc. They
obviously haven't been to the Technion...
Here is the creme de la creme of the discussion by someone calling himself
"Caliban Tiresias Darklock":
Shlomi, just a bit of constructive criticism here... and this *is* supposed to
be constructive...
You come across as childish, inexperienced, and belligerent. Nothing you have
written interests me. What little sticks out in my mind is not positive. You
sniff at the college for not having a standards-compliant web page, as if
anyone really cares. You sneer at CVS for not having a few minor features, as
if anyone really cares. You solve a few basic puzzles, and build a
presentation generator that you use to create a bad Perl tutorial. Then you
come in here and say you know you're a good engineer.
Unfortunately, you're not. You're just a competent Perl programmer. But
engineers solve problems; if you expect to impress me with your work, do
something that's relevant to someone other than yourself. Why in the world
would I want to read your ramblings about SCHEME or run some program you wrote
to solve mazes? I know why I would want to read *my* ramblings about SCHEME or
run some program *I* wrote to solve mazes -- because I'm arrogant and
self-involved. I love writing stupid little things for no good purpose, just
because I can. Every engineer does.
Maybe I should check the definition of "constructive" in the dictionary again...
Melissa Joan Hart - Pictures
You innocently type "melissa joan hart" into Google and search it for images and what do you get in the first hits? That's right -
soft porn.
A few notes are in order. The Google search for MJH (=Melissa Joan Hart) is
perfectly fine and clean and leads to various fan sites and pages. Secondly,
some of the other pictures in the search are not provocative at all.
Thirdly, the first pictures are absolutely horrid, IMO. I don't have a problem
with sexual or even provocative photos - some of them are very nice - but
these are done in very bad taste. (I guess ESR was right when he noted that
most porn is disgusting)
Moreover, this is not entirely an issue of "child-safety", keeping "innocence",
etc. I just wish that the Google images search was a bit smarter about this,
as the Google regular search is. It is possible that it was the anti-thesis
to these pictures that made them get a higher rank.
In any case I found
a
very nice picture in the first page of hits. Hart (fully groomed)
standing among automn leaves. She looks a bit sad, but the picture is very
beautiful. Having downloaded it, I noticed it was scanned and of low quality.
So I decided to reduce its size using the GIMP. The latter simply opened it
in %50 scaling ratio, which made it look very decent, so I just reduced it to
this size. Finally, I placed the picture in my Konq+Xmms Virtual Workspace
instead of a very nice picture of Gabrielle Anwar, which I had there for
several generations now. (I guess it's always time to move on)
Melissa Joan Hart - Silly Etymology
Well, enough Cybersex for now and let's just discuss MJH's etymology. Her
full name is "Melissa Joan Catherine Hart". Considering the fact that
Catherine is a variant for "Catherina" we can see she has no less than
6 private names:
-
Meli (short for Emily)
-
Lisa (short for Elizabeth, or Alisa)
-
Jo (the "Little Women" short for Josephine)
-
Anne
-
Cathy
-
Rina (a common Hebrew female name meaning sing-song)
Six names for a girl who isn't even thirty yet. (!)
Solving
Well, for something a bit more serious. I had some kind of enlightenment
in regards to
Solving.
Now, I simply say that instead of trying to bring the open-source world-like
Distributism model into western-world-countries, I am instead going to propose
that competing leaders will compete for controlling the countries instead of
the "official" elected government. This will create a multi-tude of leaderships
all competing for the same niche, and doing so logicall and reasonably, instead
of one leaderhip who cares more about his public image than about being a
honest person.
I revamped the content of the site (without re-writing it from scratch). Then,
I linked to it on the IRC in several channels, and also on a web-designers'
list I am a member of. From the replies I received, it seems that I did not
explain myself correctly enough, and people thought it was Feudalism or
even worse. This means something is still wrong there. I still got some
useful replies and input. Guess it's time for more revamping...
<sigh />
22-Feb-2004
Israel.PM Meeting
The recent Israeli Perl Mongers meeting went very nicely. First of all, I had
an opportunity to do a lot of Chit-Chat there, which is something I like a lot.
We talked a bit about WWW::Form, Perl in Israeli Banks (some banks don't wish
people to know they are using Perl, because most people don't know what it is),
Cobol and Java as the new Cobol, Mail::Audit vs. Procmail, Spelling errors
and Microsoft Office features to correct them, and Microsoft Office in general
(95, 97, 2000, XP).
Then came a lightning talk by Jason Elbaum. The first thing I noticed was that
he had a strange accent. I guess I'm not very used to hearing Australian
Accents. He gave a lecture about making XML-TV listings out of Israeli
television listings on the Internet. The lecture was very interesting.
Afterwards, I took the stage and gave the Template Toolkit presentation (in
preparation with the YAPC one). It went quite well, but after it, Ran told me
I should have focused on one part more and create more suspense. I'll keep that
in mind for the YAPC. One question I received was how compatible was my
solution with laymen, who don't know squat about programming. I answered that
the philosophy of the Template Toolkit (and Perl in general) is that you
and your co-workers should know what you are doing. I previously encountered
this mentality in talks I had with several PHP users.
After that, Gabor took the stage and lectured about HTML, CGI, CGI::Application
and HTML::Template. The lecture was very interesting and instructive and I
enjoyed it a lot despite the fact it was quite long. I learned some things
there: "<form>" without arguments in the HTML leads to the same URL,
a bit more about CGI::Application, etc. We learned that the first language
Larry Wall designed had its code embedded in text, but luckily he came to his
senses afterwards, and did not implement Perl this way.
Afterwards, most of the people there decided to go to the Bar and I took a
ride back home with Ronen Kfir. I forgot my coat there, but when I got home,
I called Gabor and he let me talk to Ran who took the coat with him.
Eventually, I was able to set up a time to take it a few days ago. My father
drove me to his home in Northern Tel Aviv, and I took the coat, while being
able to meet his wife and see his baby. (but not much besides)
Hamakor Meeting
We held the annual meeting of Hamakor members, a week or two ago. I was one
of the first to arrive, but was very soon followed by many other people from
Haifa and Tel-Aviv. I got to do a lot of chat with people I know which was
very nice. The meat of the meeting was:
-
A presentation by gby about what was done in the past
year of Hamakor. (current status)
-
Short introductions by Hamakor members who wished to be elected.
-
Elections for the new board and comptrollers committee.
I was first nominated for the board, but then moved my nomination to the
comptroller committee, and in my introduction asked people not to vote for me
because I did not think I was very suitable. I indeed wasn't voted, but I hope
to find other ways in which I can get involved without being an official.
New Homepage URL
I changed my homepage URL from t2.technion.ac.il/~shlomif/ to
http://shlomif.il.eu.org/, thanks
to the kind help of the il.eu.org hostmasters. The new domain gave me
some trouble so far. Hopefully, it will be resolved in the near future.
Hacktivity
I did a lot of work on the Solving site. A lot of revamp and more revamp, new content, some graphics,
some CSS tweaks, etc. I asked for critique from the webdesign-l mailing list
and received some very useful input, which I also applied.
Solving now stresses a completely different paradigm: instead of trying to
implement distributism in the government, I simply propose that individuals
form competing leaderships, or support them, to make sure that people don't
take the elected leadership for granted.
I also did a lot of work on the
Better-SCM site. With contributions
from other people, I added Visual SourceSafe and CM Synergy, and perhaps other
systems into the comparison there. I plan to put all the source in an online
Subversion repository, which will make contributions easier.
One thing that annoys me about Better-SCM is that people keep bugging me about
darcs.
Vocabulary Builder
I'm looking for a vocabulary builder with a certain behaviour.
This
post to linux-elitists explains what the program I want has. I have yet
to receive a satisfying answer. Meanwhile, the discussion there diverted to
discuss whether Debian was indeed the Elitists distribution, and whether
Debianists are simply too full of it. I am to blame for this. ;-).
Advogato
I certified miguel as Master due to his work on GNOME. I also
see that mulix is blogging in Advogato, again. Welcome back,
Muli!
05-March-2004
Telux Meeting
We had a Tel Aviv Linux Club meeting the Sunday before the last on the
"Open Source development
model and how non-programmers can contribute" given by Ori Idan and Shoshanah
Forbes. The lecture was very nice and was finished quite early which gave
us a lot of time to chat. (I was also able to return buying a soda to someone
whom I lended money for a soda can from). Can't recall exactly what I talked
about but it was fun.
YAPC::Israel::2004
I've been to
YAPC::Israel::2004
some time ago. I woke up early in the morning to catch my ride with Thomas
Maier. We drove to Central Tel Aviv to pick up Ran Eilam. Ran was a little
late, but he arrived at the end. Then we drove to the Interdisciplinary Center
in Herzliya, where we got to the designated location. There we helped prepare
the bags for the participants, and their tags. It took quite a while, but was
quite fun.
Then came the introducory talks and the lightning talks. I enjoyed them a lot,
and one of them was my own that went very well. Next came the longer
presentations. Ran Eilam's presentation about the Aspect module was very nice,
and introduced some Aspect-oriented-programming voodoo. Marth Greenberg's
"System Monitoring with Perl" was quite informative and interesting.
Next I attended Yuval Kogman's "Making your objects smell funny" presentation
where he introduced some cool AUTOLOAD tricks. Afterwards I had to give my
presentation about the LM-Solve module, but there was very little attendance
in the hall. (3 people to be exact) I gave it anyway and finished up in due
half the time, and was still able to catch half of Dov Grobgeld's presentation
about the Perl/Gtk2 module. (I felt that my own presentation did not go too
well).
Afterwards I attended Mikhael Goikhman's "Artificial Intelligence and Perl"
which was a bit tedious. Then came the book giveaway's in which I was given a
book about qmail as a present.
Then came the Speakers' Dinners and BOFs. It was at the Seven Stars Mall, in
a coffee shop called English cake. There was a show for children nearby and all
in all I did not feel very well. I called my father to pick me up from there.
While he took the time to arrive, I went to the key-signing. The problem was
that I was the only one who brought my key fingerprint from home and no-one
else seemed to do so. So I figure out that I'm not going to sign the keys of
the other people. :-(
Disk on Key
My father upgraded his USB disk-on-key and gave me his old one. So I tried
to get it to work with Linux. After trying to figure out why the
appropriate SCSI disk could not be mounted with a simple mount command despite
the fact it was present in the SCSI listing under /proc, I finally realized
I did not have the SCSI disk module compiled. After compiling it in the
kernel 2.6.x tree and installing it, the problem was resolved.
I was able to mount the disk and place files on it and everything now works.
Hallelujah!
Sodipodi's Font Problem
Sodipodi had a problem that whenever text was typed, or the font dialog
invoked, it would crash. It started happening only after I installed a large
number of fonts. I reported the bug to their mailing list, but it did not
get me very far. After a long while, I discovered that inkscape, which is a
Sodipodi fork did not have this problem. Then I read an E-mail in its mailing
list that said that someone else had this problem and fixed it.
The patch he supplied in the problem report fixed the problem for me as well,
and Lauris Kaplinsky (the Sodipodi developer) applied it to the CVS version.
All's well that ends well.
Gobliiins on Dosbox
I'm now playing Gobliiins on Dosbox - it's a lot of fun, and I'm making a lot
of progress.
New Wiki for Perl-Begin
Having been displeased with Chiq-Chaq for the wiki implementation, I've
been looking for a different wiki. I've tried installing TWiki, but its
installation could not be carried out by a mere mortal, especially if I
don't have root. PerlJam on FreeNode's #perl suggested
PmWiki. I've tried
it out and found very easy to install and with a nice syntax.
So, I set it up on BerliOS, and converted all the old content to the
new
wiki (in one evening), and now the new wiki is set up and filled with
the original content.
17-March-2004
Solving the smb mount problem
I had a problem with my Mandrake installation that after upgrading to
Mandrake 9.2, I could not mount SMB partitions with the mount command. I tried
to look at the source of the mount command, but the util-linux package
is very hard to build with debug flags. (I could not figure how to do it within
my time frame).
But strace came to the rescue and I was able to find out it was
looking for a /sbin/mount.smbfs program. Since I only had
/sbin/mount.smbfs2 I symlinked to it, and then everything worked
properly.
Installing dbxml
One day I set out on trying to install Berkeley dbxml. Problem is it had
several dependencies: Berkeley DB with the C++ bindings, Apache's Xerces,
and Pathan, an XPath library for Xerces. Compiling Berkeley DB with the C++
bindings went very smoothly (I just had to tweak my configuration script a
bit). I was also able to compile Xerces as an RPM from its tar.gz.
Then I set out to install Pathan. I tried to compile the .src.rpm but I
encountered two problems. The first was
a compilation
problem that was only encountered on gcc 3.3.x (which I have). I was
able to resolve it based on the description in that bug report. Then, I
encountered a missing header file. After a long time of head-banging, I realized
I had to set up an env var to the path of Xerces' source, instead of its binary
installation. After I did it, everything worked.
After Pathan was installed (which took several hours all in all), I compiled
dbxml, which went very flawlessly, and nice. Did not have time to experience
with it yet, but I may need to find a way to use it from within a scripting
language of some sort, because I'm not fond of using C++ for this.
What I did do was play with the Perl XML::XPath CPAN module. I got
the hang of XPath through it, but of course, the queries did not run very
quickly as its a pure Perl module.
Upgrading to Mandrake 10.0
I upgraded to Mandrake 10.0. The upgrade went pretty OK, albeit it is highly
possible the CDs were not burned well. Then came the usual slew of upgrade
problems.
First thing was that xmms kept crashing when trying to play a song. I found
out the problem was that xmms-arts was not installed at all, and so had to
install it. After I did (version 0.7.0) everything worked well. 0.7.0 seems
more solid than 0.6.0 which was buggy as hell and forced me to downgrade to
0.4.0.
Then I realized I had no Internet. Apparently, the Ethernet driver
configuration got lost and I had to fix it using a quick visit to the Mandrake
Control Center.
Afterwards, I found out KMail was crashing and I could not read the mail.
I had no idea why, until I looked at the rpms list and found out that version
3.1.x of KMail was still installed. I removed it and installed KMail 3.2.x
instead. The problem was probably that kmail 3.1.x belonged to kdenetwork
and kmail 3.2.x to kdepim.
Then, kmail informed me that it was now using $HOME/.Mail instead of $HOME/Mail
and had to move all the directories. I instructed it to do so, but then I saw
that it displayed none of my existing folders. I panicked ("all my mail
was lost"), but then remembered to check ~/.Mail. What I found there was that
there was a ~/.Mail/Mail directory there, with all my original files. (stupid
KMail!!). So I moved all the files manually to ~/.Mail/ and then everything
worked fine.
One thing I noticed was that suddenly all my fonts became smaller. It may
have to do with the Sans font becoming smaller, for some reason. I changed
the fonts manually in kmail. gvim itself displayed the fonts in a horrid font.
After consulting the good guys at FreeNode's #vim channel, I found out that I had to do a set guifont=Bitstream\ Vera\ Sans\ Mono\ 12 (with backslashes
before ths spaces) instead of a
set guifont="Bitstream Vera Sans Mono 12" (surrounded by
double quotation marks) which worked fine previously. Don't ask me why, but
it works.
The came the GIMP Compilation problem. I tried to compile gimp from cvs, but
could not because of the following error: << Can't locate object method
"path" via package "Request" at /usr/share/autoconf/Autom4te/C4che.pm line 69,
line 111. >>. After I searched google for it (which was a bit
hard because it does not accept quotation marks inside.), I realized that
I had to delete the autom4te.cache directory and then everything
worked. Afterwards, during the linking stage I had to resymlink some shared
libraries because gimp was looking for their canonical unversioned filenames.
The last problem I encountered was that Samba did not send Hebrew filenames
to my Win98 laptop. I looked at the smb.conf man page, but could not find
anything. So I logged on to the channel #linux.il at EF-Net, where someone told
me I needed to set the "unix charset" directive (and from my understanding the
"dos charset" directive as well). This caused everything to work again. I also
deleted the old directives that were relevant only to Samba 2.x.
Just another typical upgrade, only this time more eventful.
Perl Meeting
We had an Israeli Perl Mongers
meeting last Thursday. Here is
my
report of it as I wrote in the Israeli Perl Mongers Wiki.
Telux Meeting
Last Sunday we had a Tel Aviv Linux Club meeting. Ohad Ben-Cohen gave a very
nice lecture about Securing Linux. I learned through it about some common
exploits and about some ways to better secure your Linux system. (which I
am a bit reluctant to implement on my system).
One thing that disturbed us was that the lecture was prepared in PowerPoint
2000, instead of in a cross-platform solution like OpenOffice. Lecturers
should know better than that. And besides, the PowerPoint 2000 format has a
security problem of containing the Ethernet address of the computer in which
it was last edited. So the show-maker has no shoes.
GIMP Bug
After playing a bit with the GIMP, I discovered a GIMP bug. Apparently, it also exists in
GIMP 1.2.0, and is quite annoying.
Reading
I finished reading "The
Design of Everyday Things" and wrote
a
review of it. All in all it's
a very good book: very entertaining and very important.
Now I started reading "The qmail Handbook", which I took from the book giveaway
of the last YAPC. Having read the first chapter of the introduction, I was
impressed with qmail's feature-set and design. The second chapter with the
installation instructions left with the feeling that Dan Bernstein wished to
make it hard on his users. Clearly his belief that "There are two kinds of
interfaces: good interfaces and user interfaces" is showing. As a result of it
and its license, qmail is a mess to install. But I'll read on, because I need
to administer a qmail installation and may need to administer further ones
in the future.
Studies
I've been studying a lot lately for my upcoming Thermodynamics exam. I finally
got the hang of Ideal gas (Fermions or Bosons) in the classical limit, and
Fermion Gas and Boson Gas in the quantum limit. With the help of someone on the
IRC, I understood something else about it which disturbed me.
30-March-2004
Gilbo'a March
The Saturday before the last, my father and I attended the Gilbo'a March. He
wook me up early, we drove and there and took the short 6 km route. Dad came
there with sandals and kept getting stones into his shoes. He also slowed me
down quite a bit, and I had to wait for him a lot. As far as food was
concerned, I ate a few apples, a snack, and a hot dog after the March. I don't
remember my father eating anything at all.
Anyway, we had a good time. The scenery was beautiful and it was fun walking
outdoors. I took the book "The qmail Handbook" with me for the ride and read
it on the way there and back.
Random Computer Problems
When trying to use KAddressbook, I noticed that my distribution lists
disappeared. Turns out it was a change of format, which I had to fix manually.
Berkeley dbxml caused me more problems, with some obscure exceptions being
thrown by the C++ code. After contacting a support person of Sleepy Cat, I
found out it happened because I was using Xerces-C 2.5.x instead of 2.4.x.
Downgrading Xerces-C solved this problem.
When upgrading some of my Mandrake packages, I noticed that upon invocation of
some scanner-related code, the process started to consume all CPU and print
some kind of message. This even happened during boot time sometimes. I filed
a bug report
and found out that the problem can be solved by replacing the faulty
sane-backends package with its older version (of the Mandrake release). I did
it and now everything works fine.
When trying to help Eran, I tried to install the ADSL connectivity as a
PPPoE straight to the computer, without the router in between. I was
not successful, and eventually, decided to revert it. Upon boot, my networking
was left in a sub-optimal state: there wasn't a /sbin/route route to the
Internet and the eth0 Ethernet card was enabled. After a lot of head-scratching
, I was able to solve the problem by removing the S11internet startup script.
This is a script that starts the Internet connectivity, was enabled by
the Mandrake control center, and was kept there, after I tried to revert
the problem.
I tried to use drakfont to uninstall several fonts using the command line
--uninstall and it did not work. Nothing happened. I filed
a bug
report to it and eventually was able to fix it with a small
patch that took me quite a long time to write. (also available at the
bug report).
rpmdrake and MandrakeUpdate converted to using gtk2, so now the buttons
are in different locations in the message boxes. Thanks to the GNOME HIG
(= Horrible Interface Guidelines), I pressed the wrong buttons, but now
I simply have to take the time to think for a while about that. Wretched
GNOME developers.
I had a problem with Yahoogrooups that I was a member of a mailing list
, but could not access the web files. I tried many things, but they
did not work. After reading the usage instructions, I was able to be
registered to the web services.
Finally, now that I'm using KHTML 3.2.x it seems there are some new
bugs in it. For example, DocBook TOC's are displayed with vertical spaces
and a use.perl.org journal
is not displayed correctly. Hopefully, I'll find some time to
isolate these problems and report them to the KDE bugzilla. Will wonders ever
cease?
Studies
I took the two second chance tests - in "Introduction to Thermodyanmics
and Statistical Physics" and in "Statistics". I did not felt very confident
about the Thermodynamics test (it was pretty hard), but eventually I got
a final score of 78%. (Yay!)
The Statistics test did not go too well. There were many difficult
questions there and several things that I did not know how to answer. I'll
wait for the grade and see how I fare.
MLDonkey
A couple of days ago, I downloaded a song at a speed of 40 KBps during its
entire download. It was finished in a second, and it was not corrupted!
11-Apr-2004
Passover Seder
My extended family held a Passover Seder last Monday. It was very nice, and
it featured that in the second part of it my cousin Ronen and his wife came to
visit. (he and his wife are now staying in Seatlle where he works). He said
that his work demands long hours, and he works in a company that does all
kinds of things with computer games.
Hike with Dad
My father and I decided to go outdoors at one day of the Passover vacation.
We drove all the way to the Apolonia site in Hertzlia, and nearly lost our way
there, only to find out it got closed shortly afterwards. So we drove back
home and this time really lost our way (there were no signs there), but managed
to get back home. We went to the field north of the neighbourhood. There were
many blooming flowers there ("Kahvanim" and "Hartzioth" and others which I
did not know by name). We also noticed the horses farm that was established
there. One time I've been there a horse nearly ran over me, which made me
unwilling to return. We also visited the Shomronite graves there. So, it was
very nice.
Perl Meeting
We held a Perl meeting at April 1st. I wrote a
report of it on the Perl Mongers Wiki.
Registering to Yahoo Messenger
The guy I teach Perl too, only has a Yahoo Messenger and MSN Messenger
accounts for IM. So I had to get an account on one of these. I tried to do
so for both, but with no avail. Eventually I succeeded in making Yahoo work.
The steps I took were:
1. Vainly trying to configure it in gaim.
2. Reading the Gaim FAQ, and realizing that I need a newer
version of Gaim.
3. Downloading the SRPM of the new version of Gaim.
4. Trying to install the depedencies, and discovering that they were moved
to a different place.
5. Reconfiguring the Mandrake sources (which made it download the hdlist.cz
all over again.)
6. Downloading the dependencies.
7. Compiling the SRPM.
8. Installing the RPM.
9. Successfully loginning in to Yahoo Messenger!.
Now allow me to faint...
RMS-Lint
My RMS-Lint article that I
published on 1 April, got slashdotted after I submitted it there.
This caused the iglu.org.il server to become unresponsive. At first to every
protocol, but after a day or so, only to HTTP. (ssh was fine). After a fellow
administrator restarted the web-server, everything worked fine again.
I guess I shouldn't try to slashdot an Israeli resource like that again.
Reading
I finished reading "The qmail
Handbook" and wrote a
review of it to the Israel.PM Wiki. It seems like I was given
the first edition while there's already a second one.
Now I started reading the book "The
Origin of Consciousness in the Breakdown of the Bicamarel Mind"
by Julian Jaynes, a book I have wanted to read for a long time.
I'm now at half of the book, and it's very interesting so far. Mind blowing,
even.
iglu.org.il
I was finally able to enable unregistered users to submit news in
www.iglu.org.il. This had been a factor that decreased the site's popularity
in the past after the switch from the Zope and Squishdot framework which
allowed that. Now, there's a minor problem that no topics appear in the
topics drop-down, but I haven't figured out how to enable this. Still, it's
still functional.
Hacktivity
Not too much. In Subversion, I started tackling an efficient tracing of the
past revision URL from a peg URL and revision. I got halted in the middle
because I did not know how to design the appropriate protocol over Subversion's
variant of WebDAV/DeltaV. After a lot of reading and consultation, I was
able to deduce something on my own, but afterwards C. Michael Pilato gave a
specification for a different API handler that he'd like to see implemented.
So, now I'm on the rebound waiting for some Subversion officials to what
exactly should be done.
Otherwise, I spent some time yesterday, cleaning up my Dmoz.org categories. It
was time consuming, but now I have very few pending links there.
Google and the Google Directory
Google seemed to have lowered the profile of the Google directory. For once,
it isn't linked to from the front page,
or from a search results page. The web-sites that are searched now also
don't contain the directory's description or links to the category where
it appears in.
It does appear in the More Google
options page, but this is relatively out of the way. This is a step
backwards because I actually liked the descriptions and the integration
with the directory. Besides that, the Directory is still heavily out
of date, and was not synchronized with dmoz.org in a long while.
01-May-2004
Long time no blogging... teh, teh. Oh well, here's what I have to say today.
Social Gatherings
There was a Haifa Linux Club lecture a while ago about Ingo Molnar's O(1)
scheduler. I got a ride there with Ori Idan. On the way there we ran into
a traffic jam and so we were late. The lecture was very nice and interesting,
and I think I sort of understood how the O(1) scheduler works. I found out
someone was driving back to Tel-Aviv, but his car was full and I did not
really know these people, so I decided to go back with Ori (who dropped me
only on Hertzelia) as well. Ori and I talked with each other on both ways on
some interesting subjects. (too numerous to mention).
Then there was a Tel-Aviv Linux Club meeting. It was about Apache 2. Eddie
Aronovich talked at first about "Why Apache?" and then described how to
configure it. I expected the lecture to be about the advantages of Apache 2
over Apache 1.x, but this was not the case. In any case, Eddie is a good
lecturer and we certainly enjoyed it, and had some discussions in the middle
about Apache, IIS, and other stuff. The time of day of this lecture
sparked a lively
discussion on Linux-IL in which I bashed the long Hi-Tech work-day
that is so prelevant.
Helping my sister with UNIX
My sister, Noa, now takes the Technion "Introduction to System Programming"
course in which they are required to test their exercises on a UNIX system
(a Solaris box to be exact). To help her get along with it, I tried to
teach her some UNIX shell, vi and ncftp basics. She did not took my advice to
prepare everything on UNIX from the start, and instead did the exercise
with MS DevStudio. But naturally she then had to test it on the UNIX system.
So I guided her through that as well. What made matters more complicated was
that FTP and SSH access to the designated host is blocked by the Technion
firewall and we had to login and transfer files through an intermediate host.
I tried my best that instead of telling her the commands, I'll tell her what
needs to be done and so she'll have to recall the right commands herself. I
wasn't entirely successful.
I don't think she's fully independant now either, but hopefully she'll get
better in time.
Studies
I passed Statistics with a score of 57%, which is just above the passing
grade of 55%. I'm happy this is behind me. Then I saw that the Thermodynamics
grade did not enter the system. After some arrangements with the lecturer,
it happened, but quite late.
Then, I had to manage my way through some telephone and fax red-tape to
become applicable for the degree (which I hope I can get). Now, it is
on the waiting queue to be processed, and the secretary told me to contact
her a few days from now. Hopefully, I'll get my degree soon.
Subversion Hacking
Pheew... what past few days. First of all, I continued workin on the patch,
after there was some silence about its specification. Working on the operation
over WebDAV functionality was very time consuming and involved writing
quite a lot of code. At one point I found myself in need of recording the
HTTP conversation, and having been unhappy with what tcpdump gave, I used
Ethereal, which is a great tool and was just what was needed. This helped
me resolve the bug, but gdb was also of help in other places.
I also wrote more tests to test the functionality of the added product.
While testing, I ran into a nasty gdb bug, which strangely enough was
worse in gdb 6.1 than in gdb 6.0. Apparently printing some addresses
or variables produced random output while the program run was halted.
Hopefully, I'll be able to reproduce it with the final version of the
patch.
Writing the bindings for the custom Subversion protocol was relatively
easier, because the protocol was simpler, and was not XML-based. After I was
done, it turned out the conventions of the callback were inconsistent with
the rest of Subversion. So I redefined the specification to be more so, and
had to revamp the code somewhat to accomodate for the change. The new
conventions actually made the task simpler, but since the code for the
previous spec was already written, I just removed parts of it.
Now it's time for the patch to be reviewed. While one developer reviewed
some relevant parts of it, and another commented on what appeared in the log.
It was not reviewed entirely. I also have some items on the patch' TODO list
which I'd like to ask people about.
A recurring theme, was that I was perhaps not as independant as one can
hope and kept bugging people on the IRC. I'll try to be more independant next
time. Another issue is that people did not like the fact that I would create
a branch for working on the patch on the central Subversion repository. Thus,
I used working copy diffs, which were "versioned" according to their patches
filenames. I have about 29 such patches on my hard disk so far, and also wrote
some supporting scripts.
Now I'm going to faint...
Reading
I finished reading Julian
Jaynes' "The Origin of Consciousness In the Breakdown of the Bicameral
Mind". It was very interesting. Now, I started reading
"Feeling Good" again, and now see a lot of things
I missed or did not read in the first place (can't tell because I don't
recall them).
stalker
My payment for one of the O'ReillyNet has entered my account. So, I wrote
and mailed a check for my payment for my account on stalker.iguide.co.il to
nyh. Afterwards, he was glad to help me, and enlarged my
quota. I got the Subversion service back online by compiling and installing
everything in my home-directory, and restoring the repositories from their
dumps.
Then a problem emerged. There was a hard-disk hardware problem on stalker,
it went down for a while, and afterwards most of the contents of the disk were
restored (including my files), but now we have less space, until the disk
is replaced.
Powerout and its effects on KDE
I noticed that after the computer is shut down while X and KDE are running,
many of the KDE customizations get lost. My solution was to restore the
kdeglobals file from its backup copy. I now keep a copy of this
working file at hand for safe-keeping in that directory. And I have no idea
why it happens.
Quad-Pres
While I was working on a presentation with Quad-Pres, I noticed that
it always prepares the "Hard-Disk HTML" version of the lecture after
every "quadp render". It is supposed to be triggered only by a
"-a" flag. The problem was in a local copy that experienced some
heavy refactoring lately.
Today, I fixed it in my local copy. There was a small mixup that it
occured in the 0.10.x branch and not in the repository trunk, which
took me some time to figure out. (the trunk's code looked fine).
Finale
That's it for today. Well, this is what happens when you don't write an
entry for about three weeks. Next time I'll try to write more often.
27-May-2004
Studies
The department's secretary finished dealing with my degree and informed
me to contact the student's center. There I was informed that I still needed
to return a magnetic button to the faculty. So on one day, I took the bus
to the Technion and returned the button. Then, I was informed that everything
is OK, and then an approval of the degree will be sent in a few days.
It arrived in the mail a few days ago. I graduated from the Technion with
an average of 84.6 (higher than what was on my grades' list), and it was
said there that it is "with honours". So I am finally a Technion Graduate.
Clock Skew
Two of the computers: my desktop computer which is dual boot Linux/Windows
and the Win98 laptop, encountered a one month ahead clock-skew. From late
April to late May. To fix it, I wrote a Perl script to scan my home directory,
and modify the files's access time and modification time to their appropriate
date, using the utime command. (which I learned about from good people on the
IRC).
For the KMail mailboxes I had to write a different script that would convert
the dates in the messages to their appropriate dates. I consulted the #perl
guys further on this to learn about the format of maildir mailboxes.
After that, everything worked fine.
Nvidia Driver
The recent version of the Nvidia driver, which I tried to compile barked on
me saying it was unable to compile it. To understand what was wrong, I unpacked
the package, delved into the source, and tried to figure out why it refused
to compile against the source tree.
Eventually, I discovered that by setting the SYSSRC environment
variable to /usr/src/linux, I could make it detect the kernel source
tree there, and build itself. This took me a long time, however, and the kernel
source tree was located in the standard place. This really shows that it is
high time the Nvidia drivers were GPLed.
Subversion: BDB 4.0 vs. BDB 4.2
I discovered that Subversion on my local workstation still used Berkeley DB
4.0 instead of Berkeley DB 4.2. To fix it I had to fully mess up with the
./configure flags of the depenedencies to get it to use BDB 4.2 instead. But
I was able to eventually.
After I did it, I tried to process the repositories of stalker with my local
copy of subversion. It did not work. Someone at #svn told me that it could
be because of a different libc or whatever. "Berkeley DB compatibility is
subject to planetary arrangment.".
Israel.PM Meeting
The meeting occured a long time ago, and since then I forgot a few things.
I recall it was a hot day, and that we mingled outside the building. We
collected money to buy snacks, and were dismayed to discover that the shop
we bought the drinks in moved to a different location, and we had to settle
with the water fountain inside.
Pinkhas Nisanov gave an
interesting presentation about TRIZ - the theory of inventive problem
solving. I could not quite understand how to actually use it, but it ended
with the subset of the 40 basic principiles for contradiction resolution,
which were pretty interesting. Pinkhas brought with him two guests from the
Israeli TRIZ association, which left after his presentation.
Then Gaal Yahas gave a presentation about using Perl as an interaction
language in a Java environment. He described a commercial system written in
Java for helping to manage Internet equipment, and showed how he used Perl
to parse and process Java code, generate an equivalent Perl code (with
accessors and all), and then use it to perform queries at run-time. There was
also some XML involved there, in the queries and reports. It was pretty
interesting.
I was able to lend the "Design of Everyday Things" book to Yuval Kogman, and
also to take a book: "Design and Analysis of Algorithms". I started reading
the latter, but decided I was not interested in reading it and so just left
it on my desk, and will return it the next meeting.
Telux Meeting
There was a meeting of the Tel Aviv Linux Club about two weeks ago. Mike
Almogy gave a presentation about Web Hosting. The presentation was interesting
but a bit unfocused. The main problem was that there were many technical
glitches throughout the lecture. First of all, he was unable to connect
his laptop, then we had to call the building's supervisors to log in into
the computer for us. Finally, after the break, the computer was locked with
a password and we could not use it again. This all happened because Eddie
was away.
I was supposed to get a username and password there, but unfortunately, I
couldn't reach Eddie in time. Hopefully next times would be better.
iglu.org.il Upgrade
iglu.org.il was upgraded, from RedHat 6.2 (!) to Debian Stable about two
weeks ago. The upgrade itself was done on Friday, and on Saturday, the machine
responded. I was able to login as root and create an account for myself, but
then the password was changed. To get the password, I sent the old one to
sun encrypted with his GPG Public Key. He sent me an encrypted
message back with the new password.
After I got the password, I was able to restore my home directory, as well
as restore accounts for some people who contacted me. Finally, and most
importantly, I restored the web server. This involved quite a lot of work,
as Debian is incompatible with RedHat as far as the httpd configuration is
concerned. I had to start with the old configuration and gradually convert it
to the new one.
What gave me trouble was the fact that I used a few CPAN modules in an
application I wrote for the server. I tried to use the perl CPAN.pm module,
but it turned out that outgoing connections were blocked. Someone found one
of the modules (CGI::Application) in the Debian Packages pool, and I was
able to install it using apt-get. But then I discovered it was an old
version of the module, while I was using a newer feature. So I installed
the new version of the modules I needed on the script's local directory, (after
scping and copying them - %-)), and then it worked.
stalker
stalker.iguide.co.il experienced some hardware problems, but was restored
a few days ago. It then turned out all the binaries I compiled there could
not run because they complained on an incompatible libc version. So I had
to recompile everything (Berkeley DB 4.2, Apache+libapr, neon and Subversion).
I had a few problems with running the programs after everything was ready.
Strangely enough, they were resolved after a few recompilations. Then,
however, I found out that the old repositories could still be accessed by
the new configuration there, which was nice.
Subversion Hacktivity
I've been doing some Subversion bug-squashing lately. In
Issue
#1771 where paths with identical prefix of components were trimmed
by the display of the diff command, I first wrote a shell script to fix the
problem, and then wrote a regression test, and a fix, based on what was
suggested in the issue. The patch was eventually applied.
In Issue
#1851, I investigated the cause a bit and added a comment there. I also
wrote a fix to Issue
#1814, which was not applied yet. I also added a comment to
issue
1043, claiming it is invalid. Again, there wasn't too much activity
about it.
Perl Quiz of the Week
I've been heavily involved with the resurrected
Perl Quiz of the Week lately. I've
written solution for the two latest regular quizzes. Plus, I contributed
an
expert quiz. It turned out the latter was an NP-complete problem.
I also sent out another expert quiz suggestion to MJD, which may be submitted
some time later, and have an idea for another one.
8-Jul-2004
Installing GIMP 2.1.x
To keep up with GIMP development (also see below) I needed to install
GIMP 2.1.x from the CVS Head. So far so good, only that it requires
Gtk-2.4.x, while Mandrake 10.0 ships only with version 2.2.x of it. I
decided that in order to not mess too much with my system, I'll install
it (and all the other dependencies) in a separate
/usr/local/apps/gtk-2.4.x prefix.
So I started downloading and compiling everything with the --prefix
flag, but then run into a problem. When compiling gtk+ (after compiling its
dependencies), I got:
/home/shlomi/Download/unpack/gui/gtk+-2.4.1/gdk/.libs/libgdk-x11-2.0.so: undefined reference to `g_unsetenv'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_type_instance_get_private'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_completion_complete_utf8'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_param_spec_get_redirect_target'
Someone on the IRC told me that it was because it linked against an older
version of glib. After some grepping the .la files, I found out that the atk
.la file contained a reference to /usr/lib/glib. (the global un-upgraded glib).
Eventually I realized that I had to use the following script for compiling
atk:
#!/bin/bash
export PKG_CONFIG_PATH=/usr/local/apps/gtk-2.4.x/lib/pkgconfig/
export LD_LIBRARY_PATH=/usr/local/apps/gtk-2.4.x/lib:"$LD_LIBRARY_PATH"
LDFLAGS="-L/usr/local/apps/gtk-2.4.x/lib" ./configure --prefix=/usr/local/apps/gtk-2.4.x/
That solved the problem. Afterwards, I had to install some support libraries
that GIMP required. I eventually opted to use --with-svgz=no (no gzip
compression) for librsvg, because otherwise it required a bootload of
dependencies.
Eventually everything was installed, GIMP was compiled fine, and I was
able to continue hacking on it.
Gradient-Fu Patch
As the GIMP 2.1.x development started, integrating my gradient-fu patch was
one of the first priorities. This patch, as you may remember, supplies the
GIMP with PDB entries to manipulate gradients. So, early in the GIMP 2.1.x
tree, Michael Natterer integrated the patch into the GIMP (with some
cleanups and modifications to the API). Then, when I wanted to adapt
a script I wrote to it a while back, I discovered it did not have functions
to actually manage the gradients list (create, delete and rename gradients).
So I wrote one, and Naterrer added it after some modification.
I also adapted my old "Rainbow Strips" gradients' demonstration script to
the new API. I also performed some general cleanups to the otherwise amateurish
Scheme code I wrote back then. (not knowing better). It was eventually ready,
but I don't think it's in the Gimp CVS head yet.
My sister and UNIX
My sister Noa had some C-shell assignments in her homework as part of her
"Introduction to Systems Programming" course. I helped her in it. While I did
that I explained to her about using basics: wildcard expansion ("*" into all
files), program return code, argument values, etc. I also demonstrated some
bash paradigms to her, and kept tauting its superiority over csh.
Some time ago, a record was broken: both my sisters were at the working room,
and both were working on the Linux system, while I did not and could not.
Michal was playing the KDE game Kolor Lines on the desktop computer (where
the Linux system is installed), while Noa was using a VNC connection for her
homework from the laptop. Amazing!
Job Interviews
Having graduated from the Technion, I'm now looking for a job. I've sent my
C.V. to job ads in newspapers, the Internet, etc. and renewed my availability
in various human resources agencies. So far, I had 4 job interviews.
The first one was for the DIMES project, which is a project in Tel Aviv
University, that aims to map the Internet, by volunteers installing clients on
their computers, and using them to send information to the server which
will concentrate them. I think the interview went pretty well, but they did
not contact me since. (they had other candidates) Tel Aviv University is very
convenient for me, as I was able to walk there from home.
The second one (that took place last week), was at a
startup called
DiskSites. They manufacture an embedded Linux box that caches files
that are transported over remote-file-service protocols (like SMB) over a
WAN connection, so there will be less latency. The interviewer talked with
me a bit about my past and then asked me a few technical questions. I did
pretty well at it.
Today, I had a second job interview there, with the CTO (if I recall
correctly). He asked me about my professional past and wanted to learn some
things about my personality. It also went pretty well, but since they probably
have other candidates, I'm not sure I got the job. He told me that they will
let me know what their final decision regarding my employment is, at most two weeks from now.
Then, I had a job testing application at a company called Flash Networks on
Tuesday. The questions there were challenging, but I did well on the test. (
except for the last question which required some TCP/IP zen). An employee
there called lately, when I wasn't available, but I don't know exactly when
. I know it because I saw a sticky note my Mom wrote for it.
Due to the fact that there are still more people looking for jobs, than
job openings, finding a job may take some time. I just have to be persistent
and not give up.
(BTW, the DiskSites office is located at Azrieli Center right next door to
Qlusters, which is a past workplace of several friends of mine - sometimes
nicknamed "Clue-less" by them.)
Bike Incident
One day when I was biking, I stopped at my usual place next to the water
fountain in the Yarkon Park. An Arab kid approached me, and kept requesting me
if I could let him have a ride on my bike. I told him I was just drinking
water and that then I'll go on. Still, he kept insisting. Then he asked me
if I had a pump to fill the air in his bike's wheels. I did, so I helped
him fill some air there.
While, I filled some air, he got on my bike (without receiving my permission),
and rode it. I think he was too short for this bike, and he also rode on the
lawns. But he eventually came back, thanked me and jokingly asked if we
could switch bikes. This wouldn't have worked, naturally, as his bike was
far too small for me.
Ahh! Kids these days...
In any case, my bike had a few other issues since then. First of all,
I changed the tire of a wheel, because the previous one got veryworned
out. Now, there's a problem that the pedals are jumping, and I have to
take it to the bike fixer.
Installing Maypole
I was considering writing a better NNTP reader for
the perl.org newsgroups/mailing lists.
I asked for help on FreeNode's #perl channel, and was told that the
Maypole framework
can do a lot of the things I'm looking for. One can also write a NNTP
driver to it, so it will read things out of NNTP. So I set up to install
it. Well, easier said than done.
Typing install Maypole at the CPAN.pm prompt failed to do the job.
Eventually, it turned out I had to install a suitable driver for the DBI (for
SQLite or whatever), and to temper with libapreq to get Apache::Request (which
I think I eventually installed from RPM). Eventually, all the modules were
installed, but getting the sample application to run was also problematic.
I had to configure Apache accordingly. Afterwards, it turned out I missed
the part in the documentation where I had to put the templates, in the
appropriate path, and without it, it refused to work..
Then I got it to work, but the site looked considerably uglier than the
screenshots at the
Perl.com article. Possibly tweaking the templates and the CSS
stylesheets will make it look better.
Maypole has a whole slew of dependencies and I was afraid the perl.org admins
won't be willing to host an application written with it. I e-mailed them,
and they told me it was relatively OK, but that there were other tricky parts.
I did not yet get to writing the NNTP interface because I was busy in other
things. Maybe I will, sometime.
Perl Zen
I never really understood what was the difference between the ".."
and "..." Perl operators. So, one evening I set out to understand
it. I read the perlop man page again, and consulted people on the
IRC. It turns out that with .. both states can change at once,
while with ... the true one needs to change by himself. I wrote
an example to illustrate the difference, and sent it as a patch to perl5-porters.
It was incorporated immediately, which made me disappointed.
Hebrew Common Errors List
I started preparing a list of common grammatical and syntactical errors in
Hebrew. (the page is in Hebrew (naturally), sorry) After I finished
some of them, I posted a message about it to the Hebrew translation mailing
list, with a small rant saying that I was tired seeing errors like that
times and again on Hebrew forums, which was why I wrote the article.
Some reader of the translation list has Whatsupped
the document, which caused an active discussion (if not flame-war).
Some of the comments there were useful, but not too many. I think I'll continue
working on the document, and hope it won't get whatsupped again, without me
initiating it.
Gimp Gimpressionist Work
Gimpressionist is one of my favourite GIMP plug-ins. What it does is take
a picture and paint it using a specified brush and other parameters. A few
days ago, I noticed it did not have a usable GIMP Procedural Database entry -
you could not even specify one of the pre-defined preset. So I set
out to correct it and
sent
this patch. It was eventually applied by Michael Natterer.
As I did, I noticed that the gimpressionist code was very messy, and started
to clean it up. I refactored it heavily (reminded me a lot of Joel Spolsky's
Rub a Dub
Dub article) and also fixed many bugs. Most of my changes were
incoroporated into the GIMP CVS by Michael Natterer or Sven Neumann.
Eventually, they saw that I was consistent enough, and gave me a CVS account.
So now I can incorporate things on my own. There is a certain modified version
of gimpressionist available (of before I applied my modifications), by Bill
Skaggs that has some interesting ideas. I'd like to look into doing something
similar starting from the current codebase.
As a long term goal, I thought that instead of generating a bitmap, that
it could generate an SVG ("SVGimpressionst"), with one component for each
stroke. Skaggs liked the idea quite a bit, but it's just long term.
Technion Graduation Ceremony
My father, my mother, my sister and I attended the Technion graduation
ceremony. It was scheduled at the exact time of the Israeli Perl Mongers
meeting and so I was not able to attend. Instead, I went to see the ceremony.
Before the ceremony began, I met Eran there, who returned my "Programming
Perl" book which he borrowed. We talked a bit, and it turned out he graduated
with an average of 85%-86%, which was only slightly better than mine. I
expected his average to be considerably higher than mine. He left before the
ceremony started, because he did not want to attend it.
The ceremony was split into two parts: the Technion-wide ceremony, and
the ceremonies of each department. The Technion-wide ceremony started
by the Academic March of the various deans in their black graduation suits
(a few collar colours were missing though). It was followed by speeches
by various people. One of them told quite a few old jokes (and not very
well). There were also some performances by Technion students of three
songs ("Take a Wife and Build a Home for Her" by Shalom Hanokh,
"In My Life" by the Beatles and "A New Beginning" by Yehuda Poliker).
I like these songs and the performances were good, so it was quite nice.
What was stressed was that the Technion governmental budget has been
heavily decreased, which placed its future in jeopardy. A part I really
liked was that one of professors said, that although only some of the
students were cum laude students ("excelling" students in Hebrew),
due to the Technion academic requirements, all graduating studnets were
excellent ones. I could not agree more, but I still think there are many
unnecessary frustrations in Technion studying, that can be eliminated,
without lowering the academic level. Another thing that happened, was
that the Summa Cum Laude students were awarded the degrees before the
rest.
Then came the department ceremony. The department's dean speech
was amusing with some nice jokes. (like "I know you are anxious to receive
your degree, and I realize the only thing that delays that is me speaking
here"). Then started the long process of giving the degrees: first to
the Summa Cum Laude students, then to the Cum Laude ones, and finally to the
other students.
When I was giving my degree, the dean asked me what I was doing now. So I
told him: "Looking for a job, and working on Open Source software". :-)
I recognized a few students I knew, which was nice. As the ceremony progressed,
my father started jokingly shooting the first names of the students who
received the degrees, to cheer them. That was quite silly of him, and he knew
it. Eran's name was given, somewhat after me, but he naturally, wasn't there
to receive the degree.
We returned home, taking the road behind Mt. Carmel. (to avoid the traffic
jams from the rest of the graduates). On the way back, we stopped to eat
McDonalds' at Yoqne'am. We arrived home quite late.
Perl.org.il Variable Naming/Tabs vs. Spaces/Editor war etc.
Check
this thread on the Israeli Perl Mongers mailing list for an amusing
and long thread that discusses editing conventions. (variable naming, code
style, editing features, etc.) It's hard to summarize and has many amusing
parts so just read on.
Subversion's get_locations() Patch
The
Subversion get_locations() patch monolith was applied into the
Subversion trunk (after some rework) by Peter Lundblad. I'm happy it
finally was, because I invested quite a lot of work into it.
Telux Lecture
I gave a lecture in Telux which was a re-run of my Haifux'
Autoconf/Automake/Libtool presentation. Before the lecture, Eran
called to inform me he had an interview in my area, and would like to meet.
I told him I was going to give a presentation and invited him to hear it. He
had some problems in getting there, but eventually attended it.
As far as I could tell the lecture went quite well. A few questions were
asked and answered, and I was able to give some interesting demonstrations.
(which were quite missing from the early one). Among the things I learned was
that there was no strdup() function in the ANSI C89 standard, and
only in C99 and in most UNIXes. This explains Autoconf has a macro to check
for it.
After the lecture Eran and I went to Kanyon Ramat Aviv to grab a byte. On the
way, while we were eating and afterwards, I told him about the history of
UNIX (AT&T UNIX, the BSDs, System V's, GNU, Linux, etc.) and other things.
Then we went to meet his sister, and as she was in Tel Aviv, but not familiar
with the geography, we walked all the way to the Train Station (a very long
walk, where I decided to escort Eran, even though my home was in the opposite
direction), after which we had to walk somewhat more, and to enter her car on
the road. I instructed them how to drop me at home, and to get to the Haifa
highway.
It was nice meeting Eran again, and the lecture was also a fun event.
C++ quirks
My sister has to prepare a C++ assignment for her homework. I instructed her
how to do it, using what is left of my quite rusty C++ knowledge. One thing
we tried was to use qsort() with giving as a callback an instance of a
template function. This worked perfectly in g++ 3.3.2 on Linux, but Visual
C++ 6.0 gave some weird compilation error, which we could not understand. One
guy on the IRC (FreeNode's #c channel) just instructed us to use a newer
compiler. It's weird that there is this limitation, even in this version.
It also worked fine in a newer version of DevStudio.
Eventually, my sister resorted to working on it on Linux, using VNC. The
assignment needs to work on Solaris with gcc, so it isn't required to make
sure it runs nicely on older versions of DevStudio.
Perl Zen (2)
Yesterday, I attended a FreeNode #perl discussion where someone (calling
himself simcop2388) was trying to figure out why his Perl code was failing.
It was generating some kind of regular expression to parse Assembler code,
and Perl indicated there was an error in the regex. The error reported
was of an extraneous ")" character right at the end.
To find out what the problem was, I wrote a perl Module, that overloaded
the strings constants, by putting them inside classes with an overloaded
"." (= string concatenation) operator. I logged all the places where it
concatenated two strings with the right string ending with ")", to STDERR.
After a while, I detected where it happened. The offending code looked
something like this:
my $string = "(";
foreach (@elements)
{
$string .= myfunc($_)."|";
}
chop($string);
$string .= ")";
Now, chop will remove the last character, but if there are no @elements, then
it will remove the beginning "(" and we get an extraneous ")". A more correct
way, is to either collect all the strings in an array, and use join, or to
use $string =~ s/|$//;.
After that, the error was corrected. I experienced some other random errors,
because I continued to use the module (which caused some random string escaping
problems), but after I removed it everything worked fine.
Anyway, simcop2388 was so impressed from what I did that he eventually said:
"rindolf, you are a fucking god." (rindolf being my IRC nick). I received many
compliments in my life, but it was the first time I was labelled a god (and a
f**king one as such...).
Review of the Gtk+ 2.4.x File Chooser
I wrote a rant^H^H^H^H review of the Gtk+ 2.4.x file chooser and planned to
post it here as well as on my site. However, after I've shown what I intended
to post here to the good people at #gimp, I received some valuable input
including a
reference to its informal specification. So I'm still relative
unhappy with its usability and "intuitiveness", but will have to revise my
report in accordance with the new things I've learned. So, stay tuned.
Advogato
Certified lewing as Master for his work in Ximian, and
naturally for creating the super-important
Tux the Penguin image.
;-) Certified neo as Master for his work on the GIMP.
Ditto for carol to Journeyer, and mitch
to Master. I certified vidar as Journeyer for his work
on gimpressionist and gimp in general.
I think I'm a good Advogato citizen in the fact that I certified more people
than people certified me. Have you certified an Advogato personality, today?
;-)
10-Aug-2004
Newborn Second Nephew
My cousin and his wife had a baby a couple of weeks ago. They called him Matan,
and the celebration of the Brith was after a while. The food there was good.
At first the songs were quite cheesy and the volume was very loud, but
afterwards, they both improved. As usual in such occasions, the mother of the
newborn, recited a cheesy poem she wrote. (I really would have preferred a
a simple, non-verse, speech). I met there many of my relatives, and also
met the daugter-in-law of my aunt (a different one) for the first time. I
wanted to talk to her, but couldn't because of the loud music.
Tau-Sec Meetings
I attended the first two meetings of the
TAU Security Forum. The first
meeting feature Noam Ratheos (of Beyond Security) in a presentation about
Port Knocking. I met some familiar faces there, including
Xantia. This was the first event I saw her attending for a
long time. The presentation was very interesting, and introduced me to
this new security technique. After the presentation, Chen, Adi Stav,
another guy called Michael
"Talash" Perelmutter and I went to a local Cafe to eat supper
and talk. We discussed many topics. It turned out Michael lived right next
to my house, so we walked together, and he gave me his contact information
on the way.
The second meeting took place this Sunday. It started out with a general
1 hour discussion about Spam, conducted by sun. The discussion
was interesting, but it did not touch the surface of this complicated subject.
Then he gave a presentation about Cross-Site Scripting exploits and SQL
injections. It had a somewhat slow start, but got better after the break. I
did not learn anything new, but it was still fun seeing the exploitable
code written and the exploits done in real-time.
Chen wasn't there, but Michael was and we walked all the way home, and
this time ate Falafel at a restaurant close to my house. Michael and I
exchanged a few E-mails since we met, and it's always nice become aquainted
with someone new.
Too Little Time
When it rains - it pours. When it shines - it is blazing hot. I was quite
bored some time ago because I did not want to do anything. Now, however,
I don't have enough time to do everything. There are so many things I'd like
to do, and projects I'm involved in, and it seems that I don't have enough
time. What I do is work a bit on one thing, and then switch to another. I
seem to be multi-tasking very nicely like that.
More GIMP Work
I've done more gimpressionist cleanups and bug-fixing. Take a look at the
GIMP's ChangeLog for more verbose information. Now perhaps the only thing
left to do, before making some overhaul changes, is to rename more variables
into more meaningful names. (most of them are already renamed), and fix
the rest of the bugs in the bugzilla.
I also helped David Odin (aka dindinx) with converting plug-ins code
from the depracated GtkPreview to the newer GimpPreviewArea widget.
I discovered a
bug in gflare while I was doing the conversion.
Finally, I wrote a fix to a minor but annoying bug, and it was applied yesterday. The fix was
quite complicated though.
Telux Lecture: Bugzilla for End-Users
Shoshannah Forbes gave a presentation
about using Bugzilla for the Tel Aviv Linux Club a week ago. The lecture
was entertaining and also taught me some new things. Nothing more to say -
sorry.
Wikipeders Meeting
The Hebrew Wikipedia maintainers held a
meeting some time ago, to celebrate its one year anniversary. Out of the
people who attended it, I was only familiar with Shoshannah Forbes and with
Ofer Weisglass. Another thing that alienated me was that I barely touched
the Hebrew version and just contributed some stuff to the English resources.
Still, the people there were friendly and many discussions embarked. One of
the things that was said there, that although the Hebrew Wikipedia is quite
limited in size, it is statistically among the first, in the average length
of the articles, and the number of times each one was edited. This is still
a good accomplishment.
August Penguin 3
The yearly meeting of Israeli Linux Enthusiasts this year, known as
August Penguin, took place last Friday. I got up early and was given
a lift there to help with the reception. There I met some of the organizers
(many of whom I personally know), and was assigned as one of the three
reception people. Many people have arrived and there was a long line.
But eventually, Arik Baratz, ladypine and I handled
all the early comers, and we were free. Among the people who attended
the conference, I saw for the first time, two people whom I knew from
online but never met face-to-face: Yotam Rubin (who created and maintained
the Freecell Solver Debian packages in their beginning), and Diego
Iastrubni (who translated Mandrake Linux to Hebrew, and is now translating
KDE).
I started attending the first presentation about Co-Linux, did not find
it very interesting, so I went out and instead hanged around in the lobby.
I met some familiar people with, and had some short conversations with them.
Then came the time for the second presentation, (about Embedded Linux) so I
sat on the floor, and listened to it. It was quite interesting, but shortly
afterwards I was volunteered to man the Hamakor stand, and sell CDs to people
(and give away one free to those who were already Hamakor members). This
consumed most of the day until the key-signing party, and I missed the geek
trivia, the prizes giveaway, and the second presentation.
Despite the fact that I missed most of the attractions, I had a very good
time, and enjoyed the conference a lot. It was also very successful as
240 people attended it, more than twice than last year.
Here are some English reports of the conference:
by RRX,
by
Haggai E.. And some Hebrew ones:
by Orna Agmon,
by HeyYal,
by yehuda,
by an anonymous penguin,
in the press.
GPG Script
The August Penguin key-signing party was conducted in a way that the
a file containing the fingerprints was distributed to everybody, and was
verified to be correct by its SHA1 hash. Then, mulix, who
organized it made the keyring available to the public. Now the question
is whether the signatures in the keyring are the same as those in the file.
To resolve it, I wrote a script
that checks the signatures in the file and verifies that they are the same
as those reported by GPG in the key-ring. You can freely use it under
the terms of the MIT X11 license.
Using it I signed the keys, by first running it, and then using kgpg (part
of kdeutils) to sign all the keys at once. Truly an improvement over last
time, where I signed each key individually, using my password like a zillion
times.
Better-SCM Work
I went over the E-mails that were sent to me regarding the
Better-SCM site, answered
them, etc. I lost interest in it for quite a while and now I have a
renewed interest. Another thing I did was revamp the code that renders
the comparison. At first I had two very similar scripts, one that
converts the custom XML grammar to HTML, and the other one that does
the same for DocBook. So, the duplicate code was eliminated by using
some common Perl classes. Then, I wrote an XSLT transformation for
transforming it to HTML. For help I referred to Norman Walsh' tutorial,
and to someone very knowledgable on FreeNode's #xml channel. The
resultant transformation was pretty nice, and I found the experience
to be quite enlightening. I'm looking forward to working with XSLT more
in the future.
Advogato
I certified bolsh as Journeyer for his work on the GIMP.
FILL_IN
Advogato
Certified bagder as Master for his work on curl and other
things he has been involved in.
I also wrote two new articles: an
interview with Ben
Collins-Sussman and
Bazaar-style Movies
Revisited.
Slashdot Commenting
It happened! I posted a few comments to Slashdot. Here's
one
that is a joke reply to another joke that was posted. It was too
late for it to be rated highly.
Another
is a question to ask Sam Greenblatt about Ingres. The latter was rated 5 and
marked as Interesting.
kilmo, I think I'll join your support group. "Hello, my name
is Shlomi and I posted a comment to Slashdot that was rated 5 and marked as
Interesting."; "Hello Shlomi! We all love you!".
RSS Aggregator
I installed akregator for KDE. The installation went very well, and I installed
from source and could not find an RPM. I now got used to it, and can no longer
imagine living without it. (periodically visiting web-sites - how barbaric!)
Karma Games at FreeNode's #perl
This
is a log of FreeNode's #perl channel with some heavy karma games.
Namely I asked Chris62vw (perlbot's maintainer) for a feature which displays
the top (or bottom) karmas, and he decided to implement it on the spot. And
there was a lot of other silly discussion.
Hackers-IL MediaWiki
I set up a
MediaWiki for Hackers-IL. It was surprisingly easy to set up, and
worked very nicely so far. Then, I created an Emblem for Hackers-IL based on the Hackers
Emblem by ESR, and the Israeli Flag.
I filled the wiki with a lot of content, and other people have created pages
there of their own. It now also proves useful for coordination of W2L.
I wanted to use the Creative Commons Attribution-Only License for it. But it
seems more people would like to use the ShareAlike one which is good too.
Events
There was a Telux meeting about bootloaders by Ori Idan. He used PerlPoint for
the first time for this lecture and prepared it in a haste, so he had a few
glitches which I took record of some of them in my notebook. (and sent it to
him after the lecture). The lecture was under-advertised and so we were only
five people there. I think it would be a good idea for Ori to give it at a
later date.
Still, the lecture was very interesting, and some things raised some
discussions. Ori is a good lecturer.
There was also an
Israeli Perl Mongers meeting which was very nice. There's a report
about it in the link.
Books' Exchange with Talash
Michael
Perelmutter ("Talash") is a really nice guy, which attended the
TAU-Sec lectures and escorted me on the way back home as he lives nearby.
While talking on IM, we decided to exchange books. So he dropped by my
house and gave me two Discworld books. He and I went over the house looking
for good books he did not read already. (He already read Sherlock Holmes,
the writings of Lewis Carroll, Jules Verne, and lots of other things I had to
offer.) He eventually took the following books:
All in all, it's nice to meet such new people.
New Story
Ssssshhh! Don't tell anyone, but I'm writing a new story. Surprisingly, I
got the idea for the entire plot almost at once, and lately have been
cutting some lose edges in my idea. (extraneous characters, etc.) The story
is written in English, and focuses on high-school teenagers at present Los
Angeles, California.
It talks about one female open-source hacker who is a full guru, but a
self-made social outcast, and a punk, who tutors a female hacker wannabe,
(who is also the narrator of the story) who is a pop-culture and very solid
girl, who's at first only interested in open-source so she can get to a good
college. There are then other twists to the plot.
Hopefully, I'll finish the story in time for the Free Software Day, but I
cannot promise anything. If you'd like to receive drafts of this story by
E-mail, let me know and I'll put
you in my distribution list.
10-Sep-2004
New Story Update
The new story is progressing nicely. I already received one relatively positive
review of it from my cousin, and a laconic remark from someone else who
I referred it to him, and just said he did not like it too much. But still,
it isn't finished, so I'm unwilling to show it to the world at large.
State of the Onion
I read Larry Wall's recent
State of the
Onion. It was very amusing as most of the things that Larry has
written. I liked it a lot. In any case, he says there that he has been
hospitalized for a large part of the passing year (but now he is more or
less OK). I hope Larry will stay in a good physical condition.
Story for the Software Freedom Day
I wrote a
story about my interaction with Adrian Ettlinger (in Hebrew) for the
Israeli story contest of the Software Freedom Day. As for activities in this
day, we wanted to have several stands in various shopping centers, but we did
not have time to organize anything, because it was on such a short notice.
I hope we'll have a better luck next year.
The Olympic Games
The Olympic Games are over. Israel has won its first Gold Medal by Gal Friedman. One thing that impressed me was the speed in
which some of the gymnasts moved. They did it very quickly. In any case,
I did not watch too much of it, and spent most of the time working on the
computer.
HTML Navigation Menu
After a long time of neglect - I started working on the unified HTML
navigation menu interface. I am basing my work on HTML::Widget::sideBar. However, it seems
that the added benefit of it was very little. It is possible writing the
relevant logic from scratch would have taken me less time, than trying to
find out how to work around its idiosyncrasies. At the moment, I have patched
H::W::sB, sub-classed it and wrote a lot of logic on my own.
Still, what I have now functions pretty nicely, and I'm making more progress.
So I'm a dumb-ass but optimistic.
Welcome to Linux
I started preparing the Blitz lecture for the upcoming Welcome to Linux series. This year, we aim for it
to be conducted (at least partially) by three clubs (in Haifa, Tel Aviv, and
Jerusalem), and so it requires quite a lot of organization. Aside from the
lecture, I was also placed in charge of the site.
Movies
I went with my dad to see Shrek 2 in the cinema. It was very entertaining,
with a very high-quality animation, and very funny. There are many parodies
of other films embedded in it. I also finished watching Spiderman 1 in the
DVD. It was very entertaining. It seems that I liked most of the Comics-based
films I have seen.
Mozilla Firefox - A War Story
I decided to give Mozilla Firefox a try. So far so good. However, after
downloading the latest 0.9.x release, I encountered a case where installing
a certain plug-in did not work. This has caused me to try the trunk release
(where some things could not be installed because install.rdf was
not supported.) and one of the branches release (where some things also
did not work). Eventually, I returned to 0.9.x and managed to install everything
I needed.
Firefox is a better browser than Mozilla Core. It is faster, and gives one
better control over the extensions and themes. (you can easily update or
uninstall them). Very nice. Other than that, I discovered the
Web
Developers Extension for Firefox and Mozilla. So far I used
the PNH Toolbar, and I must say that the Web Developers Extension gives
everything PNH gives and more. It also eliminated one thing I used Opera
for - validating a web page by uploading its content.
Talash' Mandrake Woes
Michael
Perelmutter (aka Talash) has recently bought a new computer and
wanted to install Linux on it. He tried Mandrake for a while, then
SUSE which he decided he liked better. However, SUSE had some problems,
so he tried Debian, which did not work either. So, he returned to Mandrake.
Now, when talking to him on the ICQ, I learned that the network card did
not work (despite having worked perfectly the previous time he installed
Mandrake) , and so I dropped by.
The first thing I tried was to see if I can configure the card manually
using /sbin/ifconfig and /sbin/route. This worked perfectly. Then, after a lot
of tweaking, we realized the problem was that Mandrake was using an "ifplugd"
thingy to control the card, which was not compatible with it. Quickly setting
the rather obscure MII_NOT_SUPPORTED flag in
/etc/sysconfig/network-scripts/ifcfg-eth0 (not in
/etc/sysconfig/networking as I previously thought) did the trick.
We then had a problem that /etc/resolv.conf was filled with the
address of the router. This was solved after the correct DNS servers were
inputted manually, and a reboot.
After that, I just showed him to use Easy URPMI to set the sources of the
packages, and as he was about to leave, we started updating everything using
MandrakeUpdate. The GUI tools turned out to be incredibly unhelpful in getting
the network up and running, but they were reported to buggy in this release
of Mandrake.
O'Reilly-Net Article
I finished writing another article for O'Reilly-Net. It has good prospects of
being published, but I did not get any reviews for it yet despite having
sent it to some of my friends, and the
OnLAMP.com editor. If you have some
spare time and wish to review it, drop
me an E-mail and I'll send it to you.
Events
I've been to two Tel Aviv Linux Club meetings. In the first one,
gby gave a nice presentation about
Asterisk - an open-source solution
for managing phone networks. I enjoyed it very much. In the second one,
mulix and ladypine gave an entertaining
and enlightening presentation about the latest developments in the world
of the Linux kernel, as seen through attendees of the Ottawa Linux
Symposium.
I just returned from an Israeli Perl Mongers meeting. Uri Bruck gave a
presentation about using Perl to automatically fill OpenOffice forms. It was
very nice. He chose to use XML::Simple, and it reminded me of how much I
generally hate it. Then Gabor, first explained about the status of the
Perl community in Hungary, and then about how can one contribute to Perl.
I did not attend the last presentation to its end because the person
giving me a ride had to go to catch a movie. Hopefully, I can
read the rest of the presentation online.
05-Oct-2004
RTFM vs. JATFM
I recently had to figure out how to do something with wget: get everything
below a directory on the web-server, without following links to outside it.
So I logged in to FreeNode's #debian channel, where there are many
knowledgable people to ask it. The first answer I got was "RTFM". So, I read
the wget man page, but could not find it there. Eventually, after telling
people that it would be faster to give an answer, I got a reply (
add the -np -r flags). But this has been the last straw.
I composed my own acronym. Just like RTFM is "Read the Fabulous Manual"
and STFW is "Search the Fabulous Web", then JATFM is "Just Answer the
Fabulous Man". It means that it's usually faster to answer someone's question
than to ask him to RTFM, which is just going to annoy him. I think the RTFM
mantra has done a lot of damage in the UNIX/Linux world, and I hope JATFMing
would prove to be a more healthy ideology.
Linux T-Shirt Giveaway
One day when I was just returning from my walk, a guy approached me and
asked me about my Linux T-shirt, in English. It turned out he was using
Linux and FreeBSD, and was interested in such T-Shirts. He was working as
a Journalist in an Israeli newspaper, and was using Windows in his workplace.
I invited him to come to my house, and when he did gave him one of my shirts.
At first, I thought he was a Medium, but it turned out the Large T-shirt was
OK for him. He took off his shirt, and wore the Linux one instead. He gave me
his old shirt for me to throw away.
We then went to the computer and exchanged contact information. He called
me some hours later, but I was busy, but I think I'll call him back on my own.
Jewish Holidays
Now is the Jewish Holiday Season. First of all - Shana Tova (= Happy New
Year) to all Jews and non-Jews. Yom Kippur also came along, so "Gmar Hatima
Tova" ("A Good Signing") to all. And finally, Happy Sukoth.
In Israel, many secular Jewish families hold a family dinner on Rosh Hashana.
In the States, it seems Jews just go to the synagogue.
Open Letter to the California Governor
I wrote an
open-letter to the California Governor regarding the recent report about
cutting the California State spending.. It is a bit redundant and
the comments there are even more so. Still, I hope the appropriate forces in
the California Government will take it to heart. An anecdote about it is
that I originally wrote it on paper.
Links of Interest
Read this
entry in Omer Zak's Journal (to which I have responded) for something
that Omer said about being unwilling to help people who aren't using Debian,
and why I proved it was a bad attitude. (it all leads to the ancient and
mind-destroying "I'm not getting paid to do open-source work, so my users
need to play by my rules" mantra).
There's
a
very interesting interview with Real Networks' CEO on Slashdot. A
highly recommended read. Trying the Real Player 10 for Linux I was very
disappointed, though: it's not a drag and drop target, had a very crappy
file opening dialog and it could not play mp3's.
There's also a very interesting interview with the U.S. Libertarian Party
Candidate. I sure do hope Libertarians take the next elections, and will also
add a button to my homepage about it.
Freenode's beth is engaged!
Beth Skwarecki (a.k.a. "beth" on Freenode)
has
become engaged to her long-time boyfriend now. Congratulations!
It's funny that many people I know my age are already married. Plus, my cousin
who's my age already has a baby now. Roy Glasberg, too. And
Ben Schmaus already managed to
become separated from his wife. And I did not have a girlfriend, yet. Oh well.
Yom Kippur Activity
In Yom Kippur the Jews believe that God measures a person's balance of good
and bad deeds and thus determines if he is worthy of living for another year.
I am pretty sure, that the values I produced in the recent year (i.e: my good
deeds), exceed the values I consumed (i.e: my bad deeds). Nevertheless, I
have decided to go over the blog entries I wrote in the past year and see
what I did well, what I did wrong, and what I can improve.
First of all, I'd like to say that I was dazzled by all the productive
things I did. I certainly can congratulate myself on that. A trend in the
past year was for me to also contribute to large-scale, non-individualistic
projects like Subversion or GIMP, and I hope to continue in it. My biggest
mistake in the past year was
the
post to the Joel on Software forum about my Technion Grades.
I'll know better than that next time.
Article Writing
I wrote a new version of an old article, and sent it to a few selected
reviewers. As a result, I received three (!) messages saying they are no
longer interested in receiving such articles. I was a bit distressed, but
then I understood that I should send the articles to people who volunteered
to do so, at first. That's what I did. I posted
a notice about it in Whatsup and received several E-mails from people
who were interested. (some of the comments simply attacked me, but that is
besides the point).
So now I'm sending them messages. So far, I did not receive any reply, but
at least I'm not walking on people's toes.
Events
There was a Telux meeting where I gave a lecture about Freecell Solver. There
were only two people who attended it besides me, but it was still a lot of
fun, and people said it was very interesting.
There was also a TAU-Sec meeting. This time they also bought
drinks and refreshments. The first presentation about Intrusion Detection
tools was very interesting. In the second one, the speaker was heavily
non-fluent, probably because of excitement, so I left early. But there was
heavy attendance.
Work on the Home-Site
I've done a lot of work on my
home-site lately. Reading from the news I posted about it:
-
I added the "Stop Software Patents!" nag
image to all my pages and a top frame to the front page.
-
There's a new code for the navigation menu. The old code was an unholy mess,
and the new code is a pure Perl one, which makes the nav-menu much easier
to maintain.
-
Thanks to the new navigation menu code, there are now Mozilla/Firefox
navigation links, that allow traversing the site page by page. For those who
are unfortunate enough not to use these browsers, some rudimentary arrows were
added above the navigation menu.
-
I now have an Uber-kitchy leading path of the page sections and sub-sections at
the top.
-
I'm now giving private lessons in
high-school subjects and computer-related topics.
Later on, I added more pages. Things I still need to do are:
-
Add Alt+P, Alt+N, Alt+U key-bindings to traverse the site.
-
Add a nice news items summary news box at the top with the site
news. Also create an RSS feed for them.
-
Create a site-map page.
Enjoy!
Upgrade to Mandrake 10.1 Community Edition
I downloaded the Mandrake 10.1 CE CDs, and placed all the RPMs in one
directory. That's because I did not know where I can find a network
repository. Then, I created a urpmi media for them. Afterwards I ran
the command urpmi --auto-select --auto overnight. This eventually
caused the computer to become unresponsive. (I still blame the Britney Spears
wallpaper I placed on IceWM, when I did the installation for that.)
After a reboot, I initiated the command again, this time with a different
girl on the desktop. This time it's worked. I rebooted again to use the new
kernel, and everything was OK. 10.1 CE is more polished than 10.0 and has
fewer bugs. (albeit there are a few new minor ones). I'm very happy with it.
For the occasion of the upgrade, I changed all the wallpapers of the
virtual workspaces. Desktop 1 now has a picture of Jaime Pressly. Desktop
2 now has a photograph of a squirrel that ladypine took
in her last OLS trip. Desktop 3 has a picture of Beth (see above). Desktop
4 has a 3-D model of a tree with a reflection in the lake, out of the Book
of Beginnings. Desktop 5 still carries the picture of Melissa Joan Hart with
the background of automn leaves. Desktop 6 has a picture of a Chinese girl
from a computer game (found in the Unforgotten Realms Wallpapers). Desktop 7 has a photo
of Kate Beckinsale. And Desktop 8 has a picture of Charisma Carpenter covered
in the American Flag.
22-Oct-2004
Work on W2L
I did a lot of Work on the Israeli "Welcome to Linux" online resources. I
set up site for it, tweaked the
registration form. I also had to set up an E-mail domain using the
eskimo.iglu.org.il qmail. I also helped a bit with revising the TeX
documents from last year. Working on the sites was a lot of work, but I hope
it was worth it.
Getting CPANPLUS to Send Mail
Following Gabor Szabo's presentation in the last Israel.PM meeting, I decided
to become a CPAN
Smoke Tester. So I set up a non-privileged account for this, and
installed perl and the CPANPLUS module there. Then I had to set it up to
send mail. Reading the docs of the modules, I found it that they could either
send mail by using SMTP (which was more limited) or by using the sendmail or
equivalent program. So I had to set up the sendmail replacement to work on my
system.
This involved setting up Postfix on my system. I enabled it and started reading
the docs to see how to configure it. It was able to send several messages to
various places eventually. However, while it actually sent a message via SMTP
to the cpan-testers mailing list, none of them have arrived there.
The Ethereal dump said something like this:
MAIL FROM:<cpan@localhost.localdomain> SIZE=2444
RCPT TO:<cpan-testers@perl.org>
DATA
Which contained cpan@localhost.localdomain in the MAIL FROM: instead of my
real mail address. I tried to configure postfix to use the correct MAIL FROM,
but to no avail. Then a simple Google search for "mandrake postfix" yielded
this
document about configuring Postfix as the first result. This explained
everything I needed to do, and afterwards it worked.
Meanwhile I wasted several hours in what could have been resolved with a simple
Google search.
Bug Reporting Spree
I took two days to go on a bug reporting spree. There were a few bugs I
collected in a bug list,
and I reported them. There are still some bugs I haven't reported yet.
Blisters
I used to have blisters on my feet. It was quite unpleasant. Most of them
are gone now, after my mom and I took care of them.
Perl 6 Critique Article
I published a Perl 6
Critique Article in Freshmeat. You can also find disucssions of it
in the
perl-advocacy mailing list,
in linmagazine (in
Hebrew), and
in Perlmonks.
JLC Site
I did some work and created a new and
improved site for the Jerusalem Linux Club. It still lacks information
about the Welcome to Linux series, and also Hebrew content.
There's also another site that
someone created, but I'm quite unhappy with it.
Mandrake
There weren't any updates for the Mandrake 10.1 Community Edition from
15-September to more than a month later. When the updates did come out, the
hdlist.cz file (that concentrates the information about the packages) was
faulty. Eventually, the official edition came out, but they were delays
in getting it.
Now, I'm on Official Edition, and everything is OK, but there was a long time
when my system was out-of-date.
The Digital Camera and Linux
My family has a digital camera. I tried to get it to work with Linux. It uses
some memory cards and we have a memory card reader for this that connects
to the computer via USB. So I connected it to the computer when it ran Linux
and tried to read it.
The USB device was detected in /proc/bus/usb/devices and appeared
in the output of cdrecord -scanbus, but I was not able to mount it
no matter what I tried. Eventually, I found out that I had to mount
/dev/sdc1 instead of /dev/sdc. Afterwards it worked
perfectly.
First W2L Meeting in Telux
The first W2L Meeting in Telux took place yesterday. Many people arrived and
the room was packed. Eddie gave a nice "Blitz" lecture, and many questions
were asked and answered. The main problem was that it lasted for a long time -
over 2 hours.
22-Nov-2004
Meta
This diary entry is now cross-posted to Live Journal. At the moment, manually,
but I plan to write an automated cross-poster.
OpenOffice.org bug
I sent my C.V. to someone and he told me the parenthesis were reversed there.
Turns out the OpenOffice.org export to PDF is faulty again, and it reversed
the parenthesis. I filed a bug report of it. Meanwhile, I wrote my Hebrew C.V. in HTML
format, which worked very well, without any bugs.
CPANPLUS
While smoking CPAN, I had problems installing the
Test-URI module. The
developer claimed it was a bug in the CPANPLUS module. I tried to investigate,
and hopefully correct it. Then, however it turned out the module was marked
as a developer release (where no regular module was available). This is what
prevented it from being indexed by CPANPLUS, as it was not in the module
list.
Wiki Overview Article
O'ReillyNet published
my
article comparing various Wiki implementations..
Perl Empty Regex Catch
Check
this
post I made to Israel.PM for a Perl catch regarding matching the empty
regex. I encountered it while working on my navigation menu module.
Helping someone with his Linux System
I helped someone called Amir who approached me on the Telux meetings, and said
he had some problems with his Linux system. (X won't start). So I went to
help him bringing with me a Knoppix disc. His problem was that X couldn't
start. It was Mandrakelinux 10.0, and the startx program reported a missing
symbolic link. After I fixed the link, it still wasn't good enough, and I
had to play a bit with XFdrake, which is the Mandrake X configuration tool.
After that, we were able to start X, and we needed to connect to the Internet.
He had a modem dial-up connection, and so, I played a bit with the Mandrake
Control Center, and we were able to start it. Then, I explained to him a bit
about Mozilla firefox, urpmi, etc. All in all, the mission was accomplished,
and his system worked.
SVN::RaWeb::Light
Berlios.de only gives Subversion access via the svn:// protocol. So I wanted
a web-interface to visualize things like is present in the http:// hosting.
I looked for things like this, only there were either only for a local
repository or presented too much information and so took a long time to
process a page.
So I wrote my own module,
SVN-RaWeb-Light.
It behaves much like the one for the Subversion hosting, but has a useful
improvement, of being able to display different revisions of the repository
using the rev CGI parameter.
I was able to use it on my computer to view the Berlios repository. It's a bit
slow, but still much better than anything else I've tried. I plan to implement
caching of the data next.
Mail on Vipe
Strangely enough, the mail directory I had on vipe was gone. I had to restore
it from a backup on my computer by transferring the compressed directory there.
Afterwards, I discovered that not too much was lost.
libtool/autoconf problem
Someone reported a problem with one of the header files of Freecell Solver. To
resolve it, I had to modify it and rebuild it. Only the rebuild failed.
Autoconf complained that some of the macros were deprecated. It turned out
support for Autoconf 2.1x was removed from the libtool m4 macros some time ago.
So, I had to upgrade to Autoconf 2.5x, just to build the distribution. I spent
an entire evening on this, on what should have been a simple change. Autoconf
must die!
HTML::Strip::Whitespace
When I was working on the Israeli Perl
Mongers site I noticed that the HTML had a lot of extraneous
whitespace. I've looked in CPAN for a module that will do the job, but
the only module I found (HTML-Clean) could damage whitespace inside
<pre> blocks. So I wrote one of my own -
HTML::Strip::Whitespace.
As it turned out, htmltidy can strip whitespace out of HTML. The webmaster of
perl.org.il, however, insisted that the HTML on the site should be carefully
indented, instead of whitespace-stripped and smaller, so I don't have an
immediate use for this module.
Music Downloading
I tried to download the song "Tears on My Pillow" performed by Kylie Minogue.
(which I have on cassette). However, almost all of the mp3 files I downloaded
had a completely different song, only with the title I requested. What the
hell?
Eventually, however, I was able to find one good version of it.
Disabling "Unsubscribe" in ezmlm
I wanted to form a mailing list for my beta reviewers, so I and the
other members can send E-mail to one address and it will arrive to everybody.
The problem is that I did not want anyone to be able to subscribe to there.
I searched and searched for it and eventually found this
post to a mailing list about ezmlm that explained how to do it.
Job Hunting News
It turns out several people contacted my cell-phone and left messages, and
I had no idea about it because I did not check it. So I called them back.
In any case, I had two job interviews for
a company called
"10 Levels" and they eventually decided to hire me. So I worked
for them yesterday and today. What I had to do was write some Perl scripts
to automate an application written using PowerBuilder. I was able to do some
of the tasks, but not the last one. I have a Win32 form with several fields,
and I have to fill in the required fields. However, I cannot find a way to
switch the focus to the second field. SetFocus() doesn't work.
SetActiveWindow() doesn't work and neither does a simulated mouse click.
I also installed Windows XP and RHEL 3 on a computer today. Configuring the
networking involved doing a few physical pluggings. Then I wanted to install
packages of Red Hat Enterprise Linux from the command line. I tried installing
apt and everything, but it could not install packages from the RedHat CDs.
After talking with people on the IRC, I found out that with RHEL, I need to
pay for a subscription for up2date to get the packages. (and cannot use apt
or yum). What the hell?
I asked one of my superiors what to do, and it turns out he did not realize
you could resolve the dependencies of a package from the command line (he told
me to look for the package in rpmfind.net, download it and install it using
the rpm command). He also thought one did not need to pay for RHEL.
09-Dec-2004
Postfix - #2
After the Postfix configuration according to the Postfix on Mandrake page
was done, I still had a problem that mail to root got sent to
root@localhost.iglu.org.il, instead of delivered to the local mailbox of a
certain user. Asking the people on the IRC did not help, and neither did
reading the documentation.
Eventually, I temporarily subscribed to the Postfix Users mailing list
and asked
the question there giving all the configuration files as input.
Magnus Back answeredme that I should have added teh appropriate host to
the mydestination directive in the configuration file. That solved the problem,
and now all the messages arrive at the hard-disk.
New Hardware Blues: PowerMust UPS
My father bought a UPS so power jumps won't affect the computer. It's
a PowerMust 600 UPS. He hooked it to the computer via the USB cable, and got
it talking with Windows. With Linux there's more problems. What the vendor
supplies is an application written in Java for which the installation hanged
right at the end. It's a several megabyte monolith and I'd rather not keep
it running on the computer.
For the progress I made in the time being in getting the UPS to talk to
Linux, see this
thread in Linux-IL and
the thread "Getting a PowerMust
600 UPS to work with Linux using the USB Connection" in the
nut mailing list. It's not working yet, but there's progress.
Submitting an ed2k URL through Mozilla
My sisters recently switched to using MLDonkey on Linux to download files.
Noa said that in Windows she could click on an ed2k:// URL and
it would queue the file for download in eMule. So she wanted someting similar
in Linux.
So I looked for a way to allow Mozilla to submit such "ed2k" URL's through
kmldonkey_submit to MLDonkey. I had to register a new protocol handler. So
I searched google, and did not find anything usable. The closest thing I
found was this page
that explains how to add a protocol handler for the mailto: protocol.
Based on its instructions I was able to add a protocol handler for ed2k like
this:
Put the following into the file user.js in your profile directory:
user_pref("network.protocol-handler.app.ed2k", "/usr/bin/kmldonkey_submit");
That's it!
KMLDonkey Crashing
I had a problem that KMLDonkey crashed upon connection. I worked my way
through the code to see what happened. It was pretty hard because it seemed
that it forked itself, and then got hanged up (needing to be resumed
with kill -CONT.) Eventually, I was able to do so (by debugging
kmldonket_submit which is less idiosyncratic) and found that
it read a message length prefix and allocated space for the message, only
it was too large, and it failed to allocate this space (and thus crashed).
I fired up Ethereal and tried to see what was the problem, it turned out
KMLDonkey was communicating with the server in the text protocol. This made
me recall that I changed the port of the core in the KMLDonkey configuration.
Reverting it to one port below solved the crashes.
Technion Grades Listing
My Technion grades were given in a printout with a fancy colourful background.
I ended up scanning it and converting it to PDF, but the PDF is quite large.
(90,428 bytes). To resolve it, I ended up inputting the grades data to a text
file, and wrote a Perl script to generate an HTML out of it. The generated
HTML is 7,441 bytes-long (less than 10% of the original PDF size). And I'm
still using UTF-8 encoding. If I convert it to ISO-8859-8
(= extended 8-bit character set with Hebrew characters), I can reduce its size
even more. It's also 1,972 bytes when compressed with gzip and 1,733 when
compressed with bz2.
Work on Shlomif::NavMenu
I did a lot of work on Shlomif::NavMenu (my HTML navigation menu Perl module)
recently. While at first being stuck on how to write a good tree traversing
class, I eventually decided to simply take the function I had now
for generating the site map and gradually refactor it. This turned out to be
very straightfoward and enjoying, and I was able to get what I want. Then I
ported the regular navigation menu generation to the tree traversing class.
Eventually, I was able to eliminate the use of Yosef Meller's modules which
I used it first. This caused the module to have 1,097 lines-of-codes instead
of 1,510 (as reported by
SLOCCount).
This was all done while adding tests, and now I have 117 individual tests
there. I have totalled 79 subversion commits since I started working on
November 30 or November 31. And I still have a lot of work ahead.
Bash Filename Completion
While working on the navigation menu class, I wanted to tweak the shell
completion so that pressing tab after the gvim command will not display
or complete to files whose filanems begin with "." or end with "~". It took
me a long time of experiencing to figure out how to do that, but I was
eventually able to. Here's how I did it eventually. Add this to the
appropriate bash configuration file:
__gvim_completion()
{
local cur
cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $(compgen -f -X '*~' -- "$cur" |
grep -v '/\.' | grep -v '^\.') )
}
complete -o filenames -F __gvim_completion gvim
Job News
I ended up being fired from the job I reported here. They weren't happy from
me, and I wasn't happy from this job either. Trying to automate buggy Windows
software is not my idea of self-fullfillment. Now I'm looking for a job, again.
So far I was rejected from a job posted at Linux-IL, and from one posted at
Perl-IL. I still have a few leads, though.
Reading
I finished reading two Discworld books:
"The Colour of Magic" which
is the first Discworld Book, and "Lords
and Ladies" which is a rather late book. I liked them both.
I took them both from Michael Perelmutter, and a few days ago, I returned
him "Lords and Ladies", he returned
"Surely
you're joking Mr. Feynman" to me, and I took
"The Complete Hitchhiker's Guide to the Galaxy" and
"Godel,
Escher Bach - An Eternal Golden Braid".. So far I started reading what
I did not read from The Hitchhiker's Guide to the Galaxy. I read there the
short story titled "Young Zaphod Plays it Safe". It was quite funny, but I did
not understand the ending.
I also read the book Managing
Weblogs with Slash and wrote
a review of it. The
technical book that I'm reading now is "Practical
mod_perl". So far it was quite interesting at times, and contains
a lot of useful information about the various fine details of running scripts
using mod_perl.
Calculating the ssh fingerprint of Host Keys
In one of the hosts I have an ssh account on, I was instructed to
verify that the new ssh fingerprint matches. I had no idea how to do it,
and so tried to look for it and asked for the IRC. It took me some time, but
I eventually found
this
message to the Debian list on how to just that. So what I did was
run ssh-keygen -l -f ~/.ssh/known_hosts on the file and I got
the fingerprints of all the host keys including the one I was looking for.
Tip: use.perl.org RSS feeds.
I had no idea how to get the RSS feed for the journal of Gabor Szabo. A link to it was nowhere to be found
on the page. I contacted the webmaster and he told me to look at the head of
the page. Which "head"??? Eventually, I understood that one needs to view
the source of the HTML and use the <link rel> links from the
<head> tag. And indeed you can find the RSS feed for the
journal there.
So now you know. It's a pity the page has no visual cue that there's an RSS
feed for it, or where to find it.
Events
I attended a few events recently. Shachar Shemesh gave a presentation about
development tools in Linux for in a Welcome to Linux Telux meeting. He got
lost in trying to explain about kdevelop and especially about CVS (which
beginners should not use, anyhow). Next year, I hope we'll give the lecture
in a better format.
Then came the Telux installation party. Few people attended, and most of them
were installers. I was responsible for selling the Hamakor merchandise. I
also tried to install Linux on a machine which had both a SATA hard-disk
and an IDE one. This involved a lot of trickery, and eventually did not
work, so we removed the FC 3 installation, which was the only thing that
we could get to install.
I missed the Israeli Perl Mongers meeting because I forgot it took place in
that particular day. I did attend the Hamakor General Assembly the day
before yesterday. Omer Zak drove me there, and drove Eddie Aronovich
and I back. The assembly was quite entertaining - the attendees voted
several times for various things. I was happy with the decisions, at the
end of the day.
14-Jan-2005
Some Recent Version Control-related Links
There seems to be another
BitKeeper-related fight, this time at Linux Weekly News. As far as
I remember, it's been a while since the last serious one. It was pointed
by one of the LWN letters to the editors.
LWN also published in their Development page, an
editorial titled "Looking Past CVS: The Future is Distributed". This
is a really bad essay. It is the second low-quality LWN feature I recall,
after the "Programming Languages - Standard-Based vs. Non-standard-based"
one (which I cannot find now using either Google or the LWN Search or its
Archives). And both of them were contributed.
There is also
a Slashdot piece on the OpenBSD project working on OpenCVS.. I
initially thought it was funny and pointless, but it may actually be
beneficial.
David Font Bug on Mandrake
On Mandrake, I had a problem that OpenOffice.org 1.1.x did not display
the David font (a Hebrew font) correctly. Eventually, I was able to solve
this problem, by removing duplicate entries with "David" in them from the
fonts.dir and fonts.scale files. Apparently, the font uninstallation procedure
did not do a good enough job of removing the font.
Now I have a problem that with OpenOffice.org 2.0.x the fonts all look like
crap, and it also takes much longer to start. I'll see what can be done about
it.
Upgrading to Kernel 2.6.9-ac14
I upgraded to kernel 2.6.9-ac14. This time the installation of the
Nvidia driver went pretty flawlessly. One thing I checked before the Nvidia
driver was installed, was the
xwd and OpenOffice
bug. It indeed does not occur without the Nvidia accelerated bugs
installed. So now this bug occurs only on Mandrake, only with OpenOffice
opened in the current virtual workspace, and only with the Nvidia drivers. How
obscure!
Fixing the Subversion install-swig-pl bug
I filed
this bug-report into the Subversion issue tracker.. Apparently, the
"make install-swig-pl" has a dependency on instaling some of the core libs, and
as a result, when being run as root (which is required for installing Perl
extensions), some of the Subversion libraries are installed as root, which is
very annoying. I wrote a patch to fix this problem, but it was not integrated
yet.
Daniel J. Bernstein's UNIX Security Vulnerabilities Course
Here's a
Slashdot post about it that I found amusing. There's also
some discussion of it in Linux
Weekly News. It says that Bernstein did not alert the developers
beforehand, but rather publicized the disclosures immediately. This again
demonstrates how socially-challenged (and opinionated with
socially-challenged opinions) he is.
Hackers-IL Discussions
There's an
interesting discussion about Perl, Java and C on Hackers-IL. While
it can be classified as a language war, it has reached some interesting
conclusions. The discussion took an ugly turn when I was attacked several
times. (including one time when someone publicly spread a vicious rumour
about my body odour). As a result, I and the other active participant have
decided to take the discussion off-list, and just place the messages
online afterwards.
Right now there's an active discussion about strncpy(), strlcpy(),
sizeof, security in C, etc. as a response to a post in Raymond Chen's
blog. I learned from it that sizeof could be used without the parenthesis
when it is used upon a variable.
My Mom and E-mail
My mom now has an account on my father's domain, and started receiving E-mails
from people. She tried using the web-mail interface, but we could not get it
to display some Hebrew E-mails, especially if the server encoded the characters
using SGML entities. So I decided to install a Windows client.
I tried installing Eudora which I really liked at the time. I installed the
ad-ware version, and it fetched the E-mails easily. But then we tried changing
the language encoding of a message. Perfectly Impossible! I went over all the
menu items and could not find anything that will allow me to do it. Google
was no help. I wonder how such a feature was omitted.
So I installed Thunderbird. It was able to read the settings and the messages
from Eudora. It works very nicely up to now, except that some Hebrew letters
are displayed as strange black circles with white question marks characters.
But this might be a font problem, or a temporary bug, and the message is still
readable.
Mom has learned how to check and read E-mail messages, and now she wants me
to teach her how to write E-mails. She might become computer-literate (in
anything besides playing Solitaire card games), after all.
GIMP Work
The Frosty Logo
was reported to produce incorrect results on recent versions of GIMP.
Since I'm very fond of this logo, I decided to take it upon myself to fix it.
The problem was in the Sparkle Plug-in. I did not know how it worked exactly,
but at least I knew that its code in GIMP 1.2 was OK. So I started going
over the diff, and eliminating portions of the code that were semantically
equivalent. I found 4 bugs this way.
As I was going to add dumps to the code, I found other bugs. You can find
my patches in the
bug report. These patches were applied, and I was jokingly labeled the
GIMP expert regarding the plug-in.
Eventually I found a bug that was present even in GIMP 1.2, and one problem
in the Frosty Logo script itelf, that was present since its introduction,
which I also corrected. Some more information can be found
in my report to the GIMP Development mailing list.
It was quite a lot of work for such an obscure feature, but it personally
bothered me, so I was motivated to do it.
Mandrake, Vim and the Vim Security Bug
I filed a bug
report about
the
recent Vim vulnerability in the Mandrake bug tracker. You can also
find there a
testcase I wrote to determine if you're vulnerable. (which is written
in Perl and should work on all UNIX platforms).
It took me quite some time to write this testcase. The original
Gentoo bug report
gives general guidelines on how to reproduce the bug, but not a prepared
test-case. So I had to understand what's going on there, and implement a
Perl script that does it. And the people on #vim on the IRC were not
very helpful in this regard.
OpenOffice.org's Export to PDF
I discovered that on my system, with a certain mixed Hebrew-English document,
the PDF exported by OpenOffice is not viewed correctly in ghostscript.
I reported a bug
report about it to the OOo bug tracker. Eventually it was closed,
claiming it was a bug in ghostscript and not in OOo. I filed a bug report
to the ghost-script bugs mailing list, and it may have reached my inbox
(cannot remember), but it's not in the mailing list archive.
Frustration!
HTML::Widgets::NavMenu
HTML::Widget::NavMenu
is the new name of my navigation menu module. After more work on it, I was
happy enough with the feature-set and the quality of the code to release
a stable version (0.2.0) on CPAN. After the release, I continued working
on it. I added a useful feature that I before 0.2.0 replaced with a new
one (also potentially useful). And I also did a lot of refactoring which
I delayed until 0.2.0 was out the door.
I think now the code is quite ready for 0.4.0. Meanwhile, some of the
services on berlios.de are now having some problems, which slows down
my progress.
Israel.PM Meeting
We met at Dapey Zahav, as usual. Several people arrived and gathered outside
, but we could not enter the hall because none of our contacts in Dapey Zahav
have arrived and the receptionists refused to let us enter. I collected money
from people to buy drinks and snacks, and went with someone to buy drinks.
I set them out at the table inside, and then opened some of them to drink,
because I was really thirsty.
Seeing that we could not enter, we decided to cancel the meeting, and so I
and Sagiv Barhoom carried the bottles of drinks to his car, and he gave me
a ride home. On the way, we talked about Perl, GIMP, and other stuff like
that.
We are now looking for a different place to hold the meetings, seeing that
the Dapey Zahav conference basement may no longer be available.
Jimmy Wales Visit
Jimmy Wales, one of the founders
of the Wikipedia, and director of the
Wikimedia foundation, had been visiting Israel, and gave a lecture in Tel
Aviv University. My problem was that I mixed up the dates, and arrived there
a day early. I could not find any notice about his lecture anywhere, and did
not know what to do. I also was able to find up an Internet connection in one
of the computer farms, but it wasn't any help in finding the lecture room.
Eventually, I found someone who lent me her phone and I called Ofer Weisglass.
He, after checking on the computer, told me that it took place the next day,
and also told me the room number.
I arrived there the next day, and indeed the lecture took place then and there.
I was able to introduce myself to Mr. Wales, before the lecture. I recognized
a few people there. One of them was Ofer. Another one was Michael Perelmutter,
which I told him about the lecture on my way back from the university the
day before. Another one was someone from the TAU-Sec meetings, and the rest
were people I remembered from the Wikipedia meeting in Azrieli Center some
months ago.
Now for the lecture itself: Jimmy Wales gave a very interesting and
entertaining lecture. He spoke about the Wikpedia and the related services
(Wiktionary, Wikiquotes, etc.) the translations, etc. He gave a lot of
statistics, some of them very interesting. One of them, was that the size
of the database dump compressed will reach 1 TB some time from now. Another
was that 10% of the visitors have performed 80% of the changes, and 50% of
the changes were performed by only 2.5%.
He was able to throw a few jokes during the lecture. In one of them, he talked
about benevolent dictators, and said "Like Gweedo von-Rossum is for Python".
So I said "It's Kheedo von-Rossum", and he said, "Well, you can't expect
me to pronounce that..." and everybody laughed.
After the presentation, Wales stayed for the beginning of the Wikipeders
meeting, and we discussed various topics, like an Israeli squid server for the
Hebrew wikipedia. Wales then went to have several interviews with the local
media, and the rest stayed for the rest of the Wikipeders meeting.
Ofer wanted to go then, and offered me a ride. I talked to Michael who
lives close to me, but he ended up wanting to stay for the rest of the
meeting. So Ofer and I went then. On the way to his car and during the
ride home, we talked about Linux, Mandrake, and how to find your way
around a Mandrake system.
To celebrate his visit, I added
a new page
to the Wikipedia about the "Simple Simon" Solitaire Game.
11-February-2005
Perl Quizes-of-the-Week
I posted a mail to the
Perl Quiz-of-the-week mailing
list asking why there hasn't been a lot of activity lately. As a result, we
decided to revive it by posting challenges ourselves to the discussions
mailing list. So far, I posted two challenges, one
which
I labelled "Medium" about scheduling Tournaments, and one easy one
which I encountered on IRC once. There were also two other challenges by two
other people.
Activities
I've attended a TAU-Sec meeting. In the first part, there was a presentation
about DNS-Sec, the security extension to DNS (which actually, due to input
from the audience, mostly concentrated on DNS itself.) Nevertheless, it was
very interesting. Then came a cryptograpgy-related presentation about breaking
session IDs that are generated using pseudo-random number generators. It was
interesting, but I did not understand parts of it.
There also was a presentation by Schachar Shemesh about the Bourne Shell with
some Bash extensions. He gave a very useful introduction, and I even learned
some new things. It was heavily raining after it was finished and I had to
walk home, and when I reached home I and all my clothes were soaking wet. But
still, it was fun.
Next came
a presentation
about Linux accessibility for people with disabilities. The link points
to a referenced report and some completions by Herouth Maoz and I.
Perl on Debian Woody
It seems that Perl's
File-Spec and
Cwd modules got updated recently
and now their build breaks on Debian Woody (= latest Stable
as of now), somewhere at the test stage. I already heard from two people who
had problems with this on the IRC, or elsewhere. This may cause CPAN to
be unusable there.
HTML-Widgets-NavMenu
I released HTML-Widgets-NavMenu-0.4.0 a short time after the release of
0.2.0. It includes a url_is_abs() option that enables to specify an absolute
URL for an item in the navigation menu - I missed it in version 0.2.0, where
I replaced it with a different feature. It also includes a greater test
coverage and many cleanups.
I created a web site for these
Perl modules and also announced them on Freshmeat.
Interview by Einat Ya'akobovitz
I was contacted by Einat Ya'akobovitz, who is a Sociology Masterant, who
does her thesis on the Israeli Open Source Community, with a focus on
"Freedom, Value and Community". She said she encountered my name in several
contexts, and wanted to interview me. So we set up a time for the interview
to take place on I.C.Q.
The Interview went very well, and I enjoyed answering the questions, some
of which required some thought on my part. Einat noticed I am an Objectivist,
and so asked me some questions about apparent contradictions between the
Objectivist philosophy and my open-source activity. Now I have some ideas for
things I'd like to add to my
"Objectivism and
Open Source" essay.
The Interview ended after a few hours, and Einat told me that she cannot
publish what she has now just yet, because of academic constraints. I guess
we'll have to wait for the final thesis to read it.
irc.perl.org incident
I've tried to contact Mark
Fowler in regard to his Perl
Advent Calendar. I sent him some E-mails which he did not respond to,
so I decided to contact him on the IRC. He is only present on irc.perl.org,
so I logged in there. I joined the #perl channel and shortly afterwards someone
named sungo said "rindolf: [that's my nick] are you who i think you are.",
and shortly afterwards banned me from the channel. I tried to talk with him,
(using a dedicated /msg talk channel), and this is how it went:
<sungo> dont msg me.
<rindolf> I'm looking for Mark Fowler.
<sungo> i dont particularly care.
<rindolf> I did not misbehave.
<sungo> let me put it to you this way. i don't have to explain my actions or
my thoughts to you. if you thought you were logging on to some sort of safe
and happy place, then you are very wrong.
<sungo> stop msging me and carry on with your existence
<rindolf> Please remove my ban.
<sungo> no.
<sungo> would you like it to be extended to something more server-related and
permanent? if so, then continue harassing me.
So I had no choice, but to let it be. Apparently, Fowler was inactive then, but
I was able to reach him a few days later when he told me he was sick. I guess
I'll have to try to reach him again.
I guess this sungo character banned me because of either the "Attitude of the
Perl world towards Newcomers", or the "Perl 6 Critique". In any case, I was not
going to discuss this, and was just trying to do something important. I also
wasn't misbehaving nor was going to. He is just full of bad attitude, and I
wonder who he is.
Gringotts Patch
Gringotts is a
program that allows one to write notes (like Passwords, etc.) in a secure
form. Some things about it bothered me, and the author did not respond, so
I wrote a patch for resolving them.. I also announced it on Freshmeat.
I was contacted by the maintainer of the Debian package, who said he may want
to integrate my patch into his package. He also said a patch he sent to the
author got integrated immediately, and so the author is probably very busy
now. I recently revised the patch to eliminate the use of the deprecated Gtk+
APIs, and to use more strict gcc flags.
xpdf and Upgrades
Recently I had to update half of my Mandrake system (kde, tetex, cups, etc.)
twice because vulnerabilities were discovered in xpdf. What I cannot
understand is why the code is embedded as is, an it isn't turned into a shared
library, or at least a standalone program, so one will need to update only
one package.
gimp-ace
Check
this post to the GIMP Development list for information. I
did it because I met someone on the IRC who needed it, and has still been using
GIMP 1.2 because gimp-ace was not available for GIMP 2.x. I also
placed it in the plug-ins
registry.
Since then I was contacted by two other developers who have also performed a
port of a version of the program with more embellishments. (but did not
release their modifications to the public, yet). I'll see what I can make of
it.
Gimp Bugs
I fixed an issue
involving saving an image as .xcf when no extension was given. The
patch was commited, but then Michael Natterer was unhappy from the code there,
and started a revamp of it. Other than that I also worked on the
Alpha channel
visibility issue. This turned out to involve dealing with the internals
of the GIMP, and it took me quite a lot of time (and two patch
iterations) to find out what to do. The final patch was not applied yet.
Vim Range-Search
I asked people how to do a range search in vim (from a certain line to another
certain line). There's the information which I once found in
:help search-range which involves doing a 'a,'es/ command
that runs a search-and-replace command on the range (with a quirky interface).
On the IRC, someone told me about /\%<${LINE_NUM}l and
/\%>${LINE_NUM}l that can be used to restrict the search to
certain lines. The problem is that they require actual line numbers, and not
marks or whatever.
So I decided to write a function and a command to perform the range search for
me from mark a to mark e. I wrote a function, but then it
turned out that invoking it did not cause the search pattern to be affected at
all. I thought it was a bug in vim and so checked it with several other vim
versions - they all failed to do it. This was while executing the internal
command on the vim command-line worked perfectly.
After some head-banging, I found the following expert in the Vim help:
"The last used search pattern and the redo command will not be changed by
the function". After searching the same help file, I found out that I can
set it by assigning to the @/ variable. This enabled me to write
the function properly, after spending the entire afternoon on it.
The full code at your disposal is:
" Author: Shlomi Fish
" Date: 10 February 2005
" License: MIT X11
"
function! Range_Search(mypat)
let full_pat = '\%>' . line("'a") . "l" . '\%<' . line("'e") . "l" . a:mypat
exe '/' . full_pat
let @/ = full_pat
norm n
endfunction
command -nargs=1 Rs call Range_Search(<f-args>)
command -nargs=1 RS call Range_Search(<f-args>)
I hope to perhaps enhance it by enabling custom ranges, etc.
Job Hunting
I had a job Interview at
Artnet which was arranged
through my Father's co-worker. It was in Hod-Hasharon and my Mom drove me there
and back. It was over pretty quickly, so I think I was not accepted.
I also had two job interviews at IBM Haifa (probably due to the successful
pre-interview at the Technion's job fair). The technical questions I was asked
were pretty interesting, (including some on search engine implementation)
and I highly enjoyed them. I feel I did pretty well, but they said they only
had a limited amount of openings, and I also had to pass the more upper
management. I haven't heard from them since, so I don't know what's my status
there.
I had an interview at Zend (the Israeli
PHP company), which also ended up very quickly. Finally, Ran Eilam (my former
boss at Cortext and an Israeli Perl Monger) arranged an interview for me at
his company. After the interview was over, they said they did not found me
suitable.
It's good that I have some interviews, but I would prefer to finally get
accepted into a good workplace.
Low Bandwidth Conundrum
One day when I was using the computer, it occured to me that I had a very
low bandwidth (30 KB/sec or so). I tried cancelling services, and stuff,
but it did not help. Then I checked the bandwidth from the other laptop
running Windows XP - it was perfectly fine. I tried rebooting into Knoppix
(ruined my 31 days uptime) and then into Windows 98 - the problem existed
there as well.
Then it occured to me - maybe the Ethernet card was faulty? Switching to the
other Ethernet card, indeed solved the problem. %-)
Windows Media Player
It seems that using Windows Media Player to play mp3's, causes their
last-modified timestamps to change. This is disturbing because we're using
the sort-by-modification view to sort them according to the order in which
they were added, and WMP ruins the order. This does not happen with WinAmp
or Linux-based players. Another thing that Microsoft does wrong...
21-March-2005
Gimp Testing Framework
I began the work on
an
automated testing framework for GIMP. One part of it involved making
sure the pseduo-random number seeds that a seed-less call to
g_rand_new() are predicatable. That was done using an LD_PRELOAD
trick, and writing a TCP server for assigning them.
What I have so far works pretty well, but there's a relatively small number
of tests. This helped me in a revamp I did to the gimp-ace codebase.
YAPC::Israel::2005
YAPC::Israel::2005, the Israeli annual Perl conference took place at
February. There are
summaries
of it are available in the Israel.PM mailing list archive, including
one of
mine.
MikMod for Java
I re-incarnated the MikMod for Java
homepage, this time in Berlios. A problem I encountered was that I
originally designed the site using Web Meta Language, but this got lost in
the hard disk crash, and I was left only with the final HTML pages, which I
was able to fetch from the site. So, I had to re-WMLize them. That proved
to be not very hard.
Then I went to work on the code a bit. So far what I did was made the code
compile cleanly on JDK 1.4.x (the hardest part was figuring out I had
to provide the -sourcepath . options to javac to eliminate
the "cannot resolve symbol" errors).
Another thing I did was add a driver to write a WAV file to the disk. In the
process, I discovered that the WAV file that MikMod generated was not
identical to that generated by a sox conversion from the raw file. I
discovered one of the outputted numbers was wrong, wrote a fix for libmikmod
and sent a patch to its maintainer.
Now what I'd like to do is write a driver for the Java Sound API, so people
can use it as a normal player. I had received a few E-mails from people who
did just that, but I'm not sure if the packages they wrote were not misplaced.
I'll have to check.
Job Hunting
I had a very good interview in Tel Aviv University for a position in their
System team. I also had several interviews in a company in Hertzliya. I
don't know the status of these two positions.
Upgrading Mandrake to 10.2 RC
I wanted to upgrade Mandrake to 10.2. Only problem was that when I wanted to
do that, the bandwidth limit per connection I had on my Internet link was
very low. Trying to complain about it to my ISP help-desk yielded no result.
Eventually, I decided to upgrade KDE to KDE 4.0 instead. I was able to
download the packages fast enough using prozilla, and then went to install
them using urpmi. This has failed and generated a lot of dependency problems,
errors and stuff. Clearly, the packages were not prepared well.
Then I found a Mandrake 10.2 RC mirror with which the Internet bandwidth was
OK. So I set up the sources and upgraded. I encountered many problems in
between, and had to restart urpmi several times. It was possible that the
KDE 4.0 packages messed up my system. Eventually, I opted to downgrade them
all, which involved some text processing of the packages' list. (don't ask).
But all's well that ends well. I now have a Mandrake 10.2 RC system, which
works very nicely and all. I found out a bug in which one could not
invoke Konqueror. I found it in the Mandrakelinux bugzilla, and it can be
resolved by upgrading to the latest kdebase packages from cooker.
Problems with the Ovid CPAN-to-RPM Converter
When invoking X-Chat, it barfed on me because the Perl extension I wrote
could not find the Xmms::Remote module. Due to the Mandrake upgrade, the
Perl @INC paths have changed and the module could no longer be
found. I had to re-install it.
This time I decided to make each module into an RPM package using
Ovid. However, I encountered
some problems using it. Its own RPM refused to compile. It turned out it
couldn't two problems with the new ExtUtils::MakeMaker conventions
and with Mandrake. But I was able
to fix them.
After I got it to work, I was able to build Xmms-Perl and all of its
dependencies as RPMs, and to install them. Then X-Chat worked beautifully
using my extension. "Hacker sees bug. Hacker fixes bug."
Telux Meeting: GIMP 2.2
I updated my GIMP lecture slides to GIMP 2.2. Herouth Maoz was the one who
volunteered to give the presentation at Telux, and she translated my slides to Hebrew and somewhat revised
them.
The presentation she gave (yesterday) was very nicely executed, and I enjoyed
it very much.
New web-site for Telux
The Tel Aviv Linux Club now has a
New web-site. I converted the
pages to Web Meta Language, to
HTML::Widgets::NavMenu and to my lectures manager (originally create for Haifux). Now, the
site is up, with no frames or any other resident Evil.
PySol Problems
If my mother wouldn't be able to play Simple Simon on PySol, she'll go
mad. The PySol in Mandrake 10.2 was broken due to the fact that it placed
the code at the same directory of the games, which caused them to be loaded
as plug-ins. After trying to solve it in several ways, and eventually being
victorious, I
posted a fix in the Mandrake bugzilla bug-report for it. Now Mom
can sleep well at nights. "Hacker sees bug. Hacker Fixes bug."
2-April-2005
Favicon
I went over the errors logs of
www.shlomifish.org and noticed that
most of them were requests of browsers looking for the favicon. So I decided
to create one and put it on my site to eliminate it. It took me some time
to get the transperency right, and stuff, but now it's there. It's a sketch
of a fish.
I also added a section
of my links collection with links to archives of pictures and
wallpapers.
WWW::Form
I finally took the time to integrate the changes between
WWW::Form 2.13 and
2.14 into the repository, and released WWW::Form 2.15 as a result. What
happened was that Ben Schmaus branched his own version of WWW::Form which he
worked on, on his own, and was not based on the one present in the repository,
and then released it as 2.14. Right now, the CPAN release is again based on
the Subversion repository.
Greasemonkey
I installed the Greasemonkey
extension to Firefox just so I could use the script that turned
Paul Graham's footnotes into
hyperlinks. Until now I haven't found any other script that is useful for
me. Oh well.
Networking Problems
As I was intensively updating the
Tel Aviv Linux Club homepage
I noticed a problem. Apparently, I could not access the site properly. All
other sites I tried worked fine, just not this one. Eventually I called my
ISP tech-support and after a short talk with the support person he suggested
that I restart my router. That solved the problem, and then I was able to
connect there comfortably. Sometimes the technical support can be helpful.
New Telux Lectures
Upcoming lectures are "Embedded Linux Bring-Up" by Ori Idan, and Condor
by Eddie Aronovich. I think we'll do another Lightning Talks session sometime
afterwards.
MikMod for Java
I took the Java Sound API driver which was provided to me by Tobias Braun,
and after some modifications got it to work properly. Now, MikMod for Java
can play sound interactively. I also prepared an
Apache Ant build file.
Finally, I discovered a bug in which one of my MOD files is not played
properly. I'll try to investigate.
Telux RSS
I finally took the time to add an RSS feed to the Tel Aviv Linux Club
events. I decided to base it on the Haifux mechanism. I tried to find it
in the Haifux code page, but could not. A quick E-mail to the webmasters
yielded the right file. (turns out the code page was out of date). Based
on that I was able to add RSS feed generation to my lectures publishing
system in one day.
Right now, what I have to do is to finish the script that will reside on
iglu.org.il and will collect the
events from the various places and display them in a nice web-box. This would
have been finished by now, if it weren't for the Haifux site being
unavailable. (as is usual on weekends).
Lightning Article about Devel::LineTrace
A lightning article I wrote about
Devel::LineTrace
was published
in a batch of
Lightning Articles on Perl.com. Devel-LineTrace is a Perl module
that can be used to assign callbacks to lines of a Perl program, to facilitate
debugging.
Kubuntu
I decided to install Kubuntu on a
different partition, so I can see if bugs that occur in Mandrake also occur
elsewhere. I invoked SysRescueCd to partition everything, but found out
I already had some free space at the end of drive so I decided I'll install
Kubuntu there. I installed it this morning, and spent some time configuring it.
The first problem I encountered was that several kernel modules could not be
found. To remedy this I booted from Mandrake and copied the kernel and
initrd.img file found on the Kubuntu partition to the loadlin one, and set up
a script. Then, I could not find out how to switch to the root user. A quick
google search yielded that Ubuntu did not activate root by default, and
instead made the first user priviliged to run root applications by using sudo.
So I assigned a password to root (using "sudo passwd root"), and removed that
sudo assignment.
Then I wanted to get rid of X starting automatically. Someone on IRC told me
that I should delete the xdm (or kdm in my case) symlinks from the appropriate
run-levels. So I did and it worked. (after some trial and error). Then I went
on to install software, configure the universe package source (where I found
the joe editor, and the aRts binding for xmms.), and configure KDE, the shell
, Vim, etc. to my liking.
Now I have a system that is quite usable. One thing I discovered was that
a bug I have with Cedega-CVS in installing Warcraft 3 was present there as
well. Running it through WineHQ wine was successful up to the point of entering
the information for the installation in the dialog box. This instead turned out
to output the keys to the console. The latter problem exists in Mandrake as
well.
18-April-2005
Advogato
Certified boog as a
Journeyer. I saw an entry he wrote in his Advogato weblog, and then saw
that he was the one who wrote
Learn which I found amusing
when I had encountered it on his blog originally. He seems like a cool and
capable person so I certified him.
wget tip
If you want to resume a multiple-file wget download that has been interrupted
in the middle, you should try the -nc flag. What it does is skip files
that are already found on the disk. I encountered a case in which this happens,
and after some research I came upon it.
SCM Comparison Work
I invested some work in the
SCM Comparison. It
was motivated by an E-mail I received about a Subversion web-interface that
I missed, which I added along with my own
SVN::RaWeb::Light.
Subversion is now listed with 8 different web-interfaces.
Afterwards, I spent some time working on the ability to add a version control
timestamp to the result page. Then I made a lot of cleanups to the code:
converting complicated DOM code to XPath, extracting methods, etc. I also
tweaked and fixed the CSS and XSLT stylesheets. There were quite a lot of
commits since I started: 22 in all.
The discontinuation of the gratis BitKeeper
In case you haven't heard, the gratis licensing of BitKeeper intended for
developing open-source software with, has been discontinued. Here's
a
page I prepared with a summary and links.
GImageView Bug
I discovered and fixed an annoying bug in
GImageView. After a lot of grepping and debugging it turned out
to be a simple typo (as I expected) with a one line fix.
SVN::RaWeb::Light
As I was about to start working on the code of SVN::RaWeb::Light, my lightweight
Subversion web-interface, I realized that the complete lack of tests was not
a good thing for it to remain so. So I decided to write some. Now, I am using
the CGI.pm and the SVN:: modules in the code, so I wanted a way to mock them
(without modifying the original code) so I can see what methods are called and
control everything without needing a real CGI or SVN access. So I designed
my own modules, that register their basic methods in the SVN:: and CGI
namespaces, and also manipulate the %INC internal variable to cause
perl to believe they were already loaded.
I did it relatively quickly and was quite fluent in what I did. Then I started
writing a lot of tests to the code. After and between writing tests, I also
refactored the code a lot so it's now in a better shape. I released a new
version (0.4.0) on CPAN whose highlights were the code cleanup and test adding.
Running Devel::Cover on the code I found that my tests had near complete
coverage of it. Test-driven development ownz!
XML::CompareML
New CPAN Module -
XML::CompareML.
This is a re-usable Perl module that can be used to render multi-item,
multi-system comparisons into either HTML or DocBook. It was derived from the
code of the Better SCM comparison which now makes use of it.
Better SCM Site Work
After the work on the comparison, I started
doing a lot
of work on the Better SCM Site. It felt very good, and I am very happy
with my productivity.
As I went to design a logo using Inkscape, I discovered two glaring bugs in it.
One of them has been resolved in the CVS version, but a different one was still
present. I think the problem was that I could not "Raise to Top" a certain
element of the drawing. Eventually I opted to "Lower to Bottom" the other
ones. In any case, I re-used an arrow from
the
Open Clip Art library. It seems like it matured into a
usable resource.
Net Upgrade to Mandriva 2005 LE
I did a net upgrade to mandrake 2005 LE. At first I encountered a problem,
then when invoking urpmi --auto --auto-select, it wanted to retrieve
revision 2mdk of the urpmi package, where the server had revision 3mdk (and
not 2mdk). Fetching the file and installing it from the disk solved this
problem, and afterwards the installation progressed smoothly enough.
There were other missing packages, but they did not disrupt the rest of the
installation. After I rebooted, and started KDE, I found out the
"kfmclient openProfile" problem is no longer present (which is very good), but
now a lot of my fonts are different and Bitstream Vera Serif render all wrong.
This is not surprising. Many Mandrake upgrades I've done, have messed up the
font settings.
Articles Index
I keep an index to
my articles on my site. Up to some time ago, it used Web Meta
Language's wml::std::toc extension to create a table of contents. However,
as I went to validate the entire site, I realized the markup it generated was
completely non-standard. So I had to look for an alternative.
I decided to use XML for that, created a simple markup with support for
categories and entries, and wrote an XSLT stylesheet to transform it into
HTML. Now it validates perfectly and I'm happy.
accesskey woes
The Wikipedia sites have many HTML accesskey's defined for them, some of them
for commonly used menu hot-keys. I came up with an idea to use greasemonkey
and my own user-defined script to cancel them. So I set out to write a script
to do it. This page was
a lot of help, and I based my script after it.
When I was done, I loaded my script into greasemonkey and enabled it for
http://en.wikipedia.org/*. Then I noticed that Alt+E indeed invoked
the Edit menu, but Alt+F still jumped to the find form, instead of bringing up
the File menu. It turns out it was a
bug in Mozilla in which accesskey's are not removed from
<input /> elements. This bug has been confirmed since then.
06-May-2005
Ehud Manor - 1941 - 2005
Ehud Manor, a famous
Israeli song writer passed away some weeks ago. He wrote many famous Israeli
songs, and as a tribute to him, some of the radio channels played his songs
non-stop. I discovered some songs I really like are by him. He will be
missed.
Account on freehackers.org
I helped a freehackers.org sys-admin
resolve an obscure Apache+Perl+UNIX permissions problem, and as a gratitude
he gave me an account on the machine. I knew of freehackers.org before as the
developers of KVim, the Vim
KDE-based interface. (now superceded by
Yzis). So far, I customized the account
to my liking, and also installed (with permission by the admins), an instance
of infobot.org which I called Pninith
(after the Hebrew word for "Pearly") and who hangs around some Freenode
channels. I also set up demos of
SVN-RaWeb-Light
there. I'm really glad I got this account.
libcurl and file uploads
According to this
article on LinuxDevCenter.com libcurl is capable of uploading files
using FTP. I previously thought it could only download FTP files. This is a
very good revelation and can also scratch
an
itch of Joel Spolsky where he was looking for a library that can do
FTP uploads.
Birthday
I had my 28th birthday on May 5, but it coincided with the Holocaust Memorial
Dad. My sister's birthday is coming on May 30.
Latemp - A CMS for Static HTML Sites
Latemp is a new Content
Management System I created
for static HTML files using WML files. You can find more information about it
in its about page as
well as this
announcement on my use.perl.org blog and
its Freshmeat record.
I decided to use SCons as an installer,
out of the constant frustration of having used the GNU Autotools for previous
projects. So far, the experience has been a relatively pleasant one, with
the various problems easily resolved, and a working installer. Someone
reported problems getting the installatioin process to work properly, some of
which I resolved by now, but otherwise I'm very happy with it.
I'm thinking of trying to switch to
CONS (the spiritual father of SCons)
and to resurrect it in the process. That way people won't need Python to
install Latemp.
thewml.org
I did a lot of work on The Website Meta Language
Homepage. So far what I did was switch the site to a CSS-based
navigation menu instead of the old one made of images. I also fixed the
user references page by
temporarily moving the cgiemail script to a different server.
There's still a lot of work to be done. The site still contains many images
as headings, and it's possible the HTML is not very valid or semantically
marked. Also, none of the server-side scripts work.
OpenSVN.csie.org
I did backup yesterday, which included copying the dumps of the Subversion
repositories to a CD. Now I have soom repositories hosted in
OpenSVN, and getting them involves
loginning in to an HTTPS account, filling a form and submitting them. I decided
that it should be done automatically, so I wrote a Perl script to do that
for me. I used libwww-perl, and by
analyzing the HTML and passing the relevant parameters (and cookies) to the
scripts on the server, was able to eventually download the dumps
successfully.
I think I'd like to create a module out of it and put it on CPAN, but I did
not get to it yet.
2005-05-11
Memorial Day
I have a great entry for Memorial Day, but I have to post it later, because
I need to really think about it and make sure that it's in the right spirit.
If I know you well enough and trust you enough, I can send it to you by
E-mail privately. E-mail me or post a comment on LiveJournal (with your
E-mail) and I'll see what I can do.
New Signature
All hail my new signature. It's based on something I thought about and then
said in FreeNode's #perl channel, with
a later edition, which makes it much more funny. Here goes:
"Tcl is LISP on drugs. Using Strings instead of S-Expressions for Closures is
Evil with one of those gigantic E's which you can find in the beginning of
Paragraphs."
Which Masses is Linux Ready For?
There's an interesting
thread in Linux-IL about which of three masses of users (The
"Aunt
Tillie"'s, the Power Users and the Gurus) is Linux ready for. You can
find some "WinXP eats Linux alive" E-mails which were eventually reasoned
against properly. A very good and informative thread with many interesting
anecdotes and real-life stories.
2005-05-10
In Memory
I'd like to tell the story of my personal encounter with a
soldier who lost his life in battle. At first, though, a note is in order for
International readers: terrorism in Israel is not as severe as people are led
to believe. Most households are completely unaffected by it, the streets are
perfectly safe, most people don't carry weapons, and more people get killed
due to car accidents than terrorist acts. While Israel is far from being as
peaceful as Switzerland, for example, it is nonetheless pretty safe to be here.
At high school, I became friends with a kid who studied in
my class. He was very fun, very intelligent, and had a great sense of
humour. I really liked him. He wasn't one of my two best friends who were from
my class, and my two secondary friends whom I knew from Elementary school, but
he was a good friend nonetheless.
It was in our Junior year, when his brother (whom I did not know) who has
served in the Army at the time as a Battlefield Medic died in battle. It was
an encounter with the
Hizbullah in Southern
Lebanon. We heard about the upcoming funeral by word of mouth, and I was able
to attend as well as many people of my class. (Jewish funerals must be
conducted as close as possible to the time of death). I recall that I forgot
to bring a Kipa (a traditional Jewish ceremonial hat), and had to borrow one
from my aunt's friend. I don't recall too much from the ceremony except for
people saying Amen or Qadesh several times.
My friends and I went to visit this kid a few days later, when his family was
hosting friends and relatives for the "Shiva'a" - the traditional Jewish week
for comemorating the dead. We chatted a bit. He was dealing in his
geneoulogy at the time, and having given him a freeware geneology program for
DOS to facilitate it. I asked him how it went, and he
answered that he had problems because many of the records were in German. When
he left the room my friends scolded me for doing that, because they thought
it was inappropriate at a time when a family member died. I did not thought so
at the time, and retrospectively don't think it was inappropriate today as
well.
Afterwards, I felt a change in him. He became more cynical, and used to
insult me in public (not too much or too hard). He was still very fun, but
I definitely felt a change.
As a result, I started having bad sentiments and thoughts about the Hizbullah.
At one time I said to myself "I hate the Hizbullah." (I don't think
rationally feeling hatred is bad, and still hate them.). I had less emotional
baggage towards the Palestinian organizations. I considered the
Hizbullah the second worst "Liberation organization" I knew of after the
IRA. Don't
get me wrong, some liberation organizations were very noble. Prime examples
are the Maquis
and the Haganah (except for
a brief period in which they performed Terrorist acts) were very noble. But
the Hizbullah, the IRA, and
many other organizations some of which are still highly reverred, and most
others entirely forgottten are anything but.
Eventually, I decided I'd like to write a story about the Hizbullah. I had an
idea for a story about a Hizbullah soldier (or was it a friend of a soldier)
who had stayed in his village, right before his troop (or is it platoon) went
to battle, when he knew most of them would never survived. The kind of stuff,
many completely uninteresting movies in Holywood or the Hallmark channel are
made of.
My real inspiration came later on from two things. First I read
Neo-Tech and was heavily
inspired by it. Among the many things of inspirations were:
The other source of inspiration was reading The Bastard Operator from Hell, a delicious story about a UNIX
system administrator who re-defines the term "User Friendly". ("'What's your
username, again?' click-click-clickety-click").
I came up with the idea for
The Enemy and How I Helped
to Fight it during a trip to England. I became so obsessed with the
story during the last days of the trip that I could hardly function. During
our return home I fired up MS WordPad and started writing the first draft. It
was relatively short, and as I showed it to my best friend, he said
that it was OK but not too funny. He was right.
It took me six months to rewrite it. I started by writing the first chapter
(on Paper), and went to my friend's house and read it to his brother and him.
They liked it as a whole and gave some useful commentary. I transcribed the
story into the computer refactoring it
as I went along and continued it. I printed excerpts to my friend, but
he was too busy with his army service to read it till its end. My co-worker,
once he heard I was writing a story, insisted on me sending it to him to read.
I send it to him and his commentary was essential for shaping the final story.
I received mostly good critiques of it since.
I'll give a teaser which covers only the first chapter, out of 10. One day the
Member of the Organization wakes up and goes to the base. It's a lovely spring
day, the flowers are blooming and there is a lot of wildlife on the way. He
thinks it would have been a perfect day to fire missiles on the Enemy's
soldiers, but he has different plans.
After having a chat with some of his co-soldiers who are outside, telling them
he plans to quit, he goes to his commander and tells him he's quitting. His
commander is sorry to hear he's living, saying the Other Member of the
Organization is also quitting today ("When it rains it pours") and wishes the
now ex-Member of the Organization, good luck in his future whereabouts and that
he would maintain the spirit of the organization and its philosophy.
The ex-Member (sorry for the bad connotation) is about to leave, when he comes
back and says that he has served the organization for several years now and
yet no-one has told him what its philosophy was. So the commander explains it
to him. The objective of the organization is to fight the Enemy (a country
to the south of the country in which the Organization operates) with all of
its might. However, there's one thing that hinders their actions. It's not even
real, but a meta-physical term, that accepting most interpretations of it would
have caused them to be unable to operate. This term is "Morality". As a result,
they have decided to accept the Philosophical Equation "Morality = No
Morality.". However, since it contradict Aristotle's Organum (see above),
they decide to reject the Organum or at least don't see it as necessary true.
The ex-Member tells him that in this case, it is a good thing. He too has
read the Organum and had his doubts about it, but thinks that rejecting
it opens a possiblity for the members of the Organization. If A can be not-A
and since the Members of the Organization are not the Enemy's soldiers it is
evident that they are its soldiers (!!!). This makes there task more easy: they
can kill each other, and all of the casulaties are of the bad guys.
The Commander thinks it's a brilliant idea. He thanks the ex-Member of the
Organization and tells him he'll implement his decision right away. The
ex-Member tells him he's glad he did. He says goodbye to his commrades, finds
the other member who quit that day, and they walk back to the
village.
As they finish climbing a hill that overlooks the base, they hear sounds from
its direction. They see the members of the base killing each other. Eventually
one last member remains on the roof victorious. The commander exits from the
remains of the base and shoots him. He then enters and writes a memo about it
to the Organization's upper level, files it in the base's post-office box, and
then shoots himself to death.
The two ex-Members shrug their shoudlers and continue on their way back to the
village.
Like I said, it is only the first chapter. There are nine more. The story is
available in English Hebrew Word-Generated-HTML (sorry, but it seems to be
readable on every browser I tried). The Hebrew is quite high, and I (who is not
a native English speaker) did the translation. I translated some words using
a dictionary and when reading the translation could not understand them. (I
know it's lame). I'd like to write a fourth draft in which I simplify the
langauge of the story, but I did not get to it.
An Iranian correspondant (who now relocated to Canada), has read and enjoyed
the story, and said he would try working on a translation to Farsi. The story's
copyright does not say so explicitly (I have not updated the page yet) but it
is licensed under the
Creative Commons
Attribution Share-Alike license version 2.0 or at your option any
greater version.
If you like it, please circulate this blog entry or link to it. Remember Death.
2005-05-23
Pod::Xhtml
I realized Pod::Xhtml does not generate valid HTML. So
I fixed it. Now it's
time for the good people in the British Broadcasting Corporation to
incorporate the patch. <sigh />
Latemp
I released Latemp 0.2.0. Now
what I'd like to do is to try to get everything packaged in RPM packages. Time
to write some scripts, I guess...
Perl DBI
Hmmm... turns out DBI returns the same array reference each time you call
fetchrow_arrayref. It's documented, but if you ask me
counter-intuitive. In any case, You Have Been Warned.<tm>
IGLU Jobs Tracker and RSS
I added an RSS feed to the IGLU Jobs
Tracker. It took me some time to get right, but it proved to be quite
useful, even for me. A problem was reported on using it with rss2email, but
akregator can handle it fine.
BitTorrent
My Media-Mongering sisters have discovered BitTorrent. So far so good, only
the reference BitTorrent implementation insists on dedicating at least 1 Kbps
upload, for every file it downloads. Which is unacceptable for downloading
multiple files from an ADSL connection with only 10 KBps upstream.
Luckily, MLDonkey supports it. But I could not find a way to enqueue a torrent
using MLDonkey - one has to use the telnet interface. Thus, I set out to
automate it. A little Perl and Net::Telnet wizardry, and I was done. The script
can either download the torrent from the site into a designated directory and
then enqueue it, or it can enqueue a given file.
I think Noa, who had her introduction to the UNIX command line in the Technion
(she studies Computer Science), got the hang of it, but I'm not sure, because
my sisters usually request me to do everything for them.
Events
There was an Assembly of Hamakor the other day. It was on the same day of the
European championship and of a Tau-SEC meeting, but nonetheless many people
have arrived. We voted on several things. Most of the really imporant
modifications to the bylaws were passed. The new board is Orna Agmon, Alon
Altman and Gilad Ben-Yossef. The latter urged us not to vote for him because
he had a business, and was about to have a baby, but people still did. Ori Idan
was not elected, but he promised to still be very active.
Adir Abraham, Nadav Har'El and I are the comptrollers committee. So far it
seems that Adir is the most energetic of us three. I still have to get
acquainted with the full text of Hamakor's bylaws...
Another important event was a new meeting of the Israeli Perl Mongers. There's
a report of it
over at the Israeli Perl Mongers site. I've written about some things that are missing from there in a message to the mailing list.
New CDs
I received some money as a present from my grandmother, and decided to spend
most of it on CDs. I went to the store wanting to buy a CD of Enya, a CD of
Des'ree, and "The Comedy Store" (an Israeli group of comedians) CD. They
only had Enya, so I also bought two U2 collections. The collection CD of
Enya is mostly excellent. The U2 cds are also nice.
I converted them to .ogg, and I think they sound a bit better than the
equivalent .mp3's. This is the first time I bought so many CDs.
Israeli Pythoneers
I wrote a Call to Israeli
Pythoneers to become more organized. I received some comments, and
as a result set up the Python in Israel
homepage with a wiki. We'll have an informal meeting (i.e: meeting at a
mall, talking, eating and shopping), so if you're Israeli and like Python
or care about it, spread the word.
A caveat should be mentioned: I don't like Python too much. Sometimes I can
write it or hack on code that's already written in Python and it's OK, but
I prefer Perl by far. I'm doing it because I noticed that there are many
Pythoneers in Israel, and it's a shame they are pretty much inactive offline
and to a lot of extent online.
eskimo.iglu.org.il Upgrade
Check
this
thread in iglu-web about the eskimo upgrade. At the moment iglu-web
runs Debian Woody, and we'd like to upgrade to Sarge Real Soon Now. I also
mentioned some other stuff I'd like to do, like gradually switching to
Siesta instead of ezmlm, and then to replace qmail with postfix. This triggered
the opinion bit of a few qmail+ezmlm zealots. (who are otherwise free software
advocates).
A Hebrew spin-off
of this discussion can be found in linmagazine.co.il. However, it
deteriorated into a Linux-vs.-BSD flamewar.
BitKeeper Essay
I wrote an
article titled "What BitMover Got Wrong" over at the Better-SCM site.
I OSNews.com'ed it
and judging by Google it seemed to have hit the rest of the blogosphere. It
seems to have been rejected from Slashdot, though.
I also sent it to Linux Weekly News. I did not find it on their newswire, but
hopefully it will be mentioned somewhere in their weekly edition.
New Weblogs + Personal Ad
I have two new blogs. My
use.perl.org blog
is a blog in English dedicated to my Perl activities. My
linmagazine blog is a blog
in Hebrew, where I write about Open Source activities in Israel, and open
source advocacy.
Other than that after talking to Jeremiah Kauffman (jkauffman) on the IRC,
I was convinced that I should not wait until I have a job to get a
girlfriend. Having reached that conclusion, I wrote
a Personal Ad. I
received a lot of good feedback from it from people I consulted. I'd
like to spread it around at various Internet places, but the Students
Association of the Tel Aviv University, where a lot of my prospective audience
can be found, only has one web forum and it's restricted to TAU Students
alone. They obviously don't know the value of good social engineering. The
Technion's Student Association has several web-forums (powered by PHP-BB) and
none of them are restricted.
2005-06-03
Human Hacking Field Guide
I did some extra work on
"The Human Hacking
Field Guide". Rather minor changes, except for styling the page,
in a much better way. I started from the Two Triangles style of Open-Source
Web Designs, but then discovered it was missing some graphics, so I designed
a similar layout using GIMP, which looks pretty well. I still need to set up
a for-print stylesheet, and see how I can get the XSLT stylesheets to include
this statement in the HTML <head>.
I received some comments on it, some positive and some critical.
Puppy!
My bike broke the other day and I wasted all afternoon carrying them back
home. On Sunday I went to the bicycle repairman. I asked him some stuff about
what it takes to be a bicycle repairman, and we even discussed Liberalism,
Democracy and Laissez-Faire Capitalism briefly.
Anyway, when I returned from him, I dragged my bike among several people, among
them were a few girls with an incredibly adorable puppy. I think he was grey
but he was very beautiful. I asked his owner if I could pat him and she said
I could, and I did.
And for the record: I'm a Cat person.
Neo-Tech News
I recalled that the Wikipedia did not have an entry about Julian Jaynes, or
his theory about the origins of consciousness. Well now it has:
entry on Julian
Jaynes, entry
on the theory. The latter page also links to
the entry about Neo-Tech,
which I'm sure did not exist.
In any case, the latter also points to the fact that a lot of the Neo-Tech
material is now online, but in a different URL. Here are
The Neo-Tech
Advantages, here are
the Selected Portions
from the Neo-Tech discovery, and here is
Neo-Tech - The Philosophical
Zero.
It seems that many occurences of "Neo-Tech" were changed to "Neotech". I don't
know exactly why.
Ruby on Rails
I took the
Ruby on
Rails tutorial over at OnLAMP.com. The tutorial is quite Windows
centric, and I also needed to update it to later conventions. I also got
stuck on incorrect whitespacing in one of the fails. All in all,
though, it seems like a very nice technology. Now, I'd like to take the
Catalyst
tutorial and see if it also lives up to my expectations.
If so, I'll guess I write a sample application (which I'd like to have anyway)
just to learn it better.
Countering Anti-File-Swapping Lawsuits
I posted a notice about my
editorial to the Linux-IL and discussions@hamakor mailing lists. This
sparked quite a discussion, which I happily took part in. However, my original
intention, to ask whether Hamakor was going to do anything about it was quickly
answered, and then people simply continued to debate whether file-sharing was
moral, ethical, or whether violating the letter of the law in this regard,
could undermine Liberalism.
I was not convinced that file sharing is immoral or unethical, and I believe
it should be perfectly legal. I also think that downloading some songs from
P2P networks and other sources "illegally" cannot undermine Liberalism. There
are many other gems there, if you care to read it.
Miss Universe Site Outage
After the Miss Universe ceremony there was a lot of discussion on #perlcafe
about the various candidates. So I went on to check the site. What do I get?
A standard Microsoft IIS page saying that too many people access the web-site,
and that I should try again later. After the night, it got better, but still,
it was obvious that it could not handle the load.
So what have caused this? The server+OS? The machine being not fast enough?
Or maybe the bottleneck was the I/O?
2005-06-18
PmWiki Reverting Script
The old Perl-Begin Wiki, powered
by PmWiki got heavily spammed. I wanted to write a script to revert the pages
along with their histories back to a previous date. When I posted a message
to the PmWiki mailing list, Patrick Michaud (the PmWiki writer, among else)
explained that it would be very difficult, said it should better be done
manually, and then explained the format.
Despite that, I set to write the script. It turned out to be not very hard,
and the main thing in which I spend a lot of time banging my head on, was the
fact some pages started from a filled-in state. But otherwise, after I ran it,
it worked beautifully, and probably took less time than a manual work.
The
script is available on my site. I now re-enacted the
Perl-Begin
wiki as a MediaWiki, and not I monitor its RSS feed to prevent future
spam.
MediaWikis
I am now the proud admin of 4 MediaWikis: The Hackers-IL
Wiki, The
Perl-Begin Wiki, The Python-IL Wiki, and
Perl-IL Wiki.
The wiki that took the largest amount of time to set up was the Perl-Begin
wiki, because it took time for Berlios.de to make the database ready. The wiki
that sparked the most contreversy so far is the Python-IL one, because some
people insist on using Moin-Moin instead. The Perl-IL wiki is a second attempt
at having an active wiki for the Israeli Perl Mongers, after our old
Kwiki-based wiki first got spammed and then stopped working for some reason.
Additions to the Art Section
I added the "Made
with Latemp" logo and the
background for the
"Human Hacking Field Guide" story to the Computer Art section of my
homepage.
thac's KDE 3.4.x
I upgraded to KDE 3.4.x from
thac's RPMs for Mandriva.
It is working sort of, but has many bugs. There were many duplicated entries
in the menus and toolbars which I had to eliminate by manually editing some
configuration files. Also, Konqueror no longer detects RSS feeds for inclusion
in Akregator. And the Kedit menus are completely borked. I'm seriously
considering downgrading back to KDE 3.3.x.
The Daemon, The GNU and the Penguin
I read the
chapters of "The Daemon, The GNU and the Penguin" that
were published so far. It was a pretty good read. I expected all the
chapters to be much longer than they actually were, which was both a pleasant
and a disappointing surprise.
Presentation about LAMP
My presentation about
Web Publishing Using LAMP is now online and linked from my site. It
is already a bit out of date, but that's life in the fast lane of web
publishing. ;-)
Catalyst
I published a
weblog entry about Catalyst in my use.perl.org blog. Aside from that,
I'd like to note, that I found WWW::Form useful there too, but had to
extend it a bit for the purpose. A new version of WWW::Form (1.16) was
released on CPAN to reflect these changes.
Pythoneers Meeting
The Israeli Pythoneers had their
first meeting for a long time which I organized. (despite not being very fond
of Python). At first we gathered next to the cinema, and waited till everyone
who planned to arrive arrived. The cellphones were really helpful there. We
had some small talk about various things, like Perl, Python, PHP, Linux,
Demand for various open-source related jobs in Israel, the demand for Python
programmers in Israel, etc.
Then after everyone arrived (8 in total - pretty good I think), we went to
a quiet place (same place as the Israeli Wikipeders meeting took place)
gathered around the table and started discussing our plans for the future.
The
summary of this meeting (in Hebrew) is available on the Wiki.
A few people left early for various reasons. Eventually 4 stayed to eat there.
Amit Aronovitch and I took meals from Smokey, Beni Cherniavsky took a Chicken
Salad from Nandos, and someone else took Sushi from the Japanese Bar. We
sat around one table and ate and chatted. We discussed the
linmagazine discussion on the
the term "Nazi", and I told them about the funny discussion in
discussions@hamakor
(search for "You can easily install the binary distribution of Mozilla") that
was started from someone mentioning that he was still using Mozilla 1.1.
Then we parted. I took the bus back home as no-one was driving in my
direction.
thewml.org
After a discussion in the Web Meta Language discussion list, where someone
suggested to host the WML homepage on his own machine, Ralf Engelschall has
noted that he enabled the server-side ePerl in thewml.org. This inspired
me to continue my work and now I got the front page and the about page to
validate as XHTML 1.1. I'll probably do more in the next days.
Blog Aggregation Using Perl
In order to get all my blogs aggregated on
Planet FOSS-IL, its webmaster
requested me to aggregate them all into one place, so they'll all appear under
my name. After a long time of negotiating with him, I decided that if the
Mountain won't come to Muhhamad, then Muhhamad will have to go the Mountain,
and decided to write it.
I decided not to use PlanetPlanet because it probably wouldn't be able to
run on Debian Woody where I wanted to run the cron job. Instead I opted to
use
XML::RSS::Aggregate. So I ran it on the three blogs, and then found out that the dates on many
of the blogs were wrong. After some investigation I found out it generated an
RSS 1.0 feed. I tried to get it to generate an RSS 2.0 feed, but it didn't
work. Turned out the version of XML::RSS in Woody was so old it did not support
it. So I installed the new version of XML::RSS under a path in my home
directory.
Then, it turned out all the dates of the use.perl.org journal were wrong. Why?
It was an RSS 1.0 feed for some reason! I tried to find if I can get an RSS 2.0
feed instead, but my URL guessing did not work. So I had to overcome several
problems. The first was that the field of the date in the spec has changed from
dc:date to pubDate. This was relatively easy to fix. However,
the date format has also changed. In order to translate the old date format
into a timestamp, I had to install the new version of the Date::Parse module.
Then, I tried to convert it to a formatted time using the localtime() Perl
built-in. Only it turned out it was not the correct format for RSS 2.0 which
required RFC822 format. So I looked for an appropriate format string to format
it to. Two google searches later I found one in the
code of
HTML::FormatData, and I copied and pasted it.
Then (finally) akregator approved of it and I was able to notify the Planet
FOSS-IL webmaster about it. After installing several modules, and patching
XML::RSS. What's the lesson here? I honestly don't know. Nevertheless, it's
just convinced me that I'd like to upgrade eskimo.iglu.org.il to Sarge as soon
as possible.
2005-07-03
Random Hacktivity
I added some sections to
my Objectivism and
Open Source essay. I did more work on the
Web Meta Language homepage focused on getting
all the pages to validate. The pages use a lot of deprecated markup (like
<font> tags, zero-width images, various visual attributes,
tables, etc.) and getting it to be valid and semantically correct is proving
quite a lot of work. It also makes use of many WML APIs, which as I am unable
to replace right now, have to work around them or replace with more modern
equivalents.
SVN::RaWeb::Light
I gave some love to
SVN::RaWeb::Light
after a long time of neglect. What I did involved implementing the so-called
URL translations, in which one can specify URLs of the real repository to be
displayed next to the URLs in the web-interface. That way, you can copy the
link and paste it in a console (or wherever) to manipulate the actual
repository. As usual, I wrote more test code than actual code. As a result
of all this feature adding, the directory display function became very long,
and ugly. I guess I'll have to refactor it.
Pod::Xhtml's Pleasant Surprise
During one
discussion in the Perl-IL, Offer Kaye complained that the output of
Pod::Html does not validate. I suggested he uses Pod::Xhtml instead, and
after he tested it he found that it still did not validate. I realized it
was because some of the XML IDs generated by it were identical. So I planned
to fix it, but when I came to it a couple of days ago, and inspected the code,
I found it was already implemented.
Turns out Offer reported it to the module maintainers, and they fixed it
themselves. It was a pleasant surprise.
SpamAssassin Compilation Trouble
I had problem compiling SpamAssassin on Mandriva 2005 LE. The test seemed to
get stuck and started to consume all available memory and CPU. I eventually
found it happened because I had pointed LD_LIBRARY_PATH to
a Berkeley DB-4.2 installation. After I removed it, it compiled fine.
DIMES project
We had a very nice presentation about the DIMES
Internet Mapping project over at
the Tel Aviv Linux Club. The
purpose of the DIMES project is to map, measure and track the Internet. It does
so by having users install agents on their machines, which then collect
networking data and send it to a centralized server that processes it. It has
a lot of cool applications.
If you have a Windows machine, you can install the Java agent their and join
a team to track the statistics. A Linux agent is in the works.
Perl-IL Meeting: Stas Bekman
Stas Bekman is now visiting Israel and last
Thursday he gave
a presentation to the Israeli Perl Mongers. Despite the fact it was
announced relatively at the last minute about 13 people arrived, and we had
a lot of fun. There wasn't a lot of time for us to occupy the room, and so
as a result, Stas could cover only very little of his presentation (that
normally takes 5-to-6 hours).
One anecodte he told us was that when he was lecturing somewhere in Canada, and
asked if people wanted to have a break after a few hours, they told him
that they did not, and yet kept asking him questions, etc.
The slides are available online in PDF format if anyone is interested. All in
all, it was very interesting.
BerliOS Problems
Three of the bugs I filed in the BerliOS bug tracker got closed before the
weekend, without a comment or anything. Plus, they are all still valid. I
could not find a way how I can re-open them. Another thing I noticed is that
Apache no longer serves tar.gz files, and I have to put them in the projects
files and link there. Now I have to put all the Freecell Solver tarballs
of previous stable versions there.
Fixing a Mandriva Upgrade
There's this guy who uses Linux, and who contacts me whenever he needs
help. Recently, I burned out the new Mandriva 2005 LE CDs to him, and he used
them to upgrade the system. Then he reported he had a problem. After he drove
me to his house and I operated the computer, I discovered that the problem
had something to do with the fact devfsd was mounted, while udev should have
been used instead. I did not know how to fix it, but
this
document explaining how to disable devfs on Mandriva was
very helpful. Turns out I had to tweak the LILO settings. I did not encounter
the other problems reported there.
Then I tried to set up the Microphone, but I was not able to, no matter what
I tried. Waveform playback in the soundcard worked perfectly, though.
2005-07-31
Prologue - Blogger Definition (via
mulix)
Muli said in one E-mail that he heard that a blogger is defined as someone
who'd rather write about doing X than do X. Am I an avid blogger? Right now I
have 14 (!) items that I'd like to blog about, and would rather do something
better than write about all of them. Some of them actually contain useful
technical information and others talk about my hacktivity.
The blog entries of most bloggers focus on one or a few issues and if more
issues are discussed, the blog is updated more frequently. I, on the other hand
tend to collect many topics, and write about them in one swoop. Thus, many
people who read my Advogato/LiveJournal blog may be overwhelmed by it. But
most Advogatoers do something along this line as well, partly because the
Advogato recent-log does not like small entries much.
But I digress. What I want to say is that while I find my online diary
important, and a good way to remain organized as well as to sharpen my
writing skills, and to hopefully entertain a few really bored souls (hi
guys!), I find that if I do it often it becomes very time consuming. When
I write blog entries or E-mails, I usually take a long time to think about
what I'd like to say, what I wanted to say and forgot while writing what I
have written until now, etc. It's quite time consuming for me. So I might
try to avoid doing it too often.
I also thing that I find writing about things I did in a weblog less
entertaining than actually doing these things in the first place. But so far
I treated it as something I just need to do.
Aside from this thought, I'll entertain you (ha!) today with two other topics
of the remaining 13. One of them is copied from an E-mail I wrote to a
correspondant, but still is very much a classic blog entry. The other one talks
about etymology.
Hectic Thursday and Friday
On Thursday, I woke up prematurely at 3:30 AM and decided that it was one of
these days that I did not want to go back to bed. I stayed awake until I went
to sleep at around 23:00. At first I started working on making sure a Perl
module (HTML::Parser) has 100% test coverage as part of
the Phalanx
project.
However, some things in the module were relatively anachronistic and quite
annoyed me so I delayed continuing working on it. So instead I went to
continue working on preparing a vector graphics sketch of the left pane in
this Ozy and Millie
panel strip.
I made a lot of progress. What I have now seems to resemble the lower part of
the original, but the curves are still quite non-identical. Nevertheless I
want to complete everything and then to fine-tune everything at the end.
Working on such an image is relatively tedious, so I alternated between doing
it and doing something else. Throughout the day I found myself to be pretty
bored, so I decided to try doing something productive and hope that the
appetite will follow the food.
So I set out to work on a project which I started and then abandoned to write
the SVN::Pusher module and the svn-pusher command line client. I wrote a
basic version of this utility called "svn-push" in C which is working but is
very limited, and I wanted to write it in Perl so it will be more flexible.
Someone wrote a module called SVN::Push and placed it on CPAN which contained
a similar functionality, and I decided to base on it. However, after
converting the code to do what I want, I encountered some problems, and thus
abandoned it for a while.
So on Thursday, I went back to it again, was able to find a workaround for the
bug that troubled but encountered other bugs. I resolved them as well, and
when I finished late at night (22:00 or so) I had a working version. I still
have some work to do, but I'm glad that I was successful. Most of my problems
were caused by the fact that what I wanted to do was quite different than the
original's code, but at least the API was bug-free.
I conversed on the IRC almost the entire time, in hope that people can help
me. I think I found out the problems on my own eventually, but it was still a
fun conversation. Here is an excerpt from towards the end of it:
<rindolf> Success!!!
<rindolf> I discovered another copy-and-paste-bug and now everything is
working. In Perl.
<rindolf> Problem between the keyboard and the chair.
<Rytmis> The most common sort
<rindolf> _My_ keyboard and chair.
<Rytmis> I stand by my statement *grin*
<rindolf> That's the problem with starting from a code that does things
differently, and does more.
<rindolf> It's a good thing I wrote this test case.
<rindolf> ayita: kfogel interview?
<ayita> I don't know anything about kfogel interview.
<rindolf> ayita: learn kfogel
interview=http://developers.slashdot.org/article.pl?sid=05/07/27/1555228&from=rss
<ayita> rindolf: I don't understand what you are telling me.
<rindolf> ayita: kfogel interview is
http://developers.slashdot.org/article.pl?sid=05/07/27/1555228&from=rss
<ayita> Thanks!
<rindolf> ayita: good girl.
<rindolf> ayita: kfogel interview?
<rindolf> ayita: kfogel interview?
<Dave`> kfogel interview?
* Dave` smells ayita timing out
<darix> ayita: index kfogel.*
<darix> you killed her it seems
<rindolf> darix: LOL
<davidjames> It's not nice to hurt people
<darix> eh: pokes
<Dave`> Oh my god, they killed ayita!
<sussman> hiiiiiiiiiidey ho!
* rindolf quickly finds someone else to blame.
<rindolf> a scape-goat!
<rindolf> sussman: excuse me?
<sussman> obscure tv reference, it's ok
<rindolf> sussman: you'll be the ideal scape-goat for the murder of ayita.
<rindolf> Here's another t.v. reference:
<sussman> I think you'de be good at the 'werewolf' game
<rindolf> "You know it would be the easiest thing to blame it on Nanny."
<rindolf> "Let's do it then."
<littlezoper> sussman: mr hankey?
<Dave`> sussman: the werewolf game? Is that the card-based RPGish game?
* rindolf is listening to The Beatles - Come Together
<sussman> littlezoper: ding ding
<littlezoper> woo hoo! :)
<sussman> http://svn.red-bean.com/repos/sussman/software/werewolf/
<littlezoper> that show's horrible :P
<davidjames> sussman: South Park is obscure? :)
<sussman> it was to rindolf
<sussman> http://svn.red-bean.com/repos/sussman/software/werewolf/wolfbot.py
<rindolf> sussman: I maybe watched 10 minutes of south park in total.
<sussman> ah
<rindolf> "Got to be good-looking cause he's so hard to see."
<sussman> Beatles?
<rindolf> sussman: yes, from "Come Together".
<rindolf> I was listening to it now.
Pretty silly I'd say.
Then when I checked E-mail I found out that some folders had 30 or 20
messages. Apparently the flame-war in discussions@hamakor
really heated up. It all occured because someone who is a member of the
Israeli local Free and Open Source Sotware (FOSS) Community is quite tactless
and tends to troll and insult people a lot. As a result this discussion
heated up and people tried to reply against the accusations. When this member
was decided to be moderated, people tried to say it was a wrong decision to
moderate him, and as a result a lot of further accusations were thrown.
This has caused several subscribers to leave the mailing list, some people to
request to revoke their membership from the
Israeli FOSS NPO, and one member
of the board to resign. (claiming that the board should have the approval of
the assembly) Now it seems like it has hopefully cooled down a bit.
In any case, I did not have a time to catch up with it too closely at that
point, because I had to go to sleep. I was waked up at 6:30 AM by my Sleep
Alarm, because I was picked up at 8:00 by Lior Kaplan in order to upgrade the
server iglu.org.il (known as eskimo to the adminstration group), from
Debian GNU/Linux 3.0 ("Woody") to
Debian 3.1 ("Sarge"). Despite the fact Sarge is
a .1 release, it was about 3 years since the previous release, so it's the
most fundamental upgrade to Debian so far. We also wanted to install a new
320 GB hard disk there.
The upgrade took some time, but went quite well. Lior was a big help. One
problem we encountered was with setting up the RAID array. It seems that the
previous tool chain for managing them was no longer available, and the
replacement required some tweaking to be compatible with it. I won't bore you
with the technical detail, but eventually we had to do a relatively ugly
kludge to get it to work. Luckily there was pretty good documentation
available on the hard-disk.
After we installed the hard-disk, we had to format it, which took a long time.
It's strange, but I don't recall that formatting an XFS partition takes so
long. Granted, my hard-disk is quarter the size of the hard-disk we installed
there, but I think it took less than quarter of the time. Maybe I should
ask Linux-IL about it.
In any case, this gave us the opportunity to eat, so we went outside, and
bought Shawarma, and
went back. The formatting was finished and we decided that everything was in
order and we could continue doing the rest from remote.
I should note that the place has left quite an impression on me. The Eskimo
server is hosted in the server farm of an Israeli ISP called Actcom, which is
very friendly to Israeli Open Source Activities. It occupies most of the
second floor of a building called "The Tower of Haifa" which is relatively
old. The rooms and corridors looked relatively aged and neglected. The
server room was heavily crowded with servers one next to the other. I was
told it "looks like shit" on one occassion but I was actually relieved when I
saw how it really looked like. We spotted other servers we were familiar with
there.
We had to work in the room of the Technical support people. (Four supporters
crowded in one room with microphones, computers, etc.). So we listened to
their conversation and had to be quiet. We worked on the remote computer
through a mechanism that allowed seeing the screen output of the computer on
our local screen. The local computer which we sat next too has ran Windows 98
and we had a graphical browser, an SSH client, etc. available there.
After we were finished, Lior drove me to the Train and Bus station. The last
train to Tel Aviv was leaving, so I decided to take the bus instead. Then my
father drove me from where the bus stopped. I arrived at the house at around
16:00, washed my face and ate, and then went to the computer to catch up with
the E-mails.
Someone actually told me that he'd like to hear my opinion on that. I answered
him that I was busy working on SVN::Pusher and upgrading Eskimo, and so could
not engage in something less productive like a grand-scale flame-war.
Productive work is a dirty job, but someone has to do that...
In any case, I cought up with the rest of the correspondence, and wrote some
E-mails summarizing my opinion.
Meanwhile it seems that a server on the Technion (vipe.technion.ac.il) which I
have an account on, to read E-mails and host some web stuff, has become
disconnected yet again. I feel like I'm missing a bone or something. I went
to sleep at around 22:00, but fell asleep only at around 00:30.
I had a good night sleep, and woke up on Saturday at 11:30 AM and today at
10:30. I feel refreshed from the sleep, which I did not get enough of for two
consecutive days. Yesterday and today I also went to ride my bike, so I got
some exercise, and did some physical travelling.
There's some more upcoming open-source related activity in Israel (either
"real-life" or electronic), so there will be more things that other people
and I will need to take care of.
Placement of Sentence Parts in Arabic and Hebrew
My family and I went to my grandmother for lunch. My grandmother and her
husband are Iraqi Jews and my step-grandfather also knows Literate Arabic.
So he asked me about Inna and her Sisters. So I told him that it was a group
of connectives that included "Inna", "Anna", and others (he added "Lakinna"
"La'anna", and maybe others.). I remembered it from my Arabic studies. Then
I tried to remember what were they all about. And then it hit me.
You see, in Arabic, the verb usually precedes the subject: "Walked the Boy to
the Garden" (pardon my Anglicalization of the Arab words, but otherwise this
entry will make less sense to people who don't know Arabic than it already
does). However, after "Inna", "Anna", etc. the subject precedes the verb:
"I said that the boy walked to the garden.".
Now, in ancient Hebrew in regular sentences the verb also preceded the sentence:
"And said God 'And there was Light'". Maybe after some of the Hebrew
equivalents to Inna and her sisters, there was a similar rule regarding the
placement of the verb and subject, but I don't remember. However, occassionally
we can find the subject preceding the verb. For example, in Genesis 4, 1, after
Adam and Eve have been driven out of the Garden of Eden, it says "Weha'dam
Yada Eth Hava Ishto", which means "And (the) Adam knew Eve his wife". Only
because the subject came before the verb, some people claimed that it means
something like "had known" in English, and they actually mated when they were
in the Garden of Eden already.
Now in modern Hebrew (both spoken and Hebrew), the subject, the action and the
object (or indirect object) can come in any possible combination:
- The boy went to the garden.
- Went the boy to the garden.
- To the garden the boy went.
- To the garden went the boy.
- The boy to the garden went.
- Went to the gardent the boy.
The most commonly used form is the first, but they are all technically valid.
Other combinations can sound funny, but probably less so than English. Also,
when constructing complex sentences out of clauses, etc. it is possible that
some combinations will no longer be valid.
I was told that in German, they have some kind of aural indicators for
different parts of the sentence (the subject, the action, the object etc.).
These things don't exist in Hebrew. A listener has to deduce which part of
the sentence is which according to the meaning of each part.
To add to the confusion, in Literate Arabic, pronouns (like "I", "He", "Them")
come before the subject. So you say "I walked to the garden" instead of
"Walked I to the garden". If you think Semitic Languages are insane so far,
wait till you get to the verb and noun formation...
E-mail, RSS, and doing something productive - choose two
(This entry is on the house). I came up with the conclusion that I can do two
of either reading and writing E-mails, catching up with the RSS news, and
doing something productive like programming or working on a site or an essay.
If I read all the E-mails and read all the relevant RSS news items, then I
don't have much time for doing something productive. If I'm doing something
productive, then a lot of unread E-mails or RSS news items are gathered unread
in my folders.
I think I'll just start using the "Mark all as read" menu option. If I don't
read everything in "Planet Everything-Under-the-Sun-And-His-Mother" or miss
some technical discussions in an interesting mailing list, (which may be
enlightening, but not things I can't ask later on if I ran into this particular
issue myself.), then I'll probably survive. And it will give me more time
to do something productive.
2005-08-25
Python-IL Activity
The
second meeting took place in July. We were five people there: Gabor
Szabo, Beni Cherniavsky, Amit Aronovich, Chen Levy and I. We mostly talked
about the lessons from the Israeli Perl activity, and about the possibility of
having a conference for all the P-languages (Perl, Python, Ruby, etc.)
After the meeting, we were given a lecturing hall in
Aduva. So the
next meeting along with presentations was coordinated for 16 August.
There were a few glitches along the way, but it was very successful: over 20
people came, and we had a lot of fun. The first presentation which was supposed
to be about TestOOB (pronounced
"tess-toob") actually covered testing in general (not even specifically to
Python) most of the time, which was nice. The shorter presentations afterwards
had more glitches because they involved computer demonstrations, and there
were a few hardware problems.
The room was crowded and we had to insert a few more chairs. If fewer people
show up to the next presentations than this one, we'll be OK, but otherwise,
we may need to be looking for a larger place.
www.perl.org.il
I did quite a lot of work on
www.perl.org.il. I added more CPAN
authors and modules to the Israeli Perl Projects page. I heavily refactored
the templates to avoid duplicate code and markup. Recently, I also created
a modified look and feel, which I will hope will enable a multi-level
navigation menu that will eliminate the need for the Miscelleanous Content
Page. Most of my patches were accepted there.
News from my other Blogs
A use.perl.org Journal
Entry about my article about HTML::Widgets::NavMenu that was published
in Perl.com. Another
one about the new Acme::Gosub module which brings BASIC-like
Retro-programming to Perl 5.
In my Hebrew Linmagazine blog:
A few more anecdotes
about the IGLU Upgrade and
Summary of August Penguin
4 from my personal POV. The latter sparked an active discussion about
Debian vs. the world. (and some other smaller discussions)
Computer Problem 1: Kopete and Jabber
I recently upgraded to Mandriva 2006 Beta2. I won't talk about the upgrade
right here. I'll just mention that afterwards
Kopete (the KDE Instant-Messaging
client) had problems connecting to Jabber. When trying to connect using it,
it said: "There was a connection error: Operation is not supported.". After
compiling Kopete, making sure it will compile with "-g" and without "-O2",
trying to debug with gdb, with many problems along the way, and not
succeeding (it's a long and sad story), I ended up concluding that I should
try to manually tweak the configuration file.
In the config file ($HOME/.kde/share/config/kopeterc) in the
Account_JabberProtocol_* section, there were several keys
starting with PluginData_JabberProtocol. I removed them (and most
other keys) and then started Kopete again. Then Jabber did not work with
a different error. After I went to the Jabber account configuration, and saved
it, it worked, so it is possible that removing the extraneous keys was not necessary. It may be a backward-compatibility problem between KDE 3.3.x and KDE
3.4.x.
Problem solved, but futzing with gdb, etc. took several hours.
Computer Problem 2: cp -i -f
The -i flag causes UNIX commands like rm, cp or mv
to be interactive and request confirmation before deleting or overriding files.
-f is the opposite: force such deletions without requests. Many people alias
these commands to rm -i, cp -i, etc. for safety.
When I was working on Eskimo I tried to copy a file using cp -f (with
the alias cp="cp -i" in place.) That still asked for confirmation -
apparently the -f flag was ignored. On my Mandriva system a similar
invocation worked.
It turns out Mandriva applies a patch to GNU cp to allow the later "-f" flag
to override the "-i". Debian did not apply a similar patch. Now the question is
which policy is the philosophically correct one. Note that with
the "rm -i -f" command, GNU rm happily applies the "-f" flag.
Bug in GNU grep
I came across
a bug in GNU grep
fixed it, and submitted a patch. It turns out the bug was already fixed in
the CVS version, but without the test case that I proposed. So a similar test
case was added. It's strange that a new version of grep was not released yet
as this bug is a crash. In any case, delving into the code was fun.
Revision of the Beast
* Revision 666:
File svn-commit.tmp saved
File svn-commit.tmp not changed so no update needed.
Sending MANIFEST
Transmitting file data .
Committed revision 666.
shlomi:~/progs/perl/www/Nav-Menu/trunk/module$
This was a commit to the MANIFEST of HTML::Widgets::NavMenu to add two
test-related files that I had already added to the repository. (the MANIFEST
lists all the files that are part of the Perl distribution). It was part of
a larger amount of work on HTML::Widgets::NavMenu, SVN::RaWeb::Light and
possibly other modules within the web-cpan repository. A short time and 34
revisions later I also hit on revision 700. Right now, I'm at revision 720.
IO::Scalar
For some reason, I believed that the Perl 5 IO::Scalar module is part of the
core Perl distribution. However, it is part of the
CPAN IO-stringy module.
Maybe what misled me was the fact that it was installed on my Mandriva system,
and the fact that it is such an elementary module. In any case, I had to add
it as a dependency to SVN::RaWeb::Light and HTML::Widgets::NavMenu, and
accidently reported it as uninstalled in PONIE (the ongoing Perl 5
implementation for PONIE), when I tried to see if HTML::Widgets::NavMenu
passes all of its tests there. The good news is that it does after IO-stringy
is installed.
GIMP Hacktivity
Looking for some GIMP Hacktivity to do, I looked into making sure the
GIMP resources can be categorized (as was suggested by a mailing list post).
Sven Neumann had suggested a pre-requisite and I wrote a patch as a result. More information
can be found there.
Mozilla Bookmarks Patch
The Mozilla and Firefox browsers have an annoying behaviour with pasting bookmarks. I decided
to write a patch to remedy it. This involved hacking the Javascript "chrome"
code of the Mozilla internals. I neglected working on this for a long while,
because Mozilla yelled at me from some reason I could not understand at an
XPCOM statement. As it turned out, I was misled by the Javascript debugger,
which caused a "Next" or "Step" statement into a certain XPCOM call, to run
indefinetly. (guess I now have another bug to report). Having sorted this
out, fixing the patch was relatively uneventful and the patch was ready.
I posted it at
the SeaMonkey bug record, but then it turned out that SeaMonkey has a
separate Bookmarks Editor, and my patch is Firefox specific. So I filed
a separate
entry for Firefox (after going over all the Firefox Bookmarks bugs
and seeing nothing relevant there). Right now, my patch is waiting for a
review, and has been for over a month. I hope it is reviewed soon, because
this bug is very annoying. (and I have a fix, damn it!) This was my first
Mozilla patch ever.
2005-09-27
File-Sharing in Israel
Talash has written
an excellent
blog entry about activity for protecting File-Sharing in Israel. He
gives links, information
and points to where money can be sent and help can be offered. I should note
that I also wrote about it back in June (search for "Countering").
I already sent them an E-mail offering my help. Please help spread the word.
New Job and W2L
I blogged about my new job
and about the Israeli Welcome-to-Linux series in Linmagazine. (in
Hebrew). In English, I can say that I finally found a work: I'm working from
home for an hourly pay for a small consulting/contracting firm. It's
Perl/Web/SQL. I'm happy that I now have some steady income, and the work is
quite interesting, and I'm learning new concepts and Perl/Apache/SQL/Linux
technologies.
I also cover the beginning of the Israeli
Welcome-to-Linux series, what I
did so far and what should be done. We need a lot of help so if you're Israeli,
and have some spare time, feel free to volunteer.
The comments there are pretty useless. In one sub-thread
a few anonymous people told me that the Jerusalem Linux Club, should be called
"JLC" for short, instead of "Jerux". And a few people were somewhat sarcastic
about the fact I will now have less time to spend on open-source activities and
have less free time.
Epilogue
I have plenty of issues to blog about besides those, but these are the most
important topics. So until next time: have fun, hack on and stay cool!
Paul Graham's "Inequality and Risk"
Paul Graham recently wrote
an article titled
"Inequality and Risk". This article
was
covered in the "Joel on Software" forum.
The original poster said that: "I've usually found value in Paul Graham's
essays, even when I don't agree with him. However, his latest simply parrots
the standard right-wing economic arguments. ".
Here is my response:
I found two problems with this statement. The first one is called "labeling".
You've labeled Paul Graham as parroting right-wing economic arguments, and
expected us to agree with you that it was thus wrong. Yet, you gave no
arguments for why the article was wrong. A person who tries to convince
others of something needs to reason his arguments from more basic, commonly
agreed facts. Saying it is wrong because it's "Socialiastic", "Fascistic", or
whatever is not enough.
The other and more serious problem is that you believe what Graham says is
right-winged. While right-wing people often make such arguments, they are not
the only ones. Libertarians, Objectivists, etc. also believe in Economic
freedom, and yet they are by no means right-winged.
In fact, there are two axis to the political map: individual freedom and
economical freedom. The Left seems to uphold individual freedom while
supporting economical restrictions. The Right supports economical freedom
while believing that individual freedom is not that important. Libertarians
believe that both economical and individual freedom are important. There are
also authoritarians who think that none are important.
Refer to this
site for more information.
It is true that once upon a time there was a single dimensional political map
until the Liberals diverged into Libertarians and the current Left which
believes in economical restrictions. But now we have a two-dimensional
political map.
You are not the only person who makes this mistake. Richard M. Stallman says
in a Eurohacker interview
with him that Eric S. Raymond "is a
right-wing anarchist", despite the fact Raymond is a self-proclaimed
libertarian who rejects both the Left and the Right. In an IRC conversation I
had on Freenode someone said that Objectivists are ultra-right-wing, despite
the fact they are fanatical about individual rights.
I read that article by Paul Graham you linked to, and agreed with it
completely. Graham has a point. One point I think he missed mentioning was
the fact that societies can become prosperous enough so even the poor will be
relatively rich. For example, in some countries many poor people starve or
used to starve to death. On the other hand, in First-world countries, there
is an abundant food supply and as a result even the poor are well-fed. In the
States and other countries, many middle class people can afford to frequently
travel by airplanes. Once computers were extremely costy and could only be
afforded by large organizations. Nowadays much more powerful, compact and
otherwise superior computers are common in almost every household.
These are all examples that while the economical imbalance is preserved, the
economical well-being of everybody - poor and rich - grows.
Alan Kay's Interview
This interview
with Alan Kay was published a while back, hit Slashdot, etc. Due to
the prominence of the interviewee, I decided to read it and indeed read it front
to back. Here is my opinion of it.
To keep it short: I did not understand about half of it. I don't think I had
problem understanding the individual words, but the general theme of entire
paragraphs was beyond me. There have been some signs of me becoming senile
recently (like the fact that
I could not understand
Perl 6), but I have no problem understanding
Paul Graham, Joel on
Software, most of the things by Eric S.
Raymond, etc. If Alan Kay is different, then I believe he is simply
not accessible enough. (as opposed to the others).
From what I did understand it seemed most of it was like endless (and pretty
much useless) rants about Java. One thing I did not understand was why
many people (like
this
poster on Slashot or
Tal Rotbart
in a Hackers-IL message) got psyched from him saying "Perl is another
example of filling a tiny, short-term need, and then being a real problem in
the longer term." This is the only time Perl is mentioned in the entire
Interview, and Kay does not explain why or how it is a problem.
So Alan Kay briefly mentions that Perl is a problem, without giving any
explanation. Why am I supposed to right away buy that?
When
someone makes a claim a reason should be given.
2005-10-13
Summary of the Past Year
Continuing with
last
year's tradition, I went over my past year's weblogs' entries, in
order to try and summarize the year as a gesture for Yom Kippur. Here's what I
can say about them.
The biggest personal trouble happened due to
this
rumour spreading about my body odour in
Hackers-IL. It wasn't really my fault, but I still got too anxious from it.
Hackers-IL is a nice forum, which I'd really like to take an active part in
, in the future. The person who did this and other insults left, so I won't
have to worry about him in the future. He otherwise seemed like an intelligent
and knowledgable guy, but he was still trying to irrationally and ignorantly
attack me.
The biggest trouble I've been involved in, was the flamefest on the Hamakor
mailing lists and blogosphere caused by Elad Efrat. This year, I got to know
Elad better and found out he was actually both nice and productive, but simply
could be incredibly tactless and insulting. I learned to not take what he says
too seriously, and not to argue with him on the points that make him edgy, and
I hope other people would learn the lesson.
There were bigger calamities on the global scale: the Tsunami, Hurricane
Katrina, and many acts of terrorism, to name those that I recall. One of the
good things that happened this year was
the
disengagement from the Gaza strip. It's not enough to
ensure the
resolution of the Israeli-Palestinian Conflict, but it's a step in
the right direction.
This year, my involvement in large scale FOSS projects diminished a bit. While
I still contributed some patches to the GIMP, I instead either:
- Worked on
CPAN modules or
other smaller scale projects that I found useful (and often personally
needed)
-
Did a lot of work for the local community.
-
Worked on Web-sites, articles for O'Reilly-Net and other online
publications, essays, stories, etc.
Except for two "third-party" CPAN modules, I stopped contributing a lot to
Subversion. Thing is, they have
plenty of very active contributors (some of them are code animals), and they
seem to be doing very fine without me. Besides, Subversion just works for me.
On the literary front, I finished writing
the
"Human Hacking Field Guide". Today, when I was going to revise a part
which I wasn't happy it, I also read it till the end, and discovered it
was much better than I originally thought of it. (partly due to people's
criticism of it). I also made some progress with
The Pope Died on Sunday
(whose writing began a long time before the death of Pope John Paul II this
year), and on the new draft of "The Enemy and how I Helped to Fight it". But
it's still wasn't a whole lot.
And finally: I finnally found a job! Positive income is good, I'm writing
in Perl which is my favourite language, and I'm learning many new
technologies.
Homepage Direction
Finally, a note about my homepage. I
decided to take GoingWare's advice
about "How to Crush
Joel Spolsky Like a Bug" (which was also given to me in some form
by a friend), and put almost everything I write on my homepage, and turn it
into an even more attractive site for visitors. Lately, I moved it to a
fast hosting service (which most people from abroad I asked, said works very
well for them), instead of the rather slow hosting on eskimo.iglu.org.il.
Plus, content was revamped , section-specific navigation menus were added;
also added was more content as well placeholder pages for interesting
resources with the site look, feel and flow.
Hopefully, this will cause the site to really take off, and bring me fame,
fortune, and the respect and admiration of lots of foxy women. Seriously now,
while in 25 May, 2005, the Google query for "shlomi fish"
(with quotes) returned close to 38,000 hits, the number grew to almost 100,000
on the 1st of July. Now it's over 200,000. I hope that the new work on the site
will cause me to have an even bigger net presence.
(I wanted to show how my homepage looked like at the beginning of my
Technion studies, but seems like web.archive.org was blocked by robots.txt
by the undergraduate students' server admin. :-()
2005-10-18
Joke - #svn in Search of the Holy Grail
The following took place at #svn (the Freenode Subversion channel), the other
day:
<rindolf> sussman: don't say the BK-word...
<clkao> dude, no one mentioned bk until you did
<rindolf> clkao: <sussman> just like most of the decentralized SCMs, like
arch, bitkeeper, etc.
<rindolf> "We are the knights who say "BitKeeper"."
<danderson> "We are NO LONGER the knights who say "BitKeeper". We are the
knights who say "git git git cogito Linus!".
<rindolf> danderson: "Subversion!". "Bleh, that's one word that the knights
who say "git git git cogito Linus!" cannot hear."
<rindolf> "What is your name?" "What is your quest?" "What is the
asymptotic complexity of the Subversion delta algorithm."
<rindolf> "Which one? vdelta or xdelta?"
<danderson> what do you mean, xdelta or vdelta?
<rindolf> "I don't know!"
* rindolf falls into the chasm
<danderson> "How come you know so much about delta algorithms? - Well, you
have to know these things when you're a commiter."
Joke #2 - Everybody's Free (to Ping Timeout)
Darien has written an insanely funny cross of "Everybody's Free (to Wear Sunscreen)" and the IRC world..
Essay - "When C is the Best? (Tool for the Job)"
I wrote
an
essay titled "When C is the Best? (Tool for the Job)".
Eugenia Loli-Quero was kind enough to
publicize
it on OSNews.com
where it sparked an active discussion. I also submitted it to Slashdot, but
I didn't see it there yet. (maybe it was rejected). Two people sent me
E-mails about the essay, and I replied back. :-)
There are some things that I'm still unhappy about this essay, but I decided
to release it earlier than later.
Books Recommendations
I now have a
list of my recommended non-fiction books on my homepage. They contain
links to the book page on Amazon.com, with the associates program activated.
Activating the Amazon associates program was not too hard, but registering a
link to a product is a bit tedious and involves a lot of clicks. I wish there
was a web service I could use to write a script that will do it for me.
(If you know of such a thing, please
enlighten me.)
For the record, I also placed a link to the online book, if such a version
exists.
In the future, I'd like to complement this list with similar lists of
recommended fiction books, movies and musical albums.
Perlmeme.org
Perlmeme.org is a new site for Perl
beginners. See the
use.perl.org announcement for more information. It also sparked an
active discussion
in perl-advocacy@perl.org. The site is primarily maintained by Simon
Taylor and Becky Alcorn. I became involved with the site, as a proof-reader,
back-end helper, and also some of my
"Perl for
Perl Newbies" material was incorporated there.
Please help spread the word, and if you are knowledgable about Perl,
please join the developers' mailing list to monitor the discussions, give
comments, and perhaps eventually even contribute something of your own.
2005-10-19
New Music CDs
Today I decided to buy two Music CDs:
"Elephunk"
by the Black Eyed Peas, and
"Obscured
by Clouds" of Pink Floyd. I wanted to buy "Elephunk" because I liked
many of the tracks from it and wanted to get the rest, and I wantd to buy
"Obscured by Clouds" because someone on IRC let me download the song
"Childhood's End" from it, which I liked and because I also listened to it
during the Perl hackathon at
gaal's apartment, and
liked what I heard.
So I took some money and went to the local shopping center. Try as I find,
I could not find a music store there. I ended up asking my barber about it,
and he said that there isn't one anymore. So I decided to go to Dyonon at
Tel Aviv University instead. I bought a bottle of mineral water at McDonalds,
and walked all the way there. When I got there I looked for the CDs, but none
of them was available.
The Ramat Aviv Mall is close to Dyonon, so I walked there by foot, and looked
for the Music CD. I went upstairs, and then asked directions from people at
a café, which pointed me at the records store. There, with the help of a
salesperson, I was able to find both CDs. Each one costed 60 NIS (about 12 USD)
, which was much less than I expected to spend on them. I bought them both,
and then walked all the way back home.
At home, I ripped Elephunk into 96 Kbps oggs using grip. It required some
experimentation, but I was finally able to. I prefixed the filenames with the
track number, so I can listen to them in order. Many of the songs there, which
were previously unfamiliar to me are very nice, and I also found some new
arrangements of the mp3's I do have. Highly recommended.
I didn't get to rip and listen to Pink Floyd's album yet, but I'm going to.
New BitKeeper Essay
I wrote a
New BitKeeper Essay titled "The BitKeeper Ghost" over at
the Better-SCM Site. It discusses
the side-effects of BitKeeper and BitMover concerning the recent departure
of Bryan O'Sullivan from the Mercurial development team.
Another New Essay
I translated to English the
essay titled "The GPL, The BSD License and Being a Sucker". It
aims to dispel the common belief, especially prevalent among Israelis, that
people who write code under BSD license are "suckers" (or "Frayerim" in
Hebrew) because they permit incorporating their work into proprietary software.
New Community for my Home-Site
Instead of manually including my home-site news on the HTML of
my sites' front page, and later on
the old news page, I decided to create community for it on LiveJournal, and just place the
feed as new entries on my site. This will also allow people to comment on it,
and for me to receive more feedback. At the moment, anyone can post there, but
I need to approve the posts. Comments are unmoderated.
2005-10-22
New Essay: The Case for File Swapping
There's
a new
essay on my web-site titled "The Case for File Swapping". It explains
why file swapping is ethical and moral, and why it should be legal, and also
discusses some related arguments and refutes some common arguments against
making file swapping legal. Comments and corrections are welcome.
Language Wars
publius_ovidius
has written a great entry about Language Wars.
Diet
I've lost some weight lately. Right now, a pair of pants that used to
barely fit me, now fits much more easily. What's my secret? First of all,
I exercise quite a lot. I bike for over one hour everyday, and I also take
one or more walks during the day. Aside from that, I'm taking Maimonides'
advice and I'm eating according to the stomach and not according to the eyes.
I.e: I stop eating once I feel that I'm full.
So far I've been waking up quite early and go to bed late, and yet feel very
energetic and focused during the day. I feel great. Hopefully, this situation
will last, but I wouldn't mind returning to my
stay-in-bed-until-late-in-the-morning situation again.
Aside from that I'm still naturally refraining from consuming
overly-sugary-foods, Caffeine and Alcohol, and of course don't smoke or
do drugs. I'm talking to other people who claim they cannot function without
their morning coffee or who drink a lot, and I must say that I don't have
these problems, and yet am very productive. I recommend that anyone will
quit doing all these aphrodites, as they have negative short-term and long-term
effects.
Subversion News
Ben Collins-Sussman now has
a blog and is
starting to work for
Google. He will be the third Subversion Developer to work there after
Greg Stein, and Brian Fitzpatrick.
That put aside, I always knew Ben Collins-Sussman was Jewish, but now it
turns out Karl Fogel, who used to work in the same office as he is, is also
Jewish. I felt a bit embarrassed when I leared that.
Shell Readline Goodies
Check this
post in Linux-IL
about various shell tips and tricks that I collected by going over the Bash
man page.
2005-10-31
Joke - GNU Visual Basic
The
following joke about GNU Visual Basic was once published on Freshmeat.net,
but has since been misplaced. A Freshmeat editor I contacted sent me the text
of it (without the comments) and I've placed it on my site. Enjoy!
Movie Recommendation: "Eight Days a Week"
I don't watch Television regularly, but sometimes I see something that makes
me watch it till the end. This time it was
Eight Days a Week which I saw
on the cables' "Hot Fun" channel, which is dedicated to comedy movies. This is
a teen comedy sort of, about sex and love and stuff. It's very funny and
entertaining. It stars Keri Russel and Joshua Schaefer, which strangely
enough hasn't acted since, and there's little information about him on
IMDB.
Updates to Perl for Perl Newbies
I went over the
Perl
for Perl Newbies series and updated it. What I've done so far is made
the entire slides validate as XHTML 1.0 Strict, fixed many problems in the
text (typos, spelling, grammatical or syntactical), and also fixed the
wrong or misleading content. My understanding of Perl was not as
good when I wrote the slides as it is today, and so I had to fix quite a lot
of inaccuracies.
There are still some things that I want to change there, but as a general
rule, everything is much better now.
New Release of Freecell Solver
When I went over the entire comments in the OSNews coverage of
"When C is the Best", I read
this
comment. It mentioned two bugs in Freecell Solver, which I fixed by
releasing
Freecell Solver 2.8.11. I would have missed them if I didn't go over all
the comments.
Apparently Mac OS X does not have a malloc.h header file. OS X never
ceases to surprise me.
Joel's Back!
After a small lull, Joel Spolsky is back with a
very nice article and some very insightful and amusing weblog entries. I
hope this trend goes on.
Testing a Two-Domain Website
See this post I made to
PerlMonks about how to test the local copy of my two domains'
(www.shlomifish.org and vipe.technion.ac.il/~shlomif/) web-site on my local
machine.
Configuring Xkb to have a Compose Key and Hebrew Keyboard
I wanted to have a compose key so I can have them Über-cool accénts. But
naturally, I still needed the Hebrew keyboard. After playing a bit with Xkb,
I got to the following configuration:
Option "XkbModel" "pc105"
Option "XkbLayout" "us,il"
Option "XkbCompat" ""
Option "XkbOptions" "compose:rwin,grp:switch,grp:alt_shift_toggle,grp_led:scroll"
Option "XkbVariant" "lyx"
Énjoy!
2005-11-11
Music
Back when I bought
my two recent CDs, I remembered seeing this
collection of Shania Twain at Dyonon. Now, I've downloaded several songs
of Shania from P2P networks, and listen to them a lot, so I eventually
decided to give this collection a try too.
So a few days ago, after lunch, I walked to Dyonon, and looked for the CD. It
took me some time to find it, but I was able to find it there. I bought it for
67.90 NIS (about 15 USD), and went home, where I ripped the CD. The CD did not
disappoint me at all - it's very good. I found some really great new songs
there.
An interesting anecdote is that I used to hate the song "Man! I Feel like a
Woman." when it was featured on MTV, but now I love it. On the IRC, someone
said it's impossible to like both Pink Floyd and Shania Twain, but I happen
to like both.
On a different note, I also started listening to the mp3's we have
of Sarah McLachlan, and like them a lot.
Test::Run
See this
announcement in my use.perl.org journal about Test::Shlomif::Harness,
my fork of Test::Harness, with many refactorings, revamps and improvements.
I now renamed it Test::Run and
placed it on CPAN.
Case for File Swapping
The
Case for File Swapping was expanded with several new sections. Attempts
to publicize it on Slashdot and Kuro5hin caused it to be rejected. There
are still some things I can fix in the copy I send to Kuro5hin, and I can
try submitting it to Slashdot again. And naturally there are many other places
I can publicize it.
q[ender]'s First CPAN Module
q[ender] from CPAN has a CPAN
account and has uploaded
his
first module. Congratulations and I hope more will follow.
Getting Money from my Web-site
Working on my web-site and other content that I make available online is quite
time consuming and so I investigated ways to make money of it. At first I
thought of adding a PayPal donate button. Eventually, my dad agreed to letting
me use his international credit card for this and now I have
a PayPal donate button
on my site and plan to put it in the sites of some of my projects.
While I consulted some friends about PayPal,
TDDPirate suggested
that I add Google AdSense there. Since the Google AdSense ads are text and
non-intrusive, I decided it would be a good idea, and so I registered at
Google, received a reply and added them to all the pages of my site. So far
I earned 63 cents, but it was only up for 2 days.
Homesite News
see this entry in the shlomif_hsite community for what's new on my
site.
Firefox and the Location Bar
Since I'm using a Firefox theme with large buttons, there's hardly any space
left for the location bar. Eventually, I decided to move it to a toolbar of
its own. A little Toolbar Right Click -> Cutsomize... magic and that's it:
lots and lots of space for the location.
svn status
I used to be relatively unconscious about not making sure "svn status" does
not output anything when used on the top-most directory of the Subversion
working copy. What "svn status" does is report the status of the various files
and whether they are modified, were added to the working copy (but not the
repository), or are unknown files. I had a lot of files that were marked
unknown, and yesterday I went over them and added them or deleted them. Right
now svn status prints nothing on $HOME/Svn. :-).
Xkb Lyx Correction
The Xkb configuration had a problem and should be:
Section "InputDevice"
Identifier "Keyboard1"
Driver "keyboard"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,il"
Option "XkbCompat" ""
Option "XkbOptions" "compose:rwin,grp:switch,grp:alt_shift_toggle,grp_led:scroll"
Option "XkbVariant" ",lyx"
EndSection
One comma in XkbVariant - a world of difference.
HTML::Widgets::NavMenu on CPAN
Someone reported he had problems installing HTML::Widgets::NavMenu from CPAN.
I went to install it and failed as well. Turned out that the CPAN indexing
thought that H-W-NM-0.8.0 was higher than H-W-NM-0.10.0 because the first
digit after the 0 was higher. I removed it, but it still indexed it that way.
After talking with the CPAN admins, I concluded that the best option would
be to release HTML-Widgets-NavMenu 1.0000. This time,
I have two digits for the feature-upgrade and two versions for bug-fixing
releases.
Another person afterwards reported failure in installing it, but it turns
out he was using a CPAN mirror that's out-of-date.
2006-01-06
Certification
Certified petdance
(Andy Lester) as a
Journeyer for his work on various Perl modules. (including Test::Harness,
whose codebase is the basis for Test::Run).
Fixing the Mixer Restoration on Boot in Mandriva
For a very long time now, my Mandriva system did not restore the mixer settings
on boot and instead kept it entirely muted. I did not know why and resorted to
setting it manually times and again. Today, I decided to finally fix it.
With the help of some people on the IRC (Freenode's #mandriva channel), I found
out that the script that is responsible for doing that is
/usr/sbin/alsa.agent, which is called by udev. It contained the
following code:
if [[ $ACTION == "add" ]]; then
[[ $DEVPATH != /class/sound/controlC* ]] && exit
count=$[ $(egrep '^alias sound-slot-' /etc/modprobe.conf|wc -l) -1 ]
if [[ "$DEVPATH" = "/class/sound/controlC$count" ]]; then
/usr/sbin/alsactl restore >/dev/null 2>&1 || /usr/bin/reset_sound &/dev/
null 2>&1
fi
After inserting a few prints, I found out the problem was that count was 1
where $DEVPATH reaches only 0. The command
egrep '^alias sound-slot-' /etc/modprobe.conf|wc -l returned 2, which
meant there were two lines like that. Editing /etc/modprobe.conf
made me realise that it had two almost identical sections one after the
other. (don't know why). This broke the script and after removing the second
section, it seemed to have fixed the script. All's well, that ends well.
New XMMS Skin
After a long time that I used the CordStalk WinAmp/XMMS skin, I switched to
the Ocean Amp
skin. I like it a lot.
WDG Validator
It was pretty straightforward to install
the WDG validator packages on my Mandriva system. I only had to slightly tweak
the Source RPM and then it compiled fine. Now I can validate entire sites
using my localhost version of the validator, which I tweaked to be able to
validate more than 100 files at once. I also want to write a bookmarklet to
validate a page from Mozilla or Konqueror using it.
The Median Blog
It might be instructive to look at the
latest blog posts page
of LiveJournal to gain some insight on the median blog. I used to think
some of the blogs I read were not particularly interesting, but I just read
them because I knew and cared about these people. But most of the blogs in
the LiveJournal latest posts page are much worse than any of them.
HTML Slidy
Beni Cherniavsky gave a presentation to the
Israeli Pythoneers, which he rendered
as S5. The presentation did not work well on Mozilla, and he ended up having to
cancel the stylesheet. Times and times again. I don't think I recall an S5
presentation that worked correctly - they always cause problems.
Luckily there's an alternative -
HTML Slidy. It's much
less hyped or known than S5, but at least its demo presenetation works well.
I'm looking forward to create presentations using it. I recently wrote several
presentations using Spork which
has an S5 backend, so it might be easy to convert it to generate HTML-Slidy
instead.
OpenWengo
I decided to try Voice-over-IP with
OpenWengo. After I downladed and installed
the RPM, I ran it. It then asked me to register, and a link to click for the
registration. The link did not work, no matter how many times I clicked it. I
opted to build it from source instead, but the instructions said to checkout
the root of the Subversion repository (which is considered a bad idea). This
took a long time and as I discovered there were also many branches and tags
withing there, and so I interrupted it. I could not find a source package on
the site.
So I gave up. I realise it will take OpenWengo time to mature and stuff, and
it's not ready for prime time yet, but I was still disappointed. They really
should get their act together.
Lack of Makefile.PL and CPAN.pm
It seems that if a Makefile.PL is absent, then CPAN.pm will refuse to install
the module. I discovered it when someone tried to install some of the
Latemp CPAN modules using
CPAN.pm and failed. I ended up copying a wrapper around Build.PL that
I found in some other modules and re-releasing the modules.
Old Computer Experiences
I met someone in the Telux Welcome-to-Linux series. He said he had a problem
getting Linux to run on an old computer which had a non-bootable CD drive, and
his newer computer did not have a floppy drive. So he brought the computer
to my house and together we set out to have it.
The first problem was that we discovered that I was out of blank floppy disks.
So we went to the commercial centre near my house and bought some. Then we
burned the CDs of three distributions he wanted to try (Puppy Linux,
Damn Small Linux and another one) and tried them one by one. We were able to
boot using some of them or from the hard disk, but they all got stuck sooner or
later and could not install the Linux system. So we eventually gave up.
He wanted to install Linux there for the challenge, and was not out of money
to buy a more modern computer.
First Donation to my PayPal Account
I received a donation to my PayPal account. It was under 1.00 USD, but it's
a start.
Jason and the Argonauts in English and in Hebrew
ראיתי שבמספר מקומות שבהם יש כתוביות בסדרות באנגלית שמדובר בהם על יאסון והארגונאוטים, נכתב "ג'ייסון" במקום יאסון. השם היווני יאסון הוא "יאסון" ביוונית
ובעברית. רק באנגלית מבטאים אותו ג'ייסון (בשל התעתיק שלו מלטינית). לכן, בעוד
שמבטאים את השם "ג'ייסון" בקול של הסרט, יש לתרגם אותו ל-"יאסון" בכתוביות.
Google
I used to have the first hit on a Google search for "next presentation" up
to a couple days ago. Now, it's only the second and third hits. Whatever.
Perl NEXT bug
I discovered and fixed
a bug in
the NEXT module, that is part of the core Perl distribution. It was not
applied yet.
2006-01-11
Refactoring of the Telux' Lectures Manager
There was a feature I wanted to add to the
Tel Aviv Linux Club lectures'
manager. This made me remember that the code was a bit monolithic and
non-modular and could use some refactoring, so I decided to refactor it.
The Telux lectures manager originally started as the lectures manager I
intended to use in Haifux and which was
then utilised for Telux. It was originally one monolithic script which reads
its data from a Perl module. It was a relational database implemente using
Perl data structures.
For refactoring it, I created a class out of the script, gradually converted
everything to use the object instance instead, and extracted many methods. In
the end, the code was in a much better shape.
Then I added the feature and did some data updates. This was relatively easy,
not because of the refactoring but because I knew where to find the code. But
the refactoring made the code much easier to modify into the future.
Firefox 1.5 RPM for Mandriva
A Firefox 1.5 RPM/SRPM was finally released for Mandriva. Eager to finally
convert to the new Firefox version, I compiled the Firefox 1.5 SRPM. The
compilation took an hour or two, and then I could install it.
I discovered a few problems with it:
-
SVG Did not work. I
consulted people on Moznet about it, and it turns out that in the source
tarball, SVG is disabled by default and has to be enabled by specifying
--enable-svg to ./configure.
-
The Bookmarks were
unavailable at the Firefox start.
-
The Find in the Page
Feature did not work
The two last problems were reported before me, and all of these problems were
fixed in firefox-1.5-2mdk. I now have 2mdk installed, and running very nicely
and could not detect any further problems with it. So I'm happy. Thanks to
Frederic Crozat (the Mandriva Firefox maintainer) for his hard work of
creating the SRPM.
2006-02-08
Mail::Webmail::Gmail
I've been using the
CPAN
Mail::Webmail::Gmail to clear up some of my gmail folders automatically.
However, the module became broken at least since September. For a long time, I just let
messages accumulate in gmail, but then decided that I should. I inspected
libgmail but could not find a
way to perform an operation on more than one message at once using it. It did
work, though.
I decided to fix Mail::Webmail::Gmail. By using libgmail as a reference, I was
able to to fix M::W::G, and
submitted
a patch to it. The patch involved over-riding a method of libwww-perl.
The author seems to be unresponsive as he hasn't fixed his module for a long
time. As a result, I decided to
request to be
appointed a co-maintainer of this module so I can update it. I have yet
to receive a reply on this.
LinkVisitor
Having upgraded to Firefox 1.5.x, many extensions stopped working. One of them
was LinkVisitor. As a result,
I bumped its maxVersion number to "1.5" and
released
a new version, which could be installed on Firefox 1.5. This was not
enough for 1.5.0.1, as this required "1.5+" and so I updated it again.
Hebraic Proverbs in Wikiquote
I took a day or two adding some Hebraic Phrases to the
(English) Wikiquote
Hebraic Phrases page. I still have several quotes to add on my to do
list.
Mandriva Bug and its Resolution
Mandriva 2006 had a long standing bug in which MandrivaUpdate did not display
the package's "Reason for Update" after a while.
A bug was filed
for it in its bugzilla. Some time ago, I searched for it and confirmed it. Then,
I decided to investigate it. I was succesful in my investigation, and
also submitted
a fix. Rafael Garcia-Suarez applied this fix, and said he uploaded an
update for 2006.0. The update did not appear yet for some reason, as
MandrivaUpdate did not upgrade urpmi.
Eskimo De-ezmlmisation
After installing Sympa on eskimo.iglu.org.il (The Israeli Group of Linux Users
community server that I manage), I wanted to convert all mailing lists there
from ezmlm to Sympa as a first step towards the conversion from qmail to
postfix. I started by converting shlomif-beta-reviewers, and then the
python mailing list. Afterwards, in a few concentrated days,
I
converted the rest of the mailing lists. Right now, eskimo is officially
ezmlm-less.
KDE 3.5.x's akregator on KDE 3.4.x
Due to the fact that akregator
(a feed reader for KDE) consumed a lot of memory on my computer, I consulted
its mailing list about how to reduce it. I was told that the akregator that
ships with KDE 3.5.x heavily improves in that.
Now the problem is that akregator now ships with KDE, and is no longer
available seperately. So I compiled kdepim-3.5.1 and installed it under
a prefix under my home directory. This went flawlessly except for a directory
that wasn't set right due to ./configure's funkiness, and was fixed using
the following scriptlet:
find . -name Makefile |
xargs perl -pli -e \
'$_="kde_widgetdir = \${libdir}/kde3/plugins/designer"
if /^kde_widgetdir = /'
Then I tried to run akregator and failed. The mailing list again was of help,
and I eventually was able to run it. The next day, I tried to run it again,
and again failed. But then I realised I should have run "kbuildsycoca". To sum
up, the following script runs akregator for me:
#!/bin/bash
export KDEDIRS=$HOME/apps/gui/KDE/3.5.1/
kbuildsycoca
exec $HOME/apps/gui/KDE/3.5.1/bin/akregator
The new akregator indeed consumes much less memory, and so I'm happy.
Eskimo's Jobs Database
eskimo.iglu.org.il also has a jobs
database that can be used to show wanted jobs records as well as
submit ones. Recently, I spent some time refactoring it. Things I did were:
-
Converted all the generated web pages to generate using Template Toolkit.
-
Extracted many methods.
-
Converted the add form handling to a utility class, that handles all the
logic.
-
Other cleanups that I felt are needed.
Now the code is in better shape. I received some feedback about it with some
suggestions, and still have a some older feedback about it.
You can see the results in
the
Subversion repository.
2006-03-01
The Muhhammad Cartoons
James Carr has an insightful entry
about the recent Muhhammad Cartoons contreversy on his weblog. It's not
too long and well worth a read.
Gringotts
After I wrote and released the initial versions of my
gringotts-shlomif
patch, the original author released version 1.2.9pre1 of gringotts that
incorporated my patch and other fixes. However, it then disappeared from the
original location where he put it. A few weeks ago, I sent a message to the
author and the Debian maintainer about where I can find it, and the Debian
maintainer responded that it's available on the Debian servers, which I
downloaded it from.
I discovered and fixed two other bugs there (including a nasty UI
data corruption bug), and released a new version of the patch that should be
applied to 1.2.9pre1.
Other Hacktivity
I've been working on and off on an SCons build file for Quad-Pres, my
presentations generator. I've made some progress, but I still have quite
a lot to do. SCons would be replacing the GNU Autotools, which are considerably
worse.
I've added some missing flags to Test::Run's runprove utility, which is the
equivalent of Test::Harness' prove. Now I came to a conclusion that I'd like
to encapsulate the functionality of the script into a module so I can better
test it, and possibly re-use the code.
Finally, I fixed a segfault bug in
Freecell Solver, caused due to a
premature end of input. It's fixed in version 2.8.12, which was released today.
Reading
After a long time of reading it, I finally finished
Higher
Order Perl by Mark Jason Dominus. It's a nice and enlightening book, but
it took me a lot of time to read. I
wrote a review of it
on the Israeli Perl Mongers site.
I also finished reading two Discworld novels: The Light Fantastic which is
the second book in the series and a sequel to the first, and
"Hogfather". They are both very recommended, especially Hogfather which kept
me very captivated.
Three O'Reilly books which we ordered from Amazon.com arrived in the
mail. Thus, I started reading "Postfix - The Definitive Guide". It's not bad,
I suppose, but I guess I'll have to refer to it again, once I have to set up
a new Postfix installation. (which I intend to do for eskimo.iglu.org.il).
OSDC::Israel::2006
I attended OSDC::Israel::2006 during its
three days (Sunday to Tuesday). It was very nice and all, but since it's
getting rather late, I'll have to postpone telling more about it to a future
entry. Stay tuned!
2006-03-03
OSDC::Israel::2006
As promised here is
my
report and feedback from the OSDC::Israel::2006 conference, as posted to
the osdc-discuss mailing list.
2006-04-05
Default Shell Editor
When I started working on UNIX, I worked with the joe editor on consoles almost
consistently, because I could not get used to vi and found Emacs too
frustrating. My X editor was initially NEdit, but then I switched to
FTE, and later on to
gvim, which I started using on the Technion's
Windows NT computer farm. (ironically).
For a long time I used gvim on X-Windows, but was still using joe on
terminals. However, lately, I started getting used to using the console "vim",
and found it quite convenient. A few days ago, I decided to finally jump into
the cold water, and set the default shell editor to "vim" instead of "joe". (by
setting the EDITOR and VISUAL environment variables in
the .bashrc file).
So far, It's working fine. I already got used to typing "i" right after a
Subversion commit command (when the editor is invoked), and writing
"<ESC>:w<ENTER>" ; "<ESC>:q<ENTER>" is practically
second nature to me.
There are still some quirks like the pasting that often indents stuff, but
I'm still pretty happy without joe as my default editor. I still type
"joe foo.txt" instinicively, but hopefully this will pass as well.
Gringotts
Gringotts-shlomif
has accumulated some new fixes since the last release: a fix for all the
compiler warnings I could find, a patch from wwp that does a few things, and
fixed a minor data corruption problem caused by a previous fix.
I noticed that I cannot run the system's global gringotts program which is SUID root on my Mandriva system. So I took the sources, and reduced them to the bare
minimum that still exhibits the problem and then reported it as
a
bug in the Mandriva bug tracker. As it turns out it is caused by a low
setting of "ulimit -l".
Homepage work
I did some work on my homesite. More information can be found
in this
entry in my homesite's blog.
New Essay
I have written and published
a
new essay titled "Create a Great Personal Home Site". Feel free to read it
and comment.
Wikipeding
I added many Hebrew phrases to the
Hebraic
Proverbs page on Wikiquote. Right now, it has 38 proverbs, and it had
2 when I started working on it. Since I started working on it, I was the sole
contributor, so we really could use some other contributors. So if you know
Hebrew, please consider contributing to it. It's free, it's fun, and it's
self-fullfilling!
I also added an entry to
the English Wikipedia about the Bourekas dish, which is popular in Israel,
along with a photo we took of some Bourekases we bought.
Entries from use.perl.org
New entries in my use.perl.org journal:
-
Three New
Short Presentations
-
Mail-Webmail-Gmail
-
Maintenance
of Error.pm and
Error.pm - the
conclusion.
-
And finally "Perl
for Newbies" Series in the Tel Aviv Linux Club which was also posted
on the front page.
I have a few more topics for entries in mind, so stay tuned.
2006-04-26
U.S. Hyper-DMCA Act
There's an Hyper-DMCA Law brewing up in the U.S.. Also see
coverage
in opendotdot, in
Linux Weekly News, and
more
in Slashdot. U.S. citizens should better contact their representatives
about this and let them know how badly they object to it.
opendotdotdot also reports
on a new proposed expansion to Trademarks' Law that will illegalise many
of their fair use rights. Also something worth an immediate action.
List of Israeli Open Source Projects
A while ago, I posted a call for suggestions for projects to put in the
list
of Israeli Open-Source projects, which is maintained on the Hackers-IL
wiki. Many people responded and either mentioned projects as comments to the
posts, or added them to the wiki themselves. As a result, the list is now more
encompassing and better reflects the past and present projects of Israelis.
Randal L. Schwartz' Podcast Interview about his Legal Entanglement
Randal L. Schwartz
reports on a Security
Catalyst interview with him about his legal entanglement with the State
of Oregon, in regards to the time he ran a password cracker when he worked
in Intel. This interview makes an enjoyable, informative and insightful
hearing and is highly recommended.
IRC
I now have
channel
operator status (chanops)
on
FreeNode's #perl channel. Wheee!. So
if I'm logged in and there's trouble there don't hesitate to contact me for
all your chanops needs. (My nick is "rindolf").
2006-06-01
It's been slightly over a month since I blogged here. Part of the reason
was that I did not feel I had much to blog about. Well, I hope this entry
will compensate for it.
New Job
First for some good personal news: I have a new job. I'm working for
Oleh Inc. doing PHP 5 work. The people
there are friendly and supportive (and I know one from the Israeli Perl Mongers
meetings), it's a 40-hours/week job, and the pay is good. The only problem
is that I live in Tel Aviv and the office is in Jerusalem. Thus, I'm working
from home most days, and telecommute to Jerusalem two days a week or so. The
telecommuting is very time consuming, but I seem to manage it.
So far I was able to complete my first assigned task, after overcoming some
technical difficulties I encountered in the process. Now I was given a new task with brand new problems.
Firefox in IceWM
I had a strange problem when trying to run
Firefox on top of
IceWM which I'm using occasionally instead
of KDE which is my usual desktop. What happened was that Firefox de-registered
all of its extensions, and otherwise caused a lot of havoc.
So one day I decided to investigate it. I tried running Firefox from the
command line and it ran fine. Then I checked what the Firefox in the IceWM
toolbar is. Turns out it was an old version that it pointed to a very old
version that I installed back at the time, and it kept running it instead of
the RPM-based (and more up-to-date) version. So I fixed the toolbar, and now
Firefox runs fine. Problem Existed Between Keyboard And Chair.
Fedora Core 5
At work I've had to install and use the Linux distribution Fedora Core 5. It's
been a while since I seriously used and adminned a Red Hat→Fedora distro,
as I've been using Mandriva at home.
I must say that using Fedora has turned out to be a pleasant experience. The
system is stable, fast (at least on an Opteron with 2 GB of RAM that is running
in 32-bit mode, which is (granted) a pretty fast computer), and functional. I
had to configure and install a few things manually, like mp3-support or the
kernel module for reading the NTFS
partition. But these were easily doable.
(The Unofficial Fedora FAQ was a lot
of help, but Google points most of the relevant queries to it anyway). yum
seems like a very useful utility, and I grew to like it a lot.
SELinux did not allow Apache to listen to a different port, which I wanted
to, and so I set it to Permissive mode. Right now, my main annoyance is that
XMMS does not display the length of the mp3's in its queue until they
are played, as it does in Mandriva for example.
While I heard some very bad horror stories from early versions of Fedora, but
now things seem to have matured, and the distribution to become much more
usable.
PHP Propel's fromArray() gotcha
At work, I'm working with
Symfony and
Propel. Propel is a PHP-based
Object-Relational Mapping. One problem that I encountered was the fact its
fromArray() function that initialises a record from a PHP dictionary, accepts
an optional second argument, that determines how the keys in the dictionary
are interpreted. If you want the normal SQL field names (which I did) you need
to set it to TYPE_FIELDNAME.
Wikipeding
I helped giving the final touches to the Hebrew Translation of the
Wikimania Registration Form, which a friend translated. What I did was
apply proper formatting, and fix some grammar and phrasing problems. I
originally had problems finding the MediaWiki markup for the page, but someone
instructed me how to do it, which was very helpful.
In Search of a Better Media Player
I've been using XMMS as my media player
since forever. It was the first player I used on Linux, and I've still
been using it up to a few weeks ago. But having heard all the buzz of
the development of other newer players, I decided that maybe there was
something better.
The first player I tried was Beep Media Player X. In order to get the most recent version
up and running, I had to upgrade gstreamer, gtk+ and some GNOME-support
libraries, and their C++ versions. But I got it running. It looks much like
XMMS, but with the playlist having larger fonts (which is a bit annoying).
Looking for some help with some problems I encountered with it, I headed to
FreeNode's #bmpx channel, and asked some questions, and received some help. (
I helped with fixing a drag-and-drop bug there.). I should note that the
equaliser and balance controls of BMPx were disabled due to gstreamer
limitations.
I was using it for some time, when I heard of the amaroK
1.4.0 release. Since I thought there may be more to life than what BMPx could
offer, I decided to try it out. Version 1.3.1 which shipped with my system
crashed a lot so I decided to install 1.4.0 from Source RPM. I took the Mandriva
1.4.0-rc Source RPM and adapted it to 1.4.0. It took some trial and error, but
I got it working.
I set amaroK to use the xine plugin, which allows playing MOD files as well
as most other common formats. amaroK 1.4.0 is an excellent program. It is
very convenient, and has a lot of functions for navigating your music
collection, keeping statistics. It can also fetch album covers from Amazon.com,
or display the artists' pages from Wikipedia, which makes one's experience much
richer. I'm lovin' it.
If you're using Linux and haven't tried amaroK yet, you should. It truly is
an exceptionally good program.
A Usable Open Source BCD Implementation
Someone on FreeNode's #perl came and ask a variant of a very shopworn problem.
He said he tried to sum up decimal numbers from a database, and got a number
close to 100.0 but not quite. I started explaining about the fact that the
computer represents floating-point numbers as binary, and thus the conversion
to decimal is not exact. Then, I suggested he'd look for a BCD (Binary Coded Decimal)
numbers module on CPAN. But guess what? There
isn't any.
A search.cpan.org
query for BCD returns junk. Furthermore, IBM has a list of implementations
on its
BCD page. There are
a few impelementations for Java, one for Python, one for Eiffel, and
decNumber which
is IBM's proprietary reference implementation, which has some GPLed port
in the works as part of gcc. Still, even the GPL is not very usable.
What I'd like to see is an open-source (at least LGPL; BSD-style license
preferable) implementation of BCD numbers, both in ANSI C and in Pure Perl. So
if you're looking for an interesting project to take upon yourself, this
would be a good choice.
2006-06-09
PHP's "? :" Operator
After staring at a bug at work for a while, and not understanding what I did
wrong, I discovered the following: as opposed to Perl or C, PHP's condition
operator "?:" is left-associative instead of right associative.
This means that the following expression:
$a ? $b : $c ? $d : $e
is equivalent in PHP to:
($a ? $b : $c) ? $d : $e
instead of the Perl/C (and more useful) version:
$a ? $b : ($c ? $d : $e)
If you want the latter semantics, you need to add parenthesis. Here's
some more
information about it.
In Search of the Best PHP Development Environment
After I started working on PHP for work, I wondered if there's a better
development environment for it than Vim
which I'm using for almost anything.
The first thing I looked at was Quanta
Plus. Its HTML mode is pretty nifty, with
ability to auto-complete tags, and to automatically put ending tags. Its PHP
mode is also quite nice. However, it seems that a split view of the window is
unavailable. (Which is strange, because the so-called
Kate - KDE's Advanced Text Editor, does.)
Since I often want to look at old code in the file or in a different one when
writing new code, this has ruled it out for me.
Next I looked at
PHPEclipse.
This time I was able to find out
how
to have a split view there (in Eclipse). One problem I had with it was that
it felt sluggish - the scrolling was slow, and typing characters into the
edit window was slow. I was using the Fedora Core 5 Eclipse packages, on an
Athlon 64 machine with 2 GB of RAM (in 32-bit mode), which is a high-end
machine, but it still felt sluggish.
Another problem I had was that it messed my tabs/spaces indentation (but I
suppose that's configurable somewhere), and that it kept asking to save one
of the files under a different name when I switched to its tab. It also had
something else that disturbed me but I can't quite recall what.
So it seems that gvim, even though not ideal is the best of what I tried,
and so I'm sticking with it. If you know of another alternative, please let
me know and I'll try it.
2006-06-18
Australian DMCA-like Law
There's a Digital Millenium Copyright
Act (DMCA)-like law brewing in Australia. Follow the links for the
details. Australian citizens and residents should consult the link for what
they can do to prevent it from being enacted.
Web Meta Language on Cygwin
After some amount of work on my Windows XP machine, I was able to get
Web Meta Language to build on cygwin.
I incorporated the changes into the Subversion
version. There isn't an official release with the changes yet, but I
hope to make one soon.
I did an application test of it by building my home site from its source code.
The results were identical to the one generated by the Linux version. Another
note is that WML on cygwin seems to be roughly as fast as on Linux, but it's
possible that is because of the faster specs of our XP machine.
Still, running ./configure on cygwin is much slower than on my Linux box.
Refactoring the CSS Files
Being on the web-desing swing, I decided to try to refactor the CSS
files of some of my sites. To do that I used the
Template
Toolkit-based TTML which is integrated into the Subversion trunk version
of Latemp, which is my CMS. I refactored the CSS files of my home site,
the Better SCM site, and the Freecell Solver home site. (I have more sites, but
I can't do everything at once.)
Preprocessing the CSSes with a powerful preprocessor works great. I was able
to eliminate a lot of duplicate code, and discovered some redundant CSS
definitions which I removed.
Now my CSS files are in much better shape.
CSS Zen Garden-based Latemp Theme
Yet more Latemp-related news is the fact that I splitted a branch to create
a theme for it based on the CSS Zen
Garden HTML. This enables using a vanilla CSS Zen Garden CSS stylesheet
to style an entire Latemp-based website.
Currently, it works relatively well for some of the CSS Zen Garden
stylesheets, and looks strange on others. Perhaps to truly look well, one
will have to tweak the CSS files.
In the future, I also want to have a way to use WordPress themes as well, and
perhaps the themes of other CMSes. But I guess that with the TTML,
CSS Zen Garden and other features added, (and the availability of Web Meta
Language on cygwin), I'd like to release a new version of Latemp before that
will happen.
Other Blog Entries
Mashoor Al Dubayan blogs about
10
Reasons for Companies to Consider Web Standards. He mentions the poor
state (standards-and-compatibility-wise) of most Saudi Arabian sites. This
situation is also prevalent in Israel. (See
my
comment.
On my use.perl.org journal you can find
an entry about
setting up bugzilla for work. It contains some computer
technicalities.
2006-07-13
Discussions of Interest
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.
2006-07-16
It's always the easiest thing to blame's one problems on someone else.
Politicians and other people are notorious for repeatedly doing that. And as
usual, Israelis tend to blame "the Arabs" for the problems that they encounter
today. But is it true?
This entry is going to be very flamebait, but I have to say it. I admit
that I also said to myself "Damn, Stupid Hizbullah" when the situation in
Southern Lebanon and Northern Israel started, but as any good Neo-Tech person,
I quickly returned to my sense, and started looking at my own backyard.
So here are the points to consider:
-
Nasarallah and friends are Doing What they're doing because they are
Evil. The source of Evil is generally referred to as "Mysticism" in
Neo-Tech literature. A Mystic has a shrinking self-esteem and keeps wanting
to hurt others to temporarily relieve his self-esteem. See
the
Neo-Tech orientation for more details.
A benevolent person generally does what he does in order to increase his or her
healthy self-esteem. This self-esteem can be cognitively manifested in "fame",
"money", "love", "getting work done", "peer repute" etc. All of these are
generally positive values, that help a person later on in life, and just makes
him feel good about himself, others and the worlds.
Nasarallah and friends (but also many known and unknown Israelis) are causing
more harm, because they need to reach new "heights" of negative achievements.
The Neo-Tech link explains it better, but this was an executive summary. Just
take it for granted.
Evil does exist, and evil people too, as any person who has rudimentaly
studied 20th century history knows. Evil people are capable of doing anything
as bad as any evil that Tolkien could come with. However, as opposed to the
formidable and often awe-inspiring Tolkienian evil, real-world evil people
are generally dishounorable, lack most self-control, blame other
people's for their problems, are incompetent, and generally invoke a lot of
disgust.
Note: a benevolent person can become a mystic and a mystic, given enough time
and determination can return to be a good, non-harmful person.
-
The Israeli-Arab Conflict will not be Resolved Until Israel stops having
Constitutional Racism - Israel has discrimination against non-Jews directly
in its constitution. From uneven immigration and citizenship laws, to lack of
civil marriages, divorces and adoptions, to uneven investment between Arabic
and Jewish settlements. While this does not justify irrational hatred from
the Arabs, it certainly is a very good cause for it. And it is very bad.
Despite popular belief, a private person is allowed to be racist or even
(peacefully) discriminatory. This is because discrimination does not involve
force, threat of force, or fraud, which are the only unethical actions.
However, a government being a public monopoly must not be discriminatory to
groups according to some of their properties.
We can often hear people saying that if Israel did not have consitutional
racism, it would not remain a Jewish state for much longer, or that
the Palestinians will take over. This is wrong. There are already a lot
of Jews in Israel, and they aren't going to magically disappear.
Furthermore, I'd rather have a liberal, free-as-in-freedom, prosperous
country than a discriminatory Jewish country. Moreover, if anyone causes any
trouble (whether Jewish or non-Jewish) he can be exiled or otherwise
ostracised.
Finally, in Israel today there are many immigrants who are neither Jewish
nor Arabs: Romanian, Philippinos, Chinese, Thais. They are hard working and
passionate. Surely most of them have a precedence for getting a citizenship
over the random trouble-causing Arab nationalist.
Israeli does not belong to the Jews. No country can prevent a lawful person from
immigrating to it, living there and working there. Otherwise it's
exercising force in trying to get the person to leave. It's high time
Israel officially becomes the Land of the Israeli and Israeli-wannabes
(which it is in practice) instead of "the Land of the Jews".
This is the ultimate cause of most of the troubles Israel been having, and a lot
of the criticism applied to it from the outside. I don't expect anti-Israeli
terror activities to immediately stop after such a reform will be made, but
after it, there won't be any real-life basis for feelings of hatred towards
Israelis, and thus they won't survive for long.
For more information refer to my
"A Solution to
the Israeli-Palestinian Conflict", as well as my story
"The Enemy and How
I Helped to Fight it". The latter was written with a lot of inspiration
from the situation at the Israeli-Lebanese border (back in 1996), but has a
universal message, and it is very possible many Israelis who read it will feel
uncomfortable about the ideas behind it. (I've started heavily revamping it
recently, but am still in the process, and don't have something final).
If you're reading it and is a Lebanese, be aware that my advice about not
blaming other people for your own problems applies to you too. The best way
to prevent the continuation of the fighting is to give an ultimatum to
any Hizbullah activist you know to either leave it or otherwise be outcasted
by you an other. Something like "Either you leave this wretched organisation
or don't talk to me again." If the Hizbullah people will lose all their friends
this way, they'll quickly stop this insanity.
Like I said, I know this post was flamebait, but I had to say it because I'm
tired of people or countries blaming other entities for their own problems.
Feel free to reply to this post, but please be civil, and avoid
Logical Fallacies.
Cheers!
2006-07-25
Patronage and Self-Patronage
I hope you did not feel too bad about
my previous post to
this journal, which was of somewhat political nature. So here's a more
technical-philosophical post which is in essence an essay.
Continuing with the thread in Perl-IL that I started, about the shortage of
P-Languages (and FOSS in general) programmers in Israel, and the fact that
employers have become more picky in hiring them, and my
"Thoughts about Whether to Become Independant" threads in
Perl-IL
and in
Hackers-IL,
I'd like to go one step further. (Read the entire threads - they contain
many important insights).
During the Reneissance (and possibly previously in the middle ages or before)
it was customary for nobles and royals to become patrons of artists and
scholars - sponsor their food and housing and in exchange become better known
for the creations of their sponsors. Now here I propose that this idea
may now, well into the information age, such a paradigm may resurface, or
already resurfaced in a way.
What I'm talking about is giving patronage to open source hackers: programmers,
essayists/article writers/bloggers, artists, translators, QA people - all
falling under the umbrella of people who
hack. This
patronage can be given by "rich people": companies, wealthy entrepreneurs,
a collective donation of sponsorship, or other sources like that. In turn,
the developer can do what he normally does, while possibly crediting his
benefactors. (Depending on the terms of benefactors).
Now let's take me as an example. Being a 21st-century Homo Sapiens, I
require some basic things such as food, housing, clothing, electricity and
good hardware, software and Internet resources. Without these things I won't
be able to produce anything of value. Now, what I like to do the most, and
what I feel like I'm the best at is hacking on various digital creations
on my free time. Here's a tentative list of what I've done so far:
-
Initiate and work
on some Free and Open Source Projects. While often my creations ended
up as nothing more than vapourware and plannignware, and many are just
curiosities, some of them turned out to be among the leading projects
in their niche. A lot of these are
Perl CPAN Modules.
-
Contributed
to some open-source projects that I did not initiate. These include
some substantial contributions to large-scale FOSS projects, but also
some medium or small-scale projects that I adopted, and sometimes even
became the leading force behind their further development.
-
Articles, Essays and
Presentations - who can have
enough of those? I've got lots of ideas for these things, and too little
time to write everything. A lot of such writings ended up as entries on
my weblogs.
-
Web-sites. Can't have enough of these either. From
my personal site to others such as
the Better SCM Site or the
Perl Beginners' Site. Some
of these are in the form of contributions to wikis.
-
Last, but not least humorous
stories, bits and aphorisms. Creative writing was perhaps my
first serious non-work-related creative outlet, and I'm still proud
of the stuff I've been creating over the years.
The licenses for all of them are very liberal. Original software is under
a BSD-style licence, articles and presentations are usually under
the Public Domain or
CC-Attribution
(CC-by), and the large-scale stories are under
the Creative Commons
Attribution-ShareAlike licence.
I have a long weekend ahead of me due to
Tish'ah Be'Av and one
thing I'm planning to do is blogging. The first thing I'd like to blog about
is my hardware wishlist.
First is memory. At the moment I have 512 MB, but with KDE, two Apache's,
SpamAssassin, akregator, Amarok, and Firefox, it is no longer enough. So I'd
like to upgrade it to 2 GB (or 2.something GB, witht the old memory units). A
friend of mine is going to drive me to a hardware store in downtown Tel Aviv,
and we're going to buy them there then. My board supports up to 4 GB of memory.
Next on my list is a flat screen. My screen at the moment is a 17"" MAG
screen, that occupies too much space and plus has a large frame, which makes
the image smaller. I'd like a nice 19" flat screen. This things don't cost
too much, and at least I could put more stuff on my desktop without straining
my eyes.
Another thing I'd like is a new hard disk. At the moment, I have two 80 GB
hard disks, both of them quite full. With the new disk we can put all the
largish video and audio files we have. I still don't know whether I'm going
to get a SATA disk or an external USB disk.
Finally - the video card. At the moment, I have an
Hang-vidia
card, which I run without the 3-D drivers (so at least my computer will be
stable). I'd like a card with some free-as-in-GPL 3-D drivers. I know
that Intel cards have just that, but I'd like to see what will happen with the
AMD and ATI merger, and whether it will cause the ATI proprietary drivers to
be open-sourced too. In the meantime - no 3-D games for me on my Linux machine,
but I still mostly only play PySol and some random puzzle games.
Oh and if you're going to tell me that the Nvidia drivers version 6666 or
whatever works for you, and that I should use it - forget it. I have better
things to do than to play with different versions of a huge and quirky
binary blob. I want it free-as-in-speech and problem-free!
(For the record, I am making use of some high-quality binary-only software on
my Linux machine (much less on my family's Windows' machine). But I think that
binary kernel drivers are Evil, and do not wish to use them. Plus, I never
depend on such software.)
Due to the fact I ran into
this
Mandriva bug, X-Windows stopped working. Thus, I first tried working on
the virtual consoles, which was very little fun, and then decided to work on
my Kubuntu partition. I did not enjoy the exile too much: Kubuntu is not bad,
but I like Mandriva better and all my life is on the Mandriva hard disk.
While on Kubuntu I chatted on the IRC, and also worked on a DocBook/XML-based
file. Eventually, I found a workaround on the bug report, and after I applied
it everything worked on my Mandriva. Now I'm back to Mandriva and am happy
again.
A few weeks ago, I've been to Freenode's #perl, talking to merlyn and other guys, when we got to discuss the
Biblical "Tower of
Babel Myth". As it turned out, the commonly perceived interpretation was
not the one most scholars find as more sensible, which is the one we ended up
being taught at Junior High School.
What most people think is something like that:
The people spoke to each other in the same language, concentrated in one
place, and decided to build a tower high enough so they can reach God. God,
a small dwarf who lived in the sky, was afraid of the efforts of these
people, because he feared they'll reach him. So he casted an 8th level Spell
of Language Fragmentation, caused these people to speak in different tongues,
and without being able to understand each other, they ended up spreading
across the Earth. God was relieved and returned to his dwarfish deeds, as
dwarfs do.
Doesn't seem too sensible does it? Well, most scholars believe that the
saying "one language and one speech." was actually a methaphor for all these
people having exactly the same opinion. And when everyone have the same
opinion, the Bible contemplated that people end up doing non-productive things,
such as building tall buildings.
What God ended up doing was cause them to have a difference of opinions and
also have various arguments (while still speaking the same language). This
caused them to spread across the land.
Obviously, the original story with the different language, is still a possible
valid interpretation of the Hebrew text, but it still seems very silly to me.
Some parts of the Bible use picturesque tongue to describe various
high-cognition concepts, whereas in modern speech we would use a lot of
advanced philosophical and cognitive concepts.
So I went with Ofer to buy more
memory on Monday. As it turned out I was a bit distracted and for the first
time he had to park his car and wait for me a little. We drove to the store,
and bought the memory units there - 2 of 1 GB. I asked for a receipt and got
it. Then when I said my name, someone overheard me, and it turned out he
knew me from the Israeli FOSS Internet, and from Haifux. We chatted a bit
and then parted.
During the evening, I tried to install the memory modules myself, but it
didn't work at first, so my father helped me and we were successful. 2.5 GB
RAM in total, excluding the 1 GB swap, out of 4 GB, which is the board's
maximal amount of RAM. Now, everything feels more snappy - it takes less than
a minute to start a new konsole window or a gvim window, and I can probably
run some Java applications without making my system completely unresponsive.
On a slightly different note, I went to the records' store in the Ramat Aviv
Mall, and bought
the CD "Explosive - the best of bond". It's pretty good.
As I noted in a comment to a comment by an Anonymous poster:
Dear Mr. Anonymous,
I don't know who you are, but let me inform you that following mulix' lead I will delete such anonymous
comments posted to my blog, that were not posted by a valid LiveJournal
username or signed with a real name, email, homepage, weblog, or email that I
can recognise.
From my experience with linmagazine.co.il the so-called anonymous posters tend
to make comments that are annoying, defamatory, and redundant. On Slashdot,
they call such people as you "Anonymous Cowards", and for a good reason.
So next time, either identify yourself, or don't comment at all.
You have been warned.
So people from now on, either identify yourself by logging in in or by
signing your name at the bottom of the message, or else I may delete such
comments based on my discretion.
So, I was trying to find out why my X11 compose key (which allows one to enter
them über-cool accénts and ümlauts) was working as normal in Gtk+-based, and
not in KDE or normal X ones. I spent a few hours on that including consulting
with some people on the IRC.
As it turns out some compose-key variations work only in Gtk+. For example,
<Compose>-e-' gives an "é" in gtk, and does nothing in KDE.
Whereas, <Compose>-'-e generates the same character in both
Gtk+ and non-Gtk+ apps.
Since I've only tried to use the first form, I could not generate anything.
I spent a few hours on this mis-behaviour today. I've become frustrated, but
now I'm kind of relieved.
BTW, I returned from a very successful
August Penguin 5 conference,
so watch this space for some reviews and impressions.
Well, I've been talking with a certain Canadian friend on the IRC. He said
he's been pro-Israeli until the tension in the North started. After Lebanon
was devastated he concluded that "Israel was bad" and that the Hizbullah were
therefore noble freedom-fighters.
I realise it's human nature to assume that if someone is doing something bad,
then the one who opposes him is noble. But reality is often more complicated
than that. The purpose of this entry is not to protect Israel, but rather to
bring some facts about Hizbullah that will prove they are anything but noble,
and certainly not freedom fighters.
-
The Hizbullah operate out of civilian residences. Thus, they realise the
Israeli retaliation will harm civilians. If they cared about the well-being
of the Lebanese civilians, they would have isolated themselves from them
as much as possible.
-
The Hizbullah started the war.
-
The Hizbullah shoot misslies at Haifa, and at other cities and towns well
within the territorial Israel. Many of these missilies contain small metal
balls that are meant to spread around and harm people.
-
They identify themselves as Muslims. Islam is a religion, and
everything
that is a religion or identifies itself as such is harmful and destructive.
-
The Hizbullah do not fight against the Syrian occupation of Lebanon. If they
are indeed freedom fighters, why aren't they doing exactly that?
-
The Hizbullah are controlled by Iran (which have been supporting a lot of
terrorist activities against Israeli and Western targets), and are acting
under the supervision of Syria (which has been hosting many terrorists).
-
The Hizbullah are one of the most popular charities in the Isalmic world.
Many Muslims suffer from hunger, mal-nutrition or sub-standard conditions,
and yet the Hizbullah still receives a lot of donations.
-
The Hizbullah kidnapped several Israeli soldiers. They did not let the Red
Cross visit them, the whereabouts of some of them are unknown, and
three
of them were returned dead..
I'll let you draw your own conclusions. For more insights about the Hizbullah
and similar issues consult my
story "The Enemy and How I Helped to Fight it".
With all the fuss about the recent proposal for a DMCA-like anti-file-sharing pro-DRM law (most of the links in
Hebrew, see This blog entry in English about it), I have given some time to update my essay "The Case for File Swapping".
It now has a
second revision, with many improvements.
And this time whoever catches an error, gets two virtual cookies. (And a credit). Cheers!
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…
So I tried to validate the entire presentations
section of my homesite. The validator, which I've installed on my home
computer and tweaked to accept a very large number of pages, was not happy: many
of the pages did not validate.
So I decided to waste a day and a half validating everything. I encountered
some of my old HTML and some of it was not a happy sight. Now, however,
everything under /lecture/ validates. I learned a few things in the process:
-
I had to override a method in Spork
so it will validate. Afterwards the output was not perfect either, but HTML tidy
fixed it.
-
PerlPoint required a patch to emit perfect HTML 4.0.
-
It is much faster in the long run, to rsync the homepage from the remote
machine back to the local workstation, set up an alias for it their, and
validate that. The reason this is the only thing that works is because various
resources that are found on the site are uploaded from other places on the
hard disk.
In the process, I made sure
Quad-Pres can accept configuration
options that are pre-processed by Template Toolkit. Among else, it allowed me
to embed an environment variable for my remote SSH target. Now I feel like
working on Quad-Pres more.
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.
Some people complained about the Hebrew display in the IGLU wiki. I was told
this was caused by a buggy CSS. Looking at the
Hebrew wikipedia <head>
element, I saw that it contained a link to a certain "rtl.css" file.
But this link wasn't present in the <head> element of
my installation of MediaWiki. Such a file was present in the directory of the
skin we were using.
So the problem was how to enable the linking to the secondary stylesheet using
MediaWiki. It took some hours of research but here's the solution. In
LocalSettings.php, put the following:
$wgHooks['SkinTemplateSetupPageCss'][] = 'myRtlCss';
function myRtlCss(&$css)
{
global $wgScriptPath;
$url = "$wgScriptPath/skins/monobook/rtl.css";
$css = <<<EOF
/*<![CDATA[*/@import "$url";/*]]>*/
EOF
;
return true;
}
Enjoy!
Well, I didn't announce it here, or in any official place, but starting from
August, I resigned from my workplace in order to become a freelancer. Here's
my resignation email with my reasoning:
Hi $CTO!
Cutting to the chase, I'd like to say that I've decided to resign from Oleh.
It's not a rash decision - I've been thinking about it for a while. I am
willing to work an extra month and other such commitments, as part of my
contract, depending on your call. I'm sorry if I disappointed you, but when I
was looking for a job 4 months ago, I still though I'd like to work in a
permanent, but now I realise that it's not my cup of tea.
Note that my working conditions at Oleh had nothing to do with my decision.
Oleh is a wonderful place to work in: the pay is good, the hours are
reasonable, the people are nice and intelligent, and the atmopshere is very
good. I'd recommend anyone to work there. However, right now I'd like to
become a consultant, a contractor, a trainer, a sponsored FOSS developer, a
professional blogger and writer and a web site owner - probably a mixture of
all of them to some extent.
For my reasoning see the following links, and discussions:
-
"Perceived Shortage of P-Languages Programmers":
http://perl.org.il/pipermail/perl/2006-June/thread.html#7942
-
"Thoughts about Whether to become a Freelancer":
http://perl.org.il/pipermail/perl/2006-July/thread.html#8007
http://groups.yahoo.com/group/hackers-il/message/4694
-
"Patronge and Self-Patronage" - http://shlomif.livejournal.com/11004.html.
If you wish, Oleh can still employ me as a contractor or consultant, but I'd
prefer to do either:
-
Refactoring of existing code.
-
Writing automated tests.
-
Dealing with the infrastructure (Linux, CVS, Subversion, Bugzilla, etc.)
Not really web programming. (Except for very small tasks). My hourly rate is
negotiable, assuming you would like to hire me.
Best regards,
Shlomi Fish
In the past week, I started giving private lessons in Perl. More about it
will soon be posted to
my use.perl.org Journal.
A long time ago I decided that in order to make
the Math-Ventures
part of my homesite more attractive, I'd like to convert all the mathematical
formulae that had been written using ASCII Art (%-)) into
MathML - an XML grammar for
writing mathematics. Knowing that MathML was extremely verbose, I decided to
try converting to HTML+MathML from LaTeX using
TeX4ht.
However, when viewed using Firefox (which has a built-in MathML support),
the test page rendered all the formulae as plain text, which made me believe it
was a bug in TeX4ht.
I left it at that for a long time, but a few days ago decided to give it
another try. Again displaying it did not render it nicely. However, copy
and pasting the notation into the
MathML
Tester on the Mozilla homepage, yielded perfect results. After a little
thought, my woman (OK - programmer) intuition told me that maybe Mozilla
displayed it badly due to the fact the file ended in the .html
extension and as thus was treated with the content-type of text/html.
Changing the extension to .xhtml (with a content type of
application/xhtml+xml), solved the problem and the formulae were
redisplayed. So I finished converting the page from its ASCII-art mess into
TeX and rendered it into XHTML+MathML. I needed to change the
<!DOCTYPE to XHTML+MathML which involved some
Latemp voodoo. (As it turned
out, I didn't do it properly the first time, and as a result the page did
not validate).
I also had to install and configure the MathML fonts, or otherwise got weird artifacts and missing
symbols in the formulas.
Then I discovered that when served as .xhtml, the Google AdSense ads
don't get displayed. I found
a
workaround here, and after a lot of experimenting got it to work. Then
I needed to modify the <object> tag CSS to the following:
.ads_side, .ads_top_wide
{
overflow: hidden;
}
.ads_side
{
width:120px;
height:600px;
}
.ads_top_wide
{
width:500px;
height:70px;
}
Otherwise, I got annoying scrollbars and clipped content at all the same
reason. Many thanks to someone I talked with on the IRC who helped a lot.
So then the Google Ads worked. Afterwards, I decided to convert a diagram
to SVG to make it l33ter. I had to write a Perl script and experiment a bit
with affine transformations. The SVG works in Opera and Firefox 1.5.0.x,
but doesn't work in Konqueror from some reason. The MathML works only in
Firefox, because Opera and Konqueror don't support it. Here's
the
final result.
The way I see it, when more and more sites like mine will integrate
cutting-edge technologies, then more people will have them on their browsers,
and web designers will have an easier life. Similarly my
Music
Recommendations Page now uses display: table and
display: table-cell which works well in Firefox, Konqueror and
Opera but is broken in MSIE 6. This will provide further motivation for
people to stop using MSIE.
Together, we can make the revolution happen! Well, in any case, cheers.
Carnal Reason
reports in his blog that
the Pakistani-Candian blogger
Isaac Schrödinger
faces a threat
of being deported back to Pakistan. He is an
ex-Muslim
who voiced some anti-Islamic opinions, and there's a death penalty to
blasphemers in Pakistan.
He now accepts donations to support his legal battle and can be further helped
by linking to his blog entry and making him more well-known. Per
Carnal Reason's request, I also include the links to the other blogs linking
there:
Here's a wget tip - if you want to ignore the robots.txt file, you can add
the option --execute="robots=0". This will ignore the robots.txt
file. I found it by reading the code after finding
a site which very smartly bans all
robots except for the Googlebot.
That put aside the recent Mandriva upgrade put me in a state where the
packages of rpm, urpmi, newest glibc and others were not installed. Also
the DSA key of "mandriva devel" got disabled. I fixed all that.
Afterwards, when I was using KDE, with kernel 2.6.18-rc6, my machine got
hanged up completely. Without even being able to answer pings, and
without reporting anything meaningful to the syslog. Right now, I'm
compiling kernel 2.6.18-rc7-git1 in order to investigate whether this
will work better. But still this thing shouldn't happen and is probably
a kernel problem. (And for the record - I'm not using any proprietary
drivers.)
Turned out my problems were only getting started. After I upgraded the kernel,
I got more of the problems and eventually had to reboot and could not
boot it again. With a combination of booting into a very old Knoppix, a
relatively new Games
Knoppix DVD, and my Kubuntu partition - I was able to investigate.
To keep a long story short, I probably have a hard disk problem on my
Mandriva partition. rpm does not work properly and several of my
core binary utilities (like ip, ifconfig, and even
init got corrupt.).
At the moment I'm using Kubuntu to backup the Mandriva's partition important
things to one of our WinXP machine which has a lot of free hard disk space. It
didn't help that my sister shut down that computer before she went to sleep and
interrupted my "tar -cjvf" operation, but a few quick command line scripts now
allow me to backup just what is remaining to be backed up.
Writing from his Kubntu exile - 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.
So, to continue
the story, I got
around to installing the SATA disk yesterday. At first I disconnected the
IDE hard disks to prevent damage. Then I connected the SATA disk using the
instructions I found on the wikipedia - it's much easier than an IDE disk.
Then I tried to boot the Mandriva Ehad 2006 installation CD, which I
prepared in advance.
What happened? Nothing. The computer did not recognise the CD (but it
recognised the SATA disk - yay!). However, a poweroff and poweron solved
this and the installation proceeded. I selected all the usual options. There
were a few glitches during the installation. At one point, it complained about
a bad file or something like that. Then, the bootloader installation
completely confused it. To resolve this, I rebooted the CD and selected the
restore bootloader option. It refused to install LILO, but installing GRUB
was successful, and I was able to boot the system.
This time I made sure to put /home under a separate partition, to
later facilitate re-installation, or dual-booting. The Internet worked out of
the box, and I was able to get Samba working. What I did afterwards was (in
a rough chronological order):
-
Re-enabled the IDE disks. This just involved connecting them again.
-
Recreated my home directory from my backup archives, which I backed up
on a Windows machine.
-
Upgraded to Mandriva 2007.
-
Configured /etc to my liking.
-
Installed and configured Apache 2.2.x, rsync, slocate, SpamAssassin, several
Perl modules, and other packages that were absent in the default Ehad
installation.
-
Tried to build kernel 2.6.18. However, booting it using grub caused a
blank screen to appear, and before that make install complained
about a missing module, which I couldn't find. I resorted to installing
kernel "2.6.17.13-mm-desktop-1mdvsmp", which is the Mandriva Multimedia kernel
(up to 4 GB) with SMP support.
-
Moved some files from the old hard disk to their rightful place.
Now, I'm on the SATA disk. df reads:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 2.7G 37G 7% /
/dev/sda2 83G 38G 46G 46% /home
/dev/hdb3 5.2G 4.4G 815M 85% /mnt/kubuntu
/dev/hdb1 69G 38G 31G 56% /mnt/old-mandriva
/dev/hda1 26G 23G 3.7G 86% /mnt/win_c
/dev/hda5 49G 49G 377M 100% /mnt/win_d
The SATA disk seems very fast. It took me under a minute to unpack the
latest Linux kernel. So now I'm now hopefully back on track. In the meantime
I was able to do some
Test-Run hacking,
as well as catching up with my email and RSS feeds.
Finally, here's a joke I told to my dad: "The bad thing hardware is that it
sometimes work and sometimes doesn't. The good thing about software is that
it's consistent: it alwaays does not work, and always does not work in exactly
the same way".
A Happy New Jewish Year to everyone who's reading this entry. See
the date for Rosh
Hashanah, and read
more about it.
A certain Jewish American friend had told me that on Rosh Hashanah they did
not have a feast like Israelis do, but rather just went to the synagogue to
pray. However, an Observant American Jew told me that they do have a feast,
because a feast is an inseparable part of any Jewish "Yom Tov" (I.e: "good
day"). So even if you're not observant, make sure to eat to your heart's
content.
Shanah Tovah! שנה טובה.
So yesterday's evening and today, I went over the past year entries
(since last Yom
Kippur) of my blogs
and trying to present some conclusions.
Well this year, I wrote
one relatively
large patch for the GIMP but it wasn't accepted yet because of some
issues the developers had with its philosophy. I also made
many releases to CPAN,
contributed several patches to other people's CPAN modules, and worked on
Latemp,
Website Meta Language itself, and other
projects of mine. Except for all that, there was the usual slew of bugs
I found and reported (sometimes with a testcase or fix). All in all, a
productive year.
This year, I worked on several new essays and articles, which are
placed or linked on
my homesite.
I bought several music CDs and liked most tracks out of all of them. I've also
spent a lot of time (too much) talking on the IRC, and some of the
conversation excerpts were funny enough to end up as fortune cookies.
On the Wiki-front, I spent some time populating the
English wikiquote's
"Hebraic Proverbs" page and also helped translate the English Wikipedia
entries about Perl and BASIC to Hebrew. I also contributed to other smaller
wikis.
On the negative side, I did get involve in several flamatory discussions. One
of them involved the licensing of Test::Run, which some people claimed was
"incompatible" with Perl. However, I believe their effect was considerably
not as bad as the ones in the previous years.
On the employment front, I quit a job this year, and joined another one only
to quit later because I'm trying to become a freelancer. I already gave
several private lessons in Perl and I hope there will be other employment
prospects.
This year, I finally almost completely abandoned the joe editor. Now it's
vim all the way down for me, even in
console.
This year, I finally learned XSLT, and started learning Smalltalk (which I
kind-of gave up on), J (which I didn't get very far with, either) and Common
Lisp.
Finally, I helped organise several open-source activities in Israel this year:
the Welcome to Linux series,
OSDC::Israel::2006 (albeit with this
I played a minor part), and August
Penguin. I started the August Penguin organisations, but eventually quit
as the hear organiser because I did not want to be responsible for monetary
matters. In my partaway message, I said I'm willing to take care of anything
except that, but the guy who took the baton, did not keep me and other people
involved too much in that, and instead took it all on himself.
There were the usual slew of good and bad global news this year, the most
important for us was probably the
2006
Israel-Lebanon Crisis, but I won't cover it here.
All in all, a productive year for me. I hope I'll continue this trend the
next year, and I hope my attempt to become a freelancer will be successful.
And I hope there won't be anything like the 2006 Lebanon Crisis.
First of all, let me inform that you can
email me again at my home address,
as it was fixed after I reported it to my hostmaster.
Lately, I've been learning some new languages. I've been reading
Practical Common Lisp in
order to better learn
Common Lisp from the
grounds' up. So far, the book taught me some new stuff, but not too much.
I eventually decided to test my knowledge and experiment a bit and so wrote
a
simple text analyser using Common Lisp. It was the most serious CL
program I wrote, and I wrote it in gvim, with a lot of help from Google and
from the good people at Freenode's #lisp.
Aside from that, following
the discussion on merlyn's
blog, I decided to give Squeak
Smalltalk another chance. So far I followed
the
O'Reilly Tutorial (which has a few bugs), and found Squeak an interesting,
if unorthodox experience.
On the more Hacktive side, I've been uploading several modules to CPAN,
including some new versions of the Test::Run modules, and
kwalitee improvements for
my CPAN distributions.
All in a week's work!