タグ

ブックマーク / blog.katty.in (6)

  • PHPのmicrotime関数が使いやすくなっていたことを知った。 | 三度の飯とエレクトロン

    PHPのmicrotime関数って凄く使いにくいなと思っていたら、PHP 5.0から使いやすくなっていました。 time関数は秒単位でしか取得できない。 PHPのtime関数でタイムスタンプが取得できます。 php > echo time(); 1385547406 しかし、秒単位でしか取得できず、ベンチマークなどで詳細な時間が知りたいときには使えません。 microtime関数は使いにくい。 PHPにはmicrotime関数があり、これを使うとマイクロ秒単位での取得ができます。 php > echo microtime(); 0.25309200 1385520620 しかしながら、戻り値のフォーマットが使いにくく、変換関数などを仲介させる必要がありました。 こんな感じです。 function microtime_float() { list($usec, $sec) = explode

    PHPのmicrotime関数が使いやすくなっていたことを知った。 | 三度の飯とエレクトロン
    nilab
    nilab 2016/02/22
    「戻り値のフォーマットが使いにくく、変換関数などを仲介させる必要がありました」「PHP 5.0からは、使いやすいフォーマットで取得できるオプションが追加」
  • MessagePack、Kryo、Protocol Buffersなどのシリアライザーのパフォーマンス比較

    Javaで、オブジェクトをシリアライズするのに、どの仕様と実装が良いのかを調査しています。 特にパフォーマンスを気にしない時は、「JSON一択」だと思っているのですが、パフォーマンスが気になる用途では、変換時間とサイズが気になってしまいます。 thrift-protobuf-compareというベンチマーク 調べてみると、thrift-protobuf-compareというベンチマークがありました。thriftもbrotobufもシリアライザーのひとつなのですが、これだけではなく他のシリアライザーも比較しています。 eishay/jvm-serializers Wiki GitHubからリポジトリをcloneして、自分のマシンでもベンチマークをすることができます。 走らせてみた。 僕のMacBook Pro Retina 13-inchでも試してみました。2.4GHzデュアルコアIntel

    MessagePack、Kryo、Protocol Buffersなどのシリアライザーのパフォーマンス比較
    nilab
    nilab 2015/11/19
    MessagePack、Kryo、Protocol Buffersなどのシリアライザーのパフォーマンス比較 | 三度の飯とエレクトロン
  • ロック待ちでハマる前に知りたかったMySQL InnoDBの行ロックとテーブルロックの挙動

    整合性をしっかりとらないといけない処理ではトランザクションをかけるのですが、どうもトランザクションのロック待ちでタイムアウトしてしまうことがあるようです。 java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction トランザクションでテーブル全体にロックがかかってしまう 要するに、「トランザクションを実行するためにロックを獲得しなければいけないが、他のコネクションがロックを握っていて、ロックが獲得できない」ということです。 これの根的な原因は何かと調べますと、InnoDBでトランザクションを使用するときに、行ロックではなく、テーブル全体にロックがかかってしまう場合がある、というところにたどり着きました。 「InnoDBで行ロック/テーブルロックになる条件」を見ながら、少し試してみます。 テーブ

    ロック待ちでハマる前に知りたかったMySQL InnoDBの行ロックとテーブルロックの挙動
    nilab
    nilab 2014/10/05
    ロック待ちでハマる前に知りたかったMySQL InnoDBの行ロックとテーブルロックの挙動 : SQLException: Lock wait timeout exceeded; try restarting transaction : 「テーブルロックさせないためには、インデックスのあるカラムで条件指定する」
  • プログラマが考える劇的に効率が上がるExcelシートの作り方

    そこそこの複雑な計算をするのにExcelはものすごく便利です。何かのプログラミング言語を使って書いたら1時間くらいかかるような計算が、ものの数分でシート上にできあがります。 この素晴らしいExcelを、より使いやすくするワザを、プログラマ的な視点から書きたいと思います。 拡張性のないシート そういうわけで、Excelは素晴らしいんですが、使う人によってはなんとも「拡張性のないシート」ができあがります。 僕はプログラマなので、こういう素晴らしいツールを使いはじめると、どうしても拡張性とか保守性みたいなものが気になってしまいます。プログラマは同じことを繰り返すのが苦手です。シートにデータを入力してから完成形ができあがるまでに人手を使うことを避けて、全部を自動化したくなります。 次のようなことをしていたら、Excelを正しく使えていないような気がします。 途中で電卓を使って計算してセルを埋めてい

    プログラマが考える劇的に効率が上がるExcelシートの作り方
    nilab
    nilab 2014/01/01
    プログラマが考える劇的に効率が上がるExcelシートの作り方 | 三度の飯とエレクトロン
  • Gitの作業の流れが一目で分かる図

    Git、この後どうしたら良いんですか? いったん、この図の流れに従ってやってみてください。(チームのみんなへ) 編集する プログラムに編集を加えたら、全ファイルをgit管理下に入れて、コミットして、pushします。 git add . git commit -a git push origin master pushに失敗した場合 無事にpushできれば、それで作業終了ですが、運悪く他の人の更新が先に入っている場合があります。その時はこのようなメッセージが出ます。 ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git://hoge.com/fuga.git' To prevent you from losing history, non-fast-forward up

    Gitの作業の流れが一目で分かる図
    nilab
    nilab 2013/04/08
    Gitの作業の流れが一目で分かる図 | 三度の飯とエレクトロン
  • 僕が辿り着いたタスク管理の答え Asana

    タスク管理することがタスクになっていませんか? Asanaは僕の考える理想的なタスク管理システムを提供してくれました。 http://asana.com/ 僕はタスク管理にテキストファイルを使っていた 開発を始めるときは、まずテキストファイルを開いて、「何を作らなければならないか」を書き出していました。必要な作業を細分化し、優先順位を適当につけて並べ替え、後は順番にこなしていって、終わったものには印をつけていました。 「何をやらなければならないか」を可視化したいけれど、あまりそれに時間をかけたくない。 何をやるかを書きだすのに時間をかけすぎるくらいなら、直接コードを書いてしまった方が早いからです。そのためにテキストファイルは最適でした。 チーム開発することになってGoogle Docsを使うことにした チームで開発することになりました。自分にしか見えない「テキストファイル管理法」は早くも破

    僕が辿り着いたタスク管理の答え Asana
    nilab
    nilab 2012/03/02
    僕が辿り着いたタスク管理の答え Asana | 三度の飯とエレクトロン
  • 1