Larkの日記

2010-07-10

kkaldでEpgTimer_Bonの自動録画予約がうまくできなくなったときの対処

| 04:54 | kkaldでEpgTimer_Bonの自動録画予約がうまくできなくなったときの対処を含むブックマーク

kkaldはどうやら「ここまで予約した(・∀・)」みたいなデータをiniに保存してるらしい。

で、実際に自動予約できてないのにできたと思い込んでしまうとその日時から前の録画予約はどうがんばってもできなくなる。

試行錯誤の末にたどり着いたのがこんな簡単なことだったなんて…忘れないようにメモ。

  1. kkald本体のフォルダにあるkkal.iniを開く
  2. 「AUTORESERVEHISTORY=なんちゃら」の「なんちゃら」の部分を削除

以上。ちなみにあらかじめEpgTimer_Bonの自動予約済みの番組を削除しとかないと二重予約されちゃうかも。

2009-12-11

twitterクライアント「twksr」の自動アップデータを作ってみました

| 22:42 | twitterクライアント「twksr」の自動アップデータを作ってみましたを含むブックマーク

f:id:Lark_mp:20100515160958p:image

tweenやYoruFukurouなどの有名twitterクライアントには必ずと言っていいほど対応している自動アップデート機能。個人的に応援しているtwksrというクライアントにもあればいいなーと思い、試しに作ってみました。

ダウンロードこちら(ver.0.4.0)

■使い方

  1. ダウンロードしたファイルを展開し、中のファイルをtwksr本体があるフォルダにコピー
  2. twksrup.exeを起動

■動作

簡単に動作を説明すると、twksrのサポートページにアクセスしてHTMLを解析し、最新バージョンの確認を行ってローカルのものと違っていれば入れ替えるという簡単なものです。当然HTMLの構成が変わってしまうと動かなくなる可能性が高いですが、今のところ順調に動いている模様。

■旧バージョン

ver 0.3.0

ver 0.2.0

ver 0.1.0

■更新履歴

  • ver 0.4.0 - 11/06/06
    • 小数第四位以下の更新に対応
  • ver 0.3.0 - 10/05/15
    • 更新情報の表示
    • ローカルのtwksrが最新版のときはダイアログなしで終了するように
  • ver 0.2.0 - 10/02/27
    • サーバアクセス中にアップデータがフリーズしたようになる現象を修正
    • アップデート前に確認をするように
    • アップデート時にtwksr本体が起動していた場合、自動的に終了処理をするように
    • アップデータ終了直前にtwksr本体を起動するように
  • ver 0.1.0 - 09/12/11
    • 初回リリース

2009-10-28

coLinuxで任意のディストリ/バージョンをandLinuxライクに使えるようにする!

| 22:23 | coLinuxで任意のディストリ/バージョンをandLinuxライクに使えるようにする!を含むブックマーク

f:id:Lark_mp:20091028215043p:image:w400

coLinuxWindows上で動作するLinuxカーネルで、PCエミュレータよりも軽快に、Cygwinよりもネイティブに、デュアルブートよりもシームレスWindowsLinuxを共存させるソフトです。

また、coLinuxをより簡単に使えるパッケージとしてandLinuxがあります。これは、coLinuxUbuntuインストールされたディスクイメージを使い、Xmingを用いてGUIを利用できるようにまでしたものです。

andLinuxインストールするだけですぐに使うことができ非常に便利なのですが、ディストリビューションがUbuntu7.10以外に選べないことが難点でした。特に、7.10は今年の4月にサポートが終了してしまったので、インストール直後にアップグレードしなければaptも使えません。

また、coLinux用のイメージファイルも存在するのですが、全てのディストリビューションが存在するわけではなく、最新バージョンのリリースからかなり遅れて出ることも多いです。

そこで、どうせならイメージファイルから自分で作って好きなLinuxを入れ、andLinux程度の使用感になるまでを一気に手順化してしまおう、というのが今回のモチベーションです。

用意するもの

まず用意するものは以下の通り。

  1. coLinuxの本体
  2. Linuxisoイメージ
  3. QEMU
  4. CygwinLinuxなど、ddコマンドが使える環境
  5. XmingXming-fonts
coLinux本体

Cooperative Linux

coLinuxのサイト左側の「Downloads(binary and source)」から「coLinux-stable」の最新版をダウンロードします。

Linuxisoイメージ

任意のディストリビューションのサイトからisoイメージ(CDもしくはDVD)をダウンロードします。

ダウンロードしたイメージを置くディレクトリを決め、そこを今後作業の拠点とします。場所はどこでも構いませんが、インストール後もファイル類を動かさないで済む場所(例えば後述するcoLinuxインストールフォルダなど)にしましょう。このディレクトリを今後「IMAGEDIR」と表記します。

QEMU

ページ移転のお知らせ

サイト左側の「QEMU on Windows」から「QEMU on Windows Ver 0.10.6」をダウンロードします。

XmingXming-fonts

Xming X Server for Windows download | SourceForge.net

サイトの「Download Now!」からXming本体をダウンロード。さらに下のほうの「Xming-fonts-(最新のバージョン)-setup.exe」をダウンロード

アプリケーションインストール

必要なものが揃ったら、まずはインストールをしていきます。順番は関係が無いので好きな順でインストールしてください。

coLinuxインストール

ごく普通にインストールしていきます。ただしイメージは自分で作成するので、「Choose Components」の画面で「RootFile system image Download」のチェックをはずします。

また、途中で「ハードウェアインストール」の警告が出ますがそのまま続行してください。

なお、coLinuxインストールしたディレクトリを今後「COLINUXDIR」と表記します。

QEMUインストール

ダウンロードしたファイルを解凍し、適当な場所に保存します。

なお、QEMUインストールしたディレクトリを今後「QEMUDIR」と表記します。

Xmingインストール

ダウンロードしてきたインストーラXmingXming-fontsの順でごく普通にインストールしましょう。Select ComponentsはFull Installationで特に問題ありません。

イメージファイルの作成

ここからが気合の入れどころです。1つ1つしっかりと手順を踏みましょう。

まずコマンドプロンプトを開いてIMAGEDIRまで移動してください。

ここで、以下のようにコマンドを打ちます。

"QEMUDIR\qemu-img" create rootfs.img 5G

"QEMUDIR\qemu-img" create swap.img 256M

これで「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に関しては、ext2ext4、その他のファイルシステムでも可能かもしれません。とにかくパーティションを切らずに1つのディスクに対して1つのパーティションとなるようにします。

ここが終わればあとは自由にしても大丈夫だと思います。ただQEMUは動作が非常に遅くインストールに時間がかかるので、最小限のパッケージをインストールし、後からyumaptで追加するのが良いかと思われます。

さて、次の作業には(本末転倒気味ですが)CygwinLinuxが必要になります。

先程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

"COLINUXDIR\colinux-daemon" %P% -t nt

このバッチファイルを起動してcoLinuxログイン画面まで行ければcoLinuxの起動は成功です!ひとまず第一関門は突破しました。なお、普段使うユーザアカウントはここで早々に作っておきましょう。

coLinuxのサービスへの登録

coLinuxWindows起動時に自動的に起動するサービスとして登録します。先程のバッチファイルの最終行を以下のように書き換えます。

"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の設定

WindowscoLinuxでファイル共有するための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

まずrootログインし、以下のコマンドを実行します。

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

再起動してaptなどを試してみましょう。

Xmingの設定

XmingWindowsにXを転送します。事前にGNOMEKDEXFCEなどのデスクトップ環境がインストールされていることを確認してください。

スタート→全てのプログラム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」を参考にさせていただきました。この場を借りてお礼を申し上げます。

作業で気をつけるというか、はまりそうなところはインストール時のパーティション設定、ネットワークの設定、それからXmingcoLinuxに接続する部分でしょうか。あとはQEMUでのインストールがかなり時間がかかるので、本を読みながら作業したりすると良いかもしれません。

coLinuxバイナリレベルの互換性を持つLinuxWindows上で軽快に動き使い勝手が良いという点で、VMwareCygwinに劣らぬ選択肢のひとつになりうると思います。WindowsLinuxの両方の環境を使いたいという方は、一度試してみてはいかがでしょうか。

参考にさせていただいたサイト

軽快なLinux環境をつくれる、coLinuxのセットアップ手順 - UNIX的なアレ

404 Not Found

はてなダイアリー

PerlならサンプルコードPerl入門

QEMUを使ってubuntu serverをcoLinuxに入れてみる。 - Mattari Diary

coLinux0.7.3で、Fedora10を使う - coLinux日記

coLinuxをWindowsサービスに登録する: プログラマーになりたい!

Repse - 子羊は魚の夢を見るか? -: coLinux - cofs を利用して windows とファイルをやり取りする

どさにっき

2009-08-13

Twitterのwebからの投稿でOAuthのクライアント偽装に挑戦→失敗

| 08:43 | Twitterのwebからの投稿でOAuthのクライアント偽装に挑戦→失敗を含むブックマーク

大したことではないのですが、発言を投稿する際にクライアントの表示をしたいと思い、とりあえず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、パスワードを他サービスに渡さずにアクセス権を委譲できるのでそれを使えばいいのですが、OAuthAPIを叩くためのもので、webにアクセスができるのか「わからない」。*1

postだけOAuthを利用するという手もあるけど「なんでOAuth使ってるのにIDとパス入力しないといけないの」ってなるし…

ID、パスを使わずOAuthで「API」を叩いてしまえばその時点でsctを改名しなければならないので最悪諦めてmobile webあたりで妥協かなぁ。

まぁ、API制限が150回/hになったようなのでこいつの意義もあんまりなくなったんですけどね…

*1:調査していないので。でもたぶん無理な気がする。今度試してみようと思います

2009-06-05

件の携帯用twitterサイト、命名「sct」についていろいろ

| 16:49 | 件の携帯用twitterサイト、命名「sct」についていろいろを含むブックマーク

携帯用クライアントについてと自分の方針

なんか前のエントリ公開した次の日くらいにMovatter(Movatter)というサービスが公開されて全部持ってかれた感がありますが、まぁ当方は大々的にやろうとは思ってなかったのでちょうどいい感じです。むしろ思ってた以上のPV&ブクマでちょっと驚いてたところだったので…

でもまぁ、そのMovatterとの差別化を図らないと自分のモチベーションにも関わってくるので、ちょいとメモ。

  1. movatwitter、公式モバイルに代わるサイトとして作った
  2. HTMLを解析してスクレイピングすることによるタイムライン取得
  3. 主に自分が使う目的で作り、せっかくなので他のついたったーにも使ってもらう

1はまぁあっちこっちでやられてるとは思うんですが、携帯電話の通信仕様が各キャリアで全然違ったりとかauが少数派の諸君!*1だったりとかで丁度いいサイトがない。Javaアプリにしろiアプリばっかりだったりとかauオープンアプリ通信制限あってすごい使いづらかったりとかいろいろあってせっかくだから俺仕様のものでサイト作ればよくね?っていう結論に至ったわけです。

そして2は1つ前にも書きましたがAPIの取得制限が嫌で、携帯からはAPIで取ってくるしかない→制限くらうとしばらくTL取ってこれなくて('A`)ヴェーってなるってのがあったので勉強がてらスクレイピングをしようと。他のサービスに比べてここが一番差別化されてる部分かと思います。API死んでも私がいるもの的な。

3はこのサイトの基本方針というか、無理せずまったりというスタンスを表明したいので。「○○つくってください!」という意見があっても自分がそれでよくなると思わない限り作らないと思います。逆に「そいつぁすげぇや!」って思ったらすぐ作ると思いますけども。

まぁmovatwitterやMovatterなんかとは方向性が違うのかなーというのは確か。各ユーザーの設定を保存してたりもしておらずセッションだけで管理してるのでMovatterみたいな豊富な設定項目!みたいなこともできないですし。誰も使わないので軽くて使えりゃいいって人にはうってつけかもしれませんw

サイト名「すくつ」!

twitterのサイトとして名前どーしよーかなー、もばったーじゃありきたりだよなーとか思ってたら先に使われてしまったので、せっかくだからもっと俗っぽいものにしようと思って考えたのが "sct" 読みは「すくつ」。「『スク』レイピングして見る『つ』いったー」の略だけど、「移動中にそこまでしてtwitterが見たい廃人がいる『巣窟(すくつ)』」という意味も込めて…w

前回からの更新とこれからの方針

前回のTODO

使ってて真っ先に不便だって思ってたものの追加。ただしReplyはin_reply_to付かないし、favは自分がその発言をふぁぼっているかどうかはわかりません。後者は近々実装しようと思いますが前者は、というか「〜宛」関連の機能は個人的にそこまで必要じゃないので実装するかはわかりません。あとReTweetも賛否両論あるし自分もあんまり使わないので実装しないかも。

DoCoMoSoftbankの対応

ログを見てるとやっぱりというか意外とというかドコモユーザの人からのアクセスがそこそこあって、どうせなら対応させたいなーとは思ってるんですが、いかんせんCookieが使えないのと自分が持ってないのでどうしようかと思ってるところです。リファラ対策で外部リンクにクッションかませてるんですけどねー*2。一応ドコモケータイエミュレータを落としてきたんですが信用ならんw

それからSoftbankiPhone/それ以外共にどうなってるのか把握できてません。最近のはCookie使えてるはずなんですが…

フォロー関係

following/followerのリストやフォロー/リムーブ/ブロックなんかは時間とモチベとの相談。実際そこまで必要か、家に帰ってからでよくないか、携帯液晶という狭い画面の中で違和感なく入れられるかなども要検討。

デザイン

いかにも個人サイトな不自然さがあるのでなんとかしたい。

 

 

あ、ちなみになんだかんだ言って使ってもらえると嬉しいのでこれいいと思った方はどんどん使ってくださいm(_ _)m

*1:そうでもない…?

*2:と思ったらDoCoMoケータイリファラ吐かないらしい?んだった…