タグ

ブックマーク / bayashi.net (14)

  • Goで標準出力をフィルタしてよしなに色を付けるツール書いた

    タイトルの通り、Goで標準出力をフィルタしてよしなに色を付けるツール書きました。 irir モチベーションは「 go test に色を付けるツールを作った #golang 」と同じです。 ある標準出力に対して、なんらかの文字列を含んでいたらその文字列に色を付けたり、行全体に色を付けたいという要求はよくあることだと思います。今回は、そうした小さな色付けルールをYAMLで記述してフィルタを適用する感じのツールにしました。 READMEにある通りですが、以下の様なログファイルがあったとして、 $ cat example.log 2023/05/19 23:56:54 [info] GET /some/resource 200 0.001 2023/05/19 23:56:55 [warn] GET /some/resource 200 0.001 2023/05/19 23:56:56 [err

    Goで標準出力をフィルタしてよしなに色を付けるツール書いた
  • Perl Navigatorについて

    この記事は、Perl Advent Calendar 2022 の24日目の記事です。昨日は、@tecklさんの「Perlのちょっとしたテキスト処理で生活を豊かにする」でした。 大雪の降っている地域のみなさんは無事でしょうか。ホワイトクリスマスだやったー!とか言ってるレベルじゃない大雪の地域もあるみたいなので油断しないでみんな生きていこうな!という気持ちで私はいます。とはいえ、この記事をのんびり読めているということはまったく無事なのだろうと思いますが、普段雪なんて降らない地域にも降ってるみたいなので、今年も残りあとわずか、みんないろいろあれこれあっただろうけど、無事に楽しくあたたかくハッキーにやりきりましょうよ!やくそくだぞ😉 Perl Navigator さて、私は現在、お仕事ではPerlを書いていませんが、この個人ブログをちょろちょろメンテナンスするためにときどきPerlを書いていま

    Perl Navigatorについて
  • CentOS6のletsencrypt証明書更新自動化がめっちゃ簡単になってた件

  • 今年書いた何か Github Actions

    昨日は mackee_w さんの「GitHub AppsでPithubを使うためのモジュールGitHub::Apps::Authと使った黒魔術の紹介」でした。 この記事は Perl Advent Calendar 2019 の15日目です。15日目ということは、今年もあと半月ということです。つまり、半月後は2020年ということですね! 今年やろうと思っていたことをやらないと、どうなると思いますか? そう、やらないで終わるんです!! 私の中で来年のことを考えた時に、来年の自分は何歳かなと、アドベントカレンダーにエントリーしたときから考えてました。アドベントカレンダーは楽しく、クールで、セクシーにね。今のままではいけないと思います。だからこそ、アドベントカレンダーは今のままではいけないと思っている!! さて、 さて、 今年もいろいろありましたね。今年書いた何か、と言うことで、何か書いてるようで

    今年書いた何か Github Actions
    azumakuniyuki
    azumakuniyuki 2019/12/17
    冬休み(存在すれば)にGithub Actionsへの移行をやりたい
  • いまだに Data::Dumper で消耗しているの?

    Data::Dumper::AutoEncode というモジュールがありまして、主に printデバッグのお供に便利な変数のダンプモジュール君です。 デファクトスタンダードであるところの Data::Dumper でダンプすると「\x{304a}\x{3067}\x{3093}」こんな感じにエスケープされてしまうマルチバイトな文字列を、 Data::Dumper::AutoEncode の eDumper という関数を使うと、自動的にエンコードして普通に読める状態で出力してくれます。 use utf8; use Data::Dumper::AutoEncode; # export `eDumper` and `Dumper` my $foo = +{ bar => 'おでん' }; print Dumper($foo); # { bar => "\x{304a}\x{3067}\x{309

    いまだに Data::Dumper で消耗しているの?
  • DeNAを退職します

    これまで、特にこのブログでは所属する会社名を出してこなかったので、僕が DeNAのエンジニアをやっていたことを知らない人も多いと思いますが、数えてみたらもう丸7年もDeNAにいました。まわりからは長い長いとよく言われましたが、モバイル広告2年、PCゲームプラットフォーム4年(合間にモバイルの仕事もしてた)、最後はマンガアプリ1年半と、プロジェクトはいい感じで移っていました。とにかくどこに行っても大量のトラフィック浴びつつ前に進んでいた感じでした。楽しかったです。 DeNAに入る前、つまり10年か15年くらい前は、まあとにかくWeb大好きで、なんだけど業では映像のお仕事をしていたので Perl 書くのは趣味で、KENT WEBのCGI魔改造したりオリジナルのCGI配布したり、息を吸うようにスクレイピングしたり、MovableTypeいじり倒したりアフィリエイトで一儲けしたり、CPAN Au

    DeNAを退職します
  • WEB+DB PRESS vol.95で「Plack::Middleware再入門」という記事を書きました

    依頼は突然やってきて、Perlも長く書いているとこういう素晴らしい機会に恵まれることがあるのだと感激しながら引き受けたものの、みなさんが「シン・ゴジラ」や「君の名は。」を楽しんでいるころ、私は初の商業誌原稿の執筆にヒィヒィ汗を流していました。 日、2016/10/22 WEB DB PRESS vol.95 発売ですよ!! というわけで、Perl Hackers Hub のコーナーで「Plack::Middleware再入門」というタイトルで書かせて頂きました。Plack/PSGIと外の世界をつなぐ架け橋 Plack::Middleware にフォーカスしております。安定と信頼の Plack/PSGI については、Perl Hackers Hub で過去に2回紹介されており( miyagawaさんによる第1回 と kazeburoさんによる第24回 )、今回で3回目ということもあり、Pl

    WEB+DB PRESS vol.95で「Plack::Middleware再入門」という記事を書きました
  • 俺のワンライナー改め CLI ツール群のステマ

    このエントリーは Perl 5 Advent Calender 2015 の3日目の記事です。 まだワンライナーで消耗してるの? Perl で書くワンライナーが便利というのはもうさんざん語られている気がするし自明だろうて、このたびはコマンドラインインターフェースで便利なツール群をドヤ顔でステマしたいと思います。怠惰ゆえ、もうワンライナー書くのも面倒になったらコマンドにしてしまえこのやろう、というノリですぜ、おとっつあん。 手前みそですが、できる限り便利そうなやつをピックアップするので、ひとつお付き合いください。ペコリ。 swoop まずは Statistics::Swoop をインストールすると付いてくる swoop コマンド。これは、ログのあるカラムの合計、最大、最小、レンジ、平均をさくっと算出してくれるコマンド。 $ cat log_file | swoop -f3 -d, .----

    俺のワンライナー改め CLI ツール群のステマ
    azumakuniyuki
    azumakuniyuki 2015/12/03
    結構知らないのあった
  • Perlでテストがこけて泣きそうなときのTIPS

    Perl 書いてりゃ Test::More でテスト書きまくると思うのですが、Test::More っていうか、まあ別に Test::More だけがそうというわけでもないのですが、テストこけたときのケアが十分じゃないなと思うときがけっこうあります。 開発過程で書いてるコードというのは、いつもいつも確信を持って書いているわけではないわけで、それでなくてもうっかり間違うときもあり、せっかくテスト書いているのに何だかよくわからない理由でこけてパスできなくて時間を浪費してしまったりが日常になってたりしませんか? そういうのを繰り返しているとやがてテスト嫌いになりテスト書かなくなって番コードにデバッグコードが入り乱れ、リファクタもどんどん不可能になって小回り効かないままプロジェクトが失敗して彼女に振られてしまうわけですね。困ります。 note diag explain Test::More には

    Perlでテストがこけて泣きそうなときのTIPS
  • Perl のベンチマークを気軽にする Benchmarks 書いた

    Perl でベンチマークとるなら Benchmark モジュールが鉄板。僕も Benchmark モジュールを使ったベンチ用のテンプレートを用意していて、必要になったらそれを書き換えてベンチをとるのだけど、ベンチ自体はたまにしか書かないから、cmpthese とか timethese とかごっちゃに記憶してたりしてそらで書けなくて困る。ほんとはもっと思いついた時にぱっとワンライナーで書けるくらいに気楽にならないかなとずっと思ってた。 そういうわけで、Perl のベンチをもっと気軽にするモジュールを書いた。 Benchmarks Benchmarks という名前がだいぶ攻めてるが、最初 Benchmark::Simple とかにしようかと思ったけど、あれ、Benchmark::Lite だったっけ?、みたいなのが嫌だったので、s つけるだけにした。 ルーチン同士を比較するベンチをとっても簡単

    Perl のベンチマークを気軽にする Benchmarks 書いた
  • YAPC::Asia 2013 行ってきた

    ラーメンマップ スライド: 日吉ラーメンマップ なんと今年は自分の住んでる日吉で開催されるということで、前夜祭で「日吉ラーメンマップ」をシェアさせていただきました。みなさん、ラーメン楽しんで頂けましたか!? ちなみに、LT ではらすた推しでしたが、自分のベスト 3 は、銀家、らすた、ハマトラです。 26 modules スライド: 細かすぎて伝わらないモジュール選手権 つづいて、編初日の LT で「細かすぎて伝わらないモジュール選手権」を発表させていただきました。 去年の YAPC 以降に書いた 26 のモジュールを 5 分間の中で紹介しまくるという趣旨でしたが、残念ながらプレゼンの HTML が想定外に途中で壊れていて失敗しました。。。そもそも完走する予定はなかったのですが、時間に迫られるとろくなことがありませんね! まあとにかく、書いてみればいいんですよ、というのが伝えたかったことで

    YAPC::Asia 2013 行ってきた
  • Perl を学ぶとき、真っ先に覚えたいモジュール

    春ですね! 新年度ですね! Perl 書くことになってしまいましたか! 奇遇ですね! sigil が意味わかりませんか! 特殊変数がググれませんか! リファレンスが謎ですか! 1; の存在が不明ですか! オブジェクト指向が難しいですか! むしろオブジェクトじゃないコードの方がゆるくて大変ですか! XS が読めませんか! ええ、XS は僕もあんまり読めません>< さて、この春から Perl を学ぶことになった人も多いかと思いますが、なにはなくともこれまず覚えたら後が楽になるんじゃないかというモジュールを、いくつか紹介したいと思います! (まあ、自分の初期を思い返すと、この辺はやく知っておきたかったなあというリストです) Data::Dumper, YAML 変数(リファレンス)やオブジェクト(blessされたリファレンス)をダンプする用途では、Data::Dumper が一番メジャーのような

    Perl を学ぶとき、真っ先に覚えたいモジュール
  • Unicode::UTF8 がガチ爆速すぎる

    あんまり深読みしてないんだけど、Unicode::UTF8 が超速い。 おなじみ Encode との比較で、PODには 600% 速いって書いてあるけど、手元で試す感じだとだいたい 350~650% 速い。つまり、マジ速い。 Benchmark: timing 350000 iterations of Encode, Unicode::UTF8... Encode: 5 wallclock secs ( 4.41 usr + 0.00 sys = 4.41 CPU) @ 79365.08/s (n=350000) Unicode::UTF8: 0 wallclock secs ( 0.72 usr + 0.00 sys = 0.72 CPU) @ 486111.11/s (n=350000) Rate Encode Unicode::UTF8 Encode 79365/s -- -84%

    Unicode::UTF8 がガチ爆速すぎる
    azumakuniyuki
    azumakuniyuki 2013/03/04
    手元のMacで試したけど確かに速かった、370%前後で。
  • 生のハッシュリファレンスを return したら遅い

    ハッシュリファレンスは畳み込み的に定数扱いじゃなかったのね、ってのに気づいて驚いた(というのが当に遅い原因か確定させて無いけど)(【追記2】参照)。 #!/usr/bin/perl use strict; use warnings; use Benchmark qw/timethese cmpthese/; my $HASH = { foo => 123, bar => 456, baz => 789, }; my $result = timethese (750_000, { 'VAL' => '&logic1;', 'RAW' => '&logic2;', }); cmpthese $result; sub logic1 { _logic1()->{foo}; } sub _logic1 { return $HASH; } sub logic2 { _logic2()->{foo};

    生のハッシュリファレンスを return したら遅い
  • 1