2ntブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Eclipceが突然GalaxyS2を認識しなくなる

勉強中にGalaxys2がEclipceから検出できなくなりデバッグ不能に。

ドライバの再インストール等々やってみたけど効果なし

結論をいうとdebug.keystoreの証明書有効期限切れでした。

C:\Documents and Settings\<ユーザ名>\.android配下にある
debug.keystoreファイルをリネーム

新しいキーストアを以下で発行

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

パスは"android"で作成
Eclipce再起動したら何とか認識するようになった。
あたしの3時間返してよ。。。

ActiveDirecotyをcsvでエクスポートしたものをそのままインポートするとエラーる話

こんばんわ、ふぃぶです。
最近仕事系の話ばっかりになっちゃいますけど
ActiveDirecotryが本当に良く分からない。

で、今回のお話なんですけど。
ADのセキュリティグループの状態をバックアップ取るためにcsvで出力したりするわけですよっ。
標準でコマンドが用意されているので

csvde -m -f csvexport.csv

なんてコマンドで吐き出すわけです。
で、実験としてAD上のセキュリティグループ消した後、インポートしてみようって思い

csvde -i -k -f csvexport.csv

ってやると、何故かsyntaxエラーが発生します。
これcsvの中を良く見ると、セキュリティグループのメンバDNが書いてあるところ。
何故か最後に改行文字のLFが入ってるが判明。
(メモ帳見てもわかんないよ・・・っ)

このメンバDNの後ろにくっついてるLFを削除するとうまーく取り込めるようになりました。
ここで疑問なのが、なんでLFなんて付いてくるのか。
色々調べてはみてるんだけどこいつを葬る方法が見つかりません。
どうなってるの・・・


そんなわけで、エクスポートファイルをインポートした時にsyntaxエラーでて困ってるって人
いましたら一度この線を疑って見てください。

しかしなんで入るんだろう・・・。
お仕事場の環境なのかなぁ。それともセキュリティグループの設定なのか、ただのバグなのか・・・。
う~ん・・・

ActiveDirectoryのグループからメンバを1500以上取り出す方法

こんにちは、ふぃぶです。

今回はちょっと毛色の違う話をば・・・。
ActiveDirectoryに設定しているグループのメンバに1500件以上登録しているとします。
VBやC#でDirectorySearcherを使用して取得しようとしたとき、メンバは1500件までしか取得できません。

どうやらActiveDirectoryは1500以上取るのが無理っぽいです。
では、どうやるか。
解決方法がありました。以下のサイトさんで紹介されています。

【ITQ Blogs】
http://goo.gl/4oqvh


英語記事なので若干解説を。(google翻訳を駆使しただけですが・・・)間違ってたら許してね。
ActiveDirectoryからメンバを1500人以上取得するには2つ方法があるそうです。
記事内でソースコードが2つ紹介されています。
ただ、一つ目のコードはパフォーマンスを考えると少々問題があるようなので
2つ目のコードをオススメされています。

2つ目のコードをざっくりと説明。
コレは何回かに分けてデータを取得する事で1500人以上を取得できるようにしています。
サンプルのコードでは1回の処理で999件取得しています。

12: var properties = new[]
13: { string.Format("member;range={0}-{1}", @from, to) };

この設定が重要です。
from,toを変更する事によって指定した範囲でデータを取得しています。
単純な話、"member;range=0-999"て書いたら0~999件目のデータを取得します。
"member;range=1000-1999"て書いたら1000~1999件目のデータを取得します。

全体的に処理内容を説明しますと・・・
・17,18行目でActiveDirectoryより指定した条件データを取得
・23行目で取得済みの結果セットを取得
・24行目から、結果セットを1件ずつ処理
・27行~30行目でプロパティ名が"member;"で始まるものを取得
これは上記でポイントとした"member;range=・・・"の部分をとるためです。
範囲の部分は0-999や1000-1999など動的になるため、"member;"で始まるものという指定で取得しています

・34行目で、プロパティ名を指定してデータを取得します。
・35行目でようやくメンバー1件1件の情報を取得します。
・51行目でfromの値をインクリメントし、次のデータを処理しに行きます。
 サンプルですと1ループ目が0-998件目、2ループ目が999-1998件目と取得していきます。
 これをグループに設定されているメンバが最後になるまで繰り返します。


また記事の最後に記載されていますが、
サンプルコードですとグループにメンバが1件も設定されていなかったりすると
上手くいかなかったりするので、ActiveDirectoryよりデータを取得した時点で
設定されているメンバの件数が0件の場合処理をしないような判定が必要です。

取得ループの処理もExceptionをキャッチして終了するような形になっているため、
正式にグループよりメンバを取得しきったことを判断してループを終わりにする処理を追記する必要も有ります。
(Exceptionキャッチして抜けてもバグりはしないと思いますが・・・)
最後のデータを判定する方法は”member;range=”の記述で判断できます。
例えば設定メンバが1件しかない状態で取得する範囲を0-999と指定した場合、
プロパティ名は "member;range=1-*"となります。
プロパティ名の最後が*である事を判定する事によりデータがこれ以上ない事がわかるため
それをキーとしbreakを張ってください。


以上でした。
完全に備忘録的な記事になってしまった。
しかし海外の人は本当に頭いいよねぇ・・・。


main.xmlで自分で作ったViewを使う方法

おはようございます、ふぃぶです。

もうすぐ連休が終わりますね。
あたしがもうすぐ死んでしまう・・・あぁ・・・・

さて、今回は自分で作ったViewをmain.xmlに組み込む方法です。
部品だけ自分で作ってあとで使いまわしなんてこともできるしこれができると便利そうですね。


最低限必要な事は以下3点のようです。
・表示するViewを自分で作成(Viewクラスを継承して作ってね)
・res/valueの下にattrs.xmlを作成して、自分で作ったViewへの引渡し属性定義をする
・main.xmlにxmlを使用して追加


以上をやればOKっぽいです。
で、以下サイト様を参考にするとできました。ありがたやーありがたやーっ

http://weide-dev.blogspot.jp/2010/04/xml-customview.html


さて、今日明日で完成できるのか・・・無理でしょう本当に。

please fix them before running your applicationとかいうエラー

こんにちわ、ふぃぶです。

およそ1年のブランクを経てまたAndroidやりだしたらもうエラーひとつも解決できないような酷い状況になってます。
Androidプロジェクトからサンプル作っても「please fix them before running your application」とかいうエラーが発生してちゃんと入ってくれないし・・・。

ということで備忘録


■please fix them before running your application
対処法は3つ。

1.C:\Documents and Settings\[ユーザ名]\.androidの配下にある「debug.keystore」を削除
2.Eclipceメニューのプロジェクト->クリーンで該当のプロジェクトをクリーン
3.Eclipceメニューのプロジェクト->プロジェクトのビルドでプロジェクトをリビルド(自動的にビルドは外しておいてね)

でとりあえず直った。完全に忘れてた・・・。


あともう一つ、GalaxyS2をEclipceが認識しないときの対処

1.プログラムの追加と削除から「SAMSUNG_USB_Driver_for_Mobile_Phones」を削除(既に入ってたら)
2.Samsung Kiesをインストール
3.GalaxyS2側の設定->アプリケーション->開発->USBデバッグにチェックを付ける
4.PCにGalaxyS2を接続
5.Eclipceを起動

これでEclipceのDDMSに端末の情報がゴリゴリかかれていけば接続成功してる。

これだけ調べるのにかなりかかった。
忘れずにメモッとかなきゃ・・・