twitter4r cheet sheet
twitter4rのチートシートです。
追加したほうがいいことがあったらコメントください。
twitter4rについて
Twitter APIのRubyラッパです。gemで提供されています。
作者 Susan Potter http://susanpotter.net/
リポジトリ Rubyforge http://twitter4r.rubyforge.org/
Google User Group http://groups.google.com/group/twitter4r-users
インストール
$ sudo gem install twitter4r
クライアント生成
require 'time' require 'rubygems' require 'twitter' client = Twitter::Client.new(:login => 'YourAccount', :password => 'YourPassword'))
その他、コードに直接かかずにfrom_configメソッドなどで認証することもできます。
require 'time' require 'rubygems' require 'twitter'
の部分はおまじないだと思ってOK
API制限を取得
limit = client.account_info limit.hourly_limit => 150 (とか)
その他の情報は、下記、「API制限情報として取得可能な情報」を参照
ユーザ情報等を取得
自分をフォロー(followers)しているアカウントを取得
friends = client.my(:followers)
自分がフォローしているアカウントを取得
friends = client.my(:friends)
取得個数を指定する。
friends = client.my(:friends, :count=>10)
to_hashする。
friends = client.my(:friends).map { |f| f.to_hash }
タイムライン取得
自分のタイムラインを取得する(認証必要)
tl = client.timeline_for(:me)
取得個数を指定する。
tl = client.timeline_for(:me, :count=>10)
to_hashする。
tl = client.timeline_for(:me).map {|s| s.to_hash }
友達のタイムラインを取得
tl = client.timeline_for(:friends)
順に処理する。
tl = client.timeline_for(:friends) {|status| statusに対する処理(下記、「ステータスから取得できる情報」参照) }
ステータスを処理する。
tl = client.timeline_for(:friends) {|status| p status.text }
ステータスからユーザ情報を取得する。
tl = client.timeline_for(:friends) {|status| p status.user.name }
つぶやき
つぶやく
client.status(:post, 'つぶやき内容')
詳細情報
API制限情報として取得可能な情報
hourly_limit: 150 remaining_hits: 136 reset_time: Sun Nov 22 04:30:03 +0000 2009 reset_time_in_seconds: 1258864203
ステータスから取得できる情報
created_at: 2009-11-22 13:17:18 +09:00 favorited: true/false id: 投稿ID in_reply_to_screen_name: in_reply_to_status_id: in_reply_to_user_id: source: <a href="http://www.tweetdeck.com/" rel="nofollow">TweetDeck</a>(例です) text: "ついっと内容(日本語はエンコードされるので文字化けするかも)" truncated: true/false user: ユーザ情報(下記「ユーザ情報から取得できる情報」参照)
ユーザ情報から取得できる情報
created_at: Thu Dec 20 04:21:50 +0000 2007 description: "あまりにもまとまった情報がないから自分用にチートシート作り中" favourites_count: 少ないw followers_count: 少ないw following: true/false friends_count: 少ないw id: ユーザID location: "" (これなんのlocationだろ?geoじゃないよね?空なのはyourfilehost対策じゃないです。ほんとです。) name: yoshi notifications: false profile_background_color: 9ae4e8 profile_background_image_url: http://s.twimg.com/a/1258674567/images/themes/theme1/bg.png profile_background_tile: true/false profile_image_url: http://a3.twimg.com/profile_images/279683789/green_1105_8_480_normal.jpg profile_link_color: 0000ff profile_sidebar_border_color: 87bc44 profile_sidebar_fill_color: e0ff92 profile_text_color: "000000" protected: false screen_name: yotena statuses_count: 653 time_zone: Tokyo url: http://quuzu.jp (うちのサイトです。よかったらどうぞ。) utc_offset: 32400
仮想マシンマネージャでKVMイメージを作ってみる。
前提
事前にKVMやlibvirtやvm-managerなどがインストールされていることを確認
参考)
↓の「Ubuntu オフィシャルのドキュメントのやり方を試す。」部分より下。
http://d.hatena.ne.jp/yotena/20091120/1258722085
特に、GUIでやる場合は、上のURLのエントリーで書いてある、
/etc/vmbuilder/libvirt/libvirtxml.tmpl の編集はkeymap指定意外、必要なかった。
開始
仮想マシンマネージャを開いたところ
[localhost (System)]の部分をダブルクリックするとActiveになる。
もし既存のVMがいるとここに表示される。
[新規ボタン]で新しいVM作成が始まる。
汎用的に、Imageからインストールする。(vmbuilderを使うとUbuntuなどはImageなしでいけるけど、FTPサイト探したりするのはディストリによっては探しにくいかもしれないので。)
自分のVMにわかりやすい名前を入れ、[Local install media]を選択する。(これはUbuntu 9.10の64ビット版のサーバという意図で適当につけた。
Imageは必須。[OS Type]と[Version]は可能な限り特定しとくべきだと思う。
[Allocate entire disk now]を外すと、ゲストOSで使った分しかディスクは使用されないのでディスク容量は余裕を持った設定にする。
ブリッジ接続が必要な場合は[Advanced options]で[bridge br0]が設定できるので、[Advanced options]も必ず確認する。
SSHサーバだけはどうせ必要になるのでインストールしておいた方が無難。
再起動ですが、自動では再起動しません。ので[Run]ボタンを押してください。
仮想マシンマネージャでも動いているのを確認。
自分で設定したユーザIDとパスワードでログインしてください。
ログイン後、以下を実行すると少しだけ幸せになれる。
$ sudo apt-get install acpid
ここで作った結果は、
/var/lib/libvirt/images配下にイメージディスクが保存される。
あと、/etc/livirt/qemu配下に設定ファイルが保存される。
Ubuntu 9.10 Karmic Koalaでkvm
UbuntuでEucalyptusとか試したいのもあるし、KVMを使ってみる。ちなみに初めて使っています。
まずは、以下のような手を使ってインストールしてみました。
(結論からいうとうまくいかなかった。)
KVM単体でイメージを作ってみる。
http://www.atmarkit.co.jp/flinux/rensai/kvm02/kvm02a.html
のやり方で試してみました。
イメージディスク作成
$ kvm-img create -f qcow2 u910.img 10GB
OSインストール
$ kvm -hda u910.img -cdrom /dev/cdrom -boot d -m 512 -monitor stdio
起動
Desktop版
kvm -hda u910.img -boot c -m 512 -k ja
Server版
$ kvm -hda u910.img -boot c -m 512 -curses -k ja
注)-k ja 指定しないと日本語キーボードでアンダースコアが入力できない。
これで一応NATによる外部への接続が出きるが、内部への接続はまだできない。
次にブリッジネットワークを作ろうとしたところうまくいかない。
bridgeの設定方法がうまくいかない。kvm起動コマンド中の-netオプション中のscript=/etc/kvm/kvm-ifupの部分とかも、/etc/qemu-ifupとかだったり微妙にディストリが違えば動作環境も違うみたい。
Ubuntu オフィシャルのドキュメントのやり方を試す。
以下を参考にやりなおし
https://help.ubuntu.com/community/KVM
目標はブリッジ接続ですべてのゲストを透過的に同じIPアドレス帯に配置する方法です。
やっぱり対象はホストOS、ゲストOSともにUbuntu 9.10 Karmic Koalaです。
環境チェック
$ grep ' vmx ' /proc/cpuinfo (Intel)
$ grep ' lm ' /proc/cpuinfo
でなにか表示されたらVMサポートされているということ。
ちなみにうちのCore 2 Duoマシンで試した結果は
$ grep ' vmx ' /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr \ pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm \ pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni \ dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm \ ida tpr_shadow vnmi flexpriority flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr \ pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm \ pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni \ dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm \ ida tpr_shadow vnmi flexpriority $ grep ' lm ' /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr \ pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm \ pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni \ dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm \ ida tpr_shadow vnmi flexpriority flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr \ pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm \ pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni \ dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm \ ida tpr_shadow vnmi flexpriority
インストール
$ sudo apt-get install kvm libvirt-bin ubuntu-vm-builder virt-manager bridge-utils $ sudo adduser `id -un` libvirtd $ sudo adduser `id -un` kvm $ sudo reboot
virshのチェック
$ virsh list --all Connecting to uri: qemu:///system Id 名前 状態 ----------------------------------
ネットワークの設定
$ sudo invoke-rc.d networking stop $ sudo cp /etc/network/interfaces /etc/network/interfaces.original $ sudo vi /etc/network/interfaces
以下のように編集する。
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.0.10 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
ネットワークの再起動。
$ sudo /etc/init.d/networking restart
ブリッジ接続のみでよくて、vmbuilderでのみ作成する場合は、以下のような設定をしておくと便利。
$ sudo cp /etc/vmbuilder/libvirt/libvirtxml.tmpl /etc/vmbuilder/libvirt/libvirtxml.tmpl.original $ sudo vi /etc/vmbuilder/libvirt/libvirtxml.tmpl
オリジナルは以下のとおり。
<domain type='kvm'> <name>$hostname</name> <memory>#echo int($mem) * 1024 #</memory> <vcpu>$cpus</vcpu> <os> <type>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> #if $bridge <interface type='bridge'> <source bridge='$bridge'/> #else <interface type='network'> #if $mac <mac address='$mac'/> #end if <source network='default'/> #end if #if $virtio_net <model type='virtio'/> #end if </interface> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' listen='127.0.0.1'/> #for $disk in $disks <disk type='file' device='disk'> <source file='$disk.filename' /> <target dev='hd$disk.devletters()' /> </disk> #end for </devices> </domain>
これを以下のように編集。
<domain type='kvm'> <name>$hostname</name> <memory>#echo int($mem) * 1024 #</memory> <vcpu>$cpus</vcpu> <os> <type>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <interface type='bridge'> <source bridge='br0'/> </interface> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' listen='127.0.0.1' keymap='ja'/> #for $disk in $disks <disk type='file' device='disk'> <source file='$disk.filename' /> <target dev='hd$disk.devletters()' /> </disk> #end for </devices> </domain>
ポイントは、ネットワークのブリッジ設定のところ。
あと、keymap。
次のエントリーにある、仮想マシンマネージャでKVMイメージを作る場合も以下のようにkeymapの設定はしておいた方がいい。
<graphics type='vnc' port='-1' listen='127.0.0.1' keymap='ja'/>
ゲストOS(Ubuntu 9.10 server)をインストール
$ sudo ubuntu-vm-builder kvm karmic --arch 'amd64' --mem '512' \ --rootsize '10240' --swapsize '2048' --kernel-flavour 'generic' \ --hostname 'ubuntu' --mirror 'http://archive.ubuntu.com/ubuntu' \ --components 'main,universe' --name 'ubuntu' --user 'ubuntu' \ --pass 'ubuntu' --libvirt qemu:///system --domain u910s64
この面倒くさいパラメータは下記ツールで生成するとよい。
http://people.canonical.com/~kirkland/ubuntu-vm-builder.html
このツールで生成したものに、以下の変更をする必要がある。
" --libvirt qemu:///system"パラメータを追加する。
"hardy" などのUbuntuバージョン名を"karmic"に変更する。
上記パラメータでしばらく待つと、以下が生成される。
{コマンド実行ディレクトリ}/ubuntu-kvm
{コマンド実行ディレクトリ}/ubuntu-kvm/disk0.qcow2
/etc/libvirt/qemu/ubuntu.xml
Qemuでチェック
$ virsh list --all Connecting to uri: qemu:///system Id 名前 状態 ---------------------------------- - ubuntu シャットオフ $ virsh virsh # start ubuntu ドメイン ubuntu が起動されました。
と、ここで、どーやってサーバに入ればいいんだろう?w
[アプリケーション] > [システムツール] > [仮想マシンマネージャー]でNameがubuntuになっているところをダブルクリックするとコンソールが出る。(よかった)
とりあえず仮想マシンマネージャからOSにアクセスできるようにはなったけど、SSHとかでも使えるようにとりあえず、設定したアカウントでログインする。
ubuntu@ubuntu:~$ ifconfig
でホストと同じネットワークにいることが確認できる。
IPアドレスが判明したところで...。
ssh, acpidは入れとこ
$ sudo apt-get install ssh acpid
ちなみにacpidは仮想マシンマネージャーから電源off/rebootするのに必要。
これでなんとか普通にKVMが使えるようになったはず。
とにかく、困ったのは、
ブリッジの仕組みが分かってなくて、設定がうまく動かなくて何度もやり直したこと。分かってない上にどっかで記述をミスってたのもあったんだと思う。
あと、" --libvirt qemu:///system"パラメータを追加するのを忘れてて、/etc/libvirt/qemu配下にxmlファイルが出来てくれなかったこと。
参考)
全般
https://help.ubuntu.com/community/KVM
acpidについて
http://d.hatena.ne.jp/kiyotakak/20090102/1230945559
ここまで設定できたら下のようなことができるのかな?
virt-manager を使って新規の仮想化ドメインを作成時に、ブリッジが選択できるようになる。
http://moimoitei.blogspot.com/2008/07/ubuntu-kvm-libvirt.html
Bye Unquit Firefox CTRL+W
FirefoxでCtrl+wでタブを閉じる場合、ついつい最後のタブまで閉じてしまい、もう一回Firefoxを起動することがある。これを防止するために、Unquit Firefox CTRL+Wというアドオンを入れていたのだが、どうやらabout:configで出来るらしいので今後はこちらで対応することにした。
(参考)
about:config http://aquapple.com/2009/07/firefox-35-tab/
Unquit Firefox CTRL+W https://addons.mozilla.org/ja/firefox/addon/13017
Ubuntu Oneを使ってみる。
メインメニューから[アプリケーション] > [インターネット] > [Ubuntu One]を選択すると、ブラウザでUbuntu OneへのLaunchPadのサインアップ画面が表示される。メールアドレス、パスワードなどを登録するとこれでUbuntu Oneの使用準備はOK。
インストール直後など、システムのUpdateをしていない状態だと、"Ubuntu One Capability mismatch"というエラーが出るが、[システム] > [システム管理] > [アップデートマネージャ]を起動し、最新の状態に更新すると解決される。
Ubuntu One Capability Mismatch by Google
Web版のサイト自体は英語だが、Notesの編集なども日本語でもOKで使用感は良好。
ただし、このNotes機能の編集では明示的なSaveという動作が見当たらないんだけど、これはwebだけを使用している場合は常時同期されているような動作をしているみたい。
Tomboy との連携については以下のリンクに書かれているようなメモの同期が可能となる。ただ、気になったのは、Webで更新された場合とTomboyで更新された場合で若干挙動が違う気がすること。Web上で入力したメモがうまくTomboyに同期されないときがあるので、同時に両方で編集する可能性がある場合は要注意かもしれない。
Tomboyで更新されたメモについては、[ツール] > [メモの同期]を実行することで即座にWebに対しても反映されているように思う。が、この辺の同期タイミングは若干不安。
Ubuntu 9.10 Karmic KoalaでSMARTがエラー?
one or more disk has many bad sectors (1つまたはそれ以上のディスクが破損しています。 / ディスクに多くのバッドセクタがあります。)
Ubuntu 9.10のインストール後に上記のようなエラーが出る可能性があるようです。参考URLのスレッドの流れから、多くの人が困っているみたいですが、いまいち確かなことは明らかになっていないように思います。ただ、全体のコンセンサスとしてこれはコアラのバグだろうということになっています。気になる方は、念のため、HDDベンダ等が提供しているディスクチェックツールでチェックすることもおすすめかと。
http://ubuntuforums.org/showthread.php?t=1300590
私の場合も同様のSMARTのアラートが上がりました。私の経験したのは500個ぐらいのbad sectorが検出されたと言うようなものですが、たぶん、普通に動いてたしなかなか考えつらいと思い、まあ、検証マシンなので放置してます。
現象が現れるのが、どれぐらいの頻度なのかは不明ですが、今のところKoalaマシンは3台(IBMのX、Tシリーズ、DELLのVOSTRO1400)でDELLのマシンで症状が出ました。