Skip to content

Instantly share code, notes, and snippets.

@brandonb927
brandonb927 / gist:9587436
Created March 16, 2014 18:13
Simple JSON database with Node.JS

From: http://run-node.com/littlest-database-that-could/

I've written numerous tiny databases. They don't have much features, but they don't need much features. Usually I'm looking for fast simple key/value stores and Node never disappoints. The point here is, why abstract key value store when JS gives us one for free, as it's most basic component: object.

Will it meet every need? No. But it will meet ALOT of scenarios.

In memory JS object lookups, were talking hundreds of thousands of lookups (you'll easily flood http before the db), and save hundreds of thousands of records in a JSON file written to disk. Not a 200ms r/t to some hosted Redis. Hey, that's fine if that's your thing.

Here's the requirements:

@RobK
RobK / serial.js
Last active June 28, 2022 02:54
Generate Random Serial Keys
/**
* Created by Robert Kehoe on 09/06/2014.
* MIT Licensed.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
@techfort
techfort / LokiSaveReload.js
Last active February 5, 2024 10:27
LokiJS - save to disk and reload
var loki = require('lokijs'),
db = new loki('test.json'),
db2 = new loki('test.json');
var users = db.addCollection('users');
users.insert({
name: 'joe'
});
users.insert({
name: 'john'
@mandiwise
mandiwise / Update remote repo
Last active July 3, 2025 16:11
Transfer repo from Bitbucket to Github
// Reference: http://www.blackdogfoundry.com/blog/moving-repository-from-bitbucket-to-github/
// See also: http://www.paulund.co.uk/change-url-of-git-repository
$ cd $HOME/Code/repo-directory
$ git remote rename origin bitbucket
$ git remote add origin https://github.com/mandiwise/awesome-new-repo.git
$ git push origin master
$ git remote rm bitbucket
@techfort
techfort / electroloki
Created May 1, 2015 12:38
basic loading of LokiJS in an electron app
var app = require('app'); // Module to control application life.
var BrowserWindow = require('browser-window'); // Module to create native browser window.
var loki = require('lokijs'),
db = new loki(),
users = db.addCollection('users', {
indices: ['username']
});
users.insert({ username: 'joe', age: 40});
users.insert({ username: 'jack', age: 30});
@scottmagdalein
scottmagdalein / clickable-element.html
Last active March 15, 2023 18:01
Make the Mailchimp Subscriber popup appear on click
<!-- This is the HTML element that, when clicked, will cause the popup to appear. -->
<button id="open-popup">Subscribe to our mailing list</button>
@john-doherty
john-doherty / javascript-trim-svg-whitespace.js
Created October 21, 2016 13:39
Trim whitespace from SVG elements
function trimSvgWhitespace() {
// get all SVG objects in the DOM
var svgs = document.getElementsByTagName("svg");
// go through each one and add a viewbox that ensures all children are visible
for (var i=0, l=svgs.length; i<l; i++) {
var svg = svgs[i],
box = svg.getBBox(), // <- get the visual boundary required to view all children
@timoxley
timoxley / 1.rreaddir.js
Last active June 19, 2025 19:36
async/await recursive fs readdir
import { join } from 'path'
import { readdir, stat } from 'fs-promise'
async function rreaddir (dir, allFiles = []) {
const files = (await readdir(dir)).map(f => join(dir, f))
allFiles.push(...files)
await Promise.all(files.map(async f => (
(await stat(f)).isDirectory() && rreaddir(f, allFiles)
)))
return allFiles
@noah
noah / common-exif-tags.csv
Created January 4, 2017 16:18
Common EXIF tags
ExifTool:ExifToolVersion 123469
File:Directory 123469
File:FileAccessDate 123469
File:FileInodeChangeDate 123469
File:FileModifyDate 123469
File:FileName 123469
File:FilePermissions 123469
File:FileSize 123469
SourceFile 123469
File:FileType 80230
@iffy
iffy / .gitignore
Last active May 19, 2025 13:56
Example using electron-updater with `generic` provider.
node_modules
dist/
yarn.lock
wwwroot