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

Ubuntu 16.04 でマウスの速度を永続的に変更する

/usr/share/X11/xorg.conf.d/50-mouse.conf というファイル名で下記の内容を記述する。 Section "InputClass" Identifier "My Mouse" MatchIsPointer "yes" # Default value of mouse acceleration: 2/1 4 # Set AccelerationNumerator to zero to disable O…

docker rm でコンテナを削除しようとすると Devise is Busy と表示されコンテナを削除できないが、/var/lib/docker/devicemapper/mnt に該当のディレクトリが無いときの対処方法

docker サービスを再起動する。

ディレクトリの容量を調べるコマンド

du -s DIRECTORYPATH -s は与えられた引数の位置だけの容量を表示する。 DIRECTORYPATH は調べたいディレクトリのパス。

self と self.class の違い

self.class は自身のクラスを返す。 self は自身のクラスまたはインスタンスを返す。 class Hoge def moge puts self.class.methods end def noge puts self.methods end end h = Hoge.new h.moge puts "-----" h.noge 出力結果は下記となる。 new allocate …

手段が目的となっても良い

概要 「手段と目的を混同してはいけない」「手段の目的化はダメ」のようなセリフはこれまで生きてきて何度も聞いていて、その意味や伝えたいことはなんとなく理解していたつもりでしたが、具体的に考えてみると違和感が出てきました。結論として、手段が目的…

unicorn のプロセスを終了させる

下記のコマンドを実行する。 kill -QUIT `cat tmp/pids/unicorn.pid` unicorn の親プロセスの ID は tmp/pids/unicorn.pid に保存されている。

親プロセスのプロセスIDを調べる

ps alx コマンドで表示される PPID が親のプロセスIDを示す。

unicorn の起動コマンド

bundle exec unicorn_rails -c config/unicorn.rb -E development -D -c: コンフィグファイルのパスを指定する。 -E: Rails の環境を指定する。この場合は development 環境となる。 -D: バックグラウンドで実行する。

指定した名前のDockerコンテナが存在すればdocker stopコマンドを実行する

sudo docker ps -a --filter "name=app" | awk 'BEGIN{i=0}{i++;}END{if(i>=2)system("sudo docker stop app")}' --fileter "name=app" は docker ps -a の結果の中からコンテナ名が app であるものだけを表示するオプション。 sudo docker ps -a --filter "…

全てのDockerイメージを削除する

sudo docker images -q | xargs sudo docker rmi

全てのDockerコンテナを削除する

sudo docker ps -aq | xargs sudo docker rm コンテナは停止している必要がある。 -aオプションは全てのコンテナを表示する。 -qオプションはコンテナIDのみを表示する。

Capistrano のタスク間で共有できる変数

set :hoge, capture("pwd") 変数 hoge に capture("pwd") の実行結果が格納される。この hoge は別のタスクからでも fetch(:hoge) と書くとアクセスすることができる。

Cygwin でデスクトップに移動しやすくするエイリアス

下記を.bashrcに書くとデスクトップに移動しやすくなります。 alias desktop='cd $USERPROFILE/Desktop'

PHPloy を使った FTP サーバーへのデプロイ

いろいろと FTP サーバーへのデプロイツールを探していましたが、PHPloy が今のところの使用感としては良い感じです。 https://github.com/banago/PHPloy PHPloy は Git と連携しており、php phploy.phar deploy というコマンドを実行すると最後のコミットの…

qrank を WordPress から Flight に移行した

Flight への移行 qrank では WordPress をフレームワークとして使っていましたが、ランキングデータの保存をすべて外部のサーバーで行うようにしたので、WordPress の役割はルーティングとビューだけになってしまいました。となると WordPress である必要は…

qrank の API サーバーを Serversman から ConoHa に移管した

概要 qrank はもともと WordPress で動かしていましたが、保存している記事の件数が増えてレスポンスが遅くなっていたため、記事情報の保存やランキングの計算を外部のサーバーに委ねることにしていました。そのサーバーに Serversman のメモリ 1GB のプラン…

$LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib]) の意味

Serverspecのbin/serverspec-initに書かれていた一行です。 $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib]) 趣旨 $LOAD_PATH に実行中のファイルのディレクトリから ../lib の場所を追加する。 $LOAD_PATH に lib ディレクトリの位置を…

日付の期間を扱いやすくする PHP ライブラリ DateRange を作りました

PHP

ある日付がある期間に含まれているかどうかやある期間とある期間が重なっているかどうかを検査したりする機能を提供するライブラリを作りました。 GitHub https://github.com/suzuki86/DateRange GitHub Page http://suzuki86.github.io/DateRange/ 使い方 D…

委譲の使いどころ

委譲について調べたので記録を残しておきます。 参考 Rubyでdelegation(委譲)を簡単にする2つの方法 http://qiita.com/w650/items/671cc9c49b2ebf60620d 「継承より委譲」≠「継承使うな」 http://osa.hatenablog.com/entry/2014/08/28/204853 まとめ Ruby で…

配列の要素の中で特定の条件を満たす要素を取り出す

partition メソッドを使うことで特定の条件を満たす要素を取り出すことができます。 下記は [1,9,3,15,5] という配列から 4 以上の要素を変数 a に、3 未満の要素を変数 b に代入します。 a, b = [1,9,3,15,5].partition{ |item| item > 3 }

特異メソッドから直接インスタンスメソッドは呼び出せない

下記のような書き方をするとエラーになる。 class A def self.speak say_hello end def say_hello puts "Hello" end end A.speak # undefined local variable or method というエラーが表示される。 self.speakメソッドの中で自分自身のクラスをnewすると呼…

qrank に新着記事一覧を追加しました

qrank に新着記事を一覧表示するページを追加しました。Qiitaはログインしないと新着記事の一覧を見られないので、多少便利かと思います。 qrank | Qiitaの人気記事ランキング

Rails 4.0.0 でコントローラーに GET リクエストを行うと、何故か複数回コントローラーが実行される

Rails 4.0.0 で特定のコントローラーに GET リクエストを送ると、何故か複数回コントローラーが実行される現象に遭遇しました。しかも直接 URL に GET リクエストを送ると、1度だけ実行されるのですが、HTML の a タグを使って他のページからのリンクで移動…

ターミナルの現在のディレクトリ名や $ が表示される部分(PS1)の色を変えると見やすい

ターミナルで作業をしていると、どの行が自分が実行したコマンドでどの行が標準出力なのか分かりづらかったので、これの色を変えると見やすくなりました。 ターミナルの現在のディレクトリ名や $ が表示される部分は PS1 と呼ばれ、PS1 という変数に書式が定…

Rails 4 で shared_context を使ったテストを実行すると 「Could not find shared context "hoge"」 というエラーが出るときの対処方法

環境 Rails 4.1.5 RSpec 3.1.4 現象 bundle exec rspec を実行すると、「Could not find shared context "hoge"」 というエラーが表示される。 対処方法 spec_helper.rb の RSpec.configure do |config| の外側に下記を記述することでエラーが出なくなった。…

初級者から中級者にあがるための英語を勉強するのに engVid シリーズが良い感じ

初級者から中級者にあがるための英語を学習するのに engVid というシリーズが良い感じです。英語の文法、熟語の意味や使い分け等を全て初級英語で解説してくれる動画です。全て初級英語で解説されているってところが重要で、初級すぎず、上級すぎない絶妙な…

qrank でユーザーのフォロー数、フォロワー数、投稿数のランキングを見られるようにした

3分に1ユーザーという遅さでデータを更新していますが、そのうち大体のユーザーのデータが取得されます。このランキングはユーザーの情報を直接 API で取得しているので、集計の数値はストック数ランキングに比べて正確です。 フォロー数 http://qrank.wbsrv…

qrank をマイナーアップデートした

Qiita の人気記事をランキング形式でチェックできる qrank をマイナーアップデートしました。 変更したところ 更新頻度の高くないユーザーランキングをトップページから削除した。代わりにリンクをサイドバーへ移動させた。 記事ランキングの「昨日」が当日…

GitHub の issue や pullrequest でのやり取りを翻訳する (1)

恐らく単語や文法だけを覚えても実際にコミュニケーションに応用することは難しいかと思います。なので生きたやり取りを理解するように努めることで実用的な知見を取り入れることを目指します。赤字の部分は自信無し。 翻訳対象の issue https://github.com/…

Springpad から来たメールを訳す

Githubでの開発が主流となった今、英語ができないと取り残される感があるので英語の読み書きもトレーニングしていこうと思います。たまたま Springpad からサービス終了のお知らせが来たので今日はそれを翻訳することにしました。 We are very sorry to anno…

qrank for Android をリネームした

https://play.google.com/store/apps/details?id=com.qrankforAndroid&hl=ja アプリケーション名が被ってしまっていたので Heard という名前に変えました。なんか新しい名前も被りそうな気もしますが、とりあえずこれで進めます。

Android アプリケーションを JUnit でテストするための Hello World

JUnit を使ったことないので非常に苦戦していますがとりあえずテストを動かせたのでメモしておきます。Eclipse を使っています。 テスト対象の MainActivity package com.japan; import android.os.Bundle; import android.app.Activity; import android.vie…

Google の検索結果の絞り込み条件に 3 ヶ月 と 6 ヶ月を追加する Google Chrome 拡張機能のソースコードを Github で公開しました

大した処理はしてませんがソースコードを Github で公開しておきます。 Github https://github.com/suzuki86/AddSearchOptions Chromeウェブストア https://chrome.google.com/webstore/detail/add-search-options/kaifgnoibnjldmdkkfogenbfbfgcbiao?hl=ja …

満を持さずに Qiita の記事ランキングをチェックできる Android アプリ「qrank for Android」を公開しました

Qiita の人気記事をランキング形式で見たい欲が高まってきたため Android アプリをだいぶ適当な感じに作りました。もともと qrank.wbsrv.net で作っていたやつです。Android アプリのソースコードが公開されている事例があまり無かったので実験的に Github …

C 言語を読み書きできないけど neovim のソースコードを読む (2)

引き続き読んでいきます。あんまり進んでいる感じがしないけど楽しいです。 ソースコードはどこから読む? main.c の main 関数から実行されるはずなので、そこから順番に追っていく。 main 関数の引数 int main(int argc, char **argv) int argc と char **…

C 言語を読み書きできないけど neovim のソースコードを読む (1)

最近 neovim というプロジェクトが話題になりました。vim をめっちゃリファクタリングしよう!っていうプロジェクトです。日頃から vim は使っているし、個人的にかなり興味のあるプロジェクトなので、なんとかして貢献できないかなーと思ってます。 でも僕…

ファクトリーパターン

XML形式のデータ、CSV形式のデータ、JSON形式のデータがあったとして、どれか一つのファイルを読み込ませて表示させるクラスを作りたい。そしてそのクラスを人に使ってもらいたい。↓XML形式、CSV形式、JSON形式はそれぞれ別の方法で読み込む必要があり、どの…

Selenium IDE で Javascript を実行する

下記はテスト対象の画面をスクロールさせるスクリプト。setEval は Javascript の実行結果を変数に格納するコマンドであるが、ここでは Javascript を実行するためだけに利用している。 setEval | selenium.browserbot.getCurrentWindow().scrollTo(100,800)…

左からグイーンと表示されるサイトバーを実現する方法は標準で組み込まれている

DrawerNavigationというそうだ。ここに辿り着くまでだいぶ遠回りした...

R.layout.x で呼び出されるファイルの位置

R.layout.hoge は res/layout/hoge.xml を参照している。なので、ファイルが置いてないとエラーになる。

「MySQLをインストールしたら、必ず確認すべき10の設定」を読んだ

MySQLをインストールしたら、必ず確認すべき10の設定http://yakst.com/ja/posts/200調べた用語を書いておく。 コネクションプール http://e-words.jp/w/E382B3E3838DE382AFE382B7E383A7E383B3E38397E383BCE383AAE383B3E382B0.htmlDBへの接続を使いまわすこと…

script コマンドを使うとターミナルの操作履歴を取得できる

ログには制御文字が含まれるのでちゃんと見たいときは cat コマンドを使う。

npm のパッケージがカレントディレクトリにインストールされない

g オプションをつけないとカレントディレクトリにインストールされるとあるが、rootでやると、/rootにインストールされてしまうのはなぜ?

centos 5.8 のキーボードレイアウトを日本語配列に変更するには設定変更してから再起動が必要

掲題の通り。

CentOS に作成されたユーザー一覧を確認する

cat /etc/passwd

qmail の動作

ドメインは example.com、ユーザー名は hoge であるとする。 メールを受信すると /var/qmail/mailnames/example.com/hoge/Mialdir/new にファイルが作成される。このファイルを cat で表示してみると、メールの中身が表示された。このファイルがメールそのも…

母集団、標本とは

下記のページにある図を見ることで一瞬で理解できました。http://www.spc.tmu.ac.jp/lit/2013/1a/stat2/index.html日本のサラリーマンの平均年収を調べたい、となったときに 日本のサラリーマン全員を母集団という。 日本のサラリーマン全員に聞いて回るコス…

主成分分析は変数の数を減らせるみたいだけど、いわゆる次元削減というやつなのか?

だいたいそうっぽいです。http://blog.livedoor.jp/itukano/archives/51798018.html

apt-cyg のリポジトリ変更

デフォルト(確か) apt-cyg -m ftp://ftp.iij.ad.jp/pub/cygwin/ Cygwin Portsに変えたいとき ftp://ftp.cygwinports.org/pub/cygwinports

2変数の相関を調べる方法

データが正規分布するとき ピアソンの積率相関係数 データが正規分布しないとき スピアマンの順位相関係数 ゲンドールの順位相関係数