アルパカ三銃士

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

YAPC::Tokyo 2019 へボランティアスタッフとして参加しました

tl;dr 時代を支えてきた Perl ハッカーの想いを聴けたので、それを引き継いでいきたいと同時にめっちゃ Perl 書きたくなりました。 前夜祭 仕事の都合で少し遅れて参加しました。全体的に LT が凄く面白かったので全然飽きませんでした。 ただ個人的に交流す…

Perl で簡単に n 文字ずつ区切る

Perl である文字列を n 文字ずつ区切って配列にする方法。 例として "abcdefghi" が与えられた時に 3 文字ずつで区切りたい場合は "abc", "def", "ghi" となることが期待される。 これを簡単に行う方法を思いついたので以下に記述。 sub sep { $_[0] =~ /.{$…

Perl で Protobuf を扱うために Google::ProtocolBuffers::Dynamic を使ってみる

こちらは Perl Advent Calendar 2018 の 25 日目です。 gRPC を Perl でやってみようと思ったのですがインターネット上に Perl で Protobuf を扱うような文献がなかったので、まずはここから書かないとだめでしょう!ということで内容を変更してお届けします…

WEB+DB PRESS Vol.108 の Perl Hackers Hub に Inline::C で始める C 拡張入門に関する記事を寄稿しました!!

僕自身 C 言語を使って Perl を拡張することが好きだということもあって、今まで何回か XS を使ったモジュールの公開や、それらについての内容で登壇もしました。 (今までリリースしてきたモジュール一覧) Kei Kamikawa (CODEHEX) - metacpan.org 寄稿内容…

モニタリングするためにどんなデータを集めるべきか

Datadog のブログで公開されている "Monitoring 101: Collecting the right data" を読んだ。本記事は紹介した Datadog のブログ記事を独自に簡略化したものである。もっと詳しく知りたい場合は Datadog の記事を読むと良い。 記事では次の項目を実現するた…

XS で SV がスカラバリューであるか判定する

たまたま Perl のモジュールを漁っていると汎用性が高そうな関数を見つけたためメモ。 #ifndef isGV_with_GP #define isGV_with_GP(x) isGV(x) #endif STATIC bool is_scalar_type(SV *sv) { return !( SvTYPE(sv) == SVt_PVAV || SvTYPE(sv) == SVt_PVHV ||…

y8 in 城へ参加してきました

岡山城でした。カンファレンス会場は不明門*1で、懇親会 + LT が岡山城でした! connpass.com 岡山 今回は東京 -> 岡山の飛行機で行きました。 びっくりしたのが岡山の空港名が「岡山桃太郎空港」であったことと空港の周辺が森であったこと!!! 着いて最初の …

Roppongi.pm #1 を開催しました

Roppongi.pm #1 を @magnolia_k_ さんと共同で開催したことを報告します。 roppongipm.connpass.com 色々やるべきタスクが多すぎて報告が遅くなりました。 詳しくは kichijojipm のブログを読んでもらえると、どれくらい YAPC::Tokyo だったのか分かるかもし…

Okinawa.pm #7 に参加してきました

Okinawa.pm #7 へ参加してきました。 okinawapm.connpass.com そしていつもの資料 今日の資料ですhttps://t.co/PXZYMcSvxF #okinawapm— へっくす? (@codehex) 2018年9月23日 ふるさとコミュニティへ帰還した感じがしましたが、沖縄の皆さん忙しいのかいつも…

GitHub で新しく作ったブランチへ push すると Pull Request のリンクが表示される

GitHub の公式ブログにも出てる。 blog.github.com 実際に local でブランチ切って push するとこんな感じ ❯❯❯ git push origin $(git b) Counting objects: 5, done. Delta compression using up to 8 threads. Compressing objects: 100% (5/5), done. Wri…

builderscon 2018 に参加してきました

builderscon 2018 に参加してきました。 個人的に今年は Microservices と IoT の話が多かったんじゃないかなぁと思いました。僕は Microservices にハマっているので主に Envoy や Estio, Netflix のキャッシュ事情などの話を聞いていました。 聞いてて中で…

MySQL の Innodb のロックについて

いろいろ分からなかったので同じ DB に複数セッションで接続をして試してみた。 この時参考にしていたページは MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.2.8 InnoDB のさまざまな SQL ステートメントで設定されたロック

Perl の API を扱うときに便利そうな場所一覧

随時更新予定です。 Perl-guts 一番最初に読むべきドキュメント。pod に書かれていて色んなところで読むことができるが、個人的に GitHub 上で読むのが好き github.com Compiled code Perl のコンパイルについての記述がある。もし使ってる Perl が -DDEBUGG…

Go + gRPC でメタ情報も送れるファイルアップローダーを書いた

今回は Go + gRPC でファイルアップローダーを書いたので紹介します。しかも、ファイルのアップロードだけではなくメタデータも同時に送れるように作成しました。 イメージ 今回作成するにあたって、次のようなイメージで作成しました。 前提は stream 通信…

shibuya.pm テクニカルトーク #18 に参加してきました

参加しました。 shibuyapm.connpass.com ついでに XS 入門した時を振り替えつつ LT をしました。 実は Package::Prototype の中身について LT をしようと思ってましたが、会場の雰囲気を見てこのスライドじゃないなーと思い急遽作り変えたのです。一応貼って…

mercari.go #1 で「もう一度テストパターンを整理しよう」というタイトルで登壇しました

mercari.connpass.com mercari.go #1 で Web アプリケーションにおけるテスト実装パターンについて話しました。

Hackers-Champloo 2018 が最高でした

Hackers-Champloo 2018 に参加してきました。 hackers-champloo.org めちゃんこ最高でした。

Hokkaido.pm #14 に参加してきました。

とても行きたかったので参加してきました! hokkaidopm.connpass.com 北海道自体が最高すぎる... ついでに Perl で作る極小機能しか持たないシェルの作り方について登壇してきました。 交通費、宿泊費は株式会社メルカリに出してもらったので感謝しています。…

Go で sqlx 拡張のトランザクションマネージャを書いた

sqlx-transactionmanager github.com これは Perl でいう @nekokak さん作の DBIx-TransactionManager をベースに作ったもの。今担当している会社のプロジェクト内で github.com/jmoiron/sqlx を使っており、それの transaction manager があるといいよねー…

作った bash スクリプトを誰かと共有したい時に気をつけたいこと

以前同期と bash でパイプライン cd を使えると便利だよねーという話から次のような override cd の関数を考えた。 function cd() { if [ -n "$1" ]; then arg=`cat` builtin cd "$arg" fi } こうすると echo $HOME | cd とかで移動できるが、これを bashrc …

GoCon に参加して本当に良かった話

今回 CFP を提出して選ばれ、念願だった GoCon へ参加することができた。 そして、本当に良い体験をしたため忘れないうちに記録する。 この記事を読んでて GoCon に参加しようか迷っている人がいれば勇気を出して是非参加して欲しいと思っている。 こういう…

Go Conference 2018 Spring へ登壇しました

Goroutine meets a signal というタイトルで登壇しました。 これは Golet という Perl でいう Proclet を Go に移植した際に閃いたアイディアでした。 親プロセスである Proclet へ SIGTERM, SIGHUP が送信された場合に、Proclet で管理している子プロセスへ…

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

今日から無職です。決してエイプリルフールなどではありませんので宜しくお願いします。— 沖縄のヒートシンカー (@codehex) 2018年4月1日 昨日まで無職でしたが、本日より社員になりました。 メルカリは現在、エンジニアとしてベストを尽くせる環境を提供し…

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

metacpan.org こんな感じの文字列を渡してあげるとデリファレンスしてくれます。 CODE(0x7fd541a84a30) HASH(0x7fd541a84a30) ARRAY(0x7fd541a84a30) SCALAR(0x7fd541a84a30) なのでリファレンスの文字列さえ保存しておけば、参照先が生きている限り実体へア…

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

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

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

gotanda-pm.connpass.com で LT してきた。 XS を触ったことない人にとっては内容がちんぷんかんぷんだったはずなため、そのカバーをこの記事でできればいいなと思う。 今回作成しようとしたクロージャは次のような、どこかで作成した一つの値をサブルーチン…

Package::Prototype をリリースした

Package::Prototype というモジュールを開発した。 metacpan.org

YAPC::Okinawa を開催した

すげー開催しちゃったよ... togetter も作った。(めちゃんこ大変だった) togetter.com 運営ブログにも詳しく気持ちを書いた blog.yapcjapan.org 3 月に開催するというのはなかなか波乱だったというのも、引っ越し、卒論、諸々の手続き...をしながらの開催…

大学生活がそろそろ終わりを迎える

2/23 を最後に、大学生活がほぼ終わった。 端的に言うと、嫌なこともあったけど全体を通して最高だったと思う。 そこで、これまでの大学生活を簡単に振り返ってみようと思う。 (文章は自分で理解できる程度に書いたため、かなり雑)

Perl で Compiler::CodeGenerator::LLVM を用いて WebAssembly を生成する LT をしました

卒研発表で LT をしました。そのスライドです。