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

Quiver Export #ruby #markdown

Quiverのノートブックをテキストファイルにエクスポートするツールを作りました。 nori3tsu/unofficial-quiver-export Quiverの内部で保存しているjsonをパースしてテキストファイルにエクスポートするだけのツールです。Cronで定期的にクラウドストレージに…

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

SSHログインでタイトルのエラーが発生するようになったときの解決方法。 Terminal 以下の設定のチェックを外す。 Preferences > Profiles > # Advanced # Set locale environment variables on startup iTerm2 以下の設定のチェックを外す。 Preferences > P…

Quiver: MacのMarkdown Editor #mac

MacのMarkdown EditorをQuiverに乗り換えたので紹介したいと思います。 Markdownいいですよね。簡単なメモから技術的なメモまでシンプルに書けるのでとっても気に入っています。 Macで使えるMarkdown EditorとしてKobitoの操作感が好きでずっと使っていまし…

Web APIを作る上で考えていること

ここ数年、Web API(以降API)を作る機会が増えています。例えば、スマホやシングルページアプリケーションのバックエンド,システム間のデータ連携などです。 これらのAPIを複数の言語やフレームワークで実装してみましたが、個々の機能を実装する前に考えるべ…

Java+RSA公開鍵暗号化 -> Ruby+RSA秘密鍵復号

JavaからRSA公開鍵で暗号化したデータをRubyからRSA秘密鍵で復号するサンプル。 鍵の保存 require 'openssl' OpenSSL::Random.seed(File.read("/dev/random", 16)) rsa = OpenSSL::PKey::RSA.generate(2048) # 秘密鍵を保存 File.open("private_key.pem", "w…

VarnishのコンパイルでError 1

エラーメモ 環境 CentOS 6.5 Varnish 3.0.6 現象 Varnishをコンパイル中に以下のエラーが発生。 varnishadm.c: In function ‘interactive’: varnishadm.c:234: error: ‘rl_already_prompted’ undeclared (first use in this function) varnishadm.c:234: err…

Vagrant上のCentOSでhttpd.confをVagrant共有ディレクトリのシンボリックリンクにしているとOSブート時にhttpdが自動起動しない #vagrant #apache

これはApacheに関わらず、Vagrant共有ディレクトリにサービス起動に必要なファイルを配置している場合に発生する現象です。 解決方法を考えてみましたが、起動スクリプトを変更するという微妙な方法になりました。 どなたか良い解決方法をご存知なら教えてい…

GlusterFSでpeer probe: failed: Probe returned with unknown errno 107 #glusterfs

原因と対策をメモします。

New RelicのAdpexについて #newrelic

公式ページから必要な部分だけメモ。 https://docs.newrelic.com/docs/site/apdex-measuring-user-satisfaction

tmuxinatorでcan't find pane: 1 #tmux

原因と対策をメモします。

Vagrantの共有フォルダをApache(Nginx)のDocumentRootに指定するとレスポンスがおかしくなる奇妙な現象の解決方法 #vagrant

今まで遭遇したことのない奇妙な現象でかなり戸惑ってしまいましたのでメモしておきます。

Heroku Request ID #heroku

Heroku Request IDは1リクエスト毎にユニークなIDをHeroku Routerのログに出力する機能です。このIDはHTTPヘッダにも設定されるので、アプリケーション側でログ出力しておくと、Heroku Routerとアプリケーションのログの結びつけが容易になります。この機能…

Javaヒープ領域の使用量と容量をコマンドラインから取得する #java

JDKに標準で入っているjstatコマンドを使います。jstatコマンドではJavaヒープ領域中のNew領域・Old領域・Permanent領域の使用量・容量・最小容量・最大容量などを取得することができます。 ※ 2015/06/24追記: こちらはJava7までのヒープ領域についての記事…

Mac OS Xでbase64デコード #mac

mac

Linuxの場合は-dですがMac OS Xだと-Dを使うようです。 エンコードはできるがデコードでエラー発生 $ echo "a" | base64 | base64 -d Dec 4 15:36:21 mac.local base64[39990] <Info>: Read 5 bytes. Dec 4 15:36:21 mac.local base64[39990] <Info>: Wrote 8 bytes. WVF</info></info>…

bashの変数($,ダラー,ドル)まとめ

書式説明 $?直前に実行したコマンドの終了ステータス $@スペース区切りの実行引数 $*変数$IFS区切りの実行引数 $0ファイル名 $n実行引数のn番目の値 ${@:n}スペース区切りの配列のn番目以降 ${@:n:o}スペース区切りの配列のn番目からo番目 $$プロセスID ${…

iframe内のオブジェクトをデベロッパーツールのコンソールから操作する #html #javascript

クライアントサイドのJavascript開発では、各ブラウザのデベロッパーツールに付属している対話型のコンソールを使い、状態を確認しながら開発する方法がとても便利ですが、iframe内のオブジェクトを呼びだそうとしても、Same-Origin Policyの制約などでオブ…

Vagrantのbox名を変更する #vagrant

実はboxの実態をリネームするだけでbox名を変更することができます。 boxの実態は$HOME/.vagrant.d/boxesにインストールされています。 $ cd ~/.vagrant.d/boxes/ $ mv {old} {new} あとはvagrant initで新しいbox名を指定するだけです。 $ vagrant init {ne…

Vagrantのゆるい使い方 #vagrant #linux

VagrantはOSに依存しない開発環境を手軽に管理・配布することができるツールです。 私の環境の場合、開発環境にありがちな問題への対処としてVagrantを導入することにより、いくつかの問題を解決することができました。 開発環境構築の手順書を作成したいけ…

Jenkinsのタスクでシェルスクリプトの終了コード1が返却されても処理を続行する #jenkins

Jenkinsタスク内に設定したシェルスクリプトは/bin/sh -xeで実行されるため、コマンドの途中で終了コード0以外が返却されるとタスクがエラーとして終了します。通常はこの挙動で問題ないのですが、場合によりそのまま処理を継続させたいこともあります。解決…

Herokuの1dynoのCPUコア数 #nginx #heroku

Nginxのworker_processesには通常CPUのコア数を設定しますが、heroku上に配置したNginxの場合1dynoに割り当てられているCPUコア数がわからなかったので調べてみました。 Stack Overflowに同じように悩んでる人が居ました。 同様にheroku run コマンドでコア…

Gitコマンドのハイライト表示 #git

Git

Git の diff を美しく表示するために必要なたった 1 つの設定 #git こちらの記事を見かけて設定してみたら私の環境(OS X Mavericks)ではなぜか出来ませんでした。調べてみたらgit configでcolor.uiを設定することにより近いことができました。ハイライト表示…

Macがより快適になるアプリケーションと各種設定

購入してから放置していたMacBook Air (11-inch, Mid 2011)をiOS開発のためにセットアップしてみたら、なぜ今まで使ってなかったのかと後悔してしまうくらいに快適です。Macに乗り換えた方々のWindows要らなくなったという言葉はにわかに信じられませんでし…

CentOS6+ownCloud+Nginx+spawn-fcgiでプライベートDropboxを構築 #owncloud #dropbox

ownCloudはDropboxのクローンです。Dropboxと同様にWindows,Mac,LinuxやiPhone,Android用のクライアントもあり、非常に便利です。 今回はCentOS6にownCloudを構築する方法をご紹介します。

VirtualBox上のCentOSのディスク容量を拡張する #virtualbox #centos

WindowsのVirtualBoxにCentOSを入れていますが、長く使っているとディスク容量が足りなくなったので拡張しました。方法をメモします。

fluentdのmessageにtimeフィールドを残す #fluentd

fluentdのin_tailでパースされたメッセージは time,tag,message に分割されて次のプラグインまで流れますが、その際にmessageにtimeフィールドが残りません。これを残す方法はないか調べてみました。

siegeの-mオプションが便利 #siege

siegeの-mオプションを付けると、ログファイルにコメント付きで実行結果を残すことが出来ます。負荷をかけるシナリオ名を毎回指定することで、後々ログファイルから振り返りやすくなるため便利です。 ということで-mオプションの便利な使い方を簡単にまとめ…

nginx(ssl offload)+tomcat

nginxでssl offloadしてtomcatをバックに置く場合の簡易設定メモです。

javaのalternatives切り替えメモ

Linuxに新しいJavaを入れた場合、alternativesに追加してバージョンを切り替えています。 コマンドを毎回忘れるのでメモしときます。

curlでJDKをダウンロード

いつもなんらかのミドルウェアをインストールする場合はLinuxからcurlコマンドでダウンロードしてインストールしているのですが、 JDKは普通にcurlでダウンロードしてもHTMLがダウンロードされてしまいます。 curlでダウンロードする方法をまとめました。

AWS EC2にSSH接続出来なくなった場合の対処法

なんらかの原因(ssh_configの設定ミス等)でSSH接続出来なくなってしまい、もうどうしようもない場合の対処法です。

負荷テストツールSiegeのインストールと使い方・オプション・結果の見方

SiegeはWEBサーバに負荷をかけるツールです。同様のツールとしてApache Bench, httperf, Tsung, JMeterなどありますが、私は主にJMeterとSiegeを利用しています。 siegeのインストールと使い方・オプション・結果の見方をまとめました。

Amazon Linux 2013.09 に GitLab6.1 をインストール

GitLabはGitHubのクローンです。 サーバにプライベートなGitHubを構築することができます。 公式は Debian/Ubuntu を対象としていますが、Amazon Linuxにインストールしみました。 このような記事は生物ですが、「Amazon Linux 2013.09」AMI起動直後のインス…

Javaの標準AES暗号化アルゴリズム互換のRuby(Python)実装

随分前に悩んだことでまた悩んでしまったのでメモ。 Java/Python/Rubyのそれぞれの実装をまとめました。

Qiita移行

書く場所を一本化するため、Qiitaに保存していた作業メモをこのブログに移行しました。 かなり雑多。 http://nori3tsu.hatenablog.com/archive/2013/9 あとSNS連携テスト。 しかしはてなブログ使いやすいなー。 Markdownとかコードのシンタックスハイライト…

EC2→VPC移行メモ

EC2インスタンスをVPCに移行する際の簡易作業メモ。

ELBにSSL証明書を登録する

証明書と秘密鍵の作成 $ openssl genrsa 2048 > private-key.pem $ openssl req -new -key private-key.pem -out csr.pem $ openssl req -x509 -days 3650 -in csr.pem -key private-key.pem -out hostcert.pem 登録 $ iam-servercertupload -b hostcert.pem…

Maven 依存ライブラリを指定ディレクトリにコピー

$ mvn dependency:copy-dependencies -DoutputDirectory=lib

siegeでPOSTリクエストを送信

パラメータ用のファイルを作成。 URLの末尾に"POST"パラメータをつける。 ex) request.txt http://127.0.0.1/users POST key1=value1&key2=value2 siegeを実行。 $ siege -c 1 -r 1 -f request.txt

Rubyのaws-sdkでプロキシを使う

require "aws-sdk" config = { :access_key_id => "access key id", :secret_access_key => "secret access key", :proxy_uri => "http://127.0.0.1:8080" } AWS.config(config) s3 = AWS::S3.new

LinuxからWindowsのディレクトリを共有

一時的にマウントする場合。 $ sudo mount -t cifs -o username=${username},password=${password},rw,fmask=0666,dmask=0777,uid=${uid} ,gid=${gid}//${hostname}/${directory} /mnt/${directory} 起動時にマウントする場合は/etc/fstabに書く。 ~ # 末尾…

Rspecで特異メソッド・インスタンスメソッドのスタブの書き方

# 特異メソッド Time.stub(:method_name) { value } # インスタンスメソッド Time.any_instance.stub(:method_name) { value }

CentOS6.3のrbenv(1.9.2p180)にdebuggerをインストールしてrailsを起動するまでのメモ

作業メモ。

ファイルのタイムスタンプを統一する

$ find . -type f -exec touch -d "`date '+%Y/%m/%d 00:00:00'`" {} \;

タイムゾーンの変更

タイムゾーンをJSTに変更 $ cp /usr/share/zoneinfo/Japan /etc/localtime

Signal.trapの上書き

既存の処理を上書きせずに、trapの処理を追加したい場合。 とりあえずこんな感じで出来た。 例:USR1シグナルの処理を追加する場合。 signal = :USR1 proc = Signal.trap(signal, nil) Signal.trap(signal) { proc.call # 追加処理 }

varnishのvmodインストールメモ

依存ライブラリのインストール $ sudo yum install -y pcre-devel python-docutils automake libtool readline-devel varnishコンパイル $ curl -LO http://repo.varnish-cache.org/source/varnish-3.0.4.tar.gz $ tar zxvf varnish-3.0.4.tar.gz $ cd varni…

ブログ移行

シンプルさを求めFC2からはてなブログに移行しました。 以前のブログは閉鎖しました。 ブックマークやRSSなどに登録頂いている方がいらっしゃいましたら、 こちらのURLに変更をお願いします。

Liferayによるマルチキャストクラスタリングがうまくいかない場合の調査方法

Liferayが内部で使用しているEHCache,Luceneなどのクラスタリングは、マルチキャストにより実装されています。 マルチキャストで実装することにより、自ホスト以外のサーバ台数や接続情報を気にすることなく、新たなサーバをクラスタに追加させることができ…

Liferay 6.0 CE でモバイル対応

Liferay 6.1 CE では標準でモバイル対応機能が入っていますが、Liferay 6.0 CE には入っていないため追加する必要があります。Liferay 6.0 CE にモバイル対応機能を追加する方法をメモします。環境 Liferay 6.0.6 CE関連ファイルのダウンロード Liferay 6.0 …

= require_tree . # この行を削除

それぞれのrequire_treeを削除したことでControllerに属するJS/CSSファイルが結合対象外となったため、レイアウトで読みこむように指定します。ファイル:app/views/layouts/application.html.erb "all" %> javascript_include_tag params[:controller] %> …