Weekly Selection 2021-12-13

Apache Dubbo

論文を読んでいたら見つけた.RPCフレームワークらしい.Alibaba社が開発してOSS化されたそう.

Dubbo とは?動作確認や機能、特徴などを解説 | OSSサポートのOpenStandia™【NRI】

Apache Ozone

Preferred Networksの社内向けデータ基盤をApache HadoopからApache Ozoneに移行した話.

Apache Ozoneをやっていた一年 – Preferred Networks Research & Development

Kubernetes 1.23のリリース

IPv6のサポートがついに入ったのかという印象.

Kubernetes 1.23が正式リリース。IPv4/v6デュアルスタック、水平PodオートスケーラーAPIv2が安定版、Kubelet CRI APIがベータ版になど - Publickey

Log4jの脆弱性

最初にTwitterでMinecraftが影響を受けるという話でLog4jが注目を受けていた.その後,影響範囲が広くなるとの情報があり,各方面で対応を行う状態になっていた.

Restrict LDAP access via JNDI by rgoers · Pull Request #608 · apache/logging-log4j2

Worst Apache Log4j RCE Zero day Dropped on Internet – Cyber Kendra

Log4Shell: RCE 0-day exploit found in log4j 2, a popular Java logging package | LunaSec

【注意喚起】Log4jの脆弱性を狙う攻撃を多数検知、至急対策を! | セキュリティ対策のラック

実際のサービス群で検証した結果を掲載しているが,信憑性は定かでない.

YfryTchsGD/Log4jAttackSurface

BurpSuiteで検出されるExternal Service Interactionに近い気がした.

External service interaction (DNS) – PortSwigger

ワクチンが開発されていて面白い.

“Log4j用ワクチン”登場 脆弱性を利用して修正プログラムを実行 – ITmedia NEWS

忙しい研究者のためのテストコードとドキュメントの書き方

インターフェースの定義をdocstringで書いて,pydocを組み合わせていた.余裕のある時に実践してみたい.

忙しい研究者のためのテストコードとドキュメントの書き方 – Qiita

Pythonのシステムプログラミング

標準関数の内部実装を追跡していた.意外と知らないことがあると感じた.

Pythonならわかるシステムプログラミング – Qiita

実行できるライブラリ

標準ライブラリのうち,Pythonコマンドの -m 引数から呼び出せるものが列挙されていた.calendarやbase64があることは知らなかった.

実行できる Python 標準ライブラリ – Qiita

GoogleのレジュメTips

名前やメールアドレス,GitHubアカウントやプログラミング言語を最上段に書くことだけでも学びだった.

NSSプラグインの作成

NSSプラグインの作成を説明していた.シェルのユーザ名やホスト名の補完もこれで実現できそう.

プラグインを書いて学ぶGNU NSS – ローファイ日記

SSHの最大セッション数

デフォルトは10なので増やしたほうがよい.

OpenSSHの設定について整理する(sshd_config) – oneのはてなダイアリー

HHKBの誕生した経緯

IIJ技術研究所の和田英一先生が書かれていた.面白い.

Happy Hacking Keyboard 誕生の経緯 | IIJ Engineers Blog

余談

Weekly Selection 2021-12-06

authentik

Identity Aware Proxyみたい.結局,IAP選定はPomeriumに落ち着きそう.

Welcome | authentik

key-valueストア

DynamoDBを調べている時に見つけた.首藤先生なにものなんだ…

key-valueストアの基礎知識

巡回セールスマン問題

Twitterで見つけた.あとでよむ.

巡回セールスマン問題(TSP)の基本的な解き方(ILS) | フューチャー技術ブログ

文字列検索・Knuth-Morris-Pratt

データベースのハッシュインデックスを調べていた時に見つけた気がする.

配列解析アルゴリズム特論 文字列探索・比較(1) – seq2021_1basic.pdf

この中にある書籍「岡野原大輔、高速文字列解析の世界、岩波書店、2012.」ってPFNの創業者では…!?

Bツリーインデックスとハッシュインデックスの比較

研究で調べていたら見つけた.インデックス戦略なるほどになってきた.

MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.3.8 B ツリーインデックスとハッシュインデックスの比較

→Bツリーは範囲指定( <=> )の検索に強い
→ハッシュインデックスはユニークな値を決め打ちする検索に強い

シェルスクリプト内のシェル芸

内容に同意できる点もあるが,Twitterでの指摘にも納得した.

シェルスクリプト「シェル芸からの脱出」 〜 コマンドをパイプで長くつなぎすぎた「パイプ地獄」のリファクタリング方法 – Qiita

OAuthとOpenID Connect

アーキテクチャを設計している時に見つけて曖昧な理解だったので,復習した.OpenID ConnectはOAuth 2.0を拡張したもの.

認証の課題とID連携の実装 〜ハンズオン〜

ついでに,wafuwafuさんに教えてもらった.👇

OAuth 2.0 と OpenID Connect の細かい話 – Authlete

AWSのサービス別資料

Twitterで見つけて知った.アーキテクチャ図や特徴が整理されているのでわかりやすい.

サービス別資料 | AWS クラウドサービス活用資料集

数理最適化の定式化

Twitterで見つけた.あとでよむ.

第1回:最近学んだ数理最適化の定式化のチップスたち 【ブレインパッドの数理最適化ブログ】 – Platinum Data Blog by BrainPad

Nginxのアーキテクチャ

大学院の授業でWebサーバの話から,気になって調べてみた.スレッドプールを使っている気がしてたが,それが直接的な理由ではなかった.

Nginxのアーキテクチャを理解する – Qiita

MySQLよりPostgreSQLを使うべき

Oracleを退職する開発者がMySQLに対して書いたブログ記事が話題になっていた.

Sun, 05 Dec 2021 – Leaving MySQL | Steinar H. Gunderson

並列ファイルシステム

富士通でスパコンを設計している方の話を聞いて知った.

Lustre

余談

  • 某クラウドの1次面接を受けた.
    • クラウドのアーキテクチャ図が高評価だったので満足した.
    • 無事にパスした.
  • NIMBYをYouTubeで知った.
  • 研究のジョブの進捗をSlackへ通知させると便利
    • echo "done $i" | notify_slack をシェルスクリプトのループ内に仕込んだ.
  • 研究データの集計をGNU Plot+ShellScriptで行ったら便利で泣いた
  • 学部時代の大学から提供されていたGoogleアカウントが削除されるそう.対策を考えた.
    • Google Drive→大学院用のアカウントから共有したフォルダへ全て移動
    • Gmail→重要なものだけ転送,それ以外はエクスポート
    • Google Photos→Amazon Photosに移行(動画が多いので有償版を契約)
    • GoogleアカウントでのSSO→素直に登録されているメールアドレスを変更
  • Twitter 新CEOの経歴が話題に.元ツイートの在職期間とパフォーマンス,組織の関係はミスリードだと思う.
  • 学部生の授業サポートをしている経験から,かなり同意した.

出かけたくなって箱根に行ってきた.

  • 10年ぶりくらいで腕時計を新しく買った.
    • 選んだポイント:文字盤と本体色,ソーラー&電波時計
  • 我が家の犬がかわいい.
  • 今週は余談が多め.

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の選考を辞退した.
  • 国立科学博物館,上野東照宮に行った.
  • はなまるうどんのテイクアウトを初めて買ってみた,よい.
  • エチゴビールのスタウトを飲んだ.おいしい.
  • 伊藤先生のツイートに共感した.