Skip to content

Instantly share code, notes, and snippets.

@ekho
ekho / pg_random_int_array.sql
Last active February 9, 2024 13:47
Postgresql function for generating random integer array
CREATE OR REPLACE FUNCTION random_int_array(dim integer, min integer, max integer) RETURNS integer[] AS $BODY$
begin
return (select array_agg(round(random() * (max - min)) + min) from generate_series (0, dim));
end
$BODY$ LANGUAGE plpgsql;
-- usage example
select random_int_array(15, 6, 40);
-- return example
@ekho
ekho / gat.js
Created June 6, 2012 04:06
Track outgoing links with google analytics
(function(){
function addEventListener(element, event, listener) {
if (typeof listener != 'function')
return;
if (event == 'ready' && element == document){
if (/(loaded|complete)/.test(document.readyState)) {
listener();
return;
}
@ekho
ekho / tampermonkey-youtrack-logurls-fix.js
Last active August 8, 2022 16:30
Youtrack long urls fix using tampermonkey
// ==UserScript==
// @name Fix youtrack long urls
// @namespace http://tampermonkey.net/
// @version 0.3
// @description Youtrack long urls fix using tampermonkey
// @author Boris Gorbylev <ekho@ekho.name>
// @match https://youtrack.*
// @match https://youtrack.admit.ad/*
// @icon https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/YouTrack_Icon.svg/240px-YouTrack_Icon.svg.png
// @grant none
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZeI4ZIBVffW1geSfWM0kqEfMhvj61RjVUK0ZhOaouHQc7dM8lXYNQiYvTg9LbPBGeZ586Rw8l3Z7STzjMA5xryKFCYrhp/9+5+u3lSfzqWNy2Vm5lkTlSD4pjabT4SfTmkwHcPuLDsRRaNopiNdMCDlh7Yt9upnqYL2BbRXn6lhz77J1z6VQ6H3yg74XnISdr/YD9JLV1JDPIWiMiW0UqDGUAfw8c9TE+unkq6O3zjs2fg5KyqCD0ZvGFrrJfRayBpX0ruPRQP5GFN5cLNZ3GIp52fIjgc0AJhCKltCUCq1p3LNW5vio+pgx7TjUMvQiEo1RcMlHVs12+gX+vD9lcbbBUuV4WIfX0FEMQdTsu/sX9VW6CMGfjsPvJPTFov8xoFsbxZKractyY4cGcnhd8JbsSSYmaVQhTpxpT0HMELquoMhhYToogcP9TfN/SMZJofXOejCxpqMNf5mgTGPV/5+3VTMX69Vlg+H6nM7SNltP0nCVFNwXunBeqt9fWKioYlewTHtz5Y75L+lZ9D8SN9pDfm1+46QwxBOnNEcfOyN3yWNPJOQ7afVZpag6cg66OOqaGu11ZrVXc7aveKY22xGaupwt2Blvuh4mIohfjfD962o0LAkfL17EsPksfC1ZelMPbnzgrl0hfMeINwArHotI2GPhuF1PW1ZXCr7kOmQ==
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCxji9X8GY7SNOTc8xz5lzu4VPYmTHK+67ddRG8hgElyTV4pw2SzoW7inqeqWzUeqZL4XEq+FxP+Aakasv81leM0FfIogoklhOtng2kRqtV1SR5b9eX+HWX8MMH4KXivv3oqoUpmWXa0+vfw4rX4Lwr6rEl5lGsxrV5/qH7VmOV7ZpA8JA5MULS5eTd9e2rTYcvZtC8+peV0HFNke82rjxUT0avfUmr9oHNKG1LwDtKn7vOJWLoC4zqjSzMFWMCKGNz2fo1pc0QZvzoR+GiEvw4js9Ut9VirEHxuGZiKfNNZUSR0RdTfdLJ/apLGrukoFaxvT5ahLUEz9/vm1pnDDPDyTQKZimfVaSQXFnXoIebfoIIdXXnR+CpSI1I/xpFqWC5MyrCnL6iZT65pb7W4BbAmq4MfkEGN2RUcVy+7/B8M1BabLSeRgS+RjhvSMt0brbyqQTebxwVHNRe79v7fyBvd+YcAUpneTGnTUbnW8067biC2ElKY9InCCOG8WfYcA4yppxcjlsjCkQMgaE3NseTXRiHPZTTCVXU6cCIRZjjrkvTPzILo5iXkFkyyD6h+ydoFGG0dTYFj0X/CkZl838hQ8CKPFJQoBT5+dG8/zwPhJZwMmorpL4gv/f5aLsqZMQouHcJfwOGiuilccrqqvyOJp0el4d/kAgDWaGzOHpFBQ== b.gorbylev@b.gorbylev-key-prod-infra
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcp1m5ri4+dH+OB5bFIp5mtw/lcw9jWX+2e3qRIE24QkK9aaaEofEOZi5N4astBLSC3lBnH/eDMgXpt0DOPhcf/FuWiUgp+TYFu/3XOcoInSm9UFcwB38cO76Pc2POuk4B7TnIBdUd05Mnw9NzIb3epoiNuYoJD739G85nJ5Hoot0Yh3CLGUyS3KGeXhY52qmBwaZ7XmwRmeQxBDVaXu2REMEjW2jRFr
@ekho
ekho / pgAgent daemon
Last active August 10, 2020 12:41
pgAgent daemon
http://www.ekho.name/2012/03/pgagent-debianubuntu.html
@ekho
ekho / README.md
Last active August 6, 2018 08:59
Autoconnect to openvpn when connected to public WiFi SSIDs

How to

  • Open Tools > Script Editor
  • Paste code
  • Save as Application (not Script) with name ovpn-control
  • Create file ovpn-control-trusted-wifi-ssids.txt near ovpn-control with list of trusted SSIDs (one per line)
  • Add ovpn-control application to autolaunch
  • To hide icon from dock add into Info.plist:
@ekho
ekho / jQuerify
Created April 27, 2018 20:31 — forked from maniator/jQuerify
jQuerify Any Page
javascript: (function(){var el=document.createElement('div'),b=document.getElementsByTagName('body')[0];otherlib=false,msg='';el.style.position='fixed';el.style.height='32px';el.style.width='220px';el.style.marginLeft='-110px';el.style.top='0';el.style.left='50%';el.style.padding='5px 10px';el.style.zIndex=1001;el.style.fontSize='12px';el.style.color='#222';el.style.backgroundColor='#f99';if(typeof jQuery!='undefined'){msg='This page already using jQuery v'+jQuery.fn.jquery;return showMsg();}else if(typeof $=='function'){otherlib=true;} function getScript(url,success){var script=document.createElement('script');script.src=url;var head=document.getElementsByTagName('head')[0],done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=='loaded'||this.readyState=='complete')){done=true;success();script.onload=script.onreadystatechange=null;head.removeChild(script);}};head.appendChild(script);} getScript('https://code.jquery.com/jquery-latest.min.js',function(){if(t
@ekho
ekho / Vagrantfile
Created October 23, 2017 20:56
vagrant hostmanager versus public_interface
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network "public_network", use_dhcp_assigned_default_route: true, bridge: "en0: Wi-Fi (AirPort)"
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
Oct 15 02:52:47 domt-el-01 dockerd-latest: panic: interface conversion: http2.Frame is *http2.UnknownFrame, not *http2.HeadersFrame
Oct 15 02:52:47 domt-el-01 dockerd-latest: goroutine 9 [running]:
Oct 15 02:52:47 domt-el-01 dockerd-latest: panic(0x80b920, 0xc420128140)
Oct 15 02:52:47 domt-el-01 dockerd-latest: /usr/lib/golang/src/runtime/panic.go:500 +0x1a1 fp=0xc420276b08 sp=0xc420276a78
Oct 15 02:52:47 domt-el-01 dockerd-latest: runtime.panicdottype(0x8340e0, 0x84cea0, 0x810b20)
Oct 15 02:52:47 domt-el-01 dockerd-latest: /usr/lib/golang/src/runtime/iface.go:201 +0x11f fp=0xc420276b68 sp=0xc420276b08
Oct 15 02:52:47 domt-el-01 dockerd-latest: golang.org/x/net/http2.(*Framer).ReadFrame(0xc4200e40c0, 0x5, 0x5, 0x0, 0x0)
Oct 15 02:52:47 domt-el-01 dockerd-latest: /builddir/build/BUILD/docker-b303bf68b7f06f751ce4887377ffb2ce02836fd7/containerd-e39d94f23ea6148d73de7f94aa7cf7ef47656128/vendor/src/golang.org/x/net/http2/frame.go:488 +0x4d3 fp=0xc420276c78 sp=0xc420276b68
Oct 15 02:52:47 domt-el-01 dockerd-latest: