Thursday, December 30, 2010

Reading PDFs & Jpegs In The Terminal

Everynow and then I need to look at a pdf in the console. To do this fb is used to create a framebuffer to get fb install fbida-fg package.

Tuesday, December 28, 2010

Eclipse Autocomplete

To get instant autocompletion in Eclipse goto Windows → Preferences Java Editor → Content Assist → Auto-Activation

Then set Auto-Activation to zero, or a number much smaller than the 200 ms delay.

Something Old

This was the first thing that I ever wrote that seemed to be any good to me.


Ponder, Command and Conquer

more signals at eleven
This is an object of type IOConciousStream

I am the invisible man
wandering the land of the ghosts
In triple darkness my cipher is manifest
without a living dharma would there be karma?
I create mad vibes for my tribe

While we ponder, and wander
about creation of our nation
Seeking ethereal simulation
by engaging in random procreation
can you have a sunflower sutra
without the creation of a latin sura?

I get high off seminal earth, the windy word and the cleansing fire.
While you and I verse we can deceive entropy and the hearse

This life is a trial on the truth forsooth none of can escape the noose
And while sipping on crushed grapes I contemplate
Ghandi the Askari sitting under Olumo,
dancing on Pluto and laughing at Profumo.

Well, I init call on PlanB which floats the function,
ActiveMeasures(int p*)
We issue a final call, a clarion to all or if you want
wear the grinning mask and engage in scheming tasks
but remember that the Ghostface Killer and Bobby Digital will overthrow your whole citadel

We close like Ibn Khaldun yelling koom fa ya koom
And voice cries out in the wilderness Iqra! Iqra! Before your doom Ahad laila Ahad !

I am the invisible man surrounded by ghosts and motes
I drop lyrics and rimes to hebephrenics
Integrate with surds and paralleize the new ontogeny

people instill fear in their progeny
due to their own mental dichotomies
we all commit crimes in chasing dimes
heed the word and weed your deeds


Thank you patient reader

Banji Trimegistus, Kassim Ibn Hammed

-------------------------------------------------------------------
Don’t make me get all iambic on your pentameter

Fixing Update-alternatives' No such file or directory Messages

I found out that if I get the message "failed to read link /usr/bin/: No such file or directory" removing and recreating the symlink helped.  Below are the steps that I followed, this was all by trial and error, reading the alternatives man page and looking at what people have posted on the web.
 

  1. When an error message in the form, failed to read link /usr/bin/: No such file or directory was sent by alternatives I would do an ls -l to see where the symlink was pointing. 
  2. Remove the symlink /usr/bin/ if it was pointing to /etc/alternatives.
  3. Create a new symlink in /usr/bin/ pointing to /usr/java/jdk1.6.0.21/bin/.
  4. Run /usr/sbin/update-alternatives –install /usr/bin/   $JAVA_HOME/bin/ $JAVA_ALTERNATIVE_PRIORITY 
  5. Do /usr/sbin/update-alternatives –auto

After I went through all the steps I did not get any complaints from Fedora and my Java seemed to be correct. 



Update

To see exactly where the ymlinks are pointing too use the ll command.  An example of its output is below.

$ ll /usr/bin/javasw
lrwxrwxrwx 1 root root 24 Dec 28 01:20 /usr/bin/javasw -> /etc/alternatives/javasw


Unfortunately running ll /usr/bin/jar gives a no such file or directory message.  Typing jar works but need to make sure its the right jar.  so that when I call on libraries they will be the right ones.

Monday, December 27, 2010

Beautiful photos

Come and see.

Configuring Alternative Packages in Fedora

In this world of multiple Javas and other packages, and Debian created the alternative system to make it easy to pick which implementation of of a package should be selected. Though the man page is helpful Chris Taylor's Wednesday Why gives a succinct explanation of why Fedora adopted this technology.

Most of the time to set up an alternative do the following command:

sudo alternatives --install

For example if I have jdk1.6.0_21 & jdk1.6.0_23 installed and I want to use the latter's compiler I would do,

sudo alternatives --verbose --install /usr/bin/javac javac /usr/java/jdk1.6.0_23/bin/javac 16023

That way if jdk1.60.21's files are untouched by the symlink /usr/bin/javac now points to /usr/java/jdk

From what I have read so far alternatives is a good way of managing symlinks on your system.

Wporta shows how to install and configure Java for a 64 bit system. I might write a bash script to automate this configuration if there is a need. Another good resource is here.

An Old Vim Buffer Trick

When switching between buffers I usually forget that instead of typing :nextbuffer I can simply do :b where is the number of the next buffer. Or even better yet;

<CTRL>-^ to switch to the next buffer

To open the buffer in a new window in a new window <CTRL>-w followed by <CTRL>-^

With all those short cuts why remap the keys as Gmikeus shows us. butin matters of workflow there is no disputation. I do like Gmikeus' article which contains a lot of cool info.

I still find it easier to type :b in command mode. Well if I ever forget again I will look at either the buffer FAQ or vtk.org's useful commands list.

Hopefully now that I've written this the vim short cuts will ne'er be forgot.

Hip Hop Was A Popular Art Form And It Still Is

Almost all the shots in DWYCK are closeups. Its possible that they were made with a handheld on some kind of stand. Furthermore since there are a number of cuts they only needed one camera person. Having one camera person probably helped keep the costs of video production cheaper, its possible that Gang Starr got one of their friends to shoot and edit the video. I would not be suprised if the dancers were friends or around-the-way girls.

Oh My God! Fela Also Played Rock!

The beginning of Confusion starts with something that sounds like Stereolab's mellow mix of drums, and horns with synthesizers. Then I heard a mix of rhythms that sounded like a dash of the Doors bringing the big beat from Texas Radio

But then ... in the Juju of Kollington & Sunny Ade, that my parents listened to, the same bars were caressed on electric guitars. Some Indian music is so eerie because the beats are familiar, but its all irie. Its funny that Fela's and The Door's keyboarding sounds comes from the same place..

The music is a mellow chill song till the horns blow. The eruption of woodwinds quickens the blood and attacks the heart with its urgency. Then the maestro's big, confident voice, bursts out telling us the meaning of trouble. The voice tells us; "we all know I am larger than life. This is the essence of man, by this riff I conquer, for I make all rhythms new."

And yet despite the power of his songs it was not enough. The Zarathustra of his country who spoke to the new age but we had not killed of the old one instead it got coopted into reaction.

Saturday, December 25, 2010

The Junkie's Christmas Part1

The first ever piece of William Burroughs spoken word material that I ever heard was The Priest they called him. Later on I heard the Christmas version and the film never disappoints.



Getting the other parts of this fil is left as an exercise to the reader.

Use The Shift Command To Iterate Over Bash Positional Parameters

I was writing a script where both an array and a string needed to be passed to a bash function. As in the example below.
On the caller's side there is no problem doing that but in the function is where the magic happens.

Funcer "$var1" "${anArray[@]}"

Now in Funcer imagine that our code was as such as

Funcer ()
{
local hostname="$1"
local host_params=("${2@}")

Bash's interpreter will assume that our array of args has only one item and will ignore $2. You might think that using the the the statement local host_params="${2[@]}" will be copacetic but then the interpreter will show you this is very wrong. The thing you need to do is use shift to move to the next parameter as shown below.

Funcer ()
{
local hostname="$1"
shift
local host_params=("${@}")
for host in ${host_params[*]} ; do

   echo -en "\"$host\","
done

echo '\n'

} # ---------- end of function Funcer ----------

There is more information at here and in the ABS.

Friday, December 24, 2010

ALL CAPS For My Jellied SQLed Soul

I have not been able to do anything with my C# project or bash scripts for the past two days my brain has been like jelly when it comes IT which makes Banji sad. To cheer myself up I watched MF Doom/Danger Doom videos which inspired me to write the piece of hack verse about some of my favourite things.

Two MF Doom Imitators walk into a bar.......
After eating peanuts from jars
and talking about state of Monster Island's Czars
they compared rhyming scars

In the heat of arc lights
after much fuss, and a short fight
one sent out a stream of glossolalia in hex
The second pseudoinnovator cleared a cache with expect.
(he needed a place to store the beloved paraclete)

Then under the singing leaves
Deborah consults with a Bible Geek
about the location of the furthest babbling brook,
They need a place to dry the pages of a profane book.
while dancing to the tunes of Apook.
I guess this is no Burroughs material,
unlike his stuff my pages are ethereal

That is why I drove myself to Mexico.
so that I could here I on I's Dead City radio.
chanting "born like this", I wear horns like this.
Walk like a Tool Master of Brainerd
on a pilgrimage to the newest iteration of Hurd
I eat corn and fish, the two of them together are most delish.

The destroyer is here, but never fear
Since they cut down all the Yage
how can they take a gauge
on your bersker rampage?
Are you an archon engaging in a little kayfabe? ;-)

Now hear comes Elijah with his sacred hair on fire
Enoch recites the Babylonian King List for Enkidu who makes a moue
at the 365th, new you
Angel headed hipsters haloed in street lights
pick up the fight against reactionaries
in stalhhelm

All because the Cannon Group gave them a dare!
But this ain't no night of long knives,
or the rebirth of Dr Fibes.

Thats as silly as a mash up of Iggy Pop in The Land That Time Forgot.
The scissors of fate made their cut
to late and now
axis mundi has gone bye.
Louis! Louis! can you ken why?

Mlk holds us in his brass embrace.
Dipping us into the fire of Golgotha
As his Ashera sings us assurances
culled from the best of commercial occurrences
Parnassus on his wheels of steel laughs because
the sacrifices will not bring Carthage into the new age.
He read the entrails of a million snails to pierce the future's veil.
With one eye he peers into infinite night.

I drink rockstars while Carmela's daughter parks cars
The psychopomp on a horse
dances over Nietzsche's corpse
In the meantime King Geedorah walks in,
from looking at 42 views of sin.
With his mouth agape, and knees aquake he
sees;
the Germans with street sweepers
the MF Doom praise keepers,
the figments of imagination from many nations
And he asks what video brought about this strange discourse?
And we shout Why ALL CAPS of course!

Tuesday, December 21, 2010

A Flac to Mp3 Conversion Shell Script

I've had to do it enough times that I wrote a script yesterday to automate the conversions for me. There is a related one for converting aac files to mp3. Eventually I will just build one app that will convert any audio format to mp3.

#!/bin/bash 

numOfArgs=$#

DIR_NOT_FOUND=12
DIR_FOUND=0

FLAC_FILE_UNREADABLE=7
HELP_DISPLAY_VAL=5

NUM_OF_TAGS=6

#Audio File Metadata Tags
artist=""
track_num=""
song_title=""
genre=""
album=""
year=""

trash="/home/griot/.local/share/Trash/files"
log_file="flac_conversion.log"

declare -a tagList # Store the tags in this array

#=== FUNCTION ================================================================
# NAME: DisplayUsage
# DESCRIPTION: Prints help information and exits
# PARAMETERS:
# RETURNS: HELP_DISPLAY_VAL
#===============================================================================
DisplayUsage()
{
echo -e
echo -e "usage: $0 [directory]"
echo -e "Options:"
echo -e " -h or --help or displays options for $0"
exit $HELP_DISPLAY_VAL
}

# Statements dealing with calling the help function.
# If no args are given to fix_permisions then call DisplayUsage.
if [[ "$numOfArgs" -lt 1 ]]; then
DisplayUsage
fi

# If first arg is -h or --help call DisplayUsage.
if [[ "$1" == "-h" || "$1" == "--help" ]] ; then
DisplayUsage
fi

flacDirectory="$1"

#=== FUNCTION ================================================================
# NAME: FillsTagList
# DESCRIPTION: Fills the taglist array with a flac file's metadata
# PARAMETERS: Gets passed a flac file
# RETURNS: Should return an error if there is problem (not done yet)
#===============================================================================
FillsTagList ()
{
local ftc_flacFile="$1"
local count=0

    # Create a tmp file where the flac metadata is stored.
touch flac_tags.tmp
metaflac --export-tags-to=- "$ftc_flacFile" > flac_tags.tmp

BACKIFS=$IFS
IFS=$'\n'

exec 0<flac_tags.tmp

for line in $(cat flac_tags.tmp) ; do
tagList[$count]=${line##*=}
((count++))
done

    # Now that we are done delete the tmp file.
rm flac_tags.tmp
unset count
} # ---------- end of function FillsTagList ----------


#=== FUNCTION ================================================================
# NAME: GetSongMetadata
# DESCRIPTION: The data that we got from FillsTag is put into the tag
# variables.
# PARAMETERS: Uses global variables
# RETURNS: Later on will make it throw an error code if there are
# problems.
#===============================================================================
GetSongMetadata ()
{
local fileName="$1"
FillsTagList "$fileName"

artist=${tagList[0]}
song_title=${tagList[1]}
album=${tagList[2]}
year=${tagList[3]}
track_num=${tagList[4]}
genre=${tagList[5]}

} # ---------- end of function GetSongMetaData ----------


#=== FUNCTION ================================================================
# NAME: ConvertsToMp3
# DESCRIPTION: Sends a flac file to functions that get its metadata.
# When the metadata is acquired then convert the flac to an
# mp3 using a bitrate of 256.
# PARAMETERS: a flac file.
# RETURNS: FLAC_FILE_UNREADABLE
#===============================================================================
ConvertsToMp3 ()
{
local flacFile="$1"

    # We only want to convert files that are not copyprotected (DRM free).
if [ ! -r "$flacFile" ] ; then
echo -en "$flacFile is unreadable. ConvertsToMp3 error code "
echo -e "$FLAC_FILE_UNREADABLE, (copyprotected flac file)."
return $FLAC_FILE_UNREADABLE
else
        # Next call GetSongMetadata to fill the IDv3 tags.
GetSongMetadata "$flacFile"

flac -dc "$flacFile" | lame -b 192 -h --ta "$artist" --tn "$track_num"\
--tt "$song_title" --tl "$album" --tg "$genre" --ty "$year" \
--add-id3v2 - "${flacFile%*.flac}.mp3" &>>$log_file
fi

mv "$flacFile" "$trash"

} # ---------- end of function ConvertsToMp3 ----------


#=== FUNCTION ================================================================
# NAME: VerifyDirectory
# DESCRIPTION: Tests if the directory given as arg to script exists.
# PARAMETERS: $1 (directory to search for text files.)
# RETURNS: either DIR_FOUND or DIR_NOT_FOUND
#===============================================================================
VerifyDirectory ()
{
local targetDir="$1"
echo -e "$targetDir in VerifyDirectory"

if [ -e "$targetDir" ] ; then
return $DIR_FOUND
else
echo -e "$targetDir not found sending $DIR_NOT_FOUND back"
return $DIR_NOT_FOUND
fi
} # ---------- end of function VerifyDirectory ----------


VerifyDirectory "$flacDirectory"
dirTestResut=$?
#echo "$dirTestResut was the result of calling VerifyDirectory"

if [[ "$dirTestResut" -eq "$DIR_NOT_FOUND" ]] ; then
echo -e "Cannot find $flacDirectory"
exit $DIR_NOT_FOUND
else
cd "$flacDirectory"

for file in ./* ; do
       
       if [[ ${file##*.} = "flac" ]] ; then
           ConvertsToMp3 "$file"
       fi

   done
fi


Also I am finding out that the bashsupport plugin for vim is very cool.

Rebuilding My Fedora 13 Kernel

When I would use Slackware I did Kernel rebuilds every six months. But the first time I tried to do one in Fedora 5 it did not go well. After spending 5 hours I decided to stick with the standard FC kernels. All of that changed about two weeks ago.

My laptop would keep crashing and the network modules would fail for some reason. It was doing this daily and I got so tire of it that I decided that I would have to do the following things:
  1. Remove unneeded modules and options from the kernel.
  2. If it still gave me problems first look in the logs for messages
  3. Run strace & ktrace on the applications that I was using during the panic.
  4. If its still giving me problems rebuild the kernel again but this time with logging.
To rebuild the kernel I mainly just followed the steps in Timme's Howtoforge article.

The Rebuild Process


First find out exactly what hardware I have by running the commands either one of these commands lspci, or lshw. I did not need to run lsusb to see the usb devices since either of the two latter commands will give you that. Then After I followed steps 2 - 2.5 of Howtoforge's fedora compilation guide. But during step 2.5 I would do the following;

As I was selecting options for each kernel subsystem the output of lswh -class & lswh -businfo the output of lshw guided me in choosing what to include or not in my kernel. This customization took sometime, it also involved me looking up what certain kernel features did to see if enabling them would be of benefit to me. It took sometime to verify specific hardware variants but after spending most of the night on that I was done with the kernel config.

After I followed steps 2.6 - 2.7 I was able to reboot the laptop with the custom kernel on the first try. The fact that my compile and build went so smoothly tells you that Falko Timme wrote a good article on the kernel build process and I am not going to duplicate his instructions here.

Recompile's Impact


After I did that the have been no kernel panics and power management is working again. Before the kernel recompile if the laptop got disconnected for more than 5 seconds it would shut down. Even though it was supposed to go into hibernate mode it would not instead processes would die an ugly groody death, the disk would need to be fscked and I would get irritated about the cable being jostled.

Now the battery's power levels are detected again so I can run it for half an hour on the battery. There are no kernel panics and the apps are running better. Unlike the times when I used to rebuild my kernel for Slackware I did not have to go through separate steps to make sure that the sound & wifi cards were working. I'm guessing that at least for the wifi card since its built in and not using the PCMCIA slot it makes it easier for Linux-2.6.34.7 kernel to handle it.

Possible Project


Since it took me so long to get done with make menuconfig I think I will try and automate that step by generating a list of a machine's hardware then using that list of hardware components and desired services to turn on options in the kernel .config file.

That might cut down on the time I have to review the hardware. Then to take it to the next level actually have the kernel be built and installed on VM to see if it boots the machine. And if the build fails I can review why. But since the system is a lot more stable right now I will not be doing anymore troubleshooting of crashes since there have not been any mission critical failures in the past two weeks.

Saturday, June 12, 2010

Saturday, June 5, 2010

Job Hunting In Nigeria

I noticed that many job announcements in Nigeria say that only candidates who are 30 or less will be trusted. For examples of this see the advertisements here and here. In the States, which I know about from working there, its possible to find a good DBA, Java programmer, or Sysadmin who is under 30 since many kids start dealing with these things from their teens; so they might already have 15 years experience.

But in 9ja with the slow networks, shallow internet & computer penetration most people who are even 30 have never dealt with backup tapes, some, built a RAID array or used tools like RT for trouble ticketing. Let alone have the experience dealing with things like SLAs, contracts, a major failure and the recovery from the failure, getting requirements, creating documentation, dealing with version control, backups will be harder. I first became aware of this because someone asked me about building an employment website for their firm and mentioned that they did not want anybody over thirty two applying.

When I asked the gentlement why their age matters and not weather they can carry out the tasks I was told that maybe an older person might have poor vision so cannot work as efficiently, might not like being supervised by someone who is younger.

I was very surprised to be hearing such things and mentioned that doing such things might not be ethical, or good business practices since all that should matter is does the person have the right skill set and are they willing to do the tasks.

Other things that I have seen is that people will only hire women as receptionists. When I discussed this with Jude he told me that women would br nicer to the customers, I pointed out that some women are not pleasant to be around but some men are; so why not make the requirements for the job a nice, friendly personality with good customer service skills instead of a young woman. He then told me that some of the men who come there will feel like they have a chance with her so they will come again. I still think that the approach to hiring is wrong and that with their age and gender discrimination these Nigerian employers are preventing a lot of good people from working for them. And after being exposed to the business and government ioperations I can see that these policies have not worked.

Friday, March 26, 2010

A Truth About Existence

I did not write the stuff below, it was a post on slactivist by Scaramouche that I thought really captures the silliness & tragedy of the human condition. Anyway I hope you enjoy it as much as I did.

One of my favorite blogs, the Waiter Rant, speaks eloquently to what you described here. He once had this to say:

When looking death in the face things get very real very quickly……..

I’m twenty one and doing a stint as a chaplain’s aide in a large gritty urban hospital.

Part of my job is to bring Communion to people dying in the AIDS ward. Most of the people wasting away in their beds are uninsured junkies or prostitutes. This is long before antiretroviral therapy. AIDS is poorly understood. Some people still wear masks out of fear of contagion.

Many of the people dying in this place are wracked with guilt. Remember how people used to say AIDS was God’s punishment for sinners? That’s not an abstract concept for many of these people. A lot of them made disastrous life choices - the consequences of which are now, remorselessly, killing them.

I’m too young and emotionally under equipped to be any real help to these people. I just try and listen. That’s hard. Some patients scream at me, driven insane by secondary infections that are rotting their brains. Others are stonily silent – not wanting help from anybody. Occasionally people find peace but that's rare. They cry, they bargain, they pray. All the things people do as they rage against the dying of the light.

Maria is a drug addict. She got AIDS from years of mainlining heroin. Her baby, the result of exchanging sex for drugs, died of AIDS. She has no family or friends. She lies dying alone in a small room overlooking the hospital’s air conditioning plant. She hasn’t had a bath in days. The sweet sour smell of the unwashed is over powering.

“Hi Maria. I brought you Communion,” I whisper.

She looks at me weakly.

“Can I have some water?” she asks. She’s near the end.

“Sure.”

I look for her water bottle. There is none.

“Where’s your water bottle?”

“The nurses won’t let me drink water,” she says.

Must be something going on with her kidneys. Stupid doctors. The woman's dying.

“Let me go ask the nurse what we can do,” I say.

“Thank you.”

I walk to the nurse’s station. A large woman sits behind the desk yakking on the phone with what seems to her girlfriend. She looks at me with complete disinterest.

I wait patiently for her to finish. She doesn’t.

I wait some more.

“Pardon me, Maria wants some water. Can I give her some?” I interrupt.

“Can’t you see I’m on the phone?” the nurse yells.

“Yes but….”

“I’ll be with you when I’m finished!”

So I wait. The nurse ends her call.

“Now, what do you want?” she says angrily.

“Can I give Maria some water?”

“She’s on restricted fluids you can’t.”

“How about some ice chips then? I think she has dry mouth.” I ask innocently.

The nurse throws her hands up in the air in frustration. “Yeah, go get the girl some ice chips for what good it'll do her. You can get them on the next unit.”

“Thank you,” I say.

I go over to the neighboring unit and fill a Styrofoam cup with ice. I walk back to Maria’s room.

“Maria I got you some ice chips.”

No response.

“Maria?”

I walk over to the bed. She’s dead.

A wave of incredible anger sweeps over me. All this poor girl wanted was a drink of water. It turned out to be her last request

Even this small thing was denied her.

I crush the cup in my hands. Ice scatters on the floor. Hot tears run down my face. This girl had nothing – less than nothing. She died thirsty and alone.

It was then my innocence was taken.

I march out to the nurse’s station. The nurse is on the phone again. When she sees me a look of annoyance crosses her face. “Now wha….”

I slam my hand down on the counter. “MARIA IS DEAD!”

The nurse jumps out of her chair.

“DON’T YOU GIVE A SHIT YOU LAZY BITCH? SHE’S DEAD!” I bellow.

All hell breaks loose. A code is called. Security is called.

The attending shows up. There’s a do not resuscitate order. He pronounces Maria dead.

Security guards escort me to the pastoral care office where the Chaplin waits for me.

Instead of yelling at me for losing my temper he sits me down on his couch. He hands me a cup of coffee.

“What happened?” he asks gently.

I tell him everything.

A small smile crosses his face. “That nurse is a lazy bitch,” he says.

I laugh harshly.

“This is hard work son,” he says.

“I had no idea how hard.”

We’re quiet. I listen to the wall clock tick.

“When you were looking at Maria in that bed were you thinking about yourself?” the priest says suddenly.

The tears come again.

“Yes.”

“What were you feeling?”

“That I never want to be alone like that.”

“Do you feel that alone?”

A truth I had been hiding from myself came bubbling up from the depths.

“Yes,” I start to sob.

The priest gets up and sits next to me. He gently and puts his arm around me. I cry till I feel like I’m going to shake apart.

When I finish the Chaplain says, “If you’re honest - trying to help people makes you confront the darkness in yourself.”

“Yeah,”

“Maybe you should work on feeling alone,” he adds.

“Kind of tough when you want to be a priest,” I reply.

“Maybe you should think about that.”

I’ve given my heart and soul to being a priest for four years. I’m supposed to go abroad to study theology next year. Now, for the first time, I realize it isn’t going to work out.

“God doesn’t want you to be unhappy,” the priest says.

“Then why drag me here and put me through all this for nothing?” I whisper.

“I don’t know.”

“God’s a real asshole sometimes isn’t he?” I say sadly.

The priest leans back and smiles. “A gigantic asshole.”

We both laugh.

A few months later I quit. ……

Tuesday, March 2, 2010

The Water Fall



In the summer I kept hearing the citizens of our lovely town talk about a waterfall, in a village far away. The journey to the waterfall was fairly arduous, Vince, one of our former finance people thought he was going to have a heart attack, so after he went there for the first time he started to work out a lot which made him a lot healthier and happier. Jordan, the Banner man, also said that it was a hard trek to the place.

Eventually, I decided to make time for a trip, the falls; from speaking to people I knew that we would need a four wheel drive vehicle, Mr Umar, the Transport Officer, said that I would assign me a driver who would take us there. I asked if I would have to speak to the driver but he said he would make those arrangements. To make it cheaper I invited about four people to come with me.



On the big day it turned when I called Umar about the truck and driver he told me to speak Mustapha. When I called Mustapha he told me it was his day off and he was going on a trip with his wife, and furthermore no one had told him about driving excursionists. When I heard this I complained to the TO about his broken promise which made him mad, since I did not want to get into a useless discussion of he said/he said I simply asked could me and Labaran pick up the truck? He agreed most readily to this so we picked up the truck and got the rest of our party. which consisted of;

  • Your narrator
  • Labaran the fixer
  • Young Victor, the aspiring poet
  • Charles "Indiana State of" Jones
  • Jamal "X Shabazz"
  • Melba the shrinker of heads.



After a long drive over dirt roads past villages, rice paddies, fields of 10 foot high millet, over streams we got to the village of the waterfall. The drive had reminded me of the time we drove my car through the Modoc National Forest so that we could get to the Rainbow Gathering. Just when I thought my lower back could not take it any more we arrived at Waterfall Village, this made me very happy since the truck was very crowded and uncomfortable in the back seat.


As usual whenever you go on excursions in Nigeria you will meet the villagers, spend some time with them, share kola, and give them a little something something. In return you will get a group of helpers who will carry your bag even if you don't want them to. going through all the protocols of Adamawa with the prominent elder we started the walk to our destination.



We walked past the flowering okra fields which Melba had never seen before and started to go up the highlands. The trip was okay for the first hour and then we came to the rough, steep part. Imagine if you will a path that is 1.5 metres from a sheer drop. At the end of this drop there is a rocky, rapid stream that has carved gullies in the valley. The path is overgrown with elephant grass, bushes, and other things, the path is also bisected by streams, in some sections its slippery because of the clays in the soil. and there can be a 40 degree incline in a few spots. While you are picturing all this imagine doing this on a humid day with temperature in the 40 centigrade range and you will have an idea of what the trip was like. Anyway, it was really hard for the 30 minutes it took to get over the hard part and my heart probably went up to 80 beats per minute during that half hour. But when I got done there was the waterfall in all its misty glory.

I took off my clothes stepped into the water and swam a little, let the water carry me down a couple of cataracts and had a great time. I even stepped under the waterfall and it was fucking cool. The force of the water wanted to push us away from the cataract, knock us down and carry us away. The only way me, Victor & Charles were able to stay under the fall was by holding on to each other..



After being there for an hour we all got dressed and went back. On the return I sat in the pickup's bed with Victor and it was a lot more comfortable though very un safe since there are no seatbelts there, though it was fun to watch the trees, roads and villages speeding away. It was also much cooler than the ride to the falls since the cool breeze made by the speeding vehicle was much more pleasant than the underpowered air-conditioner.

Sunday, February 14, 2010

You've Got To Get Behind the Mule Every Morning and Plough



When this semester started there were a few things that I wanted to get done so that I will feel a sense of accomplishment. Those things were;


  • Completing my rough draft of my Java textbook.
  • Finishing my rough draft of my Operating Systems book.
  • Writing an outline of our research project.
  • Getting money for our project
  • Training the swim team
  • Improve my running and swimming performance
  • Teaching my classes.
  • Finding a good backup solution for our environment and circumstances.
  • Getting automated installs working for our labs.
  • Getting up a LDAP server for our school.
  • Building a secondary Moodle server so that we can have failover.


All those things were very important, and I wanted to make some progress on every single one. Those that were work network related are very difficult since we have no budget, our equipment is failing and cobbled together. If I was not teaching instead of doing mainly teaching and some sysadmining I would have more time for that. Some of these tasks I am able to combine others have to be done in a certain order. I will be very happy when we get RT set up so that we can keep track of requests and IT projects that we are trying to finish we are also going to move a FC12 server to the data centre probably next week.

After thinking about it I found a backup solution that will work for our low tech network where I expect every device to fail and to not get replacements. It is related to the design I have come up with that will make our services more reliable. The main problem is the time to set it up now since we have been working on the issues that need to be fixed first such as automating deployments and figuring out what systems we have and what their states are. As to the swimming running & stretching that has been difficult but I have been running fairly regularly. I even did it in Washington.

On all the projects the has been some progress though it has been very slow, earlier I had even more stuff I wanted to get done but I thought it would be smart to scale back and wait till the summer to do stuff on data bases.

The one thing that I have tried to do is be pessimistic about what I can achieve so that I do not over schedule my self. The one thing that I have been doing is gettin behind the mule every morning and ploughing so that I make a little progress every day. As the song says I have been getting behind the mule everyday and ploughing.