GoCon に参加して本当に良かった話
今回 CFP を提出して選ばれ、念願だった GoCon へ参加することができた。
そして、本当に良い体験をしたため忘れないうちに記録する。
この記事を読んでて GoCon に参加しようか迷っている人がいれば勇気を出して是非参加して欲しいと思っている。
こういう自分の好きな言語やサービスのコミュニティが開催する大きなイベントは、みんな自分と同じ共通の趣味を持っている人達だから、絶対に楽しい会話ができるため、沢山の人に話しかけてみるといいと思った。
なお登壇した内容の記事は以下のリンクで。
続きを読む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 ハッカー達が議論するきっかけになればいいなと思います。
株式会社メルカリへ入社しました
今日から無職です。決してエイプリルフールなどではありませんので宜しくお願いします。
— 沖縄のヒートシンカー (@codehex) 2018年4月1日
昨日まで無職でしたが、本日より社員になりました。
メルカリは現在、エンジニアとしてベストを尽くせる環境を提供していると思っているので選択しました。優秀な同期も沢山いるので、とてもワクワクしています。
現在の目標
大学生活では自分の作りたいものを積極的に開発してきましたが、今後はオープンソースも含め、誰かの役に立つようなプロダクトを開発していけるといいなと思っています。
とりあえず開発以外でやっていきたいこととして
- 積極的に新しいことにチャレンジする。
- 定期的に沖縄へ還元していけるように何か沖縄でもやりたい。
- 楽しむ!!
なかなか困っています
【緩募】新卒が移住して最初の給与を得るまでに大金を使わなければいけない現象名
— 沖縄のヒートシンカー (@codehex) 2018年3月31日
こちら新生活を支援していただける方へ向けてのリンクです。 お礼に一緒にご飯食べに行けるといいなと思っていますので宜しくお願いします!!
来年は支援できる側になりたい...!!!!
頑張っていきますので、これからもどうぞ宜しくお願い致します🙇
Acme::Pointer をリリースしました
こんな感じの文字列を渡してあげるとデリファレンスしてくれます。
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->(); }