アーカイブ

2010 年 4 月 のアーカイブ

レジストラをムームードメインにまとめてDNSを自前からムームーDNS利用に変更した

2010 年 4 月 20 日 コメントはありません
$ dig @dns01.muumuu-domain.com cheki.net any

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> @dns01.muumuu-domain.com cheki.net any
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42429
;; flags: qr aa rd; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;cheki.net.                     IN      ANY

;; ANSWER SECTION:
cheki.net.              3600    IN      MX      30 aspmx3.googlemail.com.
cheki.net.              3600    IN      MX      30 aspmx4.googlemail.com.
cheki.net.              3600    IN      NS      dns01.muumuu-domain.com.
cheki.net.              3600    IN      MX      20 alt2.aspmx.l.google.com.
cheki.net.              3600    IN      NS      dns02.muumuu-domain.com.
cheki.net.              3600    IN      MX      30 aspmx2.googlemail.com.
cheki.net.              3600    IN      MX      10 aspmx.l.google.com.
cheki.net.              3600    IN      SOA     cheki.net. postmaster.cheki.net. 1271698619 3600 1800 604800 3600
cheki.net.              3600    IN      MX      30 aspmx5.googlemail.com.
cheki.net.              3600    IN      MX      20 alt1.aspmx.l.google.com.
cheki.net.              3600    IN      A       122.249.239.21

;; Query time: 13 msec
;; SERVER: 59.106.124.43#53(59.106.124.43)
;; WHEN: Tue Apr 20 02:39:03 2010
;; MSG SIZE  rcvd: 323

並び順が気にくわなかったり、ADDITIONAL0だけど

カテゴリー: 日記 タグ:

twtr.jpの絵文字はPUAを利用しているので注意が必要

2010 年 4 月 14 日 コメントはありません

携帯電話向けTwitter公式サイト(twtr.jp)では絵文字をUnicodeの私用領域 (Private Use Area, PUA)に格納している。
Unicode文字のマッピング – Wikipedia

MySQLでは文字コード変換する際にUnicode UCS-2を通す。
UCS-2はPUAを含まない。
単に空に置換されれば嬉しかったんだけど、それ以降をごっそり剃り落としてくれたMySQL。

カテゴリー: 日記 タグ:

twitterリスト機能のハマリどころ

2010 年 4 月 14 日 コメント 18 件

リストの作成は最大数は20個まで。
リストにはname、slug、idの3つの識別子がある。
idはそのまま全体で一意な値。
nameはリスト名。
半角数字、半角英小文字と最初と最後でなく、連続しない-のみの最大25文字。
正規表現一発でかけなかったので「^[0-9a-z]+(?:-?[0-9a-z]+)*$」と25文字以内。
nameが利用されるのは、作成時、変更時のみ。
nameは一意ではなく、同じ値を設定した場合は「値-リスト数」のslugが振られる。
slugは表示名。
リストを作成した場合、nameが被らなければnameと同じ、nameが被っている場合は「name-リスト数」が設定される。
twitterで表示されているのはnameではなく、slug。
ユーザーごとに一意であると思ったらそんなことはないハマリどころ。
slugの「-」以降の値は自分が作成したリストの合計が設定されるのだが、変更した場合も同様の処理がされるため、同じslugのリストが複数作成できる。
つまりどういう事だってばよ?

  1. testを公開で作成
  2. testにAを追加
  3. testを公開で作成
  4. test(test-2)にBを追加
  5. testを非公開に変更
  6. test-2を公開で作成
  7. test-2にCを追加

リストはtest-2が3つ、1つ鍵付の状態。
どれを選択してもCのツイートしか確認できない。
idを作成順とすると、name、slug、modeは以下のようになっているはず。

id name slug mode
1 test test-2 非公開
2 test test-2 公開
3 test-2 test-2 公開

クソsg

カテゴリー: 日記 タグ:

PEAR::Services_Twitterのリスト対応

2010 年 4 月 14 日 コメントはありません

パッチ
services_twitter.diff
13828 byte
[md5] cfbc090a25f68b8f0ea52a281aeccbe7
パッチ(テスト部分)
services_twitter_test.diff
119284 byte
[md5] e238637ffc8953b2e6bb5249b20e8c48
一括
Services_Twitter.tar.gz
59834 byte
[md5]145d9e35e4000e7700e228f1f59a4e6a
追加メソッド一覧

Methods                 Documentatation name        tests
----------------------- --------------------------- ---------------------------------------
trends/available                                    840-trends-available.phpt
trends/location                                     850-trends-location.phpt
lists/create            POST lists      (create)    153-lists-create-delete.phpt
lists/update            POST lists id  (update)     151-lists-update.phpt
lists/list              GET lists        (index)    150-lists-list.phpt
lists/show              GET list id      (show)     152-lists-show.phpt
lists/delete            DELETE list id (destroy)    153-lists-create-delete.phpt
lists/statuses          GET list statuses           160-lists-statuses.phpt
lists/memberships       GET list memberships        161-lists-memberships.phpt
lists/subscriptions     GET list subscriptions      162-lists-subscriptions.phpt

list_members/list       GET list members            181-list_members-list.phpt
list_members/create     POST list members           180-list_members-create-delete.phpt
list_members/delete     DELETE list members         180-list_members-create-delete.phpt
list_members/show       GET list members id         182-list_members-show.phpt

list_subscribers/list   GET list subscribers        191-list_subscribers-list.phpt
list_subscribers/create POST list subscribers       190-list_subscribers-create-delete.phpt
list_subscribers/delete DELETE list subscribers     190-list_subscribers-create-delete.phpt
list_subscribers/show   GET list subscribers id     192-list_subscribers-show.phpt


パッチは現段階での最新である295629に当ててください。

$ svn export -r 295629 http://svn.php.net/repository/pear/packages/Services_Twitter/trunk Services_Twitter
$ wget http://blog.cheki.net/services_twitter.diff
$ cd Services_Twitter
$ patch -p0 < ../services_twitter.diff
patching file Services/Twitter.php
patching file data/api.xml
patching file data/api.rng

テスト部へのパッチが必要な場合は別途

$ patch -p0 < ../services_twitter_test.diff
patching file tests/181-list_members-list.phpt
patching file tests/192-list_subscribers-show.phpt
patching file tests/tests-config.php.example
patching file tests/151-lists-update.phpt
patching file tests/data/list_subscribers/list.dat
patching file tests/data/list_subscribers/show.dat
patching file tests/data/list_subscribers/delete.dat
patching file tests/data/list_subscribers/create.dat
patching file tests/data/list_members/list.dat
patching file tests/data/list_members/show.dat
patching file tests/data/list_members/delete.dat
patching file tests/data/list_members/create.dat
patching file tests/data/lists/statuses.dat
patching file tests/data/lists/list.dat
patching file tests/data/lists/memberships.dat
patching file tests/data/lists/show.dat
patching file tests/data/lists/update.dat
patching file tests/data/lists/delete.dat
patching file tests/data/lists/create.dat
patching file tests/data/lists/subscriptions.dat
patching file tests/data/trends/location.dat
patching file tests/data/trends/available.dat
patching file tests/191-list_subscribers-list.phpt
patching file tests/153-lists-create-delete.phpt
patching file tests/162-lists-subscriptions.phpt
patching file tests/150-lists-list.phpt
patching file tests/160-lists-statuses.phpt
patching file tests/182-list_members-show.phpt
patching file tests/setup.php
patching file tests/161-lists-memberships.phpt
patching file tests/850-trends-location.phpt
patching file tests/152-lists-show.phpt
patching file tests/840-trends-available.phpt
patching file tests/190-list_subscribers-create-delete.phpt

テスト

$ php tests/AllTests.php
PHPUnit 3.4.11 by Sebastian Bergmann.

..................................................

Time: 4 seconds, Memory: 9.75Mb

OK (50 tests, 0 assertions)

tests-config.phpセット後。

$ php tests/AllTests.php
PHPUnit 3.4.11 by Sebastian Bergmann.

..........S....F.......S.....S..........S.....F.S.

Time: 48 seconds, Memory: 10.00Mb

There were 2 failures:

1) /home/cockok/projects/Services_Twitter/tests/460-account-update_profile_image.phpt
--- Expected
+++ Actual
@@ @@
-bool(true)
+bool(false)

/home/cockok/projects/Services_Twitter/tests/AllTests.php:56
/home/cockok/projects/Services_Twitter/tests/AllTests.php:72

2) /home/cockok/projects/Services_Twitter/tests/470-account-update_profile_background_image.phpt
--- Expected
+++ Actual
@@ @@
-bool(true)
+あなたが設定した背景用の画像に問題があるようです。おそらく大きすぎです。 (code: 403, call: http://api.twitter.com/1/account/update_profile_background_image.json)

/home/cockok/projects/Services_Twitter/tests/AllTests.php:56
/home/cockok/projects/Services_Twitter/tests/AllTests.php:72

FAILURES!
Tests: 50, Assertions: 0, Failures: 2, Skipped: 5.

画像周りでエラーでてるけどもともと出てるようなので知りません。

カテゴリー: php タグ:

EvernoteとgVim

2010 年 4 月 13 日 コメントはありません

via: 『Evernote』と『秀丸』と『ひとりWiki』の連携で快適メモ生活! | nanapi[ナナピ]
ということでvimで。

function! CreateNote()
  let result = system('"C:\Program Files\Evernote\Evernote3.5\ENScript.exe" createNote /s '.bufname(""))
  echo result
endfunction
nmap ,e :call CreateNote()

実行結果

Can't create note from file at "C:\Users\cockok\_vimrc", file type is not supported.

拡張子で弾いてる風。
txt、pdfはいけたけどcssとかダメだった。
オプション一覧

C:\>"C:\Program Files\Evernote\Evernote3.5\ENScript.exe" createNote /?

Usage: ENScript createNote [options]

Options:

  /s file - file containing the plain text note contents. If omitted, note contents are read from standard input.
  /n notebook - notebook to create the note in. If does not exist, lazy create.If omitted, use default notebook.
  /i title - specifies note title. If omitted, note title will be generated automatically.
  /t tag - specifies note tag. If tag does not exist, lazy create it. Use multiple /t options to specify multiple tags.
  /a filename - specifies file attachment. Use multiple /a options to specify multiple file attachments.
  /c dttm - note creation date/time. { "YYYY/MM/DD hh:mm:ss" | filetime }. If omitted, use current time.
  /u username - user name if not the same as database file name.
  /p password - user password to confirm Evernote service access.
  /d database - database file name if user name is not specified.

If both database file name and user name are not specified, last login name is used and
if there is none, USERNAME environment variable value is used as a user name.

/a は無償ユーザーだと利用不可っぽい。
.txt拡張子をつけたtempファイル保存して、createNoteして、tempファイル削除すればいいんだろうなと思ったので誰かやってくれるの待ちます。

カテゴリー: 日記 タグ:

vSphereがWindows7で使えない、そんなとき

2010 年 4 月 12 日 コメントはありません
カテゴリー: 日記 タグ: