久々に psqlを触ったらびっくりするくらい忘れていたので、これはこれで新鮮だった。
人ってこのくらいキレイさっぱり忘れられるんだなぁ、道理で失恋で死ぬやつがたくさんいないわけだ。
以下、なにを忘れていたかの記録。文字通り備忘録。

  • 起動にはDB名とユーザ名が必要 ・・・ psql -U user mydb
  • 操作ヘルプ ・・・ ¥?
  • 終わるとき ・・・ ¥q
  • コマンド起動でSQL実行 ・・・ psql mydb -c ‘select * from tbl;’
  • 外部ファイルをSQLとして実行 ・・・ psql mydb -f sql.txt
  • 全部成功したときだけコミット ・・・ psql mydb -f sql.txt -1
  • 対話:DB一覧 ・・・ ¥l
  • 対話:テーブル一覧 ・・・ ¥d
  • 対話:テーブル詳細 ・・・ ¥d mytable
  • 対話:外部ファイル実行 ・・・ ¥i sql.txt
  • WARNING: nonstandard use of \\ in a string literal at character N ・・・ エスケープ文字を含むときは、文字列はE”で包むこと(E’ほげほげ’)
  • SQLでの文字列連結 ・・・ select “123” || “ABC” from

久々にRubyを触ったらびっくりするくらい忘れていたので、これはこれで新鮮だった。
人ってこのくらいキレイさっぱり忘れられるんだなぁ、道理で失恋で死ぬやつがたくさんいないわけだ。
以下、なにを忘れていたかの記録。文字通り備忘録。

  • 行末セパレータ ・・・ ;とか普通のときはいらない
  • if end ・・・ endifじゃなかった(jsに毒されてるな>自分)
  • 文字列を結合する ・・・ 普通の+でOK
  • 文字列を1行ずつ処理する ・・・ s.each_line { |line| hogehoge }
  • trimじゃなくて strip
  • 文字列を数字に ・・・ to_i
  • 文字列の replace ・・・ gsub(/正規表現/, “置換文字列”)
  • 漢字コード変換 ・・・ require ‘kconv’; s.tojis; s.toeuc; s.tosjis
  • 文字列をセパレートする ・・・ s.split(/\s*,\s*/)
  • 文字列から正規表現にマッチしたものを配列で ・・・ s.scan(/(\S+):([\d\-]+)/)
  • 文字列の末端の改行を削除 ・・・ s.chomp
  • 文字列の1文字をASCIIコードに変換 ・・・ s=”ABC”; s[0] # 65を返す
  • TOUPPER ・・・ s.upcase
  • シングルクォートをエスケープするとき ・・・ s.gsub(/’/, “\\\\'”)
  • SUBSTR ・・・ s.slice(3,20)
  • replaceの強力なやつ ・・・ require ‘jcode’; s.tr(“A-Z”, “a-z”) #全角を扱うときのみ jcode
  • 空行とのマッチ ・・・ s == “\n”
  • premature end of regular expression ・・・ 正規表現がバックスラッシュで壊れてる。$KCODE=’u’
  • URIのエンコード ・・・ require ‘uri’; $KCODE = ‘u’; URI.escape(‘ほげほげ’)
  • ファイル名(拡張子なし) ・・・ p File.basename(“ruby/ruby.c”, “.*”) #=> “ruby”

とりあえず、このくらい。主として文字列まわり。

ここ『jQueryによるフォーム部品操作のレシピ』にまとめていただいているので感謝。

jQuery('input[name=target][value=xxx]').attr({ checked: "checked" });
$(’:radio[@name=target]:checked’).val();

こういう書き方ができるというのが目から鱗。下の方は試したわけではないのですが、いけるそうです。
 
あと、画面表示のときにフォーカスを移したいなというときはこちら。

jQuery("#mytext").focus();

body onload=”ほげほげ” とかしなくていいので、HTMLを汚さないのがいいかも。
 
あと、ついでに、Contact Form 7とかで、ラジオボタンが横向きにずらずらっと並んでしまって、縦一列にしたいけど、ラベルに<br/>とか入れたり、¥n入れたりするのってダサくないというときの解決法。

span.wpcf7-list-item { display: block; }

これは目から鱗。display: block ってこういうときに使うんだという感じ。

JavaScriptで chr(0x41)とかやって ”A”が出ないなと思って、JavaScriptって一度も文法書を読んだことないなと思った今日この頃です。
はてさて、数値を指定して文字を出すのはどうすればいいんでしょうか?
チクタク、チクタク、・・・(ググり中)・・・、チーーン
答えが出ました。結構難しい検索でしたね。答えは『String.fromCharCode(num1, …, numN) (e4/N4) 』です。

str = String.fromCharCode(0x41, 0x42, 0x43);
alert(str);   // "ABC" が表示される

出典は、こちらです。

これは何かというと、PHPの関数です。
そういえば、遠いとぉーい昔使ったような記憶があります。
どういうときに使うかというと、関数が echoなどで直接標準出力へ書き出しているときに、それをさせないで文字列にコピーするということができます。
『便利な関数だけど、直接HTMLを吐くから加工して使えないんだよね』というようなときに、ob_start しといて、ob_get_contents()で文字列に代入して、ob_end_flush()でお仕舞いみたいな感じでしょうか。
 
ob_start(“callback”) みたいにコールバック関数を引数に渡して、その関数の中でごにょごにょやったあと、ob_end_flush()するというのもオシャレかも。こういうところが PHPの柔軟すぎてわかりづらいとこなんでしょうね。

完全なる備忘録。
メールが送れなくて、『mail loops back to myself』みたいなメッセージが出た時は十中八九、main.cf にそのドメインが登録されてません。info@hogehoge.com へ送ろうとしてこれがでた場合は、main.cf の mydestinationに hogehoge.comを登録したかどうかを確認すること。
(この話はもちろん、自分でドメインを管理している場合のお話です)

$ e /etc/postfix/main.cf
mydestination = $myhostname, localhost.$myorigin, localhost, $myorigin, hogehoge.com