2014-11-29から1日間の記事一覧
MySQLにおいてint(10)は整数データタイプの表示幅を10桁に指定するという意味になります。 create文例: CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL DEFAULT '0', `name` varchar(40) NOT NULL DEFAULT '', `type` smallint(6) NOT NULL DEFAULT …
JSONは便利ですが、一点不満なところがあるとすればそれはコメントが書けないことです。 例えば以下の様なJSONがある場合、 JavaScriptのように // などでコメントを表現しようとするとエラーとなります。 { "startAt":0, // 開始位置 "maxResults":18, "tot…
MySQLのインストール、初期設定まで MySQL のインストール まずは homebrew を使ってmysqlをインストールします。 % brew install mysql ここでインストール後の設定方法が出力されます。 これらの情報は brew info mysql で確認可能。 データベース及びユー…
Perlのarraysとlistsは似ていますが全く異なるものです。 どこがどう違うのかはよくまとめられた記事がありましたのでこちらを見ていただくとして、 ここでは自分用にメソッドの戻り値としてarraysとlistsそれぞれを指定したときに、 スカラーコンテキストで…
起こったこと transactionモードで作業途中、セッションが切れた。 そのとき特定tableにinsertをしたがcommitしていない状態だった。 後ほど再度そのtableをselectしたが、当然commitしていないのでデータがなかった。 しかしinsertしようとすると、 ERROR 1…
afconvert はmac os x に標準で搭載されているコマンド。 SNDFILE.aiff を aac フォーマット、拡張子 mp4 で変換するコマンド例 (-f mp4f なのがみそ) $ afconvert -f mp4f -d aac -b 256000 SNDFILE.aiff $ afplay SNDFILE.mp4 Ref. LH質問箱:音質にビット…
HerokuはWebアプリ用のホスティングプラットフォームです。 初期はRuby on Railsなアプリケーションのみのサポートでしたが, 現在は Java, Node.js, Scala, Cloure, Python, PHP などに対応しているらしいです。(DBはPostgresQL, MySQLなど) ソースコードの…
手順 RPMforgeレポジトリをインストールします。 $ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.0-1.el5.rf.i386.rpm $ sudo rpm -ivh rpmforge-release-0.5.0-1.el5.rf.i386.rpm RPMforgeのdefaultを無効化します。 $ less rpmforge…
UNIX のコマンドでテキストファイルの差分箇所を抽出するには diff が便利です。 そしてこれはもちろん Perl でも行うことができます。 以下に3通りのdiffに対応したPerlコードを示します。 一致しているかどうかだけ分かればよい場合 Digest::MD5 もしくは…
Slab Allocator とは 従来の memcached のではすべてのレコードに対して malloc と free を行うというものでした. しかしこの方法では memory の fragmentation (断片化) を発生させてしまい, OS の memory manager に負荷をかけてしまいます. この問題を解…
capybara を使った自動テストを実行しようとした時に下記のエラーが発生してこけました. /Users/${YOUR_NAME}/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/chrome/service.rb:20:in `executable_path…
Mac OS X ではdefaultのログインシェルは/bin/bashです。 これをhomebrewなどで入れた他のシェルに切り替えたい場合にはchshを使います。 zshに切り替える。 $ chsh -s /usr/local/bin/zsh bashに切り替える。 % chsh -s /bin/bash see also man chsh
web serverが立ち上がっていない場合、まずweb serverを起動します。 $ grunt server http://localhost:9000/ にスライドが表示されますね。 そうしたら、このURLに ?print-pdf を追加します。 http://localhost:9000/?print-pdf#/ Mac OSX かつ Chrome なら…
MacOS X にインストール まずはnodeをインストールします。 #node $ PREFIX=$(brew --prefix) $ sudo mkdir -p $PREFIX/{share/man,bin,lib/node,include/node} $ sudo chown -R $USER $PREFIX/{share/man,bin,lib/node,include/node} $ brew install node n…
公式に書いてあるとおりなのですが備忘録ということでここにも書いておきます。 gitからソースを取得してきて自分でコンパイルする方法でインストールしてみました. 手順 homebrew を使って sqlite 及び qt をインストールします. $ brew install sqlite --w…
おもむろに sqlite3 と打ち込んだら exit の仕方がわからなかったので。 SQLite ではすべてのコマンドに prefix "." をつけます。 よって、exit するには prefix として "." をつけて sqlite> .exit などとします。 ちなみにその他の特殊コマンド一覧を見た…
背景 プロジェクトで MySQL w/rails を使う事になったが, development のパスワードが config/database.yml に固定で記載されていたため, localの mysql のパスワードを変更する必要があった. 手順 mysql に入ります. mysql -u root -p user:Password を新し…
memcached をどういう場面で使用するべきかについて、 現時点での考えをまとめておきます。 キャッシュすべきなのは "レコードユーザの閲覧履歴などユーザに紐づくレコード" だと思います. RDBからレコードを取得するには selectをかけた時に対象レコードが…
経緯 HDD内の"その他"領域肥大化が発覚。対象ディレクトリを調べる。 基本的に $ sudo du -h -x -d 1 / で調べていく。 今回は原因が /private/var//vm/sleepimage っぽい。 $ sudo du -h -x -d 1 /private/var//vm 8.1G /private/var//vm $ ls -l /private/…
Pig ではレコードA, B に対して id で left outer join するときには下記のようにします。 result = JOIN A by id LEFT OUTER, B by id; これを例えば id, log_date という2つのカラムで left outer join をしたいときには、そのカラム群を () で囲んむこと…
Chrome で cookie を確認したり削除したりすることがあると思いますので、 GUI操作手順を載せておきます。 まず "設定" に行きます (⌘ + , とかでもいけます) 下の方にリンクしてある "詳細設定" にいきます。 "コンテンツの設定" を押します。 "すべての Co…
EUC-JP や Shift-JIS がてんこ盛りなリポジトリでおもむろに ag で検索をかけてもスキップされるファイルがあることを発見しました。 調べてみると、どうやら ag では EUC-JP や Shift-JIS のファイルがバイナリファイルとみなされ、検索対象からはずされて…
すごくよく出来る人が作った、すごくよく要点がまとまっているノートがほしい!という人がいます。 確かに、すごくよく出来る人のノートは要点がよくまとまっており、必要な情報にアクセスしやすく、また簡単に理解することができるため、欲しがる気持ちもわ…
Ruby gem の Faker が便利だったのでメモしておきます。 この gem はTESTをする時などに用意したくなる fixture などを作成するときなどに活躍します。 文字数指定で validation しているコードを TEST したいときや email アドレスのフォーマットに従ってい…
Ruby における演算子 && と and は同じ意味を持ちますが優先度が異なります。(Perlについても同様) これによって使うべきシーンがそれぞれ異なりますので、ここにはその辺りの使い分けについて書いておきます。 定義 定義は && も and も「左辺を評価し、真…
RSpec の expect において expect() expect {} はそれぞれ値を引数として取得するか、ブロックつきメソッドを引数とするかが異なります。 expect() これにより、expect() ではすでに取得済みのレコードがあり、それが予期する値と等しいかどうかなどをTESTす…
binding.pry は debug の際に step 実行を行うことができ非常に便利なものです。 ただ脱出方法がいまいちわからず RSpec などで複数のテストケースを実行してしまう時など Ctrl + D の連打はつらいものがありました。 それでちょっと調べてみたらすぐにでて…
def log(msg, level: "ERROR", time: Time.now) puts "#{ time.ctime } [#{ level }] #{ msg }" end みたいなメソッドがあった時に、正しくハッシュを渡してやると log('Hi!', level: 'ERROR', time: Time.now) #=> Thu Nov 13 01:42:07 2014 [ERROR] Hi! み…
a = [1, 2, 3] に b = [4, 5, 6] を a << b とかで突っ込むと b は a の1要素として入ります。 つまり、[1, 2, 3, [4, 5, 6]] ですね。 これを平坦化したいときには a.flatten! とかやると a が破壊的に平坦化されます。 [1, 2, 3, 4, 5, 6] しかし、最初か…
今回は分離レベルの話と自動コミットについて雑多なメモを。 分離レベル MySQL InnoDB のデフォルト分離レベルは REPEATABLE-READ になっています。 このモードはダーティーリードは禁止するものの、ファントムリードなどは発生するというやつで、 4つの分離…