MT3.2からWordPress2.6に移行した時の不具合をWWW::Mechanizeで修正
今年の春にSFCで動かしていたMovableType3.2が調子悪くなって、さくらに置いたWordPressに移行したわけだけど(さくらレンタルサーバ+wordpressにしてみた)
その時に過去ページのいくつかが見えなくなる不具合があった。んで今朝からそれを解消するスクリプトを動かしている。今1000件目あたり。昼過ぎには完了するはず。
どういう不具合かというと、wordpressにログインしていない人がアクセスしたページは404ステータスになる。apacheが吐く404ではなくwordpressが吐く404で、「エラー 404 - 見つかりませんでした」と出る。ログインしていると普通に記事を見る事が出来る。
このせいで、俺は見れているのにURLを送ると「記事がないですよ」とみんなに言われて、原因を特定するのに時間がかかった。
そしてその修正方法だが、単に個別記事編集画面で「保存」を押すだけでその記事は復活した。なぜだかわからない。
さくらのコントロールパネルからMySQLのテーブルを見ても、どのテーブルが悪さしているのかよく分からなかったのでRubyのWWW::Mechanizeを使って全ページ「保存」ボタンを押しなおす事にした。
WWW::Mechanizeはログインフォームにパスワードを入れたり、UserAgentを偽装してwebページにアクセスしたりできる非常に有用なモジュール。Perlでは使った事あったけどRubyでは今回が初。
参考
- Ruby Scraping - Mechanize
- Greenbear Diary - RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize , HikiReload
- RubyのMechanizeのよくある質問 - きたももんががきたん。
必要なものをインストール
sudo gem install mechanize hpricot
普通にwp-login.phpからログインしてdashboardへ行き、cookieを持った状態で各記事個別ページへ移動して保存ボタンを押していく。記事個別ページが連番で助かった。あと自分のサーバをいじめたくないのでsleepは長めにしてある
shokai-blogfix.rb として保存
#!/usr/bin/env ruby
require ’rubygems’
require ’kconv’
require ’mechanize’
require ’pp’
user = ”username”
pass = ”password”
puts ’start’
agent = WWW::Mechanize.new
page = agent.get(”http://shokai.org/blog/wp-login.php”)
login_form = page.forms_with(”loginform”).first
login_form.log = user
login_form.pwd = pass
dashboard = agent.submit(login_form)
puts ”login: ” + dashboard.title
# 各ページ処理
for i in 1..1558
sleep 10
begin
page = agent.get(”http://shokai.org/blog/wp-admin/post.php?action=edit&post=#{i}”)
post_form = page.forms_with(”post”).first
page = agent.submit(post_form)
puts i.to_s+”success!” if page.body =~ /投稿が更新されました/
rescue
puts i.to_s+”error”
end
end
puts ’–finished–’
パスワードなどは適宜変更。
URLもハードコーディングしている。1回しか使わないスクリプトだし
デジタルサイネージ実験に応募した
応募した。
ダイナミックデジタルサイネージ実験 参加者募集
zigbeeとbelugaの2つの無線タグを使うらしいけど、Beluga Projectの事かな。
ちなみに実験にはSFC学生/教員でないと応募できない。
あとSFC関連はいつもSSL証明書がおかしいですよ…
Macbookの電源を買った
コネクタの調子が悪くなったので、買い換えようとしたら品切れだったのでMacbookPro用を買ってみた。
ふつうMacbookは60Wの電源なんだけど、MacbookProの85W電源を使うと充電が速い。値段も本体サイズも同じだし。
売り上げランキング: 11860
何も問題なく使えている。
センチュリーの小型液晶 LCD-4300Uを買った→分解
century plus one(LCD-4300U)を買った。USB接続の4.3インチディスプレイデバイス。
Mac用のドライバもあるが、MacだとUSBハブを通すと認識しなかった。
とりあえずWindowsで3個つなげてみた

サブディスプレイは、メイン側のGPUのアクセラレータを切らないと動画が再生できない事があるけどコイツは大丈夫だった。Direct3D、Flash、Quicktimeなどが表示できる

Read more…
geek test
学校にサーバーたくさん置いてあるから・・・
上下ジーパンの監督(きょろ)と飲んだ
奥出研の卒業生の天谷さんときょろと3人でビールを飲んだ
きょろは飲み屋にH8マイコンとブレッドボードなどを持ってきていた。「ゆるハード」という、ハードウェアを使うけどそれほど低レベルに入らずに面白いものを作るとか、ネットワークに乗せたとたんハードで使える現実の情報がテキストみたいなものに意味が落ちてしまったりする事とか色々話した。なんだか使う言葉と意味が似たような事を考えているなあーと不思議だった。

何年か前にVIPの「上下ジーパン映画化してみたw」というスレッドで面白いビデオが公開されていて、しかも本名など全開だったので気になって検索していったら未踏の結果のページなどに行き着いて何者なのかと思ってそれ以来追っかけていました。会えて感激。
YouTube - ジーンズ・オン・ジーンズ・ザ・ムービ
こういう人を見てると創作本能というかいろいろ最近失っていたものが沸き立ってくる
いまさらながらORF 奥出研OBが来た
先月にORFがありました。まあそれはいいとして、なつかしいOBが飲み会に来た。
1~3つ上の代の先輩方の背を見ながら、毎週の奥出研の地獄プレゼンを繰り返し耐えてきたものでした。

言ってはなんだけど、今までの人生で他人を尊敬したりとかほとんど無かったんだけど大学入ってからは例外だったなー

それと奥出先生の誕生日会も兼ねていた。
Read more…






最近のコメント