YAPC::Hiroshimaで登壇してきました

ということでYAPC::Hiroshimaで登壇してきました。 speakerdeck.com 内容としてはRakulangの入門とおもしろRubyVM実装でした。いかがでしたか? 今回RubyVMは文字列をパースしようとしてたんですが、これは偉大な先人のめもりーさんのアプローチと意図的に違…

mise(rtx)を対話的シェル以外で使うなら大人しくshimsにPATH通した方がいい

asdfコンパチのバージョン管理ツールrtxがmiseにリネームされていた - Acme::AnaTofuZ->new;に続いてmise(rtx)の小ネタ。 miseのセットアップではeval "$(~/.local/bin/mise activate zsh)"のようなものを.zshrcに書くだけで済むのが基本形になっている。 自…

asdfコンパチのバージョン管理ツールrtxがmiseにリネームされていた

TL;DR asdf互換のRust製のバージョン管理ツールのrtxがmiseにリネームされてるよ brewもrtxではもう入らなくなっている(miseが入る) すでにrtxをbrewで入れていた場合はbrew upgrade時にmiseが自動でインストールされ、rtxが消される rtxにエリアスが貼られ…

ハッカーズチャンプルー2023に登壇してきました #hcmpl23

先日の2023/10/6 - 2023/10/7に卒業以来3年ぶりに沖縄に帰ってハッカーズチャンプルー 2023に参加してきました。 hackers-champloo.org 地味にその前週にOkinawa.pm(という名の飲み会)のために沖縄に行っていたので、なんと2週連続で沖縄に行ってました。 と…

推しのVTuberの3分タイマーをReactで作った

これ anatofuz.net 背景 最近(ここ数ヶ月)、自分としては珍しくVTuberのファンをやっている。 珍しくと書いたのは自分は別に今までアイドルファンとかにはなったことがなく、いくつかのVTuberも知っているもののYouTubeのライブを見るとかはしてなかったから…

golangのenumは型が違うと違うものとして扱われる

タイトルの通りです。 以下のようにint型のFooTypeとBarTypeを宣言して、それぞれ60をenumで持つ値をチェックしてみます package main import "fmt" type FooType int type BarType int const ( Hoge FooType = 60 Nyan FooType = 61 Baz BarType = 60 ) var…

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

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

YAPC::Kyotoの思い出 #yapcjapan

こんにちは。そろそろ京都に引っ越して3年のid:anatofuzです。 先日のYAPC::Kyotoではスタッフをしていました yapcjapan.org コアスタッフではあるものの、昨年末から今年にかけて引っ越しがあったり、本業の仕事もなかなか大変で平日は仕事をしてそれ以外の…

PerlにおけるGraphQLライブラリのまとめ

リッチなフロントエンドを開発しているとGraphQLを使いたくなるときがあり、さらにそのバックエンドをPerlで実装したくなるときもあるでしょう。 このエントリではPerlでGraphQL開発をしたい時に使える2023/02/24現在のPerlのGraphQL周りのライブラリ事情に…

Perlでスマートに配列からランダムで特定個数の値を取得する

TL;DR use List::Util qw(sample); my @array = (1..100); # 3個ランダムでとりだす my @random_pickup = sample 3, @array; 人間生きていると配列の中身からランダムにn個取得したいときがあります。Perl書いているときもありますね。 よくある方法は次のよ…

2022年、CPAN(Perlの)モジュールのメンテナを引き継ぐ活動を始めた件

これははてなエンジニアアドベントカレンダー2022 42日目の記事です。 昨日は id:k-murakami0609 さんの 過去に所属してたチームに転生したら導入したいもの でした。 はてなのノベルチームで日常的に使っている便利グッズ最高ですね!! みなさんもノベルチー…

zshでPATHが壊れないようにPATHに新しいディレクトリを通す

zsh

TL;DR 特に順番は気にしないとき path+=('/hoo/bar/baz'); 最初にいれたいとき path=('/hoo/bar/baz' $path) PATH通そうとして壊れるヤツ UNIXを使っている上で避けて通れないのが環境変数$PATHでしょう。 :区切りにディレクトリを列挙して、列挙されている…

git.ioは非推奨(read only)になってしまったので注意する必要がありそう

表題が全てシリーズです。(シリーズとは) 完全にノーマークだったのですが、GitHubが提供していた短縮URLサービスのgit.ioが4月27日を持ってread onlyに移行しています。 2022-04-27 Update: While the git.io url redirection service is read-only and use…

5.32以降のdocker-perlでのcpanmは`https://www.cpan.org`に繋ぎに行くようになります

2022/06/13 追記 一旦この修正はrevertされたので、現在はhttpsで繋ぎにいかなくなっています 2022/06/03 23:46追記 skajiさんの指摘でPERL_CPANM_OPTを指定した状態だと、cpanmの一部の挙動に制限がかかることがPRに書かれました。 この状態だとmetacpanやc…

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

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

windowsファイル転送バトル

実家に帰省するなどすると色々あり、例えばwindows8自体のPC(i3, メモリ4GB)を無理やりwindows10にしたかろうじて動いているPCからデータを別のwindowsPCに移動させるなどのミッションが生じる。 ここで外付けHDDやUSBメモリを使わないことを考えると、windo…

いい感じにuseするのを助けてくれるApp::perlimportsのご紹介

これはPerlアドベントカレンダー2021の12日目の記事です。 昨日はshogo82148さんで、Perl 5.35.5 の iterating over multiple values at a time を先取りでした。 今回はPerlでもいい感じのモジュールのImportをしてくれるApp::perlimportsの紹介です。 App:…

ラズパイにgolangで書かれているdocker composeをinstallする

多分令和最新版。 linuxでdocker composeを使いたい場合、macOSやwindowsのDocker for xxx系とは違い、docker composeはバンドルされてないので、自分でインストールする必要があった。 特にラズパイではdocker-compose時代(Pythonスクリプト)の場合はpipで…

入社してから書いていた分報の行数を眺めてみる

この記事ははてなエンジニア Advent Calendar 2021 の4日目の記事です。 昨日は同期のid:gurriumくんでした。MOD Pythonで色々できるんだ...。僕も趣味で好きなゲームに色々コード書いて楽しんでますが、それは社のアドベントカレンダーには書けないゲームな…

調子が悪いときの傾向と対策

最近なんか調子悪かったんですがようやく回復してきたので自覚している調子の悪さについて書いておこう。。。 症状 口数が減る ツイート数が減る 分報を書かなくなる 頭の中は色々考えているがアウトプットする気力が減っている アウトプットに対してネガテ…

TypeScriptで関数合成をする関数を書いてみた

関数型プログラミングといえば関数合成みたいなところありますよね。Haskellだと.でagdaだとoだった気がする。 最近やっているTypeScriptで関数合成をやってみました。 以下はググって出てきたこのサイトを参考にしています。 minaluke.medium.com まず例題…

ApolloServer/Clientのフルスタックチュートリアルやった

最近はGraphQLの時代!!!!! ということでApolloGraphQLのフルスタックチュートリアルをやりました。 www.apollographql.com 構造自体は1-4まではApolloServer側の話で、6-9がApolloClient側の話。 ServerからやっているとGraphQLサーバーの実装から出来てお得…

dein vimでプラグインをupgradeする

vim

何かしらのbrewの更新でしくったのか。vimを起動しようとするとfugitive.vimがエラーするようになった。 /Users/anatofuz/.cache/dein/.cache/.vimrc/.dein/plugin/fugitive.vim の処理中にエラーが検出されました: 行 471: E1208: -complete used without -…

PerlのXSをlldbでデバッグする

興味が湧いたのでPerlのC拡張であるXS言語で書かれているList::Utilを読んでいるのだけど、C言語チックなものを読むときはやはりデバッガが使いたい。 XSも結局C言語なのでgdb/lldbでデバッグできないかなと思ってググったところ、できそうなエントリを見つ…

JSのPromiseとJQueryPromiseを雰囲気で理解した

雰囲気で理解したのでメモです。 JSの世界だとPromiseがあって、基本的に失敗/成功で処理を切り分けていく事ができる。 よく使われる方法だと、非同期処理を同期的に使いたいときに使われる。 例えばAというエンドポイントにアクセスした後に取得した情報で…

perlのmapは2引数渡せる

というわけで驚きの事実です。この2行は同じhashrefを返します。 my $hoge = [map { id => $_, piyo => "bar" }, @hoge]; my $hoge = [map { {id => $_, piyo => "bar"} } @hoge]; これはmapの後ろの{はmapの開始地点の意味と、hashrefのコンストラクタとし…

M1 macにGoogle日本語入力入れた

mac

最近M1 mac使っていて、IMEもmacOS標準の日本語入力を使っている。*1 標準搭載されているだけあって別に問題はないのだけれど、個人的に顔文字をIMEで出力したい。 例えば「ぶわっ」で変換したら「(`;ω;´)」が出てほしい。 辞書登録する手もあるけれど、…

プログラミング言語Raku(旧:Perl6)のオンリーカンファレンスが開催されるらしい

インターネット見ていたら発見してしまったのですが、ついにプログラミング言語Raku(旧 Perl6)のオンリーカンファレンスが開催されるようです。 conf.raku.org 今までのRakuはPerlのカンファレンスであるYAPCやPerlConでPerl5とセットで話される機会がほとん…

w3schoolsのjQueryの練習問題解いた

jQuery全然知らないのでちょっと触ってみようと思っていた。 webサイトエイヤで構築するのも良さそうだったけど、軽い練習問題みたいなのをとりあえずガンガン進めてみたかったので、適当にググって出てきたサイトの問題を解いた w3schoolsのチュートリアル…

git commitしたら別のブランチに自動でcherry-pickするPerlスクリプトかいた

今は開発環境でM1 macを使っているのだけれど、色々あってプルリクを送りたいブランチと自分の手元のブランチが異なっているケースがある。ようはM1専用のcommitを積んでいるが、これをプルリクに含めたくないケース。 最近はgit慣れてないのもあって、commi…