Ruby

2024年1月の振り返り

日々の生活 最近、節約をしたいということでトクバイというアプリを使いだした。 tokubai.co.jp 近所のスーパーのチラシとかがスマホから確認できるので非常に便利。 あと今日のレシピとして献立の例とかも出てくるのも地味に嬉しい。 最近はトクバイ経由で…

(WIP)「リテラルオブジェクトをRubyのオブジェクトから卒業させる」をやってみた Part 2

はじめに この記事は、以下の記事の続きです gamelinks007.hatenablog.com parse.yリファクタリングチャレンジの中の一つ「リテラルオブジェクトをRubyのオブジェクトから卒業させる」をチャレンジしている途中記録をまとめたものになります。 前回から今回…

(WIP)「リテラルオブジェクトをRubyのオブジェクトから卒業させる」をやってみた

はじめに この記事は、以下の記事にある「リテラルオブジェクトをRubyのオブジェクトから卒業させる」をチャレンジしている途中記録をまとめたものになります。 yui-knk.hatenablog.com まだ対応途中ということもあり、不正確な情報も混じっているかもしれま…

Creatodonでparse.yのUniversal Parserを使っている話

はじめに これは僕が運営・管理しているCreatodonというMastodonのサーバーでRubyに最近導入されたparse.yのUniversal Parserを使うようにした時の備忘録になります。 Rubyに導入されたparse.yのUniversal Parserのビルド方法については以下の記事が参考にな…

esaで書いたリリースノートを自動でMastodonに投稿するようにした

はじめに 表題の通り、esaで書いたリリースノートを自動的にMastodonへ投稿するようにした時の覚書になります。 背景 CreatodonというMastodonのサーバーを運営しており、常に最新のMastodonのソースコードに追従するようにしています。 gamelinks007.net で…

LR parser 101を完走した

はじめに yui-knk/lr-parser-101 というRaccを使って電卓を実装しつつ、パーサージェネレーターを利用したパーサーの作り方を学ぶチュートリアルを完走した時の覚書です。 僕個人のパーサー周りの経験としては 拡張BNF記法がちょっと読み書きできる 元々pars…

Mastodonの自鯖にRBSを導入した

はじめに この記事はMastodonにRBSを導入したときの導入背景や手順などをまとめた記事になります。 主に僕個人の備忘録としてまとめています。 導入背景 2017年5月から6年ほどCreatodonというMastodonのサーバーを個人的に運営しています。 gamelinks007.net…

Hamada.rb #34 & Ruby Hacking Challenge in Hamada.rb を開催した

毎月定例のHamada.rbとRuby Hacking Challenge in Hamada.rbを9/20に開催してきた この記事はその振り返りです Rubyのビルド 今回Ruby Hacking Challenge初参加の方が何人おり、rubyhackchallengeのチュートリアル進めてて、依存関係でビルド出来なかったの…

RubyのアプリケーションをPR単位でテストできるようにしてみた

はじめに RubyのアプリケーションをPR単位でテストできるようにしてみた記事です。 仕事でRubyを使っていて「PR単位で気軽にテスト環境を作りたいなぁ」という人向けの内容です。 背景など 元々仕事で 複数のプロジェクトが同時並行で進んでいる 単一のステ…

「ゼロからわかるRuby超入門」を読んだ

以前から読もうと思ってAmazonの欲しいものリストに突っ込んでいた「ゼロからわかるRuby超入門」を送っていただいたので早速読んでみた。 www.amazon.co.jp ので、雑に感想など書いてみた。 内容など かなり初心者向けの内容でわかりやすい感じでした。 個人…

RustでRubyのNative Extensionを書く

はじめに 先日、Ruby Issue Trackerに以下のチケットが作成されました。 Feature #18481 Porting YJIT to Rust (request for feedback) 内容としては、昨年末にリリースされたRuby 3.1にマージされているYJITという新しいJITコンパイラをより開発しやすくす…

rstdという趣味ライブラリを作っています

はじめに この記事は Ruby Advent Calendar2 2021の12/6の記事です。 qiita.com 二年くらい前から趣味で作っているrstdというライブラリの紹介したいと思い、参加しました。 作っているもの rtsdという「標準ライブラリにあると便利そうなメソッド」をRefine…

近況報告という名の振り返り

はじめに この記事はRubyist近況 Advent Calendar2021(2スレ目)の12/3の記事です。 近況報告の体で今年一年を振り返ってみようかなと思い、参加してみました。 この一年でやってたこと お仕事 お仕事のほうではCREというポジションに就き、Go/TypeScriptを使…

Creatodonのサーバー移管とv3.4.1へのアップデートをした

はじめに これは僕が管理しているCreatodonというMastodonのサーバーの移管とアップデートを行ったときの備忘録になります。 一部正確な情報ではないかもしれませんのでご了承ください。 経緯 2021年9月30日以降でLet's Encryptのルート証明書が切り替わる件…

雑にRefinementsが使えるようにしてみた

経緯 最近、「Rubyにこういうのあったら便利かなぁ」と思ったメソッドをrstdというgemに追加して個人プロジェクトとかで使えるようにするのがマイブームになっています。 github.com で、色々実装している時に、サクッとRefinementsが使えないだろうかと思い…

浜田市の防災情報をLINEで通知してくれるBotを作った。

はじめに 浜田市の若者会議のメンバーの方から「浜田市の防災情報を通知してくれるアプリとかあるとうれしい」という話をいただいたので、実際に作ってみた話です。 作ったもの github.com 実際にLINEで防災情報を通知してくれるBotはこちらのQRコードを読み…

typeprofのインスタンス変数が未初期化のまま使われている警告を解消した

以下のPRをRubyに投げたところ、typeprof周りのテストで落ちているようだった。 github.com で、どの辺が原因なのかtypeprofのテストを回してみたら以下の警告が表示されていた。 /home/sh/rubydev/typeprof/lib/typeprof/analyzer.rb:496: warning: instanc…

雑にBacklogのチケットを一括で作成できるスクリプト書いた

はじめに 仕事の関係で一括でBacklogに複数のチケットを登録する必要があり、作成したものになります。 手作業なんて面倒くさいことしたくない人は是非使ってみてください。 作ったもの github.com 使い方 使い方は簡単。 上記のコードをクローンした後、必…

Zoomの録画データを自動で文字起こししてみた

はじめに この記事は先日書いたAWSとRubyを使って動画ファイルの自動文字起こしを試してみた時の続きです。 gamelinks007.hatenablog.com 今回は実際にZoomの録画データを自動的に文字起こしできるようにしてみました。 注意事項 とりあえず、手順をまとめた…

Ruby/AWS S3/AWS Lambda/Amazon Transcribeで動画の文字起こしをする

はじめに RubyとS3とLambdaとTranscribeを使ってS3にアップロードされた動画を自動的に文字起こしするフローを作ってみました。 この記事はその時の手順などをまとめたものになります。 何故やったかというと、妻が「中国語の動画の字幕が欲しい」と言ってい…

Rubyのしくみ輪読会を完走した話

はじめに 半年くらい前から少人数で「Rubyのしくみ」の輪読会をやっていて、最近完走しました。 これはその輪読会のまとめ記事です。 ことの発端 半年くらい前に「Rubyのしくみ、輪読会とかないと読む機会無いよね」という話が出て、「じゃあ、輪読会やりま…

Rubyのエラーメッセージを日本語に差し替えてみた

はじめに Rubyの初学者の方から「エラーメッセージの読み方がよくわからない」という話を聞き、「Rubyのエラーメッセージを日本語化できないか」試してみた記事です。 作ったもの Konnyakuというgemを作りました。 github.com rubygems.org gem install konn…

Refinementsで遊んでみた

はじめに Refinementsで遊んでみた記事です。具体的な内容としてはトップレベルでRefinementsが使えないかなと試してみたとき備忘録です。 Refinementsとは Rubyでは、後から自由にクラスにメソッドを追加することができる。 class Integer def hoge puts :h…

【Ruby 3.0 Advent Calendar 2020】Dataクラスが廃止された【23日目】

はじめに Ruby 3.0 Advent Calendar 2020 23日目の記事になります。 昨日は、【Ruby 3.0 Advent Calendar 2020】Ruby 3.0 で WEBrick と SDBM が標準ライブラリから削除される【22日目】です。 secret-garden.hatenablog.com 今日は、Ruby3.0でC拡張などで使…

【Ruby 3.0 Advent Calendar 2020】C APIのヘッダーが分割された話【16日目】

はじめに Ruby 3.0 Advent Calendar 2020 16日目の記事になります。 昨日は、【Ruby 3.0 Advent Calendar 2020】ArrayやStringのメソッドの返り値が変更された話【15日目】です。 今日は、Ruby3.0でC APIのヘッダーが分割れたことを紹介します。 C APIとは?…

【Ruby 3.0 Advent Calendar 2020】ArrayやStringのメソッドの返り値が変更された話【15日目】

はじめに Ruby 3.0 Advent Calendar 2020 15日目の記事になります。 昨日は、「Ruby3.0で導入される型定義!TypeprofでBlockやProcを解析してみる」です。 qiita.com 今日は、ArrayやStringの返り値が変更された話を紹介します。 これまでの返り値 これまで…

【Ruby 3.0 Advent Calendar 2020】Win32APIが廃止された【11日目】

はじめに Ruby 3.0 Advent Calendar 2020 11日目の記事になります。 昨日は、【Ruby 3.0 Advent Calendar 2020】Arguments forwardingがちょっと便利になった【10日目】です。 gamelinks007.hatenablog.com 今日は、Win323APIが廃止されたことを紹介します。…

【Ruby 3.0 Advent Calendar 2020】Arguments forwardingがちょっと便利になった【10日目】

はじめに Ruby 3.0 Advent Calendar 2020 10日目の記事になります。 昨日は、【Ruby 3.0 Advent Calendar 2020】Ruby 3.0.0-preview2 がリリースされた【9日目】です。 secret-garden.hatenablog.com 今日はRuby 3.0で入ったArguments forwardingの変更につ…

【Ruby 3.0 Advent Calendar 2020】Ruby3.0で非推奨から廃止になるメソッドたち【4日目】

はじめに Ruby 3.0 Advent Calendar 2020 4日目の記事になります。昨日は、【Ruby 3.0 Advent Calendar 2020】Ruby3.0でRubyで実装されたメソッドたち【3日目】です。gamelinks007.hatenablog.com 長らく非推奨だったメソッドを「Ruby3.0のリリースに合わせ…

【Ruby 3.0 Advent Calendar 2020】Ruby3.0でRubyで実装されたメソッドたち【3日目】

はじめに Ruby 3.0 Advent Calendar 2020 3日目の記事になります。昨日は、【Ruby 3.0 Advent Calendar 2020】Ruby3.0に投げたPull Request【2日目】です。gamelinks007.hatenablog.com今日はRuby 2.7から対応されている一部メソッドがRubyで実装されている…