最新の日記 日記一覧 ユーザー登録 ログイン ヘルプ

xxxKazuha Logs このページをアンテナに追加 RSSフィード

2007-07-21

[]自宅の鍵を忘れた

自宅の鍵を京田辺研究室の机の中に入れたまま、忘れて帰ってきてしまった。。。

気付いたのは出町柳の自宅の前、、遅いって!気付け、俺!!


もー23時とかだし、レポートしなきゃいけないし、どうしようかなーと思っていたら、入居のときに安心サポートとかいうのに入っていたのを思い出した。

‥が、「ディンプルキーにサムターン回し防止カバーがしてあるものは開けられません」とな。意味ないなー。


ホテルの宿泊費を補償してくれるとは言ってくれたけど、どうせ朝には鍵取りに研究室行かないといけないので、結局研究室に戻ってレポートの続きしました。

2日連続泊まりとか、普通にしんどい。もう嫌だorz


これからは寒梅館のロッカーにスペアキー入れとこ。。。

2007-07-15

[]Railsはproductionモードで運用するべき

あまり日本語で書かれた文献がなかったのでメモ。


Ruby on Railsはdevelopment、test、productionの3つのモードで動作します。

それぞれの名前の通り、developmentは開発モード、testはテストモード、productionは運用モードになります。


Railsを使っている皆さん、これらのモードはそれぞれデータベースを切り替えるだけだと思っていませんか??

実は違います。

それぞれのモードで、Webアプリケーションの挙動が異なります。


実は、あるWebアプリケーションを先日までdevelopmentモードで運用していました。

そしたら、サーバのメモリがどんどん減っていくんですよね。

そして、残り数十MBになったメモリの減少は止まるのですが、そのWebアプリケーションが起動しなくなりますw


理由は、developmentモードでは、HTTPリクエストがある度にサーバ側でControllerのインスタンスを生成するから。

開発時にはソースコードを頻繁に修正するわけで、その修正を即座にアプリケーションに反映させるためにはリクエストの度に新しいインスタンスを作らなければ無理、、ということで、こういう仕様になってます。


productionモードでは、サーバ起動時に生成したインスタンスオブジェクトを使い回すので、何度リクエストがきてもメモリは減りません。

その代わり、productionモードではソースコードを修正してもその変更はWebサーバ再起動するまで反映されません。


ということで、皆さん、Railsアプリケーションの運用時には必ずproductionモードを使いましょう。

僕みたいに横着すると、メモリがどれだけあっても足りずサーバが死にます。

たった2GB程度のメモリなんて、あっという間に食い尽くされてしまいますw


開発中はdevelopmentモードなので、開発用マシンの動作が段々と重くなっていきます。

そういうときは、そのPCを再起動してみるとリークしていた部分が開放されるので反応速度が元に戻ります。


ちなみに、developmentモードとproductionモードで一部メソッドの挙動が変化しますw

例えば、datetime Helperとか。。。

developmentモードの意味ないじゃんww


【関連情報】

2007-07-12

[]Tracに新しいプロジェクトを追加するときのコマンド

うちの研究室ではプロジェクト管理 & バグトラッキングツールにTracを利用しています。

引継ぎのこともあるので、新しいプロジェクトを作成するときのコマンドをメモしておきます。

[project]とか[user]とか[password]とかは、その時々に応じて具体的に書き換えてください。

結構設定とか適当だったりするので(汗)、必要に応じて改変してください。


# svnadmin create --fs-type fsfs /srv/svn/[project]

Basic認証の場合 → # htpasswd -bcm /srv/svn/[project]/.htpasswd [user] [password]

Digest認証の場合 → # htdigest -c /srv/svn/[project]/.htdigest [relm] [user] → パスワード入力

# trac-admin /srv/trac/[project] initenv → プロジェクト情報を入力

# trac-admin /srv/trac/[project] permission remove anonymous BROWSER_VIEW CHANGESET_VIEW CONFIG_VIEW GANTT_VIEW FILE_VIEW LOG_VIEW MILESTONE_ADMIN MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW REPORT_ADMIN REPORT_CREATE REPORT_DELETE REPORT_MODIFY REPORT_SQL_VIEW REPORT_VIEW ROADMAP_ADMIN ROADMAP_VIEW SEARCH_VIEW TICKET_ADMIN TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW TRAC_ADMIN WIKI_ADMIN WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW

# trac-admin /srv/trac/[project] permission add authenticated BROWSER_VIEW CHANGESET_VIEW CONFIG_VIEW GANTT_VIEW FILE_VIEW LOG_VIEW MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW REPORT_CREATE REPORT_DELETE REPORT_MODIFY REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW

trac-admin /srv/trac/[project] permission add ynakamura GANTT_ADMIN MILESTONE_ADMIN REPORT_ADMIN ROADMAP_ADMIN TICKET_ADMIN TRAC_ADMIN WIKI_ADMIN

# vim /srv/trac/[project]/conf/trac.ini

# -*- coding: utf-8 -*-

[account-manager]
htdigest_realm = [project]
password_file = /srv/svn/[project]/.htdigest
password_store = HtDigestStore

[attachment]
max_size = 262144
render_unsafe_content = false

[browser]
downloadable_paths = /trunk, /branches/*, /tags/*
hide_properties = svk:merge

[changeset]
max_diff_bytes = 10000000
max_diff_files = 0
wiki_format_messages = true

[header_logo]
alt =
height = -1
link = http://example.org/
src = common/trac_banner.png
width = -1

[logging]
log_file = trac.log
log_level = DEBUG
log_type = file

[mimeviewer]
enscript_modes = text/x-dylan:dylan:4
enscript_path = enscript
max_preview_size = 262144
mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
php_path = php
silvercity_modes =
tab_width = 8

[notification]
always_notify_owner = false
always_notify_reporter = false
always_notify_updater = true
mime_encoding = base64
smtp_always_bcc =
smtp_always_cc =
smtp_default_domain =
smtp_enabled = false
smtp_from = trac@localhost
smtp_password =
smtp_port = 25
smtp_replyto = trac@localhost
smtp_server = localhost
smtp_subject_prefix = __default__
smtp_user =
use_public_cc = false
use_short_addr = false
use_tls = false

[project]
descr = [project]
footer = Visit the Trac open source project at<br /><a href="http://trac.edgewall.org/">http://trac.edgewall.org/</a>
icon = common/trac.ico
name = [project]
url = [server url]

[search]
min_query_length = 3

[ticket]
default_component =
default_milestone =
default_priority = major
default_type = defect
default_version =
restrict_owner = false

[ticket-custom]
dependencies = text
dependencies.label = 依存タスクNo
dependencies.value =
due_assign = text
due_assign.label = 開始予定日
due_assign.value = YYYY/MM/DD
due_close = text
due_close.label = 終了予定日
due_close.value = YYYY/MM/DD
include_gantt = checkbox
include_gantt.label = ガントチャートに載せるか否か
include_gantt.value =

[timeline]
changeset_long_messages = false
changeset_show_files = 0
default_daysback = 30
ticket_show_details = false

[trac]
authz_file =
authz_module_name =
base_url =
check_auth_ip = true
database = sqlite:db/trac.db
default_charset = iso-8859-15
default_handler = WikiModule
htdocs_location =
ignore_auth_case = false
mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search
metanav = login,logout,settings,help,about
permission_store = DefaultPermissionStore
repository_dir = /srv/svn/[project]
repository_type = svn
timeout = 20

[wiki]
ignore_missing_pages = false
split_page_names = false

# vim /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
[...]
<Location /repos/[project]>
   DAV svn
   SVNPath /srv/svn/[project]
   
   AuthType Digest
   AuthName [project]
   AuthDigestProvider file
   AuthUserFile /srv/svn/[project]/.htdigest
   Require valid-user
   
   # Limit write permission to list of valid users.
   #<LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL
   #</LimitExcept>
</Location>
[...]

# chown -R apache.apache /srv

# service httpd restart


さて、来年のサーバ管理は誰が何台引き継ぐのか…w


【関連情報】

2007-06-27

[]意味のわからない予定表

f:id:xxxKazuha:20070628052626j:image


ちょ、今週埋まりすぎやって。。。

マーケ、ヤバスギ。。。orz

2007-04-23

[]Amazonクレジットカード

還元率1%!素晴らしい!!

年間100万円くらいはクレジットカードで支払うので、1万円分くらい返ってきますね。


早めに乗り換えなきゃなー。


【関連情報】

2007-04-12

[]ウイルスセキュリティZEROを入れてみた

インストールしたらWindowsにログインできなくなったorz

いや、入れる前にウイルスバスターを消さなかったのが悪いんだけどさ。。。


セーフモードで入って元に戻して、何とかログインできるようになったけど、なんか動作が不安定。

久々にOS入れ直すかー…。


【関連情報】

2007-03-25

[]引越します

明日の朝、京田辺市から京都市内へ引越します。

まだ引越準備が終わってないんだけど‥ま、何とかなるさw


これからゴールデンウィーク頃までは大学からしかインターネットに接続できません。

自宅に設置しているサーバも停止します。


【関連情報】