Skip to content

Instantly share code, notes, and snippets.

@c7x43t
c7x43t / tls.conf
Last active December 10, 2018 15:23 — forked from pascalandy/tls.conf
My Ghost blog, NGiNX TLS configuration | X25519 & secp384r1 | RSA & ECDSA
# RSA
ssl_certificate /path/fullchain.pem;
ssl_certificate_key /path/privkey.pem;
# ECDSA
ssl_certificate /path/0001_chain.pem;
ssl_certificate_key /path/itchy.nl.ec.key;
ssl_dhparam /path/dhparam4096.pem;
// index size: ~ 146kB / distance / 1000 words
// https://www.kaggle.com/yk1598/symspell-spell-corrector
// https://github.com/wolfgarbe/SymSpell
function calculateWordDistance1Deletes(word){
var deletes={};
var fragment;
for(var j=0;j<word.length;j++){
fragment=wordCut(word,j);
deletes[fragment]!==undefined?deletes[fragment]++:(deletes[fragment]=1);
}
// unfinieshed
function matchAll(regEx,str,group=0){
regEx.lastIntex=0;
var match;
var results=[];
while((match=regEx.exec(str))!==null){
results.push(match[group]);
}
return results;
}
@c7x43t
c7x43t / README.md
Created June 6, 2019 17:13 — forked from lovasoa/README.md
Compute the intersection of large arrays in javascript

Array intersect

Fastest function to intersect a large number of big arrays in javascript, without dependencies

  • The compressed version is only 345 caracters long.
  • Faster than common libraries, even a large number of arrays, or on very big arrays. (See benchmarks)

Usage

cmake -G "Visual Studio 16 2019" -A x64

intel compiler names: icc/icpc/ifort C/C++/Fortran

cmake -G "Your Generator" -D CMAKE_C_COMPILER=gcc-4.2 -D CMAKE_CXX_COMPILER=g++-4.2 path/to/your/source

CC=gcc-4.2 CXX=/usr/bin/g++-4.2 cmake -G "Your Generator" path/to/your/source

C:\Users\c7x43t\Documents\rust\symspell\hyperscan

var reg=/(?:^|\s?)([\w\u00C0-\u017Fa-zA-Z-']+)(?:$|\s?)/g;
// __
function tokenize(text){
var tokens = Array.from(text.matchAll(/(?:^|\s?)([\w\u00C0-\u017Fa-zA-Z-']+)(?:$|\s?)/g)).map(e=>e[1]);
return tokens;
}
@c7x43t
c7x43t / prime.js
Created May 24, 2021 14:04
Fast Prime test
var primes=[2];
var maxPrime=2;
function generatePrimes(max){
for(var i=maxPrime;i<=max;i++){
maxPrime=i;
if(isPrime(i)) if(i>2) primes.push(i);
}
}
function isPrime(n){
var max=Math.floor(Math.sqrt(Math.abs(n)));
function getLeafElements(root=document.body,result=[]){
if(root.children.length===0) return result.push(root);
for(var element of root.children){
getLeafElements(element,result);
}
return result;
}
function getElementsByTextContent(reg){
var elements=getLeafElements();
var result=[];
function getParentElementByType(element,parentType){
while((element=element.parentElement)!==null){
if(element instanceof parentType) return element;
}
return element;
}
function serializeElementToSelector(element){
if(!element.dataset.hasOwnProperty('__serial_token__'))
element.dataset.__serial_token__=''+((Math.random()*1e9)<<0)+((Math.random()*1e9)<<0)+Date.now();
var tagName=element.tagName.toLowerCase();
var selector=tagName;
if(element.id!==''){
selector+='#'+element.id;
}
for(let cls of element.classList){
selector+='.'+CSS.escape(cls)