Featured in AI, ML & Data Engineering

In this article, author shows how to use big data query and processing language U-SQL on Azure Data Lake Analytics platform. U-SQL combines the concepts and constructs both of SQL and C#. It combines the simplicity and declarative nature of SQL with the programmatic power of C# including rich types and expressions.

Featured in Culture & Methods

The book Agile Leadership in Practice - Applying Management 3.0 by Dominik Maximini is an experience report of the agile transformation journey of NovaTec. Maximini shares his experiences from applying principles and practices from Management 3.0, success stories, failure stories, and learnings from experiments.

Featured in DevOps

Yuri Shkuro presents a methodology that uses data mining to learn the typical behavior of the system from massive amounts of distributed traces, compares it with pathological behavior during outages, and uses complexity reduction and intuitive visualizations to guide the user towards actionable insights about the root cause of the outages.

Client Side Storage Momentum Continues with PersistJS and MySpace Adoption of Gears

PersistJS was released last week by Paul Duncan. It's a JavaScript framework enabling client-side data storage. Such storage is primarily used by web applications that are capable of running offline. PersistJS has several advantages over other frameworks that perform client-side storage.

Why not just use cookies?

Cookies have been the traditional solution for client-side storage in the past. Frameworks like PersistJS are becoming more popular, though, because there are several disadvantages to using cookies. For example, cookies are limited to 4 kilobytes in size. They are also sent along with every HTTP transaction, wasting bandwidth, and can be complex to create and update.

What makes PersistJS better?

It's very small (only 3k when gzipped)

It has a consistent API, regardless of the browser being used

It doesn't require browser plugins or other libraries

It falls back to cookies if unsupported in the current browser

It claims to support upcoming versions of IE, Firefox, and Safari

It also uses a compatibility testing strategy as opposed to browser testing. This means that instead of checking if a specific version of IE is supported, it instead checks that the individual calls it uses are supported in the version of IE being used. A browser that fails to support a particular call, for example, won't necessarily be rejected outright.

Other client-side storage solutions

Dojo Storage and Google Gears also provide client-side storage. Relying on a browser plugin like this can be problematic though, because not everyone will have the plugin installed.

There are several other differences worth noting as well.

Dojo Storage

Pro: better documented and has a larger user base

Con: only supports Internet Explorer if the Flash plugin is installed

Con: doesn't support WebKit-based browsers (like Safari)

Con: requires other Dojo libraries to operate

Google Gears

Pro: backed by Google and, as with Dojo, is better documented

Con: is not yet widely deployed

Con: won't operate if the plugin isn't installed

Aside from storage, Gears also supports client-side searching. MySpace made an announcement at the Google I/O conference in San Francisco this week that they are now using Gears for message searching. Up until now, users had to page through their messages to find what they were looking for. With the Gears solution in place, full-text searches are performed on the client side. Searches are also live, bringing back results as the user types in terms.

Note that PersistJS supports a number of different backends, including Gears. The advantage that PersistJS gives in this case is a consistent API that will remain the same if the backend is changed.