-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory を解消する

まとめ (1) .zshrc などで export LC_CTYPE="ja_JP.UTF-8" 日本語ローカライズに非対応の場合は、 export LC_CTYPE="en_US.UTF-8" (2) /etc/ssh/ssh_config の SendEnv LANG LC_* をコメントアウトする 経緯 ssh しようとして以下のエラーが出ることがある。…

String#force_encodingは文字コードの強制変換ではない

Ruby の String#force_encoding は String の encoding を変更するだけで、文字コードの変換を行うわけではありません。そのため、バイト列は変換されません。 force_encoding はどんなメソッドか String の encoding を変更します。ただし、バイト列は変更…

最近の趣味

Rubyist近況 Advent Calendar 2021 - Adventar 7日目 フランス語学習 Duolingo で最近フランス語を勉強している。たしか udzura に英語以外の言語を学習すると面白いと言われたことがきっかけだった気がする。勉強している理由はなくて、英語以外の言語を勉…

Vim から esa に日報を投稿できるようにする

Vim

ESM Advent Calendar 2021 - Adventar の5日目の記事です。 永和システムマネジメント アジャイル事業部では esa を使ってメンバーが日報を投稿しています。 ですが私は日報をよく後回しにして書かなくなってしまうことがありました。そこで、自分にとっても…

Rubyだけで文字コード変換を実装する

Ruby Advent Calendar 2021 - Qiita の5日目の記事です。 こんにちは。ima1zumiです。 私はRubyKaigi Takeout 2021 で Dive into Encoding というタイトルでオレオレ文字コードを作って文字コードを学ぶ話をしました。 その中で、C拡張のgemとして自作文字コ…

フィヨルドブートキャンプを(11ヶ月前に)卒業したこと、楽しいことをすること

「フィヨルドブートキャンプ Part 2 Advent Calendar 2021 - Adventar」4日目の記事です。 2021年1月にフィヨルドブートキャンプというプログラミングスクールを卒業しました。2021年1月から永和システムマネジメントという会社で働いており、スクールを卒業…

RubyKaigi Takeout 2021 に登壇します

RubyKaigi Takeout 2021 に『Dive into Encoding』というタイトルで登壇します。 私の登壇は3日目である 2021-09-11 (土) の 11:00 - 11:25 です。 rubykaigi.org 自作文字コードを作ってローカルのRubyにビルドして遊んだ話をします。文字コードの基礎からR…

Gemのバージョンを比較する

文字列で比較するとうまく比較できない。 '1.0.9' < '1.0.10' # => false Gem::Version を使うと文字列のまま比較できる。 また、 pre や beta などの文字が入っていても正しく比較できる。 require 'rubygems' Gem::Version.new('1.0.9') < Gem::Version.ne…

ファイルパスを指定して irb と reline を起動したい

はじめに 私は irb をよく使うので、せっかくなら常に最新版を使ってバグを見つけたいなと思いました。 irb と reline は git clone しておおむね master に追従しているので、ファイルパスを指定して irb を起動することにしました。 ruby -I <path> Ruby 起動時</path>…

gem installしたgemのパスを知りたい

gemのインストール場所は、$ gem environment の出力結果の INSTALLATION DIRECTORY で分かる。 ❯ gem environment RubyGems Environment: - RUBYGEMS VERSION: 3.2.3 - RUBY VERSION: 3.0.0 (2020-12-25 patchlevel 0) [x86_64-darwin19] - INSTALLATION DI…

URI#escape と URI#unescape は Ruby 3.0.0 から削除された

タイトルの通り、 URI.escape と URI.unescape は Ruby 3.0.0 から削除されました。長い間非推奨となっていましたが、ついに 3.0.0 で削除されました。 代わりに ERB::Util.#url_encode , CGI.escape , URI.encode_www_form , WEBrick::HTTPUtils.#escape_fo…

はじめての自作キーボードを作る(2)遊舎工房でmeishi2ビルド編

はじめに この記事は2020年ふりかえりアドベントカレンダー 15日目です。書いているのは12月18日です。昨日の記事は はじめての自作キーボードを作る(1)情報収集編 - いまブログです。 あらすじ 自作キーボードのさわり心地を確かめることと、meishi2キッ…

はじめての自作キーボードを作る(1)情報収集編

はじめに この記事は2020年ふりかえりアドベントカレンダー 14日目です。書いているのは12月18日です。昨日の記事は 2020年買って良かったもの - いまブログ です。 きっかけ 内定したので就職が決まるまでに何をやりたいかな、と思ったときに自作キーボ…

2020年買って良かったもの

はじめに この記事は2020年ふりかえりアドベントカレンダー 13日目です。昨日の記事は Rails Girls Gathering Japanに参加 - いまブログ です。 こんにちは。趣味は買い物の ima1zumi です。2020年もそろそろ終わりが近いので、買って良かったものリストでも…

Rails Girls Gathering Japanに参加した感想

はじめに この記事は2020年ふりかえりアドベントカレンダー 12日目です。昨日の記事は Rubyで文字コードを扱うコードを書くときに便利なメソッド集 - Qiita です。 Rails Girls Gathering Japan とは Rails Girlsとはより多くの女性がプログラミングに親しみ…

reline のテストを実行

はじめに この記事は2020年ふりかえりアドベントカレンダー 11日目です。これを書いているのは12月14日ですが、あまり気にしないことにしました。昨日の記事は サロゲートペアとRubyのStringについての覚書 - いまブログ です。 先日 Ruby の標準添付ライブ…

サロゲートペアとRubyのStringについての覚書

はじめに この記事は2020年ふりかえりアドベントカレンダー 10日目です。これを書いているのは12月14日ですが、あまり気にしないことにしました。昨日の記事は .irbrc で irb で使える独自メソッドを定義する - いまブログ です。 TL;DL サロゲートペアは16…

.irbrc で irb で使える独自メソッドを定義する

はじめに この記事は2020年ふりかえりアドベントカレンダー 9日目です。これを書いているのは12月12日ですが、あまり気にしないことにします。昨日の記事は Hamada.rb #16 に参加 - いまブログ です。 今日は以下のツイートで教えていただいた内容についてま…

Hamada.rb #16 に参加

この記事は2020年ふりかえりアドベントカレンダー 8日目です。昨日の記事は yarn install 時の gyp: No Xcode or CLT version detected! を解消する - いまブログ です。 島根県浜田市の Ruby コミュニティ、 Hamada.rb に参加しました。現在はオンラインで…

yarn install 時の gyp: No Xcode or CLT version detected! を解消する

この記事は2020年ふりかえりアドベントカレンダー 7日目です。昨日の記事は GitHub CLIでgistを作成する - いまブログ です。 rails new とか rails s 時に yarn install --check-files を促され、 gyp: No Xcode or CLT version detected! で落ちたときの対…

GitHub CLIでgistを作成する

はじめに この記事は2020年ふりかえりアドベントカレンダー 6日目です。昨日の記事は Rubyにはオブジェクトを汚染する仕組みがあった - いまブログ です。 GitHub CLIとは GitHub 公式が提供している CLI ツールです。コマンドラインから Pull Request や is…

Rubyにはオブジェクトを汚染する仕組みがあった

はじめに Ruby 3.0 Advent Calendar 2020 5日目の記事です。 昨日は、【Ruby 3.0 Advent Calendar 2020】Ruby3.0で非推奨から廃止になるメソッドたち【4日目】 - ゲームリンクスの徒然なる日常 です。 また、この記事は2020年ふりかえりアドベントカレンダー…

初学者が Ruby on Rails の広大さに途方にくれたけどなんとかやっていけるようになった話

これは「フィヨルドブートキャンプ Part 1 Advent Calendar 2020」の4日目の記事です。 フィヨルドブートキャンプ Part 1 Advent Calendar 2020 - Adventar 昨日は hogucc さんの Rubyでリファクタリングをやってみよう でした。 Part2 もあります。 フィヨ…

「数学ガールの秘密ノート/学ぶための対話」感想

この記事は2020年ふりかえりアドベントカレンダー 3日目です。昨日の記事は Rubyリファレンスマニュアルを修正する方法 です。 ノナちゃんたちと僕と、「私(あなた)」の対話 数学ガールの秘密ノート/学ぶための対話 (数学ガールの秘密ノートシリーズ)作者:…

Rubyリファレンスマニュアルを修正する方法

この記事は2020年ふりかえりアドベントカレンダー 2日目です。昨日の記事は 2020年の終わりと2021年に向けての準備をするぞという気持ち - いまブログ です。 Ruby リファレンスマニュアルとは Ruby の日本語版の公式ドキュメントです。略して「るりま」と呼…

2020年の終わりと2021年に向けての準備をするぞという気持ち

こんにちは。ima1zumi です。2020年がもう終わるなんて信じがたいです。今年はフィヨルドブートキャンプで勉強した1年でした。来年からはがらりと生活が変わるので、今年のふりかえりを兼ねて近況を書きます。主に就職活動まわりの話です。 フィヨルドブー…

find_or_initialize_by と find_or_create_by の違い

find_or_create_by は引数に渡した条件のレコードがなければ create する。 find_or_initialize_by は引数に渡した条件のレコードがなければ new する。 返り値はレシーバのmodel。 引数に渡した条件は AND で検索されるので、このメソッドだけで create_or_…

Machida.rb #04 に参加

Machida.rb #04 Machida.rb #04 - Machida.rb | Doorkeeper 今回のテーマはRubyのコードを持ち寄ってワイワイコードレビューする会! ということで私も自作プログラムをレビューしていただいた。 レビューしてもらったコード Slackのメッセージをコピペする…

git commit でコミットメッセージ入力画面からコミットを取りやめる方法

コミットメッセージを消して保存すると取りやめることができる。 コメントは残っていても良い。 # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch …

Webエンジニア勉強会inVR 第3回 テーマ「生産性アップの推しツール」 の録画を見た

【初参加歓迎】Webエンジニア勉強会inVR 第3回【YouTube Liveあり】 - connpass 2回目の参加。当日は終盤しか参加できなかったので録画を見た。 今回のテーマは「生産性アップの推しツール」 内容と感想 clusterの操作説明 clusterで参加している人向けの操…