Developers Summit 2024 のリレーセッションでプチ登壇してきた

Developers Summit 2024 の最後の時間枠「生成AIで開発生産性向上!リレーセッション」の中で8分ほどだけしゃべってきました。れいによって、どういう取り組みをして登壇に至ったのかを書いておこうと思います。

Kaigi on Rails 2023 現地参加して "E2E testing on Rails 2023" というお話をしてきた

Kaigi on Rails 2023に現地参加してきました。2年前の「システムテスト解剖学」という発表の続編的な位置づけで、RailsのE2Eテストを取り巻く技術の解説に徹する発表でした。あれもこれもしなくても、1個だけ仕組みを作ればいいんだという発見の導出などなど…

Rakuten miniを3000円で買って、みまもり端末にする

Rakuten miniを中古で3000円で購入してAndroid Management APIでKIOSK端末にしてみまもり端末化してみた。

Ruby 2.7, 3.0, 3.1でもデータクラス (Data.define) が使えるようなライブラリdata_class_factoryを作った

Ruby 3.2のデータクラスっていうやつがとてもハイセンスで、おそらく多くのRubyistたちが望んだものだろう。Ruby 2.7-3.1でRailsアプリケーションを動かしているところでも使いたいので、バックポートしたライブラリを作った。

自分で開発しているRuby用のライブラリに型情報を足す

自分で開発しているplaywright-ruby-clientのライブラリに型情報 (RBS) を追加するためにやったことを紹介します。

DBを読み取り専用で使うWebアプリケーションを作るならSinatraがお手軽

社内向けWebアプリで、機能が限定的だったとしても、SinatraじゃなくてRailsで書いたほうが総合的にラクだ。しかし、最近になって、SinatraでWebアプリケーションを書いてみて「これはうまく行った」という例を1つ見つけた。

Fukuoka.rb 第256回でLT登壇するまでの話

Fukuoka.rbのLTで久々に登壇をした。まじめなasync/awaitの話をするように見せかけて、ポニョの歌を使った並列処理の勉強会ライブコーディングをするというネタを仕込んでの登壇。その反省記事。

rakudaでWebアプリケーションのHTTPクライアントを"段階的に"作る

最近のSPAはだいたい、裏でJSON APIを叩いて結果をレンダリングする作りをしている。なので、自分用に必要な機能だけ詰め込んだコンソールアプリを簡単に作ることができる。以前作ったrakudaでは不便だったところを改善して、自分用のコマンドラインHTTPクラ…

HTTPieのような使い勝手でちょっとだけカスタマイズできるコマンドラインAPIクライアントを作った

最近、仕事のほうでAndroid Management APIってのをさわってて、お試しでAPIを叩くときの開発体験があんまり良くないなーと感じ、自分用にHTTPieのような使い勝手でHTTPクライアントが作れるライブラリを書いてみた。

入力フォームや設定画面をつくるときのデータ構造アンチパターン

「なんで?」と聞かれるとうまく言語化できてない部分が多いけど、経験的に不吉な香りがするやつ。 デフォルトがtrueの選択肢 デフォルトtrueの選択肢は、falseとNULLを厳密に区別しないといけなくなる。 item.value || true なんて書いた瞬間にバグる ユー…

Kaigi on Rails 2021で「Railsのシステムテスト解剖学」の話をした

10/22(金)に、Kaigi on Rails 2021に登壇した。登壇者としての回想日記。

なんだかんだで1年半くらいRuby向けにブラウザの自動操作ライブラリを作っている

かれこれ1年半くらい、Ruby向けのブラウザオートメーションツールをいろいろ趣味で開発している。IEがほぼ滅んだ今となってはRubyでもPlaywrightはSeleniumと同様に使っていけるはずで、そろそろ「Seleniumが唯一無二の選択肢」みたいな状況には終止符を打…

PlaywrightをRailsのsystem specから使いたくてCapybaraドライバを作った

RailsからPlaywrightでの自動操作をするには少しハードルが高い。Playwrightは自分が起動したブラウザじゃないと自動操作できないので、CapybaraがSeleniumドライバ経由でブラウザを起動しているところをごっそり置き換えたカスタムドライバを作った。 capyb…

糸島のパン屋 "のたり" のネット通販を利用してみた

糸島の桜井にある"のたり"のパンをネットで買えるなんて、素晴らしい時代である。 pic.twitter.com/AejJLujWRf— Yusuke Iwaki (@yi01imagination) 2021年4月24日 久々に、エンジニアリングじゃないネタ。 のたりのパン 過去にパンを自分で焼く重要性を説いて…

いよいよPuppeteerを使う理由がなくなってきた

Playwright 1.9.0で browserType.connectOverCDP というAPIが追加されて、まさに puppeteer.connect 相当のことをやってくれるようになった。つまり、「Seleniumの補強として使う」ということが、PuppeteerのみならずPlaywrightでもできてしまうようになった…

スキマ時間は意外とある

昨年の暮れに12インチMacbookを入手してからというもの、肌身離さず12インチMacbookを持ち歩くようになった。 yusukeiwaki.hatenablog.com こいつはとても優秀で、本当にどこにいてもコーディングが可能なのだ。スタバでドヤるという意味ではなく、エレベー…

第13回フクオカRuby大賞で入賞!その振り返り。

第13回フクオカruby大賞っていう、Rubyをネタにしたビジネスコンテストてきなものに参加した。puppeteer-rubyを発表して優秀賞とマネーフォワード賞の2つをいただけた。(わーい!)

ブラウザ自動操作のPlaywrightはRubyからでも使える?

Playwrightには爆速の多言語展開スピードを支える何かがあるらしいことはわかるが、ドキュメントには一切書かれていない。なので、いろいろソースを読んで調べた&実際にRubyからPlaywrightを使うPoCを作ってみた。

2020年のふりかえり

とくに書くことは決めていないが、2020年にあったことを書いとこう。 ちょっと昇給した 2019年の6月でクラウド○ークスをやめて、2019年7月から福岡が本社のIT企業で働き始めた。もともとCW社にいた頃もジリ貧生活していたものが、転職後しばらくはさらに貧乏…

「学習する組織」を読んでいる

まじでこれはいい本だ 読み始めたきっかけは、クラウドワークスエンジニアブログにあったtmknomさんの 「無人化システム」を駆逐する組織マネジメントとエンジニアリング の記事だ。組織論の話なのかな?と思わせるタイトルだが、「システム思考」などの理論…

3年遅れで12インチMacbookに惚れた

ちょっとした物欲で、12インチMacbookをメルカリで5万でポチった。 2017年モデルの Core m3と非力なマシンではあるが、思いの外めちゃくちゃ自分には重宝しそうだ。

mac OS Big Sur beta6にした結果

まったく新しいmac OS Big Sur beta6にした結果起きたことを、事実ベースでまとめました。

puppeteer-rubyをFirefoxに対応させた

puppeteer-rubyは従来はChromeのみを自動操作できるものでしたが、0.0.19からFirefoxの自動操作にも対応しました。Firefox対応したときに起きたできごとの共有です。

Deviseをデフォルト構成で使うとIPアドレスは漏らせるか?

DeviseでIPアドレスを漏らせるのか調べてみた

LinkedInとWantedlyを退会した。YOUTRUSTには期待している...。

Wantedlyに、しょーもないスカウトが来てたことをきっかけに、なんとなくLinkedInとWantedlyを退会した。 まともなスカウトメールがほとんどこないLinkedInのアカウントは削除した pic.twitter.com/r83aQPoFat— Yusuke Iwaki (@yi01imagination) 2020年8月2…

RSpecでテストケースごとにHTTPサーバーを立てて試験する

puppeteer-rubyを開発していて、いよいよ単体試験を書くことにした。 そこで問題となったのが、「ボタンだけを含むHTMLページを開く」みたいな試験。 本家Puppeteerでは静的なHTMLページをいくつか用意してHTTPサーバーを立ててmocha(JavaScriptのテスト)…

セブンイレブンのWifiスポット 7SPOTは、むちゃくちゃ速い!

nuro光が全然開通しないので、写真や動画のアップロードをするのにコンビニに行ったりカフェに少しだけ行ったりしてるんだけど、そのなかでの大発見。セブンイレブンのWifiスポット 7SPOTは、むちゃくちゃ速い!

Selenium (Ruby) やCapybaraの弱いところをPuppeteerで救いに行く

「puppeteer-rubyは、Capybaraと共存して動作精度を向上できるのでは?!」っていうことに先週くらいにふと気づいたので、カッとなって実装してみた。 github.com CapybaraとPuppeteerの共存 そもそもなんで共存させる必要があるのか? Seleniumだと「○○の要…

puppeteer-ruby 0.0.11で完走率が劇的に改善。ブラウザの自動操作が快適に。

これまでのpuppeteer-rubyでは、自動操作の完走率がものすごく悪く「なんか時々止まってしまう」という最悪な状態だった。 0.0.11では完走率が大幅に向上した。

puppeteer-rubyでChromeブラウザ自動操作

趣味で開発しているpuppeteer-rubyがだいぶまともに動くようになってきた. まだちょっと不安定だけど、「Rubyで受け入れテストや自動テストを書きたいけど、Seleniumの精度だとしんどい」っていうのに共感するかたはぜひ使ってみてください。