プログラミングガール

Developing a better me

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

クローラーの User Agent でサイトにアクセスする

前提 使用ブラウザ:Chrome How To 開発者ツールの Network conditions を開く Select automatically のチェックを外し、UAを選択する Googlebotはデフォルトで用意されてる その他の検索エンジンbotを指定したい場合は Other を選択し、後述のUAの値を入力…

Swift:文字数によるボタンの非活性制御

何がしたい UITextFieldに文字が入力されていない場合、Saveボタンを非活性にします。 実現方法 所感 例のごとく、もっといいやり方があるのかなと思います。 もしご存知の方いらっしゃったらご指摘くださいませ m( )m

プログラミングガールの英語教室:ユーザーへの問いかけ編

こういう時どう言うの? 次の動作を確定するかユーザーに確かめる。 文法講座 Are you sure you want to ~ ? 本当に〜しますか? Example Are you sure you want to delete this item? この商品を削除しますか? ※「消したい」と思っているか(意思)の確認 …

RLMException:Can't mutate a persisted array outside of a write transaction

そのまんまなんですが 'RLMException', reason: 'Can't mutate a persisted array outside of a write transaction.' 上記エラーは Realm の writeトランザクション外でデータの追加や削除を行おうとした場合に発生します。 try! realm.write { // 追加・削…

Githubを使いやすくする:issue/pull requestに関するヒント

issueの一覧の下部に表示される Pro Tip! を集めてみました! {{ 指定した日付 }}以内に更新された issue: updated:>{{ 指定した日付 }} 自分が作成した issue: author:{{ username }} 自分以外が作成した issue: -author:{{ username }} issue 上で誰かをメ…

Githubを使いやすくする:pull requestのテンプレート作成

1. テンプレートファイルの新規作成 新規ファイルの作成は以下の New file から行う。 2. pull request テンプレート設定 テンプレートの作成 隠しフォルダにテンプレートを格納したい場合は、①のように .github/ とディレクトリを切ってその配下に PULL_REQ…

Githubを使いやすくする:issueのテンプレート作成

1. テンプレートファイルの新規作成 新規ファイルの作成は以下の New file から行う。 2. issue テンプレート設定 テンプレートの作成 隠しフォルダにテンプレートを格納したい場合は、①のように .github/ とディレクトリを切ってその配下に ISSUE_TEMPLATE.…

RealmのResults型をArrayに変換する

背景 「テーブルのセルを並び替えたい」と思った時、 let movedCard = cards[index] cards.removeAtIndex(index) cards.insert(movedCard, atIndex: destinationIndexPath.row) といったように実装すればいいかな、と思ったのですが、 今回はデータの保存にR…

Rails Admin:アイコンをカスタマイズする

なにがしたい? 新しいアクションを追加したらその内容を表すiconを設置したいと思うのが人間というものかなと思います。 そこで、自分でカスタマイズしたカスタムアクション用にアイコンもカスタマイズしてみましょう。 アイコンのカスタマイズ方法 1.自…

core is not a symlink... CoreDataからRealmへの置き換え

podでRealmをインストールする 1. Podfileへ記入 pod `Realm` 2. pod install 出会ったエラー core is not a symlink. Deleting... Downloading dependency: core 0.97.1 Downloading core failed: こちら、Xcodeのキャッシュの問題かネットの問題のようで…

SwiftのQuickを使う:テンプレートの導入

テンプレートの導入 テンプレートをインストールするために「Alcatraz」を使用します。 AlcatrazはXcodeのPackage Managerです。 以下の記事を参考にしました。 qiita.com 2. Xcodeを再起動すると、Window選択で「Package Manager」が表示されます。 3. Pack…

Rails Adminでenumを扱う

現在( 2016/01/05 )使用している、Rails Admin(0.7.0)でRails4から使用できるモデルのenum値を使用すると、エラーが起こった。 サラッと解決している天才さんがいたので、感謝。 天才のGist ※注意事項 上記のファイルを作成したところ、Linuxの環境ではc…

Rails Admin:fieldの値の表示をあやつる

ここの項目の値は編集させたくないなーとか思ったときに、その項目を readonly にする方法。 config/initializers/rails_admin.rbにて設定可能。 ※ include_all_fields を明示的に記述しないと、なんのfield も表示されないので注意 参考資料:公式wiki

Rails Admin:既存の編集画面に独自の編集項目を追加する

なにがしたい 「ああ、Editページに○○を編集するスペースがほしい! 」と思うことがあるかもしれない。 今回だと、ProductモデルにImageモデルが関連づいていて(1商品が複数の商品画像を持っている想定)、 ProductのEditページにImageの表示順編集項目エ…

Rails Admin:Custom Actionの追加

デフォルトのアクションオプション まずはじめに、Rails Adminのアクションにはこんなデフォルトオプションがあるよ、というご紹介。 オプションのデフォルト値一覧は以下のファイルに書かれている。 github.com register_instance_option :collection? モデ…

Git Stash ~一時的に変更を保存(退避)する~

When to use *作業中のブランチでPullしたい場合 *作業中だが、ほかのブランチで一時的に作業する場合 Goal 一時的に今までの変更を退避させる How to ① git branch 今のブランチを確かめる ② git stash save 今までの変更を一時的に保存する ③ git stash …

EclipseでAndroid SDK Managerが見つからないとき

通常、Ecipseでは、Android SDK ManagerはWindow→Android SDK Managerから立ちあげる。 しかし、そこにAndroid SDK Managerが見当たらない場合が…。 対処法 ① Window→Customise Parspective… ② Command Groups AbilityタブのAndroid SDK and AVD Managerにチ…

文字列に同一の文字がないか点検する

メソッドの作成 引数に渡された文字列に同じ文字が含まれないかを調査するメソッドを作成。 今回は2通りのやり方で実装してみた。 ① 2重ループを使用しての実装 (https://gist.github.com/914f60842b791725ebab) ② HashSetを利用し、1重ループでの実装 (h…

地域制限で閲覧できないサイトにアクセスする方法 〜Hola Better Internet〜

海外のWebサービスを利用すると、たまに 「U.S以外の地域からのアクセスは禁止されています」 という切ない答えが返される…。 今まではStrongVPNというサービスを利用していたけれども、 月額$7.00ほどかかってしまうし、動きもぎこちなかった。 今回取り入…

AndroidManifest.xmlで「cannot resolve symbol error」が出るとき

AndroidManifest.xml内で、「cannot resolve symbol error」が出てしまった時、 File → Invalidate Caches → Restart and Invalidate and Restart 参考URL http://stackoverflow.com/questions/18927972/my-debug-androidmanifest-xml-is-giving-me-cannot-r…

Cannot locate factory for objects of type DefaultGradleConnector…

Cannot locate factory for objects of type DefaultGradleConnector, as ConnectorServiceRegistry has been closed. 上記のエラーがAndroid Studioで出ました。 私の場合は、Android Studioを再起動することで解決しました。 参考URL https://code.google.…

Raspberry PiをWifiに接続する

Windows編 *TeraTermを入れておくこと 1)TeraTermを起動する シリアルコードでCOMを選択できていればOK 2)設定→シリアリポートを選択 BoundRateを「115200」に変更する Mac編 1)Macのターミナルを起動し、以下のコマンドを実行する ls -l /dev/tty.usb…

Eclipseのキャッシュが壊れた場合の対処法

突然、xmlファイルが読み込めませんなどのエラーに見舞われたとき、 そして、プロジェクトをクリーン(ビルド)しても回復しない場合にどうすればいいか。 1) コマンドプロンプトを立ち上げ、eclipse.exeが入っているディレクトリまで行く。 2) 「eclipse -c…

IISを起動し、外部からのアクセスを許可する

IIS

1) appliationhost.config内のbindingを変更する 54858:ポート番号 <binding protocol="http" bindingInformation="*:54858:*"><br> < binding protocol =" http" bindingInformation="*:54858:localhost" /> ファイルの場所: C:\Users\Username\Documents\IISExpress\config\applicationhost.config 2) 空間予約をする e</binding>…

ローカルの既存のプロジェクトをGitにあげる

Git

1)Gitのリポジトリを「clone」する git clone http://~ 2)プロジェクトをgitのディレクトリにコピペ 3)全てのファイルを「add」する git add -a 4)全てのファイルをコミットする git commit -a 5)コミットしたファイルをプッシュする git push ori…