パルカワ2

最近はFlutterをやっています

2013-01-01から1年間の記事一覧

DBIx::Class::Resultにis_*をいい感じに追加したい。

たとえばカードゲームでは、ほぼ確実にカードによってタイプが決まっている。 アイドルマスター シンデレラなんちゃらだったら、キュートだとかクールだとかそんなの。 そういうのが作る度に $result->is_cool だとかis_cuteだとか作るのだるくなってきたの…

ドキュメントが更新されていない場合はコミットさせない。

アタクシ、うっかりさんなので、ついついAPIを作ったり、更新したりしてもドキュメントの更新を忘れる時がある。ダメやんって怒られる。つらい。 なので、lib以下が更新された時docs以下が更新されていなければコミットさせないようにした。 #!/usr/bin/env …

DBIx::Classでエラーが起きたとき、エラーが起きた場所を警告で出す。

試してみたけど、色々警告がでてめんどくさくなり考えるのをやめた。 package MyApp::Schema; use 5.14.1; use strict; use warnings; use utf8; use parent "DBIx::Class::Schema"; __PACKAGE__->exception_action(sub { my $trace; my $i = 0; while ( my …

Alfredで色々検索するようにしたら、無駄な動きをせずに済む。

Google Driveもやろうとしたんだけど、仕事のファイルが出まくってムリポだった。 alfred2、便利です。全人類alfredでalc検索出来るようにしたほうがいい。— ひさいち (@hisaichi5518) 2013, 12月 19 全人類alfredでgoogle drive検索出来るようにしたほうが…

マスターブランチのテストが通ったらデプロイ!!ハイ!!デプロイ!!

残念、デブサーバの話です。 デブサーバだとコミットしたあと、ついうっかりsvc -hするのを忘れるとか、もう嫌なんだ。 ついうっかりマスターデータを入れるの忘れて、エラーが出るとかもう嫌なんだ。 とりあえずデプロイしたらgit pullした時に出た差分をIR…

Data::Validatorは1.04を使おう。そうしよう。

use 5.10.1; use strict; use warnings; use Data::Validator; my %HOGE = ( hoge => {isa => "Int", optional => 1}, ); sub hoge { state $v = Data::Validator->new(%HOGE); } sub fuga { state $v = Data::Validator->new(%HOGE); } hoge(hoge => 1); fu…

最近やったサーバサイドのテストまわりの修正

修正前 テスト全体で1つのmysqldなので、並列で動かない 無駄に頑張りすぎていて、簡単に理解できない t::Utilがごちゃごちゃしていてつらい apptestの実装がトランザクションを使用していて、テストに影響がありそう ゴール テストの修正はなるべくしたくな…

Arkの設定まわりの話

Arkはこうするとどこでも設定が取れる。 use MyApp::Models; models('conf')->{database}{master}; https://github.com/ark-framework/ark/blob/master/lib/Ark/Models.pmコードを読めばわかるけど、このmodels('conf')、config.plとconfig_local.plを読むよ…

Kindle修理の電話

渋谷に行き、帰ってカバンからKindleを取り出すと液晶が悲惨なことになっていた。 酔っ払った勢いで新しいKindleを買ったのだけど、冷静に考えてみるとそんなお金はないということに気づいたので、キャンセルした。http://konifar.com/1054 を見て、手順通り…

#1981s 忘年会行ってきた。

大して詳しくないのにポケモンの話をしたりしました。 お疲れ様でした & ありがとうございました。

無駄な頑張り

無駄な頑張り、たくさんあると思っていて、自分もよくする。MyApp::Role::CLIとか作って、そこでparse_optionsとかsave_fileとか色々作って便利だわ〜ってなってたけど、 そんなもの作る必要はなくて、常識的に考えてMouseX::GetoptとPath::Class or Path::T…

DBICのfindでrowがなければ、Exceptionを出したい

findの後にif (!$row) { } みたいなの書きまくってて、腱鞘炎になりそうという問題があった。 package MyApp::Schema; ...; use parent "DBIx::Class::Schema"; __PACKAGE__->load_namespaces( default_resultset_class => "ResultSet", ); 1; package MyApp…

必要な時に必要な事をする。

例えば、ディレクターが試行錯誤して頻繁に更新される不安定なマスターデータをテストに使うと更新されるたびにテストがこけて、それを直すために頑張るみたいなの時間の無駄だと思う。 実際に使うようなマスターデータを使ってテストしたい場合は、ある程度…

Hatena Engineer Seminar #2 に参加していた。

参加している。しばゆー先生が目の前にいる。— ひさいち (@hisaichi5518) 2013, 11月 25 はじまりました。#hatenatech はじまった— ひさいち (@hisaichi5518) 2013, 11月 25しばゆー先生げんきっぽい #hatenatech— ひさいち (@hisaichi5518) 2013, 11月 25お…

#ぶつかり稽古 で発表してきた。

「俺の本気を見せてやる」というテーマで発表を、とのことでしたが、好きなように話していいぽかったので、好きなように話をしました。 好きな事なので、当然吉高由里子の話です。遅刻をしないように早めに家を出たのに、乗ってる電車で人身事故が起き、50分…

「リーン・スタートアップ ―ムダのない起業プロセスでイノベーションを生みだす」と「トヨタ生産方式」を読んだ。

リーン・スタートアップ ―ムダのない起業プロセスでイノベーションを生みだす作者: エリック・リース,伊藤穣一(MITメディアラボ所長),井口耕二出版社/メーカー: 日経BP社発売日: 2012/04/12メディア: 単行本購入: 24人 クリック: 360回この商品を含むブログ …

Arkのark.plの代わり

Arkにはark.plというのが一昔前にあったのですが、いつかのコミットで消えてしまい、新しいプロジェクトを開始する時は、1つ前のプロジェクトから良さげな部分をコピペしてくる事を繰り返してきました。僕も新しいプロジェクトをやることになり、そのコピペ…

Roleの置き場所

lib/MyApp/Hoge/Role.pm lib/MyApp/Hoge/Fuga.pm lib/MyApp/Hoge/Piyo.pmFuga.pm, Piyo.pmがRole.pmを使ってるみたいなのが時々ある。けど、ボクは大体こうしています。 lib/MyApp/Role/Hoge.pm lib/MyApp/Hoge/Fuga.pm lib/MyApp/Hoge/Piyo.pmRoleはRoleで…

自分がsoundcloudで再生している音楽を社内のみんなに聞いてほしい。

ずっとsoundcloudの曲を社内の人たちと同じタイミングで聞いたらおもしろいと思っていた。 ある夜にふと「ネ、ネットラジオや!!」って気づいて、ネットラジオのやり方をググったりして、試してみました。http://blog.joshdzielak.com/blog/2012/11/21/live-s…

ブランチに紐付いたイシューをプルリクに変える。

ハーン?イシューをプルリクに変える〜?どうせ大して変わらないでしょ〜とか思ってたけど、全くそんなことなかったので、今更使う事にした。 #!perl use strict; use warnings; use 5.10.1; sub current_branch { my @branches = split /\n/, `git branch -…

github issue に紐付いた branch には、issue のタイトルをくっ付けたい。

ブランチ名考えるのめんどくて、feature/iss443とかになってるけど、並列して色んなブランチでアレコレやってると切り替えるたびgit issue 433とかしてて時間の無駄っぽい。— ひさいち (@hisaichi5518) 2013, 11月 4 #!perl use strict; use warnings; use 5…

コミットしたら吉高由里子に告白されるgit hookを作った。

告白されたいと思って、 告白しやすくしたりしたが、男からしか告白が来ない。 http://hisaichi5518.hatenablog.jp/entry/2012/11/10/003301よく考えたら、大人になって、社会人になって、エンジニアになって、 おじさんと話すことは多くなったが、女の子と…

soundcloudで再生した曲をリアルタイムにIRCにポストして、極限にウザがられるためのgoogle chrome拡張を作った。

試行錯誤した感じがグイグイとくるコードで、昼に食べたものが逆流しそうな感じが、たまらなく愛しいので、そのままプッシュしました。よろしくお願いします。https://github.com/hisaichi5518/soundcloud-history-googlechrome-extension

zaimは定期的にpush通知を送ってくれるのでそれ使うと捗る。

4sqとの連携で頑張るとか、movesの連携で頑張るとか色々あるけど、 めんどくさいので既存の機能使いましょう。御飯を食べたあとくらいに設定をしておくと食べた後に入れればいいだけなので便利です。 「定期的に通知」は、「24時間起動しないと通知」を1回タ…

#isucon の予選に参加してきた。

http://soh335.hatenablog.com/entry/2013/10/06/230741http://blog.kenjiskywalker.org/blog/2013/10/07/isucon2013/次は遅刻しない。 #isucon— ひさいち (@hisaichi5518) 2013, 10月 6次は漫画読まない #isucon— ひさいち (@hisaichi5518) 2013, 10月 6

endが連続するとき

目が慣れてないからか、endが三つあるだけできついと思ってたけど、こうすればいいんだなって思った。 module Hoge module Fuga end end class Hoge::Fuga::Piyo # ... end

だるいことになった場合の対処方法

だるい場所を全部直せばいい。

実行系メソッドと取得系メソッドの話

今名づけたので、なんか別の名前があるのかもしれない。 実行系メソッド update, delete, insertなどを行うメソッドで、別に返り値期待してないし、みたいなこともある。 $user->eat($okashi); 取得系メソッド 返り値を期待しているメソッド my $friends = $…

$result->to_hashref(...) を作る。

APIを作るときにDBのデータを返したいときが当然ある。 $result->to_hashref;とかするとまるっと返ってきたりすると便利。 でも、それだけだと$result->get_columns;と一緒だったりするので、to_hashref('large')とか出来るようにしておくと良さげ。 $result…

Result, ResultSet, Model たちの使い分け

Service層とかModel層とか時々はてブで話題になりますね。 Result DBのデータをPerlでも扱えるようにしたもので、DBをグリグリ操作するメソッドを書いたりはしない。 columnとか、is_*とか、to_hashrefとかそういうを書く。 $player->nickname; $player->has…