•        39

knockout-validator is an extensible model validation system for knockout framework, that besides normal validations it handles well nested validations and array validations. Validation is performed on the view model. The UI can selectively register to display validation result...



Related Projects


knockout-data-projections (aka ko-data-projections) makes it easier for developers to translate complex view models to plain javascript objects. It can be used in any js-to-js one-to-one nested or flat mappings and it can handle knockout observables well.

Coolstorage - ORM library for .NET

The main strength of Vici CoolStorage is the ease of use. Most ORM tools still require a lot of unneeded code to accomplish basic data persistence tasks, but Vici CoolStorage is designed to relieve the programmer from these tedious and error-prone tasks, making it very intuitive to use.


JFig is a simple, powerful tool to manage application configuration

python-versioneer - version-string management for VCS-controlled trees

This is a tool for managing a recorded version number in distutils-based python projects. The goal is to remove the tedious and error-prone "update the embedded version string" step from your release process. Making a new release should be as easy as recording a new tag in your version-control system, and maybe making new tarballs. For released software, the version identifier is closely related to a VCS tag. Some projects use tag names that include more than just the version string (e.g. "myproject-1.2" instead of just "1.2"), in which case the tool needs to strip the tag prefix to extract the version identifier. For unreleased software (between tags), the version identifier should provide enough information to help developers recreate the same tree, while also giving them an idea of roughly how old the tree is (after version 1.2, before version 1.3). Many VCS systems can report a description that captures this, for example git describe --tags --dirty --always reports things like "0.7-1-g574ab98-dirty" to indicate that the checkout is one revision past the 0.7 tag, has a unique revision id of "574ab98", and is "dirty" (it has uncommitted changes.

mongoid-history - Multi-user non-linear history tracking, auditing, undo, redo for mongoid.

Mongoid-history tracks historical changes for any document, including embedded ones. It achieves this by storing all history tracks in a single collection that you define. Embedded documents are referenced by storing an association path, which is an array of document_name and document_id fields starting from the top most parent document and down to the embedded document that should track history. This gem also implements multi-user undo, which allows users to undo any history change in any order. Undoing a document also creates a new history track. This is great for auditing and preventing vandalism, but is probably not suitable for use cases such as a wiki (but we won't stop you either).

Dexie.js - A Minimalistic Wrapper for IndexedDB

Dexie.js is a wrapper library for indexedDB - the standard database in the browser. IndexedDB is a low-level API for client-side storage of significant amounts of structured data, including files/blobs. Dexie provides a neat database API with a well thought-through API design, robust error handling, extendability, change tracking awareness and extended KeyRange support (case insensitive search, set matches and OR operations).

BitsetWrapper - A bit array wrapper over Uint8Array, edits bits, but is stored as a byte array.

A bit array wrapper over Uint8Array, edits bits, but is stored as a byte array. The idea is that you use it as a bit array, you can also use it as a byte array of "any" type (until it reaaches max word size which for me is 53 bits) So yeah you could convert bytes back and forth bases, Also since it's based in Uint8Array, It's typed, therefore it won't change length as easily. You will have to concantenate it, it also has "useful" comments of why some thnigs exists, It's nice.

vive-diy-position-sensor - Code & schematics for position tracking sensor using HTC Vive's Lighthouse system and a Teensy board

Lighthouse position tracking system consists of:   – two stationary infrared-emitting base stations (we'll use existing HTC Vive setup),   – IR receiving sensor and processing module (this is what we'll create).The base stations are usually placed high in the room corners and "overlook" the room. Each station has an IR LED array and two rotating laser planes, horizontal and vertical. Each cycle, after LED array flash (sync pulse), laser planes sweep the room horizontally/vertically with constant rotation speed. This means that the time between the sync pulse and the laser plane "touching" sensor is proportional to horizontal/vertical angle from base station's center direction. Using this timing information, we can calculate 3d lines from each base station to sensor, the crossing of which yields 3d coordinates of our sensor (see calculation details). Great thing about this approach is that it doesn't depend on light intensity and can be made very precise with cheap hardware.

closure_tree - Easily and efficiently make your ActiveRecord models support hierarchies

Common applications include modeling hierarchical data, like tags, threaded comments, page graphs in CMSes, and tracking user referrals. See Bill Karwin's excellent Models for hierarchical data presentation for a description of different tree storage algorithms.

Request Tracker - issue tracking system in CGI and Perl

Request Tracker is an enterprise-grade issue tracking system which thousands of organizations use for bug tracking, help desk ticketing, customer service, workflow processes, change management etc. This product is very stable and been around for over 10 years.

party-mode - An experimental music visualizer using d3.js and the web audio api.

Using the web audio api, I can get an array of numbers which corresponds to the waveform of the sound an html5 audio element is producing. There's a good tutorial on how to do this. Then, using requestAnimationFrame (with a little frame limiting for performance reasons) I'm updating that array as the music changes. I then normalize the data a bit (or transform it slightly depending on the visualization) and redraw the screen based on the updated array. I'm using d3.js to draw and redraw SVG based on this normalized data. Each visualization uses the data a bit differently -- it was mostly trial and error to get some stuff I liked looking at. Since I'm using D3 -- which is just drawing SVG -- I was able to style everything in CSS (no images are used at all, including icons). There are a handful of differently colored themes for each visualization, and I do some rudimentary CSS namespacing by updating a class applied to the html element. eg. <html class='theme_1'>. This lets me override or substitute CSS rules pretty trivially. I can add some additional variation to each theme by messing with pseudo selectors. For example, I can use :nth-of-type to hide every nth SVG rectangle or making every odd child have a different stroke-dasharray, etc.

on-change - Watch an object or array for changes

It works recursively, so it will even detect if you modify a deep property like obj.a.b[0].c = true.Uses the Proxy API.

curl - A basic CURL wrapper for PHP

The Curl object supports 5 types of requests: HEAD, GET, POST, PUT, and DELETE. You must specify a url to request and optionally specify an associative array or string of variables to send along with it. All requests return a CurlResponse object (see below) or false if an error occurred. You can access the error string with the $curl->error() method.

rdb - Javascript ORM

ORM for nodejs. Supports postgres, mySql and sqlite. 1.7.1 Support for schemas (postgres only). 1.7.0 sqlite3 is now a peer dependency. Add it to your own package.json if you intend to use it. 1.6.9 Bugfix: one-to-many relation returns empty if strategy is included. 1.6.8 Bugfix: one-to-many relation returns empty if insert/update is done earlier in transaction. 1.6.7 Bugfix in relations. 1.6.6 Bugfix. 1.6.5 Improved performance on relations. 1.6.4 Bugfix. 1.6.3 Bugfix: potential incorrect timeZoneOffset when serializing date to JSON. Got timeZoneOffset from now() instead of on actual date. 1.6.2 Removed es6 syntax to ensure backwards compatability. Fixed global var leak. 1.6.1 Now supporting sqlite. 1.6.0 Bugfix: potential ambigous column error when using limit and relating to other tables. 1.5.9 Bugfix: using multipleStatements in mySql could sometimes cause an error when updates are run right before a select. Improved performance on limit when relating to other tables. Using uuid instead of node-uuid Updated all dependencies but generic-pool to latest. (Generic-pool has some breaking changes in latest. I will update it in next release.) 1.5.8 Cleanup line breaks in documentation. 1.5.7 Bugfix: getById.exclusive and tryGetById.exclusive did not lock if row was cached. Improved performance on tryGetFirst. 1.5.6 Raw sql filters can accept sql both as string and as function. E.g. var filter = {sql: function() {return 'foo > 1';}}. 1.5.5 Optional locks for getMany, tryGetFirst and tryGetById. Instead of calling getMany(params) just call getMany.exclusive(params). Same syntax goes for tryGetFirst and tryGetById. This will result in SELECT FOR UPDATE. Bugfix: bulk deletes now accepts raw sql filters too. 1.5.4 Transaction locks. Postgres only. 1.5.3 Upgraded to pg 6.0.3 1.5.2 Improved performance and reduced memory footprint. 1.5.1 Documented JSON column type. Bug fix: Insert and foreign key violation. 1.5.0 JSON column type. Postgres json type does not support rdb filters. 1.4.1 Empty filter would sometimes cause invalid filter. 1.4.0 Raw SQL query. 1.3.0 getMany() now supports limit and orderBy - same syntax as in streaming. 1.2.3 Bugfix: iEqual gave incorrect sql when parameterized. 1.2.2 Exlusive no longer returns a clone of table. It has changes current table to exclusive locking. 1.2.1 Bugfix: Exclusive row locks 1.2.0 Exclusive row locks 1.1.0 Now supporting streaming. Requires postgres or MySQL >=5.7.7 1.0.8 README fixup. 1.0.7 Better performance on insert and update. 1.0.6 Bugfix: Transaction domain should not forward rdb singleton from old domain. 1.0.5 Documentation cleanup. 1.0.4 orderBy in toDto(). 1.0.3 toDto() using next tick on every thousandth row to avoid maximum call stack size exceeded. 1.0.2 Reduced number of simultaneous promises in order to avoid maximum call stack size exceeded. 1.0.1 Bugfix: Incorrect insert/updates on timestamp without timezone. The time was converted utc instead of stripping the timezone. 1.0.0 Transaction domain forwards properties from old domain. Semantic versioning from now on. 0.5.1 Improved performance 0.5.0 Logging: rdb.log(someFunc) logs sql and parameters. Raw sql filters. 0.4.9 New method: tryGetById. New filter: iEqual, postgres only. Bugfix: rows.toJSON() without strategy did not include any children. 0.4.8 Explicit pooling with size and end(). Bugfix: mySql did not release client to pool. 0.4.7 Upgraded to pg 4.3.0 Upgraded to mysql 2.5.5 0.4.6 Upgraded pg 4.2.0. 0.4.5 Oops. Forgot to use pg.js instead of pg. 0.4.4 Upgraded all dependencies to latest. Using pg.js instead of pg. 0.4.3 Can ignore columns when serializing to dto. 0.4.2 Bugfix: update on a row crashes when a delete occurs earlier in same transaction. 0.4.1 Bugfix: more global leaks. 0.4.0 Bugfix: global leak. 0.3.9 Bugfix: eager loading joins/hasOne with non unique column names was not handled correctly. 0.3.8 Supports mySql. Bulk deletes. 0.3.7 Bugfix: eager loading manyRelation on a join/hasOne returned empty array #11 0.3.6 Fixed sql injection vulnerability. 0.3.5 Built-in fetching strategies for lazy loading. Works best in readonly scenarios. 0.3.4 Docs and examples split moved to separate file. 0.3.3 Fixed documentation layout again. 0.3.2 Fixed documentation layout. 0.3.1 Case insensitive filters: iStartsWith, iEndsWith and iContains. 0.3.0 Fix broken links in docs. 0.2.9 Support for row.delete(). Rollback only throws when error is present. 0.2.8 Guid accepts uppercase letters. Bugfix: null inserts on guid columns yielded wrong sql. 0.2.7 New method, toDto(), converts row to data transfer object. Bugfix: toJSON returned incorrect string on hasMany relations. 0.2.6 Fixed incorrect links in README. 0.2.5 Bugfix: caching on composite keys could give a crash #7. Improved sql compression on insert/update. 0.2.4 Bugfix: getMany with many-strategy and shallowFilter yields incorrect query #6. 0.2.3 Reformatted documentation. No code changes.

slim-json-api - Slim extension to implement fast JSON API's

This is an extension to the SLIM framework to implement json API's with great ease. To display an error just set the error => true in your data array. All requests will have an error param that defaults to false.

rollbar-php - Error tracking and logging from PHP to Rollbar

This library detects errors and exceptions in your application and reports them to Rollbar for alerts, reporting, and analysis. For complete usage instructions and configuration reference, see our PHP SDK docs.

rollbar.js - Error tracking and logging from JS to Rollbar

Rollbar.js is the Javascript SDK for Rollbar. It supports both Node.js and client-side Javascript, including frameworks such as React, Angular, Ember, and more. For complete usage instructions and configuration reference, see our Javascript SDK docs.

Simple sample of knockout JS, knockout JS validation and MVC 4

MVC 4 update based on Visual Studio 2010


TomCdc is a solution which makes tracking of sql databse changes easy. Quick and simple installation process allows to start using the solution in just a few minutes. It supports all versions of Microsoft Sql server. You'll no longer have to write triggers manually to find ou...

MantisBT - Bug Tracking System in PHP

MantisBT is a web-based bug tracking system written in the PHP and works with MySQL, MS SQL, and PostgreSQL databases and a webserver. It supports multiple projects in a single instance. Its features set include Full text search, Built in Reports, Custom fields, Change History, RSS Feeds, Export to csv, Excel, Word, Upload attachments, Wiki Integration ,LDAP Integration, SOAP interface, Support for mobile devices, localization support and lot more.