Railsでいいね機能

個人開発しているサービスにいいねボタンをつけるためのメモ。 イメージ 親テーブル posts comments 子テーブル likes 投稿にもコメントにも「いいね」できるようにしたい。 課題 親テーブルが複数ある時にテーブル設計をどうするか。 参考: 複数のテーブル…

フリーランス4年目の2017年前半振り返り

個人開発 いくつか個人開発でサービスをつくりました。最低限の機能のみですが、もやもやっとしたアイデアから機能を検討して開発を行いリリースするまでのプロセスに慣れることができました。一方で、リリースしたところである程度満足してしまい「さあどう…

Rails5(Turbolinks5)でGoogle Analyticsを設置

Rails5(Turbolinks5)の環境でGoogle Analyticsを設置した時のメモ。 Turbolinks Compatibilityに掲載されている情報に古さが出てきていたので他の方法を調べていたところ、turbolinksのissuesで同じテーマのやりとりを見つけたのでこちらを参考にしました。 …

DEPRECATION WARNING: alias_method_chain is deprecated

Rails5で作業中に下記のWARNINGが表示されました。 DEPRECATION WARNING: alias_method_chain is deprecated. Please, use Module#prepend instead. From module, you can access the original method using super. alias_method_chainが使用されているgemを…

Amazon EC2にSFTPで接続

Amazon EC2に「FTPで接続したい」と言われた時のメモ。 作業ユーザーを作成 $ sudo useradd hoge $ sudo passwd hoge $ sudo visudo hoge ALL=(ALL) ALL 鍵の作成 $ sudo su - hoge $ mkdir ~/.ssh $ ssh-keygen -t rsa $ mv id_rsa.pub authorized_keys $ c…

肩こり・腰痛対策のストレッチ動画

肩こり・腰痛対策のストレッチ動画メモ。 ニューストレッチ⑥(あべこべ体操) 30秒で首がほぐれてしなやかになる 『股関節をほぐせ』進化したストレッチ~ニューストレッチ(あべこべ) ニューストレッチプログラム5ー30秒で床に手がつくようになる(立位) …

NameError: uninitialized constant AWS

「NameError: uninitialized constant AWS」のエラーが出た時の対応メモ。 エラー内容 NameError: uninitialized constant AWS 原因 aws-sdkのバージョン1と2でネームスペースが違う NameError: uninitialized constant AWS. If you receive this error, you…

Rails環境の構築

趣味の開発用にVPSでRails環境を構築した時のメモ。 Rails環境構築 rbenv + ruby-build $ sudo yum update $ sudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf au…

ChainerでMNISTを試す

ChainerでMNISTのサンプルコードを試しました。 参考:pfnet/chainer Chainerをインストール $ pip install chainer サンプルコードを動かす chainer/examples/mnistのディレクトリにMNISTのサンプルコードがあります。学習時間は15分程度でした。 $ python …

CapistranoでPermission denied (publickey)が出た時の対処

Capistranoでdeploy:check時にPermission denied (publickey)のエラーが出た時の対処法メモ。 原因 デプロイ先のサーバーで秘密鍵・公開鍵の作成管理が行われていないため、デプロイ先のサーバーからgithubに接続できない。 対応 ssh agent forwardingを利用…

Rails5で日本語化

Rails5で日本語化する時のメモ。 ./config/application.rb # Application configuration should go into files in config/initializers initializers以下の設定に変わったようです。設定は下記のissueを参考にしました。 https://github.com/rails/rails/iss…

フリーランスエンジニア3年目の2016年振り返り

フリーランスエンジニアとして3年目の2016年の振り返りです。 個人開発 尊敬するエンジニアの方が主催したシードアクセラレータープログラムに参加しました。残念ながら、そこで開発したサービスから話が発展することはなかったのですが、サービスの企画検討…

フリーランスの引っ越しで住所変更した場合の手続き

フリーランスの引っ越しで住所変更した場合の手続きメモ。 必要な手続き 事業を継続する前提で引っ越しした場合は「所得税・消費税の納税地の異動に関する届出書」を引越し前・引っ越し先の税務署にそれぞれ提出。 [手続名]所得税・消費税の納税地の異動に…

OANDA APIで現在のレートを取得

練習用にOANDA APIでEUR/USDの現在のレートを取得します。 Sandbox 開発ガイドを読むとsandbox環境は認証が必要ないので最初にこちらで実行しました。 開発ガイド | OANDA API $ curl -i "http://api-sandbox.oanda.com/v1/prices?instruments=EUR_USD" curl…

2016年に買って良かったもの10選

2016年に買ってよかったものをまとめました。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: …

OANDA APIを利用するための準備

OANDA APIを利用するためにアカウントの登録とAPIのアクセストークンの発行を行います。 1. OANDA fxTrade Practiceのアカウント取得 日本の居住者の方が、OANDA APIを利用するには、OANDA Japan株式会社でfxTrade(本番口座)もしくはfxTrade Practice(デ…

システムトレードの参考記事

背景 AI・人工知能分野が盛り上がりを見せる中で、どういった関わり方ができるかを模索していました。ある勉強会でディープラーニングを応用したシステムトレードの開発に取り組んでいる方の話を聞く機会があり、そこでシステムトレードについて興味を持ちま…

シグモイド関数

数学を避けてきた人生の報いを受けながらシグモイド関数について学んでいます。本を読み進める上で以下の記事を参考にしました。 シグモイド関数の参考記事 Artificial Neural Networks/Activation Functions シグモイド関数 How to calculate a logistic si…

Python3でTensorFlowのMNISTチュートリアルを試す

Python3環境でTensorFlowのMNISTチュートリアルを試しました。 Qiitaに丁寧に解説された記事があがっていたので、そこに掲載されているサンプルコードをコピペ(Python3に合わせて一部修正)で動かしました。 qiita.com どういった処理を行っているかについ…

videojsのサンプルコード

video.jsの動作確認用のサンプルコード。 S3から動画を読み込む際には、CORS設定の編集が必要。 <html> <head> <link href="http://vjs.zencdn.net/5.11.9/video-js.css" rel="stylesheet"> <script src="http://vjs.zencdn.net/5.11.9/video.js"></script> </link></head></html>

TwitterボタンをTurbolinksに対応

TwitterボタンをTurbolinksに対応した時のメモ。 TwitterボタンをTurbolinksに対応 twttr_events_bound = false $ -> loadTwitterSDK -> bindTwitterEventHandlers() unless twttr_events_bound bindTwitterEventHandlers = -> $(document).on 'turbolinks:l…

NginxをLet's EncryptでSSL対応

NginxをLet's EncryptでSSL対応した時のメモ。 python2.7をインストール $ sudo yum install centos-release-SCL $ sudo yum install python27 phthon27-python-tools $ sudo yum install dialog $ sudo su # vi ~/.bashrc ~/.bashrc source /opt/rh/python2…

Googleのガイドラインから気になった部分をメモ

Googleのガイドラインから気になった部分をメモ。 コンテンツに関するガイドライン - Search Console ヘルプ 品質に関するガイドライン - Search Console ヘルプ 詳細な記事 参考記事:「詳細な記事」機能に表示される記事 - Search Console ヘルプ schema.o…

Railsで多対多の関連をチェックボックスで設定

Railsで多対多の関連をチェックボックスで設定する時のメモ Model $ rails g model post name:string $ rails g model tag name:string $ rails g model post_tag post:references tag:references post.rb class Post < ActiveRecord::Base has_many :post_t…

RailsのテンプレートをBootstrapが適用されたslimファイルで生成する

RailsのテンプレートをBootstrapが適用されたslimファイルで生成する時のメモ。 RailsのテンプレートをBootstrapが適用されたslimファイルで生成 gem 'slim-rails' gem 'html2slim' gem 'bootstrap-sass' gem 'bootstrap-generators' $ bundle install $ rai…

Carrierwave使用環境でCapistranoでデプロイした時のメモ

Capistranoでデプロイした時に、Carrierwaveでアップロードした画像ディレクトリが削除(上書き)されてしまった時のメモ。 アップローダファイルを修正 下記のリンクを参考にアップローダファイルを修正 Carrierwave uploaded Images aren't persistent aft…

#18 テストデータを作成

ある程度動くようになってきたので、デバッグを兼ねた動作確認のためにテストデータを生成します。 Gemfile gem 'ffaker' seeds.rb 10.times do User.create(name: FFaker::Name.name, email: FFaker::Internet.safe_email, password: FFaker::Internet.pass…

#17 質問閲覧ページの作り込み

旅行に出かけていた関係で開発が滞っていました。 今日からまた再開したいと思います。 質問閲覧ページ 今回は質問閲覧ページを作り込んでいきます。まずは、質問部分です。今回はYahoo知恵袋を参考に構成図を作成しました。 今回作成しているサイトに合わせ…

#16 ユーザー名を表示

ユーザー名を表示します。現状ユーザー名の入力が必須項目ではないので、入力がない場合は匿名表示する処理をヘルパーに定義しました。これを各所で利用したいと思います。 def username(user) user.try(:name) || 'Anonymous' end 参考 【Rails】Helperを使…

#15 トップページの作り込み

第15回では、トップページに表示する質問一覧部分のレイアウトや要素を作り込んでいきます。日頃お世話になっているteratailを参考にしました。 ワイヤーフレームの作成 teratailのトップページの質問部分の構成をざっくりと書き起こしてみました。 今回、開…