1. Shlomi Fish
  2. shlomi-fish-homepage


shlomi-fish-homepage / t2 / prog-evolution / shlomif-at-cortext.html.wml

#include '../template.wml'

#include "toc_div.wml"

<latemp_subject "Shlomi Fish at Cortext: HTML, UNIX and Perl - oh my!" />
<latemp_meta_desc "Some Memoirs of Shlomi Fish when Working at Cortext" />
<latemp_more_keywords "Shlomi Fish, shlomif, Shlomi, Cortext, Perl, UNIX, Unix,  HTML" />

<toc_div />

<h2 id="meta">Document Information</h2>

<dl class="meta">
Written By:
<a href="http://www.shlomifish.org/">Shlomi Fish</a>
Finish Date:
Last Updated:

<h2 id="how_i_started">How I started Working for Cortext</h2>

One qualm I had about <a href="shlomif-at-elpas.html">working at Elpas</a>
was that my pay was very low. At first I received minimum wage (which in
Israel is even lower than in Europe or in the United States), and later it was
raised a bit. However, my friend told me on a phone talk with him that
programmers earned much more, because there was a genuine lack of them. He
later on introduced me to Ran Eilam who was about to found Cortext.

Ran had long hair with huge strands (he still does), and he sat next to a
<a href="http://en.wikipedia.org/wiki/SGI_Indy">Silicon Graphics Instruments
Indy computer</a>, that ran
<a href="http://en.wikipedia.org/wiki/IRIX">IRIX</a> (a flavour of Unix that
ran on SGI computers), and he was busy editing some code. We started talking.
I already knew about Berkeley sockets, from my then work, where I started
working on TCP/IP. Ran said one can write a Berkeley sockets client in Perl in
10 lines and a Berkeley socket’s server in 20 lines. This sounded very
impressive to me. As I looked at the Perl code he wrote, I could not
understand it.

Ran accepted me to the job, and said I could start working in a few weeks,
when they moved to their office in Southern-Middle Tel Aviv (Near
<a href="http://en.wikipedia.org/wiki/Shalom_Meir_Tower">Migdal Shalom</a>,
in Herzl street). Ran said “It takes 10 years to learn UNIX - I want you to
learn it in a month”. So I set out to learn both UNIX and Perl.

<h2 id="prepartions">Preparations</h2>

Ran instructed me to buy a Linux CD-ROM and play it, and I went to a computer
store down town and bought a CD. I partitioned our 800 MB drive using the
given DOS utility and installed the Slackware of that time (1996) on
the freed 200 MB. Retrospectively, I can say it had a lot of junk on it,
and since my computer had a relatively small amount of memory - 8 MB, it
quite crawled, and more so when I started the
<a href="http://en.wikipedia.org/wiki/X_Window_System">X Window System</a>.

It still came with version 4 of the perl interpreter, not version 5, which
was what I needed. Also since my primary system was a Windows 3.11, I had to
download a suitable Perl for it and for DOS could also only find perl 4.  I
started reading about Perl from a monolithic PDF that contained what was then
known as “the perl man pages” and now also known as <tt>perl*.pod</tt>
or <a href="http://perldoc.perl.org/">the perldocs</a>.  This
was a long and exhausting read, and, since they referred to many UNIX idioms
that I were not familiar with, I didn’t fully understand them. And I believe
that if I hadn’t had a lot of programming and computing background back then,
and general good intuition, I would have had a much harder time.

I had to practically work “on dry”, because I only had perl 4 at home. I also
started experimenting more with UNIX. I experimented previously with UNIX
on my ISP’s servers, and <a href="shlomif-at-elpas.html">at Elpas</a>. As it
turned out, I didn’t learn UNIX to a level that my boss could have hoped I
would learn in a month (or in 10 years), but it turned out to be enough
to be productive there.

<h2 id="the-story-of-the-enemy">The Story of <i>The Enemy</i></h2>

My work at Cortext proved to be a catalyst for my writing of the story
<a href="$(ROOT)/humour/TheEnemy/"><i>The Enemy and
How I Helped to Fight it</i></a>. I’ve told the
<a href="http://www.advogato.org/person/shlomif/diary/227.html">more
complete story here</a>, but I’d like to tell it from a more Cortext-oriented
perspective. Before going to Cortext, I had spent some time reading the
<a href="$(ROOT)/philosophy/philosophy/guide-to-neo-tech/">Neo-Tech</a>
book my father had bought when I was in the 9th grade. Neo-Tech is highly
enlightening, but very easy to misunderstand at first and I misunderstood it
to a large extent back when I still worked for
<a href="shlomif-at-elpas.html">Elpas</a>, but it started sinking in
at Cortext. While Neo-Tech is technically primarily based on
<a href="http://en.wikipedia.org/wiki/Objectivism_%28Ayn_Rand%29">Ayn Rand’s
Objectivism</a>, but takes a different approach in conveying it, and
deviates on many points.

When I was in Cortext, I also read some introductory pages about the original
philosophy of Ayn Rand herself, which I also found enlightening
(that was a long time before the Wikipedia really took off and even Google
did not exist yet, which made research back then more difficult).
Moreover, my boss, Ran, referred me to the story
<a href="http://members.iinet.net.au/~bofh/">The Bastard Operator From Hell</a>
which I read (originally as a giant MS Word document) and loved. It proved
to be the main literary inspiration for my <i>The Enemy</i> story, with some
secondary previous inspiration from
<a href="http://en.wikipedia.org/wiki/The_Metamorphosis">Kafka’s
<i>The Metamorphosis</i></a> which I had to read and learn in high-school.

I originally got the idea for my story during a trip my family took to
Britain. I told my father about it, and he said it was a good idea, but
I still kept planning it. From some reason, I was so excited (I had an
<a href="http://en.wikipedia.org/wiki/Hypomania">Hypomania - a state below
mania</a>), and eventually could not function very well. I was so glad to
be at home next to the computer and started writing the story on my home
computer - using the Windows MS Write / MS WordPad program, if I
remember correctly.

After I had most of the story written, I printed it, and took the printed
sheets to my friend who said it was funny but not overly so. I immediately
understood why he thought so, but it took me a long time to revamp it, and
then several months later in the Israeli winter (when I no longer worked for
Cortext), I wrote the first part of the story in a large notebook I had, and
when I read it to this friend and his younger brother (whom I was also friends
with), they gave a pretty good review and it served as the basis for all
further versions of the story.

<i>The Enemy and How I Helped to Fight it</i> proved to be the first really
serious story that I wrote, and was followed by other stories and screenplays,
which other people seem to have liked, or liked to a large extent. I think
it had to do with me reaching a certain kind of personal philosophy that
enabled me to be really creative and is actually reflected to a large extent
in them.

<h2 id="cortext-computers">The Cortext Computers</h2>

Cortext was quite an operation. The main computer I worked on was a Pentium I
(about 100 MHz - can’t remember the exact number), that first ran Linux and
was later converted to a FreeBSD installation. I used it as a UNIX workstation
to write code on. Most of the other Cortextuals used
<a href="http://en.wikipedia.org/wiki/Vi">the vi editor</a>, but I could not get
used to it and so installed Emacs (under /usr/local I think) and tried
to learn it. I didn’t get too far (and until this day could never really
get used to Emacs). However, I ended up watching a different Cortext worker
use an editor which he said was called
<a href="http://joe-editor.sourceforge.net/">“joe” (Joe’s Own Editor)</a>
and after installing it was able to become accustomed to it, and had been
using it for a long time since as my default terminal editor.

At Cortext, we consistently used
<a href="$(ROOT)/open-source/anti/csh/">the tcsh shell</a>, but back then I
didn’t notice a lot of difference between it and
<a href="http://www.gnu.org/software/bash/">GNU Bash</a> that I had at home
on my Linux system, despite the fact that they are radically different (I now
wouldn’t recommend tcsh for any use).