|
| ||||||||
|
巻き戻し中。
|
|
2008-11-10(月) 大工
_ 会社の
巨大水槽、上部は目隠しで巨大な扉が閉まるようになっているのだが。。。
今朝エサをやろうと開けたら、片側のヒンジを支えている桟が取れて扉ごと落ちてきた。
(((( ;゜Д゜)))ガクガクブルブル
怪我するほどじゃないけど、手を放すと落下しちゃうから困る。
何とか無理矢理扉を閉じて、速攻修理。
扉だけでも10kg&ダンパー付きヒンジを押して閉めるときは倍くらいの荷重がかかるのに、安普請で木ねじ1本で止めてやがった!
ふ ざ け ん な !
ヤンキー御用達の「エーモンステー」で補強。
もうね、じっちゃんの名にかけてwww*1
何だかやってる事はショムニだなぁ。
あ、ちゃんとしたアングルの金物見つけた。
明日本格的に補強するか。(こういうの、嫌いじゃないから困る)
*1 じーちゃん大工、親父車屋。俺って便利屋w
_ うはwwおまww
これは久しぶりに噴くと言うより爆笑しそうになって、帰りの電車を途中下車しちゃった。
初音ミクのコスプレをしたアニヲタのキックボクサー「長島☆自演乙☆雄一郎」が圧勝で新王者に
いやね、記事だけでも(・∀・)ニヤニヤなのに、この写真で死んだよ、俺は。
「☆自演乙☆」だよ?
自分、アニメとか全く興味ないけどこの潔さは認めざるを得まい。
入場からちゃんとネギ踊りワロタw
しかも強力に強いって。。。
166 名前: ブロッコリー(dion軍)[] 投稿日:2008/11/10(月) 18:11:39.73 ID:COmjq8vZ
>>106
負けたら夜泣きして引退するレベル
333 名前: 山椒(神奈川県)[] 投稿日:2008/11/10(月) 18:28:28.20 ID:+PRsxHX9
これは負かした相手に最大の屈辱を与えるためのパフォーマンス
性格の悪い真の実力者がやる公開いじめに等しい
全くだ。でも、パフォーマンスってよりはガチっぽいんだがw
2012-11-10(土) ひざ
_ BOINC
Win8にしたノートに遠隔から管理コンソールがつながらない。
Firewallとか権限とか一晩悩んだ末に、gui_rpc_auth.cfgとremote_hosts.cfgの置き場所が、
「Program Files」じゃなくて「Program Data」のBOINCディレクトリの下だったというオチ。OTL
2013-11-10(日) tDiary4.0.1+静的HTML出力
_ てすと
静的HTMLの出力テスト
_ 残課題
細かい日記のエラーは、過去8年分ざっと見直したつもり。*1
残るは
・へぇボタンの数値が記録されない
・image-gallery.rbが動かない
・ソーシャルへのリンクが項目ごとだとウザイかな?
ってところ。
*1 先週末はそれで徹夜(;´Д`)
_ 静的出力
tDiary4.0.1で2.2の手法がまんま使えるとは思わないのだけど、負荷対策:静的 HTML 化とかtDiaryを最新エントリまで静的出力する方法とか参考に始めてみる。
微妙に変数とか変わってるのが面倒だw
tDiaryのファイル構成も大幅に変わって、tdiary/dispatcherの配下のファイルを弄る。
index_main.rbとupdate_main.rbの差分はこんな感じ。
cgiの権限で書き込める「【tDiaryのパス】/static」は先に掘っておく事。
*** index_main.rb.org Sun Nov 10 04:25:44 2013 --- index_main.rb Sun Nov 10 16:30:03 2013 *************** module TDiary *** 52,57 **** --- 52,75 ---- head['Cache-Control'] = 'no-cache' head['X-Frame-Options'] = conf.x_frame_options if conf.x_frame_options end + # Add for static HTML 20131110 start + if !request.mobile_agent? then + if params['date'] then + if /^\d{8}$/ =~ params['date'] then + File.open("【tDiaryのパス】/static/#{@params['date']}.html", "w") {|f|f.write body + File.open("【tDiaryのパス】/static/cache.log", "a+") {|f| + f.write "#{Time.now} static cache written(#{@params['date']}.html).\n" + } + } + end + elsif params['category'] then + else + File.open("【tDiaryのパス】/index.html", "w") {|f| + f.write body + } + end + end + # Add for static HTML 20131110 end head['cookie'] = tdiary.cookies if tdiary.cookies.size > 0 TDiary::Response.new( body, ::TDiary::Dispatcher.extract_status_for_legacy_tdiary( head ), head ) end *************** module TDiary *** 83,88 **** --- 101,122 ---- def create_tdiary begin if params['comment'] + # add for static index 20131110 + cache = "【tDiaryのパス】/index.html" + if FileTest.exist?(cache) then + File.delete(cache) + end + # add for static index 20131110 end + # Add for static HTML 20131110 start + date_string = params['date'] + cache = "【tDiaryのパス】/static/#{date_string}.html" + if FileTest.exist?(cache) then + File.delete(cache) + File.open("【tDiaryのパス】/static/cache.log", "a+") {|f| + f.write "#{Time.now} static cache cleared(#{date_string}.html).\n" + } + end + # Add for static HTML 20131110 end tdiary = TDiary::TDiaryComment::new( cgi, "day.rhtml", conf ) elsif params['plugin'] tdiary = TDiary::TDiaryPluginView::new( cgi, '', conf )
_ 【update_main.rb.patch】
*** update_main.rb.org Thu Aug 29 17:53:52 2013 --- update_main.rb Sun Nov 10 15:47:41 2013 *************** *** 2,7 **** --- 2,8 ---- module TDiary class Dispatcher class UpdateMain + def self.run( request, cgi ) new( request, cgi ).run end *************** module TDiary *** 15,23 **** --- 16,46 ---- @params = request.params end + # Add for static output 20131110 start + def delete_cache(request) + cache = "/home/www/htdocs/rewind/index.html" + if FileTest.exist?(cache) then + File.delete(cache) + end + # date_string = '20121004' + # date_string = params['date'] + date_string = sprintf("%04d%02d%02d", cgi['year'], cgi['month'], cgi['day']) + # date_string = sprintf("%04d%02d%02d", @params['year'], @params['month'], @params['day']) + # date_string = sprintf("%04d%02d%02d", @request['year'], @request['month'], @request['day']) + cache = "/home/www/htdocs/rewind/static/#{date_string}.html" + if FileTest.exist?(cache) then + File.delete(cache) + File.open("/home/www/htdocs/rewind/static/cache.log", "a+") {|f| + f.write "#{Time.now} static cache cleared(#{date_string}.html).\n" + } + end + end + # Add for static output 20131110 end + def run @tdiary = create_tdiary begin + head = {}; body = '' if request.mobile_agent? body = conf.to_mobile( tdiary.eval_rhtml( 'i.' ) ) *************** module TDiary *** 63,78 **** --- 86,116 ---- def create_tdiary begin if params['append'] + # Add for static output 20131110 start + delete_cache(@cgi) # For static + # Add for static output 20131110 end tdiary = TDiary::TDiaryAppend::new( cgi, nil, conf ) elsif params['edit'] + # Add for static output 20131110 start + delete_cache(@cgi) # For static + # Add for static output 20131110 end tdiary = TDiary::TDiaryEdit::new( cgi, 'update.rhtml', conf ) elsif params['replace'] + # Add for static output 20131110 start + delete_cache(@cgi) # For static + # Add for static output 20131110 end tdiary = TDiary::TDiaryReplace::new( cgi, nil, conf ) elsif params['appendpreview'] or params['replacepreview'] + # Add for static output 20131110 start + delete_cache(@cgi) # For static + # Add for static output 20131110 end tdiary = TDiary::TDiaryPreview::new( cgi, 'preview.rhtml', conf ) elsif params['plugin'] tdiary = TDiary::TDiaryFormPlugin::new( cgi, 'update.rhtml', conf ) elsif params['comment'] + # Add for static output 20131110 start + delete_cache(@cgi) # For static + # Add for static output 20131110 end tdiary = TDiary::TDiaryShowComment::new( cgi, 'update.rhtml', conf ) elsif params['saveconf'] tdiary = TDiary::TDiarySaveConf::new( cgi, 'conf.rhtml', conf )
_ httpd側は
.htaccessを↓な感じで追加設定。*1
要するに、通常はキャッシュがあればそっち。
携帯からのアクセスは整形されるので動的生成。
検索エンジンさんは強制的に静的htmlに飛ばして負荷軽減。
各個別の日付じゃない、一覧表示はキャッシュがないので動的生成。
もしかすると、今回から正式にfcgi使ってるので論理矛盾があるかもしんない。
【.htaccess】
*1 他にもspam避けとか沢山設定されてるw
Options +ExecCGI Options -Indexes Options +FollowSymLinks RewriteEngine on # If mobile, use index.rb RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/([0-9]+)\.html$ RewriteCond %{HTTP_USER_AGENT} ^DoCoMo [OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} ^MOT- [OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI- [OR] RewriteCond %{HTTP_USER_AGENT} ^Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} ^UP\.Browser [OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank RewriteRule .* index.fcgi?date=%1 [L] # If mobile, use index.rb RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/$ RewriteCond %{QUERY_STRING} ^$ RewriteCond %{HTTP_USER_AGENT} ^DoCoMo [OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} ^MOT- [OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI- [OR] RewriteCond %{HTTP_USER_AGENT} ^Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} ^UP\.Browser [OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank RewriteRule .* index.fcgi [L] # If search engine, goto html focebily RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/?date=([0-9]+$) RewriteCond %{HTTP_USER_AGENT} msnbot [NC,OR] RewriteCond %{HTTP_USER_AGENT} psbot [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot/2 [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot/1 [NC,OR] RewriteCond %{HTTP_USER_AGENT} Yahoo [NC,OR] RewriteCond %{HTTP_USER_AGENT} Yahoo! [NC,OR] RewriteCond %{HTTP_USER_AGENT} Y!J-SRD RewriteRule .* static/%1.html [L] # If search engine, goto index.rb.org "Non static" focebily RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/$ RewriteCond %{HTTP_USER_AGENT} msnbot [NC,OR] RewriteCond %{HTTP_USER_AGENT} psbot [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot/2 [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot/1 [NC,OR] RewriteCond %{HTTP_USER_AGENT} Yahoo [NC,OR] RewriteCond %{HTTP_USER_AGENT} Yahoo! [NC,OR] RewriteCond %{HTTP_USER_AGENT} Y!J-SRD RewriteRule .* index.fcgi [L] # If search engine, goto update.rb.org "Non static" focebily RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/update.rb$ RewriteCond %{HTTP_USER_AGENT} msnbot [NC,OR] RewriteCond %{HTTP_USER_AGENT} psbot [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot/2 [NC,OR] RewriteCond %{HTTP_USER_AGENT} Googlebot/1 [NC,OR] RewriteCond %{HTTP_USER_AGENT} Yahoo [NC,OR] RewriteCond %{HTTP_USER_AGENT} Yahoo! [NC,OR] RewriteCond %{HTTP_USER_AGENT} Y!J-SRD RewriteRule .* update.fcgi [L] # If there is cache, output from cache RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/([0-9]+\.html$) RewriteCond 【tDiaryの場所(絶対パス)】/static/%1 -f RewriteRule .* static/%1 [L] # If there is no cache, output from cgi RewriteRule ^([0-9]+)\.html$ index.fcgi?date=$1 [L] RewriteRule ^([0-9]+[-]+[0-9]+)\.html$ index.fcgi?date=$1 [L] # If it is comment, go to index.rb RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/$ RewriteCond %{REQUEST_METHOD} ^POST$ RewriteRule .* index.fcgi [L] # If selecting a category, go to index.rb RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/$ RewriteCond %{REQUEST_METHOD} ^GET$ RewriteCond %{QUERY_STRING} ^.+$ RewriteRule .* index.fcgi [L] # If there is no caache for top, go to index.rb RewriteCond %{REQUEST_URI} ^\/【tDiaryの場所】\/$ RewriteCond %{QUERY_STRING} ^$ RewriteCond 【tDiaryの場所(絶対パス)】/index.html !-f RewriteRule .* index.fcgi [L]
_ ツール
テーマを変えたり、設定変更したときに過去のキャッシュは自動じゃ変更されない。
なので、当日から日記を開始した2004年の12月31日まで週1回キャッシュを削除しながらツールで自動的に/dev/nullへwgetする。
と言っても、UserAgentとReferrerはちゃんと付けないと弾かれる。
所要時間は8年分で10分ほど。
今まではツールからtelnetでport80叩いていたんだけど、いろんな動作をちゃんとエミュレートしないとコメント欄が無いキャッシュができたりしたので改良。
Tweets by RC31E | |||||||||
| |||||||||
| |||||||||
|
_ わし [ツッコミのテストw]