Translate

2011年1月13日木曜日

Chatterのチュートリアルをやってみる













社内でTwitterクローンを作るのも良いけど
社外で仕事しているメンバが使えない。

使えるようにするには
DMZに置かないといけないとか
色々面倒だ..

となると候補に出てくるのは
Salesforce.comのChatterだ。

最初金取られると思ったのだけど
サイトをみると無料版もあるみたいだ。

developerforceにあるチュートリアルを
とりあえず.NETから使うところ(4つめ)を飛ばしてやってみたが、
まあ..うん簡単かな。

ファイルの投稿もできるし
グループも作れる。

ユーザ単位でのフォローもできる。

ハッシュタグのかわりは
グループでできるかもしれない。
ただ複数グループ同時(ハッシュタグを複数打つ)は
できなさそうか。

ただまだ携帯はiOSだけだ。
Androidはまだ出てないみたい。
#BlackBerryもでるみたいだけど
#こっちは..いいか

Javaアプリから
Webサービス使うときも
ConnectorConfig#setProxy(host, port)
使えばproxy設定できるので
定時連絡アプリとかも社内で実行できる。


にしても..
どうも Salesforce.com の Chatter サイトは
理解しずらいので
結局自分で実際に使ってみないとよくわからなかった。

無料と書かれているのに使い方がすぐにわからない..
Developer Editionからのルートが書かれていない。

「ほんとに、CRMをやっている企業か?」
と思ったけど
ひょっとしてわざとわかりづらくして
見込み顧客からSalesforce.comへアクセスさせるのが
目的なのかもしれない。
もしそうなら大人な会社だ..
もしそうなら、だけどね。


Google先生に聞いてみると下記の記事がヒットした。

この記事をよむと Developer Editionからだと100ユーザまで使えるらしい。
Force.comではなくCRM側のContact Manager EditionでもChatterつかえる
ってあるけど、
Salesforce.com社のサイトの
にはそれらしいことが書かれていない。
あ、Contact Managerって5ユーザ(20GB)までじゃん..

とりあえず、
ざっくりわかったところまで書いてみると..

・Chatterを理解するにはDeveloper Force JapanのChatter Workbookを
 半日実際にやってみれば覚えられる
 フリーメールアドレスをつくり、試せばよい。
・ChatterはSalesforce CRM/Force.comへログインして使う
・ログインして右上のアプリ選択で Salesforce Chatterを選んで使う
 ログイン名はメールアドレス形式だが、架空でもよい
 ただしユーザは必ず使っているメールアドレスを別途指定する
 このアドレスに初期パスワードやフォロー先の更新情報が来る
・グループが作れる
・ファイルも添付できる(エディションの上限まで)、グループにファイルを置ける
 同じファイルをアップロードしても同一ファイルの更新にはならず別々
・フォローは個人、グループや個別のファイルに対して張れる
 フォローをはると更新がタイムライン(?)にでる
・社内のJava/.NET アプリからアクセス可能
 Webサービスで接続、proxy経由でもOK
 コーディングはSObject(Force.com/Salesforce CRMのDBテーブルのようなもの)を
 知らないとできないのでChatterだけでなく
 Force.comのworkbookもやっておくとよい
・Google App EngineからSObject連携ができるので、正直RDBになれたアプリ屋
 からすると使いづらい面をBigtableにかわってForce.comを使って逃げることもできる
 Amazon RDSもあるか..JDBCがApp Engineに載るかどうか知らんけど..
・Workbookをやっている人は「Force.comクラウドアプリケーション開発」を買わないでよい
 細かなエディションだとかの情報がまとまっている部分のみ有用
 画面もバージョン10ですでに現時点で1つ前
・無料でChatter使えるのはForce.com Developer Editionで100ユーザまで
・有料でChatter使える一番安いのはSalesforce CRM Contact managerだが
 5ユーザまでらしい
・Chatter単独だと1500円/月人
 1000人の会社が1年で2300万以上になる
 ので意外と高い→社内サイトorAWS micro上にTwitterクローンのほうが安い
 Contact Manager以外のCRMエディションは3000円以上になる
・Salesforce CRM/Force.com裸単騎の機能では帳票を作る部分の機能が弱い
 AppExchangeに帳票系のアプリはありそう(ウイングアークとか)
・Salesforce.com サイトはCRMを売っている会社なのに顧客にとってわかりずらい
 開発者のコミュニティもさほど活性化していないのも、
 このSalesforce.com社の迷彩戦術の結果かもしれない



あと知りたいのは、
Active Directoryのユーザ認証連携がわかれば
万々歳なのだけど..これはまだ良くわからない。
Open IDとかでなくできれば社内のActive Directoryを
フェデレーションゲートウェイとかうにうにやって使いたいなあ..

もしご存知の方は
よろしければコメント欄にでも
書いていただけるとありがたいです。

2011年1月6日木曜日

Androidで画像縮小する方法いろいろ

以前GridViewに画像をたくさん並べる方法
のときにサムネイル化するために
画像を縮小する必要があったのだけど、
あまり考えずに
Google App Engine で以下のようなServletを書いて
処理していた。




public class ResizeServlet extends HttpServlet {

private static final long serialVersionUID = -999999L;

/** デフォルトの高さ(ピクセル) */
public static final int HEIGHT = 50;

/** ロガー */
private static final Logger log =
Logger.getLogger(ResizeServlet.class.getName());
/**
* 生存確認
*/
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
PrintWriter pw = resp.getWriter();
pw.print("ResizeServlet is alive!");
pw.close();
}
/**
* 画像を高さ100spに変更して戻す
*/
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException{
DataInputStream dis = new DataInputStream(req.getInputStream());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int c;
while((c = dis.read())!=-1){
baos.write(c);
}
byte[] org = baos.toByteArray();
log.info("doPost: length=" + org.length);
Image image = ImagesServiceFactory.makeImage(org);
int height = image.getHeight();
int width = image.getWidth();
Transform resizer =
ImagesServiceFactory.makeResize(
(int)(((double)width*HEIGHT)/((double)height)), HEIGHT);
ImagesService service = ImagesServiceFactory.getImagesService();
byte[] result =
service.applyTransform(resizer, image).getImageData();
DataOutputStream dos = new DataOutputStream(resp.getOutputStream());
dos.write(result, 0, result.length);
dos.close();
dis.close();
}
}



App Engineの上記のServletサイトへPOSTで送った画像を
App Engineに用意されているGoogle APIで高さ100ptの画像に変換して
送信元へ返しているだけの単純なつくりだ。
実際にはパラメータで高さ指定できるものを利用しているが
サンプルコードは決め打ちにしてある。

ちなみに、Android側はURLConnectionを使ってbyte[]でもらってくればいい。
private byte[] resizeImage(String url, byte[] org) throws IOException{
 URLConnection conn = new URL(url).openConnection();
 Log.d(TAG, "getImage: url =" + url);

 conn.setDoInput(true);
 conn.setDoOutput(true);
 conn.setRequestProperty("Content-Type", "application/octet-stream");
 conn.setRequestProperty("User-Agent", "androidSample");
 conn.setRequestProperty("Content-Length", 
  new Integer(org.length).toString());

 // 送信
 OutputStream os = conn.getOutputStream();
 DataOutputStream dos = new DataOutputStream(os);
 dos.write(org, 0, org.length);

 // 受信
 InputStream is = conn.getInputStream();
 DataInputStream dis = new DataInputStream(is);
 int b;
 ByteArrayOutputStream baos = new ByteArrayOutputStream();
 while((b = dis.read())!=-1){
  baos.write(b);
 }
 dis.close();
 is.close();

 dos.close();
 os.close();

 byte[] result = baos.toByteArray();
 Log.d(TAG, "resize: org_length=" + org.length + ", result_length=" + 
  result.length);
 return result;
}


引数の変数urlは先のApp Engineの該当ServletのURLを
書けば良い。
カメラにせよ、S3上にせよ画像データをbyte[]で渡してやれば
戻り値として小さくなった画像を返してくれる。
これを非同期でGridLayoutを更新させるように実装すればいい。
#ボタンイベントなどに書くと、とたん固まってしまうから、やらないほうがいい
#とりあえず動けばいい人は書いてもいいが..


けれど、
昨日Androidの会のMLに以下のようないくつかの方法が
紹介されていた。

画像をきれいに縮小する方法

まだ試してはいないけれども
これだと通信事情が悪い場所でも
縮小できそうだ。

画像に関する知識が私にはまったくなかったので
ありもの(AppEngineのImageService)で何とかしようとしていたけど、
質問した人は画像処理について詳しい方のようで
もっといい方法を紹介してくれている。

勉強になった。

2010年12月28日火曜日

Lync Serverインストール時に証明書チェーンは処理されましたが云々でうまくいかない



SqlExpressRtcでエラーだった人は、こっちを読んでください。
Lync Server 2010は、
Microsoft Communication Server 2007の後継で、
Web会議システムをオンプレミスで構築できる。

で、ちょっと試してみようということになり、
Windows7上のVMware player上で作ろうと
格闘していた。

もともとVoIPで内線だとかいろいろ
ごたいそうな機能を持っているので
インストールの手順も多い。

お試しなのでお金をかけないように
TechNetのライセンスでやりくりして
なんとか
ステップバイステップガイド
のp71まで(全p82)きたのに..

あと10ページなのに..


















証明書チェーンは処理されましたが、
信頼プロバイダーが信頼していない
ルート証明書で強制終了しました。

というご無体なメッセージを食らってしまった..


うーん、これって..
プライベートCAじゃだめってことじゃん..

お試しでもベリサインとかに金払って
信頼のある証明書つくんないとだめって事?!







...やる気99%ダウン






で、本気で帰ろうかなと思ったけど、
なんかちょこちょこ
Lync Serverインストールしようとしているサーバの
「ローカルセキュリティポリシー」
「証明書パス検証」
を下の様にいじって


















試してみたら..

















..うまくいった..


正直Windows Serverに関する知識ほとんどないけど
なんか適当にそれらしいところいじっていると
うまくいったりするんだよなあ
MSのサーバ系OSって。

2010年12月22日水曜日

LotusLive Meetingの音声が送れない

LotusLive Meetingは
簡単にいうと Web会議システム。

フリーメールアドレスを1つ作れば
30日間無料で使えるので
試してみたのだけど..



いくら会議にログオンして
PCに接続したヘッドセットでがなっても
ぜんぜん音声が相手に伝わらない..

ドライバとかマイクのテストをしたが
PC側はどうも問題がなさそう。

LotusLiveのヘルプを読んでも
使っているサイトにはないボタンやら
プルダウンメニューの項目やらがあり
到達できない..

でサポートにメールして聞いてみた。
すると以下のことがわかった。
・LotusLive Engageにはオーディオキャスト機能がない
最初に無料アカウントを登録する際、
LotusLiveにはいろんなエディション(?)があって
正直よくわからなかった。
サイトを読むと"Meeting"を含んでいる"Engage"で
アカウントをとったほうがおとくのようなので
Engageでアカウントをとってしまった。
これがよくなかった。
・LotusLive Meetingのオーディオキャストは電話をマイクに使う
Meetingでオーディオキャストを使う設定をすると
電話番号の入力を指示される。
そこに「01-1-81-<先頭ゼロを削除した国内電話番号>」
をいれてダイヤルすると聞き手側のPCのスピーカに
電話でしゃべった音声が出てくるようになった。

うーん、
Web会議システムでなく
正確には
Web・電話会議システム
なんだろうな、これは..

思想的には
外出者の携帯電話や内線電話が完備している企業で
電話会議の付加価値としてWebで動画や資料を
共有できますよっていうシステムなんだろうなあ。

ヘルプはエディション(?)にあわせて
つくってほしかった..


海外のサービスを翻訳しただけみたいで
読みにくいので、できれば改善してほしいなあ..


※2011年6月24日追記 
オーディオキャストの設定画面が変わりました。
国名:日本+81
電話番号:国内の市外局番から先頭のゼロを外して入力
にすれば接続できます。

どうもIBMはLotusLive自体の機能をいじろうとせずに
Skypeで連携してねとかの資料をあげはじめた。
かたやV-CUBE社はどんどんWeb会議システム自身
に手を入れつづけている。

IBMはパッケージ製品とおなじ速度でSaaSの更改
をしていたらダメだってことがわかっていない。
IT業界はドッグイヤーというがSaaSはカゲロウイヤー。
すこしでも機能追加をおろそかにしたら
とたんに客なんてにげていく。

月額表示しているくせに
契約は年単位ですとかぬかしていると
すぐに痛い目に会うとおもう。

というかSaaSは
とりあえずメニューとしてやってるといわないといけない
からやっているだけなのかもしれないけど。

2010年12月17日金曜日

Androidでproxy設定がうまくいかない..

先に書いておきますが
まだうまくいってません。

proxy経由でインターネットに繋がるローカルLANに
繋がったWiFiルータを使ってAndroid HT-03Aから
つなごうと思って設定をいろいろ探したのですが..

標準のAndroid OSには
proxy設定がない..
アクセスポイント(キャリア)にはあるのに..
iPhoneにもあるのに..
企業向けの利用じゃ必要な機能だと思うんだけどなあ..


で、マーケットの検索で調べると
Proxy Settings なる無料アプリを見つけた。

入れてみると
proxyサーバとポートの設定画面があるだけ。

設定してみたが..
うーん繋がらない..

pubrom1.1(Froyo)でもだめだった。

CM1.1はなんと設定からproxy設定できるようになっていたが
コレも繋がらなかった..

うーん、adb shell上でpingしたら繋がるんだけどなあ..

もうひと悩みいりそうだ..

2010年12月8日水曜日

AndroidでOpenVPNしようとしてはまる

PCからOpenVPN接続している環境上に
Citrixサーバをおいている。

AndroidマーケットにもCitrix Readerというアプリが
あるので、使いたいなあとおもっていたのだが、
社内LANにあるCitrixサーバへ繋ぎたいのだけど
VPN接続環境をAndroidで構築できなくてはならない。

でもHT-03Aの標準OSではVPNルータをサーバ側に用意して
おかないとできない。
今のところ外部からはOpenVPNだけ。

でAndroidマーケットをさぐると、
OpenVPN Installerなる無料アプリがあった。

でもrootが取れないとインストールできなかった。


で、止まっていたのだけど、
最近HT-03AをFroyoにしたので
もちろんrootは取れている。

で、ちょっとやってみることにした。
#あ、先に書きますがまだうまくいってません。

OpenVPN Installerは文字通りコマンドラインで動作する
openvpnバイナリをInstallするだけのアプリで、
実行すると何度かrootでの実行許可を求めてくるので
すべて許可するってボタンでいれまくる。

この段階でadb shellすると
インストール時に指定したパスへopenvpnができている。

で今度は/sdcard/openvpnを作成し、
crt/csr/keyファイルとovpnファイルを置く。

次にOpenVON Settingsというアプリを
Androidマーケットからダウンロードしてきて
起動する。

1列目がOpenVPN、2列目がovpnファイル名が表示されるはず。
で、まずOpenVPNをチェック。
次に2列目をチェック、するとユーザID/パスワードがでてくるので
ユーザIDとOTPを入力する、とつながるはずなのだけど、
md5の変換をパスフレーズ使ってやらないといけないのだけど
うまくいかない..
dotkey95を使っているのだけれど....

多分ここまではあってるんだと思うんだよなあ..

2010年12月2日木曜日

HT-03Aでテザリング




友人に教えてもらいながら
HT-03Aをテザリングできるようにした。

大まかな手順は以下のとおり。
・adbでHT-03Aに接続できるようにする
・rootでログインできるようにする
・Recoveryツールを入れる
・FroyoのROMイメージを入れる
・テザリングアプリを起動する

docomo回線でテザリングできたら、
iPadやノートPC側に
別途通信契約した機器が必要なくなる。

WiMAXほど速度は出ないけど、
これまで複数の携帯契約の重圧から
一部は開放できるわけだ。


当然これをやるとdocomoのサポートはなくなる。
自己責任での作業となる。


まず
・adbでHT-03Aに接続できるようにする
だけど、このへんは
コムギドットネットを参考にするとさくっと
OSが1.6でもrootを奪取できるようになった。

rootをとれると、
カメラの操作音ファイルを無音声のファイルに
差し替えたりできるのでとても便利だ。
/system以下のファイルもまじまじ見ることができるし。


次に
・Recoveryツールを入れる
もコムギドットネットに手順が書かれていたので
そのとおりにやると素直にできてしまった。
このツールを使ってSDカード上に置いた
イメージファイルで更新するとできあがりだ。
注意する点は更新前に必ず
Wipeメニューの上段3つは必ずしておくこと。
これをしないとうまくいかないことが多い。


素人だと厄介なのはこれからで、
・FroyoのROMイメージを入れる
これをやるには
イメージファイルを入手しないといけない。
Android Custom Cookbook を読んで
cm+gappsを入れてみたのだが..
まあ入ることは入るのだけど、
なんかうまくいかない。
起動画面の無限ループになったりした。
DDMSでログを見ているとNullPointerがでている..
どうも100%正しい情報ではないみたいだ..
で、友人に聞きながらすったもんだして
起動までこぎつけたのだけど、
Android Marketが消えてしまう..
普段使う携帯としても使っているので、
なくなるとTwitterアプリやらいろいろ
使いたいものが簡単に手に入らなくなってしまう。
SDカードに入れて..ってすればできるのは分かっているけど
それはしたくない..
さらに、いろんなイメージを入れていくうちに
docomoのロゴが出たまんまになってadbできなくなってしまった..
でもHOME+電源ボタン押しっぱなしで起動すると
Recoveyツールが上がることがわかり、
SDカードにはPCからイメージをコピーして携帯に挿して
更新を続けると
pubrom-1.1だとAndroid Marketものこることがわかった。
画面はcmよりもっさりしているけどしょうがない。
ちなみに音声を下げる+電源ボタン押しっぱなしでFASTBOOT
するという方法もある。

ちなみにいろんなイメージを検索していたのだけど
その全部のサイトがマカフィーボタン(?)が真っ赤になって
「危険なサイト」として警告してくる..


・テザリングアプリを起動する
だけど、これはpubrom-1.1だと
メニューにすでに
無線LANマークのアイコンがあるので
これを起動して、
開始させるためにど真ん中の無線マークを
押すと..おお、できた..



でも、PINコードとかのないパブリックアクセスポイント
になるので、誰かに踏み台にされる可能性もあるのか..



起動しなくなったときは焦ったが、
まあこれで年末Softbankの電波の届かない実家に帰っても
iPadが使える..

2010年11月22日月曜日

くたびれきったあとのOCZSSDPATA1-64G18のベンチマーク結果?



前回はずしたOCZ製SSDをUSBに繋ぎ直し
CristalDiskMark3を実行してみた。

USB接続して1000GBで実行..

したんだけどこれがなんと
時間もかかってしまった!

結果は..
4時間待たされた挙句エラー..



とりあえず取れていた結果も
もう見るも無残な結果が..



ひどい、これでよく実業務に使っていたなおれ。
我慢強い子に育ったんじゃないか..


業務につかうPCでSSDを使う場合は
導入当初いかに早くても
プチフリ対策はやっておくべきだ。

実はOCZ製SSDを
性懲りも無く
RunCore製のSSDに換装
したのだけど、
以下の対策は実施しておいた。

・FAT32で使う
 32GBでパーティションは分割することは
 我慢してもやるべき
・レジストリ書き換えてOSデフラグをオフ
 DiskKeeperは使ってはいけない
・ハードディスクのプロパティで書き込みキャッシュをオフ
・ページファイルは無し
 ただしメモリが足りなくなると突然死してしまう
・My Documentなど上書き頻度の高いユーザファイルは
 HDDデバイス上に移動する
 NASとかを使おう
・Symantec AntiVirusの起動時クイックスキャンをオフ
 定時スキャンは欠けているのでSymantecサイトを見ながら
 オフにする

これで有効かどうかはわからないが、
もうしばらくX40を本気で使うつもりなので
結果はおいおい身を持って知ることになるかな..




OCZ製SSDへ換装したX40のBlog記事は結構観るけど
遅くなってだめになるまで使い切った話は
あまりネットでは見ない。

X40をそこまで使い込んでいる人はいないのかもしれない..

2010年11月20日土曜日

ThinkPad X40をOCZ製SSDに換装して大失敗する


今年4月に
ThinkPad X40のHDDのかわりに
OCZ PATA 1.8" 64GB SSD
OCZSSDPATA1-64G18
を載せた。

確かに起動は速くなったけど
文字入力がたまに待たされる。

夏頃どうにかならないか
調べてみてはじめてプチフリを知った。

というよりSSDについて初めて勉強した。

このとき時すでに遅しだったのだけど
HDDのころから使っていたDiskKeeperを
まだつかっていた。

ページファイルもデフォルトの
2GBばりばりつかっていたし..

ああ64GBだからNTFSしてたけど
これもだめなのか..

しかもこのSSDが
悪名高きJMicronコントローラを搭載している
事が分かった。


とはいってもばりばり仕事で使っているわけで
交換する時間もないのでNTFSのまま
このまま使っていた。

すると1週間前、
AntiVirusのrtvscan.exeが
エラーで落ちた後
毎回起動するたびに
このrtvscan.exeがうごいて
5文字ほど文字入力しては1分待つという
最悪の状況に。

でSymantec製品をこれまた1時間かけて
アンインストールしてみたけれど..
全然速度が速くならない。
多少プチフリ(というかもうプチではない)の
頻度が下がったが
使用には耐えない状態になった。

それでもメールスプールがこのPCに
あるからとつかっていたが..
金曜の夜シャットダウンしようとしたら
あまりにも遅くなりすぎて
シャットダウンボタンが押せない..


頭に来たので
速攻RunCoreのX40換装用SSDを購入して
付け替えた。

すると
なんと快適なこと..
X40ってこんな快適なPCだったのかと思うほど。

で外したSSDを付属のUSBインターフェイスにつないで
ベンチマークを使ったのだが..
読み込みテストの次の書き込みがエラーになる..



もうお亡くなりになったようだ..

最低だなOCZ製SSD..JMicronのほうかもしれんが..
これを読んだ人は絶対OCZ製..JMicronコントローラ搭載SSD
をCドライブで使おうと思わないでください。

被害者は俺だけでたくさんだ..

2010年11月18日木曜日

位置情報プロバイダnetworkの怪

Androidの位置情報プロバイダは
2つですが、
そのうちnetworkのほう
自宅で見ているとタイミングでぶれがあることに気づいた。

そこで調べてみた。

プロバイダがnetworkの場合は
キャリアの基地局情報から入手されるのだけどが、
WiFiがオンの場合はルータから位置情報を
特定しているそうだ。

キャリアの基地局情報は
アンテナ基地局の位置から場所を特定するのだけど
厳密なロジックは
キャリア別に精度が異なっているらしい。

私はdocomoのHT-03Aしかもっていないので
ほかのキャリアのAndroid携帯で同地点で調べることができないが
おそらくWiFiオフの場合はおそらく違う結果になる。

WiFiがオンの場合はルータから入手とあるけど
自宅のルータには位置情報を設定していないし
そもそも正確な位置自体がわからない。

どうもWiFiがオンでかつGPSが有効な場合に
Google Mapを起動すると
そのときえられた位置情報をGoogleへ送っているらしい。

顧客情報の利用を許可とかしていないとたぶん送られないので
そうではない設定で使っていれば勝手には使われないとは思うけど。

うーん、WiFiがオンかつGPSも有効なんて状況めったにないんじゃないのかな..
昔はGoogle Carsで取得していたらしいんだけど
法律上の問題とかで今はこの方式になったんだって。

WiFiがオンだと基地局を使わないので
自宅だと精度がよくないんだよなあ..


こんどGoogle MapをWiFiがオンでGPSが使えるベランダで使って
精度が上がるか試してみようっと。

2010年11月5日金曜日

Amazon RDSへ大量データ投入

ある検証アプリでAmazon RDSを使っているのだけど、
大量データ
(といっても110万件程度のデータだが)
をローカルのPCからJDBC経由で投入してみた。

が、大失敗。
投入が遅い遅い。
今回はリージョンをシンガポールしていたので
日本からAWSを活用するには最も近い位置なのだけど、
約30時間もかかってしまった。

1分で約620件しかinsertできない..

適当に作ったプログラムなので
10件に1回コミットかけているにしても
この速度は遅すぎだ。

同一リージョンのEC2上からデータ投入すれば
もっと早いとは思うが、
これからRDSやEC2上にRDBつくって
ローカルからデータを投入しようとする人は
十分な時間を用意しておいてください。

【ハーネスエンジニアリングを始める前に】gpt-oss:20b の入出力データから、LLMの動作を理解する

  1. はじめに 最近は、 Cursor や Antigravity などのAIエージェント前提の統合開発環境や、 Claude Desktop や Codex アプリ などのPC上のオブジェクト操作が可能なデスクトップアプリ、 Open Claw といったPC全体の...