結論 実装に無理があるので、OpalからReactを使いたい。 これ何 Ovtoはhyperappをベースにしている。Ovtoではstateはappに対して1つのツリーしかない。 つまり、各コンポーネントに閉じたstateを持つことはできず、全てはグローバルなstateを触ることになる…
GraphQL Rubyで定義したスキーマの実行中に起きたエラーをいい感じに通知するようにしたので、それを紹介します。 Problem GraphQL Rubyで定義したスキーマのフィールドのresolve中にエラーが起きた場合、Rubyレベルのバックトレースはあまり当てになりませ…
ある時「アプリケーションがどういうタイミングでどういうメールを送るか、エンジニア以外も把握したい」という要望が社内で上がりました。 これはもっともな要望で、アプリケーションがどういうメールを送っているのか分からずユーザーサポートするのはしん…
先週仕事でやったのをメモします。 CI力が低いので、記事を公開することでツッコミをもらうのが目的です。 モチベーション 弊社ではCIの実行が1回あたり20分ほどかかっています。 これはわりとストレスなので速くしたいです。幸いにも削れそうなところが2つ…
rubocop-rails にRails/UniqueValidationWithoutIndex copを追加しました。 rubocop-railsの次期リリース(おそらくv2.5.0)から利用できます。 github.com これはなに Rails/UniqueValidationWithoutIndex copは、RDBMSのunique indexがついていないカラムに…
TL;DR RuboCopプラグインの開発の為にPull Requestを見たいです 仕事としてでもそうでなくても構いません TwitterやGitHub Issueやメール( kuwabara (at) pocke(dot)me )までご連絡お待ちしています 背景 現在私はRuboCop Typed (仮)というRuboCopプラグイン…
RubotyはRubyで書かれたチャットボットフレームワークです。 github.com RubotyはRubyでプラグインを実装して拡張できます。つまりRubyでできることはRubotyでできます。便利ですね。 ということでRubotyでSKIコンビネータ計算をしてみました。 しかし、Ruby…
以前Rubyでoverloadをするという記事を書きました。 この記事で紹介しているoverloader gemを使うとRubyでオーバーロードができるようになります。 overloader gemは今まで引数の数の違いでしかオーバーロードを定義できませんでしたが、v0.2.0で型情報を使…
最近、 https://commits.hatenablog.com で毎日日記を書いている。 この毎日というのは一日も欠かさずという意味で、実際日記を書き始めた2019-12-17から一日も欠かさずに続けている。1 これを続けるために2つ工夫していることがあるので紹介したい。1つは仕…
年末なので、今年GitHubに作ったリポジトリを振り返ってみます。 このリストは次の記事のコードを使って生成しました。 pocke.hatenablog.com リポジトリたち 今年は31個のリポジトリを作りました。 下に行くほど新しいリポジトリです https://github.com/po…
adventar.org この記事は ruby-signature advent calendar 23日目の記事です。 今日が祝日じゃないと今月に入ってから知りました。 私はruby-signatureにKernel.#systemメソッドの型を修正するPRを出しました。 https://github.com/ruby/ruby-signature/pull…
github.com TL;DR ruby -cw をRuboCopのインターフェイスで扱うためのgem ruby -cwとは rubyのコマンドラインオプション。 -cを付けると、Rubyはコードを実行せず、構文のチェックのみを行う。 -c check syntax only -wを付けると、Rubyは見つけた警告をすべ…
gist.github.com 上のRubyプログラムを適当に保存して実行すると、あなたが今年作ったリポジトリの一覧が表示されます。 # 私の例 $ ruby this-year-repos.rb https://github.com/pocke/ika2.vim https://github.com/pocke/chuu https://github.com/pocke/re…
静的解析 RuboCopのコードを書けるから、ASTをトラバースするコードを書くのは慣れているけどそれだけ。 電卓以上のパーサを書いたことがない。 型システムも何もわからない。TypeScriptでプログラムを書くことはできるけど、TypeScriptがどうやって型を解析…
heiseirb.github.io Proposalはこちら pocke.hatenablog.com ついつい本番だと早口になってしまうので、3分ぐらい余らせてしまった。余った時用のコンテンツを用意しておくのが良いのかなあ。 knuさんとkoicさんの発表がそれぞれOSSのいい話という感じで良か…
CfP Advent Calendar って何? adventar.org カンファレンスなどのCfP (Call for Proposals)に投稿したProposalをシェアするAdvent Calendarです。 たんにProposalを投稿するだけです。もちろんProposalの背景なども合わせて書いていただいても構いません。 …
この記事はCfPアドベントカレンダー1日目の記事です。 adventar.org heiseirb.github.io このトークはacceptされました。12月14日に話します。 発表タイトル(※本情報は当選時にLPに掲載されます) Regression Test for RuboCop 発表の概要(※本情報は審査にの…
I'm exiting with GitHub Sponsors. But it is not easy to find who enables GitHub Sponsors. So I created a program that finds users who enable GitHub Sponsors from my following. Usage Download the following code as gh-sponsors.rb. https://gi…
k-ruby.github.io 先日行われた鹿児島Ruby会議01に登壇者として参加してきました。 私は「ruby-jp」というタイトルで、ruby-jpというコミュニティ1について発表してきました。 speakerdeck.com 発表後にたくさん声をかけてもらえたし、ruby-jpのslackにもた…
ruremaとはRuby Reference Manualの略(これには最近気がついた)で、Rubyの公式リファレンスマニュアルをなんやかんやしているプロジェクトです。 github.com 今日このプロジェクトのメンバーに招待されました。できることをコツコツやっていこうと思います。…
ruby-signatureとは github.com Ruby 3に向けて、Rubyの型定義ファイル周りを提供するプロジェクトです。 https://speakerdeck.com/soutaro/ruby-hack-challenge-holiday-number-8 このスライドも参考になるでしょう。 この記事では組み込みライブラリの型定…
3行 RuboCopで「この変数はString」とかの情報を含めて解析させられないか試している まだPoCだけど、なんとなくは動いている https://github.com/pocke/rubocop-typed を見て 何をしているの rubocop-typed というプロジェクトで、RuboCopで今までできてい…
github.com これはなに RuboCop Rakeは、Rake関連のファイルに対してのCopを集めたRuboCopプラグインです。 実はリリースは少し前からしていたのですが、晴れてRuboCop HQ下に移動した1のでリリース記事を書いてみました。 Cops 現在、RuboCop Rakeは3つのCo…
docs.google.com speakerdeck.com speakerdeckよりもGoogle Slideの方が埋め込んだGIF動画が動くのでオススメです。 regional.rubykaigi.org 大阪Ruby会議02でSuppress Warningsというタイトルで登壇させていただきました。 登壇してから気がついたことや、…
ruby-jp1のSlackで話していて面白かったのでまとめ。 Slack上の発言 RubyのString#gsub!はString#gsubの破壊的バージョンで、置換結果でレシーバを上書きする。 当然gsub!の方が新しいStringオブジェクトを生成しないので速いと思っていたら、どうやらそんな…
あるRailsアプリケーションで使用しているRubyを2.5から2.6に上げたところ、unicornがrestartしてくれなくてハマった。 その時の問題と解決方法をメモ。 エラー内容 restartに失敗しているunicornのerror logを見てみると、次のようなエラーが出力されていた…
github.com これはなに RuboCopのカスタムCop gemを作るためのジェネレータです。 rubocop-rspecなどのgemを作る時のひな型を生成します。 使い方 まず、gem installします。 $ gem install custom_cops_generator そして、custom_cops_generatorコマンドを…
regional.rubykaigi.org rubykansai.doorkeeper.jp このCFPは大阪Ruby会議02に採択されました。 発表の題目 Suppress warnings 発表の概要 Rubyを-wオプション付きで実行したことはありますか? このオプションをつけてRubyを実行すると、様々なRubyの警告が…
元ネタ: https://twitter.com/p_ck_/status/1164901123666272262 問題 次のRubyプログラムを実行した時の出力を、次の4つから選べ。 case when p, q = 1, 2 p 3 else p 4 end p p p q 選択肢1 3 1 2 選択肢2 3 nil 1 選択肢3 4 1 2 選択肢4 3 nil 2 答えと解…
TL;DR https://join.slack.com/t/ruby-jp/shared_invite/enQtNzE1NDg1ODE2MDM2LTE1NTc2Y2M0ZThlNzdmOWEyZjYwZjdhZDAwNjNhMGE0NDJiODcwMTNkZWRjOTgyMzNkZjEyMmQ1ZWYyNzkzYzk に入るといい感じになってほしい このブログの内容は私個人の意見であってこのSlack…