タグ

ブックマーク / blog.kamipo.net (14)

  • Treasure Dataに入社しました - かみぽわーる

    近況などをブログに書いたことはなかったんですが、4月からTreasure Dataで働くことになりました。 3月に新しい仕事を探してたタイミングでちょうど声をかけてもらって、他に誘ってくれてるところもあっていろいろ考えたんですけど、今まで自分がやってたWeb屋さんとは結構ちがう専門的なプロダクトが面白そうだったこと、話してみてエンジニアリング上の解決したい課題についてすごく具体的にいろいろ話してくれたので、畑違いな気もするけどやれることは結構ありそうだなとイメージできたので入社することにしました。 あとは声をかけてくれるのが2週間遅かったら他のところに決めちゃってたので、お互いのタイミングが合ってたことで自分が想像していなかった選択肢が生まれたことにも面白さを感じて、まあこれも自分の中のひとつのチャレンジだと思って返事をしたという感じです。 HadoopもFluentdもよく分からんしSl

    Treasure Dataに入社しました - かみぽわーる
    akuwano
    akuwano 2015/04/03
    おめでとうございます!!!/slackが全部英語((((;゚Д゚))))/@kamipo
  • MySQL と寿司ビール問題 - かみぽわーる

    MySQL と Unicode Collation Algorithm (UCA) - かみぽわーる に関連するトピックで、 MySQL には寿司ビール問題というのがある。 寿司ビール問題どっかで詳しくお話を聞くべきだよなぁ。。。— RKajiyama (@RKajiyama) March 18, 2015 これはどういう問題かというと、 MySQL の Unicode では binary collation にしてコードポイントで比較しないと🍣と🍺に限らず絵文字が同値判定されるという問題です。 あれ? MySQL の utf8mb4 charset って、4バイト文字同士を比較すると同じ文字扱いされる? SELECT '🍣'='🍺' → 1 MySQL的には寿司とビールは同じ扱い。— とみたまさひろ (@tmtms) December 22, 2014 MySQLで select

    MySQL と寿司ビール問題 - かみぽわーる
    akuwano
    akuwano 2015/03/23
  • MySQL と Unicode Collation Algorithm (UCA) - かみぽわーる

    utf8_unicode_ci に対する日の開発者の見解 - かみぽわーる で、日語が分かる人には utf8_unicode_ci のヤバさを感じてもらえたと思うんですけど、この挙動はドキュメントによると UCA というアルゴリズムによるものらしい。 MySQL implements the xxx_unicode_ci collations according to the Unicode Collation Algorithm (UCA) described at http://www.unicode.org/reports/tr10/. The collation uses the version-4.0.0 UCA weight keys: http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt. Currently,

    MySQL と Unicode Collation Algorithm (UCA) - かみぽわーる
    akuwano
    akuwano 2015/03/17
  • utf8_unicode_ci に対する日本の開発者の見解 - かみぽわーる

    RailsMySQLのcollationをサーバー側のデフォルトのutf8_general_ciからutf8_unicode_ciにわざわざ変えてるのどうせ大した理由じゃないだろと思って掘ってみたらやっぱり大した理由じゃなかった… https://t.co/6NeetGhTF0— Ryuta Kamizono (@kamipo) April 18, 2014 Railsでcollationとしてutf8_unicode_ci(RailsのDEFAULT_COLLATION)が採用されるのはcharsetが未指定もしくはutf8(RailsのDEFAULT_CHARSET)のときだけで、utf8mb4にすることとかは全く考慮されてない。— Ryuta Kamizono (@kamipo) April 19, 2014 @frsyuki MySQLのcharset utf8のときのデフォルト

    utf8_unicode_ci に対する日本の開発者の見解 - かみぽわーる
    akuwano
    akuwano 2015/03/08
  • MySQLユーザーのためのPostgreSQL対応表 - かみぽわーる

    毎回わからなくなってググってるから今度からここに追記していく。 MySQL PostgreSQL SHOW DATABASES; \l USE dbname \c dbname SHOW TABLES; \dt SELECT * FROM tblname\G \x on SELECT * FROM tblname; SELECT * FROM information_schema.processlist; SELECT * FROM pg_stat_activity; KILL <pid>; SELECT pg_terminate_backend(pid); KILL QUERY <pid>; SELECT pg_cancel_backend(pid); table / column の情報 MySQL PostgreSQL SHOW TABLE STATUS FROM dbname; わ

    MySQLユーザーのためのPostgreSQL対応表 - かみぽわーる
    akuwano
    akuwano 2014/10/27
    ぽすぐらーになろう。
  • Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替 - かみぽわーる

    GNU/Linuxに慣れてると、よく打つtop/ps/netstatがOS X使ってるときにLinuxのそれと全然ちがう挙動で使いにくい。同じ挙動にするのman見ても無理そうなんで、なんとか同じように使えるのないか調べてみた。 top htopならLinuxとOS Xで同じように使えるのでhtopを使うとよさそう。 brew install htop-osx ps psのいい代替は見つからなかったけど、ps auxfのようにツリー表示したいときの代替はpstreeを使うとよさそう。 brew install pstree netstat netstatはnetstat -tnpaとかnetstat -tnplをよく使うけど、前者はlsof -nP -iTCP、後者はlsof -nP -iTCP -sTCP:LISTENで代替できそう。 $ sudo lsof -nP -i4TCP -sTC

    Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替 - かみぽわーる
    akuwano
    akuwano 2014/04/21
  • 簡単に手元でHTTPのファイルサーバ立てる方法 - かみぽわーる

    .zshrcにstatic_httpdって関数つくってる。 dotfiles/.zshrc at master · kamipo/dotfiles · GitHub function static_httpd { if type plackup > /dev/null; then plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root => ".")->to_app' elif type ruby > /dev/null; then if ruby -v | grep -qm1 'ruby 2\.'; then ruby -run -e httpd -- --port=5000 . else ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port => 5000, :D

    簡単に手元でHTTPのファイルサーバ立てる方法 - かみぽわーる
    akuwano
    akuwano 2014/02/20
  • 優勝したらあの子に告白することばかり考えていた #isucon - かみぽわーる

    ISUCON3選お疲れさまでした! うちのチームのことはだいたいgfxが書いてる通りなんですけど、おもに僕がやったこととか選後に振り返ってみたことを書いておきます。 予選後の教訓で、最初にちゃんとコードを読んで方針を決めようって話してたので、最初に全員でざっと構成とかコードとか初期状態でのベンチとか回してみて全体を把握してから昼に作戦会議。 そのときに僕が話した見解は このアプリケーションから何らかの方法で参照時の画像変換のボトルネックを取り除いたとき、次にボトルネックになるのは帯域になる なので理想的な状態から逆算すると5台でWANにトラフィックを吐く構成になってる必要がある 最悪、参照時にまったく変換しなくて済む理想的な高速化に失敗してすべての変更をrevertすることになっても、5台並べて参照時の画像変換して返せるようにできてれば単純に初期状態の5倍のCPUでスケールできるから5

    優勝したらあの子に告白することばかり考えていた #isucon - かみぽわーる
    akuwano
    akuwano 2013/11/14
  • MySQL の unknown option エラーはオプションに loose- プレフィックスをつけると回避できる - かみぽわーる

    もうMySQL 5.5 GAが出てから1年以上が経ち、つい先日とうとうMySQL 5.6 GAも出た昨今、これから先パーソナルユースでこれより以前のMySQLなど使うことはないだろうと~/.my.cnfを書いていたのだけど、昨日ちょっとしたアレでMySQL 5.1を入れたらMySQLが進化しすぎててオプションコメントアウトしまくらないと動かないわーとかいってたらloose-つけるといいですよって教えてもらった。 my.cnfのオプション名の頭にloose-と書いておくと、オプションが存在しなくてもWARNINGでERRORにならずに済みますよー。loose-log-slow-queriesloose-slow-query-logと書くと5.1でも5.5でも使える、みたいな。— ts. yoku (@yoku0825) February 6, 2013 これは知らなかった! MySQL 5.

    MySQL の unknown option エラーはオプションに loose- プレフィックスをつけると回避できる - かみぽわーる
    akuwano
    akuwano 2013/02/07
  • MySQL(InnoDB) で "Index column size too large. The maximum column size is 767 bytes." いわれるときの対策 - かみぽわーる

    tl;dr: MySQL 5.5.14以降だとinnodb_large_prefixオプションで3072バイトまでインデックス張れる MySQL(InnoDB)では、ひとつのカラムのキープレフィックスの最大値が767バイトという制限があるので、ついうっかりして Index column size too large. The maximum column size is 767 bytes. とか Specified key was too long; max key length is 767 bytes といったエラーを見たことある人は多いのではないかと思います。 よくあるケースだと、varchar(256)以上のutf8なカラムにインデックスを張ろうとするとこのエラーとご対面できます。 CREATE TABLE t (c varchar(256), index (c)); ERROR

    MySQL(InnoDB) で "Index column size too large. The maximum column size is 767 bytes." いわれるときの対策 - かみぽわーる
    akuwano
    akuwano 2012/11/13
    innodb_large_prefix!
  • MacBook Airのセットアップ - かみぽわーる

    買ってきたらとりあえずやる(やった)こと一覧。 システム環境設定まわり スクリーンをロック キーチェーンアクセス.appの環境設定で「メニューバーにキーチェーンの状況を表示」をチェック セキュリティとプライバシー 「スリープの後、またはスクリーンセーバが開始した後、すぐにパスワードを要求する」をチェック キーボード 「F1、F2 などのすべてのキーを標準のファンクションキーとして使用」をチェック 「修飾キー 」でCaps LockキーをControlに変更 「英字入力中にスペルを自動変換」のチェックを外す 「スマート引用符とスマートダッシュを使用」のチェックを外す フルキーボードアクセスで「すべてのコントロール」をチェック ディスプレイ 「メニューバーにディスプレイを表示」をチェック Dock 「Dockを自動的に隠す/表示」をチェック 日付と時刻 「現在の位置情報に基づいて、時間帯を自動

    MacBook Airのセットアップ - かみぽわーる
    akuwano
    akuwano 2012/07/03
  • #isucon に参加してやったこと思ったこと - かみぽわーる

    ISUCONに@riywoと「チームやすべえ」で参加してきたので、その感想です。 ひと言でいうと、良くも悪くもみんな積み重ねてきたものが結果に出たのではないかなと思います。 最初のボトルネックとして用意されていたクソクエリのチューニングは、二人ともDB寄りのエンジニアということもあって、クエリの意図をつかんだあとの対策はツーカーでいい感じでした。 ボトルネックがアプリに寄ってコア数でスケールする状態になったので、コア数も多く経路的にも有利なrevとdbにもアプリを立てて、そっちに多くのリクエストを振るようにしました。細かいチューニングを省略すると、これだけやっただけで、たしか参加チームの中で最初に50000req/minを超えたと思います。 あとは後半、かなり良いスコアを出すチームがちらほら出てきて、このアーキテクチャだと優勝できないと気づいて、キャッシュしてDBアクセスとレンダリングのコ

    #isucon に参加してやったこと思ったこと - かみぽわーる
    akuwano
    akuwano 2011/08/30
    お疲れさまでしたー。ISUCON合宿!!!
  • Debianでperfを使う - かみぽわーる

    チューニンガソンの優勝者がperfというコマンドを使ってCPU時間のプロファイリングをしていたらしい。そんなコマンドはじめて知った…。 yumだと以下のように直感的なパッケージで入るそうですが yum install perfDebian Squeezeでperfコマンドはlinux-baseパッケージに含まれててデフォルトで入ってるんですが実行すると % sudo perf top /usr/bin/perf: line 7: exec: perf_2.6.32: not found E: linux-tools-2.6.32 is not installed.といわれるのでlinux-tools-2.6.32を入れると使えるようになります。 % sudo aptitude install linux-tools-2.6.32あとUbuntu 10.10でも試してみたら、こっちではper

    Debianでperfを使う - かみぽわーる
    akuwano
    akuwano 2011/07/20
  • Apacheが%2Fを勝手にデコードして生きるのが辛いとき - かみぽのメモ

    mod_rewriteでの最後の砦 - As a Futurist...をみて、僕もApacheでURLに%2Fを含むリクエストをリバースプロキシするときに困ったことがあったなーというのを思い出した。 AllowEncodedSlashes On RewriteRule ^/(.*)$ http://backend/$1 [QSA,L,P]みたいな設定を書いてるときにfrontendに http://frontend/keyword/Fate%2Fstay+nightなリクエストが来ると、この設定だとbackendには http://backend/keyword/Fate/stay+night%2FがデコードされたURLにプロキシしてしまう! %2Fのままプロキシするには以下のように設定をすればよい。 AllowEncodedSlashes On RewriteCond %{THE_RE

    Apacheが%2Fを勝手にデコードして生きるのが辛いとき - かみぽのメモ
    akuwano
    akuwano 2011/04/29
    生きるのが辛いわ、、、
  • 1