2012年3月31日土曜日

Apple Mail の問題点

メーリングリストで毎回[文字が化けました再送します」という
メールを見ているうちに、気がついたので書いてみた。

結果的にこのサイトを見て、問題点がはっきりした。

Snow LeopardのMailはUTF-8のメールを量産する 


どうやら最近のAppleMailは、(10.5,10.6/10.7付属)
「ー」(ダッシュ)「〜」(波線)のように
多用する傾向のある記号をメールに含めてしまうと、
エンコードが上手く行えずに8bitで流してしまうらしい。
これはUTF-8からISO-2022-JPへの変換が双方向でない
(わざわざ違うマッピングを用いたことによる弊害?)
というトテモ重たい現実によって起きているのだ。

つまり文字的に不可逆的な破壊が起きる。

これを防ごうとしてUTF-8で無難に送信しようとするので
携帯電話など非力なリソースでメールをISO-2022−JPと
決めうって表示するメールソフトでは見事に化ける。

まあこれも氷山の一角に過ぎないんだよなぁ。
未だに僕はPHPでEUC-JP使ってます。Eclipseでトラブルけど
変換してUTF-8だけでやろうとしてもやっぱり何処かでおかしくなる。
というか使えません。

もうどうでもいいですが。

2012年3月23日金曜日

Subscripse and Eclipse SDK 4.1



MacOSXで、Eclipse3.6 Helios使って色々やってたけど、サーバにおいたリモートリポジトリのsubversionを1.7にした後、トラブルが続いてしまった。 というかあんまりまじめに管理していなかったからだけれど、某所でとにかく大量のコミットが起きた時点で、Repository壊してしまったと勘違いしたみたい。SVN1.6クライアントが1.7サーバとキチンとお話ができなくなってしまっているという悲劇もあるけれど、それ以上に酷かったのは、MacOSXのEclipse 3.6 Helios君のSVN-JavaHLあたりの混乱。Subversiveがまともに動かなくなってしまった。これ、インストールする時も出てちょっと困った記憶があるけど、もうほとほと嫌になったのだ。

で、 http://subclipse.tigris.org/ ← Subclipse に移行することにした。

Eclipse3.6も駄目だったし、3.7もインストールしたけど、同じような原因で壊れ、汚染された後SVN関連には不可逆的な疵が残ってしまったので諦めた。

Macには、Mac portがあり、subversion-javahlbindingsをこちらからも導入することが出来るので、試してみた。これの効果もあったのだろうか???

sudo port install subversion-javahlbindings
Password:
--->  Computing dependencies for subversion-javahlbindings
--->  Dependencies to be installed: junit hamcrest-core apache-ant
--->  Fetching archive for apache-ant
--->  Attempting to fetch apache-ant-1.8.2_0.darwin_10.noarch.tbz2 from http://packages.macports.org/apache-ant
--->  Attempting to fetch apache-ant-1.8.2_0.darwin_10.noarch.tbz2.rmd160 from http://packages.macports.org/apache-ant
--->  Installing apache-ant @1.8.2_0
--->  Activating apache-ant @1.8.2_0
--->  Cleaning apache-ant
--->  Fetching archive for hamcrest-core
--->  Attempting to fetch hamcrest-core-1.2_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/hamcrest-core
--->  Attempting to fetch hamcrest-core-1.2_0.darwin_10.x86_64.tbz2.rmd160 from http://packages.macports.org/hamcrest-core
--->  Installing hamcrest-core @1.2_0
--->  Activating hamcrest-core @1.2_0
--->  Cleaning hamcrest-core
--->  Fetching archive for junit
--->  Attempting to fetch junit-4.6_2.darwin_10.noarch.tbz2 from http://packages.macports.org/junit
--->  Attempting to fetch junit-4.6_2.darwin_10.noarch.tbz2.rmd160 from http://packages.macports.org/junit
--->  Installing junit @4.6_2
--->  Activating junit @4.6_2
--->  Cleaning junit
--->  Fetching archive for subversion-javahlbindings
--->  Attempting to fetch subversion-javahlbindings-1.7.4_0.darwin_10.x86_64.tbz2 from http://packages.macports.org/subversion-javahlbindings
--->  Attempting to fetch subversion-javahlbindings-1.7.4_0.darwin_10.x86_64.tbz2.rmd160 from http://packages.macports.org/subversion-javahlbindings
--->  Installing subversion-javahlbindings @1.7.4_0
--->  Activating subversion-javahlbindings @1.7.4_0
--->  Cleaning subversion-javahlbindings




ということで、これ入れたあと、Eclipse4.1を展開。


そういえば、おかしくなってたEclipse3.x系は Install/Update のペーンで

[Uninstall or Update software that is allready installed]

が 出てなかった。 マーケットプレイスで全部やれということになってたのかも
しれないけどアレはざっくりしし過ぎてて使えない。

Eclpse4.1 は、結局下記のようなインストール状況となって動いている。
mergedocとか突っ込めば動くのかもしれない。でも作業環境が壊れるのが
嫌なのでしばらく日本語なしで。

   CollabNet Merge Client    3.0.7    com.collabnet.subversion.merge.feature.feature.group    CollabNet
  Eclipse SDK    4.1.0.M20120223-0900    org.eclipse.sdk.ide    null
  JNA Library    3.4.0.t20120117_1605    net.java.dev.jna.feature.group    null
  PHP Development Tools (PDT) SDK Feature    3.0.0.v201201110400-77-184_2BEICRgM_fMVcz0M4Va9O    org.eclipse.php.sdk.feature.group    Eclipse.org
  Subclipse (Required)    1.8.7    org.tigris.subversion.subclipse.feature.group    tigris.org
  Subclipse Integration for Mylyn 3.x (Optional)    3.0.0    org.tigris.subversion.subclipse.mylyn.feature.group    tigris.org
  Subversion Client Adapter (Required)    1.8.1    org.tigris.subversion.clientadapter.feature.feature.group    tigris.org
  Subversion JavaHL Native Library Adapter (Required)    1.7.4    org.tigris.subversion.clientadapter.javahl.feature.feature.group    tigris.org
  Subversion Revision Graph    1.1.1    org.tigris.subversion.subclipse.graph.feature.feature.group    tigris.org
  SVNKit Client Adapter - BETA (Not required)    1.7.0    org.tigris.subversion.clientadapter.svnkit.feature.feature.group    tigris.org
  SVNKit Library    1.7.0.beta3_t20120306_2144    org.tmatesoft.svnkit.feature.group    TMate Software

4月3日:追記

 Subscripseに入れ替えてもなお次の問題は解決されていません。

  1. リポジトリ上のリビジョンをRevokeできない。
  2. 特定のリビジョンにバックステップする事すら出来ない。
これかなり使いづらい。 履歴は参照できて過去の変更点を探す事は出来ても、プロジェクト全体に変更を行った後、しばらくしてその変更を全部諦めたい というプロセスが、まったく別の方法でしか実現できない(改訂リビジョン丸ごと別なプロジェクトとして、読み込む。Eclipse側の管理としてはリポジトリの本流に従う事がない等)など、欠点が露呈し始めています。中央リポジトリで、割と枝分かれしない開発スタイルでも、ほぼMercurialで管理してるのと変わらず、追いにくい開発環境毎の分散化に拍車がかかるようになっているので、かなり悩みどころ。


2012年2月10日金曜日

samba3.0 -> 3.x 移行に関する諸考察

元来、人間として懶(ものぐさ)に出来ているために、こんな時期までsamba3.0.32 が生き残っていたり…いや動いているサーバを入れ換える理由なんかないんだ。

ということで、3.0.xから3.2/3.3/3.4/3.5/3.6  という各マイナーアップグレードに
ついてリリースノートなんか見て確認している。


恐ろしいことに、本家の Samba3-HOWTOにすら、3.0→3.2のアップグレードについての諸注意点が全く記されていないという現実にはほとほとうんざりしてる。

何も考えずにアップグレードを仕込んでしまった結果、運用障害が発生したケースもあるので、どうにかしたい所でもあるけれど、2.2→3.0ほどはひどくはない。

3.0 → 3.2 については、リリースノートを読むとこうなっている。


Major enhancements in Samba 3.2.0 include:

  File Serving:
  o Use of IDL generated parsing layer for several DCE/RPC
    interfaces. ← (DCE/RPCセル?)
 
  o Removal of the 1024 byte limit on pathnames and 256 byte limit on
    filename components to honor the MAX_PATH setting from the host OS.
 
  パス名256バイトの制限が撤廃されてOS依存に
  
  
  o Introduction of a registry based configuration system.
  レジストリを使ったシステム設定の端緒がツイた。
 
  o Improved CIFS Unix Extensions support.
 
  CIFS拡張 
  o Experimental support for file serving clusters.
 
  クラスタ対応 
  o Support for IPv6 in the server, and client tools and libraries.
 
  IPv6対応 
  o Support for storing alternate data streams in xattrs.
 
  xattrs  拡張ファイル属性 ADS(ファイルシステムのフォーク)
  o Encrypted SMB transport in client tools and libraries, and server.
 
   暗号化SMBサポート
  o Support for Vista clients authenticating via Kerberos.
 
   Vistaクライアントのための認証(Kerberosに依存) 
  Winbind and Active Directory Integration:
 
  Winbind と AD環境 の統合は進んだ。
  o Full support for Windows 2003 cross-forest, transitive trusts
    and one-way domain trusts.
  o Support for userPrincipalName logons via pam_winbind and NSS
    lookups.
  o Expansion of nested domain groups via NSS calls.
  o Support for Active Directory LDAP Signing policy.
  o New LGPL Winbind client library (libwbclient.so).
  o Support for establishing interdomain trust relationships with
    Windows 2008.

  Joining:
  o New NetApi library for domain join related queries (libnetapi.so)
    and example GTK+ Domain join gui.
  o New client and server support for remotely joining and unjoining
    Domains.
  o Support for joining into Windows 2008 domains.
 
などなど。ここまでは追加事項のみ。
 
 
なお、問題になってくるのは、3.3移行。 3.3 リリースノートから。 
 

 General changes:
 o The passdb tdbsam version has been raised. ← うわ、これだ!
 
この前はまったのはこの認証系が切り替わってしまうところ。
 
 
 Configuration/installation:
 o Splitting of library directory into library directory and separate
   modules directory.
 o The default value of "ldap ssl" has been changed to "start tls".

 File Serving:
 o Extended Cluster support.
 o New experimental VFS modules "vfs_acl_xattr" and "vfs_acl_tdb"
   to store NTFS ACLs on Samba file servers.

 Winbind:
 o Simplified idmap configuration.
 o New idmap backends "adex" and "hash".
 o Added new parameter "winbind reconnect delay".
 o Added support for user and group aliasing.
 o Added support for multiple domains to idmap_ad.

 Administrative tools:
 o The destination "all" of smbcontrol does now affect all running
   daemons including nmbd and winbindd.
 o New 'net rpc vampire keytab' and 'net rpc vampire ldif' commands.
 o The 'net' utility can now use kerberos for joining and authentication.
 o The 'wbinfo' utility can now add, modify and remove identity mapping entries.

 Libraries:
 o NetApi library implements various new calls for User- and Group
   Account Management.
 o libsmbclient does now determine case sensitivity based on file system
   attributes. 
 
 ということで、3.3に入れ換える時点で障害確実です。
取り敢えず今日はここまで。
 

2011年7月29日金曜日

ML110G6 on Xeon 3430

これが ¥29,800 とか云うのだから、痺れてしまうねぇ。
ディスクレスだけれど。
ML110 G6 BM101A Xeon X3430 2.4GHz メモリ1GB DVD-ROM HDDレス OS無し



今までこの手の安価サーバはXeonなんて載ってなかったんだから。まあ SandyBridgeの安価なMPUが主流になるとわかってくると LGA1156-XEONは微妙な立場。 とはいえ、LGA775 / Celeron430 の3倍のエネルギーで4倍の性能があるから、僕の納品先では多分有効。今時CeleronでWebサーバなんてどんだけ待ち時間で客の入りをロスっているか分からない訳ですが、そういう選択をしちゃうんだよねェ。止むに止まれぬ選択だとは言え。


WD/RE4 gmirror したマシン・メモリ16GBを搭載して make -j20 buildworld/buildkernel を連続処理した結果
20:53:49 --> 21:20:52  ほぼ26分でした。 timeとコンパイルログを取りながらの結果。
time の出力: 1624.00 real 4392.30 user 511.73 sys …

/dev/nullにログ捨てたらもっと速く終わったかもしれない。

FreeBSD8.2 gmirror install

HP ML110G6 に 保険替わりに HDDx2 で FreeBSDを インストールをする際、ハードウェアRAIDをつけてなければ、GEOM Mirrorを選択するのが弊社の習わし(?)なのですが、やはり手順上次の方法は出来なかったのでご報告申し上げる次第。

1.Install用DISKで起動する。
2.取り敢えずFIXIT選択メニューまで行く
3.FIXIT用LiveFSディスクを予め用意して FIXIT
4.FIXIT中に次のような操作。

 → # chroot /dist
# mount -t devfs devfs /dev
# gmirror load
   # exit
# gmirror label -v -b round-robin gm0 /dev/ad4
# gmirror insert -v gm0 /dev/ad5 (ata2-slave??)

5. FIXIT終了
6. さてインストール媒体を探させてみる → ad4/ad5 げげーん。

ということで、sysinst は mirror/gm0 とか探さないらしいと判った。
この辺り、設定ファイルか何かでいじれるんだろうかねぇ。

今回の納品の前に収めた機材の場合は、HDDx1 だったので、sysinstでディスクを切るという手間を、起動中のコピー元サーバに刺して実行。その後 make installworld をしてみた(DISTDIR設定をする)。実は、こっちの方が手間がかかった(初回のsysinstがディスクを全部umountして終了しやがったので、コピー元のサーバがパニックして再起動になった)ので今回はやめておいた。

オリジナルインストーラを作って最初から必要なものを自動で生成してくシステムを作っておいたほうが良さそうな気はしてきてる(管理してる*BSDサーバが30台近くなると入れ替えは毎月あってもおかしくない)けど、どうしましょ。

2011年7月8日金曜日

iPod touch再入獄…

iPod touch 4G君。 開発ターゲット用に買ったはいいけれど本人の飽きっぽさに放置半分の可哀想な機材です。なんでそんなに使わなくなったか理由を幾つか書きましょう。全部、iPhone4Gに比べての話です。

  • WiFiの電波掴みが宜しくない
  •  酷いと10db位違います。
  • OSとして使えるメモリが少ない
  • iPhone4G 512MB で iPod touch 4G 256MBという話
  • カメラもしょぼい
  • iPhone4Gのフロント(つまりFaceTimeで自分が撮られる側)カメラ程度で固定焦点

    iPod Touch4Gは、iPhone4G-3Gモデム ということではないという事が明らかになると、持ち歩く場所がなくなってきます。

    ということで、僕にとっては残念な機械ですが、それでも音楽を聞くときにはiPhone4よりも良いです。特にAudio出力はしっかり出てくるので、スピーカ直結しても遜色ない音が出ます。そしてiPod(ウチにはiPod Color/iPod miniがあります) でないと動かないアクセサリなんかがちゃんと繋がります。iPhone4ではオーディオ機器を繋げても残念な結果になるのは、無断で店頭でのデモ機にぶっ刺してがっかりしていることがあるので(…なんてヤツ)、やっぱり音楽用携帯機器ってことに落ち着けたほうがいいようです。

    4.2.1の時点でもAirPrintに関しては、色々業務が止まることを怖れて、iOS4.1 で留めおいてある、わたしが今持っているたった一台のiPhone4Gには未だ出来ないことです。で、印刷が使えるようにすると何かと重宝するのですね、他人に渡すメモがすぐに取り出せるし。

    この試みを成す前に自宅のWindowsPCに AirPrintサービス+Bonjours サービスを動かせばAirPrint共有が出来上がります。Bonjoursサービスを止めていたのが原因でMacOSXのプリンタ共有もうまく行かなかったけれど、このあたりを探っていたらちゃんと動くようになりました。 4.2.1でも使えましたがすぐにはプリンター資源が見つかりませんでした。4.3.3の方が安定して迷わずプリンタ共有を掴めたようなのでこれも特筆しておくことかな。

    WindowsPC用のAirprintサービスはここ から拾ってきました。

    AirPrint、めちゃくちゃ便利です。コイツがあるなら iPad2をジジババ様に渡して欲しいときゃ印刷して〜というのも案外出来る気がする。

    で、脱獄しても使いにくいってことで結局また再脱獄のために再入獄しました。その顛末を書いておきましょうか。
    実は4.2.1JBの最大の問題点は tethered JB だったことですね。つまりヒモ付き。USB紐を付けてパソコンで操作しないと電源切ったりバッテリ切れなんかで止まってしまうとブートできなくて困ります。JB時に分かっていたことだけれどこんなに不便だったらまた再脱獄を出来るようにしてUntethered環境になる方がいいはず。

    再入獄の時は、JB時に設定した /etc/hosts とか色々邪魔するものが多いんで注意。ここでハマって出られない! と16xxエラーで死ぬのです。

    iTunes10.3+4.3.3.ipswがあればとりあえず抜けられますが、/etc/hostsを見直しておきましょう。 今日のところは入獄したところで終わり。

    2011年6月5日日曜日

    NagioSQL/NdoUtils

    最近、Nagios関連を再整備中。

    GUIで簡単に設定できる"NagioSQL"とログを管理できる"ndoUtils"
    FreeBSDで嵌ったところを書いておきます。

    1 NagiSQL/portsで突っ込むときの注意(ツカ今の時点では出来ない)

    perl5.8だと今のバージョンはちょっとダメなので、5.12にする。
    今のports(2011/06/01頃)はpear/peclのインストールパッケージの
    判断が変だから、ports使わない方が良いです。ダウンロードして、
    野良で突っ込んでおいたほうがマシです。PHP5.3.6に対応してない
    portsなのかもしれぬ。


    2. ndoUtilsのユーザ関連について

    Linuxの場合だとtar-ballから突っ込むパタンが多くて、個々の
    流儀があるが、portsでは"nagios"一辺倒なので、他のユーザ名を
    使ったりしないこと。スクリプトを全部自前で書き直す根性がある
    場合に限り何をしても構わないけれど、nagiosがブローカに渡す時点で
     齟齬をきたして

     Broken Pipe

    なんてしょーもないエラーで止まってしまう。ブローカっつのが
    くっそ無愛想なのでたた殺したいがそれは仕事をしてもらう関係で
     我慢我慢。

    3. mysql について

     postgresqlでも動くものもある(ndoutils)が、NagioSQLが対応しない
    仕方ないので、mysqlを入れておく。mysql55をさっくりと入れられるのは
    これまでの付き合いが0だったからいいのだが、やはりよく分からないので
    phpMyAdminがあると便利だった


    なんか堕落の一途をたどっている気がする。
    以上

    つかndoutilsを使って監視サーバをまとめるとかやってみないと
    意味ないんだよね。