Listen to this:
The closer we get to the thing we really want, the more resistance we will feel. We will feel some force pushing us away, the closer we get to some thing we think we really want. And for a lot of us that could be writing. Let’s be honest: it is not that hard to write. It’s not…
Traits is a mechanism for code reuse in single inheritance languages such as PHP. A Trait is intended to reduce some limitations of single inheritance by enabling a developer to reuse sets of methods freely in several independent classes living in different class hierarchies. The semantics of the combination of Traits and classes is defined in a way, which reduces complexity and avoids the typical problems associated with multiple inheritance and Mixins.
They are recognized for their potential in supporting better composition and reuse, hence their integration in newer versions of languages such as Perl 6, Squeak, Scala, Slate and Fortress. Traits have also been ported to Java and C#.
Workers provide a simple means for web content to run scripts in background threads. Once created, a worker can send messages to the spawning task by posting messages to an event handler specified by the creator.
The worker thread can perform tasks without interfering with the user interface. In addition, they can perform I/O using
XMLHttpRequest(although theresponseXMLandchannelattributes are always null).
It’s a straightforward tutorial on creating a simple application using webdatabase. here’s the intro:
Web Databases are new in HTML5. Web Databases are hosted and persisted inside a user’s browser. By allowing developers to create applications with rich query abilities it is envisioned that a new breed of web applications will emerge that have the ability to work online and off-line.
On November 18, 2010, the W3C announced that Web SQL database is a deprecated specification. This is a recommendation for web developers to no longer use the technology as effectively the spec will receive no new updates and browser vendors aren’t encouraged to support this technology. Many major browsers including Chrome, Safari, Opera and nearly all Webkit based mobile devices support WebSQL and will likely maintain support for the foreseeable future.
This tutorial is also available written using “IndexedDB”, the replacement offline storage technology.
This example code demonstrates how to create a very simple todo list manager. It is a very high level tour of some of the features available in HTML5.
With Appcelerator Titanum, you can use HTML/CSS/Javascript/PHP/Python/Ruby to deliver native desktop and mobile applications.
Titanium has 2 SDKs:
- Desktop SDK: which “packages up your application source code (HTML/CSS/JavaScript) with a heavily augmented build of the popular webkit open source web browser engine.”
- Mobile SDK: which does not use browsers. in fact titanium mobile applications are run against a standalone JavaScript engine which invokes native APIs.
You can build and run Android and BlackBerry applications for free, but for iOS, only developer account is free and you will need to pay a $99/year fee for the iOS developer program.
in addition to two SDKs it has a handy desktop application too:
- Titanium Developer is a desktop application you will install on your computer to allow you to create, run, and package Titanium Mobile or Desktop application projects.
Resources:
- IBM DeveloperWorks has a simple hello world tutorial for building Mac OS X platform: http://www.ibm.com/developerworks/library/os-titanium/index.html
- Getting Started with Appcelerator: http://developer.appcelerator.com/guides/en/getting_started.html
- Application Demo: Kitchen Sink.
- Showcase gallery: http://www.appcelerator.com/showcase/
- GIO : part of GLib, is the core library used for file and folder operations in GNOME applications
- GVFS: Using GIO with GVFS allows your application to work with files on remote machines as easily as local files.
- GnomeVFS: In previous versions of GNOME, the GnomeVFS library was used for access to files and folders.
source: http://library.gnome.org/devel/platform-overview/stable/gio.html.en
The Difference between GVFS and GnomeVFS:
in summary GVFS uses fuse library to mount files and folders, but GnomeVFS has its own library and only applications that are gnome-vfs aware are able to see files and folders mounted by gnome-vfs. with gvfs every application in any environment can access them.
for more info refer to:
http://fosswire.com/post/2007/11/goodbye-gnomevfs-hello-giogvfs/
JSPL is a bridge between Perl and JavaScript (the SpiderMonkey engine specifically). JSPL makes it easier for JavaScript programmers to write stand-alone, out-of-the-browser, applications. For Perl programmers JSPL allows you to extend your application using JavaScript. JSPL is open source software. The core of JSPL is a reflection engine and a life cycle synchronizer allowing you to write programs using both languages at the same time.
stratifiedjs is an interesting approach to introduce concurrency programming to javascript,
first I learned about it in infoQ
It adds a small number of new constructs (waitfor/and, waitfor/or, waitfor()/resume, hold, spawn, using), and it extends the semantics of the constructs of the base JS language (i.e. sequencing, looping, conditionals, exceptions, etc) to work naturally with concurrent code paths.
the code is pure javascript except for those new semantics like this:
var result; waitfor { result = performGoogleQuery(query); } or { result = performYahooQuery(query); }
it executes both functions simultaneously and then waits for them to be completed and upon completion of one, it automatically terminates the other.
you can read/view a quick and well organized demo in their website, they demonstrated it in OSCON2010.
the interesting part is that it works both on client side and server side. in client side all you have to do is to inlcude a small 20k file, called oni Apollo. and in server side they’re poring Apollo to Node.js.

