タグ

ブックマーク / koic.hatenablog.com (12)

  • Minify Rubyをリリースした - koicの日記

    大阪Ruby会議04向けにリリースした Minify Ruby についてとりあげます。 ざっくりいうと JavaScript の UgilifyJS や Terser のような位置付けで、Ruby のソースコードを Minify する Gem です。 github.com 使い方 使い方は README.md に記しているとおりですが、コマンドラインからであれば、minifyrb コマンドを叩くのがシンプルです。 $ gem i minifyrb $ minifyrb path/to/file.rb これで minify されたコードが標準出力に出力されます。echo 'puts :hello' | minifyrb といったパイプでの標準入力からの使い方や、-o オプションを使ったファイル出力が可能です。 もう少し実用的 (とは?) な使い方としては、まず Gemfile に minif

    Minify Rubyをリリースした - koicの日記
    YassLab
    YassLab 2024/08/26
    “Minify Ruby についてとりあげます。 ざっくりいうと JavaScript の UgilifyJS や Tarser のような位置付けで、Ruby のソースコードを Minify する Gem です。”
  • RubyKaigi 2024 に登壇した - koicの日記

    発表について RuboCop から見た Ruby パーサーの世界の今後 廊下会議し損ねた気になり点 今後の 362 日 登壇以外に得られた会話など 今回のRubyKaigiでの気づき RubyKaigi 2024 に登壇した。 rubykaigi.org 当日の発表スライドは以下です。 発表について 今回は、RubyKaigi 2023 の帰り道に Justin Searls とばったり松駅で遭遇してからの、362 日の Rubyist 活動をストーリーにしたものでした。 もともとは、LSP の話を中心にして Prism の話は少し出るくらいという『RuboCop Evolution with LSP』というプロポーザルを出して通過したところ、Rails/OSSパッチ会で松田さんから「Lrama の話が3あって、Prism の話がないんですよ。」という感じでタイトルに Prism を入

    RubyKaigi 2024 に登壇した - koicの日記
    YassLab
    YassLab 2024/06/01
    “kaneko さんの発表にあった「Lrama (LR) は言語規則を元にパーサー実装ができるが、Prism (手書き) はパーサー実装を元に言語規則ができる」というのは、それぞれのパーサーのあり方を突いた胸に刺さる言葉だった”
  • GemfileでのRubyバージョン指定を.ruby-versionから読む - koicの日記

    Gemfile での Ruby バージョンの指定を、値の直書きではなく .ruby-version からの読み込みに変更する設定です。 https://github.com/rubygems/rubygems/pull/6876 例えば、Rails アプリケーションなんかで Gemfile に .ruby-version と同じ 3.3.0 を指定しているようであれば、以下のように記述できます。 -ruby '3.3.0' +ruby file: '.ruby-version' asdf に類するものを使っているようであれば、ruby file: '.tool-versions' と記します。 https://github.com/rubygems/rubygems/pull/6898 この設定によって Ruby のアップデート時のバージョンの更新ポイントを減らすことができます。 なお、古

    GemfileでのRubyバージョン指定を.ruby-versionから読む - koicの日記
    YassLab
    YassLab 2024/04/27
    “この設定によって Ruby のアップデート時のバージョンの更新ポイントを減らすことができます。 なお、古い Bundler ではこのオプションは使えないため、その場合は BUNDLED WITH の値を bundle update --bundler あたりで更新する必
  • RuboCopにLSPを標準搭載した - koicの日記

    タイトルのとおり。RuboCop 1.53 で LSP (言語サーバー) を標準搭載しました。 最初に3行まとめを書いておきます。 RuboCop を使っているけれど LSP を使っていない場合は、高速なリアルタイム性で開発体験が変わると思います。速い! VS Code ユーザーを使っている方は、後述する vscode-rubocop という VS Code 拡張をインストールすれば OK です。 Emacs や Vi などのユーザーは、LSP クライアントの設定で rubocop --lsp を起動するように LSP 設定してください (VS Code では不要) 。 公式の使い方としては以下のドキュメントを更新していくことになるものの、実装者が自分なのでこちらに軽く書き記します。 docs.rubocop.org rubocop --lsp コマンドは直接ユーザーが手動実行するものでは

    RuboCopにLSPを標準搭載した - koicの日記
    YassLab
    YassLab 2023/06/27
    “Emacs 29 で標準搭載になるらしい Eglot でのみ確認しているため、他の LSP クライアントはわかりません。自分は Emacs 28 なので別途 Eglot をインストール / それぞれ良い感じの使い勝手に elisp 設定して下さい。M-x forever。”
  • 新卒氏への10年選手からのコードレビューの解説(1) - koicの日記

    とある新卒氏へのとある10年選手からのコードレビューの解説をやったりしていた。当然知識にひらきのあるコメントがあったりするもので、そういった解説業やコメントへの質問を一緒に返すのを行なったりすることがある。 その際に、いわゆる CSV アップロードによくある CSV からレコードを作成するようなテストケースについての対話で出たはなし。 境界値テスト CSV アップロードの場合は、青天井の INSERT が起きないようアップロードの上限値を設けることになる。その上限値の境界値テストをやりましょうという話がひとつ目。例えば上限値が 500 件の場合は正常系の 500 件と異常系の 501 件の境界は試験パターンとして考えられる。 スタブ ふたつ目は、レコードの生成には時間が掛かることから上限値を正直に 500 のままだと自動テストの度に、約 500 レコード以上作ることになるためスローテストに

    新卒氏への10年選手からのコードレビューの解説(1) - koicの日記
    YassLab
    YassLab 2017/09/26
    “スタブ/モックは偽物の世界の住人なので、正規の上限数でも1回テストはリアルワールドのコードとして回しておく。UI を持つ場合は大体1回は手動での E2E を行なっていると思うので、例えばそのタイミングになったり”
  • Railsアプリケーションのバージョニング - koicの日記

    定期的にリリースを行なう Web アプリケーションのリリースタグ名として release_yyyyMMdd という名前を長らく使っていた。 Rails アプリケーションのリリースタグ名として vyyyyMMdd という名前に最近を変更した。例えば 2017年8月4日リリースであれば v20170804 といったタグ名となる。 理由 GitHub でリリースを作成する際に、以下のとおり v で始まるタグ名を推奨されている。 Tagging suggestions It’s common practice to prefix your version names with the letter v. Some good tag names might be v1.0 or v2.3.4. この文言は https://github.com/#{user}/#{repo}/releases/new

    Railsアプリケーションのバージョニング - koicの日記
    YassLab
    YassLab 2017/08/07
    "Rails アプリケーションとは毛並みは違うが、ruby-build のリリースタグ名を参考に vyyyyMMdd とした。リリースにまつわる会話では、いつのリリースで入った/入る機能かなどが焦点となるため日付を使うことは都合が良い。"
  • Rails Developers Meetup #3 で講演した - koicの日記

    主催の平野さんから登壇依頼のメールをもらって、二つ返事で回答させてもらったのがはじまり。オファーをもらったときに「育成をテーマに」と言われていたので、主題に悩むことなくストーリーづくりを進めることができた。 rails-developers-meetup.connpass.com 当日のスライドは以下。ここ数年行なっている育成についてまとめるいい機会になったと思う。熱が入りすぎて作り込み過ぎてしまい30分枠のところ40分くらい話させてもらって恐縮でした (るりまへのパッチの話など諸々を結構割愛したけれど、それでも溢れてしまった) 。 Stairway to The Pragmatic Rails Programmer from Koichi ITO www.slideshare.net 余談だけど、英語タイトル『Stairway to The Pragmatic Rails Program

    Rails Developers Meetup #3 で講演した - koicの日記
    YassLab
    YassLab 2017/07/23
    .@koic さんに #Railsチュートリアル を使った社内研修のノウハウをまとめてもらいました! ありがとうございます!😸 外部への教育・研修ビジネスでも商用ライセンスで利用可能なので、もし興味あればお声かけください ;)
  • OSS Gate東京ミートアップ2017-07-13 - koicの日記

    会場係兼任で今月も参加した。 oss-gate.doorkeeper.jp 当日の模様というか雰囲気は、たまたま三脚とカメラを持ち合わせていた yasulab さんがアップされた動画をどうぞ。 たまたま三脚とカメラと収録機材一式をもっていたので、今日の OSS Gate ミートアップの雰囲気を動画で撮影してみました! 📹✨ #oss_gate https://t.co/WhlV78jlK9— Yohei Yasukawa (@yasulab) 2017年7月13日 今回は継続して参加するメンバーが少しずつ増えてきて良いなと思う回だった。

    OSS Gate東京ミートアップ2017-07-13 - koicの日記
    YassLab
    YassLab 2017/07/15
    #oss_gate “当日の模様というか雰囲気は、たまたま三脚とカメラを持ち合わせていた yasulab さんがアップされた動画をどうぞ。 / 今回は継続して参加するメンバーが少しずつ増えてきて良いなと思う回だった。”
  • Bundler 1.15.0 がリリースされていた - koicの日記

    CHANGELOG は以下。 github.com GW 前には 1.15.0 pre が出ていたので、急ぎ GW 中に出していた PR がいくつかあって、そのうち RubyGems が Rubygems となっていて地味に気になるのを直したのが以下の PR となるが、次回以降のバージョンアップにお見送りだった。 github.com

    Bundler 1.15.0 がリリースされていた - koicの日記
    YassLab
    YassLab 2017/05/21
    “GW前には 1.15.0 pre が出ていたので、急ぎGW中に出していたPRがいくつかあって、そのうち RubyGems が Rubygems となっていて地味に気になるのを直したのが以下の PR となるが、次回以降のバージョンアップにお見送りだった”
  • 新卒教育での2周目のRailsチュートリアル - koicの日記

    入社前に1周終わらせてきたということで、少しやることをプラスして2周目に入ってもらっている。Railsチュートリアルの周回まわりの効能については、akiinyo のエントリを参照。 今回2周目ということで、編プラスαとして伝えていることの大枠。 Travis CI や CircleCI などの CI サービスと連携する テストコードを RSpec で書いてみる GitHub への PR を出して CI をパスするようにする 新卒2人がそれぞれで進めているので、一方がレビューしてマージする この過程で開発環境を整備しているものを dotfiles で GitHub 管理する Idobata にフィードを流すなどやってみても良さそう 進行具合をみて工夫できそうな点があれば、一緒に考えて見直しを入れて行きたい。

    新卒教育での2周目のRailsチュートリアル - koicの日記
    YassLab
    YassLab 2017/04/23
    #Railsチュートリアル “本編プラスαとして伝えていること: CI サービスと連携 / テストコードを RSpec で / GitHub への PR を出して CI をパス / 新卒2人がそれぞれで進めているので、一方がレビューしてマージする”
  • SlideShareにKeynoteからのPDFをアップロードする際のスクリプト - koicの日記

    1回休みだったので、RWC 会期中にも使ったスクリプトを引っ張って来て活動限界に代える。 RWC でのスポンサープレゼンのスライドについても表題のスクリプトを使ってからアップロードしていた。雑に対象ファイルの拡張子名を見る程度のガード条件を入れてる現段階のスクリプト。 function convert_uploadable_keynote_pdf() { extension=${1##*.} if [ $extension != "pdf" ]; then echo 'Suffix needs to "pdf"' 1>&2 return 1 fi if [ $# -eq 1 ]; then bash -c "LANG=C LC_ALL=C sed -i 's|/Registry (Adobe) /Ordering (Japan1) /Supplement [0-9]|/Registry(A

    SlideShareにKeynoteからのPDFをアップロードする際のスクリプト - koicの日記
    YassLab
    YassLab 2016/11/10
    便利スクリプトだ...!!✨ “RWC でのスポンサープレゼンのスライドについても表題のスクリプトを使ってからアップロードしていた。雑に対象ファイルの拡張子名を見る程度のガード条件を入れてる現段階のスクリプト。”
  • RubyWorld Conference 2016 1日目 - koicの日記

    RubyWorld Conference 2016 1日目だった。 2016.rubyworld-conf.org Matz のキーノートセッションで話されていた、Matz 自身のプレゼンテーションなどの活動がラリーウォールにも影響を受けているといった話は Matz のプレゼンについて改めて興味を持つ話だった。また、もともとはプラモデルを組むような感じで Ruby を作ってたら、社会での位置づけがとても大きくなって自分でも想像していなかった立ち位置になったというのは印象深い話だった。 午後の miyohide さんの発表。mruby 自体はとても薄く作ってあるため CRuby と比較して足りていないと思った機能はまず mrbgems にあたってみるなど、 mruby を使ったことのない立場としては実例を元にしたストーリーでポイントを聞けたのが良かった。 その少し後のセッションで見たかった

    RubyWorld Conference 2016 1日目 - koicの日記
    YassLab
    YassLab 2016/11/05
    “RubyKaigi で okkez さんが話されていた Ruby-Doc (英語) とるりま (日本語) の2つの master が存在することに対して上手いこと同期する仕組みについて、yasulab さんから RailsGuide や RailsTutorial の知見を拝借して話が進んで行くかも”
  • 1