Skip to content

Instantly share code, notes, and snippets.

@sdebnath
sdebnath / qsort.erl
Created March 15, 2015 22:38
Quicksort in Erlang
%%==============================================================================
%% Quicksort implementation in Erlang
%%
%% Author: Shawn Debnath
%%==============================================================================
%%----------------------------------------------------------------------
%% qsort_r/1
%%
%% Recursive quicksort
@sdebnath
sdebnath / msort.erl
Created March 15, 2015 22:41
Mergesort in Erlang
%%==============================================================================
%% Mergesort implementation in Erlang
%%
%% Author: Shawn Debnath
%%==============================================================================
%%----------------------------------------------------------------------
%% msort/1
%%
%% Mergesort (recursive), implements split and merge.
@sdebnath
sdebnath / keybase.md
Created March 18, 2015 16:58
keybase.md

Keybase proof

I hereby claim:

  • I am sdebnath on github.
  • I am sdebnath (https://keybase.io/sdebnath) on keybase.
  • I have a public key whose fingerprint is 7B6A 66DC 11D5 6398 C65B 3036 6851 6518 F3D6 BAF8

To claim this, I am signing this object:

@sdebnath
sdebnath / gist:36c235e042cb35db7d1f
Last active July 13, 2018 09:39
Add field to Riak YZ Schema with CRDTs
This gist captures what needs to be done to add a new field to Riak's Yokozuna
search index.
Sources:
- https://github.com/basho/yokozuna/issues/130
- http://riak-users.197444.n3.nabble.com/How-to-update-existed-schema-td4032143.html
The code below is for illustration purposes only. Use at your own risk.
1. Create/Update new schema file
@sdebnath
sdebnath / genct.sh
Created July 11, 2015 23:50
generate cscope and tags for freebsd src
#!/bin/sh
# Copyright (c) 2015, Shawn Debnath. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
@sdebnath
sdebnath / unqchars.c
Created January 9, 2016 18:05
Determine if string contains all unique characters using a bitmap
#include <stdio.h>
#include <string.h>
int is_unique(char* str) {
/*
* Bit check array for 256 values
* Rationale: 256 / 32 = 8. 32 for 32 bits in an integer
*/
int check[8] = {0};
int i, val, idx1, idx2;

This is an outdated draft that was used to review the content with FreeBSD contributors. For the latest revision, vist http://shawndebnath.com/articles/2016/03/27/freebsd-jails-with-vlan-howto.html.


FreeBSD Jails with VLAN HOWTO

This article discusses how to set up jails on a FreeBSD 11-CURRENT system utilizing VIMAGE (aka VNET) to provide a virtualized independent network stack for each jail with support for VLAN tagging.

Prerequisites

@sdebnath
sdebnath / bridgegate.py
Created August 26, 2018 01:34
bridgegate.py
#!/usr/bin/env python
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
@sdebnath
sdebnath / firefox_disable_top_tab_bar.md
Last active November 28, 2022 00:22
Disable top tab bar in Firefox 90+

How to disable top tab bar in Firefox 107+ (Tested Nov 27, 2022)

Create custom userChrome.css

  1. Determine profile folder: Help > More troubleshooting information > Profile Folder
  2. Create a folder called chrome in the profile directory
  3. Create a file userChrome.css in the chrome directory with the following contents:
#TabsToolbar { visibility: collapse !important; }
@sdebnath
sdebnath / mxact_create_and_select.sql
Last active January 20, 2022 05:41
Test workload for PostgreSQL MultiXact: create new mxact and select older
CREATE OR REPLACE FUNCTION mxact_create_and_select(SCALE integer) RETURNS void AS $body$
declare
default_rows_per_scale integer := 100000;
gap integer := 3000;
range integer := 100;
create_base_id integer;
read_base_id integer;
segment_id integer;
insert_timsetamp timestamp;
read_timestamp timestamp;