Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2010-05-01 [長年日記]
_ memo:波動関数とは何でしょうか? ψの意味がよく分かりません…。
(http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1426576269) この年になって、波動関数におめにかかることがあるとはおもわなんだ。
_ Elkhound
Elkhound: A GLR Parser Generator(http://scottmcpeak.com/elkhound/) まえに探した時には見つからなかったが、バークレーでやっている Open Source Quality Project(http://osq.cs.berkeley.edu/)からの link では見つけられなかったのでありがたし。
2010-05-02 [長年日記]
_ Xサーバ1.7→1.8、HAL から udev
Ubuntu 10.04ではHALがなくなる(http://d.hatena.ne.jp/odawara/20100423/p2)経由で、Xサーバ1.7→1.8、HAL から udev(http://kawaji.wordpress.com/2010/01/05/hal-udev/)の話、そのうちお世話になりそうなんでメモ。
2010-05-03 [長年日記]
_ [Benchmark] プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ
プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ(http://d.hatena.ne.jp/kwatch/20100430/1272585083)
人によっては実際を反映しないんじゃないかというのもあるが、ベンチマークは参考にして自前で動かしてみることがないと実際はわからないのか。たしかに言語が速くても、メモリーにロードするのに時間がかかったり、テンプレートエンジンという文字列を操作する動的な仕組みを得意かどうかでも変わる。
また、プログラム作成の時間や枯れたライブラリがあるかなど悩むべきポイントはまだある。
_ MTRR機能
(http://www.itmedia.co.jp/help/tips/linux/l0173.html)MTRR機能で高速化する話はほかでもみるが、「なぜMTRR機能を使うと速くなるのか?」を教えてくれる記事を見たことがない。
CPUの機能とLinuxカーネルの仕組みとか、カーネルをgrepで調べるとかしたらわかるのかなあ。なんかわからへんけど早なるからええんや。とか気持ち悪くない?
2010-05-04 [長年日記]
_ Spamassassin の site設定および個人設定
Site設定および個人設定を個別に設定する方法があるかと、聞かれたので、少し調べて
のあたりから見てもらうのがよさそうだとお話をさせて貰いました。Spamassassinの設定ファイルは、上記のユーザのhomeディレクトリに作成される .spamassassin/user_prefsと/etc/mail/spamassassin/local.cfに記述され、前者はユーザ毎に適用され、後者は全てのユーザに適用されます。
2010-05-06 [長年日記]
_ 組み込みプレス Vol.19
組み込みプレス Vol.19(http://gihyo.jp/magazine/kumikomi/archive/2010/vol19)に、「特集1 - 組込みOS入門 - 第1章:実践:組込みOSとは」の部分で記事を書かせていただきました。
2010-05-07 [長年日記]
_ memo:「はしごを外されない」ための対処術
生きていれば、見たり、聞いたり、体験したりする。あまり嬉しいものではないが、文句をいっても何ともならない。小島貴子の「キャリア・ビタミン」「はしごを外されない」ための対処術(http://www.nikkeibp.co.jp/article/column/20100506/224507/)
歴史の例をみても、公明正大にやって成功する人もいるが、力に彼我の差がある場合、組織にすり寄り上手く立ち回った者が勝利者になる場合もある。
運命の風向きなど私には判らないが、風向きは同じ方向だけに吹かないことだけは理解できた。
2010-05-10 [長年日記]
_ [CentOS] Cscope
Debianだと、aptitude install cscope するのだが、なぜかCentOSではデフォルトで Cscope が入っていた。
findで対象ファイルを絞り込み、インデックスを作る。基本は端末で操作です。なのでssh越しでもいけますよ。つまり putty などで Linux マシンにアクセスする環境です。
_ [Emacs] memo:Emacs 23.2リリース、入力補完やクラスブラウザなどを備えたプログラミング支援ツール「CEDET」を標準搭載
ECB の関連で、必要に迫られて CEDET の INFO をたまたま読んでいたので、私の中ではちょうど旬な話題でした。
CEDETって、確かに便利だけど設定が、ちと大変かもね。英語なら、よさげな文書があるようだ。
GNU Emacs開発チームは5月8日、オープンソースのテキストエディタ「GNU Emac 23.2」をリリースした。クラスブラウザや入力補完機能などを備えたプログラミング支援ツール「CEDET」の導入などが特徴となる。
[Emacs 23.2リリース、入力補完やクラスブラウザなどを備えたプログラミング支援ツール「CEDET」を標準搭載 2010年05月10日 16:45より引用]
2010-05-11 [長年日記]
_ memo:「まぐれ」と「極意」 勝負に勝つ上達のセオリー --- 言葉の事故を防ぐ
ぎくしゃくした人間関係は、ちょっとしたきっかけで絶縁状態に発展してしまう。その引き金はたいがい「何気ない一言」である。
[「まぐれ」と「極意」 勝負に勝つ上達のセオリーより引用]
怖い。その通りだ。最近、なにげなく肩を軽く叩いて注意を惹こうとして、ものすごく驚かれたことがある。相手は肩叩きの連想をして酷く狼狽したのだった。
相手がなにでツボに入るかわからない。下記のように自分で決定的な分岐点だと理解しているなら、まだ耐えやすいのだが。
結果を覚悟したうえで、怒りや批判を相手に浴びせたのならいい。だが、「よそ見をしていて打球をトンネルしてしまう」のと同じレベルの軽率な言葉が、微妙な人間関係をいともたやすくぶち壊す。
[「まぐれ」と「極意」 勝負に勝つ上達のセオリーより引用]
一見、理不尽に思えることでも相手にとって何かしら意味があるからやっているのだろうとは思うが...全部を自覚して対処できるようになるだろうか。..._ 長電話
仕事の関係で、何人かに電話をかけた。久々に電話でおはなしする人もいて、S氏とは近況報告みたいな感じに移行してしまった。今月末には燃えているプロジェクトが、良くも悪くも一つの結果が出るとのこと。
元気そうな声だったので、少し安心した。6月になったらメシに行こうという話に。
2010-05-12 [長年日記]
_ [Emacs] major/minor でのメニュー
Emacs 23になってから? なのかわからないのですが、ステータス行の部分は major モード / minor モード を選択するとメニューがでるようになりました。
おかげで、tDiary モードが提供する HTML や SGML のメニューなどがあることに気がついた。
_ eXtreme Meeting
今頃知ったのですが、eXtreme Meeting をビジネスにしていた会社さんが、新規ユーザさんの募集を打ち切り、事業ドメインの変更をなされているようです。
この eXtreme Meeting のやり方を聞いた時には、そういう風に会議を進めるとうまくいくものなんだなあと聞いていたのですが、なかなかビジネスとして定着させるのは難しかったようです。私が最初に聞いたのが5年前になります。早いものです。
_ フェムトセル
今日はじめて、フェムトセルという言葉を知る。うちはAUだけど、DoCoMo や ソフトバンクでは、もうやっているのね。(http://ja.wikipedia.org/wiki/フェムトセル)
むつみさんのところで、ソフトバンク フェムトセル(ホームアンテナFT)申し込み(http://hanzubon.jp/node/5139)という記事が出ているので、気になる人は読んでおくと、無用な罠に陥らずに済むかと。
_ 非上場でのメリット
twitter経由。いくつか気になる言葉が。独占インタビュー ジム・グッドナイト SASインスティチュートCEO 「34期連続増収増益でもウォール街に背を向け株式非上場を貫く訳を語ろう」
_ comp.lang.c
すげー。なんだ、こりゃ。(http://groups.google.com/group/comp.lang.c/msg/e105e5d339edec01?pli=1)このプログラム、あまりに意味不明なので、手元でコンパイルして実行したら、出力は想定したままである。
こりゃ、仕掛けを見てやろうと CPPを通した結果を indent で整形してみたが、それでも、こんな形に。
まずは、元ソース
#define M 002354l #define A 000644l #define G 000132l #define I 000322l #define C 000374l #define a ; #define b for #define c ++ #define d % #define e int #define f , #define g - #define h 011 #define i = #define j { #define k ) #define l '\n' #define m main #define n < #define o } #define p > #define q && #define r ( #define s || #define t ? #define u putchar #define v void #define w '*' #define x : #define y ' ' #define _ / #define C_O_O_L return e u r e k a e m r v k j j j j j j j j j j j j j j j j j j j j j j j j e z a b r z i M _ A _ G _ I _ C a z n G a u r z d h + z _ h p M _ A q z d h + z _ h n M _ G q z _ h n z d h + M _ I q z _ h p z d h g M _ C t w x y k f z d h g h + 1 s u r l k f z c k a u r l k a j j j j j j j j j j j C_O_O_L M _ A _ G _ I _ C a o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ocppを通して、indentしてみた結果
# 1 "hoge.c" # 1 "で、出力結果は" # 1 " " # 1 "hoge.c" # 35 "hoge.c" int putchar (int); int main (void) { { { { { { { { { { { { { { { { { { { { { { { { int z; for (z = 002354l / 000644l / 000132l / 000322l / 000374l; z < 000132l; putchar (z % 011 + z / 011 > 002354l / 000644l && z % 011 + z / 011 < 002354l / 000132l && z / 011 < z % 011 + 002354l / 000322l && z / 011 > z % 011 - 002354l / 000374l ? '*' : ' '), z % 011 - 011 + 1 || putchar ('\n'), z++); putchar ('\n'); { { { { { { { { { { { return 002354l / 000644l / 000132l / 000322l / 000374l; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
$./a.out * *** ***** ******* ********* ********* ******* ***** *** *である
2010-05-14 [長年日記]
_ [Linux] lsb_release
lsb_release コマンドで、distributionの確認ができるとはしらなんだなあ。
- Debian GNU/Linux lennyの場合
yabuki@yelona:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 5.0.4 (lenny)
Release: 5.0.4
Codename: lenny
- CentOS の場合
$ lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final
See also Linux Standard Base(http://ja.wikipedia.org/wiki/Linux_Standard_Base)
2010-05-15 [長年日記]
_ Exuberant Ctags
マルチランゲージといっても、各国語ではなく、プログラム言語の方です。(http://ctags.sourceforge.net/) Debian に収録されているのはこちらの方です。
_ memo:「年収幾らですか?」への回答
転職エージェントさんの記事、年収いくらですかの回答(http://flinkmatsui.blog97.fc2.com/blog-entry-342.html)景気がいいというか、こういう世界になるのか。
_ 灘高
私も神戸出身ですが、名前は有名ですけど、こういう世界なのですねえ。読み切りノンフィクション ああ、灘高 --- 日本で一番勉強ができた子たちの「その後」 -- 大人になって思う、僕たちは変人なのだろうか(http://gendai.ismedia.jp/articles/-/545)均一性の高い場で起きることの一つか。
_ Wordpress で、出自のわからないテーマは危険
出自がわかっていても、worm に汚染されている可能性があるが、ちゃんとした配布元ならウイルスに感染しているのなら配布をストップし、問題点を告知し、問題点を修正して再配布してくれるはず。
上記のサイクルが働かないソースやテーマを拾ってくると、自分でチェックしなければ、だれもあなたを守ってはくれない。というお話(http://tenderfeel.xsrv.jp/wordpress/837/)
2010-05-17 [長年日記]
_ [Benchmark] JdbcRunner - 汎用データベース負荷テストツール
ベンチマークは指標とはいえ、実機での性能評価の一つとして簡単にできるのは良い。JdbcRunnerは各種データベースを対象とした負荷テストツールです。
スクリプトでトランザクションを定義して多重実行し、スループットとレスポンスタイムを測定することができます。
また、JdbcRunnerにはOracle、MySQL、PostgreSQLを対象とした以下のテストキットが付属しており、ユーザが独自にスクリプトを作成する以外に、これらを用いた負荷テストを行うことも可能となっています。
_ 本をスキャンして pdf 化
ScanSnap! があるので、これまではカッターで本や雑誌をばらしていたが、あまりに大変なので、 とか導入してみるのがいいかもしれない。
作業場所には、大人しかいないし安全確保はできると思う。
2010-05-18 [長年日記]
_ C++におけるテンプレートの追っかけ方を知りたいのだが。
例えば、
mapの特徴
* 要素の追加、キーによる検索、削除が O(log n) で行える
* キーの重複を許さない
* キーの値の小さな要素から順にアクセスできる
* operator[]を用いてPerlの連想配列のように値にアクセスできる
multimapの特徴
* 要素の追加、キーによる検索、削除が O(log n) で行える
* キーの重複を許す
* キーの値の小さな要素から順にアクセスできる
[map, multimap(C++ STL)より引用]
のようなことが書いてある。
上記のことがどうやって実現されているか確認したかったら、どうしたらいいでしょうね。Sunのdbxなら C++ のテンプレートをデバッグできるようです。でも、g++などのオープンソースのテンプレートなら中身を読んだり、デバッグできたりするはず。さて、そういう情報はどこにあるだろうか。
STLportのソース
なぜか、STLportのソースが取れないので、なにか設定不良が起きているのだろうな。sidでは、apt-get source libstlport5.2-devで取れたから、なんだろう。
2010-05-19 [長年日記]
_ java で sizeof みたいなことをがしたかったら。
いやー、javaで sizeof みたいな基本的なことが、昔は大変だったというのがびっくり。困っている人がいたのでGoogleってみたらJavaのオブジェクトサイズの測り方、sizeof(http://d.hatena.ne.jp/minghai/20060319/p1)ってな感じ
_ GNU の bug tracking system
(http://debbugs.gnu.org/) Debian の BTS にインターフェースが似てるなあ。debbugって
$apt-cache show debbugs Package: debbugs Priority: optional Section: misc Installed-Size: 488 Maintainer: Debbugs developers Architecture: all Version: 2.4.1 Depends: perl5 | perl, exim | mail-transport-agent, libmailtools-perl, ed, libmime-perl, libio-stringy-perl Recommends: httpd, links | lynx Filename: pool/main/d/debbugs/debbugs_2.4.1_all.deb Size: 85030 MD5sum: 9ee71a369b44f2603fde74b98754a48b SHA1: 1215d3ab02089024935154a79190056d7d7126bb SHA256: 9204897a95f9108e3548435f343a945b3ee35fd636a16b278ba7adb56380395e Description: The bug tracking system based on the active Debian BTS Debian has a bug tracking system which files details of bugs reported by users and developers. Each bug is given a number, and is kept on file until it is marked as having been dealt with. The system is mainly controlled by e-mail, but the bug reports can be viewed using the WWW. . This version is fully functional, but it does not automatically configure. See /usr/share/doc/debbugs/README.Debian after installation. . Note: there might be various issues with this package, caveat emptor. Tag: devel::bugtracker, suite::debian, works-with::bugsのことだな。たぶん。
_ GoggleのPatent search
アメリカの特許が検索できるのね。グーグル、特許検索サイト「Google Patent Search」を公開(http://japan.cnet.com/news/media/story/0,2000056023,20338893,00.htm)
_ stochastic proximity embedding
twitter上で見たキーワード。どんな図になるかわからなかったが。stochastic proximity embedding(http://blog.kzfmix.com/entry/1273835887)でみて、こういう図になるのだと見ただけ。
2010-05-20 [長年日記]
_ twitux
twitterのWebが Over Capacity になっても API 経由なら読み書きできる場合があると聞いたので、Debian GNU/Linux lenny 上で aptitude install twitux として、twitux をインストールしてみた。たしかにwebで読み書きできなくても、twitux なら読み書きできた。
_ trac のリポジトリブラウザ
最新のtracでは直っているかもしれないが、Trac 0.11.4.ja1 だと、ソースコード中に日本語コメントが入っている場合に、wikiからの参照記法 [sources:trunk/hoge/fuga@rev#L999]でソースコードの参照を書けた場合に、行がずれているのに気がついた。
表示だけで、原因をみると、ソースコード中に日本語コメントが行末にある時、特定の文字があると2行が1行になって見えている風味である。
もちろん、ソースコード自体には何にも影響はない。が、wikiでソースコードに注釈を入れる時に、リポジトリブラウザと実際の行数が違うと、混乱しやすいので、片方に統一だろうなあ。チェックアウトしたソースを正として、時間を稼いで、不都合な日本語コメントを書き直すか、英語にしてしまうなどの方法で解決するのが短期的なゴールか。tracのアップグレードはシステム開発中にやるもんじゃないでしょうしねえ。
2010-05-21 [長年日記]
2010-05-22 [長年日記]
_ memo:ソフト会社に明日はない?
(http://itpro.nikkeibp.co.jp/article/Watcher/20100517/348064/)
これまでの既定路線では、受託開発の縮小に追いついていないというお話で、変化に対応できないと「大きい企業ほど淘汰されるのではないか」という警鐘を鳴らしている。
海外への展開、広義のクラウドによる既存サービスとの競争など。身軽な所から転身をしているので全部は死に絶えることはない。また様々な理由から既存の流れがすべて途絶えるわけでもない。
2010-05-23 大雨 [長年日記]
_ 関西 Debian 勉強会
金曜日に申し込んでおきました。かなり久しぶりに参加しました。ロルフさんとはお会いできるかと思いましたが、参加されず残念です。勉強会の冒頭の自己紹介で近況報告を軽くしてきました。
そこで、懐かしい方々と、しばし歓談。またznzさんの持ってきていた、プログラミングRuby 1.9 −言語編−(Dave Thomas with Chad Fowler and Andy Hun/まつもとゆきひろ/田和 勝)とプログラミングRuby 1.9 −ライブラリ編−(Dave Thomas with Chad Fowler and Andy Hunt/まつもとゆきひろ/田和 勝)の分厚い2冊をぱらぱらと見せてもらいました。
医者からの言いつけを守って、宴会には参加せず。残念だが仕方ない。
2010-05-25 [長年日記]
_ ひさびさに C++ と SQL
ひさびさに、 C++ と SQL にどっぷり。
今日の日付とテーブル内の期限日付の内、大きい方を出力する SQL (MySQL version) 等幅フォントで見てね
+------------+---------------------+---------------------+ | d1 | d2 | d3 | +------------+---------------------+---------------------+ | 2010-05-25 | 2010-05-01 00:00:00 | 2010-05-25 00:00:00 | | 2010-05-25 | 2020-03-01 00:00:00 | 2020-03-01 00:00:00 | +------------+---------------------+---------------------+
2010-05-26 [長年日記]
_ [Linux][MySQL] MySQL クライアントを使う時にやっておきたい設定
select 文を実行して表示が流れて行ってしまうとかいっている人がいた。bashを使っているなら、export PAGER=lv などの設定をしてから、mysqlコマンドでMySQLサーバに接続し、\Pコマンドで出力を PAGERで指定したページャー、先ほどの例ならlvを使えば良いと、一言アドバイス
あと使いそうなコマンドは
- \P:Pagerを有効にする。解除するには、\n
- \. ファイル名 : ファイルをオープンして中に書かれてあるSQLを実行する。ファイル名には同時にパスを指定してもよさそうだ。~などが使えるかは不明。なお、MySQLのSQLコマンドではC言語のコメントと同じ風味にコメントを書くことが出来る。
- \T ファイル名 : MySQLクライアントコマンドでやったことを記録しておきたい場合に有効です。記録するのを止めたい場合は、\t(notee)とセットですね。
_ [MySQL] MySQL のストレージエンジン
MySQLには、ストレージエンジンという概念がある。概略としては第1回:MySQLストレージエンジンの概要(http://thinkit.co.jp/free/article/0608/1/1/)の記事がある。
ちなみに、現在使っているストレージエンジンを確認する方法はどないするかなどは、(http://allabout.co.jp/internet/database/closeup/CU20090320A/)
なかなか面白い概念である。MySQLでデータベースを作成すると、デフォルトは"MyISAM"になる。意図して、"MyISAM"を使っているなら、そのシステムで、MyISAMの傾向と対策を立てているので別に問題がない。
データベースは扱いが簡単になってきているとはいえ、特性を生かさないと思った動きにはならない。
などは参考になった。どうやって追試をするかは、自分で考えないといけませんが。
2010-05-27 [長年日記]
_ memo:「こんな日弁連に誰がした?」を読んで、会務に遠い一弁護士が感じたこと
「こんな日弁連に誰がした?」を読んで、会務に遠い一弁護士が感じたこと (http://blog.livedoor.jp/overbody_bizlaw/archives/462304.html)このblogは、興味深い感じでしたので、こんな日弁連に誰がした? (平凡社新書)(小林 正啓)も積ん読リストに入れておくことにしました。
_ 頭脳還流 --- かわいい子には旅をさせよ
友人のblogですが、シリコンバレーの勃興について、人材の流動が知恵の流動を産み、地域を活性化させたという話をもうちょい、詳しく書いています。(http://blog.livedoor.jp/bijoux_iris/archives/51452665.html)
安定したいのは、人の常ですが、個々の願いとはうらはらな方が地域が力を持つ場合があるというのが面白い所です。
_ 日本のソフトウェアは製造業
そのCusumano先生が、ソフトウェア産業への取り組み方を比較して、こんなことを言っていた。
Europe: Software as a science −ヨーロッパにとってソフトウェアは「科学」
Japan: Software as production −日本のソフトウェアは「製造業」
India: Software as a service −インドのソフトウェア産業は「(プロフェッショナル)サービス」
U.S.: Software as a business −アメリカのソフトウェア産業は「ビジネス」
[日本のソフトウェア産業は「製造業」より引用]
という比較をされている。個々に違う事例はあるがそれぞれの国のおおまかな芸風としては当たっているように見えるが、本当はワールドワイドで仕事しないと、当たっているかどうかわからないからなあ。予断を持って接した方が良いのか、そうじゃない方がいいのか。最近よくわからなくなります。2010-05-28 [長年日記]
_ memo:日本企業の新常識「国内採用抑制、海外採用増」
「就職氷河期」は半永久的に続く!という扇情的なタイトルです(http://president.jp.reuters.com/article/2010/05/17/07EDD7EC-6181-11DF-9170-10273F99CD51-1.php)、のほほんとしてられない気分になりますね。日本もイギリス病に陥るかも知れず。(http://ja.wikipedia.org/wiki/英国病)
_ memo:「厳しい取り立て」を前提にしないとミドルリスク融資はできないか?
これも面白い切り口。お金を貸すビジネスは街金だけじゃないし、貸し方も一つのビジネスモデルじゃないという話です。(http://www.tez.com/blog/archives/001464.html)
借り手を選別というか、金融機関が貸したい会社だけに貸すビジネスモデルがあることを知る。そりゃ、そういうのもあるか。なので、相手から来ない限り、「金貸せ」と申し込んでもそういうビジネスモデルの所は、そう言われてお金を貸すことは稀だそうです。
2010-05-29 [長年日記]
_ memo:Btrfs、開発が間に合えばUbuntu 10.10で採用
Btrfs、開発が間に合えばUbuntu 10.10で採用(http://journal.mycom.co.jp/news/2010/05/18/006/)どれぐらいの人が参加してBtrfsを試すかだな。LTSを出した後のリリースだから冒険するのかな。...
2010-05-30 [長年日記]
_ 京都大学法学部の法律相談
試験の帰りに、図書館に寄ってピアレビュー―高品質ソフトウェア開発のために(Karl E.Wiegers/大久保 雅一) をピックアップするつもりだったのだが。... 思いがけずに、京都大学法学部の学部生が法律相談をしてくれているとのこと。混んでいたら辞退しようかなとおもってましたが、わたしのいった15:30頃は空いていて、Welcome状態だったので、すこし教えていただこうと、ソフトウェアに関する基礎的なことについて、法律を勉強している人からの意見を聞けました。
定期的に京都大学で、法律相談しているそうなので事前に事案内容をfaxなどしておけば、学部生の方が下調べをして臨んでくださるとのこと、シビアな状態になるまえに法的なリテラシーを向上させるには良いステップかも。
_ 「メールのヘッダに埋め込む用に文字列をBase64エンコードする」をbashとbase64コマンドでやってみると
下田さんの所から
irbを起動して
require "base64"
def encode( str )
"=?iso-2022-jp?B?" + Base64.encode64( NKF.nkf( '-j --utf8-input', str ) ).chomp + "?="
end
を貼り付ける。後はencode("文字列")でその都度結果を見ればいい。
[メールのヘッダに埋め込む用に文字列をBase64エンコードするより引用]
という、のがあったが、base64コマンドを利用して作れたりするかなとおもってやってみた。#!/bin/bash -x HDR='=?iso-2022-jp?B?' #STR=`echo -n "日本語" | nkf -j | base64` STR=`echo -n $1 | nkf -j | base64` FOT='?=' printf "%s\n" $HDR$STR$FOTというshell scirptをつかって
$ bash msc.sh 日本語 =?iso-2022-jp?B?GyRCRnxLXDhs?=という結果になる。MSCはMail Subject Creationとかの適当な名前。irbの結果は
irb(main):006:0> encode("日本語") =?iso-2022-jp?B?GyRCRnxLXDhsGyhC?=とかになるが、実はnkf -w でmimeをdecodeすると同じ日本語って変換されてしまい、これ以上は真面目に追っかけないとわからないのであった。
$bash msc.sh 日本語 | nkf -w 日本語 $echo -n "=?iso-2022-jp?B?GyRCRnxLXDhsGyhC?=" | nkf -w 日本語
ほかにも楽しそうな所としては、AWKでbase64や、luaでbase64のencode/decodeとかあります。また nkf でmimeをデコードするのは、nkf コマンドで base64 エンコードされた文字列をデコードするを参照しました。
2010-05-31 [長年日記]
_ git-svn が使えないこともある。
svnのリポジトリをgitで扱いたくて、git svn clone するも、reallocできねーぜというメッセージが出てうまくいかず。4Gのマシンでgit svn clone -r HEAD svn+ssh://yabuki@hoge.example.jp/svnroot/svn/project-name
してもダメ。なかに巨大なtar.bz2ファイルがcommitされているとダメなのかのお。たしかにsvnで checkout するのに30分はかかる。
_ git をつかっていると、svnで寂しいこと
svnでのワークフローは、ブランチを切って作業するのが基本で、コミット単位は、ファイル単位です。
gitでは、git add -p などでインデックス(git での用語、commit をする差分を置くための中間領域)を操作できるようになると、マージの作業で楽ができるように、予めHEADというか、svnでいうところのtrunkに、マージしておきたくなることもあります。
作業方法の違いなので、お仕事の場合プロジェクトの方針に合わせるのが基本ですが、svnで意味単位にリビジョンを作るのは、gitに慣れてしまうと敷居が高いように感じます。割り込みが一切入らずに関係ある部分のみ修正してコミットが必要なのですから。
svnでブランチを切るコストが低い場合は上記はわりと容易に達成できるのですが、ブランチを切るコストが自分及び同じプロジェクトのメンバーに対して高いとbranch作成の躊躇度はupする。6人のプロジェクトの時間を30分失わせるとすると人数x時間なので6人*30分=3時間プロジェクトの時間を失わせる。実際にはバックグラウンドでsvn updateして途中、他のことも出来るし、知恵を使って時間を失う痛みを軽減はできるとしても、うれしくはない。
あー、git-svnが使えなかったのは、ちと苦しい。
_ ss [以下のWebページの説明が簡潔かと http://mcn.oops.jp/wiki/index.php?CPU%2F..]
_ yabuki [ありがとうございます。参考にさせていただきます。]