Monday, November 17, 2008

my weekend was an ass...wait, that's not right!

phew! what a weekend! Dad was out of town, so it was just my brother& i at home till last night. man, this was the illest weekend so far - as regards tiredness. i can't believe Friday & Saturday i was retiring before 10pm. dude, i really need some downtime - but i'm afraid that may not be till next month.

spent some time designing a website. unfortunately, it seems sticky-footer layouts are mutually exclusive with centered layouts. i can either allow the content pane be centered in browser window, or i can make the footer stick to the bottom of the browser window. so far, i haven't managed to let it do both.

i usually dislike the mass mail i sometimes get, but this one's got something in it so i'll reprduce it here:

One day a farmer's donkey fell down into a well. The animal cried piteously for hours as the farmer tried to figure out what to do. Finally, he decided the animal was old, and the well needed to be covered up anyway; it just wasn't worth it to retrieve the donkey. He invited all his neighbors to come over and help him. They all grabbed a shovel and began to shovel dirt into the well. At first, the donkey realized what was happening and cried horribly. Then, to everyone's amazement he quieted down. A few shovel loads later, the farmer finally looked down the well. He was astonished at what he saw. With each shovel of dirt that hit his back, the donkey was doing something amazing. He would shake it off and take a step up. As the farmer's neighbors continued to shovel dirt on top of the animal, he would shake it off and take a step up. Pretty soon, everyone was amazed as the donkey stepped up over the edge of the well and happily trotted off!

Moral

Life is going to shovel dirt on you, all kinds of dirt.The trick to getting out of the well is to shake it off and take a step up. Each of our troubles is a stepping stone. We can get out of the deepest wells just by not stopping, never giving up! Shake it off and take a step up.

see y'all some other time

Blogged with the Flock Browser

Thursday, November 13, 2008

Rhymin' on Facebook chat

was just wording with Legzitano on Facebook chat, and for some crazy reason, the conversation went like this:

Legzie: tryna stash cash
me: in a flash, smoking brown hash, flipping the ash
Legzie: brown hash is trash
cos you may crash
me: word bro...just tryna make that rhyme
Legzie: lol
me: maybe we should dash? grab some mash? what a bash!
Legzie: good, bro!
you sing like Nash
me: omo, battery don dey run down
Legzie: no vex!
ryhming no easy

i'm almost tempted to agree with the guy who said, "Of all the things i lost, it's my mind i miss the most". almost. but not quite.

Saturday, November 08, 2008

Animal Farm

yesterday i found out (courtesy of friends on Facebook) about an event that has quite a number of people abuzz: the assault of some civilians on Monday in Victoria Island by naval servicemen, including someone i knew a couple of years ago. in the aftermath, she - and some other person - is suing the Nigerian Navy to the tune of N100m. personally, i think this is both bad & good:

  • why would not moving quickly out of the way of a military higher-up be an 'offence'? i'm a citizen - he's a citizen. the fact that we both serve our country in different ways should make no difference. if anything, the fact that i pay taxes which help to fund the machinery that pays him should be accounted for. unfortunately, like Animal Farm, it's become a case of all being equal, but some more equal than others - whatever in the world that means.
  • why would an elderly man sit & watch his aides brutalize people with no show of what Shakespeare called 'the milk of human kindness'? i side with Elihu on this one (Job 32:7, the Bible) - whatever the offence, the level of beating & the treatment given her was overkill.
  • if the higher-up is in such a hurry, he should at least have found out that there's always traffic in V/I around that time, and scheduled his coming for some other time it was lighter
  • i believe his oath on taking a uniform had some variation of 'to protect and to serve'. how are the nation's best interests protected by forcing people to disobey traffic laws just because you have an inflated opinion of your own worth? 'now all i need to push people around is a uniform'. isn't that self-service at the cost of the nation's morals. it's no wonder so many people think a uniform is a shortcut to a plush life. is he - or any other egotistical military personnel - any different from people in public office who rob the nation blind? i definitely am not going to be saying to my kids: 'Rear-Admiral Arogundade? now that's someone worthy of emulation'. in my opinion, he's no different from any two-bit thug.
  • it's good that she sought out advice (bad or good) & decided to take civil action. it means that Nigerians are learning that they have rights that can be protected. i'm hoping that there will be some win for moderation and common sense...but the inmates are running the asylum.

i could go on, but let it suffice to say that things don't look too bright. i hope the support of Uzoma and the rest isn't just for show, that we are willing to take bullets for what we believe is right, instead of merely talking about it and 'thanking God' secretly it didn't happen to us. Nigeria is ripe for change, but that change will begin with individual action. when we are true to ourselves first, then to each other, we can change things. until then...we can only hope that the pigs don't make us worse off than the humans, to paraphrase Blair.

Sunday, November 02, 2008

Firefox 3 spellchecker vs me

better believe it. i win baby!

Waiting for God

ever heard of Waiting for Godot? you can find out more by clicking the previous link. sometimes, waiting for God can seem like waiting for Godot...it seems He never makes it. i realized why we get tired of waiting for God to show up with something promised: every time we're waiting for God, we're presented with the option of not waiting for Him.

today, some things weren't okay at home, and since i returned from church first, i could either go fix them or wait for my dad and brother to return to get them fixed. one of them was lunch. for some unknown sentimental reason, i was loath to get lunch (i wasn't in a position to cook it) without them being around. so i tried calling. all their phones were unreachable. i was hungry. really. so i waited. then i reached my dad. he said they were on their way. i waited some more. fell asleep. woke up. by this time, as Rudyard Kipling would say, my patience had already gone where dead crabs go. so i fixed myself something to eat. while eating it, i realized that this was the same choice we always have to make when waiting for God.

i can no longer stand with my arms akimbo and accuse Abraham of impatience, for i, too, have been impatient. i looked at the clock ticking, and said to myself, "God(ot) will never show up. looks like it's time to take care of business myself". and like Abraham, only the future can tell what i messed up by "taking care of business". i may not have been promised a son the way he was, but God has promised things in His word that i need/want, and sometimes i took the alternative and stopped trusting God. that's right. that's what happens when you choose the alternative. you pretty much say, "God, time's in your hand and all, but You live outside time. i live in time. and the clock's ticking. i need this thing now.". but what you get from your own efforts can never be compared to what God chooses for you. it may be a long wait, but it's worth it.

Looking for a .NET SMPP implementation

i work for a company that's registered as a WASP (or VASP, not really sure which is the official one now) with Glo, MTN and Zain, and we have a messaging gateway connected to these operators. we have clients we resell SMS credits to, and till rather recently we used the web service on our gateway to link our clients to the gateway.

however, due to certain things, my employer recently added the ability to use SMPP binds to our gateway. i cannot be certain until i check using a tool like Wireshark (geek call-out: any other tools that might make the job easier will be appreciated!), but i think that SMPP will consume less bandwidth than using the web service.

anyway, my boss got me and the other developer on our toes with different APIs that allow us build applications that use the gateway. since we already have working knowledge of how to build applications that use the web service, we were stuck with a COM and a Java component which use a custom protocol to talk to the gateway over TCP/IP, the SDK supplied my the gateway vendor, and different components for using SMPP (if you read my Facebook status message about fiddling with Java, i was trying to learn about a certain Java SMPP API).

since i program mostly in C#, i started looking for some component(s) to allow me use SMPP from my applications. i turned up quite a few:

  • A library written in C++ with a COM component that uses it: here
  • Easy SMPP
  • RoaminSMPP
  • The Devshock .NET SMPP component (For some time the site has been under reconstruction and so the files are no longer available from their site.)
  • InetLabs's ALT.SMS.SMPPClient class library
  • /n software's IP*Works: here

since what i was doing was trying out stuff, buying a component was out of the question. i'm also kinda biased toward open source, so that kinda kicked out IP*Works (don't get me wrong: IP*Works is probably very good - but i just didn't want it. i might try it out some other time). i got the others and started trying each one out, using a local SMPPSim server (SMPPSim is a Java program that emulates an SMPP server. great for trying out SMS appliactions)

Easy SMPP came with a demo application (there's also an SMPP server on SourceForge that uses it), but i couldn't connect to my local SMPPSim server using it (oddly enough, i could connect to the Easy SMPP gateway with it), so that was a no-go. i'll try it again some other time.

The Devshock component came with zero documentation (bad), no sources (i can live with that), and demo applications (client and server) written in Visual Basic.NET (i dislike VB, something that carried over to VB.NET. also, translating a program from VB.NET to C# without an automated tool is not particularly easy, even if you can do it). somehow, i got a demo application working with it Friday, even tested it on our live gateway.

i should have been satisfied, but the Devshock component has gone two years with no updates (which really shouldn't be a problem - the SMS specification is frozen and the SMS Forum shut down). so this weekend, i tried getting the RoaminSMPP component to work (incidentally, it was updated in October, but the author won't be working on it anymore) at home, and i sort of prefer the way it's structured than the Devshock component (it uses event handlers quite a bit instead of return codes and error messages). it does have its bad sides though. it comes with zero documentation and examples. i had to load up my trusty copy of .NET Reflector (one of the greatest .NET tools ever!) and the sources to find out how to use it (also did that with the Devshock binary, but the InetLab one was obfuscated - only one namespace of five was not).

i'm yet to test the InetLab binary - and yes i know: i probably am being an idiot, since i already have one that works (two, to be precise. why knock it?). still, if i'm giving the component to someone else to use, i may need to recommend the one that's simplest to use. anyway, you already got here. go read something else for now. i've nothing more to say here (far too many acronyms, if you ask me) :D. have fun!