The Perfect Programmer

"No program is perfect,"
They said with a shrug.
"The customer's happy--
What's one little bug?"

But he was determined,                  Then change two, then three more,
The others went home.                   As year followed year.
He dug out the flow chart               And strangers would comment,
Deserted, alone.                        "Is that guy still here?"

Night passed into morning.              He died at the console
The room was cluttered                  Of hunger and thirst
With core dumps, source listings.       Next day he was buried
"I'm close," he muttered.               Face down, nine edge first.

Chain smoking, cold coffee,             And his wife through her tears
Logic, deduction.                       Accepted his fate.
"I've got it!" he cried,                Said "He's not really gone,
"Just change one instruction."          He's just working late."
                -- The Perfect Programmer

Friends for the life

        There was once a programmer who worked upon microprocessors.  "Look at
how well off I am here," he said to a mainframe programmer who came to visit,
"I have my own operating system and file storage device.  I do not have to
share my resources with anyone.  The software is self-consistent and
easy-to-use.  Why do you not quit your present job and join me here?"
        The mainframe programmer then began to describe his system to his
friend, saying: "The mainframe sits like an ancient sage meditating in the
midst of the data center.  Its disk drives lie end-to-end like a great ocean
of machinery.  The software is a multi-faceted as a diamond and as convoluted
as a primeval jungle.  The programs, each unique, move through the system
like a swift-flowing river.  That is why I am happy where I am."
        The microcomputer programmer, upon hearing this, fell silent.  But the
two programmers remained friends until the end of their days.
                -- Geoffrey James, "The Tao of Programming"

Funny People

Very touching article on Cracked.com1, which is so well written that, with N (> 1) 1-line posts already in drafts of this blog, I’m not creating another draft of it. I hope it’s worth your time reading it.

1Never seen that site until few minutes ago.

Recursively checking out ports tree

I’ve come across a problem posted on #bsdports channel few days ago, how to download a port (FreeBSD) and its dependencies without checking out complete ports tree. So, I hacked a solution for this in Haskell to celebrate my recently attained bliss moment:

λ ghci
GHCi, version 7.6.3:  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :load download-portstree.hs
[1 of 1] Compiling Main             ( download-portstree.hs, interpreted )
Ok, modules loaded: Main.
*Main> downloadPortsTree "editors/emacs-nox11"
Loading package transformers- ... linking ... done.
Loading package mtl-2.1.2 ... linking ... done.
Loading package array- ... linking ... done.
Loading package deepseq- ... linking ... done.
Loading package containers- ... linking ... done.
Loading package bytestring- ... linking ... done.
Loading package old-locale- ... linking ... done.
Loading package time- ... linking ... done.
Loading package unix- ... linking ... done.
Loading package filepath- ... linking ... done.
Loading package directory- ... linking ... done.
Loading package process- ... linking ... done.
PortsList {portsSeen = fromList ["converters/libiconv","devel/gettext","devel/gmake","devel/libffi","devel/ncurses","devel/pkgconf","editors/emacs-nox11","lang/perl5.16","math/gmp","print/indexinfo","security/ca_root_nss","security/gnutls","security/libgpg-error","security/libtasn1","security/nettle","security/openssl","security/p11-kit","textproc/libxml2"], portsNew = fromList []}
Checking out port editors/emacs-nox11
Checking out port devel/gmake
Checking out port converters/libiconv
Checking out port devel/gettext
Checking out port devel/ncurses
Checking out port devel/pkgconf
Checking out port print/indexinfo
Checking out port security/gnutls
Checking out port lang/perl5.16
Checking out port security/libgpg-error
Checking out port security/libtasn1
Checking out port security/nettle
Checking out port math/gmp
Checking out port security/openssl
Checking out port security/p11-kit
Checking out port devel/libffi
Checking out port security/ca_root_nss
Checking out port textproc/libxml2

Happy hacking lambdas… 😉

Sagittarius Scheme — FreeBSD port

Created a FreeBSD port for Sagittarius Scheme for fun1, and have this:

SHA256 (sagittarius-scheme-0.5.5.tar.xz) = 1ddf2841af2d79ddf2a54346e97fe7c0e45b9c486df69b866d60e2e6c89f7e03

The only issue pending is, fixing building on 10-CURRENT, and 11-CURRENT (i386) platforms, which I need some time to look.

[UPDATE: There you go]


1In memory of a sagittarian, I once knew.


“A man can be himself so long as he is alone. If he does not love solitude, he will not love freedom; for it is only when is alone that he is really free.” (Arthur Schopenhauer)

Sadist Elephant

        Once upon a time, there were five blind men who had the opportunity
to experience an elephant for the first time.  One approached the elephant,
and, upon encountering one of its sturdy legs, stated, "Ah, an elephant is
like a tree."  The second, after exploring the trunk, said, "No, an elephant
is like a strong hose."  The third, grasping the tail, said "Fool!  An elephant
is like a rope!"  The fourth, holding an ear, stated, "No, more like a fan."
And the fifth, leaning against the animal's side, said, "An elephant is like
a wall."  The five then began to argue loudly about who had the more accurate
perception of the elephant.
        The elephant, tiring of all this abuse, suddenly reared up and
attacked the men.  He continued to trample them until they were nothing but
bloody lumps of flesh.  Then, strolling away, the elephant remarked, "It just
goes to show that you can't depend on first impressions.  When I first saw
them I didn't think they'd be any fun at all."