If you ever read this blog in the past few years, you can see that I've been a strong believer in what is now called cloud computing. Previously known as web apps, I was always attracted to the idea that it was relatively easy for someone to build an application that is very easy to deploy and provide to customers using the browser and the Internet. I view applications delivery through OEMs to be a model that is getting old and increasingly inconvenient. While it's not bound to disappear; we will still be purchasing store bought boxed software for some time still, this model will become a secondary method of acquiring applications. Downloading programs or using Web Apps will become the primary way of using computers in the very near future. For some system it's the only model (iPhone).
That said, I can predict that while cloud computing and Web App usage will continue to grow for the social and personal market, it will have problems taking a stronghold in the business sector. The fact is, a business consider its data to be its business advantage, its competitive intelligence. In the past two decades, businesses have been used to storing that data intelligence on their own hardware, feeling secure that they can keep it within the realm of their office walls, away from the prying eyes of their competitors. It may be a false sense of security, but it's there.
My personal opinion is that their will be a half-hearted move to their business dataset to cloud storage using the Web, but they will come back to a @home system once the cloud buzz has evaporated.
I don't have facts to back this up, but here are some reasons I see that the business cloud is not going to work well:
1. Businesses will keep wanting to have all their business intelligence within their office
2. They will not like the fact that that business intelligence is spread amongst different companies ( Google Docs, Salesforce, etc )
3. They will not like the fact that some of their business dataset resides out of home, and some does ( Photoshop docs, etc )
Is the current model of purchasing software and keeping all that business dataset on the company's workstation or server the solution? I don't think so. Is business cloud really DOA. No, it's another business model that will be used in a big scale. But pure cloud computing is not the solution for most businesses.
The mini-cloud is.
Friday, August 21, 2009
Saturday, April 12, 2008
Sw4P is alive
I've been spending many nights putting together the Sw4P engine. The Sw4P engine is basically a renderer that takes a fixed type data structure and converts it into a valid HTML page. Given an application name and a page name, the application is converted as a python package and the page is converted as a file and the package.page is imported in the engine. Each page has the same structure: a data area with one tupple making up the page elements; a function area for the user's custom code and a final anchor function used to copy the page's data structure into a changeable array, call the custom function and then return a rendered page.
It's a bit hard to say in one sentence but that's the most of it. Add a few tools to connect to a database system with another structure base schema defined system, basic tools and a wsgi connected server to run it all, and that's what the Sw4P engine is all about.
While the Sw4P can now be used to drive Web Applications, It is not one itself. It contains a few interesting tools like menus, AJAX hooks and the ability to incorporate external tools like nice menus, Javascript objects or any other type of libraries that actually exists right now. However there's still the need for a user to build the page layout structure by hand and write the custom code used to interact it. In fact, a Sw4P developer would need to create each page by hand. That's probably why the first Sw4P application I created is the Sw4P editor.
And it uses Sw4P to build itself.
The idea is simple. Build an editor in a few pages that will actually create Sw4P pages. Once it's working enough to create applications, add new pages and edit them, use the editor to build itself. It imports a page I'm working on, fills the property fields based on the object being looked at and if the user changes some properties the structure is updated at the next load, it is saved and then redrawn.
As I'm writing these lines, all I need to do really is to transfer the changes to the Sw4P engine and have the custom code in the editpage.py Sw4P editor application make a call that saves the modified file to disk. When I reach this point, tonight perhaps, the Sw4P editor application will be able to edit itself. This will speed development considerably.

I'm developing this a few hours every night, after everyone has gone to bed. I use Python 2.5, Apache 2.2, MySQL 5.1, mod_wsgi, MySQLdb and Komodo on an Inspiron 4150 with 512Mg RAM running XP I bought in 2002. I would use Eclipse with PyDev, but there's just not enough RAM to run it all, plus Firefox 2 with Firebug, IE7 and Safari.
It's a bit hard to say in one sentence but that's the most of it. Add a few tools to connect to a database system with another structure base schema defined system, basic tools and a wsgi connected server to run it all, and that's what the Sw4P engine is all about.
While the Sw4P can now be used to drive Web Applications, It is not one itself. It contains a few interesting tools like menus, AJAX hooks and the ability to incorporate external tools like nice menus, Javascript objects or any other type of libraries that actually exists right now. However there's still the need for a user to build the page layout structure by hand and write the custom code used to interact it. In fact, a Sw4P developer would need to create each page by hand. That's probably why the first Sw4P application I created is the Sw4P editor.
And it uses Sw4P to build itself.
The idea is simple. Build an editor in a few pages that will actually create Sw4P pages. Once it's working enough to create applications, add new pages and edit them, use the editor to build itself. It imports a page I'm working on, fills the property fields based on the object being looked at and if the user changes some properties the structure is updated at the next load, it is saved and then redrawn.
As I'm writing these lines, all I need to do really is to transfer the changes to the Sw4P engine and have the custom code in the editpage.py Sw4P editor application make a call that saves the modified file to disk. When I reach this point, tonight perhaps, the Sw4P editor application will be able to edit itself. This will speed development considerably.

I'm developing this a few hours every night, after everyone has gone to bed. I use Python 2.5, Apache 2.2, MySQL 5.1, mod_wsgi, MySQLdb and Komodo on an Inspiron 4150 with 512Mg RAM running XP I bought in 2002. I would use Eclipse with PyDev, but there's just not enough RAM to run it all, plus Firefox 2 with Firebug, IE7 and Safari.
Sunday, December 23, 2007
The ad blocker
I was at my brother's place and was demonstrating to my mother the site I am working on in my sparingly small time off, www.idliketohave.com. The idea behind the site is that it should pay for itself with the ads that are on the page.
My brother however had an ad blocker and none of the ads appeared on the screen, totally defeating the usefulness of my site and robbing me of any small profit I may make if someone had wanted to click on the link.
Now my site gives a service I don't charge for and it costs me $30/yr to keep the name and $220/yr to host. Now I know it doesn't sound a lot because you're probably rich, but to me that's money spent for nothing, and that's not calculating the amount of time I spent on it. I'm sure I'm not the only one in this position. In fact I'm sure there are a lot of people with low revenues who are hoping to make a bit of money from their site (they pay for). Apart from the scum sites, rare the huge corporations who rely on ads to survive, except perhaps some like amazon, dell, etc.
So the ad blocker is really killing the little guy, telling him he has no space on the Web. How can this bother the Web user if s/he sees a few ads on the Web page they are on (popup ads are a different beasts altogether because they are obtrusive)? It doesn't cost them anything to go there, so why block the ads on the actual page. What they're doing really is taking away a very small income from the author of the Web page and asking him to fork all the money for his site, something s/he doesn't need to do.
It's ironic that SuperAddBlocker .com relies on affiliates and ads for their sales. Now I wonder how many of their ads their product has blocked.
My brother however had an ad blocker and none of the ads appeared on the screen, totally defeating the usefulness of my site and robbing me of any small profit I may make if someone had wanted to click on the link.
Now my site gives a service I don't charge for and it costs me $30/yr to keep the name and $220/yr to host. Now I know it doesn't sound a lot because you're probably rich, but to me that's money spent for nothing, and that's not calculating the amount of time I spent on it. I'm sure I'm not the only one in this position. In fact I'm sure there are a lot of people with low revenues who are hoping to make a bit of money from their site (they pay for). Apart from the scum sites, rare the huge corporations who rely on ads to survive, except perhaps some like amazon, dell, etc.
So the ad blocker is really killing the little guy, telling him he has no space on the Web. How can this bother the Web user if s/he sees a few ads on the Web page they are on (popup ads are a different beasts altogether because they are obtrusive)? It doesn't cost them anything to go there, so why block the ads on the actual page. What they're doing really is taking away a very small income from the author of the Web page and asking him to fork all the money for his site, something s/he doesn't need to do.
It's ironic that SuperAddBlocker .com relies on affiliates and ads for their sales. Now I wonder how many of their ads their product has blocked.
Thursday, April 19, 2007
$8.42
It's been a while, and for the first six months since Matt's been with us I have been rather lazy (tired, exhausted, name it). I'm also working hard as a contractor for now. But it's time for a status report.
$8.42
That's what I've made so far with idliketohave.com. It may not seem much but it's more then $0.00 -- Furthermore, it's unsolicitated money and that makes me proud. If it can become viral, this amount may come to an interesting amount.
Idliketohave.com is currently down, I'm redoing a la AJAX and hope to be back in the next few weeks for a big push. So far the rehaul is going well.
SW4P is also going well though more slowly. The design is done, all I need to do is to complete the engine and the renderer should come right after.
I have more time now, and it's time to get these things running.
$8.42
That's what I've made so far with idliketohave.com. It may not seem much but it's more then $0.00 -- Furthermore, it's unsolicitated money and that makes me proud. If it can become viral, this amount may come to an interesting amount.
Idliketohave.com is currently down, I'm redoing a la AJAX and hope to be back in the next few weeks for a big push. So far the rehaul is going well.
SW4P is also going well though more slowly. The design is done, all I need to do is to complete the engine and the renderer should come right after.
I have more time now, and it's time to get these things running.
Wednesday, April 18, 2007
The BUS principal
Two events of significance have happened to me in the past six months. The first and foremost is that I have welcomed my third child Mathieu, brother to sister Sabrina and big brother Max. They have been my pride and joy and have tought me the meaning of true love. The other is that I am now contracted by the best speech recognition company in research and development as a senior data engineer.
My job is simple and complicated at the same time. Over the years the company has saved hundreds of millions of pieces of data from many acquisitions and that data needs some serious organizing. There are terabytes of data and hundreds of millions of entries coming in continuously and all this information needs to be organized for safe storage and data mining. Add to this that there is tons of legacy data coming in the shape of many different types of databases, some relatively well documented, others without a shred of info, except for the engineers who have created them. This company is a prime target to become a victim of the bus principal.
I worked for 10 years in a small company involved in targeted learning. It would go to a client, analyze what it did and transferred that knowledge into skills. Skills were assigned to jobs, employees were evaluated and then trained only on the skills they needed to do the job. My participation had to do with software: I wrote every major applications which involved many versions of an LMS, the last being a full-fledge Web app; an elearning course editor system used to write training modules that have create thousands of pages and been seen millions of times; other tools and experimentations to make things better. The software is now being used by a greater part of the North American Pulp and Paper industry. Overall I have written almost a million lines of code in these 10 years.
During a meeting, management came to realize that I was the only one who knew all of this code and data and the question came out: what happens to our company if Martin gets hit by a bus?
It is important to evaluate your business processes and determine which one are invaluable to your company. It's in fact quite simple: you need to analyze what is it that you do you can't live without and who are your resources that know how to do that particular process. Then determine how many people in your organisation are able to fill that need. Are these processes documented? Can you turn around and easily find new resources if you lost the the ones you have? Do you have any plan to at least transfer some of that knowledge? It's naive to assume that you would never lose someone at the worst possible moment.
A simple method is to look at each of your employees and to ask yourself: what happens if she or he gets hit by a bus?
Personaly, if I get hit by a bus, my employer's problems will be the least of my worries. However, as a company you need to set yourself up in such a way that you have some sort of backups, may it be through documentation or by task sharing, after a thorough analysis of your complete business processes, known and unknown. It's not that hard to do, trust me. Worst case get some help from someone who is knowledgeable about it. It's a bit like backing up a filesystem: you never know when you need a backup but are you ever happy when you do. Survival can depend on a good backup strategy. We could probably help you with this.
Send me a note if you have some good bus principal adventures.
See you Saturday Pascal.
My job is simple and complicated at the same time. Over the years the company has saved hundreds of millions of pieces of data from many acquisitions and that data needs some serious organizing. There are terabytes of data and hundreds of millions of entries coming in continuously and all this information needs to be organized for safe storage and data mining. Add to this that there is tons of legacy data coming in the shape of many different types of databases, some relatively well documented, others without a shred of info, except for the engineers who have created them. This company is a prime target to become a victim of the bus principal.
I worked for 10 years in a small company involved in targeted learning. It would go to a client, analyze what it did and transferred that knowledge into skills. Skills were assigned to jobs, employees were evaluated and then trained only on the skills they needed to do the job. My participation had to do with software: I wrote every major applications which involved many versions of an LMS, the last being a full-fledge Web app; an elearning course editor system used to write training modules that have create thousands of pages and been seen millions of times; other tools and experimentations to make things better. The software is now being used by a greater part of the North American Pulp and Paper industry. Overall I have written almost a million lines of code in these 10 years.
During a meeting, management came to realize that I was the only one who knew all of this code and data and the question came out: what happens to our company if Martin gets hit by a bus?
It is important to evaluate your business processes and determine which one are invaluable to your company. It's in fact quite simple: you need to analyze what is it that you do you can't live without and who are your resources that know how to do that particular process. Then determine how many people in your organisation are able to fill that need. Are these processes documented? Can you turn around and easily find new resources if you lost the the ones you have? Do you have any plan to at least transfer some of that knowledge? It's naive to assume that you would never lose someone at the worst possible moment.
A simple method is to look at each of your employees and to ask yourself: what happens if she or he gets hit by a bus?
Personaly, if I get hit by a bus, my employer's problems will be the least of my worries. However, as a company you need to set yourself up in such a way that you have some sort of backups, may it be through documentation or by task sharing, after a thorough analysis of your complete business processes, known and unknown. It's not that hard to do, trust me. Worst case get some help from someone who is knowledgeable about it. It's a bit like backing up a filesystem: you never know when you need a backup but are you ever happy when you do. Survival can depend on a good backup strategy. We could probably help you with this.
Send me a note if you have some good bus principal adventures.
See you Saturday Pascal.
Wednesday, November 15, 2006
First hits
I always get excited with the first unsolicited hits I get on one of my sites. Idliketohave.com is starting to generate traffic and that's making me smile. It's not yet advertised, and I'm barely finishing the second version (which works a lot better then the first).
Since Idliketohave.com is a wish factory, a place where people can make wishes and have others answer them, I hope for my new friends to have their wishes answered.
Since Idliketohave.com is a wish factory, a place where people can make wishes and have others answer them, I hope for my new friends to have their wishes answered.
Wednesday, November 08, 2006
Web Application Stats
I visited a company that had just released a Web App, and were quite surprised w/r to its popularity. Within weeks of operation, they were receiving a lot more hits then they had anticipated, resulting in speed problems. When discussing their infrastructure, I asked them what type of metrics they were using to analyze their throughput. They answered that they did not have time to do this.
I knew at this point in the conversation how green these people were. A big mistake in this business is that someone gets a great idea, writes it with little or no consideration for the entire infrastructure needed to actually run the application, then finds themselves spending a lot of effort, time and money to keep the setup running.
There are already many mistakes done w/r to the above procedure, many that could have been avoided had their been a global vision in the planning of the project, one that involved all of administration, infrastructure, marketing, programming, database management, support, documentation, etc. It's very important to have a solid plan that encompasses all of the above departments.
And I'm not even talking about specifics like QA, Unit Testing, Sourcing, Methodologies, others.
A very important part of the whole project (actually, all parts are important) is that of metrics. If you don't know what's happening, you have no way of fixing the problem you will encounter in the first place. It could be that adding servers will temporarily solve speed problems, but there is so much that can be added before the increase in speed becomes insignificant. You need to know where it hurts.
In the book "Information at the speed of thought", Bill Gates states that you should be happy with good results, but it's primordial for a business to live to make sure bad news also get through to management. Often someone will avoid propagating bad news for fear of reprisals or because they think they can fix the problems themselves. A firm that doesn't reprimand bad news has more chances of knowing they exist, and then do something about it. Or they can fall, look at Airbus.
It's the same in a Web Application infrastructure. You need to be able to monitor what's happening at the level of your user hits, bandwidth, disk memory usage, to recognize when there's a problem with respect to access. Tools like Analog (http://www.analog.cx/) and Webalizer (http://www.mrunix.net/webalizer/) are excellent for this. I use them a lot.
But that's not all. You need to know what's happening at the database level as well. You need to measure how long your SQL requests take under light, med and heavy load to see if they need to be optimized. Maybe you're having problems with the machines. Use top, iostat and netstat to see how much demand your apps are asking of the computer. You also need to go further by profiling your applications, just to see where the time is spent. If you use a scripting language and it takes 6ms every time you load the page (say PHP) and opcode it, then you must realize that 100 pages will take 600ms, just in setup time. And that eats away at one important metric, which is the user/second hit rate. Users don't like slow pages. A slow site may never be used again.
Like Unit testing, setting up a good metrics strategy may seem annoying at first. But I can tell you it may well become a life saver in the future, or a simple yet effective benchmark you may use to tell management that all going fine.
I knew at this point in the conversation how green these people were. A big mistake in this business is that someone gets a great idea, writes it with little or no consideration for the entire infrastructure needed to actually run the application, then finds themselves spending a lot of effort, time and money to keep the setup running.
There are already many mistakes done w/r to the above procedure, many that could have been avoided had their been a global vision in the planning of the project, one that involved all of administration, infrastructure, marketing, programming, database management, support, documentation, etc. It's very important to have a solid plan that encompasses all of the above departments.
And I'm not even talking about specifics like QA, Unit Testing, Sourcing, Methodologies, others.
A very important part of the whole project (actually, all parts are important) is that of metrics. If you don't know what's happening, you have no way of fixing the problem you will encounter in the first place. It could be that adding servers will temporarily solve speed problems, but there is so much that can be added before the increase in speed becomes insignificant. You need to know where it hurts.
In the book "Information at the speed of thought", Bill Gates states that you should be happy with good results, but it's primordial for a business to live to make sure bad news also get through to management. Often someone will avoid propagating bad news for fear of reprisals or because they think they can fix the problems themselves. A firm that doesn't reprimand bad news has more chances of knowing they exist, and then do something about it. Or they can fall, look at Airbus.
It's the same in a Web Application infrastructure. You need to be able to monitor what's happening at the level of your user hits, bandwidth, disk memory usage, to recognize when there's a problem with respect to access. Tools like Analog (http://www.analog.cx/) and Webalizer (http://www.mrunix.net/webalizer/) are excellent for this. I use them a lot.
But that's not all. You need to know what's happening at the database level as well. You need to measure how long your SQL requests take under light, med and heavy load to see if they need to be optimized. Maybe you're having problems with the machines. Use top, iostat and netstat to see how much demand your apps are asking of the computer. You also need to go further by profiling your applications, just to see where the time is spent. If you use a scripting language and it takes 6ms every time you load the page (say PHP) and opcode it, then you must realize that 100 pages will take 600ms, just in setup time. And that eats away at one important metric, which is the user/second hit rate. Users don't like slow pages. A slow site may never be used again.
Like Unit testing, setting up a good metrics strategy may seem annoying at first. But I can tell you it may well become a life saver in the future, or a simple yet effective benchmark you may use to tell management that all going fine.
Your First Time
Do you remember your first time? I do.
I had just purchased a magazine that had an article on Basic programming and mathematical functions. There was this code that was used to infinitely draw a sine curve. I had never programmed before, I was 18 and I didn't have the money to buy a computer. I didn't even know anyone who had one.
It was 1980.
So I wandered in my college's computer center and sat at one of the two CRT terminals. I had no real idea what I was doing, I didn't have to type a password or anything, I just started to type the code I had studied so diligently. When I was done typing it I did something and it just ran ( I don't think we saved files at that point, just typed run or something ).
Et voila, the sine curve is drawing itself on the screen, dancing graciously from one side of the screen to the other. It was an amazing moment in my life, I was getting the feeling that wow, imagine all the things I could do ...
My ambitions were abruptly cut by the sysadmin standing behind me going: "What are you doing? Who are you?". I jumped, having no idea what to say. "Do you realize you are slowing down the entire school computer system?" he continued. "You are BANNED from this room".
That was the first time I got someone banned from a computer room. The person whose unattended station I used to cripple the system, that is.
I had just purchased a magazine that had an article on Basic programming and mathematical functions. There was this code that was used to infinitely draw a sine curve. I had never programmed before, I was 18 and I didn't have the money to buy a computer. I didn't even know anyone who had one.
It was 1980.
So I wandered in my college's computer center and sat at one of the two CRT terminals. I had no real idea what I was doing, I didn't have to type a password or anything, I just started to type the code I had studied so diligently. When I was done typing it I did something and it just ran ( I don't think we saved files at that point, just typed run or something ).
Et voila, the sine curve is drawing itself on the screen, dancing graciously from one side of the screen to the other. It was an amazing moment in my life, I was getting the feeling that wow, imagine all the things I could do ...
My ambitions were abruptly cut by the sysadmin standing behind me going: "What are you doing? Who are you?". I jumped, having no idea what to say. "Do you realize you are slowing down the entire school computer system?" he continued. "You are BANNED from this room".
That was the first time I got someone banned from a computer room. The person whose unattended station I used to cripple the system, that is.
Subscribe to:
Posts (Atom)