アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

Go Conference 2018 Spring へ登壇しました

Goroutine meets a signal というタイトルで登壇しました。

これは Golet という Perl でいう Proclet を Go に移植した際に閃いたアイディアでした。

親プロセスである Proclet へ SIGTERM, SIGHUP が送信された場合に、Proclet で管理している子プロセスへ SIGTERM を送信するといった挙動を持っていました。SIGTERM は処理を終了させるために用いられますが、プログラムによってはシグナルを受け取った時の挙動を上書きされている場合があるため実質、シグナルの情報を子プロセスへ送信することになると僕個人で解釈してました。

そのため、Go に移植する場合は goroutine で管理するようにし、主プロセスである Golet へシグナルが送られてきた場合、その情報を全ての goroutine へ通知することを目標としました。

そして Golet ではコールバックを指定することが可能なんですが、context.Context は必ず必須であり、それ以外にも golet 専用の Context も引数として渡さなければいけない状況でした。これだとどっちが一番大事な Context なのか分からなくなります。

そのため今回発表したような形をとることで、Context を単一化することに成功し、Go らしくシンプルに記述することが可能になりました。

この手法は本当に時と場合によると思いますので、様々な Go ハッカー達が議論するきっかけになればいいなと思います。

株式会社メルカリへ入社しました

昨日まで無職でしたが、本日より社員になりました。

メルカリは現在、エンジニアとしてベストを尽くせる環境を提供していると思っているので選択しました。優秀な同期も沢山いるので、とてもワクワクしています。

現在の目標

大学生活では自分の作りたいものを積極的に開発してきましたが、今後はオープンソースも含め、誰かの役に立つようなプロダクトを開発していけるといいなと思っています。

とりあえず開発以外でやっていきたいこととして

  • 積極的に新しいことにチャレンジする。
  • 定期的に沖縄へ還元していけるように何か沖縄でもやりたい。
  • 楽しむ!!

なかなか困っています

こちら新生活を支援していただける方へ向けてのリンクです。 お礼に一緒にご飯食べに行けるといいなと思っていますので宜しくお願いします!!

http://amzn.asia/f4GNcgA

来年は支援できる側になりたい...!!!!

頑張っていきますので、これからもどうぞ宜しくお願い致します🙇

Acme::Pointer をリリースしました

metacpan.org

こんな感じの文字列を渡してあげるとデリファレンスしてくれます。

CODE(0x7fd541a84a30)
HASH(0x7fd541a84a30)
ARRAY(0x7fd541a84a30)
SCALAR(0x7fd541a84a30)

なのでリファレンスの文字列さえ保存しておけば、参照先が生きている限り実体へアクセスが可能です。

#!/usr/bin/env perl

use strict;
use warnings;
use feature qw/say/;
use Acme::Pointer;

my $addr;

package Hello {
    my $a = sub { say "Hello"  };
    $addr = "$a";
    say $addr;
};

say "-" x 10;
my $c = deref($addr);
$c->();

if ($addr =~ /CODE\((.*)\)/) {
    my $_c = pointer($1);
    $_c->();
}

Gotanda.pm #16 で 「XS で作るクロージャ」というタイトルで LT しました

gotanda-pm.connpass.com

で LT してきた。

XS を触ったことない人にとっては内容がちんぷんかんぷんだったはずなため、そのカバーをこの記事でできればいいなと思う。

今回作成しようとしたクロージャは次のような、どこかで作成した一つの値をサブルーチン内に保存して返すようなものである。

my $i = 0;
my $c = sub { $i };
続きを読む

YAPC::Okinawa を開催した

すげー開催しちゃったよ...

togetter も作った。(めちゃんこ大変だった)

togetter.com

運営ブログにも詳しく気持ちを書いた

blog.yapcjapan.org

3 月に開催するというのはなかなか波乱だったというのも、引っ越し、卒論、諸々の手続き...をしながらの開催だったので、これ以上忙しいことはこれから滅多にないのでは?とかなっている。

Okinawa.pm のコアメンバーになって 2 年くらい経つけど、Perl コミュニティを運営していた側として開催したいイベントは全てできたんじゃないかなぁと思っている。

さて、もう少しで東京で住むことになるわけだけども、コミュニティ運営をどうしようか考えている。

沖縄と Perl コミュニティを自分から取っちゃうと一体何が残るんだという感じ。

東京には Perl コミュニティが既に幾つかあって、新しく作るならどういう立場にすべきなのか考えるのが難しい。けど、誰かとコード関連の会話をするのも凄く好きなので是非やっていきたい気持ちはある...