Skip to content

Instantly share code, notes, and snippets.

Avatar
🍣
🍣

Tomohito Ozaki yuroyoro

🍣
🍣
View GitHub Profile
@yuroyoro
yuroyoro / grpc_vcr.rb
Created Jul 17, 2020
gRPCのレスポンスをファイルに記録してrspecで再生できるようにしたやつ
View grpc_vcr.rb
require "grpc"
module GRPC::VCR
GRPC_VCR_FiXTURE_PATH = SPEC_PATH.join("fixtures/grpc_vcr")
def grpc_interceptor(example)
cassette = example.metadata[:grpc_vcr]
return unless cassette&.is_a? GRPC::VCR::Cassette
cassette.exist? ?
View 犬.md

噛み癖を治すために

  • 噛みたいという欲求を解消する必要がある
  • ケージから出して、引っ張り合いをして遊んであげる
    • おもちゃの種類をふやす 10種類くらい用意して飽きさせないように
    • 紐や人形などで引っ張り合いをする
      • 引っ張りで噛む力を発散させる
    • 大きく振り回すと歯を炒めるので、小刻みに引っ張る
    • あそぶときに手をかんだらやめる
@yuroyoro
yuroyoro / evil_promise_usage.js
Created May 23, 2019
async/awaitとpromise使えばモナド糖衣構文っぽいの書けそうだよねって思って書いてみたけど、async () => {} でwrapしないといけないしまぁそんなにきれいに書けなかったって話。でもこういう邪悪なことやる関数型厨いそうですよね?(オマエだよ)
View evil_promise_usage.js
// Optional container like maybe monad
class Option {
constructor(value){
this.value = value
}
async promise() {
return new Promise((resolve, reject) => {
if (this.value) {
resolve(this.value);
@yuroyoro
yuroyoro / calculate_asset_path.rb
Created Aug 17, 2018
Congrats toward to HTML5
View calculate_asset_path.rb
#!/usr/bin/env ruby
arr = {
resource: [6657, 5699, 3371, 8909, 7719, 6229, 5449, 8561, 2987, 5501, 3127, 9319, 4365, 9811, 9927, 2423, 3439, 1865, 5925, 4409, 5509, 1517, 9695, 9255, 5325, 3691, 5519, 6949, 5607, 9539, 4133, 7795, 5465, 2659, 6381, 6875, 4019, 9195, 5645, 2887, 1213, 1815, 8671, 3015, 3147, 2991, 7977, 7045, 1619, 7909, 4451, 6573, 4545, 8251, 5983, 2849, 7249, 7449, 9477, 5963, 2711, 9019, 7375, 2201, 5631, 4893, 7653, 3719, 8819, 5839, 1853, 9843, 9119, 7023, 5681, 2345, 9873, 6349, 9315, 3795, 9737, 4633, 4173, 7549, 7171, 6147, 4723, 5039, 2723, 7815, 6201, 5999, 5339, 4431, 2911, 4435, 3611, 4423, 9517, 3243],
voice: [2475, 6547, 1471, 8691, 7847, 3595, 1767, 3311, 2507, 9651, 5321, 4473, 7117, 5947, 9489, 2669, 8741, 6149, 1301, 7297, 2975, 6413, 8391, 9705, 2243, 2091, 4231, 3107, 9499, 4205, 6013, 3393, 6401, 6985, 3683, 9447, 3287, 5181, 7587, 9353, 2135, 4947, 5405, 5223, 9457, 5767, 9265, 8191, 3927, 3061, 2805, 3273, 7331]
}
def createKey(s)
s.codepoints.
@yuroyoro
yuroyoro / mith_proxy_in_go.md
Last active Feb 15, 2018
GoでhttpsをMiTMするProxyの作り方メモ
View mith_proxy_in_go.md

GoでhttpsをMiTMするProxyの作り方

  1. CONNECTメソッドのリクエストから、http.Hijackerを使って生のTCPコネクションを取り出す
  2. クライアントには200 okを返す
  3. 接続先ホストの証明書を、予め用意してあるroot証明書でサインして生成する
  4. 生成した証明書でクライアントとtls接続を確立する (root証明書が登録されていないとブラウザで警告が出る)
  5. goroutine起こして、クライアントとのtls接続からhttp requestを読み込む
  6. 受けたhttp requestをそのまま接続先hostに送信する
  7. 接続先hostからのhttp responseを、クライアントtls接続に書き込む
  8. EOFが来るまで 5-7繰り返し
@yuroyoro
yuroyoro / README.md
Last active Nov 30, 2017
Sentryをdocker-composeで。
View README.md
  1. docker run --rm sentry config generate-secret-key でSECRET_KEYを生成する
  2. SECRET_KEYを環境変数にいれる export SENTRY_SECRET_KEY="your generated secret key"
  3. docker-compose up -d でサービスあげる。
  4. docker-compose run -rm sentry sentry upgrade で初期設定する
  5. docker-compmse restart で再起動
  6. Go http://localhost:9000 and get sentry!
View gist:76759cc9c6fd06d2f9f912333bd4554b
Received: by 10.170.200.130 with SMTP id r124csp566647yke;
Mon, 26 Jan 2015 17:40:13 -0800 (PST)
X-Received: by 10.236.7.39 with SMTP id 27mr10135662yho.16.1422322813088;
Mon, 26 Jan 2015 17:40:13 -0800 (PST)
Authentication-Results: mx.google.com;
spf=none (google.com: yasuhiro@wahlandcase.com does not designate permitted sender hosts) smtp.mail=yasuhiro@wahlandcase.com;
dkim=pass header.i=@wahlandcase.com
Received-SPF: none (google.com: yasuhiro@wahlandcase.com does not designate permitted sender hosts) client-ip=210.224.168.166;
Received: by 10.170.124.9 with POP3 id q9mf1527070ykb.31;
Mon, 26 Jan 2015 17:40:12 -0800 (PST)
View gist:d8e30e29a84dc1e7c314ec964ce55964
Delivered-To: helmettomo@gmail.com
Received: by 10.129.121.20 with SMTP id u20csp861396ywc;
Mon, 19 Sep 2016 01:14:24 -0700 (PDT)
X-Received: by 10.13.204.87 with SMTP id o84mr24656150ywd.299.1474272863926;
Mon, 19 Sep 2016 01:14:23 -0700 (PDT)
Authentication-Results: mx.google.com;
spf=neutral (google.com: 133.242.250.102 is neither permitted nor denied by best guess record for domain of khorie@wanderlust.co.jp) smtp.mailfrom=khorie@wanderlust.co.jp;
dkim=pass header.i=@wanderlust-co-jp.20150623.gappssmtp.com
Received-SPF: neutral (google.com: 133.242.250.102 is neither permitted nor denied by best guess record for domain of khorie@wanderlust.co.jp) client-ip=133.242.250.102;
Received: by 10.129.42.135 with POP3 id q129mf23827744ywq.2;
View gist:40fd0ef6758a3644f4e7caf73cea315f
Received: by 10.202.106.74 with SMTP id f71csp251115oic;
Tue, 4 Jul 2017 19:42:52 -0700 (PDT)
X-Received: by 10.202.85.212 with SMTP id j203mr27110703oib.174.1499222571214;
Tue, 04 Jul 2017 19:42:51 -0700 (PDT)
Authentication-Results: mx.google.com;
spf=neutral (google.com: 133.242.250.104 is neither permitted nor denied by best guess record for domain of a-takeda@shashoku-collection.jp) smtp.mailfrom=a-takeda@shashoku-collection.jp;
dkim=neutral (body hash did not verify) header.i=@shashoku-collection-jp.20150623.gappssmtp.com header.b=MZougrB6
Received-SPF: neutral (google.com: 133.242.250.104 is neither permitted nor denied by best guess record for domain of a-takeda@shashoku-collection.jp) client-ip=133.242.250.104;
Received: by 10.202.86.195 with POP3 id k186mf60078182oib.1;
Tue, 04 Jul 2017 19:42:51 -0700 (PDT)
View Fold.java
import java.util.*;
import java.util.function.*;
public class Fold {
// 自作fold関数
// 引数に List<T> と、2引数の演算を行うBiFunction<T, T, T>をとって、
// listを順番にfで畳み込む
public static <T> T fold(List<T> list, BiFunction<T, T, T> f) {
T res = list.get(0);
You can’t perform that action at this time.