なんか、aptitudeのほうが安全・安心らしい。
が、いままで apt-get でインストールしまくっていた。
乗り換えできるのか調べてみたが、どうやら(おそらく)
パッケージ管理はどちらも apt で行っていて、削除する
際のパッケージ依存チェックなどが強力なのが aptitude
なだけのよう。
実際、apt-get でインストールしたパッケージを aptitude show
で確認してみるとインストール済みとなっていたし。
気にすることはなさそう。(たぶん)
これからは aptitude で作業を行おう。
以上。
2010年6月8日火曜日
2010年6月7日月曜日
Ubuntu 10.04 Ctrl+Space の入力切替をつぶす
eclipse や emacs を使っていると
Ctrl+Space
ってよく使うのに、これをやると入力切替になってしまう。
なので以下の方法で潰す。
ubuntu 9.10 から SCIM から IBus になったらしい。
以上。
Ctrl+Space
ってよく使うのに、これをやると入力切替になってしまう。
なので以下の方法で潰す。
- システム > 設定 > IBus の設定 を選択
- 一般タブの切り替え:欄のリストを選択
- Ctrl+space を選んで削除ボタンを押す
ubuntu 9.10 から SCIM から IBus になったらしい。
以上。
ubuntu 10.04 で conky 最前面表示の対処
家で使用している PC がそろそろ 8 年くらいになるのかな?
結構古さを感じるようになってきたので、ubuntu 10.04 に鞍替えした。
今までは VMware でしか使ってなかったが、クライアント PC として正式に利用してみると結構好印象。デスクトップはかなりカスタマイズできるし、古い PC なんでドライバ類もそろってる。
で、conky をインストールし、自動起動の設定をしてみたが、常に最前面に表示される。ググってみたら対処方法のってたけど、家では解決しなかったので補足事項を追記。
まず、他のサイトと同じようにシェルを作成する。
ファイルの内容を以下のように設定
他のサイトではこのシェルを.profileに記述するようにしていたが家では改善されなかった。
なので、家ではこのシェルを自動起動の設定に追加した。
Compiz よりも Conky が先に起動するとマズイらしいが、家ではsleep 分待った後にしっかり
Compiz > Conky の順番で起動しているようだったので意味がなかった。
sleep の時間は環境によってマチマチと思うので臨機応変に変更が必要。
私は 60 秒もまてるほどのんびりしてなかったので 10 秒にした(笑)
結構古さを感じるようになってきたので、ubuntu 10.04 に鞍替えした。
今までは VMware でしか使ってなかったが、クライアント PC として正式に利用してみると結構好印象。デスクトップはかなりカスタマイズできるし、古い PC なんでドライバ類もそろってる。
で、conky をインストールし、自動起動の設定をしてみたが、常に最前面に表示される。ググってみたら対処方法のってたけど、家では解決しなかったので補足事項を追記。
まず、他のサイトと同じようにシェルを作成する。
$ cd
$ mkdir .autoexec
$ cd .autoexec
$ vi conky-start
ファイルの内容を以下のように設定
#!/bin/sh
sleep 10
/usr/bin/conky &
他のサイトではこのシェルを.profileに記述するようにしていたが家では改善されなかった。
なので、家ではこのシェルを自動起動の設定に追加した。
Compiz よりも Conky が先に起動するとマズイらしいが、家ではsleep 分待った後にしっかり
Compiz > Conky の順番で起動しているようだったので意味がなかった。
sleep の時間は環境によってマチマチと思うので臨機応変に変更が必要。
私は 60 秒もまてるほどのんびりしてなかったので 10 秒にした(笑)
2010年5月28日金曜日
ThreadPoolExecutorの挙動
本職Javaで Thread を管理する仕組みを作成することに。
Java 5 なので、まよわず ThreadPoolExecutor を利用することに。
んで、ハマった挙動についてメモ。
ThreadPoolExecutor はシンプルな FIFO (LIFO) を提供してくれるものと
思っていたが、実はそうではない。ハマりどころはcorePoolSizeとmaximumPoolSizeの設定値と指定する Queue のサイズによっては
シンプルな FIFO(LIFO) にはならないということ。
Javadoc からすると、
とある。なので、
とかで Executor を作ったら、通常は 3 つ。Queue があふれてきたら、最大 5 つで動作するという認識だった。
この認識は正解で、最初は thread 3 つで稼働。thread 3 つが埋まると、キューイングされていき、最大キューイング数に達すると thread が増えていった。
が、thread が増えた際に処理されるキューが FIFO ではなかった。
何が処理されたかというと、キューイングであふれた新着 JOB だった。
挙動をまとめると、
FIFO ではないでしょ?
Java 屋なんだけど、初めて Java の記事をのっけた気がする。。。
以上。
Java 5 なので、まよわず ThreadPoolExecutor を利用することに。
んで、ハマった挙動についてメモ。
ThreadPoolExecutor はシンプルな FIFO (LIFO) を提供してくれるものと
思っていたが、実はそうではない。ハマりどころはcorePoolSizeとmaximumPoolSizeの設定値と指定する Queue のサイズによっては
シンプルな FIFO(LIFO) にはならないということ。
Javadoc からすると、
- corePoolSize
- 通常使う thread の数。
- maximumPoolSize
- thread の最大数
とある。なので、
corePoolSize = 3
maximumPoolSize = 5
とかで Executor を作ったら、通常は 3 つ。Queue があふれてきたら、最大 5 つで動作するという認識だった。
この認識は正解で、最初は thread 3 つで稼働。thread 3 つが埋まると、キューイングされていき、最大キューイング数に達すると thread が増えていった。
が、thread が増えた際に処理されるキューが FIFO ではなかった。
何が処理されたかというと、キューイングであふれた新着 JOB だった。
挙動をまとめると、
- job 到着時、通常 thread が開いていたら即座に thread 生成。
- 通常 thread が埋まっている場合、キューイング
- 通常 thread が埋まっているかつ、キューイングも埋まっている場合、新着 Job を 新規 thread 生成で実行。
- MAX thread まで埋まるかつ、キューイングが一杯の場合、execute 時にエラーを吐く。
- 新着 Job がこなくて、thread が空くと、キューの先頭 Job が処理される。
FIFO ではないでしょ?
Java 屋なんだけど、初めて Java の記事をのっけた気がする。。。
以上。
2010年5月27日木曜日
VMWare チューニング
Java開発(仕事)とRails(趣味)は ubuntu で行っている。
メインはWindowsだが、会社のルール上別 OS に切り替えるのは厳しいため、
VMWare で ubuntu を動かしている。
ほとんどはターミナル経由でCUIなのだが、Eclipseを使いたくなり
GUI で操作し始めたのだが、死ぬほど遅い。
いちいち固まる。Windowsも固まる。
なのでチューニングを調べたらあった。
参考:DJ_SATORUの研究日誌
同じように .vmx ファイル上に
を記述したら劇的に変わった。
もっと早くにやるんだった。
メインはWindowsだが、会社のルール上別 OS に切り替えるのは厳しいため、
VMWare で ubuntu を動かしている。
ほとんどはターミナル経由でCUIなのだが、Eclipseを使いたくなり
GUI で操作し始めたのだが、死ぬほど遅い。
いちいち固まる。Windowsも固まる。
なのでチューニングを調べたらあった。
参考:DJ_SATORUの研究日誌
同じように .vmx ファイル上に
mainMem.useNamedFile = "FALSE"
MemTrimRate = "0"
を記述したら劇的に変わった。
もっと早くにやるんだった。
2010年5月14日金曜日
Rails(3beta3) で国際化(I18n) その1
Rails3 で国際化を試していく。
自分の中でもあやふやだった部分を潰していく。(ブラウザの言語設定は本当に参照できないのかとか)
テスト用の MVC を生成して確認していく。
ブラウザの言語設定で判定する場合
HTTP_ACCEPT_LANGUAGE を参照する。
URL で判定する場合
URL パラメータで判定する場合
ロケールの選択は上記URL で判定する場合 と同様で before_filter で行う。
rails で生成する URL には自動で現在設定されているロケールを付け足す。
routes は普通の設定で問題ない。(ってかこっちじゃないと動かない)
ドメインから判定する方法もあるらしいが、com などだったらどうするんだろう?
と、いうことでドメインはぱす。
RESTful で考えると URL か URL Param になる。
が、やっぱりブラウザの言語設定で判断したいかな。
参考
http://guides.rubyonrails.org/i18n.html
自分の中でもあやふやだった部分を潰していく。(ブラウザの言語設定は本当に参照できないのかとか)
テスト用の MVC を生成して確認していく。
$ rails g scaffold state code:string, name:string
ブラウザの言語設定で判定する場合
HTTP_ACCEPT_LANGUAGE を参照する。
# app/controllers/application_controller.rb
before_filter :set_locale
def set_locale
I18n.locale = request.env['HTTP_ACCEPT_LANGUAGE'].split(",").first
end
URL で判定する場合
# app/controllers/application_controller.rb
before_filter :set_locale
def set_locale
I18n.locale = params[:locale]
end
# config/routes.rb
scope "/:locale" do
map.resources :states
end
$ rake routes
GET /:locale/states(.:format) {:action=>"index", :controller=>"states"}
states POST /:locale/states(.:format) {:action=>"create", :controller=>"states"}
new_state GET /:locale/states/new(.:format) {:action=>"new", :controller=>"states"}
GET /:locale/states/:id(.:format) {:action=>"show", :controller=>"states"}
PUT /:locale/states/:id(.:format) {:action=>"update", :controller=>"states"}
state DELETE /:locale/states/:id(.:format) {:action=>"destroy", :controller=>"states"}
edit_state GET /:locale/states/:id/edit(.:format) {:action=>"edit", :controller=>"states"}
URL パラメータで判定する場合
ロケールの選択は上記
rails で生成する URL には自動で現在設定されているロケールを付け足す。
# app/controllers/application_controller.rb
def default_url_options(options={})
{ :locale => I18n.locale }
end
routes は普通の設定で問題ない。(ってかこっちじゃないと動かない)
# config/routes.rb
map.resources :states
ドメインから判定する方法もあるらしいが、com などだったらどうするんだろう?
と、いうことでドメインはぱす。
RESTful で考えると URL か URL Param になる。
が、やっぱりブラウザの言語設定で判断したいかな。
参考
http://guides.rubyonrails.org/i18n.html
2010年5月12日水曜日
ubuntu 10.04 で Ruby on Rails(環境構築編)2
$ rails example
$ cd example
$ rails g scaffold test code:string name:string
$ rake db:migrate
を実行後、config/application.rb をつついて
$ rails s
を実行し、http://localhost:3000/tests にアクセスすると
なにやら怪しげなエラーが発生した。
google先生に質問したところ、英語で
「1.9.1 は非サポートなんで、1.9.2 を使ってね」
と、いうありがたい回答をいただいた。
なのでまた環境構築しないと。。。
□ruby1.9.2のインストール準備
$ sudo apt-get install subversion
$ sudo apt-get install autoconf
□ruby1.9.2のインストール
$ rvm install ruby-head
ruby1.9.2はheadからインストールしないと、rails3は動かない。
preview1では実際 scaffold できなかった。(ruby BUG)
以上。
2010年5月10日月曜日
ubuntu 10.04 で Ruby on Rails(環境構築編)
rvm で ruby をインストールするとすさまじく楽勝。
ただし、事前セットアップがかなり必要なため、そこをメモしておく。
* よく分からないがおそらく ruby インストール前にインストールしておく必要アリ。
□事前セットアップ
最新が入っていますといわれるものは無視する。
上記パッケージをすべてインストールした状態で
$ rvm install 1.9.1
とかする。
□rails(3 beta3) インストール
これで rails3 beta3 が完動する。(rails cも含めて)
もちろん rails g scaffold も動く。
rvm さまさまである。
自力でインストールした際は GEM_PATH の設定や、bindle のエラーなどではまりまくったがすんなり動くところまでたどり着いた。
明日から rails3 使ってみよう!
以上。
ただし、事前セットアップがかなり必要なため、そこをメモしておく。
* よく分からないがおそらく ruby インストール前にインストールしておく必要アリ。
□事前セットアップ
$ sudo apt-get install gcc
$ sudo apt-get install build-essential
$ sudo apt-get install bison byacc gperf
$ sudo apt-get install zlib1g-dev
$ sudo apt-get install libreadline5 libreadline5-dev
$ sudo apt-get install libncurses5 libncurses5-dev
$ sudo apt-get install libssl-dev
$ sudo apt-get install sqlite3 libsqlite3-dev
$ sudo apt-get install curl
$ sudo apt-get install git-core
最新が入っていますといわれるものは無視する。
上記パッケージをすべてインストールした状態で
$ rvm install 1.9.1
とかする。
□rails(3 beta3) インストール
$ gem install rails --pre
$ gem install sqlite3-ruby
これで rails3 beta3 が完動する。(rails cも含めて)
もちろん rails g scaffold も動く。
rvm さまさまである。
自力でインストールした際は GEM_PATH の設定や、bindle のエラーなどではまりまくったがすんなり動くところまでたどり着いた。
明日から rails3 使ってみよう!
以上。
ubuntu 10.04 で Ruby(環境構築編)
複数バージョンの Ruby が簡単に切り替えられる rvm を使う。
□必要なもののインストール
1.git
2.curl
3.zlib(開発環境)
□rvm のインストール
1.github からソースのダウンロード
□インストール後に表示されるメッセージに従い、.bashrc を変更
先頭行に追加
if [[ -s /home/◯◯/.rvm/scripts/rvm ]] ; then source /home/◯◯/.rvm/scripts/rvm ; fi
□1.9.1インストール
□1.8.7インストール
各バージョンを利用する場合は
すばらしいな、これ。
□必要なもののインストール
1.git
$ sudo apt-get install git-core
2.curl
$ sudo apt-get install curl
3.zlib(開発環境)
$ sudo apt-get install zlib1g-dev
□rvm のインストール
1.github からソースのダウンロード
$ mkdir -s .rvm/src
$ cd .rvm/src
$ git clone git://github.com/wayneeseguin/rvm.git
$ cd rvm
$ ./install
□インストール後に表示されるメッセージに従い、.bashrc を変更
$ vi ~/.bashrc
先頭行に追加
if [[ -s /home/◯◯/.rvm/scripts/rvm ]] ; then source /home/◯◯/.rvm/scripts/rvm ; fi
□1.9.1インストール
$ rvm install 1.9.1
□1.8.7インストール
$ rvm install 1.8.7
各バージョンを利用する場合は
$ rvm 1.9.1
すばらしいな、これ。
2010年5月6日木曜日
ubuntu 10.04 を VMware へインストール
VMware player に ubuntu 10.04 を新規簡易インストールした際
ログイン画面で文字入力ができなくなった。
ググってみたが話題には上がってなかったためメモ。
原因は VMware へインストールする際のバグらしい。
以下の方法で対処。
1.ログイン画面の右下で再起動を選択。
2.再起動中、shift キーをずっと押し続けておく。
(GRUB ブートローダを起動するため)
3.recovery mode を選択。
4.Recovery Menu の root(Drop to root shell prompt) を選択。
5./etc/default/console-setup を vi で開いて編集。
以下の項目を編集
XKBMODEL="hhk" # SKIP
XKBLAYOUT="jp,us" # us
XKBVARIANT="," # U.S. English
XKBMODEL が SKIP なのが問題のよう。ここだけ hhk にしても大丈夫。
残りの項目はログイン時のデフォルト設定っぽい。
XKBLAYOUT => keybord
XKBVARIANT => language
google 先生が答えてくれなかったのはたぶん世間一般は
9.10 からアップデートしているんだろうな。
以上。
ログイン画面で文字入力ができなくなった。
ググってみたが話題には上がってなかったためメモ。
原因は VMware へインストールする際のバグらしい。
以下の方法で対処。
1.ログイン画面の右下で再起動を選択。
2.再起動中、shift キーをずっと押し続けておく。
(GRUB ブートローダを起動するため)
3.recovery mode を選択。
4.Recovery Menu の root(Drop to root shell prompt) を選択。
5./etc/default/console-setup を vi で開いて編集。
以下の項目を編集
XKBMODEL="hhk" # SKIP
XKBLAYOUT="jp,us" # us
XKBVARIANT="," # U.S. English
XKBMODEL が SKIP なのが問題のよう。ここだけ hhk にしても大丈夫。
残りの項目はログイン時のデフォルト設定っぽい。
XKBLAYOUT => keybord
XKBVARIANT => language
google 先生が答えてくれなかったのはたぶん世間一般は
9.10 からアップデートしているんだろうな。
以上。
登録:
投稿 (Atom)