Seleniumを使って、Google画像検索から画像をスクレイピングすることにしました。 環境 Ubuntu 18.04.2 LTS WSL2 on Windouws 10 ruby 2.7.2 selenium-webdriverをインストール まずはruby経由でWebDriverへのリクエストを送信するためのgem、selenium-webdr…
自作したスクレイピングツールで画像をあつめたい 現在開発中のアプリケーションで、エフェクターボードの画像が100枚くらい欲しかったので、Google画像検索から画像を集めることにしました。 画像収集は機械学習などでかなり需要があるらしく、自作せずとも…
とにかくおすすめな「情熱プログラマー」 エンジニアのChad Fowlerさんが自身の経験を元に、エンジニアがどう生きていくべきか、について書いた本です。 技術革新によって自分の仕事がなくなるかもしれない、あるいは稼げなくなるかもしれない、という危機に…
Refactoring Kataでリファクタリングを練習しています。今日も頑張りました。 Tennis-Refactoring-Kata github.com 概要 テニスのスコアリングをするプログラムのリファクタリングを行う テストは書いてある 同じ仕様のプログラムが3パターン用意されていて…
rackgithub.com 概要 WebサーバーとWebフレームワークの組み合わせを自由に選択できるように、統一的なインターフェースを提供するライブラリ。 Middlewareを選択することで、双方向の通信の間に特定の処理を割り込ませることができる。 各ソフトウェアで必…
Refactoring Kata CodeKataというサイトがありまして、これはプログラミングの練習をしたい人のための問題集です。この様な練習問題を総称して「Code Kata」あるいは「Coding Kata」と呼んでいます。Emily Bacheさんは、リファクタリングに焦点を絞ったCode …
Active RecordでNull Objectパターンを使うことはできるのか考えてみました。 RubyでNull Objectパターン RubyでもNull Objectパターンを使えます。下記の記事を御覧ください。 ytnk531.hatenablog.com Active RecordとNull Objectパターン どんなときに使い…
Rubyの場合はNil Objectパターンと呼ぶことになるんでしょうか? Null Objectパターン Null Objectパターンは、値が存在しない場合の処理を共通化したい場合に使えるデザインパターンです。 こちらの解説がわかりやすいです Nullオブジェクトパターンの紹介…
N+1問題 N+1問題は、ループ内の処理を通過するたびにSQLが発行されるというパフォーマンス上の問題です。Railsにおいては、includesメソッドを使って、preloadあるいはeager loadを使って回避できます。 こちらの記事がわかりやすいです 【Ruby on Rails】N+…
Railsと設計 Railsは、Active Recordを中心に据えてコードを書いていきます。そうなると、自然とテーブル設計に強く依存したアプリケーションになって行くので、アプリケーションが複雑になっていくとツライ!となることがあります。こういった、Railsのアー…
RailsはSQLからJavaScriptまで広い範囲を扱えるため、詰まりポイントが非常に多いです。私がRailsに慣れなかったころに確認していたことを振り返ってまとめてみます。 どこがつまりポイントになるか Railsが扱う要素技術は非常に多いので、初心者にとっては…
bulmaは美しいCSSフレームワークです。Railsで使おうとする場合、bulma-railsというgemを使ってもいいのですが、せっかくyarnが入っているので、yarnでインストールすることにしました。 bulma-railsは、本家よりすこし遅れてアップデートが反映されていくの…
Stimulas Stimulasは、少ないコード量で動的な表現をすることに主眼を置いて開発された、軽量なJavaScriptフレームワークです。DHH率いるBaseCampが公開してます。 主に提供している機能はこの2つです。 DOM要素のイベントと、そのイベントにフックするJSの…
概要 Ruby用の国際化(i18n)機能を提供するgem。ymlで書かれた設定ファイルを、規定の構造で設定しておくと、I18.tメソッドで翻訳を取得できる。 github.com 仕組み I18n.tの引数と、現在設定されているロケールを頼りにymlに書かれた対応関係に従って翻訳を…
この記事では、Ruby3で追加される予定のScheduled Fiberを紹介します。Ruby 3.0.0 preview1の情報であり、この機能はまだまだ議論と開発の真っ只中です。実際に正式にリリースされるのものとはインターフェースや実装が異なることをご理解ください。 Ruby本…
github.com 概要 システムで利用可能なJSONパーサーのうち、最適なものを選んで使ってくれるJSONパーサーのラッパー。 できるだけ早いものを使うようにしていて、独自に優先順位を付けている。 候補がなにも使えない環境の場合はOkJSONを使う。 仕組み Adapt…
Fiberとnio4rを組み合わせてサーバーを作りました。あたまバグりそうになるのでよかったら見てってください。 Fiberとnio4rを組み合わせる Fiberは、軽量なスレッドを作成できます。このスレッド上で、途中まで実行した処理を中断し、再開することができます…
TCPコネクションのようなIOを複数扱うとき、書き込みや読み込みが可能になっているものを一つ選びたい、ということがあります。RubyにはIO.selectというメソッドがあり、これを使えばそのようなことができます。 IO.selectは、Rubyが動く環境ならどこでも動…
ちゃんとしたHTTPサーバーを作るのって難しいんですが、それっぽいものを作るなら実はそんなに難しく無いです。 HTTPサーバーの処理の流れ とってもざっくり説明すると、HTTPサーバーの処理はこんな流れです。 TCPコネクションを確立する HTTPリクエストを受…
リファクタリング:Rubyエディション作者:ジェイ・フィールズ,シェーン・ハービー,マーティン・ファウラー発売日: 2020/03/21メディア: 単行本に、extendの興味深い利用方法が出てきていたのでご紹介。この本の、8.13 タイプコードからモジュールのextendへ(R…
↓のような経緯があり、今週のニュースをたくさん読んだ。 あとあと反省することになりそうだから書いておこう。数日前、情報収集の体制を整えようとしてfeedlyを整理した。フィードはこんなかんじ。良い点:知らないキーワードがたくさん目に入る困る点:興…
この記事 Rubyで非同期処理しよ~、って思ってちょっと調べ始めた。調べれば調べるほど訳わかんなくなって来てしまい、頭が飽和してきた。もうなんかほんとによくわかんない。今の頭の中のダンプをとっておき、ちょっと頭をリフレッシュしたくなってきた。 …
SOLID, KISS, YAGNIはいずれもソフトウェア開発において重要とされる原則です。原則というくらいなので、様々な形態を持つソフトウェア開発において共通して適用することができます。逆に言えば、特定のコンテキストに依存しない程度に抽象化されていると言…
エンジニアになって2年半、ここのところ勉強したいことが多すぎてどれからやろうか、と考えてしまう時間が増えてきました。WebDveloper Roadmapに載っているものから優先して取り組んで行こうと思ったので記録しておきます。私のスキルの振り返りなので、他…
ここにいる全員にあなたのようにStimulusとturbolinksを使うことを薦めますか? まず第一に、ブログ、カンファレンスあるいはtwitterで人気のあるものと、実際に作られているアプリケーションで人気のあるものには違いがあります。 私は、それらの間には大き…
www.youtube.com これの質疑応答を日本語にしようとしましたが、ボリュームがすごくて全然ゴールが見えません。多分part5くらいまで行きます。 多分50%くらいは間違ってるんだと思います! 編集リクエスト、指摘、訂正お待ちしてます!! 誰か同じようなもの…
UIT#6 フロントエンド開発の勉強会。LINE株式会社が運営していて、1クォーターに1回のペースで開催している。 テーマ: 進化する React.js 場所: LINE本社 カフェテラス(新宿ミライナタワー23階) 参加費: 0円 参加人数: 100人 参加方法: connpassで抽選 htt…
なんか今日仕事していたら、ふと、自分が心からやりたいことに気づいたような気がするので、忘れないうちに今の思いを綴っておく。 今、やりたいこと 大規模だったり、やりたいことが複雑だったり、パフォーマンスが必要だったりして、技術的に困難なシステ…
大きなタスクをもらいました。 そしてその大きなタスクは、さらにどんどん大きくなっていきます。 タスクをちぎるといいよ、という話をツイッターで見かけたので実践してみた。 計画 〇〇機能を実装する という、大きなタスクを30~60分程度でこなせる大きさ…
nextCloudにrubyからファイルをアップロードしようとしたら、OCSを使う必要があった。OCSってなんやねん&日本語の情報少ないねんな状態だったので概要書く。英語版wikipediaの日本語訳。 Open Collaboration Services Open Collaboration Service(OCS)は、…