ZEND FRAMEWORKのZend_Http_Clientのバグ? / Subversionの操作ログをサーバ側で出力する方法 / モバイルだとcategory_to_tag.rbでエラー / tDiaryのデバッグ / Rubyで変数のダンプ
投稿日: 2007年03月27日 更新日: 2017年07月22日
ZEND FRAMEWORKのZend_Http_Clientのバグ?
Zend_Http_Clientでページを取得しようとして、処理がいつまでたっても終わらずタイムアウトとなる。
原因はZend/Http/Client/Socket.phpの207行目レスポンス
if (isset($headers['connection']) && $headers['connection'] == 'close') {
何がいけなかったかというと、サーバーが返してきた値が’Close’だった。
とりあえずこう直した。下のほうのelse ifの条件に入って無限ループしてるんだと思われるが、これでいけたのでひとまず追わない。RFC的にどうかも気にはなるがスルー。
if (isset($headers['connection']) && strtolower($headers['connection']) == 'close') {
Socket.phpのファイルのバージョンはコレ。
@version $Id: Socket.php 3348 2007-02-12 09:06:02Z shahar $
バグ報告が挙がってるかどうかは未確認。
追記:Subversion上の最新版でも該当個所は一緒。下のほうで無限ループにならないように改善されてるかもしれないが未確認。
Subversionの操作ログをサーバ側で出力する方法
httpd.confに下記行を追加するらしい。
CustomLog logs/svn_log "%t %u %{SVN-ACTION}e %U" env=SVN-ACTION
RX-7乗りの適当な日々 - Subversionの操作ログをサーバ側で出力する方法より
モバイルだとcategory_to_tag.rbでエラー
携帯でここのメモを見ると次のエラーが出ていた。
500 Internal Server Error
undefined method `[]=' for nil:NilClass (NoMethodError)
(plugin/category_to_tag.rb):34:in `subtitle_link'
/var/www/www.mylab.jp/htdocs/diary/tdiary.rb:105:in `join'
/var/www/www.mylab.jp/htdocs/diary/tdiary.rb:105:in `safe'
/var/www/www.mylab.jp/htdocs/diary/tdiary.rb:739:in `eval_src'
/var/www/www.mylab.jp/htdocs/diary/tdiary.rb:1085:in `do_eval_rhtml'
/var/www/www.mylab.jp/htdocs/diary/tdiary.rb:1027:in `eval_rhtml'
/var/www/www.mylab.jp/htdocs/diary/index.rb:69
以前ad hocにも程がある修正をしていたが、これだとタイトルが出力されないのでちゃんと調べた。
原因はrd_style.rbでモバイルの際にsection_enter_procが呼ばれない為。下記変更で正常に出力されるようになった。
rd_style.rb.patch
--- rd_style.rb.old Wed Sep 13 16:15:02 2006
+++ rd_style.rb Wed Mar 28 01:16:45 2007
@@ -249,8 +249,8 @@
def html( date, idx, opt, mode = :HTML)
if mode == :CHTML
visitor = RD2tDiaryCHTMLVistor.new( date, idx, opt, @author)
- section_open = ''
- section_close = ''
+ section_open = "<%=section_enter_proc( Time::at( #{date.to_i} ))%>\n"
+ section_close = "<%=section_leave_proc( Time::at( #{date.to_i} ))%>\n"
else
visitor = RD2tDiaryVisitor.new( date, idx, opt, @author )
section_open = %Q[<div class="section">\n<%=section_enter_proc( Time::at( #{date.to_i} ))%>\n]
tDiaryのデバッグ
require 'logger'
$logger = Logger.new('tdiary-debug.log')
$logger.debug('hoge')
CGIのデバッグ - まちゅダイアリー (2004-04-08)より
Rubyで変数のダンプ
hogeの中身をダンプ。
require 'pp'
pp hoge
PHPのprint_rのようなものがないですか?と聞いたら教えてもらったのがコレ。便利。
名前:宮内 はじめ
Code for Nagoya名誉代表
E2D3名古屋支部長
プログラマーです。GISやデータビズが好きです。このサイトは宮内の個人的なメモです。