Sunday, June 8, 2008

...You can negotiate with a terrorist...

Yesterday I saw this line on Wikipedia's entry for Data Architect. The line is:
"Q: What is the difference between a Data Architect and a terrorist? A: You can negotiate with a terrorist." I chuckled after reading this line since it is so true. I consider myself a "data" guy who enjoys talking about data and its significance in the Information Technology domain. Being a "data" guy, I have to agree with the line from Wikipedia because data architecture is the origin of any system architecture. If the data architecture is incorrect or partially incorrect, the downstream impact on the system is significant. That is one of the reasons why data folks are such sticklers to details and they don't easily deviate from their data policies or decisions.

One of things why I really like working with data is because it is smallest unit of information in an Information system. Even in college, I enjoyed physical sciences where we discussed quantum mechanics and the smallest units in science. Fortunately in Information Systems, data architects don't deal with probabilities to determine if the data went into the system or not. In quantum mechanics, there is a mathematical probability (a very small one) that part of the tennis ball will go through the wall while there is very high mathematical probability that the tennis ball will bounce of the wall. Even though data is so binary, people don't understand how to work with data. Hopefully there will be a day when everyone appreciates data in information systems and there are no terrorists in the world. Will that day every come true?

EnochScript - do I really need it?

Last Friday, I spent reviewing slides from this year's JavaOne Conference. Unfortunately I wasn't lucky enough to attend this conference but my colleague was kind enough to bring copies of various presentation slide decks. They were all quite interesting. They ranged how Java and SOA are meant to partner to writing your own scripting language which can be read by Java. Chaur Wu wrote an article on JavaWorld called "Build your own scripting language for Java: An Introduction to JSR 223" which talks about how developers can write their scripting language. This is a neat technology and as a technologist I want to create one but the bigger question to ask is, "Do I really need it?". Now we can create scripting languages where we can write our business logic and functions into the scripting language for a certain domain. My question is where do I need it. I can use a Business Rules Engine (BRE), write the logic in a Java application, in a database with stored procedures, triggers or in a BPEL process. Therefore before I start writing EnochScript, I need to ask the question why and what are benefits and drawbacks of EnochScript. I would also ask myself the question how does it benefit my project, my company or my business needs if I write a script rather than putting it in a Java application, in a database (if the the logic is in the data tier) or in a service orchestration (if the data is in the services and logic involves extracting and aggregating data in the service tier).

Saturday, June 7, 2008

Buzz words 2.0

In the last year or two, I have noticed that buzz words have a version number next them. I am sure you have heard words like: Web 2.0, Enterprise 2.0, eGov 2.0, Web 3.0, etc., etc. Here is my theory on this recent phenomenon. Companies, which have been trying to sell new functionalities added to old technologies, have been tagging tech words with version or sequel numbers. By adding a version or a sequel number, the marketing folks are trying to imply that the technology has been reborn and it is cooler and faster. To which I say, "eh...okay?" Is web 2.0 or web 3.0 really that different from Web 1.0? Maybe back-end processing or user interaction is different, however like any technology there are benefits and drawbacks.

Okay, I am going to write a blurb about the latest and neatest technologies. Here it goes,

"Last week, I went to a conference in Boulder, Colorado where major vendors came to promote their new products. Here are couple of products, I really liked:
  1. Collaborative Databases - Oracle has recently released their new collaborative database which they are promoting as RDBMS 2.0. This technologies lets users use Web 2.0 and SQL 3.5 to generate reports in format Report 4.0 and the reports follow the Business Intelligence 2.0 terminology. The front-end is in Flex and Oracle is promoting the Collaborative databases as part of their SOA 2.0 paradigm.
  2. Java 9 - Sun just released Java 9 which follows the new trend in programming. It is called predictive programming. The new JVM, which is based on Linux 3.0, can predict how a Java programmer will program the application before s/he can start programming. Sun also said they are currently working on JUnit 3.41 which will generate the unit tests before the program is created using the predictive programming.
"

Do you see how ridiculous my blurb sounds unfortunately it could trick a non-technical decision maker in believing in that the blurb is infact true. I am waiting for Blog 2.0 or Blog 3.0. Here is an IBM ad which makes me chuckle every time I see.

Monday, May 19, 2008

Thanks CSS


Dear CSS,

I have been working with you for many years now and using you improves the quality of the web pages. You also make the web page code less verbose. Back in the dat (early 21st century), web pages were composed of Hypertext Markup Language (HTML) and JavaScript. To customize the page, HTML coders would use <font/>, color attribute in the <img>r tags. Do have roll-over images, or any blinking text, developers would use JavaScript. The problem with JavaScript is that each browser renders it differently.

Thanks to you, developers like myself can add more functionality to web pages. We can now easily use Asynchronous Javascript And XML (AJAX) methodologies and make cooler pages with the style attribute in virtually any HTML tag.

I also think you have various editors which let developers to interface with you. My personal favorite is free tool called TopStyle Lite which is created by Bradbury Software.

Anyway I am excited about and hope you can continue to provide the web community with new innovations. Good luck!

Respectfully,

Enoch Moses

Saturday, May 17, 2008

Is Open Source bad?

Don't get me wrong. I love working with open source software. I love working Java, Php, Spring framework, Struts framework, Eclipse Integrated Development Environment (IDE), Spring WS, Junit, Hibernate, FileZilla, Mozilla's Firefox, log4j, Axis, JBoss middleware, etc., and etc. I am currently looking at Grails, JRuby, Seam, and on and on. The journey never seems to stop. As soon I am familiar with some software, it is either outdated or obliterated with a new software which runs on new principles but it is faster and addresses the issues with the software I just became familiar with. From a developer or an application architect's perspective, open source software is the way to go; however as a decision maker for a company, I would be leery to use open source source. Okay, Okay, let me explain. In my current position, I see resistance from my managers to adopt to open source software. Their reasons, which I think are quite valid, are that there is no support for the software, there is no evidence that it is widely used in the IT community, they haven't been tested well, and our company doesn't have enough people, who know how to use certain pieces of software.

As I said earlier, these are valid reasons however I believe companies should allocate some resources who track and evaluate open source projects. The committed resources should be composed of software engineers, software architects, business architects and analysts. Each open source product should be scored on:
  • Maturity of the software
  • Adoption in the software in the IT community
  • Is support being offered by companies and what is the level of support
  • Stability of the open source software
  • and determine the software's competition in the IT community and how the software's competition is doing in the IT community


Once again let me reiterate that I enjoy working with open source software since I have time to read the source code and make modifications if the software doesn't meet my requirement. This is a lot better than spending thousands and millions of dollars to buy COTS products and then realize the software doesn't work or the company needs to spend another chunk of money in hiring high priced vendors for the product. I have seen this happen with products from Microsoft, Oracle, Convera, Autonomy, IBM, etc., and etc.

In closing, I conclude that open source software isn't the panacea but it can be close to panacea if the company has the right set of resources, a culture for innovation and a willingness to take a risk. I look at companies like Google which thrive on individual and group innovation. I however don't recommend open source software for companies where policies quite frequently, they cannot allocate resources in researching open source products and as a company at large, they are financially loaded. If your company is in between the two examples I gave then I say please do your research and hire the appropriate personnel and then PICK YOUR POISON!

Tuesday, May 6, 2008

Be the hunted

"Be the hunted" is the slogan for a new job website JobFox.com on the Internet. I decided to surf to this site after seeing JobFox ads plastered all over the Metro trains. After putting my profile and seeing its functionality, I was impressed. It is a marriage of a typical job site like Monster.com or Yahoo's Hotjobs with web 2.0 capabilities.
Here are its features:

  • It offers a web page for every job seeker registered on their site.

  • Offers an "Experience Map" whic is a tree graph with your skills. This is created from a questionnaire which is filled out by the job seeker.

  • Maps your skills and experience with jobs in its database and the site offers a score

  • JobFox offers alerting capability which notifies you when your resume is viewed by your potential employer

One of the biggest features it doesn't offer is a search capabilities. This means that users cannot search for jobs but rather trust the JobFox system to show the appropriate jobs which it considers appropriate for the job seeker.
All mapped positions show a pie graph on how the position is mapped to your, the job seeker's, requirements like location, salary and stability. Anyway try it out and it might you insight into your market value. Have fun job hunting.

Saturday, May 3, 2008

Is Microsoft really the dark side?

Unlike some of colleagues and friends, I have worked mostly with open source products and I like the open source world. Most of the technology is well built and there is a community of developers, testers and business sponsors who spend alot of time and money to get the product right. There seems to be a common understanding that open source technology is flexible enough where it can be customized to a certain requirement and they cost is minimal when working with Microsoft.

On the other hand, Microsoft tends to dictate when its new products and technologies are going to released. They also dictate how their products should be licensed and flexibility is minimal. As a technologist, they seem to black box all of their technology.

Here are some of typical complaints regarding Microsoft:
Not Best of Breed
I have heard people complain left and right that their product is not the best of breed. For example their SQL Server product line is not the best relational database and it is ideal for small to medium implementations.

Tie Their products to the Windows Operating System

A few years ago, the technology community was complaining that Microsoft tied their internet browser, the Internet Explorer, to the operating system and that is how they beat their competition in the internet browser space

They eye-gouge their customers with licenses and other products
More and more end users are complaining that Microsoft is clamping down on how licenses are tracked in their software. It's now ever harder to steal their software.

I admit that these are valid complaints and lately I have realized their products aren't that bad.

Things I like about Microsoft products:
Their products integrate well together. I used to take this fact for granted until I worked with Oracle suite of products. Oracle's products don't talk to other products but they don't even talk to each other.

Their products are easy to use.

Beginning with their Windows product line, Microsoft products are easy to use and they are visually appealing to their end users. Until three or four years ago, Java didn't have robust debugging in their various IDEs. I remember working with Visual Studio many years ago and I still remember that their debugging was the best. SQL Server has had a great Graphical User Interface (GUI) for many years. During this Oracle only provided SQL*Net.

Even though we complain Microsoft is being selfish and opportunistic as business. I have to say that they have never sacrificed their core capabilities which is:
their products are easy to use and their products integrate well with each other. It is true that their products aren't the best in the breed but at least theywork.

In the last year or two, I have been extremely disappointed in how Oracle products are built and how they work. All of Oracle's products are tied to the database product line. You look at their JMS implementation, their PL/SQL based web services, their ESB which is tied to their database, etc., and etc. Oracle is doing the same thing as Microsoft did. As Microsoft tied their products to their operating system, we see that Oracle is currently tying their products to the database. If I were a CIO or the CTO, I wouldn't buy anything from Oracle other than their relational database products.

Unlike Microsoft, IBM sells their products for an extremely high price. Their products work well, unfortunately I wouldn't trust IBM since their business practices are questionable.

The biggest competition for Microsoft is Google. I am still wondering what is Google. Google sells online advertising, they have a search appliance and bunch of software products which are good but they don't address any core requirement. They seem to create a buzz on how they market their products. For instance, remember how they created a buzz for their email capability. They gave email accounts via email invites which created a buzz. They are geniuses in viral marketing but they really don't have a product. What I mean by a product, if I were to liquidate Google then what would I sell. Their search technology, their online software and their advertising business and now their mobile software. According my sources in US Department of Justice, Google's Android software is currently used by alot hackers to hack into mobile phone. Things like this make wonder...Is Google really out there to improve our lives or just market themselves a higher profit margin.

Yahoo! - I like Yahoo!. I have been a loyal customer of Yahoo! from 1996. They categorize and sell information, information products and more. I really like their stuff and their product might suffer a little when Microsoft buys them but I would rather see Microsoft buy them than Google beat them.

In conclusion, I still prefer open source technologies but I now also appreciate the value of Microsoft. They are not that bad after all.