Skip to content

Instantly share code, notes, and snippets.

View SpringMT's full-sized avatar

Spring_MT SpringMT

View GitHub Profile
require 'gr/plot'
srand(1234)
res = []
500.times.each do |i|
res << rand(10000)
end
x_res = []
y_res = []
@SpringMT
SpringMT / gist:2bcbd30caa3e0b53e4f01b4a31e9a97b
Created May 20, 2021 02:54
プログラミング言語の基礎概念
Z plus Z is Z by P-Zero {}
Z plus S(S(Z)) is S(S(Z)) by P-Zero {}
Z plus Z is Z by P-Zero {}
S(S(Z)) plus Z is S(S(Z))
S(S(Z)) plus Z is S(S(Z)) by P-Succ {
S(Z) plus Z is S(Z) by P-Succ {
Z plus Z is Z by P-Zero {}
}

自分でrootの証明書を作ってそこから、さらにCAの証明書、サーバーの証明書を作ってみたけどだめだったパターン

% openssl genpkey -algorithm ed25519 -out root_key.pem
% openssl req -new -x509 -days 3650 -key root_key.pem -out root_crt.pem 
% openssl x509 -text -noout -in root_crt.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
@SpringMT
SpringMT / gist:148d686c7a9d13917199af52350b4f7e
Created November 20, 2020 04:41
sudo strace -tt -s 1024 -p 3340(/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock)
) = 0
04:10:12.717670 futex(0x561ce7b44b28, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
04:10:19.445330 futex(0x561ce7b44b28, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
04:10:19.448096 epoll_pwait(5, [{EPOLLOUT, {u32=607786848, u64=140342959150944}}, {EPOLLIN|EPOLLHUP, {u32=607785600, u64=140342959149696}}], 128, 0, NULL, 0) = 2
04:10:19.448265 write(23, "Dockerfile\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0000100664\0000000000\0000000000\00000000000140\00013755624654\000014223\0 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ustar\00000vagrant\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0vagrant\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0000000000\0000000000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
@SpringMT
SpringMT / gist:64439a2e51bb89d92c2fd8e0f7dc4198
Created November 20, 2020 04:39
sudo strace -tt -s 1024 docker build . --no-cache --rm
vagrant@ubuntu-bionic:~/build$ sudo strace -tt -s 1024 docker build . --no-cache --rm
04:10:19.214966 execve("/usr/bin/docker", ["docker", "build", ".", "--no-cache", "--rm"], 0x7ffc6e38d2e8 /* 15 vars */) = 0
04:10:19.216126 brk(NULL) = 0x55e4e2ea8000
04:10:19.216805 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
04:10:19.217381 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
04:10:19.218260 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
04:10:19.218932 fstat(3, {st_mode=S_IFREG|0644, st_size=26912, ...}) = 0
04:10:19.219698 mmap(NULL, 26912, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff5058a9000
04:10:19.220357 close(3) = 0
04:10:19.221101 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
require "logger"
require "json"
require "active_support"
# https://github.com/yfuruyama/stackdriver-request-context-log/blob/master/stackdriver.go
# severityの変換
# https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud/blob/master/lib/fluent/plugin/out_google_cloud.rb#L1737
module Rrp
module Logger
class StackdriverFormatter < ::Logger::Formatter
require "time"
require "json"
# stackdriver loggingで構造化されたログにするためアクセスログをその構造に沿った形にする
# References
# https://medium.com/google-cloud-jp/gae-%E3%81%AE%E3%83%AD%E3%82%B0%E3%81%AB%E6%86%A7%E3%82%8C%E3%81%A6-895ebe927c4
# https://cloud.google.com/logging/docs/agent/configuration?hl=ja#special_fields_in_structured_payloads
# https://github.com/yfuruyama/stackdriver-request-context-log/blob/master/middleware.go
# https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud/blob/master/lib/fluent/plugin/out_google_cloud.rb
module Rack
@SpringMT
SpringMT / 1on1.md
Created March 24, 2020 08:27 — forked from noto/1on1.md

これは私が支援先に提供した、1 on 1 に関するノウハウや、思いを述べたドキュメントを元にしています。企業の枠を超えて共有したいことが多いので、ここに貼ります。

概要

  • 世の中には 1 on 1 の本があるようですが、とりあえずは『1 on 1 で 何を話すのか? マネージャ/ソフトウェアエンジニアの立場から - サンフランシスコではたらくソフトウェアエンジニア』を読んでもらえればよいと思います (higepon さんに感謝!)。
  • 1 on 1 は 1 対 1 で話すミーティングで、基本定期的にやります。上長とメンバーとの間で行うのが基本です。
  • グループ/チームでのミーティングを補完するためのものです。
    • みんなの前では話しづらい、込み入った内容を話します。
    • チームとして行っているタスクの進捗確認に 1 on 1 を使うのは避けましょう。それは 1 on 1 の目的に沿っていません。
  • 基本、「メンバーの時間」と捉えてください。メンバーが話したいこと、上長に質問したいこと、相談したいことを話す時間です。
  • ですので、上長は相手の話をさえぎらず、聞くことに徹してください (話すのが得意な人、好きな人がマネージャになっている可能性が高いというバイアスに注意しましょうw)。
241,243c241,261
< /*
< * Generate an ID token, if necessary
< */
---
> if (__.contains(code.scope, 'openid') && code.user) {
> var header = { 'typ': 'JWT', 'alg': rsaKey.alg, 'kid': rsaKey.kid };
>
> var ipayload = {
> iss: 'http://localhost:9001/',
85,88c85,132
< /*
< * Implement the UserInfo Endpoint
< */
<
---
> if (!__.contains(req.access_token.scope, 'openid')) {
> res.status(403).end();
> return;
> }