読者です 読者をやめる 読者になる 読者になる

Lチカ開発ブログ

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

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.…

デザイン知識がないプログラマーが「見つけやすさのデザイン」を考える

ここまで で Railsアプリケーション構築のフロントエンドの設定まで完了。ここからはWebアプリケーションのサイト構成とページ構成を検討する。 l-chika.hatenablog.com 検討にあたっては、サイト・ページ構成をーから構築した経験がないので、取っ掛かりと…

rails generateコマンドで忘れがちな事「rails g -h」

rails generate コマンドで、よく使うけど忘れてしまいがちな以下をメモ。 generateが可能な事・オプション。Rails標準でgenerateできるものは大体理解しているが、追加した gem のgenerate方法 生成されるものを制限するskipオプションについて モデルを作…

Railsのモダンなフロントエンド環境とか良く分からないので、ひとまずRails5+npm+sprockets+bootstrap4

Railsのフロントエンドといえば、ES6をES5へ変換してくれるBabelの利用や、WebPackを利用したフロントエンド環境の構築等がよく記事になっているが、そこらへんの流れについていくのが辛い。 今後はRailsでもnpm・yarnとかを標準で利用していく流れもあると…

Ubuntu 16.04.1 LTSでCloudWatch Logs(awslogs)インストール

手順 $ curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O $ sudo python ./awslogs-agent-setup.py --region ap-northeast-1 $ sudo vim /var/awslogs/etc/awslogs.conf $ sudo service awslogs status Failed to …

RailsでExpected string default value for '....'

Rails5で開発していたら、generateで Expected string default value for というメッセージが表示された。 $ ./bin/rails g controller pages main --no-helper --no-assets Expected string default value for '--test-framework'; got false (boolean) Exp…

Railsアプリケーション構築時に初期にしたこと

Railsでアプリケーション作成後に、ついつい忘れがちになるのでメモ。 前提 手順 変更前 TimeZone locale 確認 ちなみに 関連する書籍 前提 環境、Railsアプリケーションの作成はこちら。 l-chika.hatenablog.com 手順 やったこと Timezone: アプリケーショ…

「論語と算盤と私」を読んで

本書はスタートアップで働く人は一読してみると良いと思う。共感と、為になる思考が身に付く。 論語と算盤と私作者: 朝倉祐介出版社/メーカー: ダイヤモンド社発売日: 2016/10/17メディア: Kindle版この商品を含むブログ (1件) を見る 競走馬の騎士を目指し…

Railsアプリケーション構築のはじめ

Railsでアプリケーションを構築する最初の手順。 前提 環境 手順 Rails初期化 アプリケーション作成 Gemfileの therubyracer をコメントインして、bundle install DB設定 MySQL確認 起動確認 ソース管理する場合は gitignore 関連書籍 参考ページ 前提 開発…

「暗号技術入門 第3版 秘密の国のアリス」を読んで

既にいろんなブログでレビューがあるので今更だけど、最近読んだので自分なりの感じた点をまとめる。 暗号技術入門 第3版 秘密の国のアリス作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2015/09/17メディア: Kindle版この商品を含むブログ (1件) …

CloudWatch Logsのログファイルを監視メモ

アプリケーション・サーバーのログをCloudWatchで集約するための設定時のメモ。 基本的には以下を参考にする。 dev.classmethod.jp AccessDeniedExceptionが発生 この際、インスタンスに設定したロールにCloudWatchポリシーを設定するのを失念した為、ログの…

screenコマンドについて

screenコマンドのメモ。 screenの説明のサイトはすごいあるけど、sshでセッションが切れてからの復帰方法について書かれているサイトが中々見つからなかったのでメモ。 手順 sshでログインしてscreen 実行。 $ screen で、このままタイムアウトした場合に、 …

Webサイト構築の構造・骨格・表層

自分なりのWebサイト構築手順のまとめ。 IAシンキング Web制作者・担当者のためのIA思考術 を参考にフローを整理し、サイトのコンセプト以降からシステム設計の手前に至るまでの手順。 ※ Webサービス構築のきっかけについては、 こちら で。 Webサイト構築に…

「Amazon Web Services完全ソリューションガイド」を読んで

Amazon Web Services完全ソリューションガイド を読んで 概要 実践的な導入事例からAWSでの以下の実現方法を解説 ネットワーク Webサーバー ファイルストレージ データベース 監視 どんな人向け AWSの入門ではなく、サービス運用の各種ケーススタディからAWS…

「成功者の告白」を読んで。ベンチャーで働くプログラマーも参考になった

成功者の告白 (講談社+α文庫) の感想 概要 経営コンサルタントの著者が、これまでの自身の経験や出会った企業をベースに経営者が陥るパターンを物語にしたもの。 物語は主人公がベンチャー企業を創業するところから始まり、その成長過程を描いている。 感想 …

ActiveRecordでMySQLの正規表現(REGEXP)

ActiveRecordを利用して、MySQLのREGEXPを利用したい場合 class Book < ActiveRecord::Base scope :with_title_regexp, -> (pattern) { with_regexp(columns_hash['title'].name, pattern) } scope :with_regexp, -> (column, pattern) { where("`#{table_na…

ActiveRecordのincludesでネストされた関連をロードする方法

ActiveRecordのincludesメソッドで関連テーブル(belongs_to, has_one, has_many)をキャッシュできる。 そこからさらに、関連テーブルの関連をキャッシュする方法 環境 Ruby 2.3.1 Rails 5.0.0.1 前提 Bookがauthor,publisher,categories をもつ Authorがaddr…

1年ぶりにbrew updateした時のメモ

どんな時のため MacのOSをバージョンアップしたりすると brew update がうまくいかない 環境: macOs Sierra バージョン:10.12.2 きっかけ 開発はVagrantでしたりするけど、ローカルでサクッとrubyの動作をチェックしたいときに、rubyのバージョンを変更し…

ELB->ALBに変更した際の確認メモ

ELBのtypeを Classic を Application に変更した際のメモ。 概要 従来のELBとは別にALBを増設 ALBのDNS name(A Record)からIPを取得する ローカルの/etc/hostsを変更して、ブラウザで確認する ALBのDNS name(A Record)からIPを取得する $ dig xxxx.ap-northe…

素人が電子工作始めるならやっぱりArduino?

電子工作の素人である自分が、その入門として始めたのが「Arduino」。 なぜArduino? Arduinoに関する情報はたくさんあるのでここでは簡単に、自分が選んだ理由を。 電子回路の前提知識がなくともプログラミングが少しできれば制御できる 簡単な事ならハンダ…

どうせRailsの環境構築するなら本番環境にも応用できるようにする

Railsに限らず、Webサービスを開発する場合には開発する環境の整備が必要。 開発は普段自分のmacやWindowなどのローカルPCでしていると思いますが、最終的には本番環境で利用できるものでなければならない。 自分は以下の理由から、開発段階から本番環境に近…

Application Load Balancer(ALB)に登録されているTarget GroupのEC2からprivate ipを一括取得する

Capistranoなどで、ロードバランサー(ELB)に紐付いているWebサーバー(EC2)にデプロイする際にIPアドレスを直接記述するのではなく、 ロードバランサーのARNから動的に取得する方法。 なにがうれしい インスタンスのIPが変更になった時や、台数の増減があった…

自分が考える最低限の構成でWebサービスを作ったときのAWS費用

l-chika.hatenablog.com 一念発起してWebサービスの作成に挑戦し、Lチカ を作成!(現在は閉じてます) AWSで1ヶ月ほど稼働させてみると意外と費用がかかったので、色々迷ったが一旦 全てを削除。 で、何にいくらくらいかかったかを整理。 どんな構成だったか…

PPAPのインターフェース-Rubyの場合-

PPAP(ロングバージョン)をRubyで表すと、どうなるか考えてみた。 www.youtube.com # Pen-Pineapple-Apple-Pen piko = PikoTaro.new piko.push(Pen.new) piko.have?(:pen) # => true piko.push(Apple.new) piko.have?(:apple) # => true ap = piko.pull ap.do…

Rails 5.0 で地味にうれしかった事

Lチカ をつくるにあたって、Rails 5.0 を利用したので、ここまでで感じた地味にうれしかった事。 rakeコマンドをrailsコマンドに統一 force_sslについて Rails 5.0 に入ったDB破壊系taskの防止処理について enumの定義に:prefix/:suffixオプションを追加 モ…

Webサイトを作るにあたっての整理した事

前回は作りたいサービスの領域を「電子工作の共有サイト」にした事を説明。 次にサービスをつくるにあたっての要件の整理。(あまり全然整理できてないけど) 何で見つけたか忘れたけど「OWWH」のフレームに乗っけてみる。 OWWH OBJECTIVE(目的) Q.達成すべ…

なぜ電子工作の共有サイトをつくろうと思ったか

前回 は、Webサービスを作ろうと思ったきっかけを投稿。 では、なぜ 電子工作 という題材を選んで Lチカというサイトを作ったのか? 目的がない 「よし!Webサービスを作ろう!」と思い立ったが、いざ考えると デザイナがエンジニアリング(プログラム)を学…

サーバーサイドエンジニアがなぜ一人でWebサービスを作ろうと思ったか

前回 の投稿にある、Lチカ を作ろうと思った理由について。 きっかけ 特にコレというきっかけはなく、 ずっと以前から感じてた事で、自分は仕事でWebサービスを開発しているが、 果たして「自分一人でWebサービスの公開・運用」ができるのか という疑問・不…

はじめに

このブログをはじめるにあたって このブログは https://l-chika.com の開発ブログです。 Lチカとは? 「電子工作の共有サイト」です LEDチカチカの略 当サイトは管理人が一人で絶賛開発中です。(かつ、不具合が多数潜伏中) 自己紹介 某Web系企業でサーバーサ…