Masteries

技術的なことや仕事に関することを書いていきます.

「YAPC::Hiroshima 2024」お疲れ様でした!!!

前回はこちら. papix.hatenablog.com ...というわけで, 「YAPC::Hiroshima 2024」お疲れ様でした. YAPC::Kyoto 2023でちょっと頑張った(つもり)ので, 今回は少し労力を低めにさせてもらって, id:toya さんと id:kobakazu0429 さんと一緒に, 広報班リーダーとい…

私とYAPC::Japanと【「YAPC::Hiroshima 2024 非公式予習会」宣伝記事】

この記事は, 「はてなエンジニア Advent Calendar 2023」の1月14日の記事です*1. qiita.com 昨日は id:kk__777 さんの「Notionのメモをもとに記事を作らせて投稿してみる」でした. qiita.com 唐突に宣伝なのですが, 1月23日に「YAPC::Hiroshima 2024 非公式予習会…

Perlの「後置if」について

この記事は, 「はてなエンジニア Advent Calendar 2023」の10日目の記事です. qiita.com 9日目の記事は, id:cockscomb さんの「SwiftにおけるTyped throwsの現在」でした. cockscomb.hatenablog.com そして「Perl Advent Calendar 2023」の10日目の記事でもありま…

MySQLのDATETIMEをとにかく素早くPerlのDateTimeオブジェクトにしたい

この記事は, Perl Advent Calendar 2023の6日目の記事です. 12月6日の26時くらいに公開されているかもしれませんが気にしないでください. qiita.com 5日目の記事は, @shogo82148 さんの「Amazon Linux 2023ベースのAWS Lambda Perl Runtimeを公開しました」で…

忘備録: List::Util#anyかhashか

Perlを書いている時, 「いずれかと一致するなら...」みたいな条件を書く時に, List::Utilのanyを使うことがある. metacpan.org 例えば, @ids という変数に何かしらのIDの一覧があって, あるIDが$idとして渡ってきた時に, $idが@idsに含まれているかどうか, み…

PerlのJSONとJSON::PPとJSON::XSと

結論 JSON::XSが既にインストールされているなら, 明示的にJSON::XSを使わず, JSONを使ったとしても, あまり速度は変わらない. JSONとJSON::PPとJSON::XS PerlでJSONを扱う時に使えるモジュールの1つがJSONモジュールです. metacpan.org JSONモジュールは, …

忘備録: Smart::Args::TypeTinyのdefaultとoptionalについて

metacpan.org Smart::Args::TypeTinyには, default と optional というパラメータがあります. default default は, 引数が渡らなかった時のデフォルト値を指定するパラメータです. use strict; use warnings; use feature qw(say); use Smart::Args::TypeTin…

Perlの未定義動作100連発

PHPカンファレンス福岡2023に参加して高まってきたので, Perlの未定義動作100連発というエントリを書きます. なおperldocと実際の挙動については, 5.36.0のものを利用しています. その1: スカラコンテキストでsort sort はリストの中身をソートするので, 当…

「吉祥寺.pm 33」でYAPC::Kyotoについて全てお話しました

吉祥寺.pm33【吉祥寺でのオフライン開催!!!】 - connpass 久々の吉祥寺.pmですね. 今回はYAPC::Kyotoを題材として, 勉強会運営の"リアル"みたいな(?)お話をしました. ここ半年くらいは本当にYAPC::Kyoto 2023のことをずーっと考えていたので, こういう勉…

【Q】Tengでsingleを使って1件だけレコードを引くとき, 明示的に `LIMIT` を指定する必要はあるの?

【A】指定しなくても大丈夫です github.com 実装を見ると, single を呼んだらその内部で自動的に LIMIT 1 になるように設定をしてくれます(強制的に上書きする). 逆に言うと, single を呼ぶ時に { limit => 100 } みたいなオプションを渡しても, LIMIT 100み…

忘備録: Smart::Args::TypeTinyの`default`で時間がかかる処理を呼ぶ時はサブルーチンリファレンスで渡した方が理想的

Perlの忘備録というか何というか... まあタイトルにある通りです. 或いはSmart::Args::TypeTinyのIMCOMPATIBLE CHANGES WITH Smart::ArgsのDefault parameter can take coderef as lazy valueを読みましょう. use strict; use warnings; use Smart::Args::Ty…

【PR】湘南.pm やります

YAPC::Kyoto 2023で熱が高まってきた(?)ので, 唐突ですが7月〜8月辺りの休日に湘南.pmをやります. なぜ湘南なのかと言うと, 自分が現在藤沢に住んでいるので湘南エリアで開催すると便利だからです. おそらく藤沢近辺*1で開催することになりそう...? 7月〜8月…

PHPカンファレンス福岡2023に「カンファレンスのつくりかた」というproposalを出しました

fortee.jp ...というわけで, PHPカンファレンスなのに, 何故かYAPC::Kyoto 2023の話でproposalを出しました. 募集要項に「PHPじゃないけどどうしても伝えたい話がある!」と書いてあるので大丈夫なはず(?). proposalにも書いたのですが, YAPC::Kyoto 2023は 「…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

「YAPC::Kyoto 2023」お疲れさまでした!!!

YAPC::Kyoto 2023, お疲れさまでした. yapcjapan.org ここまでのあらすじ 話は遡ること2019年のYAPC::Tokyo 2019. 確か懇親会の終了間際だったと思いますが, 突然(確か id:Songmu さんが)「次は京都」みたいな宣言をぶっこんだのがすべての始まりでした. 会場…

カンファレンスの中の人

この記事は, 「はてなエンジニア Advent Calendar 2022」の21日目の記事です. qiita.com 昨日の記事は id:Windymelt による「Scala記事を書き続けている話」でした. blog.3qe.us 「裾野がプログラミング言語を支えている」, いい言葉だなと思いました. さすがめる…

CPANモジュールの開発リリース(Development release)について

この記事は, Perl Advent Calendar 2022の7日目の記事です*1. qiita.com 昨日は, MacOlinさんの「perlでタイムスタンプを変更したい、Time::Pieceを使って」でした. qiita.com CPANモジュールの開発リリース(Development release)について CPANモジュールを書…

小ネタ: Perlモジュール探訪

Perlで開発しているときに, 「このモジュールについて調べたいな...」と思う時があると思います. 皆さんどうしていますか? metacpan metacpan.org ブラウザからmetacpanでモジュールを検索してドキュメントを見る, というのがまあ鉄板という気がします. ハイラ…

相談の「型」

チームメンバーと1on1をしていた時, チームメンバーとの相談についての話になりました. 例えば, ある機能を実装するとき, A案, B案, C案があって, それぞれメリデメなどがあって, どれにするべきか悩ましい... という時がありますよね. そういう時, (内容な…

デバッグ用のコードが残っているとGitでコミットできないようにする(改)

だいぶ前に, こういったエントリを書きました: papix.hatenablog.com 一方で, こちらのエントリにこういったブクマコメントを頂いていました: デバッグ用のコードが残っているとGitでコミットできないようにする - Masteries文字列リテラルの中とか関係ない…

小ネタ: Test2でテストを書く時に, hashやarrayにundefがあることをU()でテストすると, なんか意図しない感じになることがある

またまたまたまた小ネタです. PerlのテストモジュールであるところのTest2において, U() は undef であることをテストします. is undef, U(); # => ok is 1, U(); # => not ok では, ハッシュや配列にundefがあることをテストしたい時はどうするといいでしょ…

小ネタ: Perlで条件に応じて配列の中身を割り振る時はList::MoreUtils#partが使える

メモです. こういう配列があったとします: my @array = ( { type => 'foo', value => 1 }, { type => 'bar', value => 2 }, { type => 'foo', value => 3 }, ); この時, typeによって@arrayの中身をそれぞれ別の配列に割り振りたい, と思う時があります. # …

小ネタ: Perlのhashとデフォルト値

関数の引数をhashで受けて, 未定義の場合はデフォルト値を設定したい... という場合があるとします. まあだいたい, defined-orを使って次のように書くのではないでしょうか: sub myfunc { my %args = @_; return $args{foo} // 'default'; } myfunc(foo => '…

Class::Accessor::Typed 0.03_02 で Type::Tiny 対応を試しています

papix.hatenablog.com 先日, 0.03を出したClass::Accessor::Typedですが, Type::Tiny対応を試した 0.03_02 をリリースしました. Development releaseなので, cpanm とかでインストールする時はバージョンを指定してインストールするようにしてください: cpan…

Kichijoji.pmで2回くらい話していました

...が, そういえばブログエントリ書いてなかったので, 発表資料を紹介しておきます. Kichijoji.pm #28 Kichijoji.pm #29 特に「Kichijoji.pm #28」の「ワーケーションに関する考察」については, 自分らしい(旅行が趣味なエンジニアらしい)発表になったんじゃない…

小ネタ: Perlのsplitの第3引数

超〜〜〜小ネタです. Perlにはsplitという関数がありまして, 次のように使えます: my @list = split(/,/, "a,b,c"); # @list = ('a', 'b', 'c'); 第1引数に正規表現を, 第2引数に文字列を渡すと, 第2引数の文字列を第1引数の正規表現にマッチした部分で分割…

Class::Accessor::Typed 0.03をリリースしました

Class::Accessor::Typedの0.03をリリースしました. 前回の0.02は2019年のリリースなので約2年ぶりですね... papix.hatenablog.com 今回の0.03では, optional オプションの追加をしました. 次のように使えます: use N; # optional なので, `rw2` は指定しなく…

Class::Accessor::Typedで独自の型を使う

Class::Accessor::LiteやClass::Accessor::Lite::Lazyのように使えて, 型の恩恵を受けられる, Class::Accessor::Typedというモジュールを昔書きました. metacpan.org 詳しくは, 昔Kichijoji.pmで紹介した時に使った資料をまとめたものがあるので, こちらをご…

小ネタ: Perlのメソッド呼び出しをModule::Spy風にモックする

Perlでテストを書いているとき, 例えば外部のAPIを叩くメソッドをモックしたい, という気持ちになることがあります. 選択肢としてはTest::Mock::GuardやModule::Spy, 最近ならTest2::Tools::Mockあたりが選択肢になるでしょうか. metacpan.org metacpan.org …

小ネタ: Gitでコミットメッセージ書いてる最中にコミットを取りやめる

ちなみに vim の終了方法としては :cq というのもあり、これを実行すると vim が終了コード 1 で終了します。git commit をキャンセルする場合に使えます。— mattn (@mattn_jp) 2019年6月26日 だいぶ昔のツイートなのですが, さっき知ったので忘備録的にブロ…