Roadmap to Explorya.com #1

After talking with Pasha last night, I managed to further fine tune the picture of what I want to do with this new site Explorya.com which I will be devoting my entire time andd effort to for the next two years. It is a whole hearted commitment on my part to this idea I have been envisioning for the longest time. The first prototype (ThingsToDoSingapore.com) seemed be getting rather popular amongst the locals, as well as nationalities from multiple countries that frequent Singapore.

By November 2010, I will stop all commercial activites relating to providing customized IT solutions to external third parties as well as all social activites that does not lie in the path I decide to thread.

Now what is Exploray.com? Explorya.com aims to be a community platform that allows the easy sharing of location based information that will help make exploration fun and easy for travellers in various parts of the world. Being a natural extension to the original vision behind ThingsToDoSingapore.com, this platform will be one that is by the people for the people.

One of the main challenges which me and Pasha have identified is the presentation of information of various forms.Thus far these are the types of content objects we have identified:

  • Bus stations
  • Travel routes
  • Accomodation Types
  • Scam and Rip offs
  • Border crossing procedures in remote parts of the world

With no intention to recreate the wheel, I started the initial prototype with the Joomla Content Management System with the use of the JomSocial component.

I envision that the various content objects will be described with the use of XML documents. A modular struture will be enforced. This will allow for easy system extension to accomodate more content object types as the platform progresses to later stages.

One of the main features for the content insertion process will be use wizards. The main intention behind this is to increase usuability for end users. I am currently pondering on how the use of XML could be used to provide a comprehensive description of a wizard content entry process.

A few months ago while I was less occupied, I did create a component for the Joomla 1.5 called the workflow component. It is somewhat similar. However due to sudden increase in commercial activites on my part, this project was left half baked and never released to the open source community. One of the main things I hope to accomplish now is to salvage chunks of the existing codes into this wizard engine I will be building for Explorya.com.

Thus far these are my thoughts which I will slowly make reality over the next few weeks.

Curiosity and interest driven approach towards open source Joomla 1.5 technology and a backward shift

Recently my actions has been driven more by curiosity and interest than monetary purposes. I just splashed USD99 on this Joomla 1.5 component called the JomSocial. At first sight after having it installed on one of my instances, it looks rather promising. I will over the next few days during the weekends go through the documentations of JomSocial to explore the various features they have. Also I will try to see what cross features they have available with other more established Joomla 1.5 components.

The main difference between working on an interest driven project and a monetary driven project is that of the heart and the soul.

In the latter, there is always someone breathing down your neck, crazy deadlines to meet, the need to manage customer expectations so that interest of stakeholders are not compromised. high blood pressure often results. The downside risk is significant in the event of mismanagement in terms of additional cost incurred due to scope creeping by clients or misinterpretion by the technical team.  The upside rewards and capped. Do your job well or totally screw it up, the budget made available by the client is still the same. Haha, like Garis once said ” get bought, get used, and get discarded just like a bloody condom!”

In the former, I am free to explore any possibilities I can envision and things are pretty much dictated by my imagination with no strict deadlines whateverso. I can choose either to rise to great heights or crash and burn, all for the sake of fun and adventure, without the need to be answerable to anyone. The downside risk is ultimately determined by me (time and money), while the upside potential is remains hitherto undiscovered!

Also in terms of the long run, when we are looking at buidling up the volume of passive income, the former is the area to look at. Already a few of my sites are generating income of a comfortable level. Once it hits critical mass, I will do away with the latter option of selling my time to others for the sake of building their sites.

Taking one more step backwards, I am now spending less time ultilizing the skill set I acquired in university (that of programming and software architecturing) and more time ultilizing the skill set I acquired while I was back in junior college (that of reading financial statements and analyzing GDPs). Surprisingly the staff at the various banks have been very helpful in providing me with the information I need. I am also spending more time now receiving instructions from my dad on a daily basis for another skill set I have been thinking of acquiring for a while now. It seems he does know me very well and started imparting all the knowledge he acquired over the years in this field before I even asked! More than that, it seems I have already crossed path with the people of whom knowledge I need.

Talking about the alignment of stars!

Joomla 1.5 Cloud sourcing continued

My first experience with cloud sourcing proves to be quite positive. Within minutes of uploading my technical specifications of one particular Joomla 1.5 module to the net, I got multiple bids placed on this project. Bids can mainly be placed into a few groups of people.

  1. American!!! (surprisingly)
  2. Indians
  3. Chinese
  4. Eastern Europeans of Slavic origins

One thing I notice across the board within each  group is this

Americans try to hard sell their service attempting to by pass the use of the system in the process. The main thing that worries me is the fact I don’t really feel confident they actually read my technical specifications before they tried hard selling their service. Their rates are generally  higher than group 3 and 4.

Indians try their method of selling their services too. Interestingly their prices are generally the most expensive of the lot. These are mainly Indian companies and not individuals. They mainly talk about how great their companies are. In the process they bombard me with tons of information which I do not find relevant at all to my technical requirements. (why are they talking to me about asp.net, when Joomla is the only thing I am interested in at the moment?) Being somewhat impatient as I am when I cannot find anything pertaining to my technical specifications in their responses, I skipped through the whole lot of them and proceeded to the next bidders in line.

The Chinese are very emotional and enthusiastic, their prices are comparable to group 4. One thing that worried me is how them expressed themselves in English. They didn’t really sound very fluent in them. Nothing was addressed with regards to the details of my technical specifications.

Finally there are the Eastern Europeans. One important thing to note is the fact they don’t hard sell at all. In fact, one of them a Russian jumped the gun, by offering the lowest bid and started working on the problem anywayz. He did a very good job and I am very satisfied with his work.

The importance of knowledge management within an organization

Lawrence dropped by at my place this evening, he had some issues with a few of his software packages he apparently had problems solving. In the name of  friendship, I solved it for him. It took but a while.

I was asking about his recently operations and soon realized that he was being extremely occupied of late. Majority of the problem revolves around available resources (time Lawrence has available to him) not capable of existing supporting needs (requirements of his customers)

The secondary problem revolved around the inefficiency of information transfer based on the current most predominant long distance channels of communication, namely voice conversation and text email messages.

Suddenly it occurred to me, that a lack of proper knowledge management system might be a contributing source to his problem. He expressed that supposed he got sick one day and one of his colleagues had to take over his duties, that colleague would be suddenly lost in the midst of a strange environment his is not aware of. He said he had the same problems as well when he first took over the duties of one of his colleagues who departed to join another company.

Also there would have been no need for him to drop by at my place had he been able to effectively transfer his knowledge of the problems he was facing to me via traditional channels of communication.

Thinking back, I realized it was such a waste of the time to have to travel from one place to the next to convey a message simply because long distance communications failed.

Further pondering on this issue of knowledge transfer, it suddenly occurred to me weren’t there multiple instances of developers (me inclusive) around wasting more time than they should because of failure in the knowledge transfer process? To draw a simple example from my experience, there were in deed a few times when I had to commit hours to solve a problem that had already been solved by another of my colleague simple because his knowledge of how to solve the problem could not be effectively transferred to be. Had the transfer been successful I would have to waste tons of time attempting to figure out the solution to a problem and he would not have to waste the same amount of time attempting to guide me through the problem over the phone in real time.

What if there is a knowledge repository over the internet where people could go to for detailed instructions of how to solve their problems? What if someone could solve a problem once and thereafter have his knowledge effectively packaged, stored and there after transmitted to the people who need it without as ambiguity?

There have been past attempts to do so over the internet with the use of forums. However, ambiguity often results due to the difference in the way a message was encrypted in words for storing and thereafter decrypted from these same words for usage. The only site that came close to fulfilling this function over the internet thus far is YouTube which is actually becoming quite popular as a self learning tool used by many.

Just for experimentations sake, and partially due to the inspiration I acquired from my reading of the book “the world is flat”,  during my next IT project, I will attempt to engage a friend in India to aid me in the development of a few functions and components on Joomla. If this method which I envision to use to further promote effective long distance communications works, I might have for myself a viable outsourcing model. Then again fingers crossed.

Some issues with google Ajax language translator service

Apparently Google is having some issue with their language translator service. I found out about this problem when I tried to play around with the gTranslate module for Joomla.The below message got shown.

Error: The server could not complete your request. Try again later.
So it seems relying completely on third party ajax based api is pretty iffy most of the time.

Hmmm.. Funny after a while it works????

A possible solution to an interesting problem

A few months ago I was having supper with Steven and Pasha. That night we were discussing about how to make a site grow organically. Steven raised a very interesting question. Most new websites face the problem of generating new and meaningful content on a timely basis.

The ability to constantly generate new and meaning content on a site requires that the site be in the first place in the form of a content management system. [1]

The second requirement is that either the administrator or his team of people constantly login to the system to create new contents. There is the problem of training and gaining familiarity if we are engaging a team of people new to the system.[2] Also suppose if it is just one person generating the content, that person will be required to commit alot of time and effort to generate such a content. [3]

The obstacle is a formidable one for budding webmasters.

I have been helping Jim with the administration of SingaporeRental for close to a year now. Apparently we were constantly met with problems 2 and 3. This resulted in a bottle neck which slowed down the content generation speed on SingaporeRental.

Today finally being somewhat free and unoccupied with things I decided to do a little RnD. This little RnD process which I got myself engaged in proved to be fruitful afterall. Hopefully with this new implementation problems 2 and 3 can be solved for SingaporeRental.com

I have meanwhile setup the same architecture for a few more the sites under my ownership just for RnD purposes only.

Surprise popularity of Joomla 1.5 Component Simple Thickbox Gallery

After being frustrated having spent a long time looking for a simple gallery component on the Extensions.Joomla.org site to display my portfolio, I decided that I should write my own. To do so, I simplying incorporated the jQuery library, the Thickbox library and created a Joomla 1.5 component that required almost zero configurations.

Users simply installed the components, select the section or category they want displayed and Viola! the page was automatically created for them.

I used it for my own company site to display my portfolio and suddenly had an interesting thought. I might as well have it packaged nicely and submitted to the Joomla Extensions directory.

It took me two weeks and some minor changes here and there (mostly paperwork) to finally get it approved.

After a few days I went and had a look at my Google analytics account which I had installed for my company site a long time ago.

I was in for a surprise. Site traffic surged from a daily volume of less than 10 visitors a few months ago to as high as 400 daily visitors these past few days. It was totally crazy. Visitors were mostly from the US and Europe. So I guess my idea of coming up with solutions to solve potentially painful situations does seem to be a very sound.

Currently I have identified a painful situation that is being experienced in SMEs. I am working on coming up with a solution for them via the use of technology. Hopefully it will help them save time, effort and lead to increased effeciency in their work process.

SWFupload and Joomla integration revisited

After trying 1 hour and getting no where integrating SWFupload fully into the Joomla Administration backend. I finally called it quits.

The problem is that while the SWFupload component shows up nicely in the front end any call by the component to the scripting backend always results in a login request page. This is despite attempting to follow official instructions on the Joomla Documentation Site.

Finally I created a fileuploader.php file that does not have foreign access restricted by the Joomla CMS permissions.

To prevent crackers from exploiting this file as a possible entry point to crack any Joomla systems installed with my soon to be launched Joomla 1.5 component, I have limited file upload type to just XML types only. Now it works fine.

Technical paper on a possible generic PHP based system

This article is for personal reference. Its creation became necessary while pondering on a certain subject, I realized my brains (as with all brains being limited to a maximum of 7+2 variables simultaneously) could not handle all the required variables at once and was therefore unable to see clearly a coherent big picture of the envisioned idea.

Hopefully in creating this technical paper could it be made visible to me any possible design flaws when I examine each part in detail.

The goal is to create a system/framework that does the following

1. Accept many user created xml documents each describing different reptitive tasks that happens in a company in XML.
2. A XML document will contain:
2.1 All fields that exist and their data type
2.2 All stages that exist and their order
2.3 Fields and Stages mapping, access permission to fields available in each stage
2.4 Each stage will provide views of the object defined in the XML document
3. Instantiates an object that holds all that is in the corresponding XML document declared as properties
4. Assign system users as personel in charge of each xml defined stage as this is not captured in the XMl document to keep XML document system independent
5. Serialize this object and store it as a record in the template database table.
6. When Template Manager Object is triggered, it retrieves this template object from the template database table and replicates a working instance which will be then stored in the object database table
7. Has a work manager object which handles the manipulation of data stored within working instance objects.
8. Has a work manager object which handles the synchronization of serialized records in the object database table and the instantiated deserialized records in the system SESSION.
9. Ideally the work manager object will have built in features that will handle concurrency issues.
10. Data types defined in the XML document as part of object property will automatically instantiate existing native classes already included in the System
11. Data types will extend a parent data type which will provide methods which child data types will have to declare. Possible methods envisioned includes
11.1 Display
11.2 Edit
11.3 Store

Potential advantages of what I have envisioned thus far.
1. Database table structure will be independent of the object structure
2. Database structure will effectively be just reduced to two tables irregardless of the variety of object structure.
2.1 template table
2.1.1 field : id -> primary key
2.1.2 field : data -> serialized object
2.2 object table
2.2.1 field : id -> primary key
2.2.2 field : data -> serialized object

3. Framework remains sufficient abstract and can be easily ported from system to system

Potential down side of what I have envisioned thus far.
1. All objects instance in the object table will be loaded into SESSION during each call. This might impose a high load on the database server during the initial loading.
2. It might be difficult to sort or do a search amongst a collection of the same objects as compared to sorting available in traditional SQL search queries.
3. Synchronization issues might arise.
4. Possible out of memory error as more object instance comes into existance.

My next step from here will be to research into design patterns to examine the possible patterns that I could apply on this framework to address issues 2 & 3.

I will also need to look into the PHP documentation to understand the factors that will cause issues 1 & 4

Video Conversion with Virtual Dub

I tried to convert a video from VOB format to AVI format. It took me quite a while. This is because there are so many different softwares around and most of them at first appear to be free but attempts to force payment from the users when users really try to do any video coversion.

Eventually I came across this post http://tigredefogo.blogspot.com/2007/05/tutorial-how-to-convert-dvd-vob-mpeg-2.html. It was a life saver. I managed to download the version of  VirtualDub MPEG-2 that can edit Mpeg 2 files. as well as the necessary codec AC-3 ACM Codec.

Once done I not only could VOB files to AVI files without stupid watermarks, I could also indicate the exact range of frames (time in minutes and seconds) to include for conversion.

Pasha did recommened it to me before. But I guess the version i downloaded was not extensive enough and I did  not configure it properly too. Anyways two thumbs up for Virtual Dub!