Garo Garabedyan- a private blog

Everything here is written and belongs to me except otherwise noted.

Archive for March 2008

New O.S. based on Mashups

with one comment

Mashups, a small applications which communicate between each other, are very powerful. XHTML is so standard and this enables mashups to communicate in a very high level of data integrity. Web is going to be a new Operating system which operates extremely powerful with abstract data.

WWW like an Operating System. SOA in the presentation level
On this post, I have expressed an idea of using JavaScript Script Tag Hack (as Douglas Crockford calls it here: http://javascript.crockford.com/script.html) as a transport pack of data. I have added some additional thoughts about applying SameOrigin Policy to SRC attributes of SCRIPT tags and proving a document space to them which is the only XHTML content they can read/write. (one XHTML content can be read/write by scripts, but this JSs can’t access space beyond their defined).

Now I have worked on this idea, and I upgraded it.

I will explain it by an example:
domain SomeDomain adds to its DOM tree:
<dynamicJavaScript src=”different domain main JS applicaiton file” onError=”SomeDomain JS function to handle the problem HTMLspace=”document.App1.Space” jsInterfaceToCommunicate=”SomeDomain JS class which tells serves some wishes loading app needs like accessing general JS functions (alert, confirm and so on), SomeDomain communication between apps on the platform and so on” id=”app1“>

dynamicJavaScript tag can has additional events like: onLoad, onExit

The JS code loaded in document.App1.Space will not be able to access different DOM space, neither reading something different, nor writing somewhere else.
Stopping execution of this kind of JS codes can be able so: app1.stop();

JS code loaded in dynamicJavaScript tag is free to execute XMLHttpRequest-s to its domain. It is free to use its HTML space (which is granted in the dynamicJavaScript tag parameter) as he wants to without any interruption. It is actually an HTML page running like in IFrame, but with the ability to connect with the rest system and this way exchange data, call functions and so through a secure line and when it is expressed it will happen only with the permission of the both sides of JS apps.

If any of this attributes is not set, it is treated as a sign of enabling open access. Behaving like nowadays mashups.

Written by garabedyan

March 31, 2008 at 11:11

Extreamly Powerful SOA Task Manager in Smart Mobile Phones

with one comment

Popular task managers are oriented to remembering tasks according to previously set date and time of reminding.

In real life people are engaged in tasks with not strict scheduled time of start and end. Many time people have to consider with their place in the city right now, about the city traffic in this moment and so on.

Thing are too complicated in order to be done in one moment. Why don’t we use Business Intelligence and SOA?

Imagine a Task Manager which runs on GPRS mobile phone. This software can establish a connection to the business server and retrieve information about the workers which work around the user and understand is there something important which is suitable for him.

Just like Twitter, the user will be free to enter information about his job at the moment before starting doing it and this way to inform all his chiefs, the workflow (Business intelligence) software and co-workers.

Desktop Computers are too old for the business, now people start from the web (which is its own SOA OS). Desktop is useful for many things, but not for business, which is fast.

It is crucial to enable mobile phone applications to react on events. Do you know a general interface between the cell phone OS and every application, by which interface the application can declare interest on some events, and when they occur, the application to be informed. It is not energy efficient to have many applications running at same time and each of them to ask periodically about possible changes (events). Mobile Phone have to use hardware to restrict when something get changed, and when it changes a call to be made to the OS, not only rising a flag.

—-

About the idea expressed in the last paragraph:

We know that mobile phones need to run J2ME in order to execute any java application. Now are modern, not java applets and applications, but widgets, which are placed in desktops as small apps.

Imagine that widgets are written in JavaScript, imagine that you can run such a widget on your cell phone.

How does it happen?

I introduce you Mozilla Prism, which is an application which tries to splits web applications into Desktop applications.

Imagine Mozilla Prism runs on your cell phone (may be on J2ME). It enables you to interact with our web applications like they are part of your phone’s software.

It will be great if Mozilla Prism enables overwriting of some JS DOM events with the aim of communication between the cell phone features, the rest JS widgets and the JavaScript widget. Event-Driven architecture of widgets can be enabled this way.

There are many things that we can say about JS Widgets vs Small Java Apps. Why you think Linux, Mac OS, Windows Vista provide small application execution on your desktop.

Written by garabedyan

March 11, 2008 at 14:15

Conflict in Armenia after the elections

without comments

No matter that competition between politic leaders before elections can give something good to the people of Armenia, now after the elections the competition between Ter-Petrossian and Serzh Sarkissian cause only bad consequences about Armenia citizens.

Fair competition is always treated as a born place of better products and ideas. But the competition ends with the elections which is the final legal stand for fair competition.

Political competition before elections is useful to Armenia, after the elections it is only useful to its enemies.

Written by garabedyan

March 11, 2008 at 14:00

Posted in Uncategorized

Online messangers to be able to parallel log in at more than one account

without comments

We all know how people use more than one mobile phone. they often use one for their job, one for their friends. Don’t you think that it is time to apply this to online messengers, too.

Imagine Gmail Talk having an ability to connect to your Gmail account and to your MSN account in example. To be able to use the both accounts in parallel. Isn’t it useful.

Or maybe Skype to provide you with the ability to one skype account to be attached more than one skype names and each of this names to be controlled from the account. Skype names to be able to be transmitted around accounts like SIM cards in Mobile Phones. It is a good option to be able to log in with your account and to activate only your business account for your needs at the particular moment.

Written by garabedyan

March 11, 2008 at 11:18

Virtual world as a place to meet and interact with people on web page

with 2 comments

This New Virtual World (known to me by the explaination of Marvin Minsky, MIT in a presentation “Searching the HAL”) will enable people to meet in real time with other users browsing the same content and work in groups (interact in groups around the web).
Google Docs enables people to collaborate on editing one document in real time, by analogy, the above is browsing in collaboration.

Imagine you are browsing and you saw a page which content, functionality or whatever is interesting to you. You want to meet with people out there like you which are visiting this page just right now in the moment (in order to chat in real time with them) or in the past and left a comment, rating, reference or whatever (in order to read, change (wiki philosophy) or write your own on the base of theirs). You just want more from the web.
This can be impelemented by a browser toolbar (by collecting agreements of the participants about some privacy policy and other permission). Visitors can connect between each other in real time. Change some data (RDF data in example) about the page in a public Wiki generated page about the browsed content (if the content on the page is dynamic it is a little bit more complicated than the situation with a static web content). Connect with the authors of the browsed content.

When computers made things extremely fast and people started doing their tasks without bureaucracy they have lost the social contacts between other people doing the same thing. At this time psychologist started examining that using computers is making user to lose its social behavior skills. I think that this loose is not reasonable, technology can keep the social contact in every computer task.

Interact and present your iteration to other people in real time with the page (content) by surfing it and providing additional content (audio, video, text, web links). Or just being a spectator of the others presentations on the content. Like they all sit next to you and show you how they browse the web.

MyBlogLog http://www.mybloglog.com/ is a Yahoo!’s tool which enables visitors to see the recent visitors, but MyBlogLog doesn’t enable interaction in groups with the web page.

An interesting in the topic of the post is a new Microsoft Research’s product called SearchTogether (author of the idea: Meredith Ringel Morris).

Google Talk ChatBack is a tool which enables blog owners to insert a JS app in their blogs and this way let visitors to chat directly to them.

Social networking as a possible platform for such a Virtual World interactions
Imagine you are in a virtual room and meet there with a friend. In the room is a ball, so you pick it up, make it like a flower and throw it to your friend. Your friend catches it and makes of it a football ball and kicks it to you.

Meeting with other web visitors which visit the same content is a social connection. Social networking has a big data base with peoples, it only needs to present a toolbar (browser plug-in) which enables people to “meet” each other on the web.

In a virtual library where you take a book, go next to your friend, point some paragraph of it, create a abstract virtual model (with some mashup tools, i.e. drawing apps) of what the paragraph was about, step by step as the text explains (and all these steps are viewed by your friend) and show how the model will behave further (depending on the subject of your meeting). The wonderful thing is that your friend(s) will be able to watch the all process and interrupt you (if it is needed) and interact with the model by their own. I hope that this can be enabled by technology which is not dependent of the content of the web.

Public Web applications (wiki, blog, etc) are created with the idea to let visitors to interact with the others visitors’ work. Why don’t you let visitors interact in groups with the all web content. (with a toolbar or browser plug-in, not a web site).

Imagine the web as a virtual library of many virtual objects (papers, web applications and so on) and you took your friend and present him some application, the same interactions with it are supposed to be viewed from your friend’s monitor.

New: German company Weblin provided users with avatars by which they can surf the web. When a web user visits a web page he meets with the rest people in the network of Weblin visiting the same page at this moment. Users can chat in private or with the all visitors of the concrete web page.

— Added on 26 September 2008

The 3D future, according to Microsoft: A Photosynth-based “Spatial Web”
http://www.thestandard.com/news/2008/09/25/3d-future-according-microsoft-photosynth-based-spatial-web

Written by garabedyan

March 8, 2008 at 11:24

Zoho Creator and the Future of the Commercial Web

with one comment

If Zoho Creator has a component about Price (money transfer) and this component enables the visitor to enter private information without the creator of the form to be able to get this information.

Internet and transferring money through it aren’t designed to apply the general open policy of the Web. In order to open an Internet store you must have your own server with additional technologies installed on it. Even then you are technologically free to access information about your buyers and this way break the law (i.e. credit card information). Buyers knew that and try to recognize secure stores in the Internet by trusting on friends and media advises.
Selling and buying something on the Internet doesn’t seem very secure at all.

First, the seller have to provide a secure connection. He have to explain well what are the product offers and how the price differs.
The buyer should be sure that the seller will not take more money that the offer says. The buyer have to be secure that the numbers of the credit cards wouldn’t be saved and after the transaction used again.
Both the buyer and the seller have to establish a secure web connection disabling any hacker intervention which can steal a password by sniffing or by using technology holes on the server (e.x: XSS). It is a lot of technology work to be done in order to establish a service which works with credit cards on your web page.

Why don’t you use Zoho Creator like application which will not allow the seller to say one price and then transfer different, which will not allow the both sides to know each other’s private information. But to know only the information that they was agreed to transfer and what the law says.

The reason Zoho Creator will beat the rest application in the field of Internet money transactions is that Zoho Creator enables to its users (the sellers) to fully explain (implement) their offers by presenting them into form based applications, easily built with non-developer skills.
Zoho Creator enables a more natural and dynamic conversation between the buyer and the seller, the seller is not forced to have its own server in order to implement there its offers strategy (business strategy) which is based on the buyer’s accounts (promotions to big clients and so on) and many different circumstances.

Future suggestions
Implementing SOA (WSDL- Web services description language) to every service and controlling them through SOA, too, will enable to create and wire a complicated application just on the web. If Zoho provides this ability of executing WSDL requests, it can turn Zoho Creator into a powerful coordinator of on-line business.

More major opportunities
There is one major difference between real life juridical rights and real life ones. In the virtual world the speed of browsing different content (surfing) is higher in such a way that the user is not able to read/ understand the contracts between him and all of the web apps/ sites he visits. Going this way it is not right to judge someone about something that he is not aware of, something which is not on his control (i.e. authors right and MP3 music sharing, Spywares programs (products)- software that steals your personal information while you use it).

Using forms and animations (created with Zoho Creator) the owners of the web sites and applications will explain in deep what is the contract between the user and the application.
The user can be presented with options of choosing contract (anonymity in example) and other with explained benefits of them.

Written by garabedyan

March 6, 2008 at 13:44

Data Flow Processing, eventBased Algorithms and Data

with 4 comments

I have made updates over the paper presented down here. Now you can read it in Bulgarian, too.

In OpenDocumentFormat (*.ODT):

In Bulgarian (BG): bg_paper_data_flow_processing_eventbased_algori

In English (ENG): en_paper_data_flow_processing_eventbased_algori

In PDF:
In Bulgarian (BG): bg_paper_data_flow_processing_eventbased_algori

In English (ENG): en_paper_data_flow_processing_eventbased_algori

10 November 2008y

Science claims that every system in every particular moment of time is describable with a discrete count of data variables. Applying this count of variable to an abstract model of this system is supposed to produce identical outputs in every time the application is done. Lets apply this model of scientific thinking to a computer application.

Data Flow Processing, eventBased Algorithms and Data (odt) (pdf). Main idea

Every program works by (dynamically) wiring atoms which receive input data and produce output of commands or data or both. Finding and separating as much as possible independent atoms and wiring them on an abstract framework (all input and output is manipulated through the framework) is an extremely efficient practice to decrease the computations to the only needed ones. Separating the software model into algorithm atoms. Separating the data source(s) and the data they contain into data atoms.

A common application architecture is:
A Common Application

My offer about a program written on new and abstract framework (scenario):
Write code to apply the business logic but not about every possible occurred change during run-time, but only implement the pure theoretical relations between input and output of every atom. The abstract framework encapsulates all the atoms and their inputs and outputs and decides which atom(s) to call when some program input (output of the outside world) is changed and which when some atoms’ (inside components) output values (data and/ or commands) is changed. This callings are recursive and can produce wave of callings in different directions of wired atoms. This way the abstract framework and the atoms will implement in run-time the theoretical knowledge about the relations between input and output of every atom and the outside world, something that developers do by writing code about every possible case (occurred event).

When an event is received only the related to it atom is called and is computed result (output data and commands), when the result is different than the situation before receiving the event the atom(s) which are connected to the newly computed result are called and this way recursively until there are no more atoms connected to any changed result or the result(s) isn’t anymore different from its past stage (the computation didn’t produce a change on the output data).
The biggest aim according to me is that a big computation is not needed to start every time when something small is changed but just finding which atomic computation have to be executed in order to react correctly on the change.

Event-Driven design forces developers to write code about every possible event. The problem is that some applications aren’t receiving only GUI events, but a lot of more events from sources which count isn’t within developers’ control. It is easier to implement the model, but not to cut the all model into event reactors. The letter is not upgradeable and looks more like a structure-oriented programming than object-oriented.

Brief presentation of the practical implementation of this idea:

Boxes (algorithm atoms) and circles (event triggers) are connected with lines. Some lines has pointers which shows how the interest is orientated. When there is no pointer, the interest is on the both directions. When some output result of any atom/ trigger is changed (on the base of some previous computation or some event) all interested atoms are called to recompute their output results because of the relation of the results with the change. This is repeated until there are no interested atoms of some result change, or the change doesn’t produce change in the result of interested atoms after the recomputation.

Complicated software system which is more Domain Driven Design than Event-Driven. Both of the figures contain computed and saved data in themselves. When some data (in atom or trigger) is changed and it is in the interests of atomic algorithm the interested atom recomputes it’s result according to the occurred change in the first one. Triggers aren’t interested in anything inside the program, they only present a characteristic of a system out of this application in which the trigger is placed.

Application areas:

Human User in the view of a computer application is a source of asynchronous commands. The user is free to choose the time to call a program functionality.

Computer
In data flow apps. When the application controls some systems/ processes and the software must fast react on changes occurred in them. A good example is a satellite which have to react on a lot of possible events while flying in the cosmos. The application which is designed to react on them can use this approach and make it’s code more upgradeable and changeable for future projects.
In big SOA services which make approximately one calculations for each request.  Example: http://garabedyan.wordpress.com/2008/12/17/eventbasedframeworkeventbasedframework/

Computer + User
Not in XP, where developers model user stories, but about applications which care about more circumstances, which aren’t synchronous. (*)
http://garabedyan.wordpress.com/2008/04/27/event-based-content-editor/
Mainly in content editing products where the user is treated as a creator and applier of the all algos and the content in general is as output or input. The rest computer aided products has in their core some techniques of tracing mistakes, errors and so on in users’ projects. The projects are computed from their beginning again and again every time something is changed. The only thing to be won in this kind of software is the time of recomputing the whole project when a change is made not in the whole project, but in a piece of it (when the object of work of the software and the nature of the data enables atomization in order to be made conclusion which atom data is changed and which is not).

(*) eXtreme Programming teaches developers to write code according to the possible user stories. The user of its own is one source of commands, which is synchronous. The user finishes filling a command and chooses executing it, the computer starts executing it and when it finishes, the suer is informed with the results. It is not a practice, the user to pause some calculation at the moment of its execution, but only aborting it.
In SOA architecture, we have one initiator of activity (computation) and he is again synchronous. No matter that we don’t know when a request is going to be received, the execution of this request is atomic and can’t be aborted or customized while it is executed.

Example of Computer application of eventBased
An example of Computer + User is presented in the eventBased Content Editor (http://garabedyan.wordpress.com/2008/04/27/event-based-content-editor/).

An example of real life system which is supposed to implement the described eventBased architecture is a space satellite. This is a a big embedded system doing many things concurrently which needs things to be known in a small amount of time.
Space satellites are embedded systems, which have for a certain period of time to find the most proper solution of an asynchronous occurred problem. If the solution is not proper its implementation can spend resource which is needed for different operation, if the solution is not found within the required period of time the entire satellite is possible to not exist аnymore.
Finding the best solution of a composition of commands (steps) is done by using decision tree, such data structures like which are used in applications for playing chess, which creates of recursive calculation of the possible command (chess move) and the consequences applied to the current situation for every separate possible command. The maximal period of time for choosing a solution and implementing it is supposed to change during the search and implementation of the chosen solution, this period of time is a dependent from the behaviour of outside (external) variables, whose behaviour is asynchronous to the system.
In order to enable the fast creation of this tree, fast computations of resource spending are required, which volume and quality is important to the outside world.
The author imagines single modules determining outside changes and in every such change the physical variable value is computed, which variable can be important to decision making in future. In the blog the author presents a way of enabling this data updates and a parallel adding of new modules and relationships between variables (formulas).

Theoretic Conclusion
MVC pattern and the Observer pattern between the View and the Model: If we say that the observer pattern inverts the control and makes the interested part to care about the interested data. By analogy with this post, we can say that if the function (procedure) is the atom of every program (command-based) so using this data flow approach, the function has to not call any other function and send him array of variables, just changing variables which the other function is interested in.

This data flow approach about every function is not general applicable, because of memory efficiency problems. This is the reason why I make difference between data changes and commands, why I speak about an abstract framework, but not about a new programming language. But at all I thing that I have give another definition of Data Flow programming by using Inversion of Control terminology.

Practical Conclusion
I hope that this will open a door of parallel using data flow and command like program developments, using more observer patterns in the business logic. Declarative programming plus Command programming.

Written by garabedyan

March 4, 2008 at 10:59

RSS as a DataBase. Making RSS a mainstream.

with 2 comments

Wikipedia.org: RSS (Really Simple Syndication) is a family of Web feed formats used to publish frequently updated content including, but not limited to, blog entries, news headlines, and podcasts. An RSS document (which is called a “feed” or “web feed” or “channel”) contains either a summary of content from an associated web site or the full text.

RSS is a technology that is though to become mainstream at 2007. People try to explain why it is not and what have to be changed in order to reach monopoly. I try to do the same thing on this article.

RSS returns XML which is a group of separated articles, every article contains title and body. If we think about the RSS request from the client to the server as a DataBase request it is too poor. Only general columns. I offer to add more columns, like post date, author, event and some custom according to the content.

I hope this will deal with some problems like the less of archives (history) in RSS data; Machin-friendly and useful. Binding the Content Management System of the web page with this RSS DB can make providing RSS content cheaper.

Just SQL-ing the Web. Of course there is no strict policy between column names and the SQL executor (the web user), so it is needed a special page where visitors to see how the columns are named and what they contain.

Then just add thematic structure of the RSS content. Telling that one feed present information about a few objects and every article has a declaration about which object is it about.

Isn’t the described RSS close to the purpose of the Semantic web. Only if the data in the RSS DB is not only new updated but containing information from the past.

Web page like a User-friendly accessible DB.

RSS was often used in blogs, look how Google BlogSearch uses a kind of an eventBased policy to present information about new search results. They use RSS, too. You see how an RSS source is even a search result page, where when a change occurs in the search result, the RSS presents it immediately to the subscribers.

Google BlogSearch on “garabedyan”

Written by garabedyan

March 3, 2008 at 11:03

Posted in Uncategorized

Tagged with , ,