タグ

ブックマーク / kumagi.hatenablog.com (11)

  • 書評:並行プログラミング入門 - Software Transactional Memo

    TL;DR 並行処理を実装する人のこれからのスタンダードになる一冊。買い。 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ 作者:高野 祐輝 オライリージャパン Amazon 買ったら思いの外早く届いたのでパラパラと読み始めたら一気に読み終えてしまった。 総評 敢えて雑な喩え方をするなら The Art of Multiprocessor Programming (通称TAoMP) の内容を薄めてRustやアセンブラや計算モデルを足したようなだった。 日語の書籍としてはかなり珍しくWait-Free, Lock-Free, Obstruction-Freeの違いなどを適切に論じており、TTAS Lock, MCS Lock, TL2といった日語では希少な情報が書かれているレアなである。これらに付いて論じている日語のは知る限り (TAoMPと昔僕

    書評:並行プログラミング入門 - Software Transactional Memo
    higed
    higed 2021/08/22
  • ソフトウェアエンジニア、建売を買う - Software Transactional Memo

    買った戸建てに付けた表札、住所はぼかした プロローグ 新型コロナが世間を騒がせ始めて以来ずっと在宅勤務をしている。 転職に伴って会社近くに引っ越したので通勤のドアtoドアで30分台を叩き出していた好立地はその活躍の機会をすっかり失った一方で、妥協した40平米の部屋の狭さと1LDK+Sの間取りが巣ごもり子育て核家族を襲った。 外で遊び足りない娘は泣き、広がった活動範囲で家中の物を無秩序に引っ掻き回すので必然的に触られたくないものは高いところに置くことになり、立体的に活用される事になった1LDKの空間は生活の難度を高めジワジワと真綿で首を締めるような状況が続いた。 住んでいたマンションは駅に近いのは良いが作りは古く、冬には窓枠が結露しカビが発生する。窓から降りる冷気はそのまま壁や床にすら結露を起こし室内はカビに見舞われた。それとの因果関係は不明だが冬場の慢性的な体調不良が家庭内の治安を更に悪化

    ソフトウェアエンジニア、建売を買う - Software Transactional Memo
  • 娘が1歳半になるまでに助かった便利アイテムたち - Software Transactional Memo

    TL;DR アフィ記事です 1歳半になりました 先日めでたく友人に子供が生まれ、他でも安定期に入ったとかめでたい報告が相次いでおり、そういう年代に入った実感が湧いてきた。 前々回の記事で書いた娘が無事に一歳半検診を終え、この期間であっても学んだ事は多い。特に子育てに関わる便利アイテムというのは実際に子育てをしないと触れる機会もないし、子供も家庭事情も千差万別なので有用なものもあればそうでないものもある。 実際に子育てを始めるまでは、3ヶ月までは首が座らないとか(そもそも首が座るって何さ?)、そのうち首が座ってもまだ腰が座らないとか、乳児の中でも複数の段階に別れていることすら知らなかった。  スイマーバで遊ぶ娘 6ヶ月にもなれば徐々に離乳を始めていくことになるのだけど、離乳事の教育であることも考えるとできれば座ってべさせたいのが親心である。が、6ヶ月というのは首は座っていても床や

    娘が1歳半になるまでに助かった便利アイテムたち - Software Transactional Memo
    higed
    higed 2020/06/07
  • Software Transactional Memo

    この記事は pyspa advent calendar 2023の11日目の記事です。 godboltをご存知だろうか。 godbolt.org ブラウザから誰でもアクセスできる無料サービスでコンパイラの挙動について学ぶ事ができる。 例えば簡単に「渡された数Nに対し1+2+....+Nを返す関数sum」を例にすると こんな感じにコンパイル結果のアセンブリを表示してくれる。 アセンブリはマウスカーソルを置くとそれが元のコードのどの場所に対応したものなのかを逐一ハイライト表示してくれる。この機能を実現するために必要な労力は並では無いと思うが詳細はわからない。アセンブリ側も複数色あるのは元のコードの1行が同じ背景色のブロックになった事を表している。 これがすごいのはコンパイラの選択肢の豊富さである。gccはもちろんのことclang, zig c++, msvc, nvc++(なにそれ?), el

    Software Transactional Memo
    higed
    higed 2019/12/13
  • こうしてGoogleに入社した(kumagi編) - Software Transactional Memo

    Googleオフィスの窓からの眺めをGoogle Photoが自動加工したもの TL;DR AtCoderやろうぜ Googleの(僕から見て)偉い人が立て続けにブログを書いており ctrl-x-s.blog hoge.blog ここ数件の僕のブログへの反響を読んでも「Googlerだから特別」みたいな意見が散見され、入社へのハードルが変に高く見られてしまっている気がするので、僕がGoogleに入社する準備として取り組んでいた事とそのレベルを紹介する。程度の低さに安心して欲しい。 英語 英語の論文は興味の赴くままに読んでいたため読むことに関してはあまり苦手意識は無いものの、絶対的な英語力に関して言うとTOEIC500点というスコアが端的に表している。これがどれぐらいかというと、得意分野から外れると長文を読む速度と精度がガタ落ちし、リスニングも結構な単語を聞き落とし、文脈からの推測と辛うじて

    こうしてGoogleに入社した(kumagi編) - Software Transactional Memo
  • Googleに転職していきなり3ヶ月の育休を貰った - Software Transactional Memo

    TL;DR アフィ記事です 転職してからすっかりSNSで音沙汰がなくなったなkumagiと一部の界隈で噂されているようですが、twitterやFacebookにはたまに書いていたように娘が産まれました。 Googleでは子供が生まれた時に育休を取ることができる。 単なる育児休業は育児・介護休業法に定められた労働者の権利であるけれど、Googleではそれに加えて3ヶ月間フルに給料が支払われる有給休暇が付与される*1。これに加えて雇用保険から給付金をもらう育休を取っても良いとされているが、ソフトウェアエンジニア的な意味で遅れを取り過ぎるのも憚られたのでまずは3ヶ月の有給休暇をありがたく頂戴することにした。 授乳について 3ヶ月までの赤ちゃんは昼夜問わず3時間おきに母乳やミルクを欲しがる。大抵の成人は3時間おきに母乳やミルクを与え続けると精神的にだいぶ参ってくるという知見が広く共有されていたので

    Googleに転職していきなり3ヶ月の育休を貰った - Software Transactional Memo
    higed
    higed 2019/02/21
  • 6年勤めたNTTを退職しました - Software Transactional Memo

    最終退社時の自分の机 2012年に修士卒からの新卒でNTT研究所に入り、6年間お世話になりました。 研究所では同期や先輩や後輩や上司に恵まれ、存分に書籍や論文を読んで勉強して力を蓄えたり、対外的な発表の場にも恵まれ外ではできないような体験をすることができました。 ありがとうございました。 入社当時に作られたtogetterを見返すと togetter.com togetter.com まるで昨日のように感じられる。 NTT社内で僕が何をやっていたかについては言える物は軒並みアウトプットされているのでわざわざここでは触れない。 NTT研究所について NTT研究所を客観的に見た時にどうかを書いていく とにかく人に恵まれている。採用の倍率が高いのもあって潤沢な学生エントリーからよりすぐりのエリートが謎の力でポテンシャルを見極められて採用されている。同期を見てひと目ですごい奴も居れば、一見してわか

    6年勤めたNTTを退職しました - Software Transactional Memo
  • NTTによるブロッキングの何が許せないのか - Software Transactional Memo

    注意: この記事は私の所属する組織の意思も意見も絶対に断固として欠片すらも表明する事を意図して書いていません TL;DR;今回のサイトブロッキングは私見ではダメだと思ってるけど、国の言うロジックは一応わかるし勘違いベースで応援するのも叩くのも止めて欲しい 前提知識 まず大前提として、日には憲法というものがあり、その21条にはこのように明記されている。 憲法第二十一条 集会、結社及び言論、出版その他一切の表現の自由は、これを保障する。 検閲は、これをしてはならない。通信の秘密は、これを侵してはならない。 憲法に沿った国の運営をするためここから派生して制定されている法律のうち、今回の件に関係が深いのは電気通信事業法である。 電気通信事業法 (検閲の禁止)第三条電気通信事業者の取扱中に係る通信は、検閲してはならない。 (秘密の保護)第四条電気通信事業者の取扱中に係る通信の秘密は、侵してはならな

  • 分散ロックという名の過ち - Software Transactional Memo

     TL;DR; 「分散ロック」が分散システムの設計図に登場した時 だいたいその設計は間違っていて当に必要なものはトランザクションだ 並行システムを実装する際にロックを用いるのはとても自然なことだ。 僕も普段はロックフリー系のアルゴリズムに詳しいと言われがちだが知識量でいったら実はロック系の方が多く蓄えているかも知れない。 分散システムは並行システムであることが多いので、その中にロックが登場するのはとても自然な発想である。 よく「分散」「並行」「並列」の言葉の定義がごっちゃになっているケースがあり、この記事の主題にしたいわけではないので深くは言及しないが、分散システムは環境などの要因で突如として参加者が音信不通になったり復活したりする点で並行システムと大きく異なる。 並行システムと同じノリで分散システムを設計しようとした際に陥る頻出の過ちが「分散ロック」である。そのアイデアはとても簡単で

    分散ロックという名の過ち - Software Transactional Memo
  • 『夢のデータベース?「Cloud Spanner」の実力は?』について - Software Transactional Memo

    こんな記事が目に入った。 www.itmedia.co.jp 大雑把に完全に間違ったことを言っているわけでもないが、読んでいくといろいろ鼻につくところがあり、どのあたりから間違っているのかと自分に問いただすのは現時点での自分の知識を棚卸しするためにも有用かも知れないと思ったので一言一句漏らさず思うところを書いていこうと思う。 中には枝葉末節な難癖もあるので全部を真に受けない感じで読んで欲しい。 Cloud Spannerの特徴は、これまでリレーショナルデータベースで不可能とされていた「トランザクション処理の大規模分散処理」を実現したところにあります。 単一のトランザクション処理を分散して実行しているかというと、Spannerはトランザクションごとに担当のトランザクションマネージャがそのトランザクション処理全体を取り仕切って行う仕組みになっている。なので「トランザクション処理の大規模分散処理

    『夢のデータベース?「Cloud Spanner」の実力は?』について - Software Transactional Memo
  • 分散プログラミングモデルおよびデザインパターンの考察 その1 - Software Transactional Memo

    Yahoo技術者が書いたブログ techblog.yahoo.co.jp が悪い方向に期待を裏切ってくれたのに対し、 @kuenishi さんがまとまった文章 kuenishi.hatenadiary.jp を書いていたので、僕も2番煎じぐらいでまとまった文章を書く。 始めに断っておくと、分散システムというのはまだまだ事例を集めていくフェーズを抜けきっておらず、体系立った大統一理論的な分類法は確立していない。ここに書くのは、これまでの分散システム事例やこれからの分散システム事例を分類していく際にその性質をカテゴライズする一助となれば良いな、程度の文章なのであまり真に受けないで欲しい。 なぜYahooの記事が期待はずれなのか 人によって意見はあるとは思うが、個人的に感じたのは以下の3つ。 分散システムのデザインパターンと銘打っておきながら並列・並行システムの分野の話からクラウド環境へとこじ

    分散プログラミングモデルおよびデザインパターンの考察 その1 - Software Transactional Memo
  • 1