pockestrap

Programmer's memo

activerecord-originator をリリースしました

こんにちは。 id:Pocke です。 今日は activerecord-originator という gem を作ったので紹介します。 github.com なにこれ Active Record が発行するSQLの各部分に、それがどこで作られたものかをコメントとして入れ込む gem です。 理解するには実例を見る…

オンデマンドパルワールド

こんにちは。 id:Pocke です。最近はパルワールドというゲームをやっています。 パルワールドでは個人がサーバーを建てることができ、私も例に漏れず自宅のあまっているPCにサーバーを建てています。 ですがサーバーを管理している上でいくつか不便なことが…

graphql-coverage をリリースした

こんにちは。 id:Pocke です。 graphql-coverage という gem をリリースしました。 github.com なにこれ GraphQL-Ruby を使っているときに、テストがすべてのフィールドを網羅して呼んでいることを検査するための gem です。 モチベーション 私は GraphQL-Ru…

Kaigi on Rails 2023 で、Active Record Query Quiz というタイトルで発表しました

スライド speakerdeck.com ベンチマークなどをおいたGitHub Repository。ベンチマークを取る上では再現できることが重要なので、GitHubリポジトリとして公開した。コードを残しておくと再利用もしやすくて便利。 github.com スライド中で紹介したラーメン屋…

北長瀬という街、あるいは私の好きなラーメンについて

TL;DR 博多とんこつばり 中仙道 本店 に行ってください 麺酒一照庵 晴天櫓 にも行きましょう 引っ越しました。 以下本文。 2020 年の 10 月から 3 年弱、岡山市の北長瀬に住んでいました1。 今月 2023 年 7 月末に北長瀬から引っ越しをしてしまったので、北…

数クリックでSteepを試せる環境を作った

こんにちは。pockeです。今回は、GitHub Codespacesを利用して数クリックでSteepを試せる環境を作ったので紹介します。 使い方 pocke/steep-codespacesにアクセスする。 このリポジトリをGitHub Codespacesで開く。 Steepが有効となったVS Codeが起動する。 …

RubyKaigi 2023 Let's write RBS! 予習記事

こんにちは。ぽっけです。 RubyKaigi 2023 で RBS に関するトークをします。この記事では、そのトークをより楽しむために予習しておくと良い内容をかんたんに紹介します。 rubykaigi.org トークの内容 このトークでは、RBSを使ったRubyアプリケーションの開…

正規表現でかんたんにCopを書けるRuboCop拡張 rubocop-grep をリリースしました

こんにちは。正規表現でかんたんにCopを書けるRuboCop拡張を作ってみたので紹介します。 github.com 使い方 まず、ほかのRuboCop拡張と同様にgemをインストールし、.rubocop.ymlのrequireにこのgemを指定してください。 この拡張は設定をしないと何も動きま…

Rubyの外部コマンド実行入門について発表しました

福岡Rubyist会議03で、「外部コマンド実行入門」というタイトルで発表をしました。 この記事では、登壇の背景や今後について書きたいと思います。 (福岡Rubyist会議に登壇しました(します) - pockestrap という記事で「この記事は登壇後に編集し、登壇報告記…

福岡Rubyist会議に登壇しました(します)

この記事は福岡Rubyist会議の登壇資料です。ひとまず資料の公開のために記事を公開します。 この記事は登壇後に編集し、登壇報告記事になります。(追記: と言っていたのですが、新しく記事を書くことにして公開しました。 Rubyの外部コマンド実行入門につい…

福岡Rubyist会議03 Proposal: ⁠外部コマンド実行入門

福岡Rubyist会議03に応募したプロポーザルです。このプロポーザルは採択されました。 タイトル トークのタイトルを 30 文字以内で書いてください。これは公式サイトに記載されます。 ⁠外部コマンド実行入門 トーク概要(100文字以内) トークの概要を 100 文字…

プラーク付着率を50%近く改善した話

こんにちは。ぽっけです。 この記事は マネーフォワード関西開発拠点 Advent Calendar 2022 の20日目の記事です。前日はmoemi kobayashiさんで体験型の経理部勉強会をやってみたでした。この勉強会は私も参加して、とても良い、そしてとても疲れる勉強会でし…

2021年に買ってよかったもの

今年買ってよかったものです。 ヘアクリップ minne.com ローズピンクを選びました。 この色めっちゃかわいい!と一目惚れして買いました。実物も期待通りの色で、とても気に入っています。 サンドピクチャー オーストリア製 KB collection サンドピクチャー …

ライン入出力を使ってスマホでピアノ演奏動画を撮るまで

今年の3月にピアノを習い始めました。 自分の成長の過程を残しておきたくて時々録音をしていたのですが、知り合いがピアノの練習動画をインスタにアップロードしているのを見て、自分も動画を撮りたくなりました。 動画を撮るまでに色々やることがあり、少し…

岡山で暮らす

adventar.org この記事は地方在住Advent Calendar 25日目の記事です。 東京都目黒区から岡山に引っ越してきて1年ほど経ちました。 1年間住んでみて分かったことを記事にしようと思います。 Advent Calendarと関係なくもともと記事を書こうと思っていたのです…

近況 2021

おはようございます。ぽっけです。2021年12月21日目の、朝…じゃないな、夜です。 この記事はRubyist近況Advent Calendar 2021 21日目の記事です。 20日目は id:Sixeight さんの近況でした。Ruby Prizeのお祝いありがとうございます! 私はキーボードはずっと…

Kaigi on Rails 2021 で登壇しました

先日Kaigi on Rails 2021で、Cache on Railsというテーマで登壇しました。 参加者としての感想は雑に日記に書きましたので、この記事では登壇者としての感想を書きます。 各種資料 スライド スピーカーノートを開くと(ほぼ完全な)トークスクリプトもついてい…

RubyKaigi Takeout 2021 に登壇した

RubyKaigi Takeout 2021 に登壇しました。 rubykaigi.org スライドはこちら。 docs.google.com 今回は、Ruby 3.1に向けてRBSはどのような機能追加を予定しているのか、という話をしました。私が最近開発しているrbs collectionコマンドを中心に据えて、souta…

エアロバイクを買った

漫画を読みながら運動できる夢のマシーン。 運動不足を感じていて、しかし引きこもりなので漫画を読んでいる時間に運動したいなと思って買った。 ティゴラ(TIGORA) フィットネスバイク TR FB003-XB BK ブラック 静音 マグネット式 折りたたみティゴラ(TIGORA…

Rails 7で導入される invert_where メソッドが危険そうだったので調べた

この記事は現時点(2021-04-28)のrails/railsのmainブランチの最新のコミットでテストしています。 TL;DR invert_whereはすべてのwhereをinvertする 使い方によっては意図しない条件をinvertして危険 invert_whereとは invert_whereは、Rails 7でActiveRecord…

Rubyで数値を 123_456_789 のように表示する

irbで3桁区切りで _ を入れて数値を表示するようにしてみた pic.twitter.com/CrPxSIiaqE— Pocke(ぽっけ) (@p_ck_) 2021年4月9日 twitter.com デバッグなどをしていて、数値が区切り無しで出力されると読みづらいため、_をはさんでみた。 Rubyでは数値リテラ…

Ruby コミッターになりました

先日mameさんとsoutaroさんに推薦をいただいて、Rubyのコミッターになりました。 やっていること Ruby 3の新機能である静的型解析のためのRBSを、前述のmameさんsoutaroさんに助けられながら担当しています。 自分がメインで見ているものには、Rubyのコード…

読書 2021

最近の自分の読書スタイルについてまとめてみる。 基本的にKindleで本を読んでいる。物理本は読むことが少ないので、例外ケースという感じ。この記事で書くほどのことではない。 基本的に読書をする状況ごとに別の本を読んでいる。また、本ごとにつかうデバ…

RBSではRubyと定数探索がちょっとだけ違う

ほとんど一緒なので気にすることはあまりないとは思います。 タイトル通り、RBSとRubyでは定数探索がちょっとだけ違います。 具体的にはスーパークラスやinclude元のモジュールで定義された定数がRBSでは参照できません。 Rubyの場合 まずはRubyの場合の挙動…

RBS基礎文法最速マスター

RBSはRuby 3に組み込まれた、Rubyの型情報を記述する言語です。 この記事ではRBSの文法を駆け足で紹介します。 細かい話は飛ばしますが、この記事を読めば大体のケースでRBSを読み書きできるようになると思います。 事前準備 インストール まずは文法の前に…

今年はDuolingoをやりはじめた。

今年始めたDuolingoが続いているので、年末だし感想をまとめてみる。 idはpocke11です。 状態 一回ダイアモンドリーグまで行った後、ここ1ヶ月ぐらいは黒曜石リーグに落ち着いている 今が165 days streakで、これは初日からずっと続いている(はず) 広告出る…

2020年に作ったGitHubリポジトリ

年末なので、今年GitHubに作ったリポジトリを振り返ってみます。 このリストは次の記事のコードを使って生成しました。(記事は去年のものだけど、今年実行しても動くはず) pocke.hatenablog.com 今年は15個のリポジトリを作りました。去年の31個より減ってる…

RBSではmoduleのinclude先としてinclude先のクラスを指定してはいけない

タイトルを読んでも何を言っているのかわからないと思いますが、モジュールをincludeしようとするとRBS::RecursiveAncestorErrorが発生することがあります。 とくにObjectクラスにincludeするようなケースでは注意が必要です。 この記事ではrbs gem v1.0.0で…

RBS Railsを使ってRailsアプリケーションにSteepを導入する

RBS Railsを使ってRailsアプリケーションにSteepを導入するまでの解説します。 ただしこの「導入できる」というのは、解析が完走するという意味です。 型エラーを全てつぶすことや、Steepを実際の開発フローに乗っけることは私もまだできていないため、この…

OpenStructに信頼できない値を渡してはいけない

新しいOpenStructに信頼できない値を渡すと、GCされないシンボルが作成されメモリが使いつくされる可能性があります。 対象のバージョン 対象となるostruct gemのバージョンは、0.3.0かそれ以上です。 Ruby 3.0にはostructのバージョン0.3.1が添付されている…