Tuesday, December 20, 2011

Online education: ....and it happens

It doesn't come as a surprise but here we are. MIT has taken the steps of Standford University and we will be expecting their schedule any moment from now. They have already made their intention to conduct online courses known, and it is already on their website click here.

Soon the list of courses will be released. It is really gonna be a great time for me and similarly hungry people around the world.

Friday, December 2, 2011

Do java reverse engineering with cavaj

Yes, they say that reverse engineering is the science of decomposing any engineered piece with a view of composing it again, right?

Quite rightly, viewing java class file (*.class) are the best ways to reverse engineer java applications.

Severally I have been faced with a task of integrating complex systems, most of them java-based proprietary system. Since companies of proprietary system will never put resources of their product on the net, I mostly result to taking down the entire application, cross-checking log files with the decompiled class file and sooner than I imagine, I am able to imagine the system internals mentally. That is where the solution begins.

You may check cavaj for yourself here.

We should note that cavaj is not good for those who don't yet have basic understanding of java programming language. The code produced by cavaj is not equivalent to the java source that produced it. No annotations, documentations, String addition with the "+" operator are changed to StringBuilder(...).append(...) mechanism, inner class are changed to class_name$inner_class_name, anonymous inner class are changed to class_name$number (like 1,2,..), constants are replaced with their values and many others like that.

For those who love reverse engineering in java, enjoy cavaj.

Wednesday, November 23, 2011

Standford Online Engineering course: More classes

Surely, we are seeing a new trend that will define education in the nearest future and gladly I am a participant.

The Standford Engineering Everywhere (see) just added me courses to the list of courses announced. They include

January 2012


* this is the first time, I am noticing a Professor from another university other than Stanford participating in this programme - Professor Dawn Song. Things are changing.

Those interested in medicine, Electrical and civil engineering can now join us in this education offering.
Once again THANK YOU STANDFORD - you are the best.

We may not have the privilege of having a Standford degree but now we can have the Standford knowledge.

Monday, November 21, 2011

Stanford Free Engineering Courses for 2012

Below is a listing of all the Standford free Engineering courses online. They are grouped into category of commencement period and are arranged alphabetically.

January 2012
  1. Cryptography with Dan Boneh
  2. Design and Analysis of Algorithms I with Tim Roughgarden*
  3. Game Theory with Matthew Jackson and Yoav Shoham
  4. Human-Computer Interaction with Scott Klemmer
  5. Machine Learning with Andrew Ng **
  6. Natural Language Processing with Chris Manning and Dan Jurafsky
  7. Probabilistic Graphical Models with Daphne Koller
  8. Technology Entrepreneurship with Chuck Eesley

February 2012
  1. Computer Science 101 with Nick Parlante
  2. Software Engineering for Software as a Service with Armando Fox and David Patterson
  3. The Lean Launchpad with Steve Blank

* - the name of the course - "Design and Analysis of Algorithms I" and I wonder if somehow there is a "Design and Analysis of Algorithms II" coming up later.
** - Machine learning with Andrew Ng is going to be a similar course with the one previously taken on the site www.ml-class.org

This is a whole lot of stuff coming up for 2012.
The intention is clear and awesome - you get to learn 9 strong engineering courses and 2 entrepreneurship courses to help you get to the market.

First quarter of 2012 is really gonna be fun.
We may not have the privilege of having a Standford degree but now we can have the Standford knowledge.

Stanford Online Engineering Courses: Machine Learning

I have really kept things musing within me about the recent free online course offered by Stanford University's School of Engineering online through the Standford Engineering Everywhere programme. Courses currently on-going include
  1. Machine Learning with Professor Andrew Ng
  2. Introduction to databases with Professor Jennifer Widom
  3. Introduction to Artificial intelligence with Prof. Sebastian Thrun and Peter Norvig
I was initially tempted to take all the course (with less participation in the DB course) but going live on the course, I knew that sometimes you need both hands to squeeze all the juices out of the orange. So, I stayed on Machine Learning and it has been very fantastic.

Not only has the course opened up areas in computing that were faint and becoming increasing obscured, it has completely laid open my cognition and sense of recognition. I was already getting my hands dirty with programming in R but Professor Ng pointed strongly encourage octave and I just got better with the two.

It is worth noting the wonderful lecturing skills of Professor Ng and whether or not he reads this, I would like to say THANK YOU to him and to Standford School of Engineering.

We may not have the privilege of having a Standford degree but now we can have the Standford knowledge.

Wednesday, July 13, 2011

Oracle Certified Master, Java SE6 Developer certification: Success!!!

I received a mail today from Oracle Education:

Hi Enudi Michael,

Congratulations! You have passed the Oracle Certified Master, Java SE6 Developer certification. You are among the elite 1% of certified Java professionals who have gone on to achieve the Oracle Certified Master, Java SE6 Developer certification............


My delight is still inside of me. These are few reasons:
  • I wanted to do the exam mainly because I finished reading on java concurrency and wanted some real form of proof that I could deliver on what I read. But after do my assignment, I must confess that I used less than 25% of what I know of java concurrency. So was a little disappointed with that.
  • Coding life was getting bored for me and I wanted a fresh challenge. A friend suggested writing a certification. I tried learning a new language - python but still wanted something more so went for the advice.

The sweeter part for me was the fact that I visited the best java certification guide site on the internet www.javaranch.com for some clues on grey areas. But after a while, I discovered that some fundamentals of my design were argued against in the forum. Though astounded, I stuck with my ideas against the feeling of disobeying "the pundits". I did it my way and try my best to document my supposed exceptions. And this is the best feeling of my results - a renewed sense of self-confidence.

I am happy.

Saturday, June 18, 2011

CORPORATE ELECTION

Something rather new happened at my office which was re-organizing the ORC Committe of company and appointment of a representative at the CIIN body of Nigeria. The same person was suppose to act as the ORC Committee leader in-house.

Due to the recent political development in Nigeria, there was a resultant political air in the entire company which has over 26 branches across the nation and somehow I was nominated to design an election system (online) for the exercise.

There are many such tools on the internet to help me get my job done but because there was a request that voters must be authenticated using the our internal active directory server, I chose to write my own voting system. Another reason being that I was told less than 24 hours to the exercise and I didn't think I had the luxury of time to learn something new.

Quickly, I wrapped up a four pages web application to for the voting exercise and also to release the results online as well. I relied on JNDI for connecting to Micrsoft Active Directory and jsp, jsf and servlets for the web applications not mentioning oracle for the database. Everything was done in time. My team members in other project hard-tested the application - they broke it once and I had to fix.
The application scaled quite well and users comments were quite impressive.

The election went quite smooth except for so branches that couldn't connect for some network failure during voting. Results were release online as expected.


The best thing of the day was that a major management staff asked me after the election, "WHY CAN'T THE NIGERIAN GOVERNMENT IMPLEMENT SUCH A SIMPLE PROCESS IN CONDUCTING ELECTIONS IN THIS COUNTRY?". There were answers.


I seem to have a new nick name in the company "JEGA" - the name of the current chairman of the independent electoral commission in Nigeria.

Wednesday, May 4, 2011

gNigeria 2011 is over

gNigeria 2011 is officially over and it was really a great time with google.

The entire atmosphere was graceful and the presence of googlers (as we were taught to call google staffers) increase our lookout for hands-on sessions. Developers in and around Lagos came with great expectation and I don't think there was a let down except for the epileptic internet connection that plagued most of the first day.




Breakout sessions had different topic but I was able to make two

Cloud Computing with App Engine
Web Development with Google Web Toolskit (GWT)

The hands-on sessions were great and they really reflected what it should be. I have my head first introduction to GWT and feel that I could get some projects done with it. Tom Hofmann (our instructor) did a great job, Michael Springer and Obum Ekeke where really of help in assisting him.




The competition was cool and full of adrenaline as the grand finale of our sessions. I had my share of belief but the winners were just great. The had the ideas and were able to implement it to the latter. I congratulate them.



I really appreciate Google for the time and resources they put in not only educating developers but also reaching our to educational institutions in sub-saharan Africa. It is really an effort worth applauding.

I guess it is time to learn AppEngine and GWT to real expert level and begin deploying commercial applications with/on it.



Weldone Google!

Monday, May 2, 2011

gNigeria: Expectations

Yes! Tomorrow, some developers in Lagos Nigeria will be having a technical session with Google. I have known and registered for this since April (link is here) and I'm really eager to see what it's all gonna look like.

Personally, I am looking towards the tech sessions on three different fronts but I can only be in one place at a time. So, till tomorrow I don't know where I am going to be among my three preferences of

Mobile Web and Android
Cloud Computing (I take this to be about Google App Engine)
Building Web Apps (I take this as GWT)

So I will know when I get there.

I missed Google DevFest (google developer event organized last year) by a day and I could tell how much I missed. But surely not this time.

My eclipse environment has been set up and I am ready to go.

Sunday, April 24, 2011

To cloud or not to cloud

In the past two weeks, two persons separately came to me asking me about taking their businesses to the cloud. And my first answer was "How has your system performed outside the cloud?".

There are indeed many reasons to cloud but one good reason not to cloud is trying to do it because the topic seems to be a big buzz on the internet.

It is quite a sad new but the recent failure of the Elastic Block Store (EBS) will again throw more questions on exactly how are we supposed to go about "cloud"ing our businesses.

Considering a situation where a client doing a non-internet business is having her entire system in the cloud. The advantages of such are well numbered but downtimes like this could really suck. Therefore, I will advise company who must go cloud (because of the well numbered advantages) never to put their life entirely in the cloud but keep a copy in their hands as well. This would mean local copies. But can we have local copies of cloud services?

This in itself brings up the issue of service and data synchronization. And of course, unless we have to completely take faith in our cloud company, is another big science which we will all one day need to answer.

Happy Easter.

Wednesday, April 20, 2011

LONG TIME NO PHP

It is more than 5 years ago I did a medium-scale project in PHP and coming back this time to lay my hands on the language again really tells how fast time flies. Varieties of Content Management Systems (CMS) were available for work. In 2005, I was only privy to systems like Mambo, Joomla and Drupal and PHP frameworks like Zend and cakePHP. Now, I cannot count how many such frameworks that exist on the internet.

The most noticeable change in the language for me was the standard OOP feature that was built into the language. Back then in 2004/2005, my knowledge of java got in the way of building OO classes in PHP, though I built many of my components in OO fashion. Now the OOP in PHP in my opinion is mature and can allow for wide-scale flexibility in the language. It is even more lovely to see that I could build php codes with my favourite used-to-be-only-java IDE - Netbeans.

Now I know I got more to learn because PHP is ever more powerful. Combining such power with AJAX has made the web what it is today. I most run now as I have so much to cover about this beautiful language.

Sunday, April 10, 2011

I am the worst blogger there is....

Yes this is true: I was just in my bathroom today when I asked myself "when was the last time you blogged".. and I thought to myself.."surely like years ago..

Officially, I am the worst blogger there is on planet earth and I accept that in good faith. I am hoping to change because for real, there is a lot to blog about software (java, oracle, bi and databases, web development, python, php and soa), music, history, travels and my countries national election. Yes, I am officially back and don't hope to stay away for such a record time.

Good to be back/