プログラミングガール

Developing a better me

Docker|certificate has expired or is not yet valid

エラー Dockerでimageをpullしてくる際に certificate has expired or is not yet valid というエラーに見舞われる。 $ sudo docker container run --name redis -it -p 6379:6379 --net test_network redis Unable to find image 'redis:latest' locally do…

サイト高速化|Resource HintsとPreload

Resource HintsとPreloadの違い Resource Hints 主に次画面以降のリソースをページ読み込み後バックグラウンドで取得する レスポンスヘッダーのLink、あるいは <header> タグ内の <link> タグにdns-prefetch, preconnect, prefetch, prerender を指定 dns-prefetch: 指定し</link></header>…

Visual Studio CodeとVagrantを使った開発環境の構築

やったこと 以前はAtomプラグインの remote-ftp を使用しSFTPでファイルを編集していたが、Visual Studio Codeにしたのを期にVagrantのsynced_folder機能を使うように変更。 デフォルトの設定(shared folder)ではパフォーマンスが悪いため、代わりにNFSを…

Rails|ポリモーフィックで子から親へのeager loadを行う

困ったこと ↓以下のような関連を持つクラスに対し、子から親に対して関連を eager load で取得しようとしたところ、 Cannot eagerly load the polymorphic association :reviewableというエラーをくらった。 class User < ActiveRecord::Base has_many :revi…

Webアプリケーションにおけるエラーコード:403と404 について

最近なるほどなあと思ったので書き留めておく。 そもそも403と404とは 403 Forbidden: The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sor…

Apache|クロスオリジンなURLからのアクセスを許可する

HTML5のCanvasを使用する際、クロスオリジンの画像を使うためにimgサーバのApacheでクロスオリジンからのアクセスを許可する必要がありました。 以下はその設定と確認方法です。 HOWTO ① Apacheの設定(/etc/httpd/conf/httpd.conf) <Location /images/hoge> Header set Access-Con</location>…

Rails|FactoryGirlでユニークな値を指定したいとき

背景とやりたいこと ユニーク制約を付与したため、create_list で一度にテストデータを作成しようとした場合、値が重複しているとお叱りを受けた。 ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry 修正前 user_name はユニークな値になるよ…

特定のサイトを簡単に監視したい

概要 指定したURL先のステータスコードを監視したい。 今回はステータスが200になったらLINEに通知を飛ばす。 使用したもの AWS EC2 shell LINE Notify つくりかた 1. AWSのEC2を立てる 2. Line Notifyのトークンをゲットする 3. shell scriptsを以下のか…

Ruby|配列の計算ふりかえり

そういえばRubyは配列同士で計算ができるんだった! ということをうっかりしていたのでもう一度整理してみる。 # 配列を2つ用意 a = [1, 2, 2] b = [1, 3, 4, 5] # それぞれ計算してみる p a + b #concatと同じ p a.concat(b) #配列の結合 p a | b #和集合 …

OWASP ZAPをプロキシとして使ってみる

何をしたいか とあるリクエストのヘッダー(OriginとかContent-Lengthとか)を確認したい。 そのためOWASP ZAPをプロキシとして使用する。 ダウンロード お手元にOWASP ZAPがない方は、こちらからダウンロードしてね。 設定 ① OWASP ZAPの設定 ツール → オプ…

Rails|Deviseのログアウトでルーティングエラー

事象 ユーザー認証にDeviseを使用しているのですが、サインアウトをしようとした際、以下のようにエラーになってしまいます。 ログインまわりのソースコード↓ <% if user_signed_in? %> Logged in as <strong><%= current_user.email %></strong>. …

特定のページのみ特定のCSSを読み込ませる

やりたいこと 特定のページ(今回はサイトのTOPのWelcomeページ)のみ特定のCSSを読み込ませたい。 HOWTO ① 特定のページ用のlayoutを作成する /app/views/layouts/welcome_layout.html.erb ② コントローラーに使用するlayoutを明記する class WelcomeContro…

Vagrant開発環境でメールサーバを立てる

やりたいこと 普段Vagrant上でRuby on Railsのアプリを開発しています。 ユーザー認証にDeviseを使っていてサインアップの際、開発環境でアプリからメールを送りたい場面があったので、今回MailCatcherを使ってメールサーバをVagrant上に立てました。 ※ 今回…

git configの値の設定

Git

はじめに いつもいつも値のユーザー名やメアドの設定方法をググっている気がするので、備忘録(´・ω・`) コミット時のユーザーを設定するよ。 設定の確認 $ git config --global --list user.name=programming_girl user.email=programming_girl@hoge.com cor…

Vagrant Share でHTTPS通信する

1.Vagrantfile記述 2.オレオレ証明書を発行 ① 証明書の発行 # On Vagrant $ yum install mod_ssl openssl $ openssl genrsa -out ca.key 2048 $ openssl req -new -key ca.key -out ca.csr ② 決められた場所に各ファイルを配置する $ cp ca.crt /etc/pki…

文字化け問題の解決

問題 開発している環境(Vagrant上)で以下の問題が発生。 ① viしたときに日本語が文字化けて見える ② git diffしたときに日本語が文字化けて見える ①の解決方法 $ vi ~/.vimrc ---- .vimrc追記内容 ---- set encoding=utf-8 set fileencodings=iso-2022-jp,…

Vagrant Shareを使ってみた

Vagrant Shareは、ローカルで立てたVagrantの環境へ誰でもアクセスできるようにしてくれます。 まぁとりあえず使ってみよう。 www.vagrantup.com HOW TO 1.ATLASの無料のアカウント作成 https://atlas.hashicorp.com/account/new 2.ローカルのVagrantを…

AWS構築|Let’s Encrypt で レッツ暗号化

AWS

なにするの? AWSにのっけたWebサービスをHTTPSでアクセスできるようにする。 HOW TO ENCRYPT on AWS 1.Apache停止 $ apachectl stop 2.Certbotをダウンロード $ git clone https://github.com/certbot/certbot 3.Certbotの実行(証明書の取得) $ cd …

サービス開発|KPTアプリをリリースしたよ

このあいだ、「KPTer」というKPTのiOSアプリをリリースしました! 業務中にKPTをしている方も多いのではないかと思います。ぜひ一度つかってみてください(^^) アプリはこちら。 Facebookページはこちら。 LPも作ってみました♡ kpter.net コンセプト 振り返り…

CentOS|SSHログイン時にアスキーアートを表示する

なにがしたい sshでサーバにログインした時に、AAを表示することでどのサーバにログインしたかをわかりやすくしたい。 HOW TO 1.AAを作成 Text to ASCII Art Generator (TAAG) 2./etc/motdに上記で作成したAAを記述 ______ _ _ _ | ___ \ | | | | (_) | …

Rails|Emailのバリデーション

背景 はじめはemail_validatorを使用していたのですが、 「hogehoge@hoge.com」のように入力された時、うまくバリデーションがかからなく・・・。 あらためて調べてみると、以下の場合はうまくバリデーションがかかっていないようでした。 先頭に半角/全角…

iOS開発|Images can't contain alpha channels or transparencies

iTune Connectの画像登録での一コマ Images can't contain alpha channels or transparencies ↑ iTune Connectの画像登録ででた注意文言 「App Preview and Screenshots」の画像をリサイズして登録しようとしたときに発生。 原因 画像をリサイズした際に、縦…

Rails|レイアウトを新規で作成する

なにがしたい Viewを表示する際に、「layout.html.erb」とは別のレイアウトを作成して適応したい。 シチュエーション hana-ori.hatenablog.com 上記の方法でerror画面をカスタマイズすると、Viewに対応するコントローラーがないため、「Template Inheritance…

Rails|エラーページのカスタマイズ

なにがしたい エラーページをいい感じにカスタマイズしたい。 HOW TO 1. view配下にerrorsディレクトリを切り、「error_404.html.erb」と「500.html.erb」を作成 2. application_controller.rbに下記を記述 class ApplicationController < ActionControlle…

Vagrant|There are stopped jobs.

困ったこと vagrantからログアウトしようと思った際、下記の文言がでて、ログアウトできなくなった。 There are stopped jobs. 解決方法 どうやら、vagrantから抜け出す前に、中断中のプロセスをKillする必要があるらしい。 $ ps aux|grep {{ ログイン名 }} …

Rails|Cannot add foreign key constraint エラー対処

困ったシチュエーション 後でマスターテーブルを追加しようとした際、以下のエラーに遭遇。 Mysql2::Error: Cannot add foreign key constraint: ALTER TABLE `application_forms` ADD CONSTRAINT `fk_rails_386b13f566` え、どういうこと? 原因 マスターテ…

Java|クローラーかどうか判別する

なにがしたい サイトへアクセスしたユーザーエージェントがクローラーのものか判断する。 実装 /** * 例外対応するクローラーUAリスト */ public static final ArrayList<String> CRAWLER_UA = ImmutableList.of("Googlebot", "Yahoo!", "bingbot", "Yeti", "Baidu",</string>…

CentOS6系にOracleのJavaをインストールする

なにがしたい wgetでCentOSにJavaをインストールしたい。 失敗 wgetしようとするもののあえなく失敗。 $ wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm $ sudo rpm -ihv jdk-7u75-linux-x64.rpm error: open of jdk-7u…

Github|Wikiに画像をのせる

なにをしたい GithubのWikiに画像をのせたい。 こんな感じ↓ How To Wikiをclone してくる clone してきたら、image/ディレクトリを切り、その配下に画像を格納する img タグを書き、画像を表示させる <img src="https://github.com/repository/wiki/images/S__15982629.jpg" width=200px>

Realm|1.0がリリース!

ついに! ついにRealm1.0がリリースされました! realm.io ついに!やったー!と思って、issueまで切って意気揚々とライブラリーのバージョンをあげようとしたのです。 そこで起こる悲劇 Podfileをpod 'RealmSwift' , '~> 1.0'のように編集し、pod installす…