16 November 2014

Hafiz Adewuyi

You taught me all that I know

This afternoon, my acumen to vividly remember when and who taught me something handy, bubbled to the top of my mind. Often times, when applying such knowledge, I remember the teacher, and I often smile and pay a silent homage to whoever that is.

For selfish reasons, I would like to call this a gift or superpower of some kind. However, since I have not done any research on this phenomenon to any depth, I am unable to say how special I am to exhibit it. As a result, I don't know whether or not, it's right for me to call this a gift.

One times X equals X (Uncle Jide)

A picture of the exchange that imparted this knowledge upon me is burned into my memory; it's a mystery. My uncle, Jide, had come to visit, and we were having one of those "How smart is the kid" sessions that we adults like to hold with kids, for having nothing else to say to them. Only, I was the kid in this session. I had been able to recite the arithmetic multiplication table, from 2 * (1 - 12) to about 6 or 7 * (1 - 12). However, I was unfathomably unable to recite the 1 * table. Perhaps, my little mind skipped over it in class on considering it too easy, because there's no way the teacher would have skipped it. 

Anyway, during this session, uncle revealed the mystic powers of the number one to me by telling me: "1 * something equals something". From all evidence, it stuck.

Thank you Uncle Jide alias Baba Mayowa.

Solving Simultaneous Equations (Akas)

Akas was the mathematics prodigy of my high school class. I was a contender no doubt, often vying to knock him off his firmly secured throne and succeeding in doing so once, but still, he was by popular opinion, the undisputed king. 

On this particular Saturday morning, just before heading out (with the rest of my class) of the JSS3 boys dorm for God-knows-what now, I had a brief pen and paper session with Akas. He helped me understand in such an intuitive way, the concept of solving simultaneous equations. That morning, he showed me the two ways: by elimination and by substitution. Like a boss :-)

It's funny I can't remember how the session was initiated though. Not likely I went out of my way to ask him to explain. Most likely, it was a spur of the moment thing - we did it held the session on a locker. 

Software Debugging (Emeka)

I remember how errors were a nightmare for me at the earliest parts of my career as a glorified clerk a.k.a computer programmer :D. Each time I encountered any slightly difficult to resolve bug, I'd quickly bubble it up to my supervisor, Emeka, who would have to pull out of his own engrossing work to see to my flimsy error. Each time, it would take a few minutes before we saw what I was doing wrong. I'd smile, reluctantly say thank you, and roll back to my desk.

Over time though, perhaps, realising his help was doing me more harm than good, he started to turn my assistance requests down each time with a: "go and debug it". I learned quickly, and after the first few times of him doing this, I learned to always exhaust my auto-debugging capabilities, before going out of my way to seek help. 

In summary, through his wise supervision, Emeka has helped me become a better programmer than I would have been, by forcing me to hone my debugging skills, to the point that the debugging process has become an exciting one for me.

Difference between Value types and Reference types - Programming (Emeka)

Emeka had this admirable habit that I keep in mind and try as much as possible to emulate 7. He used to arrive at the office, at least, thirty minutes before work resumption. However, he resolved never to actively begin work on work responsibilities before 8a.m. (official resumption time). This time, he would take to do some personal cool stuff, one of which I recall to be checking sports blogs on Yahoo :-). 

He often devoted some of this 'me' time to supervising me too. Normally, he'd advise me the day before to resume early, so we can have a discussion on my project, before the busy day kicked in. It was at one of those times that he revealed to me in a practical way, a particularly important consequence of the difference between value types and reference types in C#. Very surprising thing indeed, to discover that changing the value of one variable, could cause a change in the value of another seemingly unlinked  one. Seemingly unlinked, until you understand how reference types are represented in memory (sincere apologies to non-programmers).

Scrabble (Ayoola)

Yes, in those early year one days where we were all clueless, AY introduced me to the world of playing with words on a board. Somehow, I managed to learn it enough to become considerably better at it than he is. AY must not set his eyes on this though, because I know he'll argue to death against this allegation of mine. 

Yeah, I said it. This shouldn't be in this list by definition. It sucks.

Windows Key + D (Ugochukwu)

So, this one was learned while showing Ugochukwu (at his desk), around some stuff on the application I manage at work. Incase you do not know, Windows Key + D will show your desktop. Now, you don't need to grope around your poor taskbar for the Show Desktop button anymore, s***eeeeeeeeeeeeeeeeeer.

Shortcut for sharing the windows screen between two windows (Victor)

Victor made my life a hundred times more awesome by letting me know about the Windows Key + direction shortcut. I won't like to elaborate here (this is not a tech blog tutorial), but next time you're on a windows PC, you should experience the sorcery you can perform on Windows windows by using either of the combos:
  • Windows Key + =>
  • Windows Key + <=
  • Windows Key + ^
  • Windows Key + down 
Basically, Windows Key plus any of the direction (up, down, left, right) keys. Your mind shall be blown at how stupid you've been all your life, manually resizing windows screens, so you can use two windows simultaneously.

Naming convention for booleans (Phalecs)

I must have gone to seek his assistance with some programming challenge when this gem was imparted upon me. Yes, I went through some general programming conventions in my beginner days, but for some reason, I was too dumb to stumble upon the one on naming boolean variables.

Using functions in programming (Bolu)

I remember how it seemed such a useless concept when Bolu was trying to teach me to create and use functions. It was simply hard to see any reason as to why I should separate code into some arbitrary block, when I could simply write it in-line and move on with life. It's extremely hard to explain to a novice, who has not had to write more than 50 lines of code to see any reason for functional programming.  Now, I know my life would be all over the place, if I had not grasped that concept at the beginning of my venture into programming. 

Also, another notable thing about this knowledge is that understanding functions marked the beginning of an upward spiral in my love for programming. One obscure way to think about it is this: "Bolu has paid me all my salary to date". In all sincerity though, I often do wonder what I'd have been doing with my life, had I not found that  I enjoyed the travails of writing code. 

Troubleshooting client side web application errors using the Inspect Element feature of my browser (Aileme)

There's really not much to say about this. The topic is self descriptive, and my deadline for writing this is almost over anyway. Lem basically inadvertently (damn, is this like the word of the day today?) did a Javascript 101 for me. 

Viewing web request content using Inspect Element (Elendu). 

There was some issue which I was taking forever to resolve at work. Somehow, it got so bad that I had to go meet El for some guidance/assistance. Voila, he showed me the volume of voyeuristic power buried behind my browser's developer tools. I literally felt like a buffoon for not knowing this earlier. The wads of time wasted not knowing this earlier; I can't even start talking about it.

Learning this marked a major improvement in my debugging efficiency at work, since the application I support is interacted with via an HTTP POST. Most times, the issue I have to troubleshoot are HTTP integration errors, which involves seeing what clients are sending to the application.

Forcing your Android phone to browse fast (Baba Hisa)

This had been around the time when I and three other college classmates were absorbed into AppZone. The four of us had been sitting around the conference room table when one of us complained that his mobile internet was incredibly slow. While the rest of us just listened, helplessly, Baba Hisa took this chance to share the incredible secret that has turned around many a slow-internet day for me.

The secret: Android Menu > Settings > Wireless & Networks > More > Mobile networks > Network Mode > Select "WCDMA only" to force your phone to discover a faster 3G/HSDPA (H) network, if at all such is available within your coverage area.

From experience, much of the time when your mobile internet sucks, it's because the phone lazily selected a lousy 2G/Edge network over an available, but perhaps, weaker in strength but still much faster 3G/HSDPA network.

Thanks, Baba Hisa; your legacy lives on.


I know there's a lot more of these tidbits of knowledge that are buried deeper in my subconscious. I won't commit to updating this article when I remember them though. I'm too lazy for that.

I also want to say a special thanks to everyone mentioned on this list. You made a significant contribution to my life. So significant, it's worthy of mention by this ungrateful fuck. Thank you.

Subscribe to this Blog via Email :