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

「入門 考える技術・書く技術」読んだ

入門 考える技術・書く技術作者: 山崎康司 出版社/メーカー: ダイヤモンド社発売日: 2011/04/08メディア: 単行本(ソフトカバー)購入: 15人 クリック: 71回この商品を含むブログ (24件) を見る この本で何を解決したくて読んだの? 「伝わりやすい」文章を書…

かせいさんの開発環境2017

会社で新しいMacBookPro頂いたので、環境構築がてら最近の自分の開発環境を記録してみます あんまり珍しいものは入れてないですね GUIアプリ Vivaldi Chromeベースのwebブラウザ Vimperator に慣れすぎてFireFoxから出れなかった自分を動かしてくれた神ブラ…

Amazon Elastic Beanstalk でデプロイ時に database.yml に database.example.yml をsymlinkする方法

database.yml をgitにcommitしたくないよね... そんな時に 先に方法 files: "/opt/elasticbeanstalk/hooks/appdeploy/pre/01a_symlink_database_yml.sh": mode: "000777" content: | #!/bin/bash cd /var/app/ondeck/config ln -sf database.example.yml dat…

ロードバランシングしている場合、サーバまたいでもRailsのcookie sessionって保持されるか不安になった時に見るページ

いつもはkey-valueストアでやっているので、cookie sessionを使うとなった時に心配になったのでメモ 先に結論 sessionは保持される 理由 cookie sessionは、ブラウザ側でsessionの情報を保持して、サーバ側に情報を持たないから cookieおさらい cookie : web…

Amazon Elastic Beanstalk で t2.micro で Rails をデプロイすると、gem install に失敗する件

先に結論 もう少し良いインスタンスを使う 原因 bundle install 時に メモリが不足が原因で native extension のビルドに失敗している エラーメッセージ An error occurred while installing nokogiri (1.6.8.1), and Bundler cannot continue. Make sure th…

HerokuのDBにAmazon Elastic Beanstalkからアクセスする

これは何? Herokuで運用しているアプリを、ふとAmazon Elastic Beanstalkに移行したくなった けれど、軽く試すためだけのために、DBを移行するの大変 そんな時にお手軽に試す為の方法の記録 Heroku から DB の情報を取得する heroku では、database.yml に接…

slack に書かれた内容を Amazon Polly で読み上げてみた

この記事は feedforce Advent Calendar 2016の6日目です!! www.adventar.org 昨日は、tjinjin の ドラッカー風エクササイズをチームで試してみました でした cross-black777.hatenablog.com 期待マネジメント大事ですね。 ウチのチームも一度やってみたら面…

負荷テストについて思ってることをポエムする

色々知見が溜まってきたのでポエムします 言いたいこと 「なにをもってゴールとするか?」の合意を取ろう まず実測 本番環境にできうる限り近い環境でやろう 実測ツール紹介 中央値も見よう 「なにをもってゴールとするか?」の合意を取ろう やろうと思えばど…

自分の考えるリファクタリング指針

なにこれ? リファクタリングが尿を漏らしそうなくらい好きなのだけれど、気分に任せるままやっている節があるので、自分の中ののリファクタリング指針を明確にしたい— かせいさん#C90(金)東エ04-a (@kasei_san) 2016年7月14日 文書化して明確にしてみよう 目…

Serverspec本どくしょかんそうぶん

Serverspec作者: 宮下剛輔出版社/メーカー: オライリージャパン発売日: 2015/01/17メディア: 単行本(ソフトカバー)この商品を含むブログ (6件) を見る 読書メモ Serverspec本読書メモ 1章〜3.4章まで Serverspec本読書メモ 3.5章〜3.12章まで Serverspec本…

【持ってきてよかったもの】4泊6日のオーストラリア旅行に行って【持っていった方がよかったもの】

家庭の用事で4泊6日のオーストラリア旅行に行ってきました 次回の備忘のために、持ってきてよかったものと、持って行ったほうが良かったものを記します 良かったもの ファーストクラスラウンジのチケット ヤフオクで1枚3500円程度で購入 ラウンジ以外に、ち…

【1日1gem】 rspec3 でも its が使いたい! rspec/rspec-its

1日1gemとは 最近好きなgemってありますか? という質問に自分が答えられるように始めたgemを紹介する記事 rspec/rspec-its https://github.com/rspec/rspec-its 何をするの? rspec3 で core から無くなった、 its を復活させる gem 正確には、 its が別gemに…

ActiveRecordeの関連付けで、class名と異なる関連名を使いたい場合、 class_name オプションを使う

こんな場合 class Item < ActiveRecord::Base has_one :item_detail, dependent: :destroy end class ItemDetail < ActiveRecord::Base belongs_to :item end ItemDetail を参照するとき、記述が冗長になってしまう # item って単語が重複するのがキモい ite…

paperclip の写真の格納先をS3に変更する

やりたいこと paperclip の写真の格納先をS3にしたい 方法 Paperclip に S3 用のオプションがあるので、それを使う aws-sdk のインストール Gemfile gem 'aws-sdk' paperclip のデフォルトの設定を追加 config/application.rb class Application < Rails::Ap…

Paperclip を使って Rails アプリに画像アップロード機能を追加する

やりたいこと Rails アプリに画像アップロード機能を追加したい 方法 thoughtbot/paperclip を使う paperclip のインストール Gemfile # 次のイテレーションで aws-sdk を使うが、その時に ver2 を使いたいので、Paperclipを最新のものにした gem 'paperclip…

cocoon を使って、1フォームで1対多のモデルを動的に編集できるようにする

やりたいこと Railsで1対多のmodelがあるときに、 親modelのformで子modelを動的に追加したり削除したりしたい 方法 nathanvda/cocoon を使う つくりかた Gemfile gem 'cocoon' Item の scaffold を generate rails g scaffold item name:string price:integ…

過去のcommitを修正したい時は、 `git commit --fixup` と `git rebase --autofixup` を使おう!

git

先に結論 過去のcommitを修正したい時は、 git commit --fixup=#{commit番号} してから、git rebase --autofixup --autofixup オプションは、 git commit --fixup した commit を自動的に fixup してくれる git rebase の fixup は、対象の commit を上の co…

git rebase/merge をそろそろキチンと理解する

git

なんなのかと rebase 品質を落とす、品のない振る舞いをする git rebase つかいみち : ブランチにmasterの変更を取り込む 例えば、こんな感じに、 master と、branch_b がある場合... * ac7957d Add 'd' in a.txt | * 9aa15f9 (refs/heads/branch_b) Add 'c'…

DNSを良くわかっていない自分が浸透問題を理解するまでのはなし

そもそもDNSってなんだっけ? Domain Name System IPアドレスと、ドメイン名( www.google.com とか)の紐付けを行うサーバ DNSサーバは2種類 コンテンツサーバ (権威DNSサーバ) IPアドレスと、ドメイン名の紐付けを回答するサーバ キャッシュサーバ コンテンツ…

Rails高速化のためのパフォーマンスチューニングに役立つツール 8個+α

これは何? レスポンスタイムが遅くて辛いけど原因が特定できないときに役立つツールをまとめてみました Rails以外でも使えるものも一緒くたに書いているけど、気にしない! やらないこと それぞれのツール詳細な説明 気が向いたら個別記事を書く 環境 Rails 4…

2015振り返り

本当は2015年にやりたかった... Keep ニンジャ学会! 自分主体で何かをするということに抵抗が無くなった 素晴らしい内容の本ができて、色々な方に喜んで頂けた リーダーシップについての知見を得た 独断で引っ張って良い。むしろそうすべき 会社で小さいチー…

これだけやれば大丈夫!! 合同誌を作るための主催者チェックリストを作った

これはなに? 2015年の冬コミにて、ニンジャスレイヤーの合同誌「ニンジャ学会」を作りました 各メンバーの活躍により素晴らしい内容の本になり、無事完売もしたのですが、 自分自身、合同誌の取りまとめをするのは初めてで、色々と手間取ることが多かったの…

Amazon Route 53 ってなんぞ? 特徴と料金をメモ

特徴 DNSのSaaS AWS意外のリソースにもルーティングできる 従量課金 高可用性 : 世界中にサーバがある SLAとして、100%の使用可能時間に満たない場合割引が発生する Amazon Route 53 サービスレベルアグリーメント(SLA) | アマゾン ウェブ サービス(AWS …

yumリポジトリにEPELを追加する手順

ダウンロード ここから対象バージョンのepelをダウンロードする http://ftp.riken.jp/Linux/fedora/epel/ 最新のCentOSならば wget http://ftp.riken.jp/Linux/fedora/epel/epel-release-latest-7.noarch.rpm インストール sudo rpm -ivh epel-release-lates…

yumについて理解が進んでいないのでメモ

CentOSでのパッケージ管理についてのお話 用語 RHEL : Red Hat Enterprise Linux yum yum : Yellowdog Updater Modified RPM Package Managerのパッケージを管理するメタパッケージ管理システム RPM? RPM : RPM Package Manager RedHat系OSが使うパッケージ…

AWS Elastic Beanstalkの環境のSWAPをやってみる

環境の作成 dev-env は環境名 eb create dev-env 環境変数 設定 eb setenv SECRET_KEY_BASE=****** -e dev-env 確認 eb printenv dev-env Environment Variables: RACK_ENV = production SECRET_KEY_BASE = ****** RAILS_SKIP_MIGRATIONS = false RAILS_SKIP…

iptables について理解する

iptablesってなんぞ? Linuxに実装されたパケットフィルタ兼NAT NAT? NAT(Network Address Translation) ネットワークアドレス変換 ローカルIPと、グローバルIPの変換を行う ローカルから外部に出るときに、グローバルIPの割当を行う 外部からローカル内の…

AWS Elastic Beanstalk まずは動かしてみる

AWS CLIツールのインストール $ pip install awsebcli Rails環境の用意 $ rails g controller hello index Rails環境上で、EBS初期化 $ eb init リージョンどこにするか聞かれる Select a default region 1) us-east-1 : US East (N. Virginia) 2) us-west-1…

Railsスタイルガイドななめ読み

ruby読んだついでにこっちも読んどく 原文: bbatsov/rails-style-guide 日本語訳: moneyforward/rails-style-guide Routing RESTfulなresourceにアクションを追加する場合、member と collection を利用する #config/routes.rb resources :subscriptions do …

rubyスタイルガイドななめ読み

rubocopを使うに当たって把握しておく 知らなかったこと/よさ気なところをメモ ソース 原文: bbatsov/ruby-style-guide 日本語訳: ruby-style-guide/README.ja.md at japanese レイアウト {の前後、}の前にはスペース [1, 2, 3].each { |e| puts e } メソッ…

bundleを使っているプロジェクトに自分だけが使いたいgemを入れる方法

自分は便利だから使いたいけど、他の人にまで強制するのはなんだなーって思うgemを開発時に使いたい時どうするかメモ 概要 環境変数BUNDLE_GEMFILEで使用するGemfileを設定できるので、個人用のGemfileを用意する 前提 direnv/direnvを使ってること やりかた…

Rails newした後Rubocopでやること色々

Rubocopって何? bbatsov/rubocop Rubyの静的コード解析器 ruby-style-guideを遵守させる 問題点について自動的に修正してくれる Rubocop入れると何が良いの? ruby-style-guideという標準的なコーディングスタイルガイドにコードが準拠する 可読性up 不穏なコ…

CircleCIをRailsで使う

CircleCIってなに? SaaSのCIツール SasS Software as a Service 必要な機能だけサービスとして切り出したソフトウェア インターネット経由でサービスを提供するのが一般的 CI Continuous Integration 継続的インテグレーション ビルドやテストを継続的に実行…

MVCのおさらいと、RailsのMVCについて説明する

先にまとめ RailsのMVCと原義のMVCは異なる ビジネスロジックはModelに実装する Skinny Controller, Fat Model RailsにはFat Modelをリファクタリングする仕組みが色々あるよ MVCの目的 コードの再利用性と関心事の分離 コードの再利用性 : ビジネスロジック…

Rails の development 環境で使えそうなgemをまとめる

ざっくりとした覚え書き ログ関係 rails-flog ログのParametersやSQLを整形してくれる quiet_assets 動的なアセットパイプラインの生成時に出力されるログを消してくれる pry関係 こっちでも解説してる → pryとそのプラグイン色々メモ - kasei_sanのブログ p…

パーフェクトRails 9章 より実践的なモデルの使い方(9-1〜9-2)

パーフェクト Ruby on Rails作者: すがわらまさのり,前島真一,近藤宇智朗,橋立友宏出版社/メーカー: 技術評論社発売日: 2014/06/06メディア: 大型本この商品を含むブログ (8件) を見る Rails環境について 本の環境 : Rails4.1.1 本記事執筆時の環境 : Rails4…

ActiveRecored の change_column_default と、change_column_null を覚えたのでメモ

Rails4.2の話 それぞれマイグレーションで使う change_column_default カラムのデフォルト値を設定 change_column_default :table_name, :column_name, default_value 不可逆 これを使う場合は、def up と、def down を定義する必要がある change_column_nul…

Turbolinksについて調べてみた

先にまとめ TurbolinksWay(後述)にそって作ればすごい機能 独自実装でリッチなサイトを既に作っている場合、競合地獄がまってるよ!! よくこんなの標準機能にのっけたな Turbolinksって何? Rails4.0から採用された、レンダリング高速化のためのgem ActionPack…

Aseets Pipeline についてまとめた

Aseets Pipeline ってなに? Rails3.1から実装 Rails4から別gemに sprockets-rails sprockets(および、sprockets-rails)を使って、以下の処理を行う CoffeeScriptや、SCSS等の高級言語を変換 マニフェスト(後述)に従って、js, css を1ファイルにまとめる ファ…

Rails4.1 から入ったSpringって何よ?

概要 rails c 等を叩く時に、毎回Railsの初期化を行わなくなるので、開発速度が向上するよ!! Springサーバが起動して、変更を監視して必要に応じて再ロードする Rails4.1以降は標準で入っていて、勝手に起動したり終了したりしてる http://railsguides.jp/4_…

ざっくりRailsの各バージョンの流れ

Rubyの推奨/必須バージョンの推移 Rails 3 : 1.8.7以降必須 Rails 3.2 : 1.8.7最終ブランチ Rails 4 : 1.9.3以上必須。2.0推奨 Rails 5 : 2.2.1以上必須 シンボルのガーベージコレクトを宛てにしているらしい 今更ながらだけど、4系は2.0推奨なのね Railsガ…

Railsの各コンポーネントについてざっくり理解する

はじめに Rails4.2系の話です いろいろある Railtie ActionMailer ActionPack ActionView ActiveJob ActiveModel ActiveRecord ActiveSupport Railtie Railsの中核部分 Railtieに基づいたプラグインの組み合わせで、Rails機能を拡張できる ActionController…

Railsのライフサイクルがよくわかってなかったので調べた

今度はRailsについて バージョニング Rubyと同じく、セマンティックバージョニング → Ruby on Rails のメンテナンスポリシー | Rails ガイド メジャー : 重大性が高い変更 マイナー : 新機能を追加。API変更もありえる 大きな変更を行う場合、非推奨通知を出…

Rubyのライフサイクルがよくわかってなかったので調べた

各バージョンの寿命ってどんなもんなの? 先に結論 現在更新されているのは、2.1 と 2.2 2.0はセキュリティFixのみ(メンテナンスモード) メンテナンスモードは1年間(2.0 は 2016/02/24 に終了予定) 1年に1回、クリスマスにマイナーバージョンが上がる 2015/12…

validates acceptance を設定した属性は、テーブルにない場合は自動的にVirtual Attributesになる

Virtual Attributes ActiveRecordの機能 文字通り仮想的な属性 テーブルの実カラムには無いけど、エントリフォーム等に入れたい値を格納する場所 Virtual Attributes の作り方 モデルに属性をattr_accessorで追加する 簡単。 Virtual Attributes の使い方 DB…

rubyで、Amazon Product Advertising APIを使ってAmazon商品検索をしてみる

それ用のgemがある jugend/amazon-ecs Amazon ECS is a generic Ruby wrapper to access Amazon Product Advertising API. APIキーを用意 本当はIAMを使ってProduct Advertising APIだけ使えるキーを作るべき ただし現在、IAMの中にProduct Advertising API…

Railsガイド Rails のコマンドラインツール 2.10 カスタムRakeタスク

Rails のコマンドラインツール | Rails ガイド ジェネレータ rails generate task で生成 $ rails generate task sample_task create lib/tasks/sample_task.rake namespace :sample_task do end Rakeタスクの基本形 namespace :sample_task do desc 'あいさ…

pryとそのプラグイン色々メモ

pry-rails pryをrailsで使うためのgem pryと、pry-railsの使いそうなコマンド help : 使い方が出てくるから読め cd 、ls : オブジェクトを行き来できる tab補完してくれるよ! ls -m : メソッドだけ表示 ls --grep : 絞りこみ #{command}; : 戻り値をechoしな…

Rails ガイド Active Record バリデーション

Active Record バリデーション | Rails ガイド クライアント側でのバリデーションは扱いやすく便利ですが、一般に単独では信頼性が不足します。JavaScriptを使用してバリデーションを実装する場合、ユーザーがJavaScriptをオフにしてしまえばバイパスされて…

Railsガイド Active Record の関連付け(1.関連付けを使用する理由〜2.関連付けの種類)

Active Record の関連付け (アソシエーション) | Rails ガイド 関連付けのメリット Railsがテーブル間の関連を知ることで、必要な作業を勝手にやってくれる 例えば、顧客と注文が関連していたら、顧客の情報を消した時に、顧客に紐付いた注文を全部消してく…