SKITSANOS FOR RIA

Skitsanos

Tuesday, December 29, 2009

Moonlight 2.0 Comes with a New Covenant

Source: InfoQ

Moonlight 2.0 (final version) comes with a promise from Microsoft to help the developing of Moonlight 3 and 4, and a new MS Covenant to end users protecting them from patent infringement by using Moonlight.

Moonlight 2.0 Beta 1 was announced in August 2009. The beta phase ended, and the final Moonlight 2.0 is available for download. It runs in Firefox/Linux on Mono 2.6, Cairo and Gtk+. The team is working on running it also on Chrome/Linux. Moonlight 2 currently consists of “142,000 lines of C/C++ code and 320,000 lines of C# code (125,000 lines of code came from Microsoft's open source Silverlight Controls)”, according to Miguel de Icaza.

Microsoft has extended their promised collaboration with Novell to further help developing Moonlight by providing the Silverlight 3 & 4 test suites. Moonlight 3 Beta will be available in the first quarter of 2010 and the final version during the fall of 2010. Moonlight 4 will follow shortly after that.

Microsoft made an important and necessary step by extending the Patent Covenant to End Users of Moonlight. This covenant protects not only users using Moonlight from Novell, but users getting Moonlight from any Linux distributor and running it on any Linux flavor. This actually means that Moonlight can be included in commercial Linux distributions. One caveat: Microsoft Media Pack, containing the MP3, VC1, H.264 and AAC codecs, were licensed only to Novell because they were bought by Microsoft from the original owners and the right to use them could not be extended to everyone unless a hefty price was paid. Third party Linux distributors can use open source codecs (Ogg, Vorbis, Theora), can purchase a license from MPEG owners, sub-license from Microsoft, or simply write their own codecs.

Wednesday, December 23, 2009

XML Support in mySQL

Source: Native XML Database, Matthias Nicola

Considering that mySQL is a quite popular database for web applications, you may be surprised that its XML support is quite basic, compared to other databases. If you need a free database that handles XML well, DB2 Express-C is the better choice, in my personal opinion. Before going into feature details, let’s start with a high level look at what is and isn’t available in mySQL version 5.1, 5.5 and 6.0.

The XML support in mySQL is subject to the following restrictions:

  • No XML data type, and hence no XML columns.
  • No support for the SQL/XML or XQuery standards.
  • Only a subset of XPath is supported.
  • No XQuery Update expressions.
  • No XML indexes.
  • No support for XML Schemas or document validation.
  • No support for namespaces, such as default namespaces or namespace declarations in queries.
  • Cannot extract XML fragments or XML attribute values from a document – can only extract atomic XML element values (text nodes).
  • No built-in function for XSLT.

These features are missing in mySQL but they are available in DB2 Express-C, for free.

The XML support in mySQL includes:

  • Storage of XML as text in LOB columns.
    • Basic support for XPath to extract atomic values from XML documents in text form (ExtractValue() ).
    • An UpdateXML() function to replace XML elements within an XML document in text form.
  • Shredding of XML into a single table, but only if (a) the XML is flat and regular so that it trivially maps to a relational table, and (b) the XML tag names match the column names in the target table. Doesn’t strike me as very flexible.
  • Converting XML to relational format
    • Exporting relational row sets to a fixed predefined XML format.
    • Constructing custom XML from relational tables through the use of string concatenation functions or external libraries.

Let’s look at the LOB storage and the ExtractValue() and UpdateXML() functions in mySQL now. (I will discuss the shredding and XML construction features in mySQL in a subsequent blog post.)

Storage of XML as text in LOB columns

In mySQL you can use the LOAD_FILE() function to insert individual XML files into LOB columns. This approach treats the XML data as if it was arbitrary text. The XML structure is ignored and not checked for well-formedness. In DB2 you would use an XML column instead of a LOB column. DB2’s XML columns store XML natively (not as text), ensure well-formedness, and enable high XML query and update performance.

Basic XPath and the ExtractValue() function

The proprietary ExtractValue() function in mySQL takes two string arguments. The first is an XML document in text format, the second is the XPath expression that you want to evaluate. The function returns the first text node under each element that matches the XPath expression. For example:

ExtractValue('<a><b><c>5</c></b></a>' , '/a/b/c')

returns the string “5″. If multiple matches are found then the values are returned in a single, space-delimited string:

ExtractValue('<a><b>1</b><b>2</b><b>3</b></a>' , '//b')

returns the string “1 2 3″. The space-delimited output might lead to problems. For example, both of the following function calls return the same result string “Laptop Bag”:

ExtractValue('<order><item>Laptop</item><item>Bag</item></order>',              '/order/item' )ExtractValue('<order><item>Laptop Bag</item></order>',              '/order/item' )

But, the result “Laptop Bag” doesn’t tell you whether an order contains two items (a laptop and a bag for it) or just a single item (a laptop bag). In DB2 you can use the SQL/XML function XMLTABLE to avoid such problems.

Also note that ExtractValue() only extracts atomic values. It doesn’t let you extract XML fragments or attributes. Take the following as an example:

ExtractValue('<a><b><c>5</c></b></a>' , '/a/b')

This expression returns an empty string, which may seem incorrect because the XPath data model defines the value of the element <b> in this example to be ‘5′. The empty result makes more sense when you know that mySQL always appends /text() to your XPath! mySQL evaluates /a/b/text() instead of /a/b. This also implies that you cannot extract and return attribute values!
In DB2 you can certainly choose and execute any of /a/b, /a/b/text(), and /a/@b, to retrieve elements, document fragments, text nodes, or attribute values from your XML documents, in compliance with the XPath and SQL/XML standards.

The UpdateXML() function

The proprietary UpdateXML() function in mySQL takes three string arguments:

  1. an XML document
  2. an XPath expression
  3. a new value or XML fragment.

The returned value is the updated XML document string in which the element identified by the XPath has been replaced by the value or XML fragment in the 3rd argument.

As far as I can tell, the UpdateXML() function has several limitations:

  • You cannot modify multiple occurrences of the same element within a document.
  • The function does not check whether the replacement fragment or the final updated document are well-formed. Hence, you might inadvertently turn an existing well-formed document into a non-well-formed document! This can be disastrous and render the document useless, because it can then no longer be parsed and manipulated with XML functions.
  • The function does not observe namespaces and may produce incorrect namespace bindings in the document.

The XML update capabilities in DB2 follow the rich XQuery Update standard and are not subject to any of these restrictions. In particular, DB2 does not let you destroy your well-formed XML documents or the consistency of their namespaces. This is very important, I think.

In my next post I will discuss the shredding and XML construction features in mySQL, as well as a conclusion. If you find that I have misrepresented anything, please do let me know and I will correct it.

Merry Christmas!

http://www.databasejournal.com/features/mysql/article.php/3846526/Working-with-XML-Data-in-MySQL.htm
http://dev.mysql.com/tech-resources/articles/xml-in-mysql5.1-6.0.html
http://dev.mysql.com/doc/refman/5.5/en/xml-functions.html

RIA development framework Qooxdoo debuts

Source: InfoWorld

The open source qooxdoo (pronounced  "ku:ksdu") software development framework, which leverages object-oriented JavaScript and enables developers to build rich Internet applications, became available earlier this month in a 1.0 version, developers of the framework said.

Developers can build cross-browser applications without requiring knowledge of HTML, CSS, or DOM. Qooxdoo features a platform-independent development tool chain, a GUI toolkit, and a client-server communication layer.

The class-based framework is based on namespaces and has been in development for almost five years. Qooxdoo is backed by a professional development team, an open source community, and Web hosting firm 1&1.

"Because we don't mess with existing, native types we don't have problems [integrating with] other libraries or existing user code,"  said Jens Lautenbacher, head of development technology & architecture for 1&1 in Germany, in an e-mail.

"We want to say: Because of the usage of namespaces (instead of putting all the classes and types into a flat global namespace), and because we don't extend native types as a result of both, we make it easy to integrate with other libraries," Lautenbacher said.

Developers can leverage object-oriented JavaScript in a very elegant yet familiar way, according to a statement from developers of qooxdoo. Applications run on major browsers including Internet Explorer, Firefox, Safari, Opera, and Chrome.

Also featured are a set of widgets, layout managers, and theming capabilities. The framework comes equipped with a tool chain that covers code validation, compiling, linking, compression, and optimization

Download options for qooxdoo are available. It is offered under an LPGL/EPL dual license.

Although qooxdoo is a client-side technology and server-agnostic, the project does include implementations of RPC servers for Java, PHP, Perl, and Python to demonstrate advanced client-server communication, qooxdoo project  developers said.

Microsoft loses appeal on Word injunction

Source: The Register

Microsoft must remove custom-XML editing from Word or face a permanent injunction barring the company from selling recent versions of the software, a federal appeals court on Tuesday ruled.

The US Court of Appeals for the Federal Circuit affirmed a $290m patent infringement judgment against Microsoft, won by Toronto-based software company i4i in Texas. It alleges Microsoft's software infringed on its patents that cover extensible markup language technology.

Microsoft has been given until January 11 to remove the custom XML functionality — five months from the original August 2009 ruling, according to Bloomberg.

The injunction bars Microsoft from selling the 2003 and 2007 versions of Word inside the US after the injunction deadline and will require the company to remove the XML technology from its upcoming Office 2010 suite. Microsoft can continue to provide technical support to current Word users, but it's barred from telling new users how to use the custom XML editor.

Microsoft director of public affairs, Kevin Kutz, told us via email that the company is "moving quickly" to comply with the injunction.

"With respect to Microsoft Word 2007 and Microsoft Office 2007, we have been preparing for this possibility since the District Court issued its injunction in August 2009 and have put the wheels into motion to remove this little-used feature from these products," Kutz wrote.

He said Microsoft expects to have copies of Word 2007 and Office 2007 with the XML feature removed in time for the injunction date. Kutz added that beta versions of Word 2010 and Office 2010 that are available now do not contain the technology covered by the injunction.

"While we are moving quickly to address the injunction issue, we are also considering our legal options, which could include a request for a rehearing by the Federal Circuit Court of Appeals en banc or a request for a writ of centiorari from the US Supreme Court," Kutz said.

Microsoft has previously acknowledged the company had been in contact with i4i about the XML technology, but said there was no evidence proving anyone at the company actually had read the patent in question. i4i has claimed the infringement was willful and that Microsoft deliberately planned to destroy its business while publicly declaring the two were allies.

Friday, December 04, 2009

Nokia plans, previews Symbian UI overhaul

Source: Telephony Online

At Nokia’s (NYSE:NOK) Capital Markets Day yesterday, the handset maker reiterated its commitment to Symbian, but promised a makeover to the user experience, which many think has been hindered by a clumsy user interface. Rather than start from scratch or phase out Symbian in favor of Maemo, Nokia CEO Olli-Pekka Kallasvuo promised to take the Symbian UI to “a new level.”

symbian3-features.jpg

“As an operating system, Symbian has reach and flexibility like no other platform, and we have measures in place to push smartphones down to new price points globally, while growing margins,” Kallasvuo said in a statement. “I see great opportunity for Nokia to capture new growth in our industry, by creating what we expect to be the world’s biggest platform for services on the mobile.”

In addition to new hardware of the touch and/or Qwerty persuasion, Nokia plans to reduce clutter on the UI, add multi-touch input and large capacitive displays, simplify functions on the phone and the steps required to activate them, improve the browser and make the overall UI three times faster than its current high-end Symbian products.

Nokia also promised its third-party developers better tools for application and content creation for its Ovi storefront, as well as announced plans to scale up its services business through geographical expansion and partnerships with more operators.

Nokia CFO Timo Ihamuotila also told investors he expects mobile device volumes to be up approximately 10% across the industry in 2010, but that Nokia’s market share will remain flat at about 38% between this year and next.

Engadget posted a video of the presentation and several pictures of the new UI. What do you think – will a UI overhaul be enough or should the vendor ditch Symbian and start from scratch?

AOL Unveils New Brand, New Logos

AOL unveiled a "new brand identity" Sunday night.

Instead of AOL, it's "Aol." -- period included. There are also six new logos -- from a goldfish to a paint swirl. A spokesperson says more are coming.

Click through to see the logos >

All of it is the result of work with brand consultant Wolff Olins, which AOL hired over the summer.

AOL is spinning off from parent company Time Warner (TWX) this December. Last week, it told employees it needs 2,500 of them to volunteer for layoffs. The company plans to turn itself into a next generation media company, building on the 80 or so blogs and content sites it already runs.

Here's CEO Tim Armstrong's canned quote from the press release:

“Our new identity is uniquely dynamic. Our business is focused on creating world-class experiences for consumers and AOL is centered on creative and talented people - employees, partners, and advertisers. We have a clear strategy that we are passionate about and we plan on standing behind the AOL brand as we take the company into the next decade.”

Read more at Business Insider…

Webware development dedicated blog by Skitsanos R&D Labs. ASP.NET, XML, RIA, Adobe Flex, ActionScript 3, AIR, AJAX, Web 2.0, Backbase, CGI development with RealBasic and other web development issues.
News
Downloads