トップ «前の日(01-31) 最新 次の日(02-02)» 追記

よこいまさる日記



Sat Feb 01 2003

[Emacs] The coding defination in "Local variables".

久々に Emacs のお話。多分、Emacsだけの仕様だとおもうんだけど、ファイルを開くときに「Local Variables:」と書かれた行から「End:」と書かれた行までの間に、そのファイルを編集するのに適切なメジャーモード (mode) や 文字コードセット (coding)の設定ができる。ちなみにそのときには、Perlのスクリプトを UTF-8 で書いており、そのファイルを開くときの文字コードセットを utf-8 にするため、以下のように書いてみた。

Local Variables:
coding: utf-8-unix
End:

これでうまくいくかなぁなんて思っていたんだけど、結果としてはダメ。なぜか coding の部分だけは mode の設定のときと Parse のしかたが違う。以下に lisp/international/mule.el の中にある coding: を Parse する部分のソースを抜粋してみた。

;; If no coding: tag in the head, check the tail.
(when (and tail-found (not coding-system))
  (goto-char tail-start)
  (search-forward "\n\^L" nil t)
  (if (re-search-forward
       "^\\(.*\\)[ \t]*Local Variables:[ \t]*\\(.*\\)$" tail-end t)
.... 以下 略 ....

引用が中途半端なのはお許しいただきたい。この部分を解釈すると、カーソルを後ろのほう (tail-start) に移動させて、^L (0x0c)だけの行を前方検索してそこにカーソル移動させて、Local Variablesの部分を検索するようになっている。そう、原因は "^L" が足りなかっただけだった。なんか仕様がバラバラっていう感じでアレですね。(笑)


Tue Feb 01 2005

20:58 携帯電話から

Photo 0岡塚ショップで昼ご飯。

数字に笑って数字に泣いて

自分の作ったプログラムのチューニングをして時間当たりに処理できる数がxx% 多くなって喜んでみたり。 そのプログラムを使う案件の売り上げ試算とかいうのがやってきて、それの数字を見て「もうこの案件にかかわるのやめようよ」ってリーダーに言われてショゲってみたり。 で、あとでその試算の計算方法が全然試算になっていないことに気づいたりして、こんどはムカっとしてみたり。 「なんでオレが数字にケチつける役なんだよぉ」って思って「自分とほかの人の仕事の役割分担ってなんだっけ」って悩んでみたり、その後のプロジェクトの進行がどうなるのか心配になってみたり。 今回のプロジェクトで一番つらい時期なのかもなぁ。 これ越えたらいいことあるといいなぁ。

でも辛すぎ。 まぢで泣きたい。

音楽仕入れ中

なんとなく会社帰りにツタヤに寄って半額レンタル。 古いとか椎名林檎が多いとかいう突っ込みは無視の方向で。


Wed Feb 01 2006

saku saku Ver 2.0 ヴィンの復習

とりあえず予約してみるか。


Thu Feb 01 2007

バザールモデルにおける品質、か

ミラクルリナックスの吉岡さんのBlog より。 引用されているグラフの、脆弱性が発生している対象として、かたや Linux カーネルだけなのに、Windows 2003 Server だと 2003 Server すべての内容物になるんですよね。 となると比較する範囲が違っていて、説明するための資料としては妥当ではなさそうだ。 Windows のカーネルと呼んでいる部分と、Linuxのカーネルでは、APIのレイヤーでのカバーしている領域も違うので、一概に比較してもいけないでしょうし。 脆弱性なんてリリース後に発見されました、という場合のことをいっているので、脆弱性の数が少ない原因として考えられるのが、そもそも脆弱な部分が少なかったり発見されやすいものはすでに発見されている、または、そもそも見ている人が少ない、とかあるわけで。 今回の吉岡さん文章だと、脆弱な部分がそもそも少ない理由として、すでに発見されやすい体系だから、と言いたいのでしょうね。

定量的に品質を比較するの難しいですね。

Rails でのセッション

昨日発見したOpenIDの実装を見ていたところ、OpenIDで認証したあとには @session[:user_id] に認証した順番が数字(番号)として保存されており、その user_id から MySQL の users テーブルにuser_id に対する OpenID のURLが保存されていて、OpenID の URL を知りたいときには毎回 MySQLサーバに問い合わせる形になる。 んで、@sessionで出てくるセッションってなんぞやとか思って、また Rails のなかをひっくり返してみていたと。 セッションは Rubyの cgi ライブラリに装備されている CGI::Session をつかっており、ブラウザごとにユニークなIDを振って、そのIDごとに key=value なデータができるようになっている。 ブラウザへのユニークなIDの保存の部分までコードを追いきれなかったので推測になりますが、たぶんCookie使っているのでしょう。 セッションの中身 (key=value の部分) については、ローカルのファイルシステムに保存するようになっていた。 つまり、Webサーバを複数台置いて負荷分散するときには、あるWebサーバが受けたリクエストのときに設定したセッションに対する値が、別のWebサーバがリクエスト受けたときには、なんらかの共有などを行わない限り参照できない。 セッションの中身を共有するには、ディスク共有とかわけわからんことせなアカンと。 共有なディスクなんか置いてしまった日には、大量のユーザが利用したときややページビューを受けたときにはそこがボトルネックになってしまうことがあるので、何らかの形でデータの分散保存ができなければならないのです。 分散保存できるシステムって、がんばればできるのですが、そんなに頑張りたくないのが本音。

方向性としては、OpenIDで認証受けた内容を、WebブラウザのCookieに焼いちゃえばいいのでは、と。 んでクッキー焼くときに署名的なものを入れてデータの改竄を検出できるようにしておくと。 そうすれば認証したユーザ名を入れても安心だろうなぁ。

ただ今回は、この認証部分とか、これのスケーラビリティーの話をつめたいわけじゃないので、この課題は気が向いたら対応します。

本日のツッコミ(全2件) [ツッコミを入れる]

knaka [マイクロソフトが比較を喧伝する際には、Windowsの内容物 vs Linuxディストリビューション全体で比較するの..]

まさる [そっか、MSも同じようなことやっているんです。 まぁ厳密に平等な比較は難しいってことで。]


Fri Feb 01 2008

二重橋前

2月1日リリースのシステムのリリース作業を終えて今帰宅。 電車寝過ごして取手とか箱根湯本とかにならないように気をつけて帰ります。(笑)

Photo 0 (05:17)

本日のツッコミ(全2件) [ツッコミを入れる]

いけだ [へーしゃのあめーりかん、買収のうわさ。 http://dailynews.yahoo.co.jp/fc/econom..]

まさる [どうなるんだろうね、いろいろと。]


Sun Feb 01 2009

海老名SA

こんな時間なのに環八三本杉陸橋から高井戸が渋滞なのか。

Photo 0 (01:00)

Kさんお疲れ様でした。

前々職でお世話になったK先輩が退職されることに。 しばらくはプーさんだって。

お疲れ様でした。

コミュニケーション能力(2)

先日の話の続き。 

で、コミュニケーションの状態が良好でないパターンを見て、その原因について考えてみた。 考えられることとしては、このような点だ。

  • 過去の出来事による。 かなり悪い状態で一緒に仕事して関係悪化したなど。 まぁ、しょうがない。
  • 待遇の違い。 彼はソコソコの仕事しかしていないのに高い評価や多い報酬を得ている、とか思っている場合。 こういう場合はだいたい、低評価・小報酬側が高評価・多報酬にたいしてコンプレックス感じることが原因だったり。
  • 価値観の違い。 その仕事に対して思っていることが全然違って価値観違うなど。 こういうのはマネージャが適切にテーマを定義していないとかが原因かもな。 あと、それまでの経験によって、価値観違ったりするわな。
  • スキルの違い。 スキル高い人が低い人に対して「こいつアホか」と思って相手にしなくなる場合や、低い人が高い人にコンプレックス持ったりするんだろうな。 スキルの補完がしあえる関係ならばよいのだろうけど、一方的に高スキルだったり低スキルだったりすると、相手する・追いつくのに疲れるしね。

ほかにもいろいろありそうだが。 類は友を呼ぶ、なんていうので、いいチーム作るには、類友を上手に使うっていうのも必要かも。 類友がよいパフォーマンス出すかどうかは、また別の問題だろう。

たとえば、チームのパフォーマンスを上げようと、優秀なスタッフやマネージャーを連れてきたとしても、スタッフやマネージャの優秀さとチームの優秀さに大きな隔たりがある場合、コミュニケーションの不調によりそのままチームの平均点上昇ってことには、すぐにはならないだろう。 逆に経験すくないスタッフを優秀なチームに放り込むと、その人次第ではグングン成長するかもしれないが。

なんだか脈略ないまとめになったが、あまりかけ離れた人材を入れるといろいろ難しいよ、ってことで。

完読:リーダーシップの心理学

リーダーシップの心理学 (講談社現代新書 (725))(国分 康孝) を完読。

心理学の本を初めて読んだのですが、心理学っておもしろいですね。 人間の感情相手に、前提たてて調査して統計して結果を導いた、みたいなことがいっぱいあって。 なんだかわかったのが、リーダーシップ発揮するには、人間としてきちんとできていないとだめ、ってことなんだろう。

父的親心・母的親心が多い方がよかったり、気が小さいより大きい方がよかったり、危機的な場合など、時と場合によってはワンマンに進めた方がよかったり、と。

リーダーシップについて知ろうと思ったのだが、いろいろと人間の性格について理解することができた。 不思議な言動する人の原因とかがわかったり。

Ubuntu 8.04 の vm で PPTP サーバを動かしてVPN環境構築

リモートのマシンから家のネットワークにVPN接続したくなったので、PPTPを使った VPN 接続環境を作った。

今回、PPTPサーバは Ubuntu 8.04 をホスト (Hypervisor) とした Xen の VM なのだが、特に普通の Ubuntu と変わりなく構築できた。

まずは pptpd のインストール。

sudo apt-get install pptpd

インストール後に各種ファイルを設定。 まずは /etc/pptpd.conf で、割り当てる IPv4 アドレスを設定する。ほかはデフォルトのまま。

# PPTP サーバの eth0 に当たっている IP アドレス
localip 192.168.3.16
# PPTP クライアント(接続してくる側)に割り当てる IPアドレスの範囲
# (192.168.3.192 - 192.168.3.207)
remoteip 192.168.3.192-207

次に /etc/ppp/pptpd

name pptpd
# domain mydomain.net
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
# Debug 必要な場合は debug オプションを
#debug
lock
nobsdcomp

あとは /etc/ppp/chap_secrets を。

# client  server  secret                  IP addresses
username   *      password   *

設定ファイルは以上で終わり。 あと、PPTPサーバ側で IPv4 パケットの forward ができるように /etc/sysctl.conf の編集を行う。

net.ipv4.ip_forward=1
net.ipv6.ip_forward=1

PPTPサーバが、いわゆるブロードバンドルータなどの内側のセグメントにある場合、ポートマッピングを行わなければならない。 PPTPの場合、GRE (47:General Routing Encapsulation) を使うみたいなので、面倒だったので PPTP サーバを DMZ ホストとして設定してしまった。 PPTPサーバで netstat -a -p |grep pptp なんてすると、こんなかんじ。

tcp        0      0 *:1723                  *:*                     LISTEN      13886/pptpd
tcp        0      0 this-host:1723          client:49858         ESTABLISHED 14236/pptpd [114.48
raw        0      0 this-host:gre           client:* 1           14236/pptpd [114.48
unix  2      [ ]         DGRAM                    36651    14236/pptpd [114.48
unix  2      [ ]         DGRAM                    34814    13886/pptpd
A-Term での ポートマッピングの設定

1723/tcp のポートマッピングは簡単だが、GRE側の面倒だったので、DMZ ホスト機能を使ってしまった。

ウチのルータはNECアクセステクニカ製の A-Term なのだが、GRE の設定もできる。 ポートマッピングルールの「【NATエントリ追加】」で、LAN側ホストを PPTP サーバの IPv4 アドレス、プロトコルに「その他」プロトコル番号に47と入力すると、GREのエントリが追加できる。あとはPPTPの接続を受ける 1723/TCP を追加する。 ポートマッピング設定の結果は、キャプチャに載っている設定内容をご参考にどうぞ。 この場合は PPTP サーバが 192.168.3.16 で動いております。


Windows のPPPのTCP/IP詳細設定

あとは Windows 側の設定だが、今回使った Windows Vista Business ではサクっとできた。 スタートメニューの接続先から新しい接続を選んで、VPNを選んで、リモートのホスト名と設定したアカウントなどを設定するのみ。 注意しなければならないのが、VPN接続時の経路設定。 接続先のVPN接続エントリのプロパティを表示して、[ネットワーク]タブの「インターネットプロトコル バージョン4 (IPv4)」を選んで、プロパティをクリックし、上記プロパティのウィンドウの「詳細設定」をクリックし、[IP設定] タブの「リモートネットワークでデフォルトゲートウェイを使う」のチェックを外す必要がある。 (んー手順長い) これをやらないと、VPN の先のデフォルトルートを採用しようとして、VPN接続先以外のインターネットにつながらなくなってしまうのだ。

これで、出先から emobile 使って家のファイルサーバにアクセスできたりする。 なんだか嬉しいw

久しぶりにスポーツクラブ

いつも通りプールで平泳ぎ500m。 ウチのスポーツクラブはプールが8レーンあるのがよいところなのだが、レッスンプログラムで2レーン使っている上に、最近になってから「ファミリー用」とか書かれた1レーンが確保されており、あとは歩行用に1レーン使っているので、普通に泳ぐためのレーンが3つだけになっていた。 以前は1レーンあたり2人ぐらいが泳いでいたのだが、最近は3人〜4人ぐらいになって混雑。 だんだん会員増えたりしていて使いづらくなってきたので、退会しておいてよかった。 今月いっぱいで退会だし。

プールに行くときに、ちょうどゴルフスクール終わった人たちがランチを食べに行こうとしていたのだが、まぁ退会するわけなのであんまり参加する気にならず。 プールの後に仕事したかったので、食事は断ってさっさと泳いで帰りました。

本日のツッコミ(全4件) [ツッコミを入れる]

Kiichiro (knaka) [環八ではよくあること。]

まさる [工事による渋滞、とか言ってました。 帰りは結局、砧公園の北側の道→大蔵→世田谷通り→成城 なコース。]

わしゅう [UbuntuのPPTPサーバのことで教えていただきたいのですが、 イーサネットカードは2枚さしてるのでしょうか? ..]

まさる [PPTPサーバのEthernetカードは1枚だけです。 ルータの設定で外側からやってくる TCP 1723 と GR..]


Mon Feb 01 2010

ノロウィルスっぽい症状

朝から軽い腹痛が。 適度に仕事していたがシンドくなり寝ていたら発熱。

これノロウィルスっぽいな。 大人しくしていますw

本日のツッコミ(全2件) [ツッコミを入れる]

M [エロウィルスの間違いでは??羨ましい。]

まさる [エロウィルスならいいんですが、そんなに良いモノではありませんでしたよw ノロウィルスには2回目の感染なので、一..]


2000|10|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|
あわせて読みたいブログパーツ