2010-07-10
kkaldでEpgTimer_Bonの自動録画予約がうまくできなくなったときの対処
kkaldはどうやら「ここまで予約した(・∀・)」みたいなデータをiniに保存してるらしい。
で、実際に自動予約できてないのにできたと思い込んでしまうとその日時から前の録画予約はどうがんばってもできなくなる。
試行錯誤の末にたどり着いたのがこんな簡単なことだったなんて…忘れないようにメモ。
- kkald本体のフォルダにあるkkal.iniを開く
- 「AUTORESERVEHISTORY=なんちゃら」の「なんちゃら」の部分を削除
以上。ちなみにあらかじめEpgTimer_Bonの自動予約済みの番組を削除しとかないと二重予約されちゃうかも。
2009-12-11
twitterクライアント「twksr」の自動アップデータを作ってみました
twitter | |
tweenやYoruFukurouなどの有名twitterクライアントには必ずと言っていいほど対応している自動アップデート機能。個人的に応援しているtwksrというクライアントにもあればいいなーと思い、試しに作ってみました。
■使い方
■動作
簡単に動作を説明すると、twksrのサポートページにアクセスしてHTMLを解析し、最新バージョンの確認を行ってローカルのものと違っていれば入れ替えるという簡単なものです。当然HTMLの構成が変わってしまうと動かなくなる可能性が高いですが、今のところ順調に動いている模様。
■旧バージョン
■更新履歴
- ver 0.4.0 - 11/06/06
- 小数第四位以下の更新に対応
- ver 0.3.0 - 10/05/15
- 更新情報の表示
- ローカルのtwksrが最新版のときはダイアログなしで終了するように
- ver 0.2.0 - 10/02/27
- ver 0.1.0 - 09/12/11
- 初回リリース
2009-10-28
coLinuxで任意のディストリ/バージョンをandLinuxライクに使えるようにする!
coLinuxはWindows上で動作するLinuxカーネルで、PCエミュレータよりも軽快に、Cygwinよりもネイティブに、デュアルブートよりもシームレスにWindowsとLinuxを共存させるソフトです。
また、coLinuxをより簡単に使えるパッケージとしてandLinuxがあります。これは、coLinuxにUbuntuがインストールされたディスクイメージを使い、Xmingを用いてGUIを利用できるようにまでしたものです。
andLinuxはインストールするだけですぐに使うことができ非常に便利なのですが、ディストリビューションがUbuntu7.10以外に選べないことが難点でした。特に、7.10は今年の4月にサポートが終了してしまったので、インストール直後にアップグレードしなければaptも使えません。
また、coLinux用のイメージファイルも存在するのですが、全てのディストリビューションが存在するわけではなく、最新バージョンのリリースからかなり遅れて出ることも多いです。
そこで、どうせならイメージファイルから自分で作って好きなLinuxを入れ、andLinux程度の使用感になるまでを一気に手順化してしまおう、というのが今回のモチベーションです。
用意するもの
まず用意するものは以下の通り。
coLinux本体
coLinuxのサイト左側の「Downloads(binary and source)」から「coLinux-stable」の最新版をダウンロードします。
Linuxのisoイメージ
任意のディストリビューションのサイトからisoイメージ(CDもしくはDVD)をダウンロードします。
ダウンロードしたイメージを置くディレクトリを決め、そこを今後作業の拠点とします。場所はどこでも構いませんが、インストール後もファイル類を動かさないで済む場所(例えば後述するcoLinuxのインストールフォルダなど)にしましょう。このディレクトリを今後「IMAGEDIR」と表記します。
QEMU
サイト左側の「QEMU on Windows」から「QEMU on Windows Ver 0.10.6」をダウンロードします。
XmingとXming-fonts
Xming X Server for Windows | Free System Administration software downloads at SourceForge.net
サイトの「Download Now!」からXming本体をダウンロード。さらに下のほうの「Xming-fonts-(最新のバージョン)-setup.exe」をダウンロード。
各アプリケーションのインストール
必要なものが揃ったら、まずはインストールをしていきます。順番は関係が無いので好きな順でインストールしてください。
coLinuxのインストール
ごく普通にインストールしていきます。ただしイメージは自分で作成するので、「Choose Components」の画面で「RootFile system image Download」のチェックをはずします。
また、途中で「ハードウェアのインストール」の警告が出ますがそのまま続行してください。
なお、coLinuxをインストールしたディレクトリを今後「COLINUXDIR」と表記します。
QEMUのインストール
なお、QEMUをインストールしたディレクトリを今後「QEMUDIR」と表記します。
Xmingのインストール
ダウンロードしてきたインストーラをXming→Xming-fontsの順でごく普通にインストールしましょう。Select ComponentsはFull Installationで特に問題ありません。
イメージファイルの作成
ここからが気合の入れどころです。1つ1つしっかりと手順を踏みましょう。
まずコマンドプロンプトを開いてIMAGEDIRまで移動してください。
ここで、以下のようにコマンドを打ちます。
"QEMUDIR\qemu-img" create rootfs.img 5G
これで「rootfs.img」という5GBのファイルと「swap.img」という256MBのファイルが生成されるはずです。続いて次のコマンドを一行で打ちます。
"QEMUDIR\qemu" -hda rootfs.img -hdb swap.img -cdrom (CD/DVDイメージのファイル名) -net nic -net user -no-acpi -vga std -no-reboot -m 256 -L . -boot d
これでQEMU上でLinuxのインストーラが起動するので、手順に従ってインストールしていきます。
Linuxインストール上の注意
Linuxをインストールする上で、大部分は自分の好みに設定しても良いのですが、パーティションの部分だけは十分注意しなければいけません。
パーティションを設定する画面では、rootfs.imgがsdaとして、swap.imgがsdbとして見えています。
ディストリビューションによって多少違いはありますが、「ディスクの全ての部分を使う」、「sdaとsdbを使う」、「パーティションの確認/変更を行う」という方針で選択していくと、パーティションの設定をする画面になります。
ここで、論理パーティションを一切使わずに(デフォルトで設定されていたら削除してください)、sdaの全ての領域を基本パーティションにし、ファイルシステムはext3、マウントポイントは「/」(ルート)に、プライマリパーティションとして設定してください。またsdbも同様に、全ての領域で基本パーティション、ファイルシステムはswap、プライマリパーティションに設定します。
sdaのext3に関しては、ext2やext4、その他のファイルシステムでも可能かもしれません。とにかくパーティションを切らずに1つのディスクに対して1つのパーティションとなるようにします。
ここが終わればあとは自由にしても大丈夫だと思います。ただQEMUは動作が非常に遅くインストールに時間がかかるので、最小限のパッケージをインストールし、後からyumやaptで追加するのが良いかと思われます。
さて、次の作業には(本末転倒気味ですが)CygwinやLinuxが必要になります。
先程Linuxをインストールしたイメージファイルを使い、Cygwin/Linux上でrootfs.imgに対して以下のコマンドを実行します。
dd if=rootfs.img of=rootfs-colinux.img bs=512 skip=63
ここで作成された「rootfs-colinux.img」がcoLinuxで使用するファイルになります。IMAGEDIRに移動させましょう。rootfs.imgは削除してもかまいません。swap.imgはそのままで大丈夫です。
coLinuxの起動
さて、いよいよ起動です。まず以下のようなバッチファイルを作り、「boot.bat」という名前でIMAGEDIRに保存します。
set P=
set P=%P% kernel="COLINUXDIR\vmlinux"
set P=%P% initrd="COLINUXDIR\initrd.gz"
set P=%P% mem=256
set P=%P% cobd0="rootfs-colinux.img"
set P=%P% cobd1="swap.img"
set P=%P% cofs0="C:\\"
set P=%P% eth0=slirp,52:54:00:12:34:56
set P=%P% eth1=tuntap,"TAP-coLinux",00:FF:77:C6:30:00
set P=%P% root=/dev/cobd0
set P=%P% fastboot
このバッチファイルを起動してcoLinuxがログイン画面まで行ければcoLinuxの起動は成功です!ひとまず第一関門は突破しました。なお、普段使うユーザアカウントはここで早々に作っておきましょう。
coLinuxのサービスへの登録
coLinuxをWindows起動時に自動的に起動するサービスとして登録します。先程のバッチファイルの最終行を以下のように書き換えます。
"COLINUXDIR\colinux-daemon" %P% -t nt --install-service "coLinux"
これで起動をするとサービスに「coLinux」という名前のサービスが登録されます。
コントロールパネル→パフォーマンスとメンテナンス(Vistaはシステムとメンテナンス)→管理ツール→サービス
にcoLinuxという名前のサービスがあることを確認してください。ダブルクリックして「スタートアップの種類」を「自動」にすれば次回以降のWindows起動時に自動的にcoLinuxが起動します。
サービスから起動したcoLinuxにアクセスするには、coLinuxのインストールフォルダにある「colinux-console-fltk.exe」または「colinux-console-nt.exe」を使います。
cofsの設定
WindowsとcoLinuxでファイル共有するためのcofsの設定です。sambaを使って共有することも可能ですが、cofsの方が簡単なのでこちらを使います。まずマウントするディレクトリを作成します。
# mkdir /mnt/win
つぎにエディタで/etc/fstabに以下の行を追加します。
cofs0 /mnt/win cofs uid=ユーザ名 0 0
これで再起動すると/mnt/winにCドライブがマウントされます。お好みでandLinuxのように~/windowsでアクセスしたい場合は以下のようにシンボリックリンクを張ります。
$ ln -s /mnt/win ~/windows
ネットワークの設定
coLinuxのネットワーク設定は色々な方法がありますが、ここではslirpで外部ネットワークと接続し、TAPでホストWindowsにXを転送します。
Windows側の設定
スタート→接続の表示→すべての接続の表示(Vistaではコントロールパネル→ネットワークとインターネット→ネットワークと共有センター→ネットワーク接続の管理)で、「TAP-Win32 Adapter V8 (coLinux)」を「TAP-coLinux」に書き換えます。
次にTAP-coLinuxをダブルクリックし、プロパティ→インターネット プロトコル (TCP/IP)を選択→プロパティをクリックして、以下のように設定します。
次のIPアドレスを使う IPアドレス 192 168 200 1 サブネット マスク 255 255 255 0 デフォルト ゲートウェイ 次のサーバーのアドレスを使う 優先DNSサーバー 代替DNSサーバー
Linux側の設定
Linuxのネットワーク設定方法はディストリビューションに依存しますが、ルーティングが最終的に以下のようになればOKです。
$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.2.0 * 255.255.255.0 U 1 0 0 eth0 192.168.200.0 * 255.255.255.0 U 1 0 0 eth1 default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
以下は設定方法の一例です。環境によって変わるので各自ifconfigなどで確認しながら設定してください。
Redhat系
LANG=C system-config-network-tui
Edit a device paramsを選択し、eth0を選びます。何も変更をせずにOKを選択してください。次に<New Device>→Ethernetと選択し、以下のように設定します。
Name eth1 Device eth1 Use DHCP [ ] Static IP 192.168.200.150 Netmask 255.255.255.0 Default gateway IP Primaty DNS Server Secondary DNS Server
設定をセーブし、rebootで再起動します。以上でネットワークの設定ができているはずです。yumなどを使ってみましょう。
Debian系
sudoで/etc/network/interfacesを以下のように設定します。
auto lo auto eth0 auto eth1 iface lo inet loopback iface eth1 inet static address 192.168.200.150 netmask 255.255.255.0
Xmingの設定
XmingでWindowsにXを転送します。事前にGNOMEやKDE、XFCEなどのデスクトップ環境がインストールされていることを確認してください。
スタート→全てのプログラム→XmingからXLaunchを起動します。
- Multiple windowsを選択し、次へ
- Start a programを選択し、次へ
- Start programにターミナル名(terminal、gnome-terminalなど)を入力し、Run Remoteを以下のように設定
(*) Using PuTTY Connect to computer 192.168.200.150 Login as user ユーザ名 Password パスワード
- そのまま次へ
- Save configurationをクリックして設定を保存。推奨はしませんがInclude PuTTY Password as insecure clear textにチェックして保存するとパスワードも保存されます。
これで保存したファイルをダブルクリックするとターミナルがWindowsに転送されるようになります。
まとめ
以上で大体andLinuxと同じ構成になっていると思います。正確にはandLinuxのインストール時に、
- Do you want to enable sound for andLinux? - no
- run andLinux automatically as a NT service + use Windows shortcuts
- using CoFS (easy configuration)
- All files below this folder can be accessed from andLinux: C:\
をそれぞれ選択した形になります。また、インストールの基本的な手順はcoLinux 用 インストーラの「coLinux 0.7.4 (20090415) 対応 インストールツール Version 2009-05-09」を参考にさせていただきました。この場を借りてお礼を申し上げます。
作業で気をつけるというか、はまりそうなところはインストール時のパーティション設定、ネットワークの設定、それからXmingでcoLinuxに接続する部分でしょうか。あとはQEMUでのインストールがかなり時間がかかるので、本を読みながら作業したりすると良いかもしれません。
coLinuxはバイナリレベルの互換性を持つLinuxがWindows上で軽快に動き使い勝手が良いという点で、VMwareやCygwinに劣らぬ選択肢のひとつになりうると思います。WindowsとLinuxの両方の環境を使いたいという方は、一度試してみてはいかがでしょうか。
参考にさせていただいたサイト
軽快なLinux環境をつくれる、coLinuxのセットアップ手順 - Unix的なアレ
CoLinuxインストール導入編 - Silicon Linux Wiki
coLinux に Fedora Core 7 をインストール & 基本的な設定 - プログラミングのこととか
coLinuxのインストール(Fedora7) - サンプルコードによるPerl入門
QEMUを使ってubuntu serverをcoLinuxに入れてみる。 - Mattari Diary
coLinux0.7.3で、Fedora10を使う - coLinux日記
coLinuxをWindowsサービスに登録する: プログラマーになりたい!
Repse - 子羊は魚の夢を見るか? -: coLinux - cofs を利用して windows とファイルをやり取りする
2009-08-13
Twitterのwebからの投稿でOAuthのクライアント偽装に挑戦→失敗
twitter | |
大したことではないのですが、発言を投稿する際にクライアントの表示をしたいと思い、とりあえずsctでOAuthのクライアント登録をしました。
ところがOAuthに登録したクライアント名を表示するにはOAuth経由でpostをしなければならないらしい。sctからpostする際はその特徴からweb経由の投稿になるので、OAuth経由でのpostができない。これは困った…
一応Webからのpostはクッキーとauthenticity_token、それにstatus(発言)とオプションとしてin_reply_to_status_idを/statuses/update.(xml|json)に投げればいいということになっているようですが、Twitter API 仕様書 (勝手に日本語訳シリーズ)によると、sourceという隠し?コマンドがあり、これを利用すれば一部の、というかほとんどのクライアント偽装はできるのですが…
最近整備されたOAuthの偽装はできないようです。以下試してみたクライアント。
- 偽装できたもの
- API
- mobile web(source="mobile")
- movatwitter
- NatsuLiphone
- iTwitter
- P3:PeraPeraPrv(source="P3")
- pocket*(source="pocket")
- Termtter
- tmitter
- tokotto
- Tween
- TweetDeck
- Tweetie
- twicli
- twitterfeed
- TwitterFon
- TwitterFox
- TwitterIrcGateway
- YoruFukurou
- ちーたん(source="tiitan")
- 偽装できなかったもの
- MobsterWorld
- Movatter
- Spymaster
- 安心と信頼の駄目bot
基本的にsctはIDおよびパスワードを保存しないで(ログイン時のみ使用)クッキーのみを保存してセッションを維持するのですが、本当はIDとかパスワードをログイン時含めて一切渡さないのがベスト。OAuthはID、パスワードを他サービスに渡さずにアクセス権を委譲できるのでそれを使えばいいのですが、OAuthはAPIを叩くためのもので、webにアクセスができるのか「わからない」。*1
postだけOAuthを利用するという手もあるけど「なんでOAuth使ってるのにIDとパス入力しないといけないの」ってなるし…
ID、パスを使わずOAuthで「API」を叩いてしまえばその時点でsctを改名しなければならないので最悪諦めてmobile webあたりで妥協かなぁ。
まぁ、API制限が150回/hになったようなのでこいつの意義もあんまりなくなったんですけどね…
*1:調査していないので。でもたぶん無理な気がする。今度試してみようと思います
2009-06-05
件の携帯用twitterサイト、命名「sct」についていろいろ
twitter | |
携帯用クライアントについてと自分の方針
なんか前のエントリ公開した次の日くらいにMovatter(Movatter.jp - PC Home)というサービスが公開されて全部持ってかれた感がありますが、まぁ当方は大々的にやろうとは思ってなかったのでちょうどいい感じです。むしろ思ってた以上のPV&ブクマでちょっと驚いてたところだったので…
でもまぁ、そのMovatterとの差別化を図らないと自分のモチベーションにも関わってくるので、ちょいとメモ。
- movatwitter、公式モバイルに代わるサイトとして作った
- HTMLを解析してスクレイピングすることによるタイムライン取得
- 主に自分が使う目的で作り、せっかくなので他のついたったーにも使ってもらう
1はまぁあっちこっちでやられてるとは思うんですが、携帯電話の通信仕様が各キャリアで全然違ったりとかauが少数派の諸君!*1だったりとかで丁度いいサイトがない。Javaアプリにしろiアプリばっかりだったりとかauのオープンアプリに通信制限あってすごい使いづらかったりとかいろいろあってせっかくだから俺仕様のものでサイト作ればよくね?っていう結論に至ったわけです。
そして2は1つ前にも書きましたがAPIの取得制限が嫌で、携帯からはAPIで取ってくるしかない→制限くらうとしばらくTL取ってこれなくて('A`)ヴェーってなるってのがあったので勉強がてらスクレイピングをしようと。他のサービスに比べてここが一番差別化されてる部分かと思います。API死んでも私がいるもの的な。
3はこのサイトの基本方針というか、無理せずまったりというスタンスを表明したいので。「○○つくってください!」という意見があっても自分がそれでよくなると思わない限り作らないと思います。逆に「そいつぁすげぇや!」って思ったらすぐ作ると思いますけども。
まぁmovatwitterやMovatterなんかとは方向性が違うのかなーというのは確か。各ユーザーの設定を保存してたりもしておらずセッションだけで管理してるのでMovatterみたいな豊富な設定項目!みたいなこともできないですし。誰も使わないので軽くて使えりゃいいって人にはうってつけかもしれませんw
サイト名「すくつ」!
twitterのサイトとして名前どーしよーかなー、もばったーじゃありきたりだよなーとか思ってたら先に使われてしまったので、せっかくだからもっと俗っぽいものにしようと思って考えたのが "sct" 読みは「すくつ」。「『スク』レイピングして見る『つ』いったー」の略だけど、「移動中にそこまでしてtwitterが見たい廃人がいる『巣窟(すくつ)』」という意味も込めて…w
前回からの更新とこれからの方針
前回のTODO
- Replyボタンの追加
- favoriteボタンの追加
使ってて真っ先に不便だって思ってたものの追加。ただしReplyはin_reply_to付かないし、favは自分がその発言をふぁぼっているかどうかはわかりません。後者は近々実装しようと思いますが前者は、というか「〜宛」関連の機能は個人的にそこまで必要じゃないので実装するかはわかりません。あとReTweetも賛否両論あるし自分もあんまり使わないので実装しないかも。
DoCoMo、Softbankの対応
ログを見てるとやっぱりというか意外とというかドコモユーザの人からのアクセスがそこそこあって、どうせなら対応させたいなーとは思ってるんですが、いかんせんCookieが使えないのと自分が持ってないのでどうしようかと思ってるところです。リファラ対策で外部リンクにクッションかませてるんですけどねー*2。一応ドコモケータイのエミュレータを落としてきたんですが信用ならんw
それからSoftbankはiPhone/それ以外共にどうなってるのか把握できてません。最近のはCookie使えてるはずなんですが…
フォロー関係
following/followerのリストやフォロー/リムーブ/ブロックなんかは時間とモチベとの相談。実際そこまで必要か、家に帰ってからでよくないか、携帯液晶という狭い画面の中で違和感なく入れられるかなども要検討。
デザイン
いかにも個人サイトな不自然さがあるのでなんとかしたい。
あ、ちなみになんだかんだ言って使ってもらえると嬉しいのでこれいいと思った方はどんどん使ってくださいm(_ _)m

