Skip to content

Instantly share code, notes, and snippets.

YUKI "Piro" Hiroshi piroor

Block or report user

Report or block piroor

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@piroor
piroor / profiles.json
Created Apr 9, 2020
profiles.json for Windows Terminal
View profiles.json
// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",
//"defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
@piroor
piroor / find-and-open.js
Created Feb 6, 2020
Find AWS/Amazon developers from contributors
View find-and-open.js
// Run this script with the web console for contributors list pages on your Web browser, for example:
// https://github.com/antirez/redis/graphs/contributors
// https://github.com/mongodb/mongo/graphs/contributors
// https://github.com/apache/kafka/graphs/contributors
(async () => {
let promises = [];
for (const url of Array.from(new Set(Array.from(document.querySelectorAll('a[href][data-hovercard-type="user"]'), link => link.href)))) {
const win = window.open(url);
promises.push(new Promise(resolve => {
win.addEventListener('DOMContentLoaded', () => {
@piroor
piroor / SelectionClipboard.ahk
Last active Apr 11, 2019
AutoHotKey https://www.autohotkey.com/ script to simuate "selection clipboard" behavior of Linux desktop environments
View SelectionClipboard.ahk
; Simulate "Selection Cipboard" of Linux desktop environments
; Based on:
; https://softwarerecs.stackexchange.com/questions/9791/copy-selection-to-clipboard-automatically
; Usage:
; 1. Install AutoHotKey: https://www.autohotkey.com/
; 2. Save this file as "SelectionClipboard.ahk".
; 3. Put it into the startup folder.
; Note:
; * Ctrl-C will be sent when you do drag and drop with the left button always, including
; window moving and resizing. This means that SIGINT is sent to appls when you try to
@piroor
piroor / aes-gcm-encryption.js
Last active May 3, 2020
Example of AES-GCM encryptor with passphrase, based on Web Crypto API
View aes-gcm-encryption.js
async function getKey(passphrase, salt = null) {
passphrase = (new TextEncoder()).encode(passphrase);
let digest = await crypto.subtle.digest({ name: 'SHA-256' }, passphrase);
let keyMaterial = await crypto.subtle.importKey(
'raw',
digest,
{ name: 'PBKDF2' },
false,
['deriveKey']
);
@piroor
piroor / array-uniq-benchmark.js
Last active Feb 18, 2019
Benchmark of "uniq" for Array in JavaScript
View array-uniq-benchmark.js
// License: MIT
// Original Author: YUKI "Piro" Hiroshi <yuki@clear-code.com>
// confirmed at Firefox 64
async function test(times, length) {
function uniqByIndexOf(array) {
const uniquedArray = [];
for (const elem of array) {
if (uniquedArray.indexOf(elem) < 0)
View prepare.js
/*
Usage:
1. Install something addon with "tabs" permission.
2. Go to "about:debugging" and open a debugger for the addon.
3. Go to the console.
4. Run.
*/
(async (global) => {
const windowId = (await browser.windows.create({})).id;
@piroor
piroor / enctyptor.js
Last active Feb 8, 2019
Simple String Encryptor (example)
View enctyptor.js
/*
Simple String Encryptor with common key cryptosystem (example)
Usage:
// The first argument of the constructor is the algorithm.
// If you don't specify any algorithm, AES-CTR 256bit is used.
const encryptor = new Encryptor({ name: 'AES-CTR', length: 256 });
const counter = crypto.getRandomValues(new Uint8Array(16));
const encrypted = await encryptor.encryptString('Hello world!', { counter });
@piroor
piroor / peco-commands.sh
Last active Nov 8, 2018
Predefined commands based on peco (on Bash)
View peco-commands.sh
# Usage:
# 1. Download latest binary of peco from: https://github.com/peco/peco/releases
# 2. Extract "peco" from the downloaded archive and put it to somewhere listed in $PATH.
# 3. Put this file as "~/peco-commands.sh".
# 4. Add a line "source ~/peco-commands.sh".
# 5. Exit and login again.
# from http://bio-eco-evo.hatenablog.com/entry/2017/04/30/044703
peco-cd() {
local sw="1"
@piroor
piroor / autoconfig.cfg
Created Sep 27, 2018
Register security exception automatically when a cert error page is initially shown, on Firefox ESR60
View autoconfig.cfg
// the first line is always ignored by Firefox.
const autoAcceptExceptionFor = (host, port = 443) => {
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
const exceptionURL = port == 443 ? `https://${host}` : `https://${host}:${port}`;
const { Services } = Cu.import('resource://gre/modules/Services.jsm', {});
const observer = {
observe(aSubject, aTopic, aData) {
switch (aTopic) {
@piroor
piroor / autoconfig.cfg
Created Sep 26, 2018
Register security exception automatically on the startup of Firefox ESR60
View autoconfig.cfg
// the first line is always ignored by Firefox.
const autoAcceptExceptionFor = (host, port = 443) => {
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
const exceptionURL = port == 443 ? `https://${host}` : `https://${host}:${port}`;
const { Services } = Cu.import('resource://gre/modules/Services.jsm', {});
const observer = {
observe(aSubject, aTopic, aData) {
switch (aTopic) {
You can’t perform that action at this time.