Weekly Selection 2021-11-29

dev.toで記事を公開

試しに英語で記事を書いてみようと思い公開した.

Round up decimals with specifying decimal digit length in Python – DEV Community 👩‍💻👨‍💻

Visual Studio Codeのツリーインデント

インデントサイズ8pxが見にくかったので,16pxまで増やした.

vs codeでExplorer(ファイルツリー)の階層構造を見やすくする – Qiita

tmux.confの設定

何も設定せずに使っていたtmuxに設定をいれてみた.

tmux v2.1からmouse関連の設定が変わった – Qiita

pollenJPさんから tmux list-keys があることを教えてもらった.helpみよう.

GitHubのIssue Template機能

パブリックリポジトリ上でしか使えない機能だった.task4233さんに教えてもらった.

Syntax for issue forms – GitHub Docs

Git LFS

Git LFSをはじめて使った.意外と簡単に使えた.

Git LFS on Ubuntu 18.04

ISO-2022-JP

日本語のメールは,歴史的な経緯で7ビットの文字コードへ変換してやり取りされていることを知った.この文字コードが使われるケースどこなんだろうか.

日本語メールの仕組み | SendGridブログ

Oracle Cloud Computeのファイアウォール

無料枠を使ってみたくなりインスタンスをつくった.
ファイアウォールの設定がかなり分かりにくく疲れたのでメモしておく.

Webコンソールから「ネットワーキング」→「仮想クラウド・ネットワーク」を選ぶ.

ネットワーク設定への入り方

VCNを選択する.

「セキュリティ・リスト」を選択する.

セキュリティ・リストの「イングレス・ルールの追加」から許可したいプロトコルとポート,アドレスを設定する.

これを終わらせたが,外部との通信ができずハマった.

「ネットワーク・セキュリティ・グループ」にも追加が必要だと思い試したが効果はなかった.実は「ネットワーク・セキュリティ・グループ」の設定は不要らしい.

調べた結果,以下の記事を見つけた.結論から言えば,ufwは無効だがiptablesは有効でiptablesの設定をVMに入り手動で変更する必要があった.

Oracle Cloud InfrastructureのUbuntu 20.04.3 LTSでポート開放|ほたるねっとわーく|note

これはイマイチだと思った.つらい.

authelia

Pomeriumを設定しているときに見つけた.こちらのほうが面白そうなのでPomeriumやめようか迷う.

authelia/authelia: The Single Sign-On Multi-Factor portal for web apps

ソフトウェアをOSSで公開している企業

Discordで教えてもらった.思いついたログ系の範囲でもLogDNS, Loggly, InfluxDB, Grafanaがあると思った.

ソースコードを公開したソフトウェアで収益を得ている会社

余談

  • 腕時計をpaypayモールのセールで購入した.
  • 研究が忙しめで大変かも.
  • 研究室に監視目的でパトライトをデプロイした.

Weekly Selection 2021-11-22

multipass on M1 Mac

M1 MacでLinux環境をどう作るかいつも悩む.これは1つの解決策になりそう.

multipassを使ってM1 Mac上でUbuntu VM (ARM版)を動かしてみた – Qiita

Twitter/アメブロがAMPのサポート終了

AMPは廃止されていくトレンドだと理解していた.実際にサポート切りの事例が出てくるとフォロワーが増えてきそう.

TwitterがGoogle主導で開発されたウェブサイトを高速化する形式「AMP」のサポートを打ち切ることが判明 – GIGAZINE

アメブロのAMPを終了します | CyberAgent SEO Information  (サイバーエージェントSEO情報ブログ)

CSSメディアクエリを使わない実装

CSS素人なので初めて知った.

CSSでメディアクエリはもう必要ないかも -メディアクエリなしで実装するテクニックのまとめ | コリス

データ構造の可視化

GUIでポチポチしながらデータ構造を理解できる.B-treeを理解するときに見つけた.サポートするアルゴリズムも多いのでよさそう.

Data Structure Visualization

時系列データベース

時系列データベースではアルゴリズムにLSM-Treeを使うらしい.はじめてしった.

今、時系列DBが熱い(熱いとは言っていない?)

B-treeアルゴリズム

B-treeを曖昧に理解していたので復習した.一緒にAVL-Treeも理解できた.

これでわかるB-treeアルゴリズム / B-tree algorithm – Speaker Deck

悲観的ロックと楽観的ロック

理解が曖昧だったので調べ直した.まさにACID特性のConsistency, Isolationだと思った.

排他制御(楽観ロック・悲観ロック)の基礎  – Qiita

数体篩法

セキュリティの授業で数体篩法を知った.

素因数分解の現状 (古典計算編) – Qiita

EBCDIC

学部の授業でアシスタントをしていたら紹介していた.ASCII以外なにもわからない.

EBCDIC – Wikipedia

Baidu製のOSSロードバランサ

Goで実装されたDSLをサポートしたロードバランサ.対応プロトコルの豊富さが強みらしい.

bfenetworks/bfe: A modern layer 7 load balancer from baidu

北海道大学のアカデミックスキルセミナー

アカデミックスキルセミナーの資料があった.これは研究室で使いたい.

アカデミックスキルセミナー : HUSCAP

余談

  • 研究室でサーバのメンテナンスを手伝った.
  • 松屋の朝定食を食べた.
  • 丸亀製麺でランチした.
  • ごま豆乳鍋をスープから作った.美味しくて幸せだった.

Weekly Selection 2021-11-15

macOSのデスクトップ設定

試行錯誤した結果,これに納得した.特にスクリーンショットの日時がすべて見えるのがよい.

WeChatのマイクロサービスアーキテクチャ

WeChatがマイクロサービスアーキテクチャを採用している

Overload Control for Scaling WeChat Microservices – socc18-final100.pdf

TwitterやNetflix, Uberが採用している例は知っていたが,WeChatは知らなかった.特にサービスの種類が3,000でサービス数が20,000という規模はかなりめずらしい.

金持ちを貧乏人にしても,貧乏人は金持ちにならない

The poor will not become rich even if the rich are made poor.

名言ナビ – お金持ちを貧乏にしても、貧乏な人はお金持ちにはなら

ソースを探したが見つからず.かわりに以下が見つかった.

The rich get richer and the poor get poorer – Wikipedia

これは本人が直接話した言葉ではないよう.

RPKI

はじめて知った.任意の技術で信頼性を高めるために認証や検証が必要であると感じた.

PrometheusとGrafanaのインストール

研究室のwikiに書いた内容をqiitaにも投稿しておいた.Operatorを使えば簡単にPrometheus + Grafanaが構築できた.Grafanaはtype:Ingressやtype:LoadBalancerを別で作成して,ダッシュボードへ外部からアクセスできるようにしたほうがよさそう.

KubernetesクラスタへPrometheus+GrafanaをOperatorで簡単にインストール – Qiita

カスケード障害

論文輪講で知った.連鎖的に発生する障害という言葉で話していたが,この言葉を使っていきたい.

SRE本まとめ(22章 カスケード障害への対応) – Qiita

ワークライフバランス

自分の時間を家族をもったときにどう使うか参考になった.バランスは気をつけなければならないなと.このあたりは,「How Will You Measure Your Life? (イノベーション・オブ・ライフ: ハーバード・ビジネススクールを巣立つ君たちへ)」にも書いてあった.

家族やプライベートを犠牲にして仕事や実績を得ていたことから目を背けられなくなった件 – 人間とウェブの未来

Goランタイムのスケジューラ

あとでよむ.言語のスケジューラを詳しく解説しているの素晴らしい.

スケジューラから学ぶGoランタイム 〜code reading of runtime pkg〜 – Speaker Deck

余談

  • wafuwafuさんの通話に参加した
  • 論文の最終原稿を提出した.ねむい.
  • 博士後期課程への進学と就職をどうしようか迷っている.
  • 日本MSの選考を辞退した.
  • 国立科学博物館,上野東照宮に行った.
  • はなまるうどんのテイクアウトを初めて買ってみた,よい.
  • エチゴビールのスタウトを飲んだ.おいしい.
  • 伊藤先生のツイートに共感した.

Weekly Selection 2021-11-08

Privacy Sandboxの進捗

あとでよむ

Progress in the Privacy Sandbox (October 2021) – Chrome Developers

sshpiper(SSH Proxy)

SSHのユーザ名にもとづいて動的に宛先をルーティングするミドルウェア.L7のLBというイメージ.

tg123/sshpiper: The missing reverse proxy for ssh scp

ユーザに変更を要求せずにシステム変化に追従可能なSSHプロキシサーバsshrの開発 – デジタルプラクティス

h2cとh2

知らない単語が出てきたので調べてみた.

HTTP/2? h2? h2c? って何? – 隙あらば寝る

アフィン変換

ツイッターで見かけて調べてみた.アフィン変換とよぶらしい.

Microsoft PowerPoint – 2.2次元座標変換.pptx – 2.pdf

コーディングインタビュー対策

Amazonのソフトウェアエンジニアになった人が公開している本質情報の集まったリポジトリ.

jwasham/coding-interview-university: A complete computer science study plan to become a software engineer.

OCSP

大学院の授業でOCSPとCRLについて記述するレポートがあり調べていたら見つけた.Okuさんはダジャレときちんとした話が混ざっているのが好き.

while内でssh

研究でSSHをwhileに入れて実行していたら1件目しか実行されず詰まった. ssh -n にすると上手く行った.

while内でsshを使うと1回で止まる – Miuran Business Systems

離散数学

東大の離散数学の資料を見つけた.具体化と抽象化の話はかなり有用だと思った.

離散数学 – 東京大学

仕事の集中力

最近のタスクへの取り組み方がまさにこれだった.習慣をきちんと作ることが大事だと思った.

仕事に集中するための、科学的に裏付けられた3つの習慣 | ライフハッカー[日本版]

Generics in Python

Go言語にGenericsが入ることを思い出してPythonにGenericsがあるか調べてみた.Unionとセットで調べておきたい.

PythonとTypeScriptで学ぶGenerics初めの一歩 – mizzsugar’s blog

深層学習

ニューヨーク大学の深層学習に関する授業資料が公開されていた.

深層学習 · 深層学習

Producer-consumer problem

排他制御に関連する問題らしい.

Producer–consumer problem – Wikipedia

オペレーティングシステム ~ 相互排除と同期(2) ~ – 08-synchronization2.pdf

Visual StudioのPython拡張

言語サーバがPylanceに切り替わるそう.

Visual Studio Code用Python拡張機能の2021年11月版がリリース:CodeZine(コードジン)

alacritty

alacrittyにターミナルを変えてみた(2回目).テーマの設定が面倒だったので以下のモジュールを使って動的に設定した.

rajasegar/alacritty-themes: Themes for Alacritty: A cross-platform GPU-accelerated Terminal emulator

ネットワーク運用からみた オーバレイ/仮想化技術

JANOG 22で説明されていたオーバレイネットワークの資料.

MAIN(仮称).NW設計書 – overlay-03kohno.pdf

余談

  • Googleカレンダーの予約枠を使ってみた.使えそう.
  • 研究室に見学にきた後輩とお話をした.
  • 週末に朝までお酒を飲んだ.
  • 論文が採録が決まった.
  • 専門店でおむすびを買って食べてみた.

Weekly Selection 2021-11-01

Amazon SESからの追放

少し炎上していた.苦情レートを削減せずにMail as a Serviceに移行するアプローチが議論をよんでいた.

バウンスしすぎて Amazon SES から追放された俺たちは Mailgun と SendGrid に国を作ることにした – ANDPAD Tech Blog

修士研究の始め方

お茶の水女子大の伊藤先生が書かれた修士研究の資料.

修士論文の作り方

ソフトウェアエンジニア採用におけるコーディングテスト

ソフトウェアエンジニアの採用でコーディング試験をやるメリットが分析されていた.

ソフトウェアエンジニア採用におけるコーディングテストのススメ – MAYAH

Googleの構造化面接

Googleの面接観点がかかれていて面白かった.「難問奇問を避ける」は過去のGoogleの入社試験で証明されたことなので納得した.

Google re:Work – ガイド: 構造化面接を実施する

GitHub ActionsがOpenID Connectをサポート

一時的なトークンを発行することで短時間でのアクセス許可(cookieのexpiresに似ている?)を実現しているみたい.

GitHub ActionsがOpenID Connectをサポート。GitHubからクラウドへのデプロイがより安全に - Publickey

CLIからメールを送るテストを手軽に

telnetで送信していたのでこれは使えそう.

コマンドからSMTPでメールを送るテストを手軽にやる。 – それマグで!

WordPressセキュリティガイド

WordPressのセキュリティ対策に使えそう.

WordPress セキュリティガイド #wpmeetupkyoto / WP Security Guide – Speaker Deck

Go入門

GoのGitHubリポジトリをレビューする時の観点が整理されていた.これは気をつけたい.

VSCodeの拡張

VSCodeの拡張が便利なことに気がついて前から気になっていたツイート群から入れてみた.

OCSP

大学院の授業課題でOSCPやCRLを調べていた時に見つけたので気になった.

コマンドラインからURLエンコードをデコード

Nginxのアクセスログをシェル芸で解析するときに使った.URLパラメータはエンコードされているのでパット見ただけでは分からなかった.

コマンドラインで URL デコードする一例 – ようへいの日々精進XP

Spectreの脅威とウェブサイト

Twitterでagektmrがツイートされていた.Webサービスを提供する事業者はこれを意識したほうがよいと思った.

Spectre の脅威とウェブサイトが設定すべきヘッダーについて

Python3の遅延評価

map()で実装をしたときに実行されず悩んだ.原因は遅延評価で参照されるまで呼び出されないことが原因だった.Pythonなにもわからない.

とっても遅延評価なPython3 – ponkotuyの日記

Knative 1.0

Knative 1.0がリリースされた.kubelessと比較しながら試してみたい.

Knative 1.0 is out! – Knative

余談