Archive for the ‘internet’ Category

HTML 5: Seeing is believing

preamble

We have lived with HTML5 drafts for 4 years, last draft was published on 27 September 2008.
HTML5 has big number of features and probably will be major change of HTML for all history of Web.

Most prominent features are: Scripting API additionally to regular markup, and number of new APIs: Timed media playback, Storage, Offline work support, Drag and drop, Messaging/Networking, Back button management.
You can look at article on wikipedia [http://en.wikipedia.org/wiki/HTML_5] and at current draft [http://www.whatwg.org/specs/web-apps/current-work/] for more details about HTML5.

Come along

Many different words about HTML5 were already told, and we know that seeing is believing.
So today we have possibility to watch some of already implemented features of HTML5 thanks to Ian Hickson, Google employee that “heavily involved in Google’s work with the W3C, representing Google on the CSS working group and reviewing specifications of other working groups (SVG, CDF, etc)” according to Ian site [http://ian.hixie.ch/]

Following video include subsequent features:
* <video> (00:35)
* postMessage() (05:40)
* localStorage (15:20)
* sessionStorage (21:00)
* Drag and Drop API (29:05)
* onhashchange (37:30)
* Form Controls (40:50)
* <canvas> (56:55)
* Validation (1:07:20)

You can find detailed notes on: [http://www.whatwg.org/demos/2008-sept/]

Browsing Web with human interface: Mozilla Ubiquity

preamble

Mozilla Labs as always makes us happy with new innovative ideas.
Maybe you remember post of Vasiliy Kiryanov about Mozilla Prism: with that platform we can use web-applications like regular desktop applications [http://blogs.helion-prime.com/vasiliykiryanov/2008/06/03/new-web-experience-with-mozilla-prism.html]
And now new fresh idea from Mozilla Labs: Ubiquity as a way “connecting the Web with language”.

Ubiquity way

For a long time people have idea to create a way to store and query data of any application easy.
It can give enormous flexibly like everything is already here and in appropriate format. We know this idea as W3C Semantic Web[http://ru.wikipedia.org/wiki/Semantic_Web], as we are still far from it, software developers on Internet are using mashups [http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)] to get similar effect today.

But what can we do from user side when we want to connect many different applications together, and use them in a same way. Ubiquity propose a way to describe common tasks in the Web using language-based instructions, and then you can create you own mashups with help of existing open Web APIs.

To have a better understanding how it work you can watch following video:

Now if you like the idea you can try it: [https://people.mozilla.com/~avarma/ubiquity-0.1.1.xpi]
or continue reading about it from Ubiquity tutorial: [https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.1_User_Tutorial]

related links:
Ubiquity Commands: [https://labs.toolness.com/ubiquity-herd]
Get Help & give your suggestion: [http://getsatisfaction.com/mozilla/products/mozilla_ubiquity]
Report a Bug: [http://labs.toolness.com/trac/report]

Fresh toy from Google: Chrome browser

preamble

We have enough browsers today: IE, Firefox, Opera, Konqueror, Safari.
There is a question: do we need another one?
We have a lot of problems with compatibility, and almost any web-developer spends time on tuning pages for IE/Firefox.

Google Chrome

Chrome developers made a special page describing why they started new browser.

“What we really needed was not just a browser, but also a modern platform for web pages and applications, and that’s what we set out to build.”

“On the surface, we designed a browser window that is streamlined and simple. Under the hood, we were able to build the foundation of a browser that runs today’s complex web applications much better. We improved speed and responsiveness across the board. We also built V8, a more powerful JavaScript engine, to power the next generation of web applications that aren’t even possible in today’s browsers.”

“We’ve used components from Apple’s WebKit and Mozilla’s Firefox, among others - and in that spirit, we are making all of our code open source as well.”
A fresh take on the browser [http://www.google.com/chrome/intl/en/why.html?hl=en#]

And made comics to describe features: [http://www.google.com/googlebooks/chrome/]

As you see we should have browser with improved speed that will be modern platform for web-applications.
Unfortunately I can’t test it now due to we use GNU/Linux in our company and developers presented only version for Windows.
If you are Windows user maybe it worth a look, and make own opinion.
Go on: [http://www.google.com/chrome/intl/en/features.html]

Chrome screenshot

funny note: people already found 2 bugs in Google Chrome, so be prepared..
You can find proof of concept page, and description here: [http://lists.grok.org.uk/pipermail/full-disclosure/2008-September/064203.html]

W3C Semantic Web: future or another standard?

“The nice thing about standards is that there are so many to choose from.”
Andrew Tannenbaum

preamble

Web 2.0 became a buzz word nowadays and many people has different understanding of it.
It seems we can just use World Wide Web consortium(W3C) [http://www.w3c.org] and find final definition,
but there is no any standard definition. We have many different definitions from different companies or people.

Let’s make short sum-up:
Web2.0 is a architecture of interconnectivity and social interactions on the Web.
With such architecture we can create web-sites where users can produce content of his network using distributed content of other networks or independent developers.

Common mis-association here is that AJAX[http://en.wikipedia.org/wiki/AJAX] is a main feature of Web2.0, it is became so popular because many Web2.0 sites heavily use Ajax. In real we can create Web2.0 web-site with described features of Web2.0 without Ajax.

Web2.0 websites typically use some of the following features:
* CSS: separation of presentation and content
* REST or JSON-based APIs: system inegration and separation
* Rich Internet application techniques: Ajax, Flex, Flash
* Syndication, and aggregation: RSS or Atom feeds
* Weblog-publishing tools, and social networking tools: chat, forum, wiki, ..

Now as you have rough understanding of Web2.0 main question is what is:
Semantic Web (Web3.0)?

Another useful standard

Unlike Web2.0 Semantic Web is a W3C standard[http://www.w3.org/2001/sw/] and so we can find final definition of it.

“The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries. It is based on the Resource Description Framework (RDF).”
According to Semantic Web home page

Talking common language:
Semantic Web is a way to store all data in such way to provide easy way for any application to use it.
It provide special formats for storing and querying of data.

“The big picture: imagine having one query language, one client, and one data access protocol which let you arbitrarily slice the data of Flickr, delicious, Google, and your favorite Web 2.0 sites, FOAF files, RSS 1.0 feeds — plus anything that can be mapped into RDF. This is data integration the Web 2.0 and the Semantic Web way.”
Good general description from “Talking Points for Semantic Web vs. Web2.0″ [http://www.w3.org/2006/05/SW_Web2.html]

Nevertheless potential useful points of Semantic Web and even some use-cases [http://www.w3.org/2001/sw/sweo/public/UseCases/]
we still very far from any production use of it.

In real life we can still use XML[http://en.wikipedia.org/wiki/XML], RDBMS [http://en.wikipedia.org/wiki/RDBMS], and SOA [http://en.wikipedia.org/wiki/Service-oriented_architecture] to get similar behavior today.

Own social network for anything

preamble

Nowadays social networks on Internet take a lot of popularity. Your neighbor is probably already has social network about home shopping or nuclear reactors.
It is no wonder that more possibilities appear to create fast and easily your social network like:
Ning [http://www.ning.com/], KickApps[http://www.kickapps.com/], CrowdVine[http://www.crowdvine.com/], GoingOn[http://www.goingon.com/], ONEsite [http://www.onesite.com/], etc..

Our company had a chance to estimate some of them.
As most advanced and popular (> 230.000 networks) platform I can name: Ning.

Ning platform

After rapid registration process you get social full-featured network: instant messaging, blogs, music, video, photos, and so on..

One feature is a possibility is to change a number of parameters from administrator panel. That gives opportunity without any special software development education create and maintain social network.

Another feature is a possibility for software developers to create additional widgets, change behavior of system, and query and modify data thru RESTful API [http://en.wikipedia.org/wiki/Restful]. At this moment for widgets development only php is supported but Ning developers promise support for all popular languages.
Look on this “hello world” application to understand how you can drive it: [http://developer.ning.com/tutorials/Hello_World]

Extensions development for Ning platform looks like development for CMS systems [http://en.wikipedia.org/wiki/Content_management_system] and based on MVC paradigm [http://en.wikipedia.org/wiki/Model-view-controller].

As unusual approach I can note using of Ning content store[http://developer.ning.com/wiki/The_Ning_Content_Store:_A_Primer]. It is non relative database that looks like ORM systems[http://en.wikipedia.org/wiki/Object-relational_mapping]. I think that using of it is a disputable idea but for novice developers it is easy to understand it.

At the end I want to note main advantages and disadvantages of Ning plarform:

Advantages:

1.Simple an rapid creation of social networks;
2.Free basic access to the system(full abilities but you can’t turn off ads);
3.Big possibilities for modernization and relatively simple API for developers;
4.Quite good documentation;

Disadvantages:

1.Closed platform: we can’t deploy it at any place, we can’t look to source code when we have lack of documentation, we can’t redesign it, it prevent from simultaneous work of developers
2.Commercial platform: if you want to use your own domain name, or remove ads from Ning you should pay;
3.Database approach to store and handle data in DB.;

Conclusion:

This system is a wonderful start for new social networks, or old social networks without big amount of specific functionality.

ONE IMPORTANT note:
we faced disgustful relations of Ning to customers:
making some internal procedures they revoke access to source code from all user, and we lost many time waiting for an access when we have responsibilities against our customers to develop project by some fixed date. Closed platform is an evil !!

New web-experience with Mozilla Prism

preamble

Our world is currently in transition from traditional desktop applications to web-oriented where most of time we want to do everything in the Web with help of our browsers.
Sometimes nevertheless we want to use some web-applications like: Gmail, Google docs, FaceBook or on-line dictionary as desktop application. Is it possible ? Try the Prism.

prism world

With Prism you can run web-oriented applications directly on desktop in their own window where they have access to all windows features and you still can access these same applications from your web browser.
Prism is built on Firefox so it supports all rich internet technologies and runs on Windows, Mac OS X, and Linux.
Also Prism developers thinking how to integrate better the Prism with Firefox,
enabling one-click “make this a desktop app” functionality that preserves a user preferences.

For more information about Prism go to the project page: [http://developer.mozilla.org/en/docs/Prism]
When invoked it is as pretty as following picture:

google calendar in Prism

getting Started with Prism

download and install appopriate version for your platform:

Prism for Firefox v0.2 for Firefox 3.0b3pre or greater, Windows/Mac/Linux.

The standalone version of Prism v0.9 is also available:
for Windows (installer, archive), Mac and Linux.

Mozilla foundation wants for you

Prism is open source project and if you want to help Mozilla with Prism development go to:
[http://wiki.mozilla.org/Prism]
forum for discussions: [https://labs.mozilla.com/forum/index.php/board,16.0.html]
Bugzilla for bug reporting: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Mozilla+Labs&component=Prism]