ユユユユユ

webエンジニアです

K&R を読み通した

K&R を読みはじめた - ユユユユユ より1ヶ月で、ひとまず通読した。 ANSI C の大きくない仕様を一冊で網羅する、という能書きで始まる。実際、シンタックスの説明は用法を折々に交えながらでも、150ページばかりで終わっている。残りの40ページは標準ライブラリと…

『大学生物学の教科書 1: 細胞生物学』を読んだ

カラー図解 アメリカ版 新・大学生物学の教科書 第1巻 細胞生物学 (ブルーバックス) https://www.amazon.co.jp/dp/4065137438 簡単な化学から始まり、やがて難しい化学になる。それを元手にして、タンパク質、脂質、糖質というみっつの高分子の多様性をみて…

K&R を読みはじめた

The C Programming Language を読み始めた。著者が Kernighan and Ritchie の二人組であることより K&R という愛称で呼ばれるようである。 学生の頃に無料で落ちていた PDF 版を手に入れて冒頭を眺めたことを覚えている。そのころは古典を所有するという以上…

CS:APP を読み終えた

「CS:APP を読みはじめる」という記事を書いてから足掛け3ヶ月にして、読了に漕ぎつけた。案外ペースとしては悪くない。各章末に配された練習問題はスキップする方針で読んだ。平日には長くても1時間、週末には気が向く範囲で数時間といったくらいの時間を割…

シグナルを送ることで他のプロセスに割り込みをおこなう

TIL

シグナルとは、小さなメッセージのようなもので、何らかのイベントがシステム内で発生したことをプロセスに通知するものである1 ハードウェアレベルで例外が起こるとする。たとえばあるプロセスがゼロ除算エラーを発生させるとする。通常はカーネルがこの例…

rails/rails にはじめてのコントリビュートをした

rails/rails に初めての PR を出して苦い気持ち と書いていた。結局、そのあと二往復ばかりのレビューのやりとりがあって、無事にマージされた。これでぼくも rails コントリビュータのはしくれといえるだろうか。ふわふわした気分でいる。 rails/rails#4286…

rails/rails に初めての PR を出して苦い気持ち

rails レポジトリのイシュー一覧をみていたら、 good first issue のついた手ごろな問題があった。 rails/rails#42862 初コントリビュートのチャンスかとおもって、ドキドキしながらパッチの準備をした。環境を整えて、修正して、テストを動かして、コミット…

放送大学に出願した

どうも生活にメリハリが感じられない。運動と食事のルーティンは守れているので、客観的には健康的なほうにおもうのだが、主観的にはくすぶりを感じる。 いったいなにが僕を満ち足りない気持ちにさせるのか? それがわからない。政治と社会のムードに抑圧的…

コンテスト参加をしばらくおやすみしようとおもう

4月にレーティングが緑色になった。その後の数回のコンテストでも悪くはない成績を出すことができた。いちどや二度は茶色に陥落するものとおもったが、ひとまず洗礼は通り抜けたというところである。 もともと過度な自尊心や上昇志向は持たないように注意深…

6年ぶりにメガネを新調した

6年ぶりにメガネを新調した。 縁を縛るようにゴールドがさしてあるのが気に入っている もともと使っていたものはたしか JINS で買った。変哲のないウェリントンタイプのものだった。インターンをやっていたころ、卒業論文を書いていたころ、プログラマとして…

ctran/annotate_models に PR を送った

これまで従事したいくつかのプロジェクトにおいて高い採用率(個人の感想)を観測している ctran/annotate_models にプルリクエストを送った。 get_loaded_model_by_path is supposed to be nil-safe by sato11 · Pull Request #883 · ctran/annotate_models…

算術右シフトを正しく丸めるためにバイアスを加算する

TIL

マシンがどのように乗算・除算を最適化するについて。二の累乗による乗算は左シフト演算を用いて行うことができる。同じように、二の累乗による除算は右シフト演算を用いで行うことができる。符号なし数であれば論理右シフトを用いるし、二の補数(符号あり…

gcc-9 を使うようにした

C++

昨晩の ABC-202 への参加中に、コンパイラが動かないという自体に直面した。先週のコンテストまでは普通に動いていたコンパイルタスクがこういうログを吐いて停止してしまう。 command not found: x86_64-apple-darwin19-gcc-10 コンテスト中は AtCoder のコ…

Yet Another Scheme Tutorial をやった

大型連休にやっていたことで、大型連休の総括に書かなかったことがひとつある。それは Lisp への挑戦である。 Yet Another Scheme Tutorial というマテリアルを利用した。そしてきょう、それをひとまず一周走り終えた。 どうしていまこれを学ぼうと思ったか…

浮動小数点数のビットレベル表現を print する

C++

浮動小数点数は IEEE-754 という規格で標準化されている。たとえば32ビットで表現するとき、上位1ビットが符号に、次の8ビットが指数部に、残りの下位23ビットは仮数部として割り当てられ、これら3つのフィールドが合同してひとつの浮動小数点数を表現する。…

整数オーバーフローをコントロールすることの難しさ

C++ で競技プログラミングをやっていて、整数オーバーフローに泣かされたことのない者はいないだろう。僕とてそうである。ちょっとしたケアレスミスにすぎないのだが、些細なミスであるからこそ、それを繰り返してしまうとことさら不甲斐なく感じる。 オーバ…

大型連休の振り返り (2021)

2021年の大型連休が終わった。いやすでにこどもの日でもって終わっているという向きもあるが、僕のなかでは今日の日曜日をもって「終わったなあ」という情緒であるので、振り返っておく。 arduino で遊んだ LED をチカチカさせたり、電圧計の使い方を覚えた…

CS:APP を読みはじめる

Computer Systems: A Programmer's Perspective の日本語訳、『コンピュータ・システム — プログラマの視点から』を購入した。通称は CS:APP というらしい。 値段、重量、厚みすべてにおいてヘビー級の一冊である。16000円だった。消費税で本が一冊買える。 …

Designing Data-Intensive Applications を読み終わった

昨年末に着手して、足掛け5ヶ月で読了した。 5ヶ月というとあまりに時間がかかりすぎているように聞こえる。実際には年末年始とこの GW で集中的に読んだ。しかも、後者の連休ではメモを取りながら読み進めることをやめて、読み終えることそのものを目標化し…

放送大学に入学してみよう

連休の終わりに、大学にいこうかな? とカジュアルに思いついたのが昨日のこと。それからいちにち考えてみて、基礎的なことを体系的に「お勉強」するのなら放送大学の教養学部に入るのがうってつけという結論にいきついた。教養学部というから、学部1-2年生…

大学に入ることを考える

世界がいまより平和になったらやりたいことがある。それはそうとして、いますべきことはなにか? 大学にはいりなおすということを考えたことがある。ベルリンから帰国して、途方にくれながら次になにをしようか考えていた頃のことである。直接的な刺激になっ…

世界に

世界中を見てまわりたい。一年とすこし前まで、事実そういう生活をしていたことがすっかり遠い過去のことに思える。 部屋からちょっと歩くだけでこんな名跡を眺められるなんて夢のようだった ベルリンにいた僕は COVID-19 がヤバイと聞いて早めに撤退したの…

会社員は会議がおおい

新入社員になってきょうで丸3ヶ月となる。入社の折に書いたエントリを読み返すと、かなり肩に力がはいってしまっていたことがわかる。よほど自己肯定感が低かったとみえるが、実際働きはじめてみると、まったく問題なく戦力となれている実感があるし、自信を…

AtCoder のレートが緑色になった

週末の ABC199 で緑コーダーになれた。29回目のコンテストでの昇格である。 茶色に昇級したときのエントリを読み返した。これが去年の9月半ばのことであるから、緑色に到達するまでに要したのは7ヶ月ということになる。 正直に告白すると、この期間アルゴリ…

分散データベースのレプリケーション: Designing Data-Intensive Applications 第5章より

ネットワーク越しにつながった複数のマシンに、同じデータのレプリカを作成して保存する。「ネットワーク越しに」というのが難しいところで、ネットワーク障害が起きたり、コピー先のマシンが死んでしまったり(ネットワーク越しに生死を確認するというのも…

並行書き込みを検知する

リーダーレスデータベースは書き込み時コンフリクトに対してひどく脆弱である。クオラムが満たされていても並行書き込みによるコンフリクトは起こりうるし、リードリペアの際にもコンフリクトしうる。さらには書き込み可用性を高めるためにクオラムをぞんざ…

Sloppy Quorums and Hinted Handoff

クオラムが適切に設定されていれば、システム全体の可用性は確かに高まる。とはいえクライアント側のネットワーク障害など、クオラムが満たせなくなる状況は容易に生じうる。システムとして問題があるわけではないのだが、クライアントの視点からはシステム…

リーダーレスレプリケーションとクオラム

リーダーレスデータベースにおいて、仮に書き込みに失敗したノードがあってもクライアントは失敗を無視して処理を継続できると述べた。ただしこれは文面ほど無秩序ではない。極端な話、すべてのノードに書き込みが失敗したのにクライアントが成功したと思い…

ノードが落ちていても書き込みをおこない続ける

リーダーレスデータベースにおいて、クライアントはすべてのノードに同時に書き込みリクエストを発出し、仮にひとつのノードがダウンしていたとしても気にせずに処理を続行する。読み込みリクエストについても同じである。任意のノードに読み込みリクエスト…

書き込みコンフリクトを制御する

複数リーダーレプリケーションは書き込みコンフリクトの発生を防ぐことができない。またその解消を非同期的に実施する必要がある。「同期的にコンフリクトを検出したい」というのは本質的に単一リーダーがトランザクションで実現すべきことがらであるから、…