コピペコードで快適生活

明日使えるソースを自分のために

よく使うステータスコード

APIのレスポンスコードをどうするか毎回迷うので。 下記より転記させていただきました。 http://ruby-rails.hatenadiary.com/entry/20141125/1416918957#render-ctrl-status-code Code シンボル 説明 200 :ok レスポンスが正常に終了した 201 :created creat…

Windows10でhosts編集ウィンドウを一発で開く

powershell -NoProfile -ExecutionPolicy unrestricted -Command "start notepad C:\Windows\System32\drivers\etc\hosts -verb runas"これを edit_hosts.bat みたいな名前で保存して、ダブルクリックで起動したらOK。

シェルで便利だったオプションまとめ

随時追加していく。 # grepでOR検索 cat file.txt | grep -e hoge -e fuga # grepで前後行も出力 # -A -> 後の行数 # -B -> 前の行数 cat file.txt | grep -A 10 -B 5 hoge -e fuga # xargsでパイプで渡された値を任意の場所に突っ込む cat file.txt | grep …

My.tmux.conf

随時更新していく bind s split-window -v bind v split-window -h bind j select-pane -D bind k select-pane -U bind h select-pane -L bind l select-pane -R bind r source-file ~/.tmux.conf \; display "Reloaded!" set -g pane-active-border-fg red …

サーバサイドとクライアントサイドのJavascriptが混在しているリポジトリ

表題の件の構成について社内チャットで説明したのを、再構成してみました。 ディレクトリ構成 - build - src - gulpfile.js - package.json - node_modulesbuildには、ブラウザが読み込んでいるjs, css, html 一式、 そしてnodeサーバが動かしているjsが入り…

Rubyで名詞の単数形・複数形を変換する

たまにやりたくなる。いつもメソッド名忘れているけど。 require 'active_support' 'user'.pluralize # => users 'users'.singularize # => user

gitでたまに使うコマンド集

git

たまにしか使わなくて、よく忘れるコマンドをメモしていく。 # リモートリポジトリの変更 git remote set-url origin <新しいリポジトリURL> # タグでブランチ切る git checkout -b 1.6 refs/tags/v1.6 # 間違ってaddしたやつを取り消す git reset config/en…

Rubyでメソッドの定義場所を確認する

gem pry を使うと、$で簡単に確認できる $ "".present? # From: /home/kinosuke/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7/lib/active_support/core_ext/object/blank.rb @ line 23: # Owner: Object # Visibility: public # Number of lines:…

rpmでインストール&アンインストール

オプションをいつも忘れるのでメモ。 # インストール rpm -ivh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.1.rpm # アンインストール rpm -e elasticsearch # 詳細確認(インストールされているかどうか確認できる) rpm -q ela…

My.vimrc

vim

随時アップデート中 " " NeoBundle " first setting " curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh " vim " :NeoBundleInstall " if has('vim_starting') set runtimepath+=~/.vim/bundle/neobundle.vim call …

CSRの作成方法メモ

# genarate random text openssl md5 * > rand.dat # genarate private key openssl genrsa -rand rand.dat -des3 2048 > mydomain.com.key # generate csr openssl req -new -key mydomain.com.key -out mydomain.com.csr # confirm openssl req -in mydoma…

RailsConsoleでサクッとメール送信

本番環境でメール送信チェックとかするとき用に。 ActionMailer::Base.mail(to: "test@example.com", from: "test@example.com", subject: "題名", body: "本文").deliver

RubyでHTTPリクエストを送る

たまにしか使わなくてよく忘れるのでメモします。 require 'net/http' require 'uri' uri = URI.parse("http://kinosuke.hatenablog.jp/") # when get request req = Net::HTTP::Get.new("#{uri.path}?#{uri.query}") # when post request # req = Net::HTTP…

Rubyでログを強制出力する

require 'logger' _log = Logger.new('/tmp/debug.log') _log.info("#{ログ出力したいもの}") こちらを参考にさせていただきました http://dev.classmethod.jp/client-side/language-client-side/output_log_using_logger/

sedコマンドの基本を知っておく

基本系 eオプションにコマンドを渡して使う コマンドにはs(置換), d(行削除), p(行抽出)などがある。 cat input.txt | sed -e 'コマンド' # もしくは sed -e 'コマンド' input.txt 使用例 # 正規表現で文字列の置換を行う cat input.txt | sed -e 's/xxx/XXX…

RubyでHashの要素に.(ドット)でアクセスしたい

Struct使えば楽にできるみたい。 hash = {hoge: 'fuga'} obj = Struct.new(*(hash.keys)).new(*(hash.values)) obj.hoge # => 'fuga'

PostgreSQLの基本的なコマンド

これまでMySQLばかり使ってきてPostgreSQLの操作に戸惑ったので、よく使う基本的なコマンドをメモしました。 シェルでの操作 # 接続 psql -U USERNAME # ダンプ pg_dump -U USERNAME DBNAME > DUMP_FILE # ダンプ(データだけ) pg_dump -U USERNAME --data-…

{print $1}しか知らない自分のためのAWKメモ

awkのことをきちんと知っておこうと思って、下記を読ませていただいたときのメモ書きです。 http://antibayesian.hateblo.jp/entry/2014/09/15/162605 条件マッチする行を抽出 # 10にマッチする行を抽出する。 awk /10/ trees.txt # 両方の条件を満たす行を…

シェルの便利コマンドメモ(cat, paste, join, comm)

処理対象ファイル a.txt 1. abc 2. def 4. xyzb.txt 1. 123 4. xyz 5. 456 cat ファイルを結合する $ cat a.txt b.txt 1.abc 2.def 4.xyz 1.123 4.xyz 5.456 paste ファイルを横に並べて結合する $ paste a.txt b.txt 1.abc 1.123 2.def 4.xyz 4.xyz 5.456 j…

ファイル、またはディレクトリだけに chmod するシェルのメモ

ファイルの場合 find . -type f -print | xargs chmod 644 ディレクトリの場合 find . -type d -print | xargs chmod 755

Javascriptで配列をリング状に扱えるといいな

Javascript(ES6)でループするようなスライダーとか作るときに、配列がリング状に扱えるといいなと思って書いてみました。 配列を拡張するとかではなくて、あくまで配列のIndexを取得するだけのシンプルな作りです。 export default class RingNums { constru…

SASSをwebpackでコンパイルした時の設定メモ

SASSをwebpackを使ってコンパイルしたときの設定メモです。 npmモジュールのインストール モジュールはこれだけ必要でした。SASSのファイルは、node-sass -> sass-loader -> css-loader -> style-loader と渡されてCSSとなり、extract-text-webpack-pluginで…

CentOS6系にMySQL5.7を一撃インストール

CentOS6系にMySQL5.7をインストールした時のメモ書き。インストール時に発行される初期パスワードをシェルで取り出してログイン。 その後パスワードを仮のものに変更(これを一度やらないと色々操作できない)。 パスワード制約をゆるくして、再度わかりやす…

CentOS6系にRed5サーバを構築する

Webプレイヤーの動作検証のためrtmpのストリームが必要になったので構築してみました。インストール cd /usr/local/src wget https://github.com/Red5/red5-server/releases/download/v1.0.9-RELEASE/red5-server-1.0.9-RELEASE.tar.gz tar -xzvf red5-serve…

unicornのlogrotate設定サンプル

/etc/logrotate.d 配下に下記を置く。 日次ローテート + 90日間保存で設定しています。 ローテートしたログは圧縮するが、直近の1世代分はそのまま /var/www/app/shared/log/*.log { daily missingok rotate 90 dateext compress delaycompress lastaction …

serviceコマンドでunicorn起動するための設定サンプル

下記ファイル を /etc/init.d/ に配置する。 #!/bin/sh # chkconfig: 345 99 01 # description: unicorn as Rails app server SERVICE="unicorn" ENV="production" RAILS_ROOT="/var/www/app/current" CONFIG=$RAILS_ROOT"/config/unicorn/"$ENV".rb" PID_FI…

webpack+reactの環境構築メモ

npm install $ cd my_project $ npm init $ npm install webpack -g $ npm install --save react react-dom $ npm install --save-dev webpack webpack-dev-server $ npm install --save-dev babel-loader babel-core babel-preset-react babel-preset-es201…

Elasticsearchことはじめ

仕事でElasticsearch使う必要があったので、GettingStarted! これはなに? 分散型RESTful検索/分析エンジン https://www.elastic.co/jp/products/elasticsearch 特徴 速い スケールが容易(クラスタ構成) RESTful APIで全ての入出力が可能 検索時は条件との…

JavaScript(ES5)でクラスベースっぽくオブジェクト思考する

JavaScript(ES5)でクラスベースっぽくオブジェクト思考したかったので簡単な書き方をメモ。 var MyObject = function(a){ // アクセサっぽく this.a = a; // privateメソッドっぽく var privateFunction = function(){ alert('private function! arg is ' + …

WindowsでAndroid開発環境を整える

仕事でAndroidアプリを扱うことになったけど、開発環境構築で色々とハマった。同じことを繰り返さないように設定メモを残しておく。 インストール JDK ここからダウンロードしてインストールする。 http://www.oracle.com/technetwork/jp/java/javase/downlo…

コマンドプロンプトでCygwinのシェルを使う

DLLコピー C:\app\cygwin\bin\cygwin1.dllを C:\Windows\System32配下にコピーする。 環境変数設定 システム環境変数のPATHに下記を追加。 C:\app\cygwin\bin C:\app\cygwin\usr\bin C:\app\cygwin\usr\local\bin 最後に 再度ログインする。これで使える。※C…

Gruntの基本をおさえておく

仕事でGrunt使う機会があったので、きちんと基本を押さえておくことにしました。 Gruntってなに? WEBフロント開発で使うJavaScriptとCSSの変換ツール 目的は、JSやCSSを書きやすい形で実装して、ブラウザで実行できる形に変換する環境を提供すること。 主に…

ディレクトリの容量を表示する - duコマンド

書式 du [オプション] [ディレクトリ名|ファイル名] 主なオプション -a # ディレクトリ内の各ファイルに対しても使用量を表示する -b # 結果をバイト単位で表示する -k # 結果をキロバイト単位で表示する(デフォルト) -s # 合計サイズのみを表示する -h # …

WordPressのサイトURLを変更する一撃SQL

WordPressのDBにはサイトURLの情報があちこちに散りばめられて登録されています。 なので、ローカルで作ったサイトを本番に反映するとき、サイトのドメインを変えるときなど、サイトのURLを変えて動作させたいときはやっかいです。DBの中のURL情報をまとめて…

Vagrant+シェルでRails開発サーバを作る

新規案件でRails開発サーバを準備する必要があり、Vagrantとシェルのプロビジョニングで作成したときのメモです。 プロビジョニングにシェルを使用したのは、開発用PCがWindowsのためです。 無理してchefとか使おうとすると、環境構築を楽にするための環境構…

Vagrentの基本的な使い方メモ

準備 1.仮想化支援機構の有効化2.VirtualBoxのインストール3.Vagrantのインストール4.CentOSのVirtualBoxへの登録 # 例 vagrant box add CentOS_6_3 https://dl.dropbox.com/sh/9rldlpj3cmdtntc/chqwU6EYaZ/centos-63-32bit-puppet.box※公開box: http://www…

MySQLにblobで格納されたデータをまとめてファイル出力する

旧システムから新システムへのデータ移行の現場での一コマ。 DBにblobで格納されてた画像データをまとめてファイル出力したかったので、 PHPスクリプトを書いてみた。

シェルでカレントディレクトリ配下のテキストファイルの中身を一斉置換

よく忘れるのでメモ。 # カレントディレクトリ以下 hoge を含むファイルを確認 grep -rn "hoge/" ./. # hoge を fuga に一斉置換 grep -rl "hoge/" ./. | xargs sed -i -e "s/hoge/fuga/g" ${1}

VirtualBoxのゲストOS(CentOS)に複数の固定IPを設定する

表題の件の作業メモです。 ネットワークの割当は[ブリッジアダプター]を想定。作業前: eth8 に 192.168.135.224 を割り当て作業後: eth8 に 192.168.135.224 を割当 eth9 に 192.168.135.225 を割当 アダプターを増やす VirtualBoxの設定 > ネットワーク …

UPDATE文でLEFT JOIN

SQL力が不足していて、LEFT JOINしたテーブルの値でUPDATEしたいときのやり方がわからなかったのでメモ。 # 確認用 SELECT * FROM users LEFT JOIN stores ON stores.id = users.store_id WHERE stores.company_id != users.copany_id; # UPDATE文 UPDATE us…

RailsのArelの使い方

RailsでArelを使うときは、下記サイトをいつも参照させていただいていましたが、自分メモ用として転載します。 メモ || Arelのwhere系メソッド一覧 User.w... User.where(User.arel_table[:name].eq("aa")).to_sql # => SELECT "users".* FROM "users" WHERE…

受託開発で炎上しないためのチェックリスト

未来への自分の戒めとして「受託開発で炎上しないためのチェックリスト」を作成してみました。基本的なことばかりだけど、この基本をきちんと押さえておくことが大切だと思うのです。・プロジェクトリーダーを立てているか ・リードエンジニア(技術責任者)を…

minttyのカッコいい設定

minttyは設定次第でカッコいい見た目になるのでとても気に入っています。 僕の.minttyrcは↓のような感じです。 BoldAsFont=no FontHeight=11 Font=Inconsolata FontIsBold=no BackgroundColour=0,0,0 ForegroundColour=245,245,245 Transparency=medium Colu…

RubyでUTF-8変換時にUndefinedConversionが出た件

shift_jisで書かれたCSVをUTF-8に変換して取り込み処理をするところで、Encoding::UndefinedConversionError が吐かれてた。 str.encode('utf-8', 'shift_jis') # => Encoding::UndefinedConversionError: "\x87@" from Shift_JIS to UTF-8 なんでだと思って…

Rubyで短縮URL用の文字列生成

短縮URL機能を自前で作らないといけないんだけど、その文字列の生成アルゴリズムをどうするかなーってところで、 Flickrの短縮URL用にRubyでbase58実装 | EasyRamble こちらで紹介されているソースをほぼそのまま利用させてもらいました。ただ今回は、ひとつ…

MySQLのユーザ管理コマンド

ユーザ管理 -- ユーザリスト SELECT Host, User, Password FROM mysql.user; -- ユーザ作成 CREATE USER 'kinosuke'@'localhost' IDENTIFIED BY 'some password'; -- パスワード変更 SET PASSWORD FOR 'kinosuke'@'localhost' = PASSWORD('some password'); …

rbenvでRubyをインストール~gemsetの設定

Rubyインストール # rbenv をインストール(clone)する git clone https://github.com/sstephenson/rbenv.git ~/.rbenv # bash_profile 設定追加 # vim ~/.bash_profile export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" # 上記設定の再読み込…

Rails×SES バウンスメール(不達メール)対策

「SESで不達メールが多いから、対策してくれなかったらSES止めるよ」って過去にAWSから言われたことがあって、そのときの対応メモを書きだしてみた。対応の基本的な流れ SESは不達メールがあった場合に特定のURLに対してリクエストをjson付きで投げてくれる…

Backlog風のベルト型通知UI

Backlogの課題更新時に表示されるベルト型の通知UI。 あれいいなって思って実装してみた。 Ajaxで更新処理したあとの通知用に使っていこう。 /* * Backlog風のベルト型通知UI */ function beltNotice(text, type) { var bg_color = "#468847"; if (type == "…

Apacheのログ解析でFSにダブルクォート使うと便利

Apacheのログが扱いづらいとTwitterで嘆いていたら新たな知見をいただいた。awk v.s. bashどっちが強い?@OSC2011Tokyo よりFSにダブルクォート(")を使え! ダブルクォートをFSにすると、、、 $1:アクセス元、日付 $2:受け取ったコマンド $3:ステータスコ…