obama

「わかっちゃいるけど、止められない」じゃなくて、「わかっていても、できない」ことが多いので、いまさらながら、Life is beautifulの「私のとっておきのプログラミングスタイル」に感化されて、自分なりの指針をまとめておく。

  1. スタードダッシュ重要
    最初の二週間で八割がたの目途をつける。
  2. 仕事を「タスク」に細分化
    「タスク」は、半日から三日ぐらいでできるもの。最初にすべきものほど明確に定義し、後でやるものはある程度曖昧にしておく。
  3. 一日の始めに「今日やるマイクロタスク」のリストを作る
    「マイクロタスク」は、うまく行けば15分ぐらいで、なかなかうまく行かなくても二時間ぐらいで完成できるもの。
    そんなマイクロタスクを数個から十数個並べたリストを書いて、例えば「今日は7つを絶対終える。余裕があったら次の2つもこなす」と自分で宣言する。
  4. マイクロタスクは「割り込み禁止状態」で
    マイクロタスクは「決して他の仕事を間に挟んではできない仕事」と覚悟して、全力疾走でこなすこと。
arigato

ということで、自分にプレッシャーを与えるつもりで、Google Docsにタスクリストを公開してみた。もちろん、お客様の名前やプロジェクトの詳細はイニシャルになっている。

 
INSERTで「nonstandard use of \\ in a string literal」というエラーが出たとき。
シングルコートを「E’」にすれば OK。「E’C:\\hogehoge.txt’」
 
PostgreSQLで INSERT直後の主キーの値をとりたいとき。

SELECT currval(pg_catalog.pg_get_serial_sequence('test_table', 'pkey'))

SELECT lastval()

下の方は同じセッション内でとるとき。次のやつは nextvalでとる。

SELECT nextval(pg_catalog.pg_get_serial_sequence('test_table', 'pkey'))

EC-CUBEでは関数が用意されているので、それを使うのが吉。(でないと、MySQLになったとき動かない)
 
ついで。PostgreSQLのユーザ設定。GRANTはテーブル単位しかかけられないって知ってました?
オートインクな主キーのあるテーブルは、シリアルキーのテーブルの方も grantしとかないとエラーになるので要注意。
 
も一つついでに。Ruby + DBI + Postgresでなにかやろうとしたときは、「Ruby DBI モジュールを使う」は必見。

 
[postfix-jp: 783] mail forwarding loop
こういうメッセージが Postfixから返ってきたときに疑うべきところ。
 

aliasや.forwardなどが正常なのにPostfixが”mail forwarding loop”を検知することがあります。

具体的には、Delivered-To:ヘッダフィールドが詐称されている場合です。
local(8)デーモンは、配送先のアドレスがすでにDelivered-To:にあるメッセージを”mail forwarding loop”としてbounceします。

だそうです。
 
ついでに、「sendmail の使い方」がわかりやすいです。
NTP で時刻合わせ」はこちらをどうぞ。

 
前回の続き。
違うユーザでコネクトできたから OKとしてましたが、実際テーブルの操作をしようとするとエラーになったので、対処。

# ruby test.rb
/usr/lib/ruby/gems/1.8/gems/dbd-pg-0.3.9/lib/dbd/pg/statement.rb:62:in `execute': ERROR:  permission denied for relation dtb_contact (DBI::ProgrammingError)

#irb
> require 'rubygems'
> require 'dbi'
> dbh = DBI.connect("dbi:Pg:test_db:localhost", "test_user", "test_pass")
> dbh.select_all("SELECT * FROM dtb_contact") {|row| p row }
DBI::ProgrammingError: ERROR:  permission denied for relation dtb_contact

DBへは接続できるけど、テーブルをリードするパーミッションがないよと。
ま、当然ですね。DBの ownerと違うユーザでコネクトしてるんですから。じゃあ、パーミッションを出しておきます。

# psql test_db -U test_db_owner
> grant all on dtb_contact to test_user;
GRANT

これで本当に OKです。

 
Rubyから PostgreSQLを使おうとして、ちょっとつまづいたので、後進の人のためにメモ。
入れようとした環境はこんな感じ。

  • Ubuntu 9.04(サーバ版)
  • ruby 1.8.7
  • Rails (2.1.0) + passenger (2.0.1)
  • psql (PostgreSQL) 8.3.9

つまり、少し古い Rubyと Railsが動いていて、かつ、PostgreSQLも動いていて、いま動いているものは変えたくないということ。
 
さらに読む

 
Twitterのクライアントとして、高機能で評判の HootSuiteを入れたんですが、2つ目、3つ目のアカウントの追加の仕方に迷ったので、メモ。
手順は次の通り。

  1. 画面左上のフクロウをクリック
  2. 設定 ⇒ SNS
  3. SNSを追加
  4. Twitter プロフィールを追加

Facebookや LinkedInのアカウントの追加もこの画面でやるので、SNSと書いてあるんでしょうが、ボクにはわかりづらかったです。
設定 ⇒ アカウントのあたりでずいぶんウロウロしてしまいました。