Google re:Work

rework reworkは、googleが働き方にまつわる研究をまとめたサイト。 なんどか読み返したいと思っている記事のindex。 イノベーションが生まれる職場環境をつくる イノベーションが生まれる職場環境をつくるは、「イノベーションが生まれる職場環境をつくる」ことに焦点を当てた記事。だが、そこで働く従業員に求められる資質についても触れられている。 好奇心を表明する リスクテイクする アイディア追求の手段を表明する 繋がりを作る キャパシティだけを見て機械的に仕事を割り当てない 仕事の面だけでなく個人的な面でもチームに配慮する 仕事の面だけでなく個人的な面でもチームに配慮するでは、主にチームメンバーのキャリア形成のためのマネージャーの動きについてまとめている。 キャリア形成に役立つ話し合いをする 組織がメンバーに求めていること 最も改善すべきエリア ワークライフバランスを保つための「シンプルな 1 つの目標」 従業員間での学習プログラムを導入する »

functional option patternについて

error packageを作るにあたり、調べてみた。Dave Cheneyが出している記事を要約してみる。 Functional options for friendly APIs golangで分散型のSNSを作ったとしよう。 あなたはserver componentを作った。 いくつかのunexport methodを実行する必要がある。 また、requestを受け付けるためにはgoroutineを動かさないと行けない。 めでたくリリースすると、すぐにいくつかのリクエストがきた。 モバイルクライアントは接続が切れるので、再接続できるようにしたいとか、小さいVPSで動かしているから接続数を制限したいとか、botからの接続を制限したとか、そういったものだ。 スライドに収まらないほど長くなってきたのは、悪いサインだ。 »

protobuf3のenumのscope

protoのenumのスコープ 概要 enumを宣言する際に考慮する点のメモ enumのscoping rule enum valueはC++のスコープルールに準拠している。 unscoped enumerationとscoped enumerationがあり、unscoped enumerationで名前がかぶると Note that enum values use C++ scoping rules, meaning that enum values are »

golangでenum

iotaを使うべき場面について 概要 iotaを使うべき場面についてのメモ iotaとは golang/goにおけるiotaの説明の通り。 意味のある値には使わない it provides a generality beyond that of simple enumerations. iotaは順番に依存した単純なincremental numberなので、列挙型として使うべきであり、数値自体に意味がある場合には利用するべきではない。 列挙型 enumと呼ばれ、関係するconstantを一つのtypeにまとめるものを指す。例えば下記のような場面で使われる。 Timezones: EST, »

マイ国家

昔良く読んでいた本。book offで売ってたから読んだ。 マイホームを“マイ国家”として独立宣言した男がいた。訪れた銀行外勤係は、不法侵入・スパイ容疑で、たちまち逮捕。犯罪か? 狂気か?――世間の常識や通念を、新鮮奇抜な発想でくつがえし、一見平和な文明社会にひそむ恐怖と幻想を、冴えた皮肉とユーモアでとらえたショートショート31編。卓抜なアイディアとプロットを縦横に織りなして、夢の飛翔へと誘う魔法のカーペット。 恒例のN氏、S氏の始まり方がほっこりと懐かしい。ずっと読んでられる感じ。 そういえば星新一って国語の教科書にも出てたな。 »

アルケミスト

なんとなくkindleで読んでみた。 羊飼いの少年サンチャゴは、アンダルシアの平原からエジプトのピラミッドに向けて旅に出た。そこに、彼を待つ宝物が隠されているという夢を信じて。長い時間を共に過ごした羊たちを売り、アフリカの砂漠を越えて少年はピラミッドを目指す。「何かを強く望めば宇宙のすべてが協力して実現するように助けてくれる」「前兆に従うこと」少年は、錬金術師の導きと旅のさまざまな出会いと別れのなかで、人生の知恵を学んで行く。欧米をはじめ世界中でベストセラーとなった夢と勇気の物語。 世界で最も読まれた本ベスト10」の第5位に入っているらしく、ここまでいくと異次元だな。 作者はパウロコエーリョさんで、色々読んでみたいものだ。 彼らはどうして物事を複雑化するんですか? 知る責任のある人達が理解できるようにするためさ。我慢強く、深く探求できる人だけが、「大いなる作業」を達成できるんだ この発言をするイギリス人は多少滑稽に描かれているが、 »

btcdのsyncが遅い

めちゃくちゃ遅い。 2019/11/03にsyncを開始して、現在でblock heghtは454511。 現在のbitcoinのblock hegithは60万弱。こうやって書くと残り1週間もあればsyncが終わりそうに見えるが、ブロックが積み重なるごとに遅くなっていて、今は20秒に1blockしか積まれない。 予測では、150000 * 20 / 60 / 60 = 844時間かかり、1ヶ月程度追加でかかる試算だけど、更に遅くなっていくことを想定すると永遠に終わらなそうだ。 この辺りのことはissueにも上がっている。 seems btcd is »

pecoとhubでpullrequestをスムーズにする

たくさんのプロジェクトにPRを出していると、自分がどの作業をしているのかよくわからなくなってくる。 それに、githubを中心として開発している組織だと、PRのdescriptionを追うことが効果的なキャッチアップ方法だったりするので、PRをスムーズに調べる力は重要だ。 最初はgithubのwebから調べていたのだけど、だんだんわざわざブラウザに移るのが面倒臭くなって、手頃なものがなかったのでpecoのツールを作ってみた。 zsh on macでしか動作確認していない。~/.zshrcに下記のコードをコピペして、exec -l ${SHELL}する。 function peco-github-prs () { local pr=$(hub pr list -s all »

lnd_clientをgoで

とりあえず動かしてみるというレベル。 下記のコードでcertとmacaroonを準備して $ go run main.go --lnd.network=$LND_NETWORK --lnd.host=$LND_HOST --lnd.macaroondir=$MACAROON_PATH --lnd.tlspath=$TLS_CERT_PATH すれば動く。 package main »

pending_htlcs

pending_htlcsとはなにか。nodeを運用し始めて数日立つけど、この事象は発生したことがなかったので、気になった。 lndmonでもここはモニタリングしてるが、なかなか発生しない。 結論から言えば、lndで挙げられているissueをみればわかる。 htlcのペンディングは、受信側のnodeがなんらかの理由で保持し続けた場合か、ルーティングノードが途中でダウンした場合に発生する。 lightning networkのmultihop paymentではhtlcのコントラクトが伝染することによって、裏切りを巧みに防ぎながらオフチェーントランザクションをさばいている。 詳細としては、overviewが詳しい。 念の為確認として、htlcとは下記のようなコントラクトのことだ。 あるユーザー間(売り手と買い手)の決済を行うコントラクトで、売り手がハッシュのプリイメージを公開することで資金を入手することを可能にし、買い手が指定期間内に売り手がプリイメージを公開せずタイムアウトになった際に、資金を取り戻すことを可能にするスクリプトである。 »