日向夏特殊応援部隊

俺様向けメモ

YAPC Asia 2014

もの凄く久しぶりにはてダにログインしたので、はてな記法を皆目忘れてしまった訳ですがこんにちは! ブログを書くまでが YAPC だって事なので書いてみます。 まずスタッフの皆さんお疲れさまでした。yusukebe が主体になっての初の YAPC だけど何ら違和感な…

X-Frame-Options, Activity Streams 2.0 など RFC7034 - HTTP Header Field X-Frame-Options JSON Activity Streams 2.0 X-Frame-Options が RFC になった。まだ読んで無い。 Activity Streams が何故か 2.0 ってのが付いて I-D になったようだ。 よく見たら…

perldoc.jp のデザインを公募します!

こちらでもお知らせしちゃいます!http://blog.perlassociation.org/2012/03/perldocjp.htmlにて詳しく書きましたが、perldoc.jp の運営母体を JPA に移管する事になりましたので、デザインの公募を行います。もしお知り合いにデザイナー等いましたら、お声…

PATCH メソッド、新しい HTTP Status Code

Spec はあまりミーハーに追いかけても後で痛い目にあったりするもんですが、久しぶりに面白いなーと思ったのでちょっと取り上げてみます。 ちなみに斜め読みなので記事の正確性についてはあまり保証しませんw PATCH Method for HTTP RFC 5789 にある PATCH M…

今日のワンライナー

ヘッダ付き CSV の2列目の各行の数値の和を求める、ってのがさらっと書けなかったので社内で聞いたみた。 $ tail -n '+1' mojage.csv | cut -d "," -f 2 | awk '{ s+=$1 } END { print s }'とか。面白かったのは、 $ paste -d '+' -s ./mojage.csv | bcみた…

MyTAP + my_prove + MySQL::Sandbox で快適 SQL Unit Testing

MyTAP という MySQL 上で Test Anything Protocol を実現してしまうというプロダクトがあります。これと TAP::Parser::SourceHandler::MyTAP に付属している my_prove コマンドを使うとかなり簡単に SQL プログラミングでテストを行う事が出来ます。また MyS…

replication status plugin のインストール

Replication Status Plugin という物がありまして、SHOW SLAVE STATUS で取れる値が information_schema.SLAVE_STATUS テーブルから取れるよって代物です。SHOW 系のコマンドって変数代入出来ないから SQL でホゲホゲする事が出来ないんですよね。なのでこう…

Pod ドキュメントを除外してソースのみを見る

それ perldoc -M と Pod::Strip で出来ます。例えば、 $ perldoc -MPod::Strip AnyEventみたいな感じですね。AnyEvent の pod 部が多過ぎてソース読むのが大変だったので、これで読みやすくなりますね。 ひょっとしたらもっと良い、あるいはシンプルな方法が…

Lion での EV(libev) のインストール

どうも Lion 環境下だとそのまま EV-4.03 はインストール出来ないみたいですね。 memoryless sources — Lion で Plack をインストールすると EV のテストでエラーがでる。 9891 – static const struct optimized-away incorrectly by llvm-gcc Trouble insta…

YAPC Asia 2011 でのスライド公開と感想など

まずは自分のスライドですが公開しました。 Mobage オープンプラットフォームの事件簿 ちょっと Mac の PowerPoint のせいかどうか分からないけどスライドがプロジェクタに映らず急遽 PDF に変換したりして、最大化出来なかったりしてお見苦しい所があったか…

変数とストアドプロシージャについて

追記しました (2011-08-08T16:57:50Z)割と弊社では MySQL の event scheduler を使ってみたり、ストアドプロシージャ、トリガーなど積極的に使っています。 今回はストアドプロシージャを書く上で、変数を色々使うのですが備忘録としてメモっておきます。MyS…

SET TIMESTAMP 構文で時刻の固定

SELECT * FROM hidek WHERE created_on < UNIX_TIMESTAMP() - ? ORDER BY created_on ASC LIMIT 100; とかそういうクエリをテストしたい場合、Fixture の日時が固定値だと色々と不都合がありますね。そういう時は、http://dev.mysql.com/doc/refman/5.1/ja/s…

Iterator::GruopedRange 0.02 Released

さて、ちょっとしたことからタイトルのようなモジュールを書いて見ました。Iterator::GroupedRange モジュールは簡単に説明すると、リストまたは別の(複数行ずつ返す)イテレータから指定行数分まとめて列挙するというモジュールです。0.01 で SYNOPSIS を思…

クリンスイの蛇口直結型浄水器買った

巷で水道水から200Bq/kgだかのヨウ素131が検出されただとかって話が出ている件ですが、これがどの程度危険な数値なのかどうか、あるいは甲状腺に対する悪影響、特に乳幼児に対して宜しくないらしいとの事のようですね。ちょうどマンションにある蛇口直結型の…

KeyedMutex::Memcached ってモジュールをリリースして何も言ってなかった件

id:kazuhooku さんがかつて作った KeyedMutex を memcached でやってしまおうと言うのがこのモジュールの目的です。KeyedMutex の場合は、keyedmutexd と言うそれ専用の daemon を立ち上げなければいけませんが、このモジュールの場合は既存のシステムに mem…

Test::Mock::Guard Released

さっき nekokak さんと xaicron さんにそそのかされて Test::Mock::Guard ってモジュールを書いてみました。そもそも Perl には Test::MockObject と言う汎用の Mock モジュールがあるんですけど、あれこれ余計な機能がたくさんついてたり Mock 化すると多分…

IV, NV などを B モジュールで調べる

makamaka さんが YAPC Asia 2010 にて発表した XSからPPへ - YAPC::Asia Tokyo 2010 に既に書いてあるんだけど、備忘録を兼ねて。JSON にする際に違いが出てくる訳ですがまずは論より証拠。 $ perl -MJSON -e 'warn encode_json(+{ foo => 1, bar => "1", ba…

Range Partitioning と日付型の選び方

だいぶ前に身を持って知った訳ですが、どう見ても BK なのでここに書いておきますよと。 型 データサイズ 日付演算 1日未満の分割 刈り込み (pruning) datetime 8 byte ○ × ○ timestamp 4 byte ○ ○ × uint(10) 4 byte × ○ ○ 1日未満の分割が必要無く、データ…

JSON-RPC, RESTful API とクエリパラメータ

OpenSocial の JSON-RPC, RESTful API の設計についてのよもやま話です。 JSON-RPC とクエリパラメータ OpenSocial Core API Server Specification 1.1 に URL Addression と言うセクションがあります。 これは JSON-RPC を http GET で呼び出す際に params …

カラム数の多いテーブルの SELECT 用にカラムを明示的に列挙する、または GROUP_CONCAT() が便利と言う話

カラム数が結構多いテーブルに対して SELECT * とは書きたく無くて明示的にカラム名を指定したいって時に徒手空拳で頑張って書いても良いんですけど、information_schema 使えば楽出来るよねーって話。 CREATE DATABASE akb48; USE akb48; CREATE TABLE memb…

生 DBI ユーザーのための DBI Cookbook (6)

さて、今日は selectcol_arrayref です。昨日、会社のグルメな同僚に教えて貰いました。ちょうど 生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic にて selectall_arrayref + Slice, selectall_hashref などの使い方を書きましたが、こ…

あけましておめでとうございます

皆様あけましておめでとうございます。本年も宜しくお願い致します。早いものでDeNA に入社してから二年経ってしまいました。実はプログラマとなってから二年間在籍したのはこの会社が初めてで、まだまだ楽しい出来事が待っていそうだなと思える会社だなと改…

SQL だけで動的に ADD PARTITION する

DEALLOCATE PREPARE し忘れていたので修正しました。id:tokuhirom++結論から言えば プリペアド ステートメントの為の SQL 構文 を使えば出来る。 CREATE TABLE `timeline` ( `id` int(10) unsigned NOT NULL, `guid` int(10) unsigned NOT NULL, `title` var…

Time::Piece::MySQL とタイムゾーン (訂正あり)

重要id:holidays-l さんがこの記事の誤りと、ちゃんとした解説を書いてくれているので、そっちを参照して下さいませ。以下、そのつもりで読んで下さい。MySQL から UNIX_TIMESTAMP() と NOW() の値をこんな感じで出します。 [12:13:13 root@bopobo/test :4] …

YAPC Asia 2010 でのスライド公開と補足、あと感想など

はい、@941 さんを初めとして、@lestrrat さん、JPA の皆様って僕もですけど、それとボランティアスタッフの皆さん、スピーカーの皆さん、ご来場者の皆さん3日間お疲れ様でした。そして、今年も盛り上がりましたね。さて、後半だいぶ時間が押して早口になっ…

Partitioning と information_schema.PARTITIONS のメモ

例によって information_schema に partitioning されたテーブルの情報がある訳ですが、ちょっとメモ。ちなみに SQL としてはこんな感じです。 SELECT PARTITION_NAME, SUBPARTITION_NAME, PARTITION_ORDINAL_POSITION, SUBPARTITION_ORDINAL_POSITION, PART…

Iteration あれこれ

sharding やら partitioning とかし始めると段々とその key が特定のノートやパーティションに収まるように分類した上で処理とかしたくなる訳です。 最近、モバゲーのオープンプラットフォームのプロダクト全てで使っている、DBIx-DBHResolver にちょこちょ…

今日の MySQL - Partitioning 編 -

さてと、ありがちな下記のようなテーブルを作ってみます。ちなみに 5.1.45 で試してます。 DELIMITER ; DROP TABLE IF EXISTS diary; CREATE TABLE diary ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(64) NOT NULL, `content` text…

Web テクノロジーセミナー in Hokkaido と Hokkaido.pm のスライドを公開します

ちょっと忙しいので感想とかは後で><というわけで行って参りました北海道。前日頑張ってスライド書いては呑んでスライド書いては呑んでの繰り返しでホテルの朝食を二度とも逃すという体たらくぶりでしたw Web テクノロジーセミナー in Hokkaido mbga Open…

生 DBI ユーザーのための DBI Cookbook (5)

まさかの続編ですよwww HandleError を使ってより詳しいエラーを得る 今日、帰りに @myfinder さんと話していて、syslog-ng に吐かれるエラーで Too many connection とかをちゃんと監視しつつも、エラーメールボムによって大事な思い出が消えたりしない…