Skip to content

Instantly share code, notes, and snippets.

View thelinuxlich's full-sized avatar
🐉
Here be dragons

Alisson Cavalcante Agiani thelinuxlich

🐉
Here be dragons
View GitHub Profile
@thelinuxlich
thelinuxlich / assertHTTP.ts
Last active February 23, 2024 19:45
A assert on steroids for web services
import { getReasonPhrase } from 'http-status-codes'
export type ALLOWED_HTTP_STATUS_CODES =
| '400'
| '401'
| '403'
| '404'
| '500'
| '501'
| '502'
@thelinuxlich
thelinuxlich / zod_deep_pick.ts
Created October 19, 2023 15:28
Zod Deep Pick
function isZodObject(schema: z.ZodTypeAny): schema is z.AnyZodObject {
if (schema._def.typeName === "ZodObject") return true;
return false;
}
function isZodArray(schema: z.ZodTypeAny): schema is z.ZodArray<any> {
if (schema._def.typeName === "ZodArray") return true;
return false;
@thelinuxlich
thelinuxlich / sql.json
Last active July 28, 2023 21:17
Idempotent DDL snippets
{
"Create Schema": {
"prefix": "psql - Create new schema",
"body": [
"DO $$",
"DECLARE",
"\tv_rec varchar;",
"\tv_schema varchar[] := array[ '$1', '$2' .... ];",
"BEGIN",
"\tFOREACH v_rec IN ARRAY v_schema",
@thelinuxlich
thelinuxlich / unload.js
Created November 23, 2015 18:47
Function for executing logic when closing the page/tab or navigating away
var addUnloadEvent = function(unloadEvent, device) {
// device is a object containing parsed user-agent information
var executed = false,
exec = function() {
if (!executed) {
executed = true;
unloadEvent();
}
@thelinuxlich
thelinuxlich / docker-compose.yml
Created June 9, 2017 03:55
Redis Cluster with Docker Compose v3
version: "3.1"
services:
redis-master-1:
build: ./
networks:
redisnet:
ipv4_address: 10.0.0.2
command: sh -c "redis-server /src/redis.conf --port 7000 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000"
redis-master-2:
build: ./
@thelinuxlich
thelinuxlich / gist:3218947
Created July 31, 2012 17:58
Knockout subscribeChanged
ko.subscribable.fn.subscribeChanged = function(callback) {
if (!this.previousValueSubscription) {
this.previousValueSubscription = this.subscribe(function(_previousValue) {
this.previousValue = _previousValue;
}, this, 'beforeChange');
}
return this.subscribe(function(latestValue) {
callback(latestValue, this.previousValue);
}, this);
};
@thelinuxlich
thelinuxlich / shipitfile.js
Last active September 13, 2017 07:36
Shipitfile example
var project_name = "YOUR_PROJECT_NAME",
project_url = 'YOUR_GIT_URL',
project_destination_server = 'USER@SERVER',
project_destination_dir = '/PROJECT_DIRECTORY',
webhookUri = "SLACK_TOKEN_URI",
Slack = require('slack-node'),
slack = new Slack(),
notify = function(text) {
slack.webhook({
channel: "#notifications",
@thelinuxlich
thelinuxlich / aidax-example-identifyUser.js
Last active July 18, 2017 20:19 — forked from astfarias/aidax-syntax-User.js
AIDAX - Example - Identify User
// Identify User
ax.user({
id: "USER ID", //If the id is an email AIDAX will contextalize the id
properties: {
property1: "value",
property2: "value"
},
migrate: true //optional parameter to migrate old user data in this session to the new user. Default is true
});
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: Version: rethinkdb 2.3.6-0RC1-5-g4f0bd9 (GCC 4.8.3)
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: error: Error in src/clustering/administration/namespace_interface_repository.cc at line 177:
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: error: Guarantee failed: [cache_entry->ref_count == 0]
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: error: Backtrace:
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: Version: rethinkdb 2.3.6-0RC1-5-g4f0bd9 (GCC 4.8.3)
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: error: Error in src/clustering/administration/namespace_interface_repository.cc at line 177:
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: error: Guarantee failed: [cache_entry->ref_count == 0]
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: error: Backtrace:
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: Version: rethinkdb 2.3.6-0RC1-5-g4f0bd9 (GCC 4.8.3)
Jul 14 17:51:33 aidax-rethinkdb-5 rethinkdb[16510]: error: Error in
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: Server got SIGTERM from pid 1, uid 0; shutting down...
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: Shutting down client connections...
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: All client connections closed.
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: Shutting down storage engine... (This may take a while if you had a lot of unflushed data in the writeback cache.)
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: pure virtual method called
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: Version: rethinkdb 2.3.5 (GCC 4.8.5)
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: error: Error in src/errors.cc at line 167:
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: error: std::terminate() called without any exception.
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: error: Backtrace:
Jun 28 18:31:01 aidax-rethinkdb-1 rethinkdb[1472]: Version: rethinkdb 2.3.5 (GCC 4.8.5)