<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16793986</id><updated>2012-01-23T08:59:07.012+09:00</updated><category term='apache'/><category term='ruby'/><category term='linux'/><category term='Impression'/><category term='technology'/><category term='vim'/><category term='learning'/><category term='work'/><category term='web'/><category term='gentoo'/><title type='text'>+++YOGOLET+++</title><subtitle type='html'>This Blog is only Japanese.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16793986.post-2046127587500726766</id><published>2009-04-15T23:46:00.004+09:00</published><updated>2009-04-16T00:06:29.293+09:00</updated><title type='text'>Redmineが素敵すぎる(3)</title><content type='html'>久しぶりの更新です。&lt;br /&gt;旅に出て現実逃避しておりました。&lt;br /&gt;&lt;br /&gt;さて、Redmineを使い込んでいってる訳ですが、色んなtips？&lt;br /&gt;意外を知られてないような便利機能を載せようかなと。&lt;br /&gt;&lt;br /&gt;1. メールでチケット登録&lt;br /&gt;MTAに設定するか、専用のメールボックスが必要ですが、これは本当に便利。&lt;br /&gt;メールのタイトルがチケットのタイトルとなり、本文をそのまま載せてくれます。&lt;br /&gt;添付はチケットに添付されます。&lt;br /&gt;その時、メールの最後に"Tracker: バグ"とか書くとトラッカー指定したり、&lt;br /&gt;プロジェクトを指定したり、プライオリティなどを指定できます。&lt;br /&gt;ちなみに設定しているアカウントのFromアドレスからでないと受け付けません。&lt;br /&gt;(SPAM対策もばっちり？)起票者はFromアドレスのアカウントになります。&lt;br /&gt;&lt;br /&gt;他のBTSと協調したり、サービス監視システムからチケットを起票したりできるので、&lt;br /&gt;激しく便利です。&lt;br /&gt;&lt;br /&gt;参照：&lt;a href="http://www.redmine.org/wiki/redmine/RedmineReceivingEmails"&gt;RedmineReceivingEmails&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. メールでチケットにコメントする&lt;br /&gt;これも設定が必要ですが、チケットの変更通知に返信するだけでコメントできます。&lt;br /&gt;プロジェクトのメーリングリストなんかもういらないんじゃ、、&lt;br /&gt;って思う機能ですね。&lt;br /&gt;&lt;br /&gt;3. 参照番号を付ける&lt;br /&gt;チケット、wiki、文書などで、&lt;br /&gt;&lt;br /&gt;私女だけど小太りのオトコが好き[1]&lt;br /&gt;....&lt;br /&gt;fn1. ただしイケメンに限る&lt;br /&gt;&lt;br /&gt;としておくと、[1]がリンクになり、fn1に参照リンクが張られます。&lt;br /&gt;&lt;br /&gt;4.ショートカットキー&lt;br /&gt;&lt;br /&gt;痒い所に手が届くなー&lt;br /&gt;&lt;br /&gt;Shift+Alt+7 新しいチケット&lt;br /&gt;Shift+Alt+E wiki編集 or wiki編集エリアにフォーカス移動&lt;br /&gt;Shift+Alt+R wiki編集時 プレビュー&lt;br /&gt;Shift+Alt+F 検索フィールドにフォーカス移動&lt;br /&gt;&lt;br /&gt;Shift+Alt+Rはかなり使いますね。&lt;br /&gt;&lt;br /&gt;5.リポジトリの参照リンクをなにがなんでも拾う&lt;br /&gt;refs #21&lt;br /&gt;とかするのは面倒なので、#21で関連づけをして欲しいなあと。&lt;br /&gt;&lt;br /&gt;コミットメッセージ内でチケットの参照/修正で&lt;br /&gt;参照用キーワード&lt;br /&gt;に"*"を入れる事で可能。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;こんな感じでしょうか。&lt;br /&gt;個人的には0.9のプライベートチケット機能に注目しています。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-2046127587500726766?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/2046127587500726766/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=2046127587500726766&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/2046127587500726766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/2046127587500726766'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2009/04/redmine3.html' title='Redmineが素敵すぎる(3)'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-8255466211405782461</id><published>2008-10-01T02:31:00.004+09:00</published><updated>2008-10-01T02:46:49.697+09:00</updated><title type='text'>旅とカメラ</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-sJPlaqkzDs/SOJioH1XxII/AAAAAAAAAAg/2yly5o2bO60/s1600-h/olympus_e420_06_l.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_-sJPlaqkzDs/SOJioH1XxII/AAAAAAAAAAg/2yly5o2bO60/s320/olympus_e420_06_l.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5251868556904612994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;先週からGSX-R1300隼で東北へ旅に出ていました。&lt;br /&gt;バイクでの行動は機動性が命!!&lt;br /&gt;なので普段写真を撮るのはサイバーショット携帯。&lt;br /&gt;しかし、、&lt;br /&gt;&lt;br /&gt;「いい景色だなー、、(パシャ)」&lt;br /&gt;&lt;br /&gt;でも、家に帰ると画質にガッカリが多いんです。&lt;br /&gt;で、ついに買ってしまいました。デジタル一眼レフ。&lt;br /&gt;E-420とパンケーキレンズのZUIKO DIGITAL 25mm F2.8の組み合せ。&lt;br /&gt;見よこのかわええデザイン!ブラボー!&lt;br /&gt;&lt;br /&gt;「フォーサーズの規格が死にかけ？フルサイズじゃないの？」&lt;br /&gt;なんて言われそうですが、そんなもんかんけーねーよ。&lt;br /&gt;デジイチでこの大きさは今後も出てこないはず!!(多分)&lt;br /&gt;バイクで持ち運ぶのはこのサイズが限界です。&lt;br /&gt;しかし流石に携帯とは雲泥の差(当たり前だけど)&lt;br /&gt;また趣味が増えてしまった、、財布が、、でも次の旅が楽しみだ!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-8255466211405782461?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/8255466211405782461/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=8255466211405782461&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/8255466211405782461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/8255466211405782461'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/10/blog-post.html' title='旅とカメラ'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-sJPlaqkzDs/SOJioH1XxII/AAAAAAAAAAg/2yly5o2bO60/s72-c/olympus_e420_06_l.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-7979893067785797811</id><published>2008-09-06T04:03:00.006+09:00</published><updated>2008-09-06T09:57:40.360+09:00</updated><title type='text'>LDAP + Radius + EAP-PEAP + WPA2 + AirmacExpress</title><content type='html'>会社で制作サイドのレベルの低さに閉口する。&lt;br /&gt;.htaccessが動かないとか聞いて見てみると案の上改行コードがMacintosh。&lt;br /&gt;メーラーの設定ができんとか、全部のファイルがパーミッション777とか、、&lt;br /&gt;はーーーって感じっす。勘弁してくれー&lt;br /&gt;&lt;br /&gt;んでは前回の続きでRadius認証してみましょう。&lt;br /&gt;よりによってGentooです。&lt;br /&gt;&lt;br /&gt;freeradiusは最近1.xから2.xになりました。&lt;br /&gt;古いものはもうメンテされないのと、古いせいでsambaスキーマとの互換性に問題が&lt;br /&gt;あったりするので2.xをインストールします。(Samba+LDAPは既に構築しているものとする)&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;emerge -av freeradius&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;freeradiusの設定をする。まずはバックエンドとなるldapの参照先設定をします。&lt;br /&gt;&lt;pre class="code"&gt;--- etc/raddb/modules/ldap      2008-08-16 21:54:49.000000000 +0900&lt;br /&gt;+++ /etc/raddb/modules/ldap     2008-08-27 06:32:49.263608077 +0900&lt;br /&gt;@@ -30,11 +30,12 @@&lt;br /&gt;        #&lt;br /&gt;        #  Note that this needs to match the name in the LDAP&lt;br /&gt;        #  server certificate, if you're using ldaps.&lt;br /&gt;-       server = "ldap.your.domain"&lt;br /&gt;-       #identity = "cn=admin,o=My Org,c=UA"&lt;br /&gt;-       #password = mypass&lt;br /&gt;-       basedn = "o=My Org,c=UA"&lt;br /&gt;+       server = "ldaps://ldap.example.co.jp"&lt;br /&gt;+       identity = "cn=root,dc=example,dc=co,dc=jp"&lt;br /&gt;+       password = xxxxxxxx&lt;br /&gt;+       basedn = "dc=example,dc=co,dc=jp"&lt;br /&gt;        filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"&lt;br /&gt;+       base_filter = "(objectclass=account)"&lt;br /&gt;        #base_filter = "(objectclass=radiusprofile)"&lt;br /&gt; &lt;br /&gt;        #  How many connections to keep open to the LDAP server.&lt;br /&gt;@@ -76,7 +77,7 @@&lt;br /&gt;                # using ldaps (port 689) connections&lt;br /&gt;                start_tls = no&lt;br /&gt; &lt;br /&gt;-               # cacertfile    = /path/to/cacert.pem&lt;br /&gt;+               #cacertfile             = /etc/ssl/certs/example.pem&lt;br /&gt;                # cacertdir             = /path/to/ca/dir/&lt;br /&gt;                # certfile              = /path/to/radius.crt&lt;br /&gt;                # keyfile               = /path/to/radius.key&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;次にmschapの設定(optional)&lt;br /&gt;&lt;pre class="code"&gt;--- ./raddb.orig/modules/mschap 2008-08-16 21:54:49.000000000 +0900&lt;br /&gt;+++ /etc/raddb/modules/mschap   2008-08-20 03:01:09.347735788 +0900&lt;br /&gt;@@ -16,17 +16,17 @@&lt;br /&gt;        # add MS-CHAP-MPPE-Keys for MS-CHAPv1 and&lt;br /&gt;        # MS-MPPE-Recv-Key/MS-MPPE-Send-Key for MS-CHAPv2&lt;br /&gt;        #&lt;br /&gt;-       #use_mppe = no&lt;br /&gt;+       use_mppe = yes&lt;br /&gt; &lt;br /&gt;        # if mppe is enabled require_encryption makes&lt;br /&gt;        # encryption moderate&lt;br /&gt;        #&lt;br /&gt;-       #require_encryption = yes&lt;br /&gt;+       require_encryption = yes&lt;br /&gt; &lt;br /&gt;        # require_strong always requires 128 bit key&lt;br /&gt;        # encryption&lt;br /&gt;        #&lt;br /&gt;-       #require_strong = yes&lt;br /&gt;+       require_strong = yes&lt;br /&gt; &lt;br /&gt;        # Windows sends us a username in the form of&lt;br /&gt;        # DOMAIN\user, but sends the challenge response&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;認証メソッドEAPの設定をします。使用しない余計なメソッドは全部無効化します。&lt;br /&gt;&lt;pre class="code"&gt;--- /etc/raddb/eap.conf.orig    2008-08-16 21:54:48.000000000 +0900&lt;br /&gt;+++ /etc/raddb/eap.conf 2008-08-20 18:18:01.448734786 +0900&lt;br /&gt;@@ -27,7 +27,7 @@&lt;br /&gt;                #  then that EAP type takes precedence over the&lt;br /&gt;                #  default type configured here.&lt;br /&gt;                #&lt;br /&gt;-               default_eap_type = md5&lt;br /&gt;+               default_eap_type = peap&lt;br /&gt; &lt;br /&gt;                #  A list is maintained to correlate EAP-Response&lt;br /&gt;                #  packets with EAP-Request packets.  After a&lt;br /&gt;@@ -65,8 +65,8 @@&lt;br /&gt;                #  for wireless connections.  It is insecure, and does&lt;br /&gt;                #  not provide for dynamic WEP keys.&lt;br /&gt;                #&lt;br /&gt;-               md5 {&lt;br /&gt;-               }&lt;br /&gt;+               #md5 {&lt;br /&gt;+               #}&lt;br /&gt; &lt;br /&gt;                # Cisco LEAP&lt;br /&gt;                #&lt;br /&gt;@@ -80,8 +80,8 @@&lt;br /&gt;                #  User-Password, or the NT-Password attributes.&lt;br /&gt;                #  'System' authentication is impossible with LEAP.&lt;br /&gt;                #&lt;br /&gt;-               leap {&lt;br /&gt;-               }&lt;br /&gt;+               #leap {&lt;br /&gt;+               #}&lt;br /&gt; &lt;br /&gt;                #  Generic Token Card.&lt;br /&gt;                #&lt;br /&gt;@@ -94,25 +94,25 @@&lt;br /&gt;                #  the users password will go over the wire in plain-text,&lt;br /&gt;                #  for anyone to see.&lt;br /&gt;                #&lt;br /&gt;-               gtc {&lt;br /&gt;-                       #  The default challenge, which many clients&lt;br /&gt;-                       #  ignore..&lt;br /&gt;-                       #challenge = "Password: "&lt;br /&gt;-&lt;br /&gt;-                       #  The plain-text response which comes back&lt;br /&gt;-                       #  is put into a User-Password attribute,&lt;br /&gt;-                       #  and passed to another module for&lt;br /&gt;-                       #  authentication.  This allows the EAP-GTC&lt;br /&gt;-                       #  response to be checked against plain-text,&lt;br /&gt;-                       #  or crypt'd passwords.&lt;br /&gt;-                       #&lt;br /&gt;-                       #  If you say "Local" instead of "PAP", then&lt;br /&gt;-                       #  the module will look for a User-Password&lt;br /&gt;-                       #  configured for the request, and do the&lt;br /&gt;-                       #  authentication itself.&lt;br /&gt;-                       #&lt;br /&gt;-                       auth_type = PAP&lt;br /&gt;-               }&lt;br /&gt;+               #gtc {&lt;br /&gt;+               #       #  The default challenge, which many clients&lt;br /&gt;+               #       #  ignore..&lt;br /&gt;+               #       #challenge = "Password: "&lt;br /&gt;+&lt;br /&gt;+               #       #  The plain-text response which comes back&lt;br /&gt;+               #       #  is put into a User-Password attribute,&lt;br /&gt;+               #       #  and passed to another module for&lt;br /&gt;+               #       #  authentication.  This allows the EAP-GTC&lt;br /&gt;+               #       #  response to be checked against plain-text,&lt;br /&gt;+               #       #  or crypt'd passwords.&lt;br /&gt;+               #       #&lt;br /&gt;+               #       #  If you say "Local" instead of "PAP", then&lt;br /&gt;+               #       #  the module will look for a User-Password&lt;br /&gt;+               #       #  configured for the request, and do the&lt;br /&gt;+               #       #  authentication itself.&lt;br /&gt;+               #       #&lt;br /&gt;+               #       auth_type = PAP&lt;br /&gt;+               #}&lt;br /&gt; &lt;br /&gt;                ## EAP-TLS&lt;br /&gt;                #&lt;br /&gt;@@ -144,8 +144,8 @@&lt;br /&gt;                        certdir = ${confdir}/certs&lt;br /&gt;                        cadir = ${confdir}/certs&lt;br /&gt; &lt;br /&gt;-                       private_key_password = whatever&lt;br /&gt;-                       private_key_file = ${certdir}/server.pem&lt;br /&gt;+                       #private_key_password = whatever&lt;br /&gt;+                       private_key_file = ${certdir}/airmac.key&lt;br /&gt; &lt;br /&gt;                        #  If Private key &amp; Certificate are located in&lt;br /&gt;                        #  the same file, then private_key_file &amp;&lt;br /&gt;@@ -157,7 +157,7 @@&lt;br /&gt;                        #  only the server certificate, but ALSO all&lt;br /&gt;                        #  of the CA certificates used to sign the&lt;br /&gt;                        #  server certificate.&lt;br /&gt;-                       certificate_file = ${certdir}/server.pem&lt;br /&gt;+                       certificate_file = ${certdir}/airmac.extend.crt&lt;br /&gt; &lt;br /&gt;                        #  Trusted Root CA list&lt;br /&gt;                        #&lt;br /&gt;@@ -174,7 +174,7 @@&lt;br /&gt;                        #  not use client certificates, and you do not want&lt;br /&gt;                        #  to permit EAP-TLS authentication, then delete&lt;br /&gt;                        #  this configuration item.&lt;br /&gt;-                       CA_file = ${cadir}/ca.pem&lt;br /&gt;+                       CA_file = ${cadir}/cacert.pem&lt;br /&gt; &lt;br /&gt;                        #&lt;br /&gt;                        #  For DH cipher suites to work, you have to&lt;br /&gt;@@ -183,7 +183,7 @@&lt;br /&gt;                        #       openssl dhparam -out certs/dh 1024&lt;br /&gt;                        #&lt;br /&gt;                        dh_file = ${certdir}/dh&lt;br /&gt;-                       random_file = ${certdir}/random&lt;br /&gt;+                       random_file = /dev/urandom&lt;br /&gt; &lt;br /&gt;                        #&lt;br /&gt;                        #  This can never exceed the size of a RADIUS&lt;br /&gt;@@ -274,57 +274,57 @@&lt;br /&gt;                #&lt;br /&gt;                #  in the control items for a request.&lt;br /&gt;                #&lt;br /&gt;-               ttls {&lt;br /&gt;-                       #  The tunneled EAP session needs a default&lt;br /&gt;-                       #  EAP type which is separate from the one for&lt;br /&gt;-                       #  the non-tunneled EAP module.  Inside of the&lt;br /&gt;-                       #  TTLS tunnel, we recommend using EAP-MD5.&lt;br /&gt;-                       #  If the request does not contain an EAP&lt;br /&gt;-                       #  conversation, then this configuration entry&lt;br /&gt;-                       #  is ignored.&lt;br /&gt;-                       default_eap_type = md5&lt;br /&gt;-&lt;br /&gt;-                       #  The tunneled authentication request does&lt;br /&gt;-                       #  not usually contain useful attributes&lt;br /&gt;-                       #  like 'Calling-Station-Id', etc.  These&lt;br /&gt;-                       #  attributes are outside of the tunnel,&lt;br /&gt;-                       #  and normally unavailable to the tunneled&lt;br /&gt;-                       #  authentication request.&lt;br /&gt;-                       #&lt;br /&gt;-                       #  By setting this configuration entry to&lt;br /&gt;-                       #  'yes', any attribute which NOT in the&lt;br /&gt;-                       #  tunneled authentication request, but&lt;br /&gt;-                       #  which IS available outside of the tunnel,&lt;br /&gt;-                       #  is copied to the tunneled request.&lt;br /&gt;-                       #&lt;br /&gt;-                       # allowed values: {no, yes}&lt;br /&gt;-                       copy_request_to_tunnel = no&lt;br /&gt;-&lt;br /&gt;-                       #  The reply attributes sent to the NAS are&lt;br /&gt;-                       #  usually based on the name of the user&lt;br /&gt;-                       #  'outside' of the tunnel (usually&lt;br /&gt;-                       #  'anonymous').  If you want to send the&lt;br /&gt;-                       #  reply attributes based on the user name&lt;br /&gt;-                       #  inside of the tunnel, then set this&lt;br /&gt;-                       #  configuration entry to 'yes', and the reply&lt;br /&gt;-                       #  to the NAS will be taken from the reply to&lt;br /&gt;-                       #  the tunneled request.&lt;br /&gt;-                       #&lt;br /&gt;-                       # allowed values: {no, yes}&lt;br /&gt;-                       use_tunneled_reply = no&lt;br /&gt;-&lt;br /&gt;-                       #&lt;br /&gt;-                       #  The inner tunneled request can be sent&lt;br /&gt;-                       #  through a virtual server constructed&lt;br /&gt;-                       #  specifically for this purpose.&lt;br /&gt;-                       #&lt;br /&gt;-                       #  If this entry is commented out, the inner&lt;br /&gt;-                       #  tunneled request will be sent through&lt;br /&gt;-                       #  the virtual server that processed the&lt;br /&gt;-                       #  outer requests.&lt;br /&gt;-                       #&lt;br /&gt;-                       virtual_server = "inner-tunnel"&lt;br /&gt;-               }&lt;br /&gt;+               #ttls {&lt;br /&gt;+               #       #  The tunneled EAP session needs a default&lt;br /&gt;+               #       #  EAP type which is separate from the one for&lt;br /&gt;+               #       #  the non-tunneled EAP module.  Inside of the&lt;br /&gt;+               #       #  TTLS tunnel, we recommend using EAP-MD5.&lt;br /&gt;+               #       #  If the request does not contain an EAP&lt;br /&gt;+               #       #  conversation, then this configuration entry&lt;br /&gt;+               #       #  is ignored.&lt;br /&gt;+               #       default_eap_type = md5&lt;br /&gt;+&lt;br /&gt;+               #       #  The tunneled authentication request does&lt;br /&gt;+               #       #  not usually contain useful attributes&lt;br /&gt;+               #       #  like 'Calling-Station-Id', etc.  These&lt;br /&gt;+               #       #  attributes are outside of the tunnel,&lt;br /&gt;+               #       #  and normally unavailable to the tunneled&lt;br /&gt;+               #       #  authentication request.&lt;br /&gt;+               #       #&lt;br /&gt;+               #       #  By setting this configuration entry to&lt;br /&gt;+               #       #  'yes', any attribute which NOT in the&lt;br /&gt;+               #       #  tunneled authentication request, but&lt;br /&gt;+               #       #  which IS available outside of the tunnel,&lt;br /&gt;+               #       #  is copied to the tunneled request.&lt;br /&gt;+               #       #&lt;br /&gt;+               #       # allowed values: {no, yes}&lt;br /&gt;+               #       copy_request_to_tunnel = no&lt;br /&gt;+&lt;br /&gt;+               #       #  The reply attributes sent to the NAS are&lt;br /&gt;+               #       #  usually based on the name of the user&lt;br /&gt;+               #       #  'outside' of the tunnel (usually&lt;br /&gt;+               #       #  'anonymous').  If you want to send the&lt;br /&gt;+               #       #  reply attributes based on the user name&lt;br /&gt;+               #       #  inside of the tunnel, then set this&lt;br /&gt;+               #       #  configuration entry to 'yes', and the reply&lt;br /&gt;+               #       #  to the NAS will be taken from the reply to&lt;br /&gt;+               #       #  the tunneled request.&lt;br /&gt;+               #       #&lt;br /&gt;+               #       # allowed values: {no, yes}&lt;br /&gt;+               #       use_tunneled_reply = no&lt;br /&gt;+&lt;br /&gt;+               #       #&lt;br /&gt;+               #       #  The inner tunneled request can be sent&lt;br /&gt;+               #       #  through a virtual server constructed&lt;br /&gt;+               #       #  specifically for this purpose.&lt;br /&gt;+               #       #&lt;br /&gt;+               #       #  If this entry is commented out, the inner&lt;br /&gt;+               #       #  tunneled request will be sent through&lt;br /&gt;+               #       #  the virtual server that processed the&lt;br /&gt;+               #       #  outer requests.&lt;br /&gt;+               #       #&lt;br /&gt;+               #       #virtual_server = "inner-tunnel"&lt;br /&gt;+               #}&lt;br /&gt; &lt;br /&gt;                ##################################################&lt;br /&gt;                #&lt;br /&gt;@@ -406,7 +406,7 @@&lt;br /&gt;                        #  the virtual server that processed the&lt;br /&gt;                        #  outer requests.&lt;br /&gt;                        #&lt;br /&gt;-                       virtual_server = "inner-tunnel"&lt;br /&gt;+                       #virtual_server = "inner-tunnel"&lt;br /&gt;                }&lt;br /&gt; &lt;br /&gt;                #&lt;br /&gt;@@ -424,5 +424,6 @@&lt;br /&gt;                #  currently support.&lt;br /&gt;                #&lt;br /&gt;                mschapv2 {&lt;br /&gt;+                       ldap&lt;br /&gt;                }&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;radiusを参照するクライアント(AirMac)のアカウントを作ります。&lt;br /&gt;&lt;pre class="code"&gt;--- raddb.orig/clients.conf     2008-08-16 21:54:48.000000000 +0900&lt;br /&gt;+++ /etc/raddb/clients.conf     2008-08-20 03:01:25.452735162 +0900&lt;br /&gt;@@ -227,3 +227,11 @@&lt;br /&gt; #              secret = xxxxxxxx&lt;br /&gt; #        }&lt;br /&gt; #}&lt;br /&gt;+&lt;br /&gt;+client airmac1.example.co.jp {&lt;br /&gt;+               secret = xxxxxxxx&lt;br /&gt;+}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;どの認証をどのデーターベースを使うかの設定する。&lt;br /&gt;ついでにWindowsから自動で送られてくるアカウント情報にはドメイン名が入るので&lt;br /&gt;取り除く設定を追加。&lt;br /&gt;&lt;pre class="code"&gt;--- /etc/raddb/sites-available/default.orig     2008-08-16 21:54:48.000000000 +0900&lt;br /&gt;+++ /etc/raddb/sites-available/default  2008-08-20 15:25:18.718859486 +0900&lt;br /&gt;@@ -138,11 +138,11 @@&lt;br /&gt;        #  to read /etc/passwd or /etc/shadow directly, see the&lt;br /&gt;        #  passwd module in radiusd.conf.&lt;br /&gt;        #&lt;br /&gt;-       unix&lt;br /&gt;+       #unix&lt;br /&gt; &lt;br /&gt;        #&lt;br /&gt;        #  Read the 'users' file&lt;br /&gt;-       files&lt;br /&gt;+       #files&lt;br /&gt; &lt;br /&gt;        #&lt;br /&gt;        #  Look in an SQL database.  The schema of the database&lt;br /&gt;@@ -160,7 +160,18 @@&lt;br /&gt;        #&lt;br /&gt;        #  The ldap module will set Auth-Type to LDAP if it has not&lt;br /&gt;        #  already been set&lt;br /&gt;-#      ldap&lt;br /&gt;+       if("%{User-Name}" =~ /\\\\?([^@\\\\]+)@?([-[:alnum:]._]*)?$/) {&lt;br /&gt;+               if("%{User-Name}" =~ /^host\/(.*)$/) {&lt;br /&gt;+                       update request {&lt;br /&gt;+                               Stripped-User-Name = "%{1}$"&lt;br /&gt;+                       }&lt;br /&gt;+               }&lt;br /&gt;+               update request {&lt;br /&gt;+                       Stripped-User-Name = "%{1}"&lt;br /&gt;+               }&lt;br /&gt;+       }&lt;br /&gt;+&lt;br /&gt;+       ldap&lt;br /&gt; &lt;br /&gt;        #&lt;br /&gt;        #  Enforce daily limits on time spent logged in.&lt;br /&gt;@@ -184,7 +195,7 @@&lt;br /&gt;        #  This module should be listed last, so that the other modules&lt;br /&gt;        #  get a chance to set Auth-Type for themselves.&lt;br /&gt;        #&lt;br /&gt;-       pap&lt;br /&gt;+       #pap&lt;br /&gt; &lt;br /&gt;        #&lt;br /&gt;        #  If "status_server = yes", then Status-Server messages are passed&lt;br /&gt;@@ -229,18 +240,18 @@&lt;br /&gt;        #  PAP authentication, when a back-end database listed&lt;br /&gt;        #  in the 'authorize' section supplies a password.  The&lt;br /&gt;        #  password can be clear-text, or encrypted.&lt;br /&gt;-       Auth-Type PAP {&lt;br /&gt;-               pap&lt;br /&gt;-       }&lt;br /&gt;+       #Auth-Type PAP {&lt;br /&gt;+       #       pap&lt;br /&gt;+       #}&lt;br /&gt; &lt;br /&gt;        #&lt;br /&gt;        #  Most people want CHAP authentication&lt;br /&gt;        #  A back-end database listed in the 'authorize' section&lt;br /&gt;        #  MUST supply a CLEAR TEXT password.  Encrypted passwords&lt;br /&gt;        #  won't work.&lt;br /&gt;-       Auth-Type CHAP {&lt;br /&gt;-               chap&lt;br /&gt;-       }&lt;br /&gt;+       #Auth-Type CHAP {&lt;br /&gt;+       #       chap&lt;br /&gt;+       #}&lt;br /&gt; &lt;br /&gt;        #&lt;br /&gt;        #  MSCHAP authentication.&lt;br /&gt;@@ -264,16 +275,16 @@&lt;br /&gt;        #  containing CHAP-Password attributes CANNOT be authenticated&lt;br /&gt;        #  against /etc/passwd!  See the FAQ for details.&lt;br /&gt;        #&lt;br /&gt;-       unix&lt;br /&gt;+       #unix&lt;br /&gt; &lt;br /&gt;        # Uncomment it if you want to use ldap for authentication&lt;br /&gt;        #&lt;br /&gt;        # Note that this means "check plain-text password against&lt;br /&gt;        # the ldap database", which means that EAP won't work,&lt;br /&gt;        # as it does not supply a plain-text password.&lt;br /&gt;-#      Auth-Type LDAP {&lt;br /&gt;-#              ldap&lt;br /&gt;-#      }&lt;br /&gt;+       Auth-Type LDAP {&lt;br /&gt;+               ldap&lt;br /&gt;+       }&lt;br /&gt; &lt;br /&gt;        #&lt;br /&gt;        #  Allow EAP authentication.&lt;br /&gt;@@ -322,7 +333,7 @@&lt;br /&gt;        #  Update the wtmp file&lt;br /&gt;        #&lt;br /&gt;        #  If you don't use "radlast", you can delete this line.&lt;br /&gt;-       unix&lt;br /&gt;+       #unix&lt;br /&gt; &lt;br /&gt;        #&lt;br /&gt;        #  For Simultaneous-Use tracking.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;インストール時にデフォルトで証明書が作成されますが、ウチはCAを構築しているた&lt;br /&gt;め別に作ります。ここで注意するのは、デフォルトで出力される証明書はwindowsの&lt;br /&gt;ZCWでは受け 付けられないという事です。(詳細は、、あまり調べてなかったりす&lt;br /&gt;る。)&lt;br /&gt;そのため、-extensions xpserver_ext -extfile /etc/raddb/certs/xpextensionsを&lt;br /&gt;付けて署名します。&lt;br /&gt;&lt;pre class="code"&gt;cd /www/ca.example.co.jp/keys/airmac.intra&lt;br /&gt;openssl ca -config path/to/openssl.cnf -policy policy_anything -out airmac.extend.crt -extensions xpserver_ext -extfile /etc/raddb/certs/xpextensions -infiles airmac.csr&lt;br /&gt;openssl dsaparam -out dh 2048&lt;br /&gt;cp * /etc/raddb/certs/&lt;br /&gt;cp /www/ca.example.co.jp/cacert.pem /etc/raddb/certs/&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ではradiusを起動し、AirMac設定ユーティリティでWPA2を選択して&lt;br /&gt;/etc/raddb/clients.confに設定した認証サーバー情報を入れましょう。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;WindowsXPの設定とか&lt;br /&gt;&lt;a href="http://waga.homeip.net/freeradius/wpa.html "&gt;こちら&lt;/a&gt;が詳しく紹介されています。&lt;br /&gt;(WindowsXPに作成した証明書をインストールしておく)&lt;br /&gt;ただし、この方法だとWindowsのログイン前に無線に接続できないので、ドメインロ&lt;br /&gt;グオンができない。(キャッシュされてる場合を除く)&lt;br /&gt;なので「Windowsのログオン名と・・・・」はチェックをはずしておく工程はわざと省く。&lt;br /&gt;そうすることでマシンアカウントで接続できるようになりドメインログオンできるようになる。&lt;br /&gt;あとはドメインログオンすればsmbldapのユーザーアカウントで接続できるはず。です。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-7979893067785797811?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/7979893067785797811/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=7979893067785797811&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/7979893067785797811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/7979893067785797811'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/09/ldap-radius-eap-peap-wpa2-airmacexpress.html' title='LDAP + Radius + EAP-PEAP + WPA2 + AirmacExpress'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-1745095050052581213</id><published>2008-08-24T04:03:00.003+09:00</published><updated>2008-08-24T04:31:35.035+09:00</updated><title type='text'>イントラサーバーを構築してみた</title><content type='html'>社内をそろそろドメインを導入してACL管理したいという要望があがって来た。&lt;br /&gt;ついでに拠点間接続もしたいと。予算は社内なのでかけれんと。ケチ。&lt;br /&gt;そこで前職である社内システム管理から培った経験から以下でチョイスしてみた。&lt;br /&gt;&lt;br /&gt;1.全クライアント無線化&lt;br /&gt;2.samba+ldap&lt;br /&gt;3.freeradius+wpa2&lt;br /&gt;4.OpenVPN+Quagga&lt;br /&gt;&lt;br /&gt;1は社内のレイアウト変更が多い上にノートPCユーザーが多い、&lt;br /&gt;802.11nならそこそこ速度も出ることからチョイス&lt;br /&gt;&lt;br /&gt;2は簡単にいくならActiveDirectoryでも良いんだけれども、&lt;br /&gt;会社のメインストリームがLinux系の人が多いのでチョイス&lt;br /&gt;&lt;br /&gt;3親会社はいまだにwepでパスワードが単語で6文字とかやってた。&lt;br /&gt;pskで月一回周知も面倒なのでぜひ導入したい。&lt;br /&gt;将来的には認証VLANや検疫ネットワークも作りたいなぁ&lt;br /&gt;&lt;br /&gt;4Cisco買ってくれよ、、&lt;br /&gt;&lt;br /&gt;つーわけでおまえの苦労は買うから出来るだけ物理コストを下げたいと。&lt;br /&gt;今から考えるとぜってーウソ。この構成ベンダーにまかすといくらかかんだ、、&lt;br /&gt;で、Dellで15万くらいのサーバーにこんだけぶっこんでみました。&lt;br /&gt;（最低3-4台に分けたいっすね。でものーまにーらしい）&lt;br /&gt;&lt;br /&gt;ドメコン、ファイルサーバー+容量制限&lt;br /&gt;ルーター機能とルーティングデーモン&lt;br /&gt;DNSとDHCPとF/W&lt;br /&gt;Radius認証サーバー+WPA2&lt;br /&gt;ユーザー向け利用マニュアルにmediawiki&lt;br /&gt;プロジェクト管理ツールでredmine+Subversion&lt;br /&gt;拠点間とロードウォリアーVPNサーバー&lt;br /&gt;ネットワーク機器ログ集約のためsyslog-ng&lt;br /&gt;&lt;br /&gt;でもまあ、一行コマンドを打てば&lt;br /&gt;&lt;br /&gt;Windowsアカウント&lt;br /&gt;無線LAN&lt;br /&gt;SVN+情報共有ツール&lt;br /&gt;各種Web認証&lt;br /&gt;VPNアカウント&lt;br /&gt;&lt;br /&gt;が一括で作られるのでかなり管理コストの削減ができてるように思う。&lt;br /&gt;特に苦労した、LDAP+Radius+EAP-PEAP+WPA2+AirmacExpressの構築を次回書きます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-1745095050052581213?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/1745095050052581213/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=1745095050052581213&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/1745095050052581213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/1745095050052581213'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/08/blog-post.html' title='イントラサーバーを構築してみた'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-7872302975257824165</id><published>2008-08-07T23:52:00.012+09:00</published><updated>2008-09-06T04:29:07.577+09:00</updated><title type='text'>CUIなJabberクライアントmcabberを使う</title><content type='html'>CUIなJabberクライアントmcabberを使う&lt;br /&gt;今回はJabberな話題。&lt;br /&gt;ウチの会社では半ば強制的にGoogleTalkを導入させられているのですが、(迷惑)&lt;br /&gt;それ以外にもいろいろIMが必要なわけです。&lt;br /&gt;jabberだったらトランスポートくらいさせろや、、googletalk、、って感じなのですが&lt;br /&gt;個人的に違うIMを二種類以上立ち上げるのは、画面の右側が占領されて絶対に嫌。&lt;br /&gt;&lt;br /&gt;そこで我々スタッフ探しました。&lt;br /&gt;一生懸命探しました。&lt;br /&gt;そしたらね、、、見つかりましたよ。&lt;br /&gt;いいクライアント。(URRRRY-------------!!)&lt;br /&gt;&lt;br /&gt;その名もmcabber&lt;br /&gt;インストールは割愛&lt;br /&gt;&lt;br /&gt;アカウント設定&lt;br /&gt;設定は~/.mcabberrcか、~/mcabber/mcabberrcで行います。最低限&lt;br /&gt;&lt;pre class="code"&gt;set username = your@domainname&lt;br /&gt;set password = passwd&lt;br /&gt;set server = talk.google.com&lt;br /&gt;set ssl = 1&lt;br /&gt;set ssl_verify = 0&lt;/pre&gt;&lt;br /&gt;くらいで繋ります。&lt;br /&gt;&lt;br /&gt;操作方法&lt;br /&gt;基本的な操作方法はサンプルのコンフィグファイルを使っているなら&lt;br /&gt;&lt;br /&gt;PgUP/Downで左のコンタクトリストの選択移動&lt;br /&gt;会話したい人を選んでEnterでチャットモード開始。&lt;br /&gt;Ctrl-q 話かけられた場合のチャットウインドウをオープンする&lt;br /&gt;Ctrl-x 直前のチャットウインドウへ切り替え&lt;br /&gt;F5 オンラインの人だけ表示する&lt;br /&gt;人をコンタクトリストから検索するには/roster search ユーザー名の一部&lt;br /&gt;&lt;br /&gt;キーバインド&lt;br /&gt;キー設定はbind M109 = msay toggleって感じに変えれます。&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;#Alt-m to switch to/from multi-line mode&lt;br /&gt;bind M109 = msay toggle&lt;br /&gt;#Alt-M to switch to/from _verbatim_ multi-line mode&lt;br /&gt;bind M77  = msay toggle_verbatim&lt;/pre&gt;&lt;br /&gt;これでalt-mで複数行メッセージ開始、もう一度alt-mで送信します。&lt;br /&gt;&lt;br /&gt;エイリアス&lt;br /&gt;便利なのはaliasやバインドが割と変えられる事ですね。俺はこんな感じにしてます。&lt;br /&gt;&lt;pre class="code"&gt;alias on       = status online&lt;br /&gt;alias aw       = status away&lt;br /&gt;alias dnd      = status dnd&lt;br /&gt;alias notavail = status notavail&lt;br /&gt;alias s        = roster search&lt;br /&gt;alias bs       = buffer search_forward&lt;br /&gt;alias q        = quit&lt;br /&gt;alias c        = buffer close&lt;br /&gt;alias reload   = source .mcabber/mcabberrc&lt;/pre&gt;&lt;br /&gt;チャットウインドウ、ログウインドウに関わらず、コマンドは/で始めれます。上記エイリアスを定義していれば、&lt;br /&gt;/s yogolet&lt;br /&gt;でコンタクトリストからyogoletを探してくれます。&lt;br /&gt;&lt;br /&gt;って感じでしょうか？日本語も問題無く通ります。&lt;br /&gt;設定は非常にわかり易いので、オフィシャルwikiを見るべし!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-7872302975257824165?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/7872302975257824165/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=7872302975257824165&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/7872302975257824165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/7872302975257824165'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/08/cuijabbermcabber.html' title='CUIなJabberクライアントmcabberを使う'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-2843744831212724241</id><published>2008-07-26T02:47:00.003+09:00</published><updated>2008-08-07T04:58:43.080+09:00</updated><title type='text'>アツすぎる人たち</title><content type='html'>最近仕事でとある会社に行った時の事。&lt;br /&gt;&lt;br /&gt;「ウチの会社では仕様書もなんにもないんですよ!!やるだけ無駄じゃないですか!!」&lt;br /&gt;「はてなさんに遊びに行った時にですね!!衝撃を受けてですね!!」&lt;br /&gt;「Google!!ライフハック!!Twitterが!!Web2.0的には!!Ajaxを使ってて!!iPhoneはですね!!」&lt;br /&gt;&lt;br /&gt;はぁ、、またか、、と思った。はっきり言って宗教だ。キモい。&lt;br /&gt;なんでWebの人ってこうなんだろう。冷静な判断が出来てないと思う。&lt;br /&gt;途中から話に興味を失って持ちこんだノートでBackTrack起動して遊んでました。&lt;br /&gt;(つかセキュリティ甘、、え？もちろん悪さなんかしてませんよ？hehe)&lt;br /&gt;&lt;br /&gt;「Google?あー別に検索ぐらいしか使わないなぁー&lt;br /&gt;別にレスポンスがいいから使ってるだけ。他でレスポンス良ければそれでもいい」&lt;br /&gt;&lt;br /&gt;なんて発言しようものなら&lt;br /&gt;&lt;br /&gt;「は？なんでGmailは最強でGoogleカレンダーはこんなにありがたく、&lt;br /&gt;Googleリーダーはこんなんもできるんですよ!?&lt;br /&gt;Google様の教えがわからないなんてかわいそうな人ですね。&lt;br /&gt;他は全部クソです。Google様が世界を救う!!Google様万歳」&lt;br /&gt;&lt;br /&gt;こんなんだ。盲信的すぎ。絶対宗教。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-2843744831212724241?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/2843744831212724241/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=2843744831212724241&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/2843744831212724241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/2843744831212724241'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/blog-post_26.html' title='アツすぎる人たち'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-3935430899875889981</id><published>2008-07-24T00:54:00.005+09:00</published><updated>2008-07-26T03:39:44.179+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>vimの知ってたら便利な技10</title><content type='html'>&lt;pre&gt;&lt;br /&gt;vimの小技を書いていこうと思います&lt;br /&gt;俺はプログラムはあまりいじらないのであえて設定ファイルをいじる時など有用なもの+&lt;br /&gt;あまり他のみなさんの書かれてないことをメインで10個チョイスしました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.今開いているファイルとバッファのファイルを比較する。&lt;br /&gt;&amp;lt;bindkey&amp;gt;でどこを編集したかvimdiffで表示してくれます。&lt;br /&gt;(最新版のvimだと設定不要スクリプトが付いてきてる)&lt;br /&gt;command DiffOrigcmp vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis&lt;br /&gt;nmap &amp;lt;bindkey&amp;gt; :DiffOrig&amp;lt;CR&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.上や下の文字を挿入&lt;br /&gt;&amp;lt;c-y&amp;gt;で一行上の文字をinsert&lt;br /&gt;&amp;lt;c-e&amp;gt;で一行下の文字をinsert&lt;br /&gt;CustomLog &amp;quot;|/usr/sbin/rotatelogs2 /vim.host.co.jp/contents/logs/access_log.%Y%m%d 86400 540&amp;quot; combined&lt;br /&gt;ErrorLog  &amp;quot;|/usr/sbin/rotatelogs2 /vim.host.co.jp/contents/logs/error_log.%Y%m%d 86400 540&amp;quot;&lt;br /&gt;こういうの編集するとき楽。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.お勧めステータスライン&lt;br /&gt;&amp;quot;ステータスラインにコマンドを表示&lt;br /&gt;set showcmd&lt;br /&gt;&amp;quot;ステータスラインを常に表示&lt;br /&gt;set laststatus=2&lt;br /&gt;&amp;quot;ファイルナンバー表示&lt;br /&gt;set statusline =[%n]&lt;br /&gt;&amp;quot;ホスト名表示&lt;br /&gt;set statusline+=:\%{hostname()}@&lt;br /&gt;&amp;quot;ファイル名表示&lt;br /&gt;set statusline+=%&amp;lt;%F&lt;br /&gt;&amp;quot;変更のチェック表示&lt;br /&gt;set statusline+=%m&lt;br /&gt;&amp;quot;読み込み専用かどうか表示&lt;br /&gt;set statusline+=%r&lt;br /&gt;&amp;quot;ヘルプページなら[HELP]と表示&lt;br /&gt;set statusline+=%h&lt;br /&gt;&amp;quot;プレビューウインドウなら[Prevew]と表示&lt;br /&gt;set statusline+=%w&lt;br /&gt;&amp;quot;ファイルフォーマット表示&lt;br /&gt;set statusline+=[%{&amp;amp;fileformat}]&lt;br /&gt;&amp;quot;文字コード表示&lt;br /&gt;set statusline+=[%{has('multi_byte')&amp;amp;&amp;amp;\&amp;amp;fileencoding!=''?&amp;amp;fileencoding:&amp;amp;encoding}]&lt;br /&gt;&amp;quot;ファイルタイプ表示&lt;br /&gt;set statusline+=%y&lt;br /&gt;&amp;quot;ここからツールバー右側&lt;br /&gt;set statusline+=%=&lt;br /&gt;&amp;quot;文字バイト数/カラム番号&lt;br /&gt;set statusline+=[ASCII=%B,HEX=%c]&lt;br /&gt;&amp;quot;現在行/全体行表示&lt;br /&gt;set statusline+=[L=%l/%L]&lt;br /&gt;&amp;quot;現在行が全体行の何%目か表示&lt;br /&gt;set statusline+=[%p%%]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.表示行単位で行移動する&lt;br /&gt;nmap j gj&lt;br /&gt;nmap k gk&lt;br /&gt;vmap j gj&lt;br /&gt;vmap k gk&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.今開いているバッファに一括コマンド適用&lt;br /&gt;vi `grep -Rl aaaa /etc/`&lt;br /&gt;:bufdo %s/aaaa/bbbb/g|w&lt;br /&gt;aaaaが含まれているファイルを開いて、bbbbに置き換えて保存&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6.現在のディレクトリを開いてブラウズする&lt;br /&gt;:e ./&lt;br /&gt;&amp;quot;-&amp;quot;で上位ディレクトリに移動可能&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7.置き換え系いろいろ&lt;br /&gt;&amp;quot;C-C,C-Rでカーソル語の置き換え&lt;br /&gt;nmap &amp;lt;C-C&amp;gt;&amp;lt;C-R&amp;gt; yw:%s:&amp;lt;C-R&amp;gt;0::g&amp;lt;LEFT&amp;gt;&amp;lt;LEFT&amp;gt;&lt;br /&gt;&amp;quot;C-C,rでYankした文字列との置き換え&lt;br /&gt;nmap &amp;lt;C-C&amp;gt;r :%s:&amp;lt;C-R&amp;gt;0::g&amp;lt;LEFT&amp;gt;&amp;lt;LEFT&amp;gt;&lt;br /&gt;&amp;quot;C-C,gでカーソル語が存在する行の削除&lt;br /&gt;nmap &amp;lt;C-C&amp;gt;g yw:%g:&amp;lt;C-R&amp;gt;0:d&lt;br /&gt;&amp;quot;C-C,Gでカーソル語が存在する行以外の削除&lt;br /&gt;nmap &amp;lt;C-C&amp;gt;G yw:%v:&amp;lt;C-R&amp;gt;0:d&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8.ssh可能な先のファイルをローカルのエディタで編集&lt;br /&gt;:e! scp://ssh.host.com/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9.&amp;lt;c-c&amp;gt;&amp;lt;c-v&amp;gt;ターミナルエミュレーター等使っているときにコピーペーストしたい時に、&lt;br /&gt;パラメーターを一括変更。タブの視覚化やライン行数、set pasteする。&lt;br /&gt;if has('unix')&lt;br /&gt;  function Indent_switch()&lt;br /&gt;    if &amp;amp;nu =='1'&lt;br /&gt;      set noai&lt;br /&gt;      set nolist&lt;br /&gt;      set nonu&lt;br /&gt;      set paste&lt;br /&gt;    else&lt;br /&gt;      set ai&lt;br /&gt;      set list&lt;br /&gt;      set nu&lt;br /&gt;      set nopaste&lt;br /&gt;    endif&lt;br /&gt;  endfunction&lt;br /&gt;  nmap &amp;lt;C-C&amp;gt;&amp;lt;C-V&amp;gt; :call Indent_switch()&amp;lt;CR&amp;gt;&lt;br /&gt;endif&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10.shellで実行したいコマンドを保存せずvimからshellに渡して実行&lt;br /&gt;たとえば、膨大にファイルがあるディレクトリを整列や整形して処理したい時など。&lt;br /&gt;(sedでもいいですけどね、、)&lt;br /&gt;ls -1 ./ | vi -&lt;br /&gt;(mv abc_0000123.xml bac_123000.html.....とか編集？sedでやってられないような処理)&lt;br /&gt;:w ! sh&lt;br /&gt;&lt;br /&gt;その他雑多なもの&lt;br /&gt;=G&lt;br /&gt;insertモードで&amp;lt;c-r&amp;gt;=1024*1024*32&lt;br /&gt;insertモードで&amp;lt;c-x&amp;gt;&amp;lt;c-f&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-3935430899875889981?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/3935430899875889981/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=3935430899875889981&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/3935430899875889981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/3935430899875889981'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/vim10.html' title='vimの知ってたら便利な技10'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-4303753789630029632</id><published>2008-07-23T00:33:00.005+09:00</published><updated>2008-07-23T01:22:03.371+09:00</updated><title type='text'>達人は道具を選ばない？</title><content type='html'>などと言われていますが、俺はこの言葉は疑問です。&lt;br /&gt;ブラックジャックはメスにこだわり、ゴルゴはM16を愛用しってなもんです。&lt;br /&gt;どこの世界に自分の乗るフォーミュラーマシンを気にしないドライバーがいるんでしょうか？&lt;br /&gt;達人+道具でウン乗の効果が出ると思っています。&lt;br /&gt;&lt;br /&gt;というワケで仕事のツール(こだわりと偏見)について語ってみたいと思います。&lt;br /&gt;&lt;br /&gt;PC:ThinkPad Tシリーズ&lt;br /&gt;電池がもたないだの重いだの言ってる人は向いてない。&lt;br /&gt;持ち運べるデスクトップ環境+許せる最大重量を求めればこれに行き着いた。&lt;br /&gt;キーボードの配列も硬派なデザインもいい!男の仕事ツール。&lt;br /&gt;今の所トラックポイント+3ボタンはこれしかない。3ボタンが無いとLinuxとかで不便。&lt;br /&gt;ついでに言うと、どんなLiveCDでも大抵起動する。当然デュアルブート環境。&lt;br /&gt;ペネトレーションテスト環境やネットワークパケット解析には必須。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;エディタ:Vim&lt;br /&gt;どこでも入ってて異常に軽く、使えば使うほど自分の無知を知らせる恐しいエディタ。&lt;br /&gt;もう8年以上使っているが、いまだ2割も使えてないと思う。&lt;br /&gt;エディタ論争はさておき。文章編集では最強だと信じている。でも頭がついていかない。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;メール:Thunderbird&lt;br /&gt;過去はmuttやgmailなどやってみたが、これが一番。&lt;br /&gt;gmailは信用ならないし、あれをありがたがっているのはIMAPを使った事が無い人だと偏見を持っている。&lt;br /&gt;Egnimail,Quicktext,Nostalgy,tagtoobarあたりのAddonをインストール。&lt;br /&gt;MozillaとGoogleの提携でこいつが邪魔で消されかかってるらしい。ざけんな。&lt;br /&gt;たまにSIerの人でgpgの署名を見て『文字化けしてるんですが、、』といってくる人がいる。。。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ブラウザ:Firefox&lt;br /&gt;Vimperatorが変態すぎ。使ってないけど。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;音楽:iTunes&lt;br /&gt;iTunes+OpenVPN+mt-daapd:音楽無しでは仕事がはかどらない。&lt;br /&gt;遠隔のTBクラスのストレージに全部ブチ込んで会社や出先でOpenVPN越しに聞く。これが最強。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;その他&lt;br /&gt;skkime:変態変換メソッド。頭が良くなるよ。&lt;br /&gt;CLCL:(クリップボード拡張)必須。とりあえずクリップボードに送っておけばあとから使えるのでメモがわりに使っている。&lt;br /&gt;窓使いの憂鬱:ほとんど使わない無変換、変換、ひらがなキー+[a-z]をランチャーにしている。無変換+Fでfirefoxとか。&lt;br /&gt;kbdacc:ニッチなソフト。キーリピートをキモいくらいクイックにできる。vimのjjjjjjjjjjjで必須。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;unix系:&lt;br /&gt;GNU screen:神。ウインドウ毎に文字コードを変えられたり、sshで接続しているホストにコマンドを送ったりしている。&lt;br /&gt;OpenSSH:autossh,keychainも併用で、ダイナミックフォワードが便利すぎ。F/Wって何？って感じ。&lt;br /&gt;skk+uim-fep-tick+screen+vim:サーバーに入れておけばどこでも文章やプログラムが書ける。黄金の組み合わせ。&lt;br /&gt;zsh:便利なような気もするけど、実はあまり使いこなしてない。rm *~.vimrcなどは便利。&lt;br /&gt;w3m:Vimperator使うくらいならこれのほうがいいと密かに思っている。情報収集では何げ最強かもしれない。&lt;br /&gt;svn:なんでもかんでもブチ込み!!&lt;br /&gt;細かいのだとnetcat,ngrep,iptraf,nemesis,hping,ipcalc。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;次回はvim使えるvim技を書くかもしれないし、書かないかもしれないです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-4303753789630029632?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/4303753789630029632/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=4303753789630029632&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/4303753789630029632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/4303753789630029632'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/blog-post_23.html' title='達人は道具を選ばない？'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-8714873318582282300</id><published>2008-07-20T08:10:00.014+09:00</published><updated>2008-07-26T03:39:44.180+09:00</updated><title type='text'>なんでもかんでもSubversionに突っ込んでみた</title><content type='html'>3連休は金が無いので家でDVD見てます。ヒマなので記事でも書きます。&lt;br /&gt;&lt;br /&gt;最近自分だけでSCMを使っても便利なんだなと知りました。&lt;br /&gt;自分のホームフォルダをまとめて突っ込んでます。&lt;br /&gt;(もちろんhttpsとかにしてすべき)&lt;br /&gt;&lt;br /&gt;まずはインポート(svnのインストールは省略)&lt;br /&gt;&lt;pre class="code"&gt;cd ~&lt;br /&gt;svn import . https://svn.example.com/repos/home/kota&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;ユーザー環境を捨てて新しくsvn管理下に置くにはその環境で以下のようにします&lt;br /&gt;(~以下全部消してるので注意)&lt;br /&gt;&lt;pre class="code"&gt;cd ~&lt;br /&gt;rm -rf *&lt;br /&gt;rm -rf .??*&lt;br /&gt;cd ../&lt;br /&gt;svn co https://svn.example.com/repos/home/kota kota&lt;/pre&gt;&lt;br /&gt;こうしておけば.zshrcや.vimrc等更新しても、svn ciだけでOKです。&lt;br /&gt;但し、プッシュ型の同期ではないので、&lt;br /&gt;更新を受け入れたいホストの$HOMEでsvn upする必要があります。&lt;br /&gt;後、管理しないファイルを指定してやらないと、&lt;br /&gt;.*sh_historyとか消えます。毎回更新されます。ウザいです。&lt;br /&gt;ちなみに下記はリポジトリに対し適用されるので、&lt;br /&gt;一度下記設定をし、ciすれば以後必要ありません。別の場所でcoする時もです。&lt;br /&gt;&lt;pre class="code"&gt;cd ~&lt;br /&gt;svn propedit svn:ignore .&lt;br /&gt;除外ファイルを書いて終了&lt;br /&gt;svn ci .&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;俺の場合は除外ファイルはこんな感じです。&lt;br /&gt;&lt;pre class="code"&gt;.keychain&lt;br /&gt;.*_history&lt;br /&gt;.vim_mru_files&lt;br /&gt;.viminfo*&lt;br /&gt;.zcompdump&lt;br /&gt;.lesshst&lt;br /&gt;.*jisyo*&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;ついでにTortiseSVNもあるのでFirefoxのプロファイルも突っ込んでみたくなった。&lt;br /&gt;ちなみにアドオンの更新をすると作業リポジトリが壊れます。&lt;br /&gt;削除→更新としなきゃダメ。アドオンをsvnで管理しないならOKだけど。。&lt;br /&gt;除外ファイルはこんな感じか？&lt;br /&gt;&lt;pre class="code"&gt;*.bak&lt;br /&gt;*.log&lt;br /&gt;*.old&lt;br /&gt;*.sqlite&lt;br /&gt;parent.lock&lt;br /&gt;.parentlock&lt;br /&gt;*sqlite*&lt;br /&gt;bookmarkbackups&lt;br /&gt;cookies.txt&lt;br /&gt;downloads.*&lt;br /&gt;session.rdf&lt;br /&gt;urlclassifier*&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;続いてThunderbird。除外対象ファイルはこんな感じ&lt;br /&gt;これもアドオンの更新をすると作業リポジトリが壊れます。&lt;br /&gt;&lt;pre class="code"&gt;panacea.dat&lt;br /&gt;compreg.dat&lt;br /&gt;cookies.txt&lt;br /&gt;history.mab&lt;br /&gt;xpti.dat&lt;br /&gt;localstore.rdf&lt;br /&gt;.parentlock&lt;br /&gt;cookies.sqlite&lt;br /&gt;downloads.rdf&lt;br /&gt;urlclassifier2.sqlite&lt;br /&gt;*.cache&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;俺はIMAPを使っているので、ImapMailディレクトリ以下の除外設定を追加&lt;br /&gt;&lt;pre class="code"&gt;*.sbd&lt;br /&gt;*.msf&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;調子に乗って他にも以下をリポジトリに追加。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;窓使いの憂鬱の.mayuファイル&lt;/li&gt;&lt;li&gt;kaoriya版vim丸ごと&lt;/li&gt;&lt;li&gt;My Picture丸ごと(デジカメのデーター含む)&lt;/li&gt;&lt;li&gt;puttyとwinscp(設定を.iniファイルに保存ている)&lt;/li&gt;&lt;li&gt;タスクトレイの常駐ユーティリティを上位デレクトリから丸ごと&lt;/li&gt;&lt;li&gt;携帯電話のメモリのバックアップ&lt;/li&gt;&lt;li&gt;履歴書&lt;/li&gt;&lt;li&gt;過去自分が作ったプログラムやパッケージ&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;合計721M。大したことないなぁ、、&lt;br /&gt;でもとりあえずネットが繋がってるとこであれば、&lt;br /&gt;いつでもどこでもsvn co https://example.net/repos/で自分の環境を取りよせできます。&lt;br /&gt;(WindowsならTortiseSVNをインストールする手間があるけども)&lt;br /&gt;そこら辺は快適さとTrade-OFFでしょう。&lt;br /&gt;&lt;br /&gt;ただし、セキュリティ的には機密系のデーターは別リポジトリにブチ込んだほうが無難でしょう。&lt;br /&gt;$HOMEをsvn coしたらssh秘密鍵もcoされるのは危険です。&lt;br /&gt;あとその環境で一時利用するだけならsvn exportにするのもお忘れなきよう。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-8714873318582282300?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/8714873318582282300/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=8714873318582282300&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/8714873318582282300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/8714873318582282300'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/subversion.html' title='なんでもかんでもSubversionに突っ込んでみた'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-4482152996736343730</id><published>2008-07-20T07:04:00.015+09:00</published><updated>2008-07-26T03:39:44.182+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>RedMineが素敵すぎる(2)</title><content type='html'>先日インストールしたRedmineですが、素晴しいです。&lt;br /&gt;俺はとっととMantisから移行したい。が、上司がMantis大好きなので、、キツいかなぁ&lt;br /&gt;なお、それMantisでもできるっつの!ってのはあると思いますが、&lt;br /&gt;最初から実装されているもの、完動しているもので比較しています。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mantisとの比較で目立った部分&lt;/b&gt;&lt;br /&gt;1.速い。雲泥の差&lt;br /&gt;2.アクセス権がまとも。Redmine管理者とは別にプロジェクトリーダーを立て、該当プロジェクトについて管理を委任できる。制御はプロジェクト毎、ユーザー毎、かなり細かく可能&lt;br /&gt;3.検索がまとも。ステータス等は当然、文章中のキーワードもほぼ引っ掛る。検索語句のハイライトもしてくれる。&lt;br /&gt;4.クローズしたプロジェクトのアーカイブ化(蓄積しても重くならない)&lt;br /&gt;5.保存前にプレビュー可能(なんかいもミスって登録して無意味な履歴ができない)&lt;br /&gt;6.カスタムフィールド(利用者に入力させたい部分の定義ができる、申請文書コピペなんてダサいことしなくていい。しかもチケット一覧のフィルタとして利用できる)&lt;br /&gt;7.ldap認証連携できる(ユーザー情報の一元化)&lt;br /&gt;8.プロジェクト毎の細かいカスタマイズ(ワークフロー、表示項目等、プロジェクト毎に選択できる)&lt;br /&gt;9.プログラムコードの貼り付けサポート(色分けされるし崩れない)&lt;br /&gt;10.文章やwikiは差分表示は差分表示、巻き戻し、変更履歴等、通常のwikiとして使うぶんには過不足ない。&lt;br /&gt;11.属性やメンバーは自由にプロジェクトリーダーが設定できる(管理者に頼まなくていい)&lt;br /&gt;12.SCM等との連携ができる。mantisもできたような気がするけど。でもtracよりはショボい&lt;br /&gt;13.SCM連携機能のおかげで実際の開発とドキュメントが分離しない。運用次第ですが。&lt;br /&gt;14.SCMはcvs,svn以外も対応(git,mercurial,darcs,bazaar,fs)&lt;br /&gt;15.RSSがちゃんと機能する。プロジェクト毎のRSSを購読可能。&lt;br /&gt;16.なんとmantisからの移行はデーターコンバートツールが付属。移行もできる&lt;br /&gt;17.マイページで自分の担当している複数プロジェクトの一画面での閲覧ができる&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;mantisの良い部分も備えている+改良されてる&lt;/b&gt;&lt;br /&gt;1.ファイル添付&lt;br /&gt;2.MantisIDみたいなのはRedmineではチケット。検索窓に"2"とかだけ入れるとそのチケットに飛ぶ。文書中の#idもOK&lt;br /&gt;3.関連チケットは当然搭載。(さらに先行タスクや重複などでも登録可能)&lt;br /&gt;4.pdfで出力できます&lt;br /&gt;5.検索フィルタはMantisと同じく個人で定義可能&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mantisに無い機能の利用価値&lt;/b&gt;&lt;br /&gt;&lt;b&gt;文書機能が豊富(見易いドキュメントの作成)&lt;/b&gt;&lt;br /&gt;1.文書のマークアップやリンク、チケットへのリンクや異なるプロジェクトのwikiへのリンクも可能&lt;br /&gt;2.wikiからのリンク、チケットからのリンクが自由自在、当然wikiからのインクルードも可能。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ガントチャート、カレンダー&lt;/b&gt;&lt;br /&gt;1.期限設定すれば自動でガントチャート作成してくれます&lt;br /&gt;2.さらにそれは自動でカレンダーに反映される&lt;br /&gt;3.どのタスクにどのくらいかかったか統計可能。この辺は&lt;a href="http://www.dotproject.net/"&gt;dotproject&lt;/a&gt;でも出来たけどMantisには無い。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;技術者でなくても使える&lt;/b&gt;&lt;br /&gt;1.ヘルプも含め、ほぼ全部日本語(これはデカい)&lt;br /&gt;2.不要な機能を管理サイドで非表示にできるため、自分に関係のないのは表示されない→ごちゃごちゃしない&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ajax機能&lt;/b&gt;&lt;br /&gt;1.Ajaxを必要な所だけ使ってて○、使い所が絶妙。&lt;br /&gt;2.チケット一覧でチケットを右クリックすると画面移動無しで担当者やステータス各種変更が可能。shiftで複数選択でも可能(これは便利!!)&lt;br /&gt;3.文書記入テキストボックスのリサイズができる(なんてこった)&lt;br /&gt;4.マイページの項目をドラッグアンドドロップで配置変更できる&lt;br /&gt;&lt;br /&gt;&lt;b&gt;運用が柔軟&lt;/b&gt;&lt;br /&gt;1.一回プロジェクトを登録したあと、チケットID以外、ほぼ全ての項目を後で変更できる。内容の変更に柔軟に対応できる&lt;br /&gt;2.プロジェクト名の変更さえ可能&lt;br /&gt;3.とりあえずプロジェクト登録して使いはじめ、内容の充実に合せて設定を変更できる(リーダーが)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;フォーラムがある&lt;/b&gt;&lt;br /&gt;1.後で検索しない or チケットを立てるまでもない話題に関して役に立つ&lt;br /&gt;2.すなわちなんでもかんでもチケットが連立して見難くなることを減らせる&lt;br /&gt;3.問題などの報告を一回フォーラムで受け→チケットを発行してもらい→トラッキング→解決など可能&lt;br /&gt;4.よくわかってないお客さんからの問い合せはここからのほうがよいと思う(バグじゃなかったのにチケット発行されると非常にウザい)&lt;br /&gt;5.当然メールは飛ぶ&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mantisと比較して劣っている機能や今一つな所&lt;/b&gt;&lt;br /&gt;1.RoRがわからないとWeb画面できる事以上の改造できない&lt;br /&gt;2.任意のタイミングでリマインダーを飛せない(いまの所以下タイミングで飛せるが、必要十分かとも思う)&lt;br /&gt;&lt;blockquote&gt;チケットが追加されました&lt;br /&gt;チケットが更新されました&lt;br /&gt;ニュースが追加されました&lt;br /&gt;文書が追加されました&lt;br /&gt;ファイルが追加されました&lt;br /&gt;メッセージが追加されました&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;総合&lt;/b&gt;&lt;br /&gt;1.MantisやTracと比べ非常に軽い。RoRは重いと思っていたがfcgidが効いているのか？&lt;br /&gt;2.デザインがシンプル&lt;br /&gt;3.必要の無い情報は極力表示しないようになっている(新参者の混乱が少い)&lt;br /&gt;4.設定項目が少ないと思いがちだが、実際の機能はそんな事は無く、Redmine開発者の外見をシンプルにする努力が見6れる&lt;br /&gt;5.いまのところ、技術者以外とも仕事をする場合も含めかなりいい選択肢&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;とにかく、Bugzilla→Mantisz→Trac→Redmineときて、後発だけにこのRedmineは従来のものより進化しています。&lt;br /&gt;いまから使うならこれでほぼ決定かと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-4482152996736343730?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/4482152996736343730/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=4482152996736343730&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/4482152996736343730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/4482152996736343730'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/redmine-mantis-1.html' title='RedMineが素敵すぎる(2)'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-2390526304876212837</id><published>2008-07-20T06:18:00.008+09:00</published><updated>2008-07-26T03:39:44.183+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Ruby On Rails環境でCommitした時にApacheを再起動する</title><content type='html'>Railsを使っているとMongrelやらApacheを再起動する事が多い。&lt;br /&gt;いちいち管理人に再起動してもらうのはナンセンス。&lt;br /&gt;ということでSubversionを介し、コミット時に再起動させたいと考えた。&lt;br /&gt;&lt;br /&gt;post-commitスクリプトでいくとして、&lt;br /&gt;ApacheはApacheユーザーで動いている。&lt;br /&gt;再起動にはroot権限が必要。&lt;br /&gt;さてどうしたものか、、&lt;br /&gt;&lt;br /&gt;『sudoだ』&lt;br /&gt;&lt;br /&gt;というわけでvisudoして以下を追加(apacheユーザーの$SHELLはnologinでも大丈夫)&lt;br /&gt;&lt;pre class="code"&gt;apache ALL=(root) NOPASSWD:/usr/sbin/apache2 -k graceful *&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;post-commitスクリプト(起動時にdb:migrateしてほしいリクエストがあったのでそれも入っている)&lt;br /&gt;&lt;pre class="code"&gt;#!/bin/sh&lt;br /&gt;REPOS="$1"&lt;br /&gt;REV="$2"&lt;br /&gt;REPOL=$(basename $REPOS)&lt;br /&gt;DR="ドキュメントルートのパス"&lt;br /&gt;&lt;br /&gt;cd $DR&lt;br /&gt;&lt;br /&gt;if [ ! -d $REPOL ]; then&lt;br /&gt;        svn checkout file://$REPOS $REPOL&lt;br /&gt;        cd $REPOL&lt;br /&gt;        rake db:migrate RAILS_ENV="production"&lt;br /&gt;else&lt;br /&gt;        svn update file://$REPOS $REPOL&lt;br /&gt;        cd $REPOL&lt;br /&gt;        rake db:migrate RAILS_ENV="production"&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;source /etc/conf.d/apache2&lt;br /&gt;sudo /usr/sbin/apache2 -k graceful ${APACHE2_OPTS}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;これでめでたくsvnにcommitした際、&lt;br /&gt;自動でドキュメントルートに展開→再起動までやってくれます。&lt;br /&gt;楽すぎる。。&lt;br /&gt;&lt;br /&gt;セキュリティ的にはどうなの？&lt;br /&gt;パスワード無しで弄らせてるが、そもそも$SHELL当ってない上に、sudoで実行可能なのは&lt;br /&gt;/usr/sbin/apache2 -k graceful &lt;i&gt;引数&lt;/i&gt;まで。引数は自由に選択できるが、&lt;br /&gt;graceful以降でそんなにやばげなオプションも無かったはず。&lt;br /&gt;そもしも開発用サーバーだからやってるのであって、&lt;br /&gt;本番で同様の設定をする事はほぼ無いのでこれでよしとしようかと思う。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-2390526304876212837?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/2390526304876212837/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=2390526304876212837&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/2390526304876212837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/2390526304876212837'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/rorcommitapache.html' title='Ruby On Rails環境でCommitした時にApacheを再起動する'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-3859920116510780023</id><published>2008-07-19T12:41:00.003+09:00</published><updated>2008-07-20T06:08:24.069+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>英語の勉強</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-sJPlaqkzDs/SIJWeUn1AWI/AAAAAAAAAAY/fuTeb-RRU9w/s1600-h/iknow.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_-sJPlaqkzDs/SIJWeUn1AWI/AAAAAAAAAAY/fuTeb-RRU9w/s320/iknow.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5224833596635021666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;やはりエンジニアとしてはこんなクソったれな日本は捨ててアメリカ西海岸付近で働きてえ!!という野望があるわけです。&lt;br /&gt;そこで先立つものが、、、つかそれより言葉でしょ。&lt;br /&gt;&lt;br /&gt;英語なんて読めるしなんとかなんべやー!!『アイアムステーキ!!』&lt;br /&gt;とかお話にならないので勉強しようと思い本で勉強するか、、とか考えてたのですが素晴しいサイトを発見。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.iknow.co.jp/"&gt;iKnow&lt;/a&gt;です。&lt;br /&gt;&lt;br /&gt;say,have,goから英文企業会計用語なんつーまー難しそうなレベルまで全て無料なSNS??みたいです。&lt;br /&gt;これは素晴しい。画面はFlashで非常によく出来ています。&lt;br /&gt;&lt;br /&gt;しばらく遊んでみます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-3859920116510780023?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.iknow.co.jp/' title='英語の勉強'/><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/3859920116510780023/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=3859920116510780023&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/3859920116510780023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/3859920116510780023'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/blog-post_20.html' title='英語の勉強'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-sJPlaqkzDs/SIJWeUn1AWI/AAAAAAAAAAY/fuTeb-RRU9w/s72-c/iknow.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-4614918691955895669</id><published>2008-07-18T00:30:00.004+09:00</published><updated>2008-07-26T03:39:44.185+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Redmineが素敵すぎる</title><content type='html'>最近とある仕事のサーバーセットアップでRuby On Railsに触れる事ができた。&lt;br /&gt;元々Webのプログラムはほとんど興味の無い人というのもあり、さっぱりわからんかった。&lt;br /&gt;このままではマズいので勉強がてらRoRで動くアプリケーションをインストールしてみた。&lt;br /&gt;&lt;br /&gt;それがこの&lt;a href="http://redmine.jp/"&gt;Redmine&lt;/a&gt;だ。RedmineはBTS(Bug Tracking System)の一種。&lt;br /&gt;よーするに問題や情報に対して、起→承(認)→結みたいにバグに対する一連のプロセスをサポートするソフトウェア。&lt;br /&gt;(転は無いほうがいい。)まーそれを今の会社で電子端末上のワークフローシステムとして使っている。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://my.redmine.jp/demo/"&gt;オンラインデモ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;俺の働くの会社では&lt;a href="http://www.alles.or.jp/~sogabe/mantis/"&gt;Mantis&lt;/a&gt;をBTSだけでなく、&lt;br /&gt;資産管理やドキュメント整備に使っているが、新参者の評判はすこぶる悪い。&lt;br /&gt;あきれるほどドアホな検索機能、重すぎる処理、ゴチャゴチャした表示。&lt;br /&gt;そもそもバグ管理システムのため、静的な文章の整備は向いていない。&lt;br /&gt;当然顧客のドキュメント整備にはとても勧められず、そういう場面では&lt;a href="http://www.mediawiki.org/wiki/MediaWiki/ja"&gt;Mediawiki&lt;/a&gt;や&lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt;を使ってきた。&lt;br /&gt;しかし何気なく入れてみたこのRedmineにあまりにも感動したので記事にしてみる。&lt;br /&gt;&lt;br /&gt;環境はGentooLinux 2008.0&lt;br /&gt;Apache + fcgid + MySQLです。mongrelとかは既存環境にインストールで逆に面倒だったのでやってません。&lt;br /&gt;&lt;br /&gt;1.必要ソフトウェアのインストールはGentooなので&lt;br /&gt;&lt;pre class="code"&gt;USE="fastcgi" emerge rails&lt;br /&gt;emerge www-apache/mod_fcgid&lt;br /&gt;gem install fcgi&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2./etc/conf.d/apache2に-DFCGIDを追加&lt;br /&gt;&lt;pre class="code"&gt;APACHE2_OPTS="${APACHE2_OPTS} -DFCGID"&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3.vhostsに以下も追加&lt;br /&gt;&lt;pre class="code"&gt;&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt; ServerName example.com&lt;br /&gt; DocumentRoot &amp;quot;/www/example.com/DR&lt;br /&gt;~&lt;br /&gt;&amp;lt;省略&amp;gt;&lt;br /&gt;~&lt;br /&gt;&amp;lt;IfDefine FCGID&amp;gt;&lt;br /&gt;  DefaultInitEnv project_ENV production&lt;br /&gt;&amp;lt;/IfDefine&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;4.RoRのインストールは以下で完了&lt;br /&gt;&lt;pre class="code"&gt;cd (DocumentRoot)&lt;br /&gt;svn checkout http://redmine.rubyforge.org/svn/trunk/ .&lt;br /&gt;vi config/database.yml(適当に設定)&lt;br /&gt;rake db:migrate RAILS_ENV=production&lt;br /&gt;rake load_default_data RAILS_ENV=production&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;起動しねーYO&lt;br /&gt;config/environment.rbで5行目の&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;# Be sure to restart your web server when you modify this file.&lt;br /&gt;&lt;br /&gt;# Uncomment below to force Rails into production mode when&lt;br /&gt;# you don't control web/app server and can't set it the proper way&lt;br /&gt;ENV['RAILS_ENV'] ||= 'production'&lt;/pre&gt;&lt;br /&gt;をコメントアウト&lt;br /&gt;&lt;br /&gt;PDFの文字化け&lt;br /&gt;以下を参考にさせていただきました&lt;br /&gt;&lt;a href="http://chocoapricot.cocolog-nifty.com/blog/2008/06/redmine_445a.html"&gt;Redmineの文字化けとか勝手にまとめ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;とりあえずレビューや比較は後日。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-4614918691955895669?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://redmine.jp/' title='Redmineが素敵すぎる'/><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/4614918691955895669/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=4614918691955895669&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/4614918691955895669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/4614918691955895669'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/redmine.html' title='Redmineが素敵すぎる'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-6306542395044556233</id><published>2008-07-17T12:17:00.001+09:00</published><updated>2008-07-26T03:39:44.187+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Apache SNI</title><content type='html'>こちらの方の記事&lt;br /&gt;&lt;a href="http://blog.cles.jp/item/2091"&gt;SSLでName Based Virtual Hostをするには&lt;/a&gt;&lt;br /&gt;で知っていたのだが、SNI(Server Name Indication)というものがある。&lt;br /&gt;&lt;br /&gt;SSLでVirtualHostをすると、Hostヘッダーの前にネゴシエーションするため、同じIPアドレスで複数のVhostが使えないのだ。&lt;br /&gt;で、そこでSNIです。&lt;br /&gt;&lt;br /&gt;こちらの方の記事&lt;br /&gt;&lt;a href="http://websec-memo.blogspot.com/2007/07/virtualhostssl.html"&gt;名前ベースのVirtualHostでそれぞれのSSLサーバ証明書を使う&lt;/a&gt;&lt;br /&gt;より転載&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;TLSに対する拡張仕様であり、RFC 3546で規定されています。TLSのネゴシエーションの最初に、クライアント側から「ClientHello」を投げるのですが、このタイミングで、接続しようとしているホスト名を教えてあげます。これにより、サーバ側は、どのサーバ証明書をクライアントに返せばよいかを知ることができます。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;ということでApache 2.2.8からGentooのパッケージに"sni"USEフラグが立ったようなので使ってみた。&lt;br /&gt;なお、今の所IE7,Firefox2以上のみ対応らしい。他は知らん。&lt;br /&gt;&lt;br /&gt;sniを有効にしてemerge。(面倒なのでモジュールは全部入りにしている。)&lt;br /&gt;&lt;pre class="code"&gt;APACHE2_MODULES="*" USE="sni" emerge apache&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;はい。完了。(えw)&lt;br /&gt;てっきりモジュールか何かで提供されるものかと思いきや、本体にパッチが当るみたい。&lt;br /&gt;なのでこれでこんな感じに書いていけばOKです。&lt;br /&gt;&lt;pre class="code"&gt;NameVirtualHost *:443&lt;br /&gt;&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;ServerName sni1.example.com&lt;br /&gt;~~~~(省略)&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;ServerName sni2.example.com&lt;br /&gt;~~~~(省略)&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;うちでは8台のサーバーでSNIが有効で無い環境で共通との混在なのに設定ファイルが共通のため、&lt;br /&gt;SNI無効環境では起動時にNameVirtualHost *:443してなかったので起動時にエラります。&lt;br /&gt;なのでこのようにして解決(sniするために-DSNIしなきゃダメですが。)&lt;br /&gt;&lt;pre class="code"&gt;&amp;lt;IfDefine SSL&amp;gt;&lt;br /&gt; listen 443&lt;br /&gt; &amp;lt;IfDefine SNI&amp;gt;&lt;br /&gt;  NameVirtualHost *:443&lt;br /&gt; &amp;lt;/IfDefine&amp;gt;&lt;br /&gt;&amp;lt;/IfDefine&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;で、動作のほうですが、、、普通ですね。w&lt;br /&gt;ふつーに使えます。とある現場でIP8とかで足りなくて困ってたので一挙解決。&lt;br /&gt;いい感じです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-6306542395044556233?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/6306542395044556233/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=6306542395044556233&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/6306542395044556233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/6306542395044556233'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/apache-sni.html' title='Apache SNI'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-7530514760453716522</id><published>2008-07-16T02:11:00.002+09:00</published><updated>2008-07-20T06:10:20.326+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Impression'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>もの作りやらなんやら</title><content type='html'>最近なぜ日本の製品が売れないのか考えてみた。&lt;br /&gt;ウォークマン、携帯電話の電化製品にとどまらず、いろんなものが売れてない気がする。&lt;br /&gt;&lt;br /&gt;魅力が無い。その通り。でもそれは何故？&lt;br /&gt;&lt;br /&gt;昔の日本製品は安い、壊れない、高機能の3拍子揃ったものだった。&lt;br /&gt;でもいつしか中国や台湾に押され、金持ちになった日本人は安い給料で働かない。&lt;br /&gt;製造レベルも当初より向上、日本製を買うより中国製二個買うほうが安い。&lt;br /&gt;これで安さのポイントはなくなった。&lt;br /&gt;日本製は高機能にブクブクに太り、もはや誰のための機能かよくわからないものまで付くようなった。&lt;br /&gt;もちろん大勢のニーズを満たすものを作ろうとした結果なのは判る。&lt;br /&gt;&lt;br /&gt;最近発売されたiPhoneなんかを分解し、&lt;br /&gt;『我々ならもっと電池も持たせれるし、小さくできます。ワンセグもいけますよ。』&lt;br /&gt;違うんですよ、、もっとこう本質が見えてないんじゃないかと思う。&lt;br /&gt;iPhoneが売れるわけは一言で言うと使うのに&lt;b&gt;ワクワクする&lt;/b&gt;って事じゃないか？&lt;br /&gt;なにかこう、アレを買う人は今迄と違う物を求めてるワケですよ。&lt;br /&gt;そんでもってそれがワンセグじゃないって事です。&lt;br /&gt;&lt;br /&gt;所謂コテコテの日本企業はニーズを読む力、センスがあまりにも低いと思う。&lt;br /&gt;先日那須アウトレットがOpenしたみたいだけど、入ってるショップが誰がセレクトしたんだ、、と思うような所ばかり。&lt;br /&gt;聞けば三井が企画だとか。。ミッドタウンもサカスもコケたとこなのにねー&lt;br /&gt;御殿場はチェルシープロパティグループ(米)が企画らしい。&lt;br /&gt;彼等にとっちゃー。日本で成功するのなんかよく言う『都心のクオリティを地方でも』とかそんな感覚なんでしょう。&lt;br /&gt;分解して改良して猿真似しても売れる時代は終った。&lt;br /&gt;本質を理解し、同じ方向性の真似より別の方向性でアプローチし上回る事。&lt;br /&gt;これがポイントなんだと思います。&lt;br /&gt;&lt;br /&gt;ただ偉い人はわかっててもできないんでしょうか？&lt;br /&gt;それともルーキーはわかってるのに偉い人がわかってないんでしょうか？&lt;br /&gt;日本企業はもう少いシェアを食い合いし、よこから外来種に掻っ攫わられるのを見ているしか無いんでしょうか？&lt;br /&gt;最近海外製品に食われる話しか聞かないので頑張って欲しい。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-7530514760453716522?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/7530514760453716522/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=7530514760453716522&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/7530514760453716522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/7530514760453716522'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/blog-post.html' title='もの作りやらなんやら'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-2979123753599793147</id><published>2008-07-15T01:52:00.000+09:00</published><updated>2008-07-26T03:39:44.188+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Firefoxを入れると同時に入れるアドオン</title><content type='html'>リンクは面倒なんで貼ってないです。ググって下さい&lt;br /&gt;&lt;br /&gt;&lt;b&gt;TabMixPlus&lt;/b&gt;&lt;br /&gt;もはや必須。firefox3になっていらねーじゃねえかだって？&lt;br /&gt;うっかり閉じたタブの復元機能が便利すぎ。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;AdblockPlus&lt;/b&gt;&lt;br /&gt;これを入れるとあーら不思議。広告が全部非表示に!&lt;br /&gt;Mixiなんてハンパなくすっきり。&lt;br /&gt;Webで広告をうってる企業さんごめんなさい。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;AutoAuth&lt;/b&gt;&lt;br /&gt;Basic認証を記憶させてあるサイトの認証のOKボタンを勝手に押してくれる&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CustomizeGoogle&lt;/b&gt;&lt;br /&gt;Googleに送られるデーターや広告のほとんどを除去してくれる。Analytics?無駄無駄!&lt;br /&gt;他には検索結果をスクロールすると切り替え無しで追加表示してくれるなど、むしろGoogleを使いやすくしてくれる。&lt;br /&gt;一番嬉しいのは検索結果のフィルタ。はてな系やソーシャルブックマークは全部蹴ってます。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;FoxyProxy&lt;/b&gt;&lt;br /&gt;openssh + autossh + connect.cでIP制限もなんのその。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;It's All Text!&lt;/b&gt;&lt;br /&gt;テキストエリアにEditという小さなアイコンを表示してくれ、クリックで好きなエディタで編集できる。&lt;br /&gt;うっかり編集中に戻ってしまってもエディタを閉じなければセーフ。&lt;br /&gt;0.8.5は何故か日本語環境が壊れていた。。(pngファイルの差し代えで修復)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Link Widgets&lt;/b&gt;&lt;br /&gt;html内の要素タグを読んで、NextやBack、Topへ移動などが一発でできるボタンを追加してくれます。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MenuEditor&lt;/b&gt;&lt;br /&gt;使わなそうなメニューを削除してすっきり&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Remeve It Permanently&lt;/b&gt;&lt;br /&gt;気にくわないページ内の要素を一発削除。印刷する際にも便利。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ScrapBook&lt;/b&gt;&lt;br /&gt;昔OS9時代のMacOS版IEにあった機能のスクラップブックをFirefoxで実現できる版？&lt;br /&gt;今見ているページを静的ページ化し、ローカルに保存できます。保存した中から検索も可能。&lt;br /&gt;ページが消えてもスクラップは残る。最高すぎ。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;検索ステーション&lt;/b&gt;&lt;br /&gt;翻訳パネルのメンテが怪しいので乗り代え。&lt;br /&gt;ショートカットキーがScrapBookとあたるのと、ドラッグした文章が自動翻訳開始にならないのが不満。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-2979123753599793147?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/2979123753599793147/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=2979123753599793147&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/2979123753599793147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/2979123753599793147'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2008/07/firefox.html' title='Firefoxを入れると同時に入れるアドオン'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16793986.post-112857725813468453</id><published>2005-10-06T14:37:00.002+09:00</published><updated>2008-07-20T01:46:01.208+09:00</updated><title type='text'>You Make Me Feel</title><content type='html'>&lt;a href="http://www.theunseenvideo.com/"&gt;&lt;img style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://photos1.blogger.com/blogger/1606/589/320/mikemolish2.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mike Molishって人のオンラインプロモーションビデオ&lt;br /&gt;なんでもアクセス元の国、気温、天気とかで動的変化するらしい&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16793986-112857725813468453?l=yogolet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yogolet.blogspot.com/feeds/112857725813468453/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16793986&amp;postID=112857725813468453&amp;isPopup=true' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/112857725813468453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16793986/posts/default/112857725813468453'/><link rel='alternate' type='text/html' href='http://yogolet.blogspot.com/2005/10/you-make-me-feel.html' title='You Make Me Feel'/><author><name>yogolet</name><uri>http://www.blogger.com/profile/13326940199700191216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_-sJPlaqkzDs/SIIaDSSE9cI/AAAAAAAAAAM/rN0msVlnJXw/S220/fucking_village.jpg'/></author><thr:total>0</thr:total></entry></feed>
