Tuesday, July 19, 2011

A day babysitting

Governor B.R. Fashola declared the 11th of July as a public holiday in Lagos state to help Lagos residents recover from the flooding caused by the heavy rain on the 10th of July. I didn’t go to work that day, and neither did Leke go to crèche. Guess who ended up babysitting? Here are some memories from that day.

11072011006

PDP! In my house!

11072011007

11072011008

11072011009

11072011010

11072011011

11072011012

11072011013

Most politicians move to PDP in Nigeria. This brave young man is daring to leave PDP.

11072011014

Finally left the PDP for…abeg na! Which party uses a bucket?11072011015

Omo, this one na serious work o!

11072011016

11072011017

You just stand there dey snap photo? Will you come and help me move this bucket upstairs? Hurry before I drool all over you and slap you!

11072011018

The laziness wey hook this guy get can’t fit haff part 2. Abeg, make I tidy my own package, bo!

11072011019

“It’s not an easy road…”

11072011020

Em, you know, Jesus said, “Which of you wanting to build a tower will not first sit down and count the cost…”. Well, I am counting the cost here! Don’t rush me!

11072011021

I’m so good, I can do this with my head covered.

11072011022

11072011023

See? I told you I could do it! Yes I can!

11072011024

Help! I have been slipper (flip-flop)-napped!

11072011025

11072011026

Yup, I’m badass. Do NOT, EVER, ever, try me.

Friday, July 08, 2011

Why I’ve been a lousy Christian

It’s been too long since I last wrote. I really should have never taken a hiatus. Life, on the other hand, doesn’t always give advance notice of stuff that’s going to affect yours. Stuff’s been going on, and for that reason, my little piece of internet real estate has gone untended. That, and the fact that I threw a grand-scale pity party for myself. But as a quote I read today by Henry Van Dyke goes:

Use the talents you possess, for the woods would be very silent if no birds sang but the best.

For a little while now, I’ve been listening to Andrew Wommack and Keith Moore (I resumed listening because God used a friend to ask for Brother Keith’s messages), and their individual ministries have been a great blessing. I was talking with my girlfriend about some things they said in some of their messages a little while back, and it dawned on me that I hadn’t been that excited in a while about anything.

In particular, I was listening to Brother Andrew’s series titled Discover the Keys to Staying Full of God (free MP3 downloads here) yesterday, and he began talking about esteeming, or valuing God. I realized that despite all my posturing and talking, I didn’t really value God.

When you value a person, that person’s opinion matters. What they think, what they feel, their company and total person — all of that weighs a lot when things are thrown into a mix, for instance, when a decision has to be made. Now that I’m thinking about it, “weight” is an excellent word to describe how much value a person (or thing) has (to someone). As an example, once when my girlfriend and I had a disagreement, I really felt bad. She was ticked off at something insensitive I’d done, and it was looking to ruin my day. In other words, my girlfriend’s opinion of my actions weighed a great deal when added into the mix of the (decidedly unconscious) decision of what attitude to maintain (don’t look at me like that; it is/was a decision. You may like it or not, but that’s the way it is) on that particular day.

How I knew I didn’t value God when I analyzed my life? Glad you asked (I know you didn’t, but work with me here, ok?):

  • I didn’t want to spend time with Him (this is a relative thing: I did my church routine, regular as clockwork, always on time and all that, but He — God, the Person — took a back seat to church — the system). Basically, I didn’t value His Person.
  • I didn’t value His words. One of the things I do deliberately is tell my girlfriend I love her at least once every single day. Sometimes, I don’t feel like it. I’m learning to (I haven’t arrived, but I’ve left, to steal Brother Andrew’s words Winking smile) go over things we’ve talked about, read her text messages over again — giving her  (and specifically, her words) “mind time” (as Brother Keith calls it). I realized I didn’t consciously give God – or His words – mind time.
    Also, I valued other people’s words over His (this, again, is a matter or relativity: When words are frapped in your mind as though in a blender – food processor for readers with a US bent – whose words tend to color and flavour the resulting mix – this is also known as your decision – the most?): Here where I live, intellectual property piracy (and flagrant disregard of copyright law) is pretty much a normal thing. Ephesians 4:28 (King James 2000 version) says: Let him that stole steal no more: but rather let him labor, working with his hands the thing which is good, that he may have to give to him that needs.
    That verse has itched in my head for a while now. I’ve suppressed it several times, talking about the relatively high cost of legal copies of intellectual property (for software, monetary cost, for other kinds like books, music, movies, that, and sometimes simply the trouble of getting it at all; if you’ve ever tried buying stuff over the internet in Nigeria, you’ll understand my point – I once got a catalog via mail from a company that claimed they didn’t ship their free ebooks to Nigeria! Why ship when you can provide a download?), talking it over with people, trying to rationalize what God was saying away. And that’s just one example.
  • I didn’t value His actions. One of the most touching things my girlfriend did before we starting our relationship as it is (sorry, but I really dislike the word ‘dating’) was call me when I was suffering from a cold. It doesn’t seem important until you realize she was a student in another country at the time. I still treasure the thought. She said it was to hear what I sounded like with a cold, but (goofy smile moment coming right up) I know better. She cared about me, and it made me feel loved and very special.
    God’s given me so much, and I’m pretty much never grateful in return, relatively speaking. I’ve complained about my job, my boss, my family, my leaders, my friends, humanity in general – it’s a wonder He still loves me.

So, what’s happened since? I’m working on it. I haven’t arrived, but I can say I’ve left. I’m deliberately giving more weight to God (meaning right now I’ve to stop blogging and get to work – see Colossians 3:22-23). What about you? What will you do with God?

Friday, May 27, 2011

Quality time with Mr. Laykey

Change, they say, is the only constant thing in life. I’ve recently found out that Mr. Baby grew on me (apparently while I wasn’t looking), so he’s now a big guy. As such, I have to “promote” him from Mr. Baby to Mr. Laykey (plus, he’s the house chairman. And he can slap me if he wants to, so I’d better behave.)

Anyhow, here are some of the highlights from this week:

23052011055

Do NOT try me. As you might have noticed, I’ve been weight training. I will kick your butt from here to the hereafter if you try me.23052011056

 

2305201105723052011059

26052011060

I’m just hanging with this dude. Like he’s my charity case for the week. Now get that camera off my face. I really don’t want to be seen in public with this dude. I mean, I’m way too cool to really be hanging with him!

26052011061

26052011062

Tuesday, May 03, 2011

Economics in simple terms

just got this on Twitter from Gaminegirlie, and it was worth a couple of laughs, so i thought to share.

Economics in simple terms

You see a girl at a party:

  1. You say, “I am very rich, marry me” — that’s direct marketing.
  2. One of your friends pointing at you says, “He is very rich, marry him” — that’s advertising.
  3. She walks up to you and says, “You are very rich, can you marry me?” — that’s brand recognition.
  4. You say, “I am very rich, marry me” and she gives you a nice hard slap — that’s customer feedback.
  5. You say to her, “Marry me” and she introduces her husband — that’s demand and supply gap.
  6. Before you say anything your wife arrives — that’s restriction on entry of new firm.

Very simple terms, no?

Monday, April 18, 2011

A not-so-quiet afternoon with Mr Baby

After going to my polling unit to vote on Saturday, I got saddled with Mr Baby, who, in typical fashion, was having trouble being convinced by his body that he was overdue for sleep. As such, we had some fun together (or so I’d like to think). Anyhow, please enjoy!

16042011009

Mr Baby (re-)discovers my mouse. I discover my afternoon has been disturbed.

16042011010

Dude, are you sure you’re interested in Java Enterprise Edition? Why don’t we do something fun, like splash water on a working voltage regulator (I kid you not)?

16042011012

Yup. Java EE. Contexts & Dependency Injection.

16042011013

Now look what you done! You done broke it! This mouse ain’t mousing!

16042011014

Now, I have to fix it! What have you to say for yourself?

16042011015

Fixing in progress. Do NOT disturb. Unless you want me to bust out my kung-fu.

16042011016

Are you sure you didn’t use the cable for something else? It still isn’t mousing.

16042011017

16042011018

When all else fails, I have to use that method. And don’t look at me like that. You broke it,  not I.

16042011019

Let’s see what this Java EE thing is all about, anyway. No, I don’t need your input. I know exactly what I’m doing.

16042011020

Why don’t you clean your laptop? Now I have to spit-shine it (yes, that’s actual drool on the touchpad).

16042011021

Java EE is boring! So let’s go do something fun, like wrestle alligators.

16042011022

I bet you’re jealous that I can wash my car right in the house and you can’t (this was right after the water-splashing incident. There was a bowl full of water on that stool. Thank God for mercy).

Saturday, January 29, 2011

The Cycle of Achievement

Let’s step right in. Here’s the achiever:

29012011006

Here’s the prize (shown contextually):

29012011015

The achiever strategizes, then moves heaven and earth (or in this particular case, a rocker) to get the prize:

29012011007

29012011008

The achiever, after braving terrific odds, gets the prize:

29012011011

And enjoys the sweet, sweet taste of success (yes, success does have a metallic taste. Everybody knows that):

29012011009

29012011010

29012011014

Depending on your viewpoint, the cheese is moved, or the prize is taken from the achiever:

29012011013

And the achiever moves on to The Next Big Thing™:

29012011016

And that concludes our study of The Cycle of Achievement. Many thanks to our achiever for sparing time from his busy schedule of achieving to contribute his quota to the development of the world.

Until next time.

Tuesday, January 18, 2011

Penny wise, pound foolish (and other, possibly related, matters)

Social Innovation Camp Nigeria ended Saturday night, and with it, two days of near hell on earth. More on SICamp Nigeria later, though.

At work a little while back, we had a hiccup with our messaging server. In the attempt to resolve the issues, we uninstalled the server application and reinstalled it a couple of times (at the end of the day, the actual problem was unrelated).

This particular product comes with a web-based user portal. Uninstalling the application also wiped out the web pages. Normally, it might not have been a major issue, but the problem is that we’d made some expensive customizations to the portal (expensive because the portal runs on ASP — no, not ASP.NET, classic ASP, in VBScript, no less — and over 80 per cent of the markup of the pages is churned out using Request.Write statements. I can almost hear the screams), and in my haste to resolve the bigger problem (how to get messages moving again), I created a new problem, namely, resetting the web portal to (crappy) factory settings.

I’d tried several times to write a new web portal in .NET but always gave up before getting far (yes, story of my life). After the server application started working properly, my next task was to make the portal usable again (practically all our customers who use the web portal need at least one of our customizations, some JavaScript tweaks a colleague worked in, which got lost when the uninstall ran). Unfortunately, just when I wanted a quiet day to spend coding, we had visitors. And Mr Baby decided to be very active. So I didn’t get anything done when I had motivation, and by the time everyone left and I had no calls on my attention I was too tired to see straight.

Today, I decided (I can’t remember the exact motivation, though) to try to replace the functionality missing in the pages. Now, I haven’t done JavaScript in ages (over 4 years, I guess I really do dislike doing human interface development), so the development time was split between W3Schools, ##javascript on Freenode, Chrome’s developer tools and Eloquent JavaScript. I ran into some hiccups, but I got it done at last.

Now comes the irony

One of our clients complained that they couldn’t use the old system, so I cooked up a Python script to use the web service interface of the messaging server to send messages for them. After I completed the change, I emailed them to try the new modifications. The lady called later to complain, “it’s not responding”, and  with a plea to send the messages for her.

All that work for nothing. And then someone will ask me why I think women are unreasonable.

Friday, December 24, 2010

24-12-2010

Not much up. Recently, been trying to get back into 3D. As usual, fell into the temptation of “too much, too little”. Installed too many apps (have to get Softimage Mod Tool and Crosswalk off my box). Looked for too many tutorials, got interested in too many things (yep, struggling right now not to install LMMS), but did too little actual work.

Still it’s not like I’ve done nothing. Here’s a screenshot of the model I’m currently working on: Wings3D - fan

Here are some models awaiting texturing and rendering:Greenshot_2010-12-24_13-48-40

Greenshot_2010-12-24_13-51-26

And the last render I did (yes, I succumbed to the pressure of the season):ornaments

While authoring this post, I managed to complete and render a Rubik’s cube.rubiks-cube

Now I have to go. A troublesome person has shown up and interrupted my enjoyment of Blender 2.49 (no, I haven’t moved to 2.5 yet, but it’s on the list of things to do. I’m not going to throw out 2.49 until BMesh is completed, since the last time I tried to create a Rubik’s cube in 2.5, the render showed there were lots of faces with inward-pointing normals). Laterz

Edit

Back home now. Playing with Blender and Yafaray. Set up a scene for the Rubik’s cube with no materials in Yafaray, and this is my render:rubiks-cube

Almost 8 minutes for a 800x600 render. And I haven’t even started with LuxRender yet. The good thing is: I have a copy of SmallLuxGPU, and I’ve seen the difference in rendering power (I need a GPU farm now!) of a GPU as compared to a CPU.

Anyhow, here’s a render with materials set (Yafaray):rubiks-cube2

If you don’t look at it too hard, you might not notice the major flaws I did: noise visible in the primary shadow (eliminating that requires me to increase the number of samples, and with that the render time — sigh), and the black material just looks weird away from the top of the cube (my guess is it’s too glossy, but I’m going to leave it that way anyway Open-mouthed smile)

The Rubik’s cube .blend is here in case you want to play with it. Going to play, eat, take a shower, sleep.

Thursday, December 23, 2010

23-12-2010

Guess I’m back to dating my posts. Today’s post starts on a sad note. Yesterday I read about the passing on of Mr Sam Mbende, a former employee of Ecobank Transanational Inc, in The Punch newspaper. I met him in a meeting, and he came across a a very reasonable person. My boss has few good words for Nigerians in business as a generality; he contrasted Mr Mbende with the run-of-the-mill Nigerian in the corporate world. We still quote something he mentioned till today in the office: “the dynamics of the enterprise”.

I’m made to understand that his death might have been avoided if he got access to medical assistance on time. Which brings me to ask one question among others: with Lagos (in particular) as crowded and as traffic-jam-prone as it is, how can ambulances get to — or from — accident scenes in time to save victims? Every time I’m in major traffic, I wonder, “what if there’s an ambulance trying to save someone stuck in this?”. Unfortunately, Nigerians have largely decided to ignore sirens, mostly because of abuse by uniformed personnel (the police and military in particular), and ambulance drivers generally have no weapons to threaten anyone. Add the fact that I doubt that any emergency service has any choppers or VTOL aircraft, and you might see my point here. Maybe we should reintroduce the old law allowing only vehicles with license plates to move on the roads on particular days, but I’m sure people will find a way to circumvent that. At any rate, it’s food for thought (someone who can pass this on to the Lagos State Governor, please do. I will assume he’s a person shopping for ways to make life better for the people).

On a lighter note, here’s a conversation I had just this morning (reproduced as accurately as I can remember it):

She: Where’s my Christmas present?

Me: What Christmas present?

She: It’s Christmas. where’s my Christmas present?

Me: You should ask someone who believes in Christmas.

She: So you’re an Eckist or a Jehovah’s Witness?

Me: Any one.

She: Blood of Jesus! No wonder we never connected!

Me: At least today you’re honest.

And there you have it. She apparently forgot that I’d lent her a book by the late Kenneth E. Hagin, Exceedingly Growing Faith, which I would most likely not have done if I were in fact either an Eckist or a Jehovah’s Witness.

I’d like to ask: who passed the memo that I was to be hounded by degrees into a romantic relationship? If the comments I’m hearing these days are anything to go by, there are quite a number of people praying for me…maybe they should stop, as it doesn’t seem to have done much good. And no, trying to hook me up with women isn’t the answer, especially asking me how I like random women passing by.

Later.

Tuesday, December 14, 2010

Awesome!

Warning: this post contains technical information and is unsuitable for technologically-challenged people (the kind that can't find their bold and underline) :D

no, the title isn't referring to me. it's what happened yesterday/today. we're trying to roll out a product at the office, and it involves some cryptography using 3DES. We ran up against a problem where we had a 128-bit key, but the default cryptography provider supplied with Java would not accept 128-bit keys for 3DES operations. We ended up having to write a separate application in .NET to handle the operations, since .NET accepts such keys and does the needful, and moved on with development. Over the weekend, another company we intend to work with sent over a key — you guessed right — it was a 128-bit key. To be honest, the entire thing spoilt my entire day (for reasons I do not care at this point to divulge). I was a complete grouch by the end of the day, especially since I felt that none of the advice we were able to source could solve the problem. Outsourcing the concern to a .NET application again would work, but the cryptographic operation we needed to do was in the core of the application, not on the fringe, as the previous case. I was dead set (though I didn't tell anyone) against migrating that functionality to another program again.

the day finally came to an end and I moved on to a program at church. We've been having a 21-day fasting-and-prayer program, and I'd felt much like a spectator most of all the other days. Last night though, Pastor Nuel announced God wanted to solve problems, real issues. I decided my problem was real enough, and just followed the instructions he gave, including giving sacrificially in the offering, which was taken for the poor. I didn't have much on me, and I decided to give everything I had on me into that offering. I chose to believe that God would take my problem as his own, and I'd not have to bother about it. I ended up walking home from church last night (sorry, Mr A., Mr B.!), and this morning, to the bus stop where I'd catch the bus to the island.

I posted the problem on StackOverflow this morning, but nothing that really helped worked. All the information I'd obtained was useless. I decided I wasn't doing to despair like yesterday, even though the temptation was really, really strong. I've no idea when exactly, but I just decided to use the Bouncy Castle JCE provider instead of the default Sun provider, and it worked! I'm really, really, happy I decided to believe what Pastor Nuel said yesterday!

And now, back to work!

Monday, November 22, 2010

Is JobMark Nigeria a well-planned scam?

Early this morning, I got an unsolicited text message from JOBMARKNG telling me the sender knew I was fresh out of the National Youth Service Corps scheme, and that they had a job waiting for me. I didn’t really pay much attention to it at the time — I merely made a mental note to check it out since it might prove to be useful to someone else who's looking for employment.

Later this morning, I got another text message from someone who claimed we’d served together in Borno state in northern Nigeria, that he couldn’t call for some reason, and asking me to call his in-law for a job. Unfortunately, while I did server in northern Nigeria, it was not in Borno state. I regret deleting the text message as quickly as I did now. At any rate, it made me take a better look at JobMark Nigeria’s site as advertised in the spam text message I got.

The organization’s site is at http://www.jobmarkng.com. Personally, I don’t really like the design, but that’s minor. What caught my attention in the (decidedly long-winded) text of the home page was this: “10% of your salary must come back to us”. Job Mark - Opera_2010-11-22_11-36-45That left me thinking it was not such an up-front site after all. Running down the page gave me another gem:Job Mark - Opera_2010-11-22_11-39-56

I also found it interesting that the site mentions the Nigerian Bureau of Labour Statistics. Searching Google turns up only the National Bureau of Statistics (in Nigeria), with a division in Employment and Labour. Methinks the NBLS does not exist. Let’s peg this to a typo, shall we?Job Mark - Opera_2010-11-22_11-49-13

Unfortunately, on visiting the National Bureau of Statistics website, I found it impossible to get any of the (admittedly very few) reports on employment and labour beyond the end of 2009. Where does JobMark Nigeria get its figures (September 2010) from then? Insider information?

Moving on, here’s something else I noticed: Job Mark - Opera_2010-11-22_12-00-08

None of the advertised job openings link to anything. You can look at the site yourself and come to your conclusion yourself. Then maybe you can tell me if it’s a scam, especially as I think people who ask you to develop communication skills should be able to properly capitalize nouns:Job Mark - Opera_2010-11-22_12-05-12

Laters.

Edit

A friend who commented on this post on Facebook (and served in the same local government as I did) said he got the same text about the same time I got mine. I can only conclude someone related to NYSC (not necessarily staff, it might be a former Corps member) in some way is giving out (ex-)Corps members contact information. That gives me the heebie-jeebies — when registering, we gave numbers, contact information and whatnot — what if that information was leaked to less-than-savoury characters? I like my privacy, thank you veddy much.

Update: The same friend also sent me a message about this. The relevant parts I’ll take the liberty to reproduce below:

Just be careful. 2wks ago, i got a message from someone who claims to be <removed> from Zamfara (our batch). He told me he was stranded and i should send credit to him cos the bus he boarded had a fault in the bush coming from ZM. i think i know where that idiot got my details from.our year album/book.its only u guys from ZM that call me <removed>.

Virtually everyone is in need of employment. Jobmark is simply nothing but a scam. You do not get jobs that way. Their aim is to make job seekers lazy individuals. They promise to re-edit your CV and other stuffs that do not make any sense to me.
I just discovered something. i.e not giving my actual details in any publication such as year book etc. (emphasis mine, at least not just in any old way). Although that doesn't give an assurance not receiving such messages/mails.

I can’t fit shout. Maybe I’m paranoid, but here’s a friend who isn’t a geek realizing what many people don’t realize: There’s such a thing as too much information being given out that could put you at risk (yes, I’m looking at you heavy Facebook users. For crying out loud, robbers have actually found out when to rob houses simply by checking people’s profiles and status messages on Facebook — any search engine will give you more links).

Tuesday, November 16, 2010

A funk

Hello again. Haven’t updated this rag of mine in a while. I suppose I got too lazy to update it. I’ve been forgetting to do some important things, so if I was supposed to call or something, don’t get mad, ok? I’ve major things on my mind, & the decided lack of rest isn’t getting me anywhere, especially since I’ve amped up on sleep.

I was going to rant about just how much my life sucks, but then I realized it might be worse (remembering that my neighbours had a fire — the fact that 60000 young people in Lagos alone sat for an employment test when an anonymous source says the agency holding the test will only hire 2000 persons in each state — a claim that my boss says is improbable since the agency only has about 5000 staff nationwide now — according to him, anyway — also helped). Unfortunately, it doesn’t remove the feeling. I went out today with Mr Baby this evening, saw something, and the old feelings rushed to the surface. The feeling of not being where I think I should be was really strong. Pushed it down like I do all other such feelings, though, and went on into the store I was visiting.

For crying out loud, I can’t even write a blog post properly. Geh. Whatever. at least Mr Baby’s getting big.

In other news that probably doesn’t really concern or affect anyone, I like Zoundry Raven’s interface, but after trying it out for real, I’m sticking with Windows Live Writer.

On to different things. I’ve been playing around with ISO8583 and jPOS for some stuff at work, and a problem that has raised its head consistently is how to communicate with a HSM. So far, lacking a true-blue HSM to work with, I’ve been trying to get my code working with this simulator with not a lot of success. Even after wandering the web and the jPOS mailing list (as well as Andy Orrock’s blog), it seemed I was doomed to fail. Yesterday, I decided to stop looking for ready-made answers and devote time to the problem. After looking at the jPOS API documentation on FSDMsg, I was able to come up with some code that — while it doesn't exactly mirror Andy Orrock's code — works. Without further ado, it's reproduced for your viewing pleasure below (syntax highlighting via Highlight, as I've not yet got around to finding a code display widget that works on Blogger).

Test.java:

package testbed;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.jdom.JDOMException;
import org.jpos.iso.channel.FSDChannel;
import org.jpos.iso.packager.DummyPackager;
import org.jpos.iso.FSDISOMsg;
import org.jpos.iso.ISOException;
import org.jpos.util.FSDMsg;
import org.jpos.util.Logger;
import org.jpos.util.SimpleLogListener;

public class TestBed {
  

  public static void main(String[] args) throws FileNotFoundException, IOException{
    FSDChannel channel = new FSDChannel();
    channel.setHost("127.0.0.1");
    channel.setPort(9998);
    channel.setPackager(new DummyPackager());

    Logger logger = new Logger();
    logger.addListener(new SimpleLogListener(System.out));

    channel.setLogger(logger, "regular");

    FSDMsg message = new FSDMsg("file:hsm-");
    message.set("command", "NC");

    FSDISOMsg wrapper = new FSDISOMsg(message);
    wrapper.setHeader(new byte[] {0, 0, 0, 0});

    try {
        channel.connect();
        channel.send(wrapper);
        byte [] buffer = new byte[1024];
        channel.getBytes(buffer);

        FSDMsg response = new FSDMsg("file:hsm-resp-", "ND");

        response.unpack(buffer);

        System.out.println("Firmware number is: " + response.get("firmware-number"));
    }
    catch (ISOException ex) {
        ex.printStackTrace();
        //return;
    }
    catch (IOException ex) {
        ex.printStackTrace();
        //return;
    }
    catch (JDOMException ex) {
        ex.printStackTrace();
    }
  }
}

hsm-base.xml:


<?xml version="1.0" encoding="UTF-8"?>
 <schema> 
 <field id="command" type="A" length="2" key="true" /> 
</schema>

hsm-NC.xml:


<?xml version="1.0" encoding="UTF-8"?> 
<schema id='NC'> 
</schema>

hsm-resp-ND.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<schema id='ND'> 
   <field id="lmk-check-value" type="A" length="16" /> 
   <field id="firmware-number" type="A" length="9" /> 
</schema>

Laters.

Update:

The code above seems to work fine…till you really look at what it does. For some reason, jPOS isn’t picking up hsm-resp-base.xml at all. Here's an updated hsm-resp-ND.xml

<?xml version="1.0" encoding="UTF-8"?>
<schema id='ND'>
    <!--this is the 2-byte message length header-->
    <field id="messagelength" type="A" length="2" />
    <!--this is the 4-byte header you need to prepend the actual data with,
            byte[] header = new byte [] { 0, 0, 0, 0 }; // or whatever header you decide, useful for tagging requests
            //...
            wrapper.setHeader(header);
    -->
    <field id="header" type="A" length="4" />
    <!--this is the response id. in this case, it'll always be ND-->
    <field id="command" type="A" length="2" />
    <!--this is the response code-->
    <field id="response" type="N" length="2" />
    <!--this is the LMK check value-->
    <field id="lmk-check-value" type="A" length="16" />
    <!--this is the firmware number-->
    <field id="firmware-number" type="A" length="9" />
</schema>