Tuesday, October 11, 2011
Geek's Night Out
Thursday, October 6, 2011
Scala Boot-Camp
UPDATE:
1) Date has changed, please check up the new date ;)
Thursday, September 15, 2011
RIP Java... Umm, maybe
Image is courtesy of http://cybergyaan.blogspot.com.
Monday, September 12, 2011
My #SWLagos Experience.
Down the road, he started working with me to get FriendsGreet out and then he told me that he would love to try this idea out at Start-up weekend. I thought it would be a wonderful opportunity to network with other techies and learn a thing or two. Also, the idea of working on a project with a random team sounded like fun. So I did some stunts on twitter and got registered :)
I must confess that if my team hadn't taken second overall on that evening, I would still had been really fulfilled. For me Start-up Weekend was more for the experience than the prize. It gave me the opportunity to see mobile app development through the lenses of Ope (a wizard, I must confess) and also to see the "benefits" of Lift Web Framework (I'm sure Seyi would laugh here) via the insightful analysis of Seyi (BTW, I'm still vexing with L'Erin for taking Seyi away from my team). Also to work with Joe, a gifted graphics designer (who happens to know every high-brow, silicon valley tech blogger and thinks I should blog more too) and Desiree, a really beautiful lady who happens to be a coder too. She's also a wonderful team player as she easily plugs in to the personality of every member of the team.
Start-up Weekend Lagos also granted me an opportunity to do some stuffs for the first time. I got to work on GIT for the first time while pushing TiketMobile web services to AppHarbor. BTW, AppHarbor is a really cool cloud platform for hosting .NET, very easy and straight to the point. Thanks to OO for the AppHarbor tip and Tomiwa for helping me figure-out how AppHarbor works when my head was deep in codes. I also got to meet Maxwel, who said he has been following my blog since wining the first Imagine Cup challenge. I really, really do appreciate :)
All in all, it was a great experience and very fulfilling. What more can I say, my team came second behind a team composed of (obviously) more experienced people. Thanks to everyone for sharing three days of their life with me :)
P.S Err... Francis, thank for registering me in such a short notice, I promise not to put you on the spot again :D
Update: TiketMobile is on twitter at @tiketmobile and TiketMobile on Facebook. We are still gon be developing actively but we are currently at http://tiketmobile.co.cc
Friday, September 2, 2011
Yet another Bulk SMS Platform… Sorry, it’s Bulk SNS
My BSc thesis discussed my study and creation of an application which lets users broadcast to all the contacts on their social networks the way it is done on bulk SMS. I call it FriendsGreet.
The original idea occurred to me around the last week of December in 2010. I wanted to yell a personalised “Happy New Year” to all the contacts on my Facebook so I sought an application which would allow me do it and I foundeth it not. So I decided to create it. I did the barebones and abandoned it for other things. When my final year project came calling, I submitted two proposals one for building a NoSQL datastore (which I called LabRat) and the other was FriendsGreet. When I attended Prof Uwadia’s (my project supervisor) inaugural lecture (which focused on SNS and its effects in Nigeria) around April or May, I was inspired to resume work on FriendsGreet again. I was glad when he approved FriendsGreet.
Below is the link to download my proposals for LabRat and FriendsGreet and also, my final year project write-up (which you should actually be interested in :) ). I’m currently working actively to get FriendsGreet out so you can start using it.
This is why I have been offline for ages, now I’m back. BTW, follow me on twitter on @celestocalculus. I've resumed work on CSC Lounge too.
LabRat proposal.
FriendsGreet proposal
BSc Thesis.
Disclaimer
The work on this thesis is original. Any resemblance to any other work before this is purely coincidental.
Monday, May 30, 2011
New look of CSC Lounge
Sunday, May 22, 2011
Building Nigeria's Tech industry -- You are responsible
Last Tuesday, I was a guest at the first meeting of 200 and 300 Level, University of Lagos' computer science students who are beginning now to plan their participation at the 2012 Microsoft Imagine Cup. In attendance at the meeting was no fewer than 10 student tech enthusiasts, including 2 ladies. Upon quizzing one of the [pretty-looking] ladies, I discovered that she was still in the foundation program with a lot of interest in DBA -- particularly Oracle. My presence there was some sort of inspiration to the students as they plan their onslaught.
So who am I?
"Once you are lucky, twice you are good" -- Sarah Lacy
I had been a member of teams which won two editions of the Microsoft Imagine Cup competitions (Nigeria challenge), back-to-back. I was the Leader of the team the second time. In 2008, my team represented Nigeria in Paris and in 2009 my team represented Nigeria in Cairo (with me as the team leader).
I'm currently serving an extra session. I should have graduated last session -- also, I should have dropped-out of school. Due to the advice of my course adviser, I took few units both semesters of last session, deferred my final-year project and spread my final year over two sessions. This enabled me put more into my technical and entrepreneurial development.
Among the students present, I personally mentor 3 of them directly. Currently, my presence with the students means a lot to them, it's like a morale booster. It makes them believe that being technically sound pays -- even if it's just a free trip abroad!
On being technically sound...
A lot has been said about Nigerian graduates not being technically sound. Lately, there was a heated discussion when someone put-up a really short note on how many Nigerian techies are just a reminiscence of Milli Vanilli.
Really, I remember how it used to be when I just got admission into the depertment. For one, I was the only one in my class who would (arrogantly) focus on the technical importance of what is being taught as opposed to the grades. This is probably partly because I was writing code before I got into the university and partly due to my undying interest in computer science. It took like my second Imagine Cup victory for a lot of my classmate to begin to see beyond the school grades but this didn't go deep because the set following suffered the same fate.
A lot has changed now. With the ascent of Dr Fasina as the new HOD, a lot of focus has shifted from just producing a set of nice grade, ply-card carrying graduates to producing technically sound graduates. This is quite evident with the introduction of a modern functional programming language (python) into the school's curriculum for year 2 students. But with the fascination with the Imagine Cup, I'm sure it would take more than that to get students to see the real importance of having the skills.
A change in direction...
While speaking to them, I was quick to remind them that having technical skills was more important than taking part in the Imagine Cup. I told them that the Imagine cup was just an opportunity I took advantage of -- because of my skills. I made them see the importance of building a community that would be of mutual benefit to everyone in it. They could discuss on the new cool thing they are learning and the project they are undertaking. They listened and they noted it.
They listened because they see me as an influential figure that has a few feathers of achievements on my crown. They would listen to anyone else whom they view in such light.
You are responsible!
We can write notes and blog posts, and move around in an [air-conditioned] saloon car, and complain about how bad it is to get people to employ and/or work with us on projects and how the school system is so messed-up in Nigeria.
That is easy, very easy.
Much easier still is talking [and blogging] about successful Western tech start-ups. Their stories are just so magical, like they were taken from a nursery school fairy-tale.
The hard part is doing something about it. When it comes to this, there is always an excuse -- "I'm too busy", "they didn't even design the page well", "No I cannot write or talk about them, they are wannabe's, and they probably won't go far". While we give these excuses, Nigerian universities continue to produce graduates who are not technically sound and who would have been better if they had a little mentoring. A little more motivation from people who should actually set standards in the local IT scene would make a lot of difference.
Lately, one of my [graduated] classmates argued that most successful tech entrepreneurs were just business people who hired technically-sound people (citing Bill Gates as examples) and that being technically sound would not take you far. I wonder how many (Computer Science) undergraduates operate with these principles. But in the midst of all these, a lot of them still want to know and would do better if you spared a little time, out of your comfort, to tell them what they could do -- from your experience.
Re-introducing CSC Lounge (http://csclounge.com)
It is on the backdrop of this that I and a friend came together to create a web platform which allows you to indirectly mentor undergrads. We call it CSC Lounge. CSC Lounge lets you post technical 'dumps' -- tweaks, how-to's, slides or a fully fledged article -- in order to instil interest on undergrads. The follow-up on this would be a series of discussion which would provide an opportunity to mentor students who are interested. We are also building algorithms to recommend users to employers based on the users' activities on the platform.
I had earlier started-up a direct mentoring project (see http://ezeokoyecelestine.blogspot.com/2010/09/raising-successors-celestine.html) and it has been successful with the only student I recruited onto it. In a period of 6-months (or less), I've helped him chart a course in Java programming with impressive personal projects (GUI based single user and networked multi-user tic-tac-toe game, multi-tab text and HTML editor with different colour themes, etc) to show for it. Currently he's grabbing database development. He did these while still maintaining a good grade. I didn't do this by sitting with him and instructing him all day. I did it by first igniting interest in him, then occasionally checking on him from time to time and answering his questions. I know a lot of impacts would be made if we can reach out to undergrads in this way.
Based on the feedback we got with what we currently have, we are re-implementing to include a number of use-cases and a redesign. We would re-launch soon with a more appealing UI/UX and more interesting use-cases and we would call on you to help mould Nigeria's future.
Get Involved!
Tuesday, May 17, 2011
Kowaa -- Explain your database to Apache Solr.
CSC Lounge (http://csclounge.com) is currently being reimplemened.
Major feedback we have gotten revolves around the need for the UI and UX to be more modern, colourful and intuitive and we are working to meet those needs. But it's not only the UI that we are working on, we are re-implemening the whole system with the Scala-based Lift web framework. The major reason we chose Scala is that it is more cost effective and flexible, besides it's what the cool chaps use for their systems now-a-days (ask Twitter and Foursquare). One of the module which we worked on (and is currently ready) is the search module.
The search was built on Apache Solr (http://lucene.apache.org/solr), an open-source search server created with Java on top of Apache Lucene (http://lucene.apache.org/java/docs/index.html). Solr is an amazing product and recommended to anyone building a web system from scratch (or already has a running web system) and want to add search functionalities. It works by allowing developers import indexes, which would be persisted to disk as documents containing fields that are accessible to search. Beside just searching, the results can be returned highlighted or transformed in whatever way the developer wants. Results could also be returned in several formats including XML (the default), JSON, PHP, Ruby, Python. Most of these features are actually base features of Lucene (which currently powers twitter's backend and a number of NoSQL DBs, like CouchDB). Solr allows users to import indexes from different sources -- XML, RSS, Wikipedia or an already existing database. Ours was the case of an already existing database. The problem with the process is that you have to manually create an XML file which tells Solr how your database is defined. This is a stressful process as you have to switch between the XML editor and your database and, in between, decide what you want to index. God help you if you have a complex database system which requires nested Solr fields.
This is where Kowaa comes in.
I created Kowaa to automate the process. It's a simple Java-based GUI tool that connects to your database and provides interfaces for you to set the properties of the Solr document and fields. It presents you with interfaces to select which database fields you want to index. It also allows you create nested fields. It then spits out the XML you need in a directory you specify. You can now customise by setting transformers (like HTML stippers) and other processors. I searched the internet for a tool to do this and I didn't find any, so I created one.
I used it with Microsoft SQL Server but I included options and JDBC driver libraries for indexing MySQL, PostgreSQL and JavaDB (network and embedded). To download, just follow the URL http://csclounge.com/kowaa.rar. The file contains both the source codes and the build so you can customise the code as you want to. It was built for internal use but we figure it would be needed so we are giving it all free! So if you are looking to set-up Solr on your site on an already exsting database you might want to take advantage of this.
After downloading, extract to any directory of your choice and run by invoking the following command on the command line:
$ java -jar path_to_extract/dist/Kowaa.jar
What does Kowaa mean?
Kowaa is Igbo word for "explain". Ifetayo also reminded me that when you break it into two, it means "teach us" in Yoruba (Ko waa). So it's more like explaining (or teaching) Apache Solr what your database is.
Friday, May 6, 2011
Don't trust the ecosystem
I was supposed to have a 'date' yesterday afternoon but my date had a couple of reasons to cancel it. I was a little disappointed but thankfully, I had invited a co-techie over so we had a handful of gists. I, being a newbie in the community, had a lot of listening to do. He summed up with one piece of advice "don't put much trust in the 'ecosystem'"
This was affirmed when I got a digest mail from the Lagos GTUG which I am a member of. The mail introduced a Google site created by one of it's members to connect local developers. No, the concept is not bad in itself, in fact it is wonderful. But if this invention was not a part of what I and the creator discussed in my bid to get him to join the CSC Lounge team, I wouldn't be posting this blog.
A couple of weeks back, Jide and I decided that the job at CSC Lounge was getting too much. We had more on our TODO list than we have on our DONE list, so we decided to hire the service of a creative personnel to ease off the stress. After a couple of considerations, we shortlisted a few people whom we should approach. We decided that we each talk to our acquaintance. Mine was a guy I met at a tech event I attended earlier whom I thought would make a good teammate.
After discussing a handful of the idea, the prospects and the benefits with him, we did a little brainstorming and pruning. I would say the discussion went well and he promised to get back to me with his final decision. I was expecting his call or e-mail -- well quite! The call or e-mail never came. Then I got the mail about his invention.
The worst part of his lack of personal creativity is that he used the same name as CSC Lounge but with a little twist! (CSC stands for Computer Science)
Google, our host on the tech user group which we both are members of, run with the policy "don't be evil". Hmmm... I smell some evil playing out.
Meanwhile, I'm having a second look at developer ecosystems, I think my techie friend (who visited yesterday) is right in a lot of ways.
Wednesday, April 6, 2011
CSC Lounge
That night, as it evolved, the idea spawn away from the original concept to a facebook-like application for our class + the mentorship thingy. We were preparing for our final year fun events (beach parties, barbecue nights, dinner, etc) and we would use the project to woo corporate firms to pay for our funtimes. As more people in the class heard of it, required features grew wider and more facebook-like but we still went ahead with it anyway.
Being the most experienced developer in the class and the one who nurtured the idea to growth, I tasked myself to raise the team who would build the application and also to interface with the corporate guys. I raised a team of 4 guys and 2 girls and gathered e-mails of the corporate contacts.
I exchanged a few e-mails with my corporate friends and things seem to be going fine. Corporate friends were responding, team was enthusiastic and in our first meeting, I coined the name "CSC Students' Lounge" for the application, CSC is what we call computer science in The University of Lagos. The name was agreed upon by the team as a temporary name, for lack of a better name. I created the requirements for our facebook-like, CSC Student's Lounge. Little red riding hood was still hopping happily!
After two or so meetings, team members started giving excuses on why they would not be able to make it to the next meeting. Then subsequent meetings turned into inspirational sessions, as I had to start telling team member how the project could boost their CVs. Corporate friends were still responding, but you need an application to sell now! So I kept corporate friends on a hold and began re-strategising. Couple of weeks after, app was not done and team inspiration was down, so I began droping team members. In fact, some even came to me and requested to resign. Finally it droped to Jide and I, and I had to revisit the idea.
I dropped all the facebook-like features and it returned to just mentoring. Then one event occured which made me incorporate articles. A computer science student from a remote university came to UNILAG and met us presenting a project we did for a course in information technology (CSC421). My team's presentation (and me in particular) impressed him, so after the presentation he approached me, introduced himself and told me how he enjoyed my display. He told me he was very interested in computer science but because stuffs like that does not happen in his school, his interest was begining to wane. He now reads computer science just to pass exams and get his degree, yet he told me how he would love for people to bring stuffs like that to them. He said a lot of students would embrace it with open arms. The idea of experts putting-up articles at intervals for students' consumption was born! A lot of other ideas came along and brainstorming with Jide, we prunned them until they came out right. We also called the application "CSC Lounge".
We sat down to implement and when we were done with the first working prototype, we began to think of how to get it up online. We were not regular income earners so raising cash for hosting was an issue. We needed to come up with stategies that would allow us raise cash while not getting our mind of the project. The only closest option was asking for contributions from friends and acquintances. We did that and after some time it worked and we were live.
Yesterday, 5th of April, 2011 at 6:05 AM WAT, we moved CSC Lounge to the root domain http://csclounge.com after running on a beta domain for exactly 2 weeks. What we currently offer is a platform which acts as a technical dump for people who do stuffs in the industry -- they could dump things; from a single line tweak to a fully flegded article. Students then ask them questions based on their dump. This way they mentor students and they keep the interests burning.
A lot of other great features are coming along (and a redesign too). This is because we are not just the everyday blogging platform (like the one you are on now). We aim not only to answer the question "What can I get from the platform" but also "What can I do with/on the platform". Some of the features are already even implemented, just waiting to be released.
The URL again is http://csclounge.com and it's open only to verified students and selected experts. We hope users enjoy using it as we enjoyed working on it.
Facebook: http://facebook.com/csclounge
Twitter: http://twitter.com/csclounge
P.S.
I'm dedicating CSC Lounge to everyone who has, in one time or the other, being my protege. To my current protege Dumebi Duru, who would never see me online on Facebook and let me be, but would always have one question or the other to ask. I hope you grow in your quest and become one of the bests.
To my ex-classmate and ex-protege Bukky Osi (was also on the team but pulled out) whom during those class assignment, I would explain to her what to do and she would come back with the tasks done. Your interest and development still impress me, I wish you could dare more and certainly hope you become a name to reckon with.
To all my other numerous proteges, you'll soon get a couple more mentors ;)
Monday, March 7, 2011
#JustReflecting
Wednesday, February 16, 2011
Yeah... crazee me!
Sitting my own o, jeje in the lab reading for a test when one chic decide to start staring at me. Me I stared back o! Then we started doing "first to look away"... After some time, she burst into laughter and turns away, and actually walks away. I smiled and followed her and asked: "Didn't ur mommy tell u not to stare at strangers?" Then we started talking. I got all her details and when when I wanted to leave I asked for her number. She refued to drop it (in the typical Unilag chic spirit!) Then I told her to hold on to my phone that I would call my number whenever I wanted to speak with her. She took my phone and I walked away, went back to continue reading for my test.
My test av finished now and she is refusing to pick my phone. Armed with her name, department and level, I headed to the faculty of social sciences to find this chic, to no avail. I have a gazzilon calls to make and 20% of me is asking myself why I did it, 50% is amazed at the crazee thing I just did and 30% is just indifferent. :D
I'm closing in on her sha, I've gotten a few people who are in her department but not in her level. Next is to find people in her level but for now I'm taking a break. If you call me any time soon, maybe a chic would pick the phone nd say "hello"!
P.S. After a lot of pressure from my pops (the latest being holding a mirror to my face and asking me "how do you think you look?"), I've finally cut my hair! Now I adorn a low punk. I think it kinda looks nice and makes me look extremely different. I actually went home last weekend hoping to blow my hair, but after a little thinking, I realized I would be stepping into a lot of offices and they could be judging me by the hair I wear. So I decided to play by the rules! Anthony have blown his hair though (badt guy!). I didn't get to see how he looks before he went to school, cos he left in the morning and I arrived in the afternoon. Home is now funnier, Chima is at home :)