Skip to content

Instantly share code, notes, and snippets.

View kuboon's full-sized avatar
🏠
Working from home

Ohkubo KOHEI kuboon

🏠
Working from home
View GitHub Profile
@kuboon
kuboon / autoscroll_after_viewed.js
Created May 31, 2022 04:42
Tampermonkey: auto scroll after viewed
// ==UserScript==
// @name Auto Scroll After Viewed
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Click 'Viewed' checkbox easier.
// @author kuboon
// @match https://github.com/*/files
// @icon https://www.google.com/s2/favicons?domain=github.com&sz=256
// @grant none
// ==/UserScript==
@kuboon
kuboon / Dockerfile
Created February 14, 2022 07:27
.devcontainer
# https://hub.docker.com/_/microsoft-vscode-devcontainers
FROM mcr.microsoft.com/vscode/devcontainers/base:0-ubuntu-21.04
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends fish
RUN chsh -s /usr/bin/fish vscode
USER vscode
SHELL ["/usr/bin/fish", "-l", "-c"]
# http://asdf-vm.com/guide/getting-started.html#_3-install-asdf
@kuboon
kuboon / prepare_db.rb
Created March 18, 2021 03:58
RSpec prepare db
RSpec.shared_context 'prepare db' do
def records
raise 'caller should define'
end
before :all do
::ActiveRecord::Base.connection.begin_transaction(joinable: false)
records
end
after :all do
::ActiveRecord::Base.connection.rollback_transaction
require 'webrick'
require 'cgi'
s = WEBrick::HTTPServer.new(
:Port => 8000,
:HTTPVersion => WEBrick::HTTPVersion.new('1.1'),
:AccessLog => [[open(IO::NULL, 'w'), '']] # アクセスログを出力しない
)
s.mount_proc('/') do |req, res|
@kuboon
kuboon / gcp_start_stop
Created December 7, 2020 01:44
GCP api call sample for https://scriptable.app/
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: light-gray; icon-glyph: magic;
async function accessToken(){
const env = {
CLIENT_ID: "000000000.apps.googleusercontent.com",
CLIENT_SECRET: "xxxxxxx",
REFRESH_TOKEN: "1//xxxxxxxx"
}
const project = "myproject"
@kuboon
kuboon / gsheetDate.ts
Created November 12, 2020 02:52
convert from/to google sheet date serial
import { zonedTimeToUtc, utcToZonedTime } from "date-fns-tz";
const SheetDate = {
origin: Date.UTC(1899, 11, 30, 0, 0, 0, 0),
dayToMs: 24 * 60 * 60 * 1000
};
function serialToDate(d: number, sheetTimeZone: string): Date {
return zonedTimeToUtc(
new Date(d * SheetDate.dayToMs + SheetDate.origin),
sheetTimeZone
@kuboon
kuboon / mtx.c
Last active October 29, 2020 03:54
f2 matrix
#include <stdio.h>
#include <assert.h>
#define N 16
#define K 8
#include "global.h"
#include "chash.c"
#include "inv_mat.c"
typedef struct {
@kuboon
kuboon / keybase.md
Created October 26, 2020 15:35
keybase id

Keybase proof

I hereby claim:

  • I am kuboon on github.
  • I am kuboon (https://keybase.io/kuboon) on keybase.
  • I have a public key ASB-DFiIjV4i7r3896Wm4qQEdU_9djhLMFZ3j2t1xZCcgQo

To claim this, I am signing this object:

@kuboon
kuboon / install_gcloud.sh
Created October 6, 2020 01:26
install gcloud on Ubuntu
#!/bin/env sh
sudo apt install apt-transport-https ca-certificates gnupg
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo apt update && sudo apt install google-cloud-sdk
@kuboon
kuboon / getSelectionWithAlt.ts
Last active October 10, 2020 02:58
document.getSelection with img.alt text
function isImg(node: Node):node is HTMLImageElement{
return node.nodeName==='IMG'
}
function selectionToFragment(){
const s = document.getSelection()
const r = s!.getRangeAt(0)
return r.cloneContents()
}
function getTextFromFragment(f: DocumentFragment) {
const walker = document.createTreeWalker(f, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,