Blog::kobaken

prove t/foo/bar/baz.t

JSONが正しくエンコードされているか、Cpanel::JSON::XSで手軽に確認する

Perl Advent Calendar 2021 でお送りします。 Perlで、JSON文字列が期待通りか、Cpanel::JSON::XSでテストできます。具体的には、$json->decode($json_string, $json_type)の第二引数にスカラ変数 $json_typeを渡すと、どうdecodeしたか型情報が入ります。以…

Perlのコンテキストと仲良くなるツールを書いた

metacpan.org Perlのコンテキストに戸惑う場面はあると思います。 my @a = ("apple","banana"); if (@a) { ... } 「あれ?なんでifに配列を入れて動く?」 「それは、真偽値コンテキストで解釈されるね」 「なるほど?」 こういった戸惑いが少しでも減ること…

attributeを用いて、コンパイル時までにチェックに必要な情報を整える

#japanpmのおかげで、最近コードを書けてる。その中で、attribute周りをいじっていたので、そのことについて書きたいと思う。 Perlでattributeを使う時、普通、Attribute::Handlersを使って書くと思う。 package AttrSample; use Attribute::Handlers; our @…

フィードフォワードをしてから、フィードバックをする

HHKB HYBRID発売されましたね。欲しいですね。私は間が悪くHHKB追加購入したばかりなので泣いています。id:kfly8です。 この記事はEngineering Manager vol.2 Advent Calendar 2019の20日目の記事です。 伝えたいことはタイトル通り「フィードフォワードをし…

Perl5で関数のメタ情報を扱うSub::Metaをリリースしました

Sub::Meta - handle subroutine meta information - metacpan.org Sub::Metaは、関数の名前、関数の入出力といったメタ情報を扱うためのモジュールです。 Sub::Identify,Sub::Util,Sub::Infoといった類似モジュールはありますが、関数の入出力のメタ情報を扱…

Perlのインタフェース実装をした

吉祥寺.pm #17 で話した内容です。吉祥寺.pm 楽しかったです! ちなむと吉祥寺.pmのフィードバックはこちらです。楽しかった。 弊社で吉祥寺pmのフィードバックがあり、懇親会はご飯が旨くて楽しいってフィードバックがされました。https://t.co/7rVLyAjFu2…

型に厳しい言語とCpanel::JSON::XS::Typeで仲良く

この記事はPerl Advent Calendar 2018の10日目の記事です。 JSONをdecodeする時、例えば、123、"123"は型に厳しい言語であれば、別々に扱いたいものです。 ですが、Perlでぼやっとencodeすると、これらをいっしょくたにしてしまいます。 例えば、次のコード…

WEB+DB PRESS vol.107 「Perl Hackers Hub」 第52回「Perlで堅牢な開発」に寄稿しました

本日10月24日(水) に販売されるWEB+DB PRESS vol.107 で Perl Hackers Hub 第52回「Perlで堅牢な開発」を書かせていただきました。 技術評論社の稲尾さん、監修いただいた牧さん、応援してくれたモバファクの同僚、そして家族に協力してもらい、執筆すること…

About Dancer2 (ja)

この記事は、Perl5 Advent Calendar 2015 の20日目の記事です。 Web Application Framework の Dancer2 について紹介したいと思います。 まずは、YAPC::Asia 2014 の LT から。 こちらは、Dancer2 のリリースマネージャーの SawyerX による、Dancer2の超速紹…

設定とFixtureのテスト

この記事は、モバイルファクトリー Advent Calendar 2015 2日目の記事です 昨日は、nekobato さんの superagentとaxiosの使い分け でした Perl Advent Calender 2014 の最高の記事の ソースコード以外もとにかくテストする。もしくはカバレッジだけではダメ…

Hello, Crystal

この記事は Crystal Advent Calendar 2015 の 2 日目の記事です 昨日は、pine613 さんの これから Crystal を始める方へ: Crystal 日本語情報まとめ でした。 公式ドキュメントの日本語訳が整っているの素敵ですね!! http://ja.crystal-lang.org/ 今日は、cr…

DBIx::Schema::DSL::Dumper というのを書きました

kfly8/DBIx-Schema-DSL-Dumper · GitHub songmuさんの書いたDBIx::Schema::DSL を使いたい状況が出て来て、 すでに結構もりもり書かれてたDDLを移行する為に書いてみました。 使い方は、Teng::Schema::Dumper と同じように、$dbh を渡すだけで、DSLが吐き出…

間接オブジェクト記法のアンチパターン

この記事は Perl Advent Calendar 2014 の 17日目 の記事です。 16日目の記事は magnolia_k_ さんの perlの関数を第一級オブジェクトとして扱う話 でした 目次 はじめに 間接オブジェクト記法ってそもそも何? 間接オブジェクト記法が活きる例 ハマる例1 Try…

#Perl入学式 のお手伝いさせてもらってきた

Perl入学式 に参加するのは初めてだったのですが、 サポーターとして参加させてもらいました。 お疲れ様でした!特に講師のid:xtetsuji さんお疲れ様でした!! 「サブルーチンと正規表現」がお題でした。 資料はコチラ 寿司はコチラ。 Perl入学寿司 #Perl入…

#chibapm 5で好き放題ランダウ記号の話をしてきた

数学の話を息抜きにしてきた。 グラフが、写真なあたりまさに息抜き←手抜き インデックス構造によって計算オーダーが変わったりするので、 云々かんぬんで久しぶりに数学に触れられて、楽しかった。 chibapmの懐の深さに感謝!

isuconの予選で失格してきた

牡蠣途中 運営の方々、楽しいイベントをありがとうございました!! kuraチームのid:karupanerura, id:masasuz ありがとうございました! isucon中にやったこと サマリーテーブルを使って、ログインの成否を判定するようにした https://github.com/karupaner…

slides.comを使ってみた

App::revealupで作成したslideを公開する時、 今までgithub.ioを使っていたのですが、 reveal.jsで紹介されているslides.comを使ってみました。 Slides – Create and share presentations online Slides – Create and share presentations online 結論 markd…

#gotandapm たのしんできた

Gotanda.pm #2で 飲んだり発表したり話を聞いたり飲んだりしてきました1 主催のid:karupaneruraありがとうございました!!!!! isucon楽しい!!!!ので参加すると良いって気持ちで発表してきました>< gotandapm スライドとmarkdown https://github.com…

ほんとにあったスキーマの話「ソーシャルゲーム」と題して、YAPCのトーク応募してみた

YAPC::Asiaのトークの応募数が尋常じゃないので、駆け込みブログです>< (YAPC終わった後に、yet another yapcをするしかないんじゃないか?!) http://yapcasia.org/2014/talk/show/ce6e777e-fb91-11e3-b7e8-e4a96aeab6a4 アプリケーション層でも、コードの…

Hello Android

いまさら、、あんどろいどにはろーわーるどしました(え 備忘録です。 MyFirstAppを作成するところまでは手順通りだった。それだけなのにつかれる事態になってしまった>< http://developer.android.com/training/basics/firstapp/creating-project.html ht…

isucon に負けて悔しいので、問題を速く解決するためのパターンを考えてみた

isucon決勝からもうだいぶ日が経ってしまいました、、その間、負けて、id:karupanerura先生に、げきおこされる夢も見ました。 振り返ります。 isuconでスコアを残しているチームは技術力もさることながら、 問題解決能力が高いと思うのです。もの凄く。 近づ…

TypeScriptさわるぞー #TODO

jsを大きな規模でもちゃんと動くようにしたいと、のたまったので、 偉い人たちが作ったaltjsを勉強させてもらいます ref http://kfly8.hatenablog.com/entry/2013/11/16/005340 #発火村 中、id:gfx 先生におすすめしてもらったTypeScriptを見てみます>< ぱ…

大規模なjsってどうして書きにくい?

大規模なjsってどうして書きにくい? フロントサイドでの話です。 そんな話を、id:karupanerura と#isucon反省会帰り、東海道線で話した 2人で話した答え: 「パッケージの責任範囲を小さくするベストプラクティスが分からない」 つまりは「コードを読む範囲…

#techhills #7にいってきたー

CROOZさん主催のtechhillsに初めて参加させてもらった。 いろんなゲームエンジンの話で興味深く聞かせてもらいました! ありがとうございました! http://www.techhills.net/ http://atnd.org/events/44622 https://twitter.com/search?q=%23techhills&src=h…

#isucon 予選、暫定で生き残れたよう。

初めてisuconに参加させてもらいました。 すごい楽しませてもらっています! 坂パスタチーム( code )は1日目6位で、幸い本戦にも参加出来そうです。 またよろしくお願いします!! 運営の方々、ほんとにありがとうございます>< 予選が終わってみて思うこと…

#yapcasia と #pyconapac 2013のボランティア参加してきた

[追記]運営からのお願い --8<-- YAPC::Asia Tokyo 2013に参加していただいた皆様 本当にありがとうございました。 おかげ様で今年も楽しいイベントにすることができたと思います。 そこでYAPCの熱気が冷めない間に皆様に2点お願いがあります: 1) 是非感想ブ…

#kyotopm にいってもくもくしてきた

そうだ、京都に行って来ましたー 2013-03-30 @はてな http://www.zusaar.com/event/582004 はてなのTシャツもらた。あざます! 今回のKyoto.pm は、 もくもくするハッカソンイベントでした。 自分は、数式のエディタ作ってみました。(ほとんどドキュメント読…

suppressしたrow objの存在しないkeyにアクセスして、Data::WeightedRoundRobin の初期値が使われて...orz

たった今、かなしい!となったので勢いに任せて書きます. 普段、Data::WeightedRoundRobin のSugarを次のような感じで exportして使っています. use Data::WeightedRoundRobin; sub list2dwr (&@) {## no critic my $code = shift; return Data::WeightedRou…

2012年の振り返りと2013年。

あけましておめでとうございます。2012年は自分にとって、成長の年でした。 (ということにする!) 最初から私事で恐縮ですが、 鬼畜id:karupaneruraにバツイチと言われてしまいましたが、、 2012年は、一生過ごして行きたいと思っていた人との別れを経験しま…

lenny に、node 0.8.15 を入れるのに嵌ったログ。chai を入れるのが目的だったはずが力尽きるの巻

はじめに JSのテスト環境を作りたい。作りたい>< なので、LordOfNights をUnity からHTML5 に移植した@mizchiさんが、 npm のshould は嫌だなー。chaiがいいよ。って言ってたので、便乗してみる。 詳しいことはTODO http://d.hatena.ne.jp/mizchi/20121119…