タグ

ブックマーク / blog.n-z.jp (26)

  • macOSの/etc/irbrcを調べた - @znz blog

    macOS には謎の /etc/irbrc があって、今は自動で読み込まれることはありません。 中で ruby 1.9 の時に消えた Array#nitems が使われていて、自分で読み込んでもそのままでは動きません。 そこで、このファイルについて調査したので、その結果をまとめました。 確認環境 macOS Ventura 13.4.1 にもまだ /etc/irbrc は存在しました。 ネット上の情報 ruby - Is /etc/irbrc installed by OS X? Does irb read it? - Stack Overflow によると OS X 10.11.5 の頃にすでに読み込まれていなくて、無意味なファイルになっていたことがわかります。 Irb login not reading irbrc file - ruby-talk - Ruby Mailing Lis

  • RubyKaigi 2022に参加して、るりまについての発表をしてきました - @znz blog

    RubyKaigi 2022でHistory of Japanese Ruby reference manual, and futureという発表をしてきました。 久しぶりの大規模イベントへのオフライン参加でした。 会場 三重県県庁所在地の津市というところで、駅からはちょっと離れている大きな会場でした。 専用のシャトルバスがでていて、それに乗って移動しました。 1回だけ徒歩で駅まで戻りましたが、歩いても問題ないぐらいの距離でした。 ホールとスポンサーブースはちょっと離れていました。 発表の時に同時通訳の人との打ち合わせの後、中ホールの横で待機していましたが、今まで入ったことがある舞台の裏側の中で一番広かった気がします。 宿 コミッターで予約している人が多そうだったので、ドーミーイン津を早めに予約していました。 連泊で清掃なしのプランだったので、どこまで何をしてもらえるのかよくわからないのに

  • Ubuntu 22.04のパッケージ更新がWhich services should be restarted?で止まるのを防ぐ - @znz blog

    Ubuntu 22.04のパッケージ更新がWhich services should be restarted?で止まるのを防ぐ Ubuntu 22.04 LTS には needrestart というパッケージが入っていて、パッケージの更新のときに「Daemons using outdated libraries」というダイアログに「Which services should be restarted?」という質問で再起動対象を選ぶ状態になることがあります。 開発環境や個人の環境なら、いちいち聞いてこなくても勝手に必要なデーモンは全部再起動してくれても大丈夫なので、そういう設定に変更しました。 動作確認環境 Ubuntu 22.04 LTS (jammy) の needrestart 3.5-5ubuntu2 Ubuntu 21.10 (impish) の needrestart 3.5-

  • WebAssembly / WASI port of Rubyをビルドしてみた - @znz blog

    RubyWebAssemblyのWASI対応へ前進。ブラウザでもサーバでもエッジでもどこでもWebAssemblyRubyが動くように - Publickey という記事で紹介されている WASI 対応がマージされたので試してみました。 動作確認環境 Ubuntu 21.10 (amd64) wasi-sdk-14.0-linux.tar.gz binaryen-version_91-x86_64-linux.tar.gz wasmtime 0.33.0 wasm/README.md に従って WASI SDK の 14.0 と Binaryen version 91 をダウンロードしました。 WASI SDK や Binaryen のバイナリリリースが Linux は x86-64 しかないので、 aarch64 で試すのは自前でビルドが必要そうで大変そうなので避けました。 準備 W

  • GitHub Actionsのubuntu-20.04対応 - @znz blog

    GitHub Actions の ubuntu-latest が ubuntu-18.04 から ubuntu-20.04 に変わっても影響ないだろうと思っていたところが影響を受けていたので、その対応をした話です。 Gemfile (Gemfile.lock) で指定されているバージョン問題 bundle install が以下のメッセージで失敗していたので、 Gemfile と Gemfile.lock を更新しました。 /usr/lib/ruby/2.7.0/rubygems.rb:275:in `find_spec_for_exe': Could not find 'bundler' (1.17.3) required by your /home/runner/work/actions/actions/tool/snapshot/Gemfile.lock. (Gem::GemNotF

  • ruby/zlibのテストが何もしていないのに失敗するようになった話 - @znz blog

    ruby/zlib のテストでの失敗がたまに起きていたのが、連続して発生するようになって、その原因が判明した話です。 失敗の内容 たとえば https://ci.appveyor.com/project/ruby/ruby/builds/37582820 のログによると 1) Error: TestZlibGzipFile#test_gzip_reader_zcat: Errno::EACCES: Permission denied @ apply2files - C:/Users/appveyor/AppData/Local/Temp/1/test_zlib_gzip_file_to_io20210203-1504-1h6r8z C:/projects/ruby/lib/tempfile.rb:368:in `unlink' C:/projects/ruby/lib/tempfile.r

  • docs.ruby-lang.orgのruby 3.0対応 - @znz blog

    Ruby 3.0.0 がリリースされた影響でdocs.ruby-lang.orgのシステム側でいくつか対応が必要でした。 その対応が一通り終わったので、そのメモです。 主なソースコード https://github.com/ruby/docs.ruby-lang.org https://github.com/ruby/rurema-search https://github.com/rurema/bitclust https://github.com/rurema/doctree https://github.com/ruby/snap.ruby docs.ruby-lang.org の生成対象更新 まず最初に Bump version to 3.0.0 で /en/3.0.0/ と /ja/3.0.0/ が増えました。 マージ後に cap production deploy で反映する必

    Watson
    Watson 2020/12/30
  • GitHub Actions をリリース作業の一部に使った Ruby がリリースされました - @znz blog

    GitHub Actions で Ruby リリース用の tarball の準備 (正式リリース版になるのはリリースアナウンス後) をした初リリースがありました。 リリースアナウンス セキュリティリリースのため、影響がありそうなら速やかに更新しましょう。 (shell.rb や WEBrick を番環境で使うことは少ないとは思いますが。) https://www.ruby-lang.org/ja/news/2019/10/01/ruby-2-6-5-released/ https://www.ruby-lang.org/ja/news/2019/10/01/ruby-2-5-7-released/ https://www.ruby-lang.org/ja/news/2019/10/01/ruby-2-4-8-released/ 発覚した問題点 (1) トリガー https://githu

  • Ruby の文字リテラルについて - @znz blog

    Ruby には ?a で 1 文字のみの文字列を返す文字リテラルというものがあります。 Ruby を 1.9 以降から使い始めた人には 'a' などの文字列リテラルとの使い分けや String#chr の存在意義などがわからないと思ったので、知っている範囲で歴史的経緯を説明してみたいと思います。 Ruby 1.8 以前と Ruby 1.9 以降の違い マルチエンコーディング対応が入る前の文字リテラルは1バイト文字用のリテラルで、多バイト文字は使えませんでした。 コントロールやメタは昔から使えました。 以降の実行例も含めて、実行例は 2.0 以降も同じなので、省略しています。 1.8.6 以前は未確認ですが、1.8.7 とほぼ同じはずです。 $ rbenv each ruby -ve 'p ?a' ruby 1.8.7 (2013-12-22 patchlevel 375) [x86_64-

    Watson
    Watson 2017/09/10
  • cron(crontab)の代わりにsystemdのtimerを使う - @znz blog

    最近 gitlab omnibus などの環境を作っていて、GitLab CE の role でバックアップ処理を定期実行するのに crontab ではなく systemd の timer を使ってみました。 利点 systemd 管理下で統一的に扱えるので、覚えれば楽 ログも journald で統一されるので cron だといちいちメールが飛ぶと陶しいような粒度でも簡単にログに残せる 環境変数なども含めた環境が番と同じ状態ですぐに実行を試しやすい systemd 依存の機能が使える (後述の例では After と Requires) などが利点に感じました。 欠点 情報が cron (crontab) に比べてまだ少ないので、何かあったときに調べにくい systemd に大きく依存してしまう などが欠点に感じました。 確認環境 Ubuntu 16.04.2 LTS (xenial)

    Watson
    Watson 2017/06/05
  • bundled gem と default gem の違い - @znz blog

    RubyKaigi 2016 の後の移動中に hsbt さんに bundled gem と default gem との違いについて聞いてみた話をまとめてみました。 違い bundled gem は単なる gem で gem uninstall もできる普通の gem default gem は uninstall できない bundler の clean_env 環境でも見える bundler で別のバージョンを指定してインストールしていれば、通常の bundler の load path の挙動に従って、そちらが使われる たとえば ruby 2.3.1 だと lib/ruby/gems/2.3.0/gems/rdoc-4.2.1 に bin/rdoc と bin/ri しかなくて他は lib/ruby/2.3.0/rdoc* などの標準添付のところに入っている というような違いだと聞き

    Watson
    Watson 2016/09/11
  • RubyKaigi 2016 の 3 日目に参加しました - @znz blog

    RubyKaigi 2016 の 3 日目に参加したので、そのメモです。 Ruby Committers vs the World 前 コミッターは 9:10 までにコミッター T シャツをきてくるようにという話だったので、ちゃんと間に合うように着きました。 壇上に上がらないと名指しされて逆に目立つ自体発生 Money Forward urabe さんを雇用している RubyKaigi 2015/2016 のスポンサー 壇上だと近すぎてスライドが見にくい状態 普通の Rails アプリを普通に作っている Ruby Committers vs the World 会場から質問受付するので考えておいてください 謝辞 新規コミッター rhe さん (不在, openssl) tadd さん (Feature #12484 Optimizing Rational) 2.4 に入れたい MVP (P

    Watson
    Watson 2016/09/11
  • RubyKaigi 2016 の 2 日目に参加しました - @znz blog

    RubyKaigi 2016 の 2 日目に参加したので、そのメモです。 予習 途中で知ったのですが、RubyKaigi2016の予習(Day 2)というのがあるようです。 Door Open 早めに着いたのでメインホールでのんびりしていた。 開始前の待ち時間に少しの間「Surgical Refactors」というのが出ていたのは発表者のプロジェクターのテストっぽい感じだった。 Fearlessly Refactoring Legacy Ruby Fearlessly Refactoring Legacy Ruby - RubyKaigi 2016 自己紹介 発音が難しいので日語でジュースさん スクリーンサイズ: 16x9, 4x3, Ruby3x3 なので 3x3 early success と later success レガシーコードのリファクタリングの話 refactor と l

  • RubyKaigi 2016 の 1 日目に参加しました - @znz blog

    RubyKaigi 2016 の 1 日目に参加したので、そのメモです。 会場 「スピーカーのキャンセルが出たため、初日の朝のキーノートの開始時間が50分遅くなります。」という話があったため、時間に余裕を持って到着できました。 家を出た時は雨は降っていなかったのですが、京都では大雨でした。 (参考: https://twitter.com/kakutani/status/773680281689530368) 駅から会場までは天井のある通路で繋がっているので、傘なしでも濡れずにたどり着けました。 会場は広くて、メインホールのテーブル席は全席電源つきという非常に便利な感じでした。 メインホールの座席は座ると前にずれて、立ち上がると後ろに下がる椅子でした。 Opening スタッフのうち、つじたさん、 aaron さん、デカ外人さんの紹介 電源が各席にある メインホールはテーブル席の後ろに椅子

  • 第 17 回 RubyMotion もくもく会 in Osaka に参加した - @znz blog

    第 1 回から第 15 回に参加していて 前回の 16 回は中止になっていた RubyMotion もくもく会 in Osaka の 第 17 回 RubyMotion もくもく会 in Osaka - connpass に参加してきました。 今回も基的にみんなもくもくしていました。 次回の 第 18 回 RubyMotion もくもく会 in Osaka - connpass は 2014/12/17(水) になりました。 今回はメールを書いたり github の issues を見たりコメントしたりしていました。 最後の方は iPod touch の「このコンピュータを信頼しますか」警告が出続けて iTunes が認識してくれない問題を思い出したので、調べていたのですが、結局解決しませんでした。 Dropbox は認識して写真を取り込んでくれるので、ケーブルなどのハードウェアは問題が

  • ruby-buildをrbenvと組み合わせずに使う - @znz blog

    ruby-build は rbenv と組み合わせて使われることが多いですが、 単独でも使えて、その情報が少ないので少し書いておきます。 /usr/local にインストールする方法 ruby-build 自体もインストールしてしまう場合は install.sh を使ってインストールします。 git clone --depth 1 https://github.com/sstephenson/ruby-build ruby-build/install.sh rm -rf ruby-build ruby-build 2.1.2 /usr/local もっと詳しい使い方は [ReVIEW Tips] DockerでRe:VIEW が参考になると思います。 ruby だけインストールする方法 bin/ruby-build を直接実行すれば ruby-build をインストールせずに ruby

  • zshの機能のみで既に存在しないディレクトリをcdrのリストから削除する - @znz blog

    既に存在しないディレクトリを cdrのリストから削除する - Life is very short をみて perl を使っていて、 ファイル名の変更にも対応していなくてポータブルではないと思ったので、 zsh の機能のみで実装してみました。 動作確認バージョン zsh 5.0.2 実装 cdr の実装の中の chpwd_recent_add chpwd_recent_dirs chpwd_recent_filehandler の中を良くみてみると 引数なしで chpwd_recent_filehandler を呼び出すと $reply に配列でディレクトリ一覧を返してくれて、 引数を渡すとファイルに保存してくれるとわかりました。 そこで、その間で (N) を使って存在しないディレクトリを除外すれば良いということで 以下の実装になりました。 emulate -L zsh などは参考にした部

    Watson
    Watson 2014/07/31
  • 第 12 回 RubyMotion もくもく会 in Osaka に参加した - @znz blog

    第 1 回から第 11 回にも参加した RubyMotion もくもく会 in Osaka の 第 12 回 RubyMotion もくもく会 in Osaka に参加してきました。 次回の 第 13 回 RubyMotion もくもく会 in Osaka は 07/16(水) になりました。 メモ 一周年記念 RubyMotion は Android にも対応予定 RubyMotion のライセンスが expired して更新しても rake のときの Your maintenance plan is expired. Run 'motion account' to renew it. というメッセージはキャッシュの影響で 24 時間ぐらい待たないと消えないらしいという話 バージョンは 2.29 が最新 Swift が話題 割り勘電卓 https://github.com/shin1x1

  • installコマンドでコマンド数を減らす - @znz blog

    mkdir とか touch とか chown とか chmod とか個別に実行しなくても install コマンドだけでまとめて出来るという話です。 問題例 Dockerfile の RUN などが典型的な例ですが、他でも例えば mkdir -p /home/foo/.ssh; chown foo /home/foo/.ssh; chmod 0700 /home/foo/.ssh のようなことをすることがあると思います。 特に Dockerfile の場合は RUN ごとにイメージがたまっていくこともあって、 ; や && でつなげて単独の RUN にまとめて書くことも多いと思います。 install でディレクトリを作る たとえば mkdir -p /home/foo/.ssh chown foo /home/foo/.ssh chgrp users /home/foo/.ssh ch

  • distnotedの暴走が止まるというCocoa Emacsのinline patch修正版を使ってみた - @znz blog

    launchdでdistnotedを定期的に終了させる 話のコメントで Emacs.appでインラインパッチを当てた時にdistnotedが暴走しなくなる 修正を教えてもらったので、 試してみました。 2014-01-29追記: コメントにあるようにまだ問題があったので、続きとして emacsやdistnotedを安定させるパッチをhomebrewで適用した 話を書きました。 homebrew で適用するパッチの変更 適用法としては brew edit emacs で以下のように変更して、 brew reinstall emacs で再インストールしました。 diff --git a/Library/Formula/emacs.rb b/Library/Formula/emacs.rb index 712c3d1..5ce4ce2 100644 --- a/Library/Formula/

    Watson
    Watson 2013/12/29