技術
2年以上前に「名前が「ン」で終わるポケモンの数」を数えるという記事を書きました。 blog.tatehitolog.com 当時(第7世代)の全ポケモンの種類は809種類だったのですが、第8世代や、先月発売された『Pokémon LEGENDS アルセウス』まで含めると905種類にまで…
子供と一緒に遊べる『シルエットクイズ』アプリをつくっています。単純に画像を切り替えるだけのアプリですが、画像をサーバーにアップロードすることなく登録したく、その方法について調査した結果をメモしておきます。 expo version "42.0.3" react-native…
例えば 一覧画面を表示する 一覧画面から登録画面へ遷移する 登録後一覧画面に戻る とするとき、最後に一覧画面を表示したときに登録したデータを表示させたい。 何もしないと登録したデータは表示されない。 これでできた expo version "42.0.3" react-nati…
Rails7からNode.jsが要らなくなるとかそういう話はまだ理解できていないのだけど、とりあえずRails7を使いたくて Rails7 + React + Tailwind の環境を作ってみたので手順をメモしとく。手順といってもDHHの動画の通りにやってみただけ。 youtu.be tailwindと…
デプロイ負荷軽減のため、ローカルで assets:precompile するように capistrano の設定を変更したら今まで動いていたデプロイタスクが動かなくなった。 動かなくなったタスクはこうなっている。 task :hoge do on roles(fetch(:assets_roles)) do ... end en…
環境など Rails 6.1.3 Ruby 2.7.2 geocoder 1.6.7 郵便番号から市区町村を取得する gem geocoderを使うと、郵便番号から住所や経度緯度などを取得することができる。Geocoder.searchは配列を返すので、firstでGeocoder::Result::Googleのインスタンスを取得…
modelにattr_accessorを定義することで、モデルにフィールドとして存在しなくてもsimple_formで扱えるようになります。 Model # 'hoge'はmodelにフィールドとして存在しない attr_accessor :hoge View Viewはこちら。チェックボックスを定義する例です。 <%=…
ary = ["A", "B", "C", "D", "E"] ary.each_slice(2).map { |a, b| [a, b] }.transpose # => [ [ "A", "C", "E" ], [ "B", "D", nil ] ] each_sliceとtransposeを使って、奇数番目の要素と偶数番目の要素を分ける。 ary.each_slice(2).map.to_a.transpose 本…
リードエンジニアの方と別のメンバーの間でO/Rマッパーを採用するか否かで意見が割れている。正確にいうと、議論しているわけではなく各々のやり方で進めちゃってる感じ。 別のメンバーの方が採用しているO/Rマッパーは、ツールを導入しておらず独自にそれ専…
実務でゼロからDB設計をしたことがないので、「DB設計筋」をつけるためのトレーニングをしている。具体的に言うと、映画館の発券システムやラーメン屋の注文システムなど、世の中の業務をネタにDB設計を行い、Railsで実装して正しく設計できているかを検証す…
最初にモデルを作成するタイミングで設定しておくのがベストだけど、そうもいかないときは後から設定しなくてはならないのでその手順をメモ。 検証環境 Rails 6.0.0 Ruby 2.6.3 1.マイグレーションファイルを作成する $ rails g migration [migrationファ…
ワイヤーフレームをつくらずに実装に着手すると、デザインを考えながらコーディングすることになるので効率が悪く、手戻りも起こりやすい。モチベーションも萎えてくる。 ・・・ということで、最近『Figma』というデザインツールを少々触っている。その所感…
Herokuデプロイまでの手順をメモ。 Rails new まずRails newする。 $ rails new rails-sample-project-management-tool _6.0.0_ --skip-test 上記だと以下になる。必要に応じて変更する。 アプリの名前:appname Railsバージョン 6.0.0 Minitestなし Heroku…
FTPClientでファイルの存在確認をする方法のメモ。 /** * ファイルの存在確認 * @param srcDirName ディレクトリ名 * @param srcFileName ファイル名 * @return true: 存在する */ public boolean exists(String srcDirName, String srcFileName) { // ファ…
いちいち思い出すのが面倒なので手順を記録しておく。なお『devise』と連携して実装する場合はこの通りでは無い。 確認環境 Rails 6.0.0 Ruby 2.6.3 omniauth 1.9.0 omniauth-twitter 1.4.0 1.TwitterAPIの登録 developer.twitter.com CallBack_URLの設定…
使ったことのない技術について調べてみたシリーズ、今回は『Node.js』について。 Node.jsとは? 一般的にJavaScriptというのはWebブラウザ上(フロントエンド)で動作する言語である。 フロントの実装をする上ではなくてはならない存在なわけだけど、「JavaS…
2019年の振り返り記事でも少し紹介した、遊んだゲームを記録できる『ゲームソフト管理サービス』というアプリケーションを、細々とつくっていました(正式サービスとして公開する予定は今のところありません)。 このアプリの規模は画面数が4、テーブル数が2…
知らない技術やキーワードと出会ったら、概要だけでも調べておくべきである。 ......と技術者として至極当たり前のことをふと思ったので、箇条書きレベルですが、調べた内容をブログに残しておきます。 今回の調査対象は『Docker』です。 Dockerとは? 『Doc…
RailsのデフォルトDBはSQLiteです。一方、アプリケーションを簡単にデプロイできることで人気のPaaSであるHerokuのデフォルトDBはPostgreSQLです。 Railsでは環境ごとに異なるDBを利用している場合でも、基本的に問題なく動作します。かの有名なRailsチュー…
Railsにおけるmigrationを使ったテーブル定義の変更方法は、Qiitaを筆頭に、ちょっとググればすぐ出てきます。大変ありがたいのですが、一向にmigrationファイルの書き方を覚えられないし、毎回ググるのも面倒になってきたので、「自分のブログを見れば全部…
Semantic UIはシンプルで洗練されたデザインが魅力的なCSSフレームワークです。以前はBootstrapを利用していましたが、個人的にデザインが好みなのと、部品の種類が多いので、いま開発しているアプリではSemantic UIを利用しています。 さて、Railsではseman…
Railsアプリを個人開発するにあたり、脇に置いておいてサッと参照できるリファレンス本があったらいいなあ、と思い『Ruby on Rails5 アプリケーションプログラミング』を購入しました。 Ruby on Rails 5アプリケーションプログラミング作者:山田 祥寛技術評…
既存コードを修正するのと、ゼロからコードを組み上げるのは難易度が全然違います。既存コードの修正は、既存のアーキテクチャに則ってコーディングするのが基本です。つまり「既存コードを真似して書く」ことができます。 一方、ゼロから組むとなると、自分…
Railsのエラー画面をリッチにするgem『better_errors』を使ってみたので、導入方法を紹介します。 こんな感じでリッチになる。 使用バージョン Ruby 2.6.3 Rails 6.0.0 better_errors 2.5.1(現行の最新版) binding_of_caller 0.8.0(現行の最新版) インス…
はじめに つぎにつくる予定のWebアプリでは、認証(ログイン)機能を実装しようと思っています。そこで認証機能を実装するためのgemで有名な『devise』の最低限の動作確認をしてみました。 環境は以下の通りです Ruby 2.6.3 Rails 6.0.0 devise 4.7.1 (現時…
オブジェクト指向でなぜつくるのか 第2版作者:平澤 章日経BPAmazon どんな本か 初版2004年のオブジェクト指向の定番本 オブジェクト指向そのものについては、三大要素の紹介程度で、活用方法は深く掘り下げられていない そのかわり、オブジェクト指向が生ま…
知っていればなんて事ないですが、知らないと躓くポイントになるのでメモしておきます。 cloneNodeでHTML要素(ノード)を複製できます。ですが、複製対象をセレクトボックスとした場合、考えなしに複製すると、セレクトボックスの選択値がリセットされて複…
以前、『イラスト図解式 この一冊で全部わかるWeb技術の基本』という、WEB技術に関するトピックを幅広く取り上げた、図解本を読みました。見開き1ページに解説と図解がセットになっていて頭に入りやすく、Web技術についてザックリと把握したい、という目的を…
追記:最新作『アルセウス』までのポケモンで数え直してみました blog.tatehitolog.com 追記ここまで はじめに 開発・公開中の『ポケモンしりとり』は、ポケモンの名前を使ったしりとりです。ルールは通常のしりとりと同じなので、名前の語尾が「ン」で終わ…
ソフトウェアのテストは事前に作成したテストケースに従って実施(またはテストコードを記述)するのが一般的です。(*1)つまり、「良いテスト(=ソフトウェアの品質向上に貢献するテスト)」が実施できるかはテストケースの品質に依存してきます。 これま…