Firefoxが4GBもメモリ使ってる・・・
|\\ //|
: ,> `´ ̄`´ < ′ . V V こんなにメモリを使うなんて、 . i{ ● ● }i 訳が分からないよ。 八 、_,_, 八 . / 个 . _ _ . 个 ', _/ il ,' '. li ',__
冗談抜きで、なんでこんなにメモリ使ってるんだろうね??
先日作成したTwitterの地震速報を受信してMacのGrowlへ通知するツールを作り直しました。
仕組み的には前回とたいして変わっていませんが、以下の機能を追加しました。
前回のツールも今回のツールも、Macのスリープ復帰時にTwitterとの再接続が出来ないという
致命的な問題があります。
この問題への対策としてツールがSIGHUPを受信すると再接続を行うようにしました。
ですので、スリープ復帰後にターミナルから kill -HUP `cat ~/hogehoge.pid` てな感じで
SIGHUPを送信するとサーバーへの再接続が行われます。
スリープ復帰の度に手動入力するのは面倒なので sleepwatcherデーモン等を使って
スリープ復帰時にkill -HUPを自動実行すると良いのではないかと思います。
#!/usr/bin/ruby # -*- coding: utf-8 -*- require 'rubygems' require 'tweetstream' require 'ruby-growl' require 'webrick' # 監視するTwitterアカウント (どちらか片方で十分だと思う) # @earthquake_jp (4104111) # http://labs.transrain.net/products/earthquake_jp/ # @eew_jp (16052553) # http://quake.twiple.jp/ # 複数の監視対象に対応するため配列に格納 # ID番号 id = [4104111,16052553] # アカウント名 id_name = ["earthquake_jp","eew_jp"] # 自分のTwitterのアカウント $USERNAME = "username" $PASSWORD = "password" ### tweetの受信およびGrowlの送信処理 ################################# def EarthquakeNotification(id,id_name) # SIGHUPを受信したらメソッドを終了する Signal.trap(:HUP){return} # Growlへの接続をオープンする g = Growl.new("localhost","Earthquake Notification",["Notification"],nil,"") # TweetStreamはデーモンではなくクライアントとして動作させる TweetStream::Client.new($USERNAME, $PASSWORD).follow(*id) do |status| # screen_nameが監視対象と同一か判定する、同一なら通知を行なう。 if id_name.include?(status.user.screen_name) then g.notify("Notification","地震速報", "** #{status.user.screen_name} ** \n#{status.text}\n") end end end ### 本体 ############################################################## # PIDファイルの名前を生成 "HOME/スクリプト名.pid" pid_name = "#{File.expand_path("~")}/#{File.basename(__FILE__,'.*')}.pid" # TweetStreamでのデーモン化は行なわず、自力でのデーモン化を行なう WEBrick::Daemon.start do # PIDファイルの作成 File.open(pid_name,"w") do |file| file.puts(Process.pid) end # 再接続を行うためにループ処理で通信系を呼び出す loop do EarthquakeNotification(id,id_name) end end
Macで緊急地震速報を受信できるアプリを探してみたのですが、
見つからなかったので地震速報モドキを自作してみました。
Twitterに流れてる地震速報を拾ってGrowlに通知するという単純なモノです。
単純な作りですが、地震速報が全く受信できないよりはマシなのでしばらく運用してみます。
#!/usr/bin/ruby # -*- coding: utf-8 -*- require 'rubygems' require 'tweetstream' require 'ruby-growl' # 監視するTwitterアカウントのID # http://labs.transrain.net/products/earthquake_jp/ # ID番号 id = 4104111 # アカウント名 id_name = "earthquake_jp" # 自分のTwitterのアカウント $USERNAME = "username" $PASSWORD = "password" g = Growl.new("localhost","ruby-growl",["ruby-growl Notification"],nil,"") # tweet監視はデーモンとして実行 fork do Process.setsid fork do TweetStream::Client.new($USERNAME, $PASSWORD).follow(id) do |status| if status.user.screen_name == id_name then g.notify("ruby-growl Notification","緊急地震速報","#{status.text}") end end end end
Twitterからの情報取得はこちらのブログに書かれているコードを利用させていただきました。
地震情報はこちらのアカウントを監視させていただきました。
有用な情報をネットに公開していただきありがとうございます。
1個前の記事で技術メモを書いちゃったりしてますが、ReadyNAS Ultra2を購入しました。
今まではバッファローのNASを使ってたのですが、旧型のため遅く
R/W共に10MB/s前後しか出ない状況でした。
遅くて使い勝手が悪かったのを我慢しつつ使ってきましたが、
NASの空き容量も少なくなってきたので容量追加をかねて購入しちゃいました。
QNAPにするかReadyNASにするか結構悩んだんですが、ReadyNASの新製品である
Ultra2が安くて高スペックなのでこいつに決めてみました。
QNAPの同一価格帯の製品がARM系CPUに対して、Ultra2はAtomを採用してたりします。
ちょっと苦労しましたが初期セットアップも完了したのでファイル転送の速度を測ってみたところ、
単純なファイルコピーだとReadが100MB/s前後、Writeが70MB/sでました。
今までが遅かっただけに、この速度は快適すぎて涙が出ます(゚∀゚)
CrystalDiskMarkで測定するとReadが2MB/sくらいしか出ない不思議な状況ですが、
実運用では速度が出てますので問題なしとします。
ちなみにMacのAFP接続でも同程度の速度がでてますので、Mac miniの内蔵HDDより速いかもしれません。
Macではほぼ全てのフォントにアンチエイリアスがかかるため、
Windowsとは文字の視認性がかなり異なっています。
このため文字が大量に表示されるアプリではかなりの違和感を感じたりします。
そして、文字の表示量が多いアプリといえばブラウザです。
出来るだけ違和感を軽減しつつ、視認性が高い環境を作りたいのですが、
これがなかなか難しい。
リコーのHG PゴシックBでの表示です。
このフォントはMS Pゴシック互換(と言うかOEM元)のフォントで、SunのStarSuiteに付属のフォントです。
MS PゴシックをMacで使った場合と同じ表示ですが、WindowsでのMS Pゴシックでの
表示とはかなり違うことが分かります。
少し太字気味で字の細かい部分が潰れてしまい、視認性にやや難があります。
次はMacでの標準フォントであるヒラギノ角ゴシックでの表示です。
標準だけあって視認性はかなり高いのですが、行間が広いためやや違和感があります。
また行間が広いためMS Pゴシックに比べるとページ内の情報量が少なくなっています。
これは、IPA Pゴシックでの表示です。
視認性はかなり良いのですが、ビットマップフォントに比べて字が太いので、
文字密度が高いページでは目が疲れてしまいます。
ほんの少しだけ行間が広がると良いのですが…
最後はIPAexゴシックです。
行間はMS PゴシックやIPA Pゴシックと同程度ですが、日本語にはプロポーショナル処理が行われていないため、
高密度すぎて見難いという状況は改善しています。
視認性も良く使い勝手も良さそうなのですが、アスキーアートや顔文字が含まれたページだと
イマイチな表示になってしまいます。これはヒラギノ角ゴも同様なのですが…
どのフォントも帯に短し襷に長しと言う感じで、なかなか最適解に出会えません。
どこかで妥協しなければならないのですが…どうしようかなぁ(‘A`)
Snow Leopardにしてから今までずっと文字が薄いと思ってたんですが、
純正品以外の液晶モニタを使うとLCD向けのアンチエイリアス
(サブピクセルレンダリング)が無効になると今頃知りました。
もっと早く気がつけよと自分でも思いますが・・・
Leopardの頃は純正以外のモニタでもサブピクセルレンダリング出来たのに、
なんで制限かけたんでしょうね??
GUIからの設定は消えちゃいましたが、CLIからは設定できるらしいので、
さっそく設定してみました。
defaults -currentHost write -globalDomain AppleFontSmoothing -int 2
ターミナルを開いて上記のコマンドを入力してログインし直せば設定完了です。
うん、凄く見やすくなった\(^_^)/
昨年の今頃に購入したMacですが、最近やっと本格稼働させ始めました。
今まではMacBookって画面狭いし、タッチパッドも使いにくし……
って事で時々しか使ってなかったのですが。
でもふと思い立って、KVMスイッチ使ってメイン環境のモニタ・キーボード
マウスを繋いでみたら非常に快適なことに気がついてしまったのですw
文字の表示は綺麗だし、UNIX代わりにも使えるし、特に不都合も無いし、ATOKも買っちゃいましたので、
メインマシンがWinXPからMacに移行しつつある状況だったりします。
取り合えずMacとして使うのではなく、
格好良いGUIの使えるUNIX ワークステーションとして
使っていこうと考えています。
まずは、使いやすい環境を整えるために、カスタマイズ等の
情報とソフトウェアの情報を集めねば。
良い情報サイトがあったら誰か教えてください。