Wednesday, June 11, 2008

Google Driven Architecture (GDA)

A few days I decided to try something different and it worked wonderfully. For the last couple of years or so, I have been spending some time building a web site for the New Market Antique Dealers Association (NMADA). I charged them a very low amount since I was helping them out. The user community for this web site is not at all computer savvy. Here were their requirements:
  1. NMADA shall have an updated website
  2. NMADA members shall be able to write entries and upload pictures about their products (antiques)
  3. NMADA would like to a calendar to update their entries
Traditionally I would create a typical website with a MySQL database in the back-end and a PHP site in the front. Unfortunately the NMADA had an existing website which was a static site with lots of outdated pictures. The website was just an old website. I took the brave task of updating the website unfortunately after a couple months, I realized that I didn't have any time. I asked a dear friend of mine to help with me the with site. He finished the site and now the website can be found at http://www.newmarkettoday.com. Recently the NMADA members came to me and asked for my help to fulfill the second requirement of having a content management system. Fortunately before the members could spring the second requirement as an actionable task, I moved their hosting to a site which provides database and PHP support. Even though I felt fortunate, time was still against me. I therefore decided to implement the second requirement using Google Technologies. Rather than create a database schema, research and implement a content management system, I decided to use Google's Blogger website as the the content management system. Now NMADA users can login into the Blogger website with their Gmail accounts which I created for them, write their content, upload pictures and publish the content to the newmarkettoday website. I know. I know. What's so special about that? Developers have been using this practice for ages. Well let me tell you. I built the functionality in fifteen minutes and another five minutes to customize the site. Google's Blogger website has well defined access controls which can be customized for various NMADA members.

Okay let me get to the point (I know I am dragging but it's good to prolong sometimes...okay).
It is possible to create a professional level website with just Google technologies. Hence the title, I use Google Drive Architecture for building websites.

Blogger.com - You can use it as a WYSIWYG editor and to upload pictures and videos into your website.

Google Page Creator - You can publish static pages to the website. I currently use it to store attachments which are linked to my blog entries.

Google Calendar - You can publish events to Google Calendar and invite guests

Google Docs - You can write and publish documents on your website

Google Checkout - You can use this when you want to enable e-commerce functionality to your website.

Google Mashup Editor - You can use this when you want to create custom views with your data.

Google Sites - You can use this as your integrated Google tool to build and manage your website.

As you can see, it may not be the most straightforward but it is possible. The bottom line is that your don't need spend tons of money on folks like me who can build you a php or a Java enabled websites which have all of the snazzy bells and whistles. If you really to build a good website then you should hire someone however you have a mom and pop store then it is time to use GDA - the next paradigm in the land of many architectural paradigms.


A Google Sites YouTube video

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.