タグ

ブックマーク / blog.shibayu36.org (6)

  • git logの内容を検索する-Sと-Gの違い - $shibayu36->blog;

    ずっとgit logの内容を検索するときに-Sオプションを使っていたが、実は近いオプションに-Gオプションもあり、探したい内容によっては使い分けないとダメということを初めて知った... 詳しくはhttps://git-scm.com/docs/git-logの-Sと-Gのドキュメントを見てほしい。簡単にまとめると -Sは指定した文字列の出現回数が変わるdiffがあるcommitを検索する -Gは指定した正規表現がマッチする文字列がdiffにあるcommitを検索する ドキュメントの事例部分が結構わかりやすくて、以下のようなdiffがあった場合 + return frotz(nitfol, two->ptr, 1, 0); ... - hit = frotz(nitfol, mf2.ptr, 1, 0); -S frotzで検索をかけると、frontsの出現回数は変わってないのでマッチしない

    git logの内容を検索する-Sと-Gの違い - $shibayu36->blog;
  • 優れたテストスイートの4本の柱を学ぶ - 「単体テストの考え方、使い方」を読んだ - $shibayu36->blog;

    良いテストケースの作成手法を学ぶ - 「はじめて学ぶソフトウェアのテスト技法」を読んだ - $shibayu36->blog;に引き続き、ソフトウェアテストの知識について言語化を進めたいと考え、「単体テストの考え方、使い方」を読んだ。 単体テストの考え方/使い方 作者:Vladimir Khorikovマイナビ出版Amazon このでは優れたテストスイートの4の柱を「退行に対する保護」「リファクタリングへの耐性」「迅速なフィードバック」「保守しやすさ」と定義し、これらの観点で優れたテストスイートを作る方法について教えてくれる。またこの4つの柱はトレードオフの関係にあるため、単体テスト・統合テスト・E2Eテストがそれぞれどの観点を重視すべきかなどについても言語化してくれている。 自分はこのは非常に勉強になった。なぜなら単体テスト・統合テストの指針が明快に記述されていて理解しやすく、また

    優れたテストスイートの4本の柱を学ぶ - 「単体テストの考え方、使い方」を読んだ - $shibayu36->blog;
  • MySQLでNested Loopなクエリはインデックスをどう辿っているか - $shibayu36->blog;

    タイムライン的なものをSELECTだけで実装しようと思った時に、Nested LoopなクエリでUsing temporary; Using filesortが出るようなそこそこ遅いクエリになる。その時にMySQLがインデックスをどう辿っているかを知りたかったので調べてみた。MySQLバージョンは8.0.33。 あまり自信はないので、もし間違った話をしていたら教えて欲しい。 どのようなクエリを検証するか タイムラインの取得ができるような、ユーザー・フォロー関係・投稿の3つのテーブルを作る。スキーマは次の通り。 CREATE TABLE users ( id INTEGER PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); CREATE TABLE follows ( id INTEGER PRIMARY KEY AUTO_I

    MySQLでNested Loopなクエリはインデックスをどう辿っているか - $shibayu36->blog;
  • ターミナルのsbtで起動したプログラムをIntelliJのデバッガでデバッグする - $shibayu36->blog;

    最終的に結構簡単な設定で出来たのだけど、いろんな情報に右往左往させられてしまったので、自分用にメモをとっておく。 やりたいこと Scalaで開発する時、基的にターミナルでsbtを起動して、runとかtestとかを実行している。その時、挙動を動かしながら確認するために、ステップ実行を行いたい時がある。 ステップ実行しながらデバッグする時、IntelliJのデバッガが便利なのでそれを使いたい。 作戦 ターミナルで、sbtをJVMのデバッグオプション付きで立ち上げて、そのプロセスにIntelliJのデバッガでアタッチするという方法を取る。 IntelliJの標準のScala開発環境で、「Enable debbuging for SBT shell」という設定もあるのだけど、これがなかなかうまく動かなかった。そこでこちらのやり方は諦めて、上記した方法を取ることにした。 やり方 sbtをJVMのデ

    ターミナルのsbtで起動したプログラムをIntelliJのデバッガでデバッグする - $shibayu36->blog;
  • 「強いチームはオフィスを捨てる」を読んだ - $shibayu36->blog;

    強いチームはオフィスを捨てる: 37シグナルズが考える「働き方革命」 作者:ジェイソン・フリード,デイヴィッド・ハイネマイヤー・ハンソン早川書房Amazon 最近リモートワークへの知識に興味が湧いてきたので、ひとまず強いチームはオフィスを捨てるを読んだ。元々はリモートワークについての思い込みがあり、そのためリモートワークの難しさのほうに目が行き過ぎていたのだけれど、このを読んでみて少し中立よりになれたように思う。そういう面で今の時期に読むには非常に良かった。リモートワークの知識だけというより、普通に働いていても参考になる知識も得られた。 リモートワークを始めたいけど何から始めたらいいかについて分からない人には最適な。ただし良いであるという一方で、少しリモートワーク礼賛の傾向があるので、そこは一歩引いて読むと良いのかなと思う。とはいえ、ただ褒めているというだけでなくて、きちんとメリット

    「強いチームはオフィスを捨てる」を読んだ - $shibayu36->blog;
    paulownia
    paulownia 2014/07/22
    "リモートワークが失敗する典型的なパターンの一例として、一人だけリモートワークさせてみたら…"
  • I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;

    サーバ周りの勉強していると、たまにselectとかepollとか言葉が出てきて、理解できてなかったので調べてみた。 I/Oの多重化 例えばサーバ周りの実装を、特に何も考えずにやると、I/Oでブロッキングが発生し、一つのクライアントとしか通信できないということが起こります。これを解決するために fork threads I/Oの多重化 非同期I/O といった方法があります。 この中のI/Oの多重化を実装するためのシステムコールとして、select, poll, epoll, kqueueなどは実装されているようです。 少し調べてみると、次のような記述のような機能をそれぞれが実装するようです。 プログラムで複数のファイルディスクリプタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つ

    I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;
  • 1