Thursday, September 26, 2013

In The Lab...

I'm in my 20's and I'm living my life like an experiment.

Lately, I've been filling my head with the fundamentals of several concepts: Idealism, Socialism, Capitalism, and all the "-ism's", and it feels quite sad to realize that I haven't yet consciously aligned myself to any, or a combination of any. I think that, somehow, if we are going to make a difference in this life, we need to know and understand the path which we have chosen to take -- or which we have threaded so far.

How do people live according to an ideal? Maybe they stumble into it mistakenly and it worked for them; maybe they studied all and applied the best one (or best combination) they could relate with; or maybe still, religious inclination, experiences, etc chose one for most people. But many people I've read of played around with this sort of things in their late teens and early twenties. I'm halfway into my twenties and I'm still messing around with it. I feel late to the game, yet I feel it's better than sleep-walking through the rest of my life. So I'm experimenting. My 20's is an experiment, a search for what ideal the rest of my life would be lived by.

So pardon me if tomorrow I act differently than today, I'm an experiment in the lab of life, but some things are established: I'm a software geek, an entrepreneur, a reader and a thinker.

P.S.
  1. Even though in 2009, I blogged about not taking-up paid employment, I eventually had to do so. It was imperative because I have to run my life. So last week, I accepted a job offer with InterSwitch and so far, aside from the fact that I now have to manage a lot of Java EE (which I haven't done for a while), I think it's quite nice. The people there are nice and happy, which is good. I'm still trying to strike-out a personal balance though.
  2. I met two really nice guys last weekend, one of them an up-and-coming artiste, who's getting a lot of airplay for two singles which he just released. We had a long chat on Tuesday evening -- at the beautiful poolside of Eko Hotel, with toothpick-figured models rehearsing some moves around us -- and I feel like they are going to influence my life in some really interesting ways, so I look forward to it.
  3. I cut my hair, so no dreadlocks for me again for some time... :(
P.P.S.
Happy birthday Yosola!

Saturday, September 7, 2013

Iska: Light-weight session handler for .NET

I read a very interesting novel this week. The title is Iska and it was written by late Cyprian Ekwensi, published in 1981. It tells the story of Filia, a simple young lady who after losing her husband, came down to Lagos and got caught-up in the enigma surrounding the State of Excellence. The story ends tragically when Filia loses her life as a result of activities of ritualists. Though it was sudden twist in the story, it wasn't unexpected because her mum had suspected her to be an Ogbanje. More details here: http://www.goodreads.com/book/show/3778168-iska

I like the simplicity of the writing style and, being a Lagosian, the story was something I could relate to. So I stole the name of the book, Iska, for my Open-source .NET session management library.

Light-weight session handler for .NET
When I wrote this post: http://ezeokoyecelestine.blogspot.com/2013/02/stateless-services.html, I talked about my (unnecessary) over-emphasis on the statelessness of web services, and about stopping it by putting an extra authentication and authorization step with web service invocation. While trying to do this, I tried ASP.NET sessions (I built my web service on .NET, hosted on Azure) and discovered that it depended strongly on cookies deposited on users' browsers. This meant that if my web service was going to be invoked by a non-browser (say a mobile app), the session wouldn't be maintained.

To solve this problem, I created a very simple session manager, easy to initialize and use. Since first writing it, I've used it on a number projects. I use it for the simple purposes of authentication and authorisation -- which are the only states I maintain on the RAM. I thought it might be useful for someone else, so I cleaned it up and put it on my BitBucket.

Benefits
  1. Easy to initialize and use.
  2. Automatically cleans-up your sessions periodically, at a duration you specify.
  3. Persist your session data periodically to any storage of your choice: file system, Windows Azure blob, database, etc. This prevents the loss of session on hardware/RAM crash. If you don't want to persist your sessions, it still works just fine.
The library is available here: https://bitbucket.org/celestocalculus/iska. Download it, add the DLL to your project and use it.

Possible improvements
If you want to go through the codes and work on it, please feel free to branch it and do whatever you like with it. I've identified some ways which it can be improved.
  1. The multithreading still seem quite tacky and could be improved on.
  2. It could do better with some generic type system introduced into the codes.
Please download, use and improve/extend it. Again, it can be found here: https://bitbucket.org/celestocalculus/iska. For how to use it, get codes for the sample console application I created: https://bitbucket.org/celestocalculus/tryisca.

UPDATE
It has been moved to my GitHub. The repository URL is https://github.com/celestocalculus/isca

Wednesday, July 24, 2013

My Tony Elumelu Foundation’s Grant story + An appeal for true capitalism.

On Friday Tony Elumelu, the renowned business mogul would be meeting with the tech/start-up community at the Co-Creation Hub to listen (and maybe award grants) to three new start-ups. His foundation, Tony Elumelu Foundation (TEF) have been in partnership with Co-Creation hub since 2012 and are looking to award $5,000 pre-seed funding to 20 technology ideas/ventures, and give them a head-start in their endeavour.  Apparently, they have already awarded grants to 7 ventures, of which my start-up, Tiketmobile is a beneficiary. For this, I am very grateful. Below is my TEF grant story.

Around July last year, I was at the NYSC camp at Wannune, Benue State. However, I had kick-started the process of building a company that lets people easily find and buy interstate bus tickets from the comfort of their mobile phone. So in camp, I was glued to my smart-phone most of the time, running my business and interacting with my co-founder. In the last week of the camp, he informed me of the good news that CcHub had selected us to pitch to TEF, with hopes that we would get a grant of $5,000. The good thing for me was that the pitch would hold 3 days after the camp closes, so I was excited. After camp, I went to see my place of primary assignment, and the following day, I took the first Benue Link bus back to Lagos. The day after, I was at the Heirs Holdings building Ikoyi, pitching for the grant. Everyone who listened to us loved our proposition, not just because of the way Constance delivered his awesome pitch, but also because of the idea in itself. It was original and hadn’t been implemented by anyone, in this clime before. Around September, we got the grant amidst excitements and high hopes.

The grant helped us in the following ways:
  • We ran a pilot program around our initial original offering of native Java ME app, which we ditched in favour of focusing on websites first, based on our discoveries. That was October to November 2012.
  • Between November and December 2012, we rebuilt and by January 2013 we released our official beta version to the public, amid press mentions in a lot of online and traditional media.
  • We ran a couple of campaigns, including conveying Batch-A NYSC campers directly to their camp ground, and grew a sizable number of customer-base.
  • We got the opportunity to get into partnership with some known online brands like Eskimi, and that further enhanced our brand’s credibility.
  • We also inspired two notable Tiketmobile clones, built by renowned internet entrepreneurs: Oya.com.ng by Chika Nwobi and Bus.com.ng by Jason Njoku. Both opened-up operations within the month of April 2013.
Then we ran out of money.

Right now, it appears the TEF grant has helped us get to the position where we used-up our personal savings, ran into personal debts and started running from pillar to post for funding for our enterprise. Hence the running of Tiketmobile in itself started stalling. Tiketmobile is not an NGO; if it were, we would have applied for more grants from other sources. I personally believe that it is unhealthy for profit-facing businesses to run on grants, it screws the mindset of the managers. Investments on the other hand, are opportunities for capitalists to be fully responsible for the effect/outcome of things they put their money into and cash-in on the results.

Many people probably already know that enterprises that succeed have a healthy cash flow in their early years, recording some losses, while building the customer-base which they would eventually cash-in on. This is evident in the history of traditional businesses and internet giants, like Google and Facebook. Also, history has shown us that most innovators aren’t the ones who finance their innovations to commercial profitability. Hence these initial costs are usually monies injected into the business by third-parties – by investors.

This is why I am calling on Mr Tony Elumelu sir to go all the way, and move a step further to actually investing in the businesses your grants have helped raise. As good as $5,000 grant is to a business in the beginning, it eventually runs-out and those businesses would need fresh injection of funds to get them to profitability, which are what capitalists are there for. I believe that the “Africapitalism” movement which you stand for is not just a buzzword, because I myself am a proponent of capitalism.

The success of technology start-up ventures, like Tiketmobile and a couple of others might be hugely dependent on the bold steps which people like you have taken in the past, and the ones which they would take in the future. If the latter is omitted, we would be stuck at the point where we have a lot of sensationally good start-ups, whose only existence would be a struggle of trying to find the best way to make headway.

I would close this note with a tweet from Tayo Oviosu, founder and CEO of Paga, which summarises my humble request.


Monday, March 25, 2013

Oya.com.ng: A HUGE validation!

Around some time last month, I came across oya.com.ng, a site that also sells interstate bus tickets for web users. Just what Tiketmobile does. I was curious and did a little digging and discovered that the domain was registered by serial internet entrepreneur/investor Chika Nwobi.

When I checked my twitter mentions today, @TIGWeekly mentioned me, informing me of the URL to potential a competition. Getting to the hub later, it was the talk of most people as they kept asking me if I had seen it.

Well, I have seen it and I know that they exist.

If I say I didn't expect a competition, I would be lying. To me it's not a question of IF, but a question of WHEN and it's a big validation of the thing that we are saw and are building. The fact that it's Chika Nwobi too, the serial internet investor who has Jobberman, Cheki.com.ng, MTech, etc in his portfolio means that we at Tiketmobile actually have an eagle eye; we saw and are doing a good stuff.

To oya.com.ng, I would say welcome. The sky is big enough for birds to fly without colliding... and if there is ever a need to collide, well...

Monday, February 4, 2013

Stateless Services?

When I had my first foray into Service Based Architecture (SOA) in 2008, I had to grapple with the idea that webservices should be stateless. They were meant to just accept your input, process them and give you a result. They shouldn't put anything in place to be able to tell who you are if ever you invoke any other service. They should have transient memory.

I took these things in literally – in every way.

This meant that some of the other little activities, which had to do with basically having little knowledge of the client, were moved away from the service layer. Little activities like authorizations which follow basic authentication. The question: “should I be able to perform this task” should be answered on a middle layer, before the service is called.

Even where I have access to the session state, I resist the urge to use it while implementing my SOA. Preferring instead to put documents out on how services should be used, which service should be invoked, when and how? In what order should they be stringed to accomplish required tasks? You get the drift?

But then, things could go wrong – errors could occur, documents could be misinterpreted… or leaked, people could become adventurous… or malicious. You know? They haven’t happened yet, but they could.

So I’m revising and adding basic authorization (err… session management?) to the Tiketmobile services which succeed basic authentication. Data is king and services are the doorway to the king, so they shouldn't be lax. The king could get compromised.

-------------------

Tiketmobile (www.tiketmobile.com) lets users find, buy and use bus tickets easily and conveniently from their mobile device. Check it out ;)

Wednesday, September 19, 2012

Fix Our Networks

Nigerian mobile internet service is terribly bad. It need to be fixed.

We've been running pilot on Tiketmobile for some time now and I've not been directly responsible. However, when we were not going as fast as we had projected, I decided to push for installation on everyday people's phones, wherever I find myself and observe usage. The major observation from this is that the internet networks are terrible. All of them.

We created Tiketmobile out of CC Hub where the network is beautiful. Yes, you can get a device, connect to the wifi and test your app. In 3 seconds, the app has pulled start-up data from the remote server and is running fine. When you get outside, the story is different. A transaction which would take about 10 secs or less would now take some 5 to 15 mins. This is very bad. Everytime this happens, I always start opera-mini on the phones to check if it's a fault in Tiketmobile's architecture, but it is always the same thing.

It's terrible.

Telcos have to upgrade their equipments, or whatever it is they need to do for things to work better. Internet applications that don't require constant use or that's not social app would find it really hard to garner users in this kind of situation. If anyone can reach them, they should tell them.

Maybe it's Lagos only, because Kennedy said network was better when he was at Abuja. The network on the streets here is terrible and needs to be fixed.

Cheers.

P.S.
If you have a Java ME device and you want to try Tiketmobile out, visit http://getjar.com/tiketmobile and download it. A change would be pushed-up tomorrow though. It's just a change on UX, based on observations and nothing special, so it's OK to have this.

Friday, September 14, 2012

It's a blood thingy!


My dad is easily the first person I'll go for for business advice.

He left his home after his primary school education to pursue a living. After some years of hardwork (and serving his oga(s)), at his mid/late 20's he became a successful businessman. At his prime, he managed 7 shops spread across Lagos and 12 boys manning those shops, in a joint business between him and his elder brother.

Things fell apart though, before we (his kids) could really feel his wealth :( Then he focused on ensuring that we all get educated. However, he always has one advice or another to give me in my quest to build a successful business.

The picture above was his business promotional material from way back. I saw it among some of his stuffs one day and I took a shot.

Here's to my dad, Mr John Ezeokoye -- M.D. DE JOHN Electrical and Electronic Stores. Dealers in electrical, electronics and plumbing materials.