tag:blogger.com,1999:blog-6872701290720456992024-03-13T20:06:10.333+09:00ぬるぬる備忘録よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-687270129072045699.post-32430743228371877452012-12-14T14:53:00.002+09:002012-12-14T14:53:12.772+09:00Hardware Accelerated Execution ManagerMacでAndroidのエミュレーターを爆速で動かす<br />
http://dev.classmethod.jp/smartphone/build-fast-android-emulator/<br />
http://bowz.info/4159<br />
みたいな記事があったのでやってみました。<br />
<br />
Mac Book Pro 15inc Retina<br />
Mac OSX 10.8.2<br />
<br />
最初は普通にエミュ起動してもっさりー<br />
↓<br />
そいえば以前爆速エミュの記事見た!<br />
↓<br />
てかWindows時代にも一回試してるしやってみよう<br />
↓<br />
エミュ起動時にOS落ちるorz<br />
<br />
っとなって結局Hardware Accelerated Execution Managerを消そうと思った時に意外と削除系の記事が無くて困ったので備忘録。<br />
てかMacってpkg系のアンインストール方法ってOSから提供されてないのね(´・ω・`)<br />
んで<br />
http://ho-ki-boshi.blogspot.jp/2010/01/pkg-snow-leopard.html<br />
とか見て消そうと思ったけどなーんか怖い。<br />
その時にふと上記URLの手順上出力されたリスト見てたらアンインストール用のスクリプト入ってたorz<br />
そらIntelさんぐらいになったらそれぐらい入れておくわな…w<br />
って事で備忘録兼ねてメモメモ<br />
<br />
sudo /System/Library/Extensions/intelhaxm.kext/Contents/Resources/uninstall.sh<br />
<br />
実行後は綺麗にアンインストールされ、エミュレータも起動するようになりました。<br />
結局爆速できなかった(´・ω・`)<br />
まぁ近いうちにやってくれることを期待して待ってます。よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.com0tag:blogger.com,1999:blog-687270129072045699.post-51625060327697628992012-09-20T20:50:00.001+09:002012-09-20T20:50:17.725+09:00AndroidのSpinnerのダイアログ画面をonStopとかで閉じる方法Androidの標準パーツであるSpinnerはタップしたらダイアログが出せたりしてとっても便利ですがその出てくるダイアログの制御が出来ない。<br />
<div>
主に画面を閉じた時に自動的にダイアログも閉じて欲しかったのですが上手くいかないので調べてみたら以外と記事なかったのでメモ書き。<br />
<br /></div>
<pre class="java" name="code">@Override
protected void onStop() {
super.onStop();
ViewGroup content = (ViewGroup) findViewById(android.R.id.content);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
content.removeView(spinner);
content.addView(spinner);
}
</pre>
<div>
<br />
記事にするほどでも無かったかな…。<br />
Spinnerのソースコード見てみるとダイアログ自体は<br />
<br /></div>
<pre class="java" name="code">private SpinnerPopup mPopup;
</pre>
<div>
<br />
として持ってるんだけどこれ自体を触ってる場所はままあるんだけど<br />
<br /></div>
<pre class="java" name="code">dialog.dismiss();
</pre>
<div>
<br />
を実行してるのが<br />
<br /></div>
<pre class="java" name="code">protected void onDetachedFromWindow()
</pre>
<div>
<br />
なので一旦ViewGroup内から削除→再追加としてあげるとスルッとうまくいきます。<br />
まぁこんな特殊な使い方するぐらいなら自分で作るなりカスタマイズするなりした方が良いかも。<br />
<br />
業務的に使う時の参考にでもしてください。</div>
よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.com0tag:blogger.com,1999:blog-687270129072045699.post-19747263843965150852012-07-05T11:00:00.002+09:002012-07-05T11:00:09.905+09:00Eclipse4.2にてコード補完候補が出なくなった時の対処コード補完(ctrl + space)を押して補完選択の窓は出てくるけど対象リストが出てこず<br />
<div>
ウィンドウの左下ぐらいに赤字で「使用可能なコンプリート機能はありません」とか出て</div>
<div>
結構困ったので一応メモ</div>
<div>
<br /></div>
<div>
ウィンドウ>設定>Java>エディター>コンテンツ・アシスト>拡張<br />
の画面にある「'default'コンテンツ・アシスト・リストにあるプロポーざるの種類を選択します」<br />
項目の「Javaプロポーザル」のチェックを入れる<br />
<br />
これだけで再び一覧出ました。<br />
以前は入ってたのかな…?<br />
3.5系から使い続けてたワークスペースなので変な設定が残ってたのかもしれませぬ。<br />
お困りの方は是非一度ご確認をー</div>よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.com0tag:blogger.com,1999:blog-687270129072045699.post-12746676353777517172012-04-10T14:24:00.001+09:002012-04-10T14:37:50.993+09:00Android標準のギャラリーアプリを利用し画像選択からトリミングし背景に設定するまでのサンプルある程度のVerではこれで動作確認しました。<br>
ただ、IS03に標準搭載されてるcom.cooliris.mediaギャラリーのPiscaオンラインアルバムから選択された画像はトリミング出来ませんでした。<br>
なんか毎回オンラインから取得しているみたいでローカルにキャッシュファイル持ってないのかな?<br>
Uri返してくれないので非対応。<br>
<br>
動かない機種とかあったらご連絡頂けるととってもアリガタヤー<br>
<br>
-ImageCropActivity.java
<br />
<pre class="java" name="code">/*
* ImageCropActivity
*
* Android標準のギャラリーアプリを利用して
* 画像の選択→選択画像のトリミング
* を実行。
*/
public class ImageCropActivity extends Activity {
public final static int ID_IMAGE_GALLERY = 1;
public final static int ID_IMAGE_CROP = 2;
private int width = 0;
private int height = 0;
private String bgimage = "bg.png";
ImageView layout = null;
Button button = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
layout = (ImageView) findViewById(R.id.MainRootBgr);
button = (Button) findViewById(R.id.MainCropBtn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 画像選択アプリの呼び出し
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_PICK);
intent = Intent.createChooser(intent, "Select Gallery App");
startActivityForResult(intent, ID_IMAGE_GALLERY);
}
});
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
width = layout.getWidth();
height = layout.getHeight();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ID_IMAGE_GALLERY:
Uri uri = data.getData();
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setType("image/*");
intent.setData(uri);
intent.putExtra("outputX", width);
intent.putExtra("outputY", height);
intent.putExtra("aspectX", width);
intent.putExtra("aspectY", height);
intent.putExtra("scale", true);
intent.putExtra("setWallpaper", false);
intent.putExtra("noFaceDetection", false);
intent.putExtra(MediaStore.EXTRA_OUTPUT, "");
intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.name());
intent = Intent.createChooser(intent, "Select Crop App");
startActivityForResult(intent, ID_IMAGE_CROP);
break;
case ID_IMAGE_CROP:
try {
// 一時ファイル場所のUri取得処理
Uri mUri = data.getData();
if (mUri == null) {
String action = data.getAction();
if (action != null && action.indexOf("content://") > -1) {
mUri = Uri.parse(action);
}
}
// uriがしっかりと取れているようなら/files/の領域へコピーして一時保存用削除
if (mUri != null) {
ContentResolver cr = getContentResolver();
String[] columns = { MediaColumns.DATA };
Cursor c = cr.query(mUri, columns, null, null, null);
if (c != null && c.moveToFirst()) {
// 一時ファイル
File ifilepath = new File(c.getString(0));
// ローカル保存用ファイル
File ofilepath = new File(getFileStreamPath(bgimage).getPath());
FileChannel ifile = new FileInputStream(ifilepath).getChannel();
FileChannel ofile = new FileOutputStream(ofilepath).getChannel();
// ファイルコピー
ifile.transferTo(0, ifile.size(), ofile);
// クローズ処理
ifile.close();
ofile.close();
// 一時ファイルの削除
getContentResolver().delete(mUri, null, null);
if (layout != null) {
layout.setBackgroundDrawable(rntBGImage());
}
Toast.makeText(this, "Complete", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Miss", Toast.LENGTH_SHORT).show();
}
}
} catch (Exception e) {
Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
break;
}
}
}
private Drawable rntBGImage() {
Drawable drawable = null;
try {
// 初期化
byte[] buf = new byte[1024];
// 背景ファイル読み込み
InputStream in;
in = openFileInput(bgimage);
BufferedInputStream ins = new BufferedInputStream(in);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// ループさせて読み込み
while (true) {
int ss = ins.read(buf);
if (ss <= 0)
break;
bos.write(buf, 0, ss);
}
// Drawableに配列をデコード
drawable = new BitmapDrawable(BitmapFactory.decodeByteArray(bos.toByteArray(), 0,
bos.size()));
in.close();
bos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return drawable;
}
}
</pre>
-main.xml
<br />
<pre class="xml" name="code"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MainRootLnr"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/MainRootBgr"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<Button
android:id="@+id/MainCropBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CropStart" />
</RelativeLayout>
</pre>よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.com0tag:blogger.com,1999:blog-687270129072045699.post-10372294872000658582011-08-22T16:51:00.000+09:002011-10-12T11:12:50.747+09:00CentOS5.6にGit導入→公開(未完成)鍵生成にはPuTTYgenを推奨<br />
<br />
1.インストール<br />
$ wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm<br />
$ sudo rpm -ivh epel-release-5-4.noarch.rpm<br />
$ sudo yum -y install git gitosis<br />
$ ssh-keygen -t rsa<br />
<br />
2.鍵登録<br />
・PuTTYgenで鍵を生成(※OpenSSH形式じゃないと上手くいかないっぽい点に留意)<br />
$ mkdir /root/.ssh<br />
$ vi /root/.ssh/id_rsa.pub<br />
・「OpenSSHのauthorized_keysファイルにペーストするための公開鍵」の部分をコピーして/root/.ssh/id_rsa.pubに貼りつけ&保存<br />
$ vi /root/.ssh/id_rsa<br />
・PuTTYgen>変換>OpenSSH形式へエクスポートを実行し出てきたファイルの中身を/root/.ssh/id_rsaに貼りつけ&保存<br />
$ sudo -H -u gitosis gitosis-init < /root/.ssh/id_rsa.pub<br />
<br />
3.管理ファイルのダウンロード<br />
$ passwd gitosis<br />
Changing password for user gitosis.<br />
New UNIX password:[任意のパスワード]<br />
Retype new UNIX password:[任意のパスワード]<br />
<br />
$ mkdir /root/work<br />
$ cd /root/work<br />
<br />
$ git clone ssh://gitosis@localhost/gitosis-admin.git<br />
Cloning into gitosis-admin...<br />
The authenticity of host 'localhost (127.0.0.1)' can't be established.<br />
RSA key fingerprint is bd:24:...:9c:83.<br />
Are you sure you want to continue connecting (yes/no)? [yes]<br />
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @<br />
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
Permissions 0644 for '/root/.ssh/id_rsa' are too open.<br />
It is recommended that your private key files are NOT accessible by others.<br />
This private key will be ignored.<br />
bad permissions: ignore key: /root/.ssh/id_rsa<br />
Enter passphrase for key '/root/.ssh/id_rsa':[空Enter]<br />
gitosis@localhost's password:[↑で設定した任意のパスワード]<br />
remote: Counting objects: 5, done.<br />
remote: Compressing objects: 100% (5/5), done.<br />
remote: Total 5 (delta 0), reused 5 (delta 0)<br />
Receiving objects: 100% (5/5), done.<br />
<br />
4.管理ファイルの設定<br />
$ cd gitosis-admin<br />
$ vi gitosis.conf<br />
<br />
#最下行に以下追加<br />
[group test]<br />
writable = test-dev<br />
members = testuser<br />
#ココマデ<br />
<br />
$ vi keydir/testuser.pub<br />
・追加したいユーザーの「OpenSSHのauthorized_keysファイルにペーストするための公開鍵」を貼付け<br />
$ cd keydir<br />
$ git add testuser.pub<br />
$ cd ../<br />
$ git commit -am "Comment" -a<br />
$ git push<br />
Enter passphrase for key '/root/.ssh/id_rsa':[空Enter]<br />
gitosis@localhost's password:[↑で設定した任意のパスワード]<br />
<br />
・新規リポ追加<br />
$ cd ../<br />
$ mkdri test-dev<br />
$ cd test-dev<br />
$ git init<br />
$ touch dummy<br />
<div>
$ git add dummy</div>
$ git commit -am "Comment"<br />
$ git remote add origin gitosis@localhost:test-dev.git<br />
$ git push origin master:refs/heads/master<br />
<br />よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.com0tag:blogger.com,1999:blog-687270129072045699.post-58164510053108281582011-05-26T16:07:00.000+09:002011-05-26T16:07:51.616+09:00VMwareServer から ESXi への移行の際の変換<pre>1:ovftoolのダウンロード
http://www.vmware.com/download/eula/ovf_eula.html
2:コマンドプロンプトで変換
C:\User\test> cd C:\Program Files\VMware\VMware OVF Tool
C:\User\test> ovftool C:\Test.vmx C:\Test.ovf
※もしServerでの利用時にディスクドライブにISO等を読み込んでいた場合は
変換前に対象部分をvmxファイルから削除しておく。
3:vSphere Clientでインポート
ファイル>OVFテンプレートのデプロイ
</pre>よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.com0tag:blogger.com,1999:blog-687270129072045699.post-59215244170841862252011-05-26T15:39:00.000+09:002011-05-26T15:39:43.982+09:00ESXi のバージョンアップ<pre>1:VMware vSphere CLIのダウンロード&インストール
http://downloads.vmware.com/jp/d/details/vcli41/ZHcqYmRoaCpiZHd0aA==
2:ESXiのパッチをダウンロード
http://www.vmware.com/patch/download/
※検索対象にESXがあるので間違いに注意
ダウンロードしたファイル(今回はupdate-from-esxi4.1-4.1_update01.zip)をC:\直下に移動
3:コマンドプロンプト起動
C:\User\test> cd C:\Program Files\VMware\VMware vSphere CLI\bin
CLIフォルダに移動
C:\User\test> vihostupdate.pl --server 192.168.0.0 --install --bundle C:\update-from-esxi4.1-4.1_update01.zip
ESXiサーバーのIPを指定とパッチファイルを指定し、インストールの実行
4:ESXiサーバー再起動
3のインストール処理が終了したらサーバー再起動後画面確認でVerチェック
</pre>よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.com0tag:blogger.com,1999:blog-687270129072045699.post-89511855855240209622011-05-25T18:22:00.005+09:002011-06-09T12:11:42.203+09:00ESXi での VMware Tools インストール(CentOS)<pre class='brush: sql'>仮想サーバー右クリック>ゲスト>VMware Tools のインストール/アップグレード
$ reboot
$ mount /dev/cdrom /mnt
$ tar zxf /mnt/VMwareTools-8.3.7-341836.tar.gz
$ umount /mnt
$ cd vmware-tools-distrib
$ ./vmware-install.pl
In which directory do you want to install the binary files?
[/usr/bin]
$ [空Enter]
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc/rc.d]
$ [空Enter]
What is the directory that contains the init scripts?
[/etc/rc.d/init.d]
$ [空Enter]
In which directory do you want to install the daemon files?
[/usr/sbin]
$ [空Enter]
In which directory do you want to install the library files?
[/usr/lib/vmware-tools]
$ [空Enter]
The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]
$ [空Enter]
In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]
The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]
$ [空Enter]
Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]
$ [空Enter]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To use the vmxnet driver, restart networking using the following commands:
/etc/init.d/network stop
rmmod pcnet32
rmmod vmxnet
modprobe vmxnet
/etc/init.d/network start
Enjoy,
$ cd ../
$ rm -rf vmware-tools-distrib/
</pre>よほhttp://www.blogger.com/profile/01101300170154876340noreply@blogger.com0