Lチカ開発ブログ

https://l-chika.com/の開発ブログ

symbol not found in flat namespace '_mysql_affected_rows' が発生した時

前提 macOS Monterey 12.3.1 Ruby 3.1.1p18 Rails 7.0.2.4 MySQL 8.0.29 現象 bundle install は正常に実行できたが、./bin/rails s などのRailsコマンドを実行すると以下のようなエラーとなる。 ※抜粋 $ ./bin/rails s /Users/foo/.rbenv/versions/3.1.1/li…

RubyでSNSのシェア数を取得する方法

social_sharesというgemを利用する。はてブにも対応している github.com :000 > require 'social_shares' => true :000 > url = 'http://www.apple.com/' => "http://www.apple.com/" :000 > SocialShares.hatebu url => 506 古い記事やgemとかだと、 twitte…

rails generate model のいろいろ

rails generate model で出来る事のメモ(オプション以外の) referencesとpolymorphic db/migrate/XXX_create_products.rb limit index limitとuniqインデックス db/migrate/XXX_create_users.rb password_digest db/migrate/XXX_create_users.rb auth_token …

Webpacker + images + Spectre.css

前提 以下をインストール済み Webpacker 3.2.0 spectre.css 0.5.0 l-chika.hatenablog.com 参考 Webpacker: Assets Docs Rails アプリに Webpacker を導入する Webpacker 3ではじめるRailsエンジニアのためのモダンフロントエンド入門 〜Sprocketsを使わない…

Docker + Rails + Webpacker + Spectre.css

以下のつづき。 l-chika.hatenablog.com 前提 DockerでRailsが起動する 概要 Webpacker のgemインストール Spectre.css をyarnでインストール 参考 [Rails 5.1]webpackerを使用して、Spectre.cssを適用する方法 Rails & Webpackerでフロントエンド開発環境を…

Docker + Rails5.2.0.beta2

概要 DockerでRails環境構築 - DBはMySQL 参考 Quickstart: Compose and Rails docker-compose で Rails 環境を構築する Make bundler fast again in Docker Compose docker-composeでRailsのGemを更新する時、docker buildするのを回避したい 超初心者がDoc…

Goでgoqueryを利用してスクレイピング

Goでスクレイピング。 やりたい事 検索結果へアクセス。 検索結果の一覧から、各詳細ページのリンク取得 詳細ページのコンテンツにアクセス 検索結果の次のページのリンクを取得。1へ戻る。 github.com 実装 パッケージをインストール $ go get github.com/P…

RailsのAPIモードでドキュメントを作成するならapipie-rails

目的 やりたいこと 検討したこと apiモードでインストールされるGemfile 実装手順 Gemfileの追加 インストール config/initializers/apipie.rb の変更 ドキュメントの確認 画面キャプチャ 関連本 目的 以前にdockerでraisのapiモードでアプリケーションを作…

「サッカーマティクス」を読んで

サッカーマティクス 数学が解明する強豪チーム「勝利の方程式」 (サッカー数学)を読んでの感想。 本書の目的は「数学観とサッカー観の両方を一変させる」こと。 「数学を現実世界に当てはめてみることは、その理論の細部を正確に理解するのと同じくらい重要…

Docer & Mysql & Rails APIモード

ローカルにdockerを利用して、RailsのAPIモード環境を構築。 作業ディレクトリ・Gemfileの作成 Gemfile Docker Dockerfile docker-compose.yml Rails rails new database.yml変更 実行 db作成 参考 作業ディレクトリ・Gemfileの作成 $ mkdir api-app && cd $…

ActiveRecordでIncorrect string value

ActiveRecordで絵文字をインサートする場合に、カラムが utf8mb4なのにMysql2::Error: Incorrect string value が発生。 障害 F, [2017-09-13T09:56:29.800518 #16145] FATAL -- : [ActiveRecord::StatementInvalid] Mysql2::Error: Incorrect string value:…

「人月の神話」を読んで

人月の神話【新装版】 を読んで。 有名過ぎる名著なので、気に入った一節を抜粋。 第2章 人月の神話 人月 コストは実際に人数と月数の積に比例する。が、進捗はそうではない。したがって、仕事の大きさを測る単位としての人月は、疑うべき危険な神話なのだ。…

GoでGoogle Custom Search APIを利用して画像収集

Google Custom Search を利用し、Goで画像を収集。 google-api-custom-search-example を参考に実装。 前提 (google-api-go-client)https://github.com/google/google-api-go-client/tree/master/customsearch/v1 を利用 サービスアカウントキーを発行 構成 …

Goのイディオム

スターティングGo言語 を読んでのGoのイディオムをメモ。 ifのイディオム if _, err := doSomething(); err != nil { /* 関数doSomething()がエラーありと返した場合の処理*/ } mapのイディオム m := map[int]string{1: "A", 2: "B", 3: "C"} if _, ok := m[…

「カンバン仕事術」を読んで

開発プロセスの参考にカンバン仕事術 を読んでのメモ。 「カンバン ソフトウェア開発の変革」を読んで - Lチカ開発ブログ につづいて、スクラム開発で、タイムボックス化されたイテレーションに合わせるユーザーストーリーを一貫して継続する事が困難となっ…

Rails5.1+webpack+React

Rails5.1で、Reactの利用を開発モードで試してみる。 前提・環境 手順 Rails5.1のインストール Gemfile アプリケーションの作成 サーバー起動確認 Reactサンプルページの作成 controller生成 webpackでbuild hello_react を実装 HMRのパスを変更する webpack…

「カンバン ソフトウェア開発の変革」を読んで

開発プロセスの参考にカンバン: ソフトウェア開発の変革 を読んでのメモ。 スクラム開発で、タイムボックス化されたイテレーションに合わせるユーザーストーリーを一貫して継続する事が困難となってきたため、開発プロセスの変革の参考に本書を読んでみた。 …

Ubuntu 14.04 LTSにYarnをインストール

前提 Ubuntu: 14.04 LTS 参考 https://yarnpkg.com/en/docs/install#linux-tab インストール 公式の手順どおりにコマンドを実行 $ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - OK $ echo "deb https://dl.yarnpkg.com/debian/…

Rails Consoleで確認するとConfig(Settings)の更新がされない時

定数を環境毎に管理できるgem config で、config/settings.yml の中身を変更して、Rails Consoleで確認しても反映されない場合がある。 github.com その場合は、単純にspringが起動していたためだった。 $ ./bin/spring status Spring is running: 4475 spri…

RubyでAWS SNS からiOSにプッシュ通知

サーバーからiOS端末にPUSH通知を送る 前提 IAMでSNS権限があるユーザを作成されている デバイスのトークンを取得している SNSでApplicationのArnが作成されている require 'aws-sdk' require 'json' aws_access_key = 'IAMのaccessKeyを設定' aws_secret_ke…

nattoとclassifier-rebornを利用してRubyで文書分類

Pythonの統計・数学ライブラリを利用した文書分類はあるが、Rubyで実現できる方法を模索。 目的 文書(データ) の内容から、いくつかのグループ毎に自動的に分類する 手順 訓練データを予め作成しておく 訓練データを形態素解析して、訓練する 実際のデータを…

RubyでMarkdownのImgタグのサイズ指定

Markdownエディタを作成したので、次は表示をつくる。 l-chika.hatenablog.com 前提 実現したい事 参考 実装 Decorator view 参考 こんなアプローチもあった 前提 以下のGemを利用 Redcarpet Draper 実現したい事 ![image](http://url.to/image.png = 250x25…

RailsでsimplemdeをつかってMarkdownエディタをつくる

RailsでMarkdownのエディタを実装するために、simplemdeを利用する。 github.com 前提 インストール 実装 app/assets/javascripts/application.js app/assets/stylesheets/application.scss form スクリーンショット 前提 l-chika.hatenablog.com インストー…

include_all_helpersについて

include_all_helpersについてのメモ。 以下にあるとおりController名と同名のhelperしか読み込まないように設定をすると、ちょっと厄介なことがある。 qiita.com HelperをもつGemを利用する場合。例えば、font-awesome-rails 。 github.com 課題 config/appl…

ActiveModelのベストプラクティスを考える

ActiveModelとは ActiveModelとは こちら にあるように Modelと直接紐付けないような、フロントのフォームに密接に関わるバリデーションを実装する場合に便利な Module。 課題 ActiveModel を利用シーンの一つとして、一つフォームで複数のモデルを扱うこと…

Mechanizeでリンクをスクレイピング

Mechanize を利用したときのメモ。 Mechanize を試した理由 よく利用する関数と戻り値の型をメモ 利用例 Mechanizeをラッパーしたリンク取集クラス 呼び出し例 おすすめ本 Mechanize を試した理由 ちょっと前は anemone を利用していたが、最近はメンテして…

ransackのinをカンマ区切りでする

やりたいこと ransack を利用して、 in の検索をカンマ区切りで指定できるようにする。 手順 Controller class HogeController < ApplicationController ... def index @q = Hoge.ransack(ransack_queries) @hoges = @q.result.page(params[:page]) end ... …

gretel+bootstra4でパンくず

Railsで gretel をパンくずを作る。 やりたいこと 課題 解決方法 手順 Gemfile インストール パンくずを設定 view メモ 完成 やりたいこと bootstrap4 の breadcrumb でパンくずをつくる。 課題 <% breadcrumb :issue, @issue %> ヘルパーのオプションでは l…

werckerでpushが正常にフックされなかった時の対応。

werckerを利用していて、github等からフックして自動ビルドさせているが、時々フックされずrunの一覧にも追加されない時がある。 www.wercker.com API devcenter.wercker.com トークン ここ からトークンを発行。 curl $ curl -i -X POST \ -H "Content-Type…

enumerizeで検索select box

ransack で検索フォームを作成する場合のenumerize を利用したselect boxの作成について。 github.com github.com 課題 解決方法 locale モデル ヘルパー view 最後に 課題 enumerize で検索用のselect boxを作成したいが options メソッドだと、 > Product.…