rubyでmemcacheを使う

2月 8th, 2010

ubuntu9.10

BASH:
  1. sudo aptitude install memcached
  2. sudo gem install memcache-client system_timer

gemのmemcacheは入れない(入れてたらuninstall)

使い方

RUBY:
  1. require 'rubygems'
  2. require 'memcache'
  3.  
  4. CACHE = MemCache.new 'localhost:11211', :namespace => 'hoge'
  5. CACHE['cached'] = 'value'
  6. p CACHE['cached']

,

XP,Vista用RDPv7.0クライアントが出てた件

2月 6th, 2010

高添はここにいます : Windows XP と Windows Vista 用の RDP 7.0 提供開始!!

しかも公開は去年だとか…
早速入れてみました

RDP_v70

RDP_v70

使ってみての感想
マルチメディアリダイレクト(WMPでの再生処理をクライアント側で行う)はQVGA以下ならそこそこスムーズという具合で、あまり実用的ではありませんでした
ただ、クライアントが945GMS(DX9まで)なので最近のGMA4500MHD(DX10対応)などや回線次第では大分違うかもしれません
#そもそも有効になっていたのか…? マルチメディアリダイレクトの必要要件も良く分かってません;
GDI系ソフト(ブラウザとか)はフォントスムージングが有効でもかなり描画がスムーズになったと思います
とりあえずXP,VistaでRDP使ってる人はアップデートして損はないでしょう

sshfsでリモートサーバのディレクトリをマウント

2月 2nd, 2010

sshfsは文字通りssh通信によるファイルシステムで、
マウントする側にsshfsをインストールするだけでマウントされる側はsshdさえ動いていればいいという優れもの
何よりsambaやnfsと違ってポート開放が必要ない(sshは解放済み前提)というのが強み

インストールもaptitudeで一発、使い方は

TEXT:
  1. $ sudo aptitude install sshfs
  2. $ sudo adduser local_account fuse
  3. $ newgrp fuse
  4. $ sshfs remote_account@hostname:/home/remote_account/ ~/mnt # マウント
  5. $ fusermount -u ~/mnt # アンマウント

といった感じ
ubuntu9.10で確認
adduserとnewgrpの操作でfuseグループに参加するのが重要
それからhostname側のマウントポイントはどこでもいいですが、
いきなりルートディレクトリ(/)なんかを指定するとnautilusでアクセス出来なくて不便でした
sshで暗号化されているのでレスポンスが不安でしたが、webdavより断然使える印象です
#むしろwindows環境におけるwebdavが酷すぎるというか…
環境次第では動画再生なんかも出来そうです

windowsがクライアントの場合はdokanというソフトウェアを用いてマウント出来ます
ただし7に対応してるかは分かりません(7のXPモードで動作を確認しました;)
#古いverでBSODが確認されているとのことでちょっと怖い

,

rubyでgmailの送受信をする

1月 18th, 2010

gmailはssl必須なので面倒かと思ったのですが、意外と簡単でした

まずは以下のライブラリを入れましょう
#以下はruby1.8系の場合. ruby1.9系はsmtpがssl対応してるのでtlsmailは要りません

TEXT:
  1. sudo gem install tmail tlsmail

tmailはメールをparse、tlsmailはsmtpのssl化をしてくれます

RUBY:
  1. require 'rubygems'
  2. require 'tmail'
  3. require 'tlsmail'
  4. require 'net/smtp'
  5. require 'net/pop'
  6. require 'kconv'
  7.  
  8. mail = TMail::Mail.new
  9. mail.to = 'recieve@some.domain'
  10. mail.from = 'your@gmail.com'
  11. mail.subject = '件名'.tojis
  12. mail.date = Time.now
  13. mail.mime_version = '1.0'
  14. mail.set_content_type 'text', 'plain', {'charset => 'iso-2022-jp''}
  15. mail.body = 'うんたらかんたら'.tojis
  16. Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
  17. # port = 587はtlsの場合. ruby1.9系でenable_sslしている場合はport = 465になると思われます
  18. Net::SMTP.start('smtp.gmail.com', 587, 'localhost.localdomain',
  19.                  'your@gmail.com', 'your_gmail_password') do |smtp|
  20.   smtp.sendmail(mail.encoded, mail.from, mail.to)
  21.   puts 'send mail.'
  22. end
  23.  
  24. Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE)
  25. Net::POP3.start('pop.gmail.com', 995, 'your@gmail.com',
  26.                 'your_gmail_password') do |pop|
  27.   unless pop.mails.empty?
  28.     pop.mails.each do |m|
  29.       mail = TMail::Mail.parse(m.pop)
  30.       # toutf8はterminalなんかで表示する場合. windowsならtosjis
  31.       puts "#{mail.from}:[#{mail.subject}] #{mail.body.toutf8}"
  32.     end
  33.   end
  34. end

マルチバイト文字が入るところには忘れずにtojisしないと文字化けします

windows7でhostsファイルを編集する

1月 14th, 2010

VMで動かしているwebアプリをwindowsでテストしたくなったので
VMのネット設定をNATにしてlinuxのhostsを以下のように追記
127.0.1.1 app.myhostname

windows側ではそのホスト名をVMに向けます
windows7のhostsファイルは、
C:\Windows\System32\drivers\etc
にあります
ただしメモ帳などを管理者権限で実行しないと編集出来ません
hostsはVMのIPアドレスで追記します
192.168.128.128 app.myhostname

編集したらブラウザから設定したホスト名でアクセスできるか確認
=> http://app.myhostname/
無事表示されれば完了