Hatena::ブログ(Diary)

ぺちぱーのユウウツ

2010-02-22

第50回PHP勉強会@関東

今回は株式会社コンテンツワンにて開催されました。(多謝

とってもご近所。なので参加。

テーマはOpenSocialで、第50回という記念もあってか、錚々たるメンバーが集ってました。

内容は

非公開的な内容もあったので、おそらくメインであろうmixi中の人の話はust配信されませんでしたが、結構充実した内容でした。

良い刺激になったので、資料をまとめて会社の人にもちょっとだけでも刺激を与えればいいなぁ。

次もコンテンツワンさんであれば、会社からも近いので社内の人を誘っていければいいなぁと思ったり。

2010-02-02

kumofsのインストール

大体はkumofsを使う(さくらインターネット創業日記)を参考にしながら進めればOK

インストールに必要な情報は公式ドキュメントに記載されているので、そちらを参考にする

必要なライブラリインストール

CentOSの場合
sudo yum install libtool openssl-devel bzip2-devel
Ubuntuの場合
sudo aptitude install libtool libssl-dev libbzip-dev

Rubyの準備

配布元

tar zxf ruby-1.8.7-p249.tar.gz
cd ruby-1.8.7-p249
./configure --prefix=/usr/local/ruby/1.8.7-p249
make
sudo make install
cd /usr/local/ruby
sudo ln -s 1.8.7-p249 default

MessagePack for Rubygemから入れる

tar zxf rubygems-1.3.5.tgz
cd rubygems-1.3.5
/usr/local/ruby/default/bin/ruby setup.rb
sudo /usr/local/ruby/default/bin/gem install messagepack

MessagePack for C++インストール

配布元

tar zxf msgpack-0.4.1.tar.gz
cd msgpack-0.4.1
./configure --prefix=/usr/local/msgpack/0.4.1
make
sudo make install
cd /usr/local/msgpack
sudo ln -s 0.4.1 default

TokyoCabinetインストール

配布元

tar zxf tokyocabinet-1.4.42.tar.gz
cd tokyocabinet-1.4.42
./configure --prefix=/usr/local/tokyocabinet/1.4.42
make
make check
sudo make install
cd /usr/local/tokyocabinet
sudo ln -s 1.4.42 default

kumofsのインストール

配布元

tar zxf kumofs-0.3.1.tar.gz
cd kumofs-0.3.1
./configure --prefix=/usr/local/kumofs/0.3.1 \
--with-msgpack=/usr/local/msgpack/default \
--with-tokyocabinet=/usr/local/tokyocabinet/default
make
sudo make install
cd /usr/local/kumofs
ln -s 0.3.1 default

kumofsの起動

公式ドキュメントチュートリアルの項があるのでそこを参考にすれば大丈夫だが、起動の際に「libtokyocabinet.so.9がない」と怒られることがある。

その時はTCのライブラリへのパスをLD_LIBRARY_PATHに設定する必要がある。*1

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/tokyocabinet/default/lib

毎回は面倒なので.bashrcや.zshenvなどに入れておく

*1:今回の例の場合は必須

2009-12-21

Synergyクライアントの自動起動

KDMの各起動スクリプトの末尾に下記の記述を加える。

# /etc/kde4/kdm/Xsetup
SYNERGYC='/usr/bin/synergyc'
if [ -x $SYNERGYC ]; then
  /usr/bin/killall synergyc
  sleep 1
  $SYNERGYC <synergy server ip>
fi

# /etc/kde4/kdm/Xstartup
SYNERGYC='/usr/bin/synergyc'
if [ -x $SYNERGYC ]; then
  /usr/bin/killall synergyc
  sleep 1
fi

# /etc/kde4/kdm/Xsession
SYNERGYC='/usr/bin/synergyc'
if [ -x $SYNERGYC ]; then
  /usr/bin/killall synergyc
  sleep 1
  $SYNERGYC <synergy server ip>
fi

2009-11-28

Twitterをmixiボイスに同期する

iPhoneからついったーを利用するほうが多いし、わざわざmixiボイスだけにポストすることはないので、同時にできないものかと思った。

やっぱりみんなやっているようで

とりあえずそのまま利用していたんだけど、どうやらこの前のDNS攻撃のときにハングしたみたいで、そしたら同じつぶやきを毎回ポストするようになってしまった。

原因はポストしたやつを記録しておくファイルがデッドロック状態になって、最新のものがずっと更新されないという状態になってしまったこと。

そこでスクリプトを読んでみたら、危なっかしい記述が多かったので作り直してみた。


t2m.rb 直

# vim:set encoding=utf-8 et ts=2 sts=2 sw=2:
#
#= ついったーとmixiボイスを同期する
#
require "rubygems"
require "mechanize"
require "rubytter"

# mixiのログイン情報
mixi_id     = "mixi"
mixi_passwd = "password"

# ついったーのログイン情報
twitter_id     = "twitter"
twitter_passwd = "password"

# mixiにログイン
agent = WWW::Mechanize.new
page = agent.get("http://mixi.jp/")
form = page.forms.first
form["email"] = mixi_id
form["password"] = mixi_passwd
form.submit

# mixiボイスの投稿フォームを取得
page = agent.get("http://mixi.jp/recent_echo.pl")
form = nil
page.forms.each do |f|
  if f.action =~ %r!/add_echo.pl$!
    form = f
    break
  end
end

# ついったーから最新の発言を取得
tweets = []
Rubytter.new(twitter_id,twitter_passwd).user_timeline(twitter_id).each do |t|
  tweets << t.text.tr("\n"," ")
end

# ポスト済のログファイルを読み込んで書き込み済のものを排除
posted_log_file = File.expand_path("posted.log", File.dirname(__FILE__))
posted = []
if File.exist?(posted_log_file)
  open(posted_log_file, "r"){|f| posted = f.readlines}
end

posts = tweets.dup
posted.each do |p|
  posts.delete(p.chop)
end

exit if posts.empty?

# ログファイルを更新
open(posted_log_file, "w"){|f| f.puts tweets.join("\n")}

# mixiボイスへの投稿
posts.reverse.each do |p|
 form["body"] = p
 form.submit
end

2009-09-16

Sambaで絶対にマスターにしたくないときの設定

SambaデフォルトWindowsよりも優位に立って、マスタになろうとする設定になっているので、こっそり自分のPCで使うときは気をつけよう。

そこで、絶対にマスタにしたくないときの設定は、Samba HOWTO集 - Chapter10. Network Browsing - Configure WORKGROUP BrowsingのExample 10.3. smb.conf for not being a Master Browserになる。

[global]
domain master = no
local master = no
preferred master = no
os level = 0
Connection: close