タグ

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

  • MySQLのfilesortは何ソートで行われているのか - $shibayu36->blog;

    最近、CourseraのArgorithms, Part1という講義を受けている。そこでソートの講義を受けて、そういえばMySQLのORDER BYでfilesortになったときってどのソートが使われているのだろうと気になってきたので調べてみた。 調べてみると非常に難解で、結局いまいち分からなかったが、今の段階の調べた内容をひとまず書いておく。MySQLのコードを読んだのも初めてで、しかもちゃんと読み解くことができなかったので、情報が間違っている可能性も非常に高い。間違ってたら指摘してもらえるとうれしいです。 調査結果 最初に調査結果を書いておく。たぶんこれは非常に単純化したもので、詳しく見るともっといろいろチューニングされてそう。 sort_buffer_size以内のメモリ量でソートが可能な場合、メモリ内でのみソートされる ソートにsort_buffer_size以上のメモリが必要な場

    MySQLのfilesortは何ソートで行われているのか - $shibayu36->blog;
  • curlとjqで簡単にAPIの調査をする - $shibayu36->blog;

    ちょっとAPIを調査したいと思った時に、スクリプトを書くのも面倒なのでcurlとjqとかを利用してみたら、便利だったのでメモ。今回はTrelloをちょっといじってみた。 Redirecter ひとまずcurlでjsonを出す これは普通にcurlするだけ。 curl 'https://api.trello.com/1/boards/4d5ea62fd76aa1136000000c/cards'これでは見づらい。 curlで出たjsonをpretty化する jqに通すだけでpretty化と更に色付けされる。 curl 'https://api.trello.com/1/boards/4d5ea62fd76aa1136000000c/cards' | jq '.' curlで出たjsonの一部だけ表示する jqはjsonをいろいろ絞り込み出来る。 例えばリストの5件目まで表示。 curl 'h

    curlとjqで簡単にAPIの調査をする - $shibayu36->blog;
  • Google SpreadsheetとQuery Language - $shibayu36->blog;

    Google Spreadsheetを使ってたら、Query Languageというのがあるということに気づいて非常に便利だったのでメモ。 Query Language Reference (Version 0.7)  |  Charts  |  Google Developers Query LanguageというのはGoogle Spreadsheetの内容をSQLっぽい文法で絞り込んだり計算したりできるもの。 例として非常に雑な例を出すと、 簡単なTODOリストをおいている Sattus, Task名, 締切が書いてある 「TODO全体」というシートに書かれている というようなシートがあるとする。 このシートから 別シートに、DOING状態になっているタスクを日付順に抜き出したい 別シートに、Due dateを超えたタスクを抜き出したい という2つのことをやりたいとすると、Query

    Google SpreadsheetとQuery Language - $shibayu36->blog;
    yass
    yass 2014/09/13
    " =QUERY('TODO全体'!A:C, "select * where A = 'DOING' order by C asc", -1) "
  • 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