タグ

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

  • HomebrewのMySQL 5.7.9でSSL接続するとコケるので気をつけよう - かみぽわーる

    このエントリはMySQL Casual Advent Calendar 2015の3日目です。 で、これです。 github.com ざっと調べた感じだと、openssl 1.0.1eあたりからDiffie-Hellman (DH) key length 1024bit以上を要求するようになったかなんかで、MySQLが512bitとかいうかなり短いkey lengthを使ってるせいでopensslに怒られる感じらしい。 MySQL 5.7からデフォルトsslオプションが有効なのでRDSとかみたいなSSL接続受け付けてるホストに5.7のクライアントでそらで接続しようとするとコケるっぽい。 $ mysql --help ... --ssl If set to ON, this option enforces that SSL is established before client attem

    HomebrewのMySQL 5.7.9でSSL接続するとコケるので気をつけよう - かみぽわーる
    myfinder
    myfinder 2015/12/03
  • Treasure Dataに入社しました - かみぽわーる

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

    Treasure Dataに入社しました - かみぽわーる
    myfinder
    myfinder 2015/04/03
    トレジャーデータ社の吸引力すごい
  • 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 と寿司ビール問題 - かみぽわーる
    myfinder
    myfinder 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) - かみぽわーる
    myfinder
    myfinder 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 に対する日本の開発者の見解 - かみぽわーる
    myfinder
    myfinder 2015/03/08
  • InnoDBの制限とファイルフォーマットAntelopeとBarracudaの違い - かみぽわーる

    この投稿はMySQL Casual Advent Calendar 2014の5日目の記事です。 @kamipo 質問させてください。このエントリーで COMPRESSED ではなく DYNAMIC を選んでいる理由はなぜですか?あまりDB詳しくないので参考リンクなどポインタを教えていただけるだけでも構いません http://t.co/9sC4lzLjXr— kiyoshi nomo (@kysnm) November 27, 2014 先週ツイッターでInnoDBのことを質問されまして、せっかくなのでアドカレのネタにしようと思いますってことでInnoDBのファイルフォーマット毎の違いをカジュアルに説明しようと思います。 InnoDBのファイルフォーマットBarracudaと新機能 InnoDBにはファイルフォーマットとして昔からあるAntelopeと新しいフォーマット(5年も前からあるの

    InnoDBの制限とファイルフォーマットAntelopeとBarracudaの違い - かみぽわーる
    myfinder
    myfinder 2014/12/06
  • 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対応表 - かみぽわーる
    myfinder
    myfinder 2014/10/28
  • InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる

    この記事はMySQL Casual Advent Calendar 2013 3日目の記事です。 はじめに 以前にSELECT ... FOR UPDATEとロックの挙動 - walf443's blogの記事にTwitterで少し言及したんですが、それの補足というか、InnoDBのロックの範囲について僕はこう理解していますよという話です。 MySQLといえば、InnoDBをネットワークサーバとして使うためのフレームワークであり、SQLはInnoDBのインデックスにアクセスするためのDSLといっても過言ではないでしょう。 InnoDBのロックとはつまるところインデックス行のロックなので、InnoDBのロックの範囲を理解するためにInnoDBのインデックスについて少し前置きしておきます(だいぶ端折ったけど長くなった…)。 クラスタインデックスとセカンダリインデックス すでにInnoDBのイン

    InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる
    myfinder
    myfinder 2013/12/04
    "MySQLといえば、InnoDBをネットワークサーバとして使うためのフレームワークであり、SQLはInnoDBのインデックスにアクセスするためのDSLといっても過言ではないでしょう。"
  • 優勝したらあの子に告白することばかり考えていた #isucon - かみぽわーる

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

    優勝したらあの子に告白することばかり考えていた #isucon - かみぽわーる
    myfinder
    myfinder 2013/11/14
  • #mysqlcasual vol.5 で話してきたこと - かみぽわーる

    先日オラクルで開催された MySQL Casual Talks Vol.5 に参加してきました。 mysql-build よもやま話 ありがたいことにいつも発表の機会を頂いてるので、なにか新しいネタをと思ってるんですが今回ちょっとネタも余裕もなくて、それでも聴いてる人がちょっとでもへぇって思えるようなことをざっくばらんに話せたらいいなと思っていて ちょうどFacebook版MySQLmysqldumpを爆速にする話がタイムリーだったのでそれに絡めてInnoDBのFast Index Creationを狙ってリストアも爆速になる話をしようって流れで今回の発表を考えました。前者をmatsunobuさんのブログ、後者をsh2さんのブログと発表資料を使って説明させてもらいました。僕の発表資料にはURL貼ってあるだけなんで詳しくはおふたりの素晴らしいエントリーを参照してください。 Yoshinor

    #mysqlcasual vol.5 で話してきたこと - かみぽわーる
    myfinder
    myfinder 2013/10/29
  • #mysqlcasual vol.4 でLTしてきました - かみぽわーる

    4/17 に日オラクルで開催された MySQL Casual #04 で話して来ました。 当日のスライドは以下になります。 SQLがむずかしくて生きるのがつらい ちょいとまだ作り始めたばっかりで微妙なところも多々あるんですが、mruby_storage_engine のレポジトリは以下になります。 kamipo/mruby_storage_engine · GitHub 発表について けっこう時間なくて準備にテンパってたので、あとで言及されてるのをみると説明たりてなかったなー(絞り込めないってLIMIT OFFSETの話じゃないの?的な)というところもあったけど、それがわかってる人は大丈夫な人なので大丈夫です!補足ありがとうございます! mruby_storage_engine について 構想自体は一年前ぐらいからあって、よく同僚に「こういうことできたらうれしいとおもわへん?(でもめんど

    #mysqlcasual vol.4 でLTしてきました - かみぽわーる
    myfinder
    myfinder 2013/04/20
    かみぽさん皆勤賞だし次も期待してる
  • 簡単に手元で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のファイルサーバ立てる方法 - かみぽわーる
    myfinder
    myfinder 2013/02/20
  • MySQL 5.6 で Q4M を動かしたい - かみぽわーる

    一晩がんばってみたけどこれ以上は僕の力量では解決方法がわからないので誰か続きをお願いします…! kamipo/q4m at mysql-5.6 · GitHub とりあえずビルドが通ってlibqueue_engine.soまではできあがるんだけど、INSTALL PLUGIN queue SONAME 'libqueue_engine.so'してみるとSymbol not foundでいけてない感じです。 追記 @kamipo 手元で確認したところ、-DDBUG_OFF が必要のようです。— Isao Shimizu (@isaoshimizu) February 15, 2013 おぉ…手元で #define DBUG_OFF で Linux だとほぼいけた… OSX だと extern "C" してもまだ Symbol not found: _build_table_filename

    MySQL 5.6 で Q4M を動かしたい - かみぽわーる
    myfinder
    myfinder 2013/02/15
  • #cross2013 に行ってきた - かみぽわーる

    聴いたやつ。 HTML5 x セキュリティ 体系的に学ぶ安全な利用規約の作り方 継続的サービス改善のゲンバのハナシ 継続的システム運用のゲンバのハナシ 感想など 出張Shibuya.XSSでCD-ROMをイジェクトしたくならない人は今すぐ病院に行ってくださいで有名な@hasegawayosukeさんが登壇されるのを楽しみにしていたんですが、ノロで口からイジェクトしまくって欠席されたみたいで、その記事を書くのをやめて今すぐ病院に行って欲しかったです、残念でした…。 そのはせがわさんが言っていた好きな言葉があって 「その仕様を最も悪用できる方法を思いつくことが世界の平和の貢献につながる」 NetAgent Official Blog : 私がセキュリティの世界に挑戦した理由 ~はせがわようすけ~ 僕は世界の平和とまではなかなか言えないのだけど、僕と僕のまわりの平和ぐらいは守りたいし、世の中の悪

    #cross2013 に行ってきた - かみぽわーる
    myfinder
    myfinder 2013/01/22
  • MySQL Casual Talks Vol.3 でスベってきました - かみぽわーる

    MySQL Casual Talks Vol.3 : ATND おつかれさまでした! 去る4月19日はこじはることAKB48小嶋陽菜の誕生日でした! 先日の握手会でそのことに気づいてしまったので なにかこじはるネタでLTをしたいなということで Haruna storage engineというネタをやりました。 AKBとmysql-buildの話 InnoDB Deep Talk #1 : ATNDでd:id:moriyoshiさんがLTしていた InnokoDBをパクったForkしただけのネタなんですけど テーブル名で動作が変わるストレージエンジンネタもやってみたかったので テーブル名に"mariko"が含まれてると麻里子様のツイートも取ってくるようにしてみました( *`ω´)八(бвб) きもい、滑ってる、これはひどい、などの率直な感想を頂いておりますが これに懲りずにまた呼んでください

    MySQL Casual Talks Vol.3 でスベってきました - かみぽわーる
  • MacBook Airのセットアップ - かみぽわーる

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

    MacBook Airのセットアップ - かみぽわーる
  • MySQL(InnoDB)でCOUNTしたくないとき - かみぽのメモ

    たとえば、MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログに出てくるようなInnoDBをメッセージキューのように使っているときに、キューにどれだけメッセージが溜まってるかを確認したいとき、普通に考えるとCOUNTすると思う。 SELECT COUNT(*) AS count FROM test_queue;この軽い気持ちでしたCOUNTが、もしうっかりキューに100万レコードぐらいあったりするとInnoDBだとPRIMARYキー総なめとかしちゃってレスポンスにかかる0.1秒ぐらいのあいだ罪悪感に苛まれることでしょう。 このとき冷静に考えると、もしキューが1件も処理されていなければ、idはauto_incrementなので特に細工していなければ SELECT MAX(id) AS count FROM test_queue;これも全体のレコード数に等しいでしょう。

    MySQL(InnoDB)でCOUNTしたくないとき - かみぽのメモ
    myfinder
    myfinder 2011/12/13
  • mysql-buildでいろんなバージョンのMySQLをインストールしたい! - かみぽわーる

    これはMySQL Casual Advent Calendar 2011 - MySQL Casualの8日目の記事です! UDFでFizzBuzz id:sugyanさんがストアドプロシージャでFizzBuzzをやっていたのでMySQLのUDF(user-defined function)でもやってみました。 kamipo/mysql_fizzbuzz · GitHub git clone git://github.com/kamipo/mysql_fizzbuzz.git cd mysql_fizzbuzz g++ -shared -fPIC -Wall -g mysql_fizzbuzz.cc -o mysql_fizzbuzz.so cp mysql_fizzbuzz.so /usr/local/mysql/lib/mysql/plugin mysql -u root -e "cr

    mysql-buildでいろんなバージョンのMySQLをインストールしたい! - かみぽわーる
  • SSDのSecureEraseのやり方 - かみぽわーる

    SSDをずっと使っていると断片化してるのかなんなのかよく知らないけど、だんだん性能が落ちてくるし、彼女と別れることになる。あのころの性能を取り戻すSecureEraseという技があるのでやり方のメモ。 SecureEraseをするにはSSDが「not frozen」になってる必要があるらしい。 $ sudo hdparm -I /dev/sdb ... Security: supported not enabled not locked not frozen ...なってたらhdparmの--security-set-passでパスワードをセットすると sudo hdparm --user-master u --security-set-pass akb48 /dev/sdbSSDSecurityのところが「enabled」になるので $ sudo hdparm -I /dev/sdb

    SSDのSecureEraseのやり方 - かみぽわーる
  • 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を使う - かみぽわーる
    myfinder
    myfinder 2011/07/15
    perf