Skip to content

Instantly share code, notes, and snippets.

@shaunlee
shaunlee / sqlite_write_performance.md
Last active February 29, 2024 06:46
Bunjs SQLite has poor write performance

The bun:sqlite has a write performance of only 957/s on SSD, while the node better-sqlite3 has 51080/s.

Test results:

bun:sqlite, ssd: 957/s
bun:sqlite, memory: 66906/s
node better-sqlite3, ssd: 51080/s
node better-sqlite3, memory: 56863/s
go-sqlite3, ssd: 49453/s
go-sqlite3, memory: 54632/s
@shaunlee
shaunlee / app_nav.svelte.html
Last active October 1, 2022 21:49
Svelte app navigate
<script>
import { writable, get } from 'svelte/store'
export const pages = writable([])
export const dialogs = writable([])
export default {
push (component, props = {}) {
dialogs.set([])
pages.update(e => [ ...e, { component, props } ])
@shaunlee
shaunlee / EtagMiddleware.php
Created September 6, 2022 17:00
Laravel/Lumen Etag Middleware
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class EtagMiddleware
{
public function handle(Request $request, Closure $next)
@shaunlee
shaunlee / form.js
Created April 17, 2021 23:41
Form state handling wrapped for Vue projects
import { reactive } from '@vue/reactivity'
export function createForm({
form = {},
validate,
submit,
keep = false,
}) {
const state = reactive({
form,
@shaunlee
shaunlee / dblayer.go
Last active January 28, 2020 19:24
Golang database layer
package main
import (
"fmt"
"strings"
"database/sql"
)
const (
SQL_INSERT = "INSERT INTO %s (%s) VALUES (%s)"
@shaunlee
shaunlee / main.js
Last active June 10, 2018 12:29
NodeJS Cluster
var cluster = require('cluster'),
numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
while (numCPUs-- > 0) cluster.fork();
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
cluster.fork();
});
@shaunlee
shaunlee / restful.go
Last active September 29, 2017 08:11
Simple RESTful web dispatcher
package main
import (
"fmt"
"log"
"net/http"
"regexp"
"strings"
)
@shaunlee
shaunlee / ConnectionPoolWrapper.go
Last active September 10, 2017 21:35 — forked from rday/gist:3504674
Connection Pool
type InitFunction func() (interface{}, error)
type ConnectionPoolWrapper struct {
size int
pool chan interface{}
}
/**
Call the init function size times. If the init function fails during any call, then
the creation of the pool is considered a failure.
@shaunlee
shaunlee / CorsMiddleware.php
Last active March 14, 2017 02:36
Lumen with CORS and OPTIONS requests
<?php
namespace App\Http\Middleware;
use Closure;
class CorsMiddleware
{
/**
* Handle an incoming request.
@shaunlee
shaunlee / circle_byte_buffer.go
Created August 12, 2016 13:14
Circle byte buffer
package main
import (
"io"
"errors"
)
var ErrBufferIsNotEnough = errors.New("buffer is not enough")
type ByteBuffer struct {