Monday, July 20, 2009
Monday, November 24, 2008
Evolution and Iterative Development
Iterative software development seems like a very useful progress in the realm of software engineering; however, God is probably using the very same concept for doing His business. Imagine God as a software engineer creating the universe in a software project. Evolution looks like a perfect model of iterative development when new features are added to a already living creature through genetic drifts and adaptations. The different branches of development have already gone through millions of years of active progress and human is a beta release of the final product though with a lot of bugs. In the course of human development there are many auxiliary modules and libraries developed that assist the final product to function smoothly. They include animals and plants. The first bug in this product is that it tends to do a lot of data corruption on libraries and the platform. These corruptions may lead to fatal crashes at some point. Another important bug is its inability to work in multithreaded environment. Human usually can't share platform resources among its threads. Some threads usually lock resources and leads the others to halt. Threads also sometimes interfere with each other and cause crashes. I hope the programmer pinpoints the issues and release a better build soon.
Wednesday, November 19, 2008
Does God use abstraction ?
Recently I had so many problems with a device driver on my computer and during that time I though of something interesting. We use abstraction to deal with complex systems - systems that can not be understood in its entirety - and this is one the unique capabilities of human mind. It seems that God is using the same tool in communication with human. For the sake of analogy, we can consider God as a sophisticated graphic card with a lot of capabilities and human as an operating system with very limited hardware support. How can we use the graphics features through this limited operating system without knowing how it works? What about a device driver that gives us a easy to use high level consistenet API and make the hardware (God) identifiable and usable for the applications on the operating system (human). sounds good! so we get a basic device driver to let us have at least a console to display commands and system interaction for now.
At the same time, the operating system has an active community of developers zealously enhancing and improving its features. After a while, we are getting to the point to use a GUI shell on our operating system but the device driver is only capable of displaying two colors because that was the ultimate capability of last version of the operating system. Now we need a driver update. Lets get a newer driver that supports at least 256 colors that let us have a fancier look and feel.
Developers never stop. They are just developing a new bitmap image editor that requires millions of colors. We are pretty sure that the graphics hardware is able to handle but we rely on a device driver for graphics support which is now limited to 256 colors only. A new driver version again? That seems to be the only way to have millions of color without major change to the operating system. This process continues ...
What is the version of your driver ?
At the same time, the operating system has an active community of developers zealously enhancing and improving its features. After a while, we are getting to the point to use a GUI shell on our operating system but the device driver is only capable of displaying two colors because that was the ultimate capability of last version of the operating system. Now we need a driver update. Lets get a newer driver that supports at least 256 colors that let us have a fancier look and feel.
Developers never stop. They are just developing a new bitmap image editor that requires millions of colors. We are pretty sure that the graphics hardware is able to handle but we rely on a device driver for graphics support which is now limited to 256 colors only. A new driver version again? That seems to be the only way to have millions of color without major change to the operating system. This process continues ...
What is the version of your driver ?
Thursday, June 15, 2006
Divine Three-tire Architecture
Three-tier architecture in software engineering is a successful solution for enterprise level systems. In essence it decouples resposibilities and processes over three layers. Representation layer that runs on client machines, bussiness layer that runs on middleware embracing business processes and persistence layer that inclueds backend databases and legacy systems.
What enterprise greater than mankind can you imagine? So it must not be surprising that god exploits three-tier architecture to manage it. We -human being - can be assumed as respresnetation layer that live on client (earth) doing our chores. Middleware is prophets that communicate God's teachings to human being and makes God transparent for us. They provide all the services that improve our living quality in the form of packets named "religious teachings". So we only need to know the prophets and via them we know God excatly like a multi tier system that each layer just needs to know its adjacent layer and God is the backend persistence layer that actually persist all of our doings for retribution.
What enterprise greater than mankind can you imagine? So it must not be surprising that god exploits three-tier architecture to manage it. We -human being - can be assumed as respresnetation layer that live on client (earth) doing our chores. Middleware is prophets that communicate God's teachings to human being and makes God transparent for us. They provide all the services that improve our living quality in the form of packets named "religious teachings". So we only need to know the prophets and via them we know God excatly like a multi tier system that each layer just needs to know its adjacent layer and God is the backend persistence layer that actually persist all of our doings for retribution.
Friday, June 09, 2006
New Generation of Multimedia Albums
The advent of WWW and its widespread use in mid 90s resulted in many people take advantage of it for saving thier multimedia content over the Internet. Also many big service providers such as Yahoo and MSN contributed so much to this desire by providing groups and photo albums and so on for free to everyone. These cyber albums and galleries was very impressive in that days providing you sharing your multimedia content with every one in the world.
but it was not the end. That's really great to share your content with all people but it is nothing more than digital counterpart (exactly counterpart) of traditional photo albums. Information technology is actually much more powerful than providing just this facilities (Although it is very nice and useful ). The main drawback of these traditional-like multimedia content collections is that it must be known before use. In blunt terms you must know excatlly where to find what you want. In almost all reall occasions we just know what we want and expect from Internet to help us find where it is. The booming search engine Google is excatly do this albeit in a general purpose.
Experts soon came up with innovative ideas for addressing this shortcoming in multimedia contents. Flickr(photo) , Dailymotion(video) and YouTube(video) are actually utilizing these idea to help users just know what they want. The technique they apply is very simple. They save all the contents in flat way (contrary to photo albums that you can define whatever hierarchy you need) but assign userdefined tags to each resource. A tag is not anything more than a string of characters that describe the resource from a particular viewpoint. I think it provides the same abstraction that heirarchy provides but not in exclusive way and that's the actual improvement.
This way of organizing resources in Internet is just started but going to change the way we think about Internet very soon.
but it was not the end. That's really great to share your content with all people but it is nothing more than digital counterpart (exactly counterpart) of traditional photo albums. Information technology is actually much more powerful than providing just this facilities (Although it is very nice and useful ). The main drawback of these traditional-like multimedia content collections is that it must be known before use. In blunt terms you must know excatlly where to find what you want. In almost all reall occasions we just know what we want and expect from Internet to help us find where it is. The booming search engine Google is excatly do this albeit in a general purpose.
Experts soon came up with innovative ideas for addressing this shortcoming in multimedia contents. Flickr(photo) , Dailymotion(video) and YouTube(video) are actually utilizing these idea to help users just know what they want. The technique they apply is very simple. They save all the contents in flat way (contrary to photo albums that you can define whatever hierarchy you need) but assign userdefined tags to each resource. A tag is not anything more than a string of characters that describe the resource from a particular viewpoint. I think it provides the same abstraction that heirarchy provides but not in exclusive way and that's the actual improvement.
This way of organizing resources in Internet is just started but going to change the way we think about Internet very soon.
Tuesday, May 23, 2006
Wikipedia
Wikipedia is going to change everyone's thoughts about knowledge. knowledge is not anymore a property. exactly open source in software is follwoing this idea. Sheer software is not a property as well as knowledge in general. The real property is creativity and curiosity. This trend will changes many values in professional lives of high technology practitioner. As I think in near future real value of an engineer is not what he or she knows but how fast he can gain any specific ability becasue the boundaries of science and technology will soon surpass human mental capacity or have surpassed already.
Another important implication of Wikipedia and open source notions is that human beings has reached to a moral maturity that is unprecedented in history although some thinks human is morally degrading. I think offering knowledge to others without salary or any expectation is really significant point. This tenet is what will pave the way for Golden Age of human life as all religions have predicted.
Let's help this cause.
Another important implication of Wikipedia and open source notions is that human beings has reached to a moral maturity that is unprecedented in history although some thinks human is morally degrading. I think offering knowledge to others without salary or any expectation is really significant point. This tenet is what will pave the way for Golden Age of human life as all religions have predicted.
Let's help this cause.
Saturday, May 20, 2006
XML is divine !
Future of software developemet technologies are really obscure for me. I don't know who will win the battle. Open source commuinty and LAMP or Microsoft .NET or even Sun JEE.
From another view is there any reason for any of these technologies to surpass otheres ? I think interoperability is the key to this debate. If all of these technologies could work in an platform neutral and consistenet way with eachother then they can all live in peace and their fans could enjoy writing their favourite codes.
XML will change all. XML is fated to unify divergent software technologies. With XML all softwares despite of their intended platform , their initial language and so on can interchage data and use eachother services.
Whenever I think to this unifying technology I get my hopes up that this is a preamble to people and commuinties unity. Why don't human communities simulate the way XML is unfying software technology in human societies ? The point is commuincation and in human community it is language. Why don't we talk in one language ? What is XML counterpart in human world ? Is this the elixir to put an end to enmity and hatred in human societies ?
From another view is there any reason for any of these technologies to surpass otheres ? I think interoperability is the key to this debate. If all of these technologies could work in an platform neutral and consistenet way with eachother then they can all live in peace and their fans could enjoy writing their favourite codes.
XML will change all. XML is fated to unify divergent software technologies. With XML all softwares despite of their intended platform , their initial language and so on can interchage data and use eachother services.
Whenever I think to this unifying technology I get my hopes up that this is a preamble to people and commuinties unity. Why don't human communities simulate the way XML is unfying software technology in human societies ? The point is commuincation and in human community it is language. Why don't we talk in one language ? What is XML counterpart in human world ? Is this the elixir to put an end to enmity and hatred in human societies ?
Subscribe to:
Posts (Atom)