よく調べるものメモ

Excel

  • 文字列は"で囲む
  • 文字列を連結するときは&で繋ぐ

MySQL

- 文字列連結は||

mysql> select
    ->   '現在の時刻は' || current_timestamp || 'です' || '明日は晴れかな?' || '雨かな?' || '晴れたらいいな';
+----------------------------------------------------------------------------------------------------------------------------------+
| '現在の時刻は' || current_timestamp || 'です' || '明日は晴れかな?' || '雨かな?' || '晴れたらいいな'                            |
+----------------------------------------------------------------------------------------------------------------------------------+
| 現在の時刻は2014-03-03 20:38:31です明日は晴れかな?雨かな?晴れたらいいな                                                        |
+----------------------------------------------------------------------------------------------------------------------------------+

http://qiita.com/hit/items/ee4e54726f80a1fbdeb2

InnoDB Plugin

ROW_FORMAT=COMPACT;がなんだか知りたい

InnoDB Plugin

  • MySQL 5.5で置き換えられた次期バージョンInnoDBと言える存在
  • innoDB Pluginで新しく追加された機能
    • Performance and scalability enhancements
    • Fast index creation
    • Data compression
    • New row format
    • File format management
    • INFORMATION_SCHEMA tables

InnoDB Pluginでは新たなファイルフォーマットが追加されている

  • 指定できるフォーマット一覧
  • Redundant(Antelope)
  • Compact(Antelope)
  • Dynamic(Barracuda)
  • Compressed(Barracuda)
  • デフォルトはCompact(従来のInnoDBのデフォルト値と同じ)
    mysql > ALTER TABLE t ROW_FORMAT=Compressed;
  • ファイルフォーマットのバージョンAntelope -> Barracudaの順に新しい

参考:http://nippondanji.blogspot.jp/2010/03/innodb-plugin.html

Sublime TextでRubyが文字化け

Terminalではちゃんと文字化けされずに表示されるのに、
Sublime textでは文字化けしちゃう問題の解消。

Ruby.sublime-build ```` { "shell_cmd": "ruby -u \"$file\"", "file_regex": "^[ ]File \"(...?)\", line ([0-9]*)", "selector": "source.pb", "env": {"LANG": "tr_TR.UTF-8"} }

by [Set default encoding for files and build output](http://sublimetext.userecho.com/topic/113346-set-default-encoding-for-files-and-build-output/)  
`"env": {"LANG": "tr_TR.UTF-8"}`お味噌らしいです。

Ruby on Rails でrakeが上手く行かなかったことのメモ

あるものを作りたくて、小学生でもわかるRuby on Rails通りに試してました。

でもコマンド一つ一つほぼ上手く行かなくて、あまりにも酷かったので未来の自分のためにメモ。 (この時の環境はMac OSX 10.9です。)


rake db:createできない。

症状

$ rake db:create
Could not find thread_safe-0.3.4 in any of the sources
Run `bundle install` to install missing gems.

失敗 言われたままやってみた。

  1. bundle install&&bundle update
  2. rake db:create
$ rake db:create
Could not find thread_safe-0.3.4 in any of the sources
Run `bundle install` to install missing gems.

...状況変わらず。うそつき。

微妙な解決策 gem installで頑張る。

  1. gem install thread_safe
  2. rake db:create
$ rake db:create
Could not find tzinfo-1.2.1 in any of the sources
Run `bundle install` to install missing gems.

これが5,6パターン続く...。

bundle installしろとか言われますけど、bundle updateも含めて10回くらいやったし、rails入れ直したり...
この辺りででようやくbundle installで依存パッケージインストールしてくれてないんやな。ってことにやっと気づきました。

解決策 インストールディレクトリを指定

  1. bundle install --path vendor/bundle
  2. rake db:create
$ rake db:create
Could not find rake-10.3.2 in any of the sources
Run `bundle install` to install missing gems.

インストールディレクトリを指定することで依存パッケージはインストールできたみたいです。
bundle installって何なの。


rake db:createできない。その2

次はrakeが無いとか言われちゃいました。
いろいろやってるうちに変なことしちゃったのかもしれない(・ω<)

症状

$ rake db:create
Could not find rake-10.3.2 in any of the sources
Run `bundle install` to install missing gems.

およよ。これはどういうこと。
ここから半日さまよった。

解決策 rakeのダウングレード

Festus Tamakloeの解答がドンピシャ。

Remove all the versions of Rake ==> gem uninstall rake
Remove Gemfile.lock ==> rm Gemfile.lock
Run bundle install ==> bundle install

gem install rake --version=10.0.2
if you still get the error then put this into your gemfile.

gem 'rake', '0.8.7'
http://stackoverflow.com/a/14486067

自分が実際に行った手順
  1. Gemfileにgem 'rake', '10.0.2'を追加
  2. bundle update
  3. bundle exec rake db:create (gemで入れたrakeとverが違うため、こうしろって怒られた。)
$ bundle exec rake db:create
db/development.sqlite3 already exists
db/test.sqlite3 already exists

ふはっ。まあいいんだけど。

まとめ

  • bundle install上手くいかないの良くわかんない。(多分Macなせい)
  • rails new app → rakeダウングレードも意味わかんない。
  • nkfって上手く出来てるんだなと思った。(-g)

node.js + express4.0.0 + Socket.IO

node.js + express4.0.0で、Socket.IOを使いたかった。

問題

  1. Socket.IO本家にある、Using with the Express web frameworkのソースをコピペして重複してるところを削除し、app.jsに追加。
  2. npm startしてコンソールを確認すると下記エラー
Resource interpreted as Script but transferred with MIME type text/plain:   
"http://localhost:3000/socket.io/socket.io.js". 

どうやらSocket.IOサーバーが起動していないみたい。

解決方法

google先生にお伺いを立てたところ、 express + socket.ioによるWebSocket実装方法についてという記事を発見しました。 結果app.jsではなく、/bin/wwwを編集するということが分かり、解決に至りました。

ここからは備忘録

上記記事に掲載されてるソースまるっとコピペで立ち上がる。

// add start
var socketIO = require('socket.io');
// クライアントの接続を待つ(IPアドレスとポート番号を結びつけます)
var io = socketIO.listen(server);

// クライアントが接続してきたときの処理
io.sockets.on('connection', function(socket) {
  console.log("connection");
  // メッセージを受けたときの処理
  socket.on('message', function(data) {
    // つながっているクライアント全員に送信
    console.log("message");
    io.sockets.emit('message', { value: data.value });
  });
  
  // クライアントが切断したときの処理
  socket.on('disconnect', function(){
    console.log("disconnect");
  });
});

var io = socketIO.listen(server);
のlistenの中身をserverにするのがミソっぽいです。

Ghost

GhostをNode.jsの勉強中に発見しましたので、早速使ってみることにしました。 TumblrからGhostへの以降ツールも発見したのでメモ。


テンプレートはSWAYZEを使用しました。 でも日本語フォントだけはちょっと細字のものに変える必要がありそうですね。

herokuで公開しているので、画像関連がちょっと恐い感じ。
ちなみにherokuでの公開手順は、以下のサイト様を参考にしました。 http://qiita.com/hissanova/items/80258a475060a548f2d6 http://www.howtoinstallghost.com/how-to-install-ghost-on-heroku/

TumblrからGhostへの以降ツールはTumblr to Ghostを使用しました。 こちらにアクセスして、テキストボックスにTumblrドメインを入力すれば、Tumblrのデータをjson形式でダウンロードできます。
このときjsonファイルの中にある、"slug"の値が空の記事があったようで、Ghostにインポートしたときにエラーが出ました。
そこは適当な値を入れる必要があります。

しかし、記事の日本語が消失してしまいましたw
地道に直します。

また、ブラウザでText URL Linkerなど、ウェブページの文書中にURLに自動的にリンクを張ってくれるような拡張機能を使っていると、URLの存在する行が編集できなくなるっていうバグがありました。

まあいろいろ使ってみよう。

Terminalで 'fn' + 'Delete' が '~ (チルダ)' になった。

I was able to fix this by going to Terminal->Preferences->Advanced and choosing xterm-256color as the setting for "Declare Terminal As"

参考:OS X Terminal fn+delete doesn't work, prints ~

すれば良いだけ。ターミナルの宣言方法って何なんだろう。
種類が選べるってことでいいのかな。宣言…。

ここまでの経緯

HHKB Lite2 for macを購入しました。
ドライバを入れて早速使ってみたのですが、[fn] + [~]を押してもDeleteできない…
不良品かと思いつつ色々やってしまい、上記の問題に陥ってしまいました。
ターミナルの宣言方法って確かに途中触った記憶あるわ(゚∀゚)←

とりあえず、上記の手順をしてみた結果、全てうまく行きました。