BrowserMap: JavaScript browser features detection library

https://github.com/raducotescu/browsermap

Demo here: http://raducotescu.github.com/browsermap/index.html

From the BrowserMap Github page:

BrowserMap has been donated to the Apache Software Foundation, as a
client-side module of the Apache DeviceMap project. Until the full
integration is completed fixes will be pushed to both code repositories.
Once BrowserMap is fully migrated the development will continue solely on
ASF’s infrastructure.

DHC (Dev HTTP Client) – Google Chrome extension to discover, manipulate, & test HTTP REST services

DHC logo

From the DHC Chrome Web Store page:

Easily construct custom HTTP requests, save them permanently, take advantage of variables and contexts.

DHC (aka Dev HTTP Client) is designed and developed by a developer for developers to make direct HTTP resource discovery, manipulation and testing more easily. Beside the main function, sending/receiving custom HTTP requests/responses, it allows permanently to save a request to a local repository for later reuse and moreover the request declaration can include variables that are context specific. With the use of contexts you can easily switch between various environments without modifying request declaration. (e.g. from a test environment to production)

YDN-DB: HTML5 Javascript database library for IndexedDB

yathit logo

OK. So I’m not even gonna lie. I had no idea what IndexedDB was before I came across YDN-DB. I’ve only dabbled with serious JavaScript development so far, and the framework-soup that has arisen in the space rivals Java at this point.

Anyway, on to the website!

YDN-DB is a pure javascript library, which uses HTML5 browser database sunch as IndexedDB, WebDatabase (WebSQL) and WebStorage (localStorage). Most
modern browsers including IE10, Chrome, Firefox and Safari support either IndexedDB or WebSQL. The library can also be used in web client such as
phonegap, WebView and UIWebView mobile clients.

Supports:

  • Chrome 4+ (IndexedDB or WebSql)
  • Firefox 3+ (IndexedDB draft), Firefox 10+ (IndexedDB)
  • IE 6 (userdata), IE7+ (localStorage), IE10+ desktop/mobile (IndexedDB)
  • Safari 3.1+ desktop/mobile/iOS web client (WebSql)
  • Android web client, Android browser 2.1+ (WebSql), 4+ (IndexedDB)
  • Opera 10+ (WebSql), Opera 15+ (IndexedDB)

Code snippets:

var db = new ydn.db.Storage('db-name');
db.put('store-name', {message: 'Hello world!'}, 'id1');
db.get('store-name', 'id1').always(function(record) {
  console.log(record);
});

Indexed Queries

var q = db.from('people').where('age', '>=', 25);
q.list(10).done(function(peoples) {
  console.log(peoples); // list of first 10 peoples
});

var q = db.from('people').where('country', '=', 'US').order('name');
q.list(10).done(function(peoples) {
  console.log(peoples); // list of first 10 peoples from US ordered by name
});
q.list(10).done(function(peoples) {
  console.log(peoples); // next 10 peoples
});

Streaming API for reduced memory usage

var q = db.from('author').where('first', 'starts', input_value);
var ul = document.getElementById('auto-suggestion-list');
ul.innerHTML = '';
q.open(function (cursor) {
  var li = document.createElement('li');
  var people = cursor.getValue();
  li.textContent = people.first + ' ' + people.last;
});

Synchronize with REST backend services

var schema = {
  stores: [{
        name: 'todo',
        keyPath: 'id',
        Sync: {
          format: 'gcs',  // Google Cloud Storage
          Options: {
            bucket: 'ydn-note-data',
            prefix: 'todo/'
          }
        }
  }]
};
var db = new ydn.db.Storage(db_name, schema);
// GET https://ydn-note-data.storage.googleapis.com/todo/id123
db.get('todo', 'id123');
// PUT https://ydn-note-data.storage.googleapis.com/todo/id123
db.put('todo', 'id123');
// DELETE https://ydn-note-data.storage.googleapis.com/todo/id123
db.remove('todo', 'id123');

Using the HTML 5 application cache

From the tutorial on the Mozilla Developer Network site:

HTML5 provides an application caching mechanism that lets web-based applications run offline. Developers can use the Application Cache (AppCache)
interface to specify resources that the browser should cache and make available to offline users. Applications that are cached load and work
correctly even if users click the refresh button when they are offline.

Using an application cache gives an application the following benefits:

  • Offline browsing: users can navigate a site even when they are offline.
  • Speed: cached resources are local, and therefore load faster.
  • Reduced server load: the browser only downloads resources that have changed from the server.

OneTab

Image from OneTab site

Yesterday http://waxy.org/links/ posted a link to
OneTab. OneTab is a Chrome extension that lets you
“convert all of your tabs into a list. When you need to access the tabs again,
you can either restore them individually or all at once.”

The problem this solves for me is

  1. I want certain sites to be accessible.
  2. I don’t want something as permanent as a set of bookmarks.
  3. I don’t want 20 tabs taking up memory on my system.

I’ve been playing around with it and it keeps a record of different tab
sessions. You can combine sessions and drag and drop items between them. You
can also drag open tabs into the OneTab window to add it to a session.

It’s a nice little extension.