MacBook Airが充電できなくなった際の対策

SMCをリセットすると、解決することがある。
電源を切り、アダプタを挿した状態で、
Shift+Control+Option+電源ボタンを数秒間同時に押して、離す。

その後、通常の方法で電源を起動する。
リセットが成功すると、FANが全開に回るので、音を確認する。

Androidのギャラリーで、サムネイル画像を更新する方法

アンドロイドスマホでは、画像や写真、動画やムービーを閲覧する際に「ギャラリー(端末によってはアルバム)」というアプリを使用しますが、ファイルマネージャーでファイルを操作すると、サムネイル画像が更新されないことがあります。この問題の解決方法として、主に2つの方法を提案します。

1.ギャラリーのキャッシュデータを消去する
2.「ギャラリー フォルダー プラグイン」というアプリを導入する

1.ギャラリーのキャッシュデータを消去する
この方法は、古典的ではありますが、有効であることが多いです。
まず「設定->アプリ->すべて->ギャラリー」という操作でアプリ管理画面に移動します。
f:id:tatuas:20131013001529p:plain

ここから、「データを消去」を実行すると、キャッシュデータを消去できます。
※「キャッシュを消去」では、ギャラリーが起動しなくなりますので注意!

ほとんどのスマホの場合は、この操作で治るでしょう。

2.「ギャラリー フォルダー プラグイン」というアプリを導入する
上記方法でも治らない場合、アプリを導入しましょう。



さて、ここからが使い方の説明になります。

  • まず、「ギャラリー」または「アルバム」を起動します。


  • 次に、サムネイルを更新したいファイルを選択します。

ファイルを長押しすると、選択モードに切り替わります。
フォルダごと長押ししても、選択することができます。
すると、3つの点を線で結んだような形のアイコンが、上の方に出てくると思います。
これをクリックすると、リストが出てきますので、その中から「フォルダ管理」というタイトルをクリックします。出てこない場合は、「すべて表示」すると出てくると思います。


  • 本アプリが起動します。

ギャラリー内に存在するフォルダの一覧リストが出てくるはずです。
そこから、そのファイルが存在するフォルダを選択します。
そして、下側のチェックを外してください。
動作の選択は「移動する」のままで大丈夫です。
※同一フォルダかつ、下のチェックを外す点が重要です。


  • あとはOKボタンを押すと、更新が始まります。

動画ファイルなどは、時間がかかりますので、処理が完了するまでお待ちください。


  • 終了すると、表示がでますので、ご確認ください。


なお、このエントリーは、私が作っておりますアプリの宣伝でもありますw
よろしくおねがいします。

もし不具合、ご意見等ありましたら、ホームページから
「Contact Tatuas」よりご連絡いただけると幸いです。
その際は、機種名をお教えいただけると幸いです。

JavaScriptで、オブジェクトのすべてのメソッドと変数を取得する(要Chrome)

Chromeで確認。
コンソールを見るにはF12でConsoleを開く。

var someThing = new Object();
var properties = "";
for (var prop in someThing){
   properties += prop + "=" + someThing[prop] + "\n";
}
console.log(properties);

Ubuntu上でコマンドからFTP操作する

ftpコマンドは実用性がないので
ncftpを使うほうがよい。

$ sudo apt-get install ncftp

$ ncftp

ncftp > open -u username host.com
ncftp > cd htdocs/
ncftp > put -R /home/user/webdir/*
ncftp > rename dir/ newdir/
ncftp > close
ncftp > exit

一度ログインしたサーバ情報を記録するには、ログイン状態で

ncftp > bookmark

を行う。

ローカルのget先は、通常ホームになる。
変える場合は、

ncftp > lcd dir/

とする。

詳細は
ncftp - 高機能 ftpクライアント - 会津大学UNIXウィキ
を参照。

Androidで、カメラ機能を作る際注意する事柄

ドキュメントに異なる情報が含まれていたので、メモ。

Camera機能を実装する際、setTypeメソッドを記述するとlintで警告が出る。
ドキュメントによれば、必要に応じて適切なものが呼ばれるので、明示する必要がないとある。

ところが実際は記述しないとカメラが映らなくなる。Android2.x系が特に顕著。
Galaxy Sの場合、ErrorLogには出力されないが、カメラが映らない、といった現象に出くわした。

2.x系から最新のAndroidにまで対応するカメラアプリを実装する際には
setTypeを記述しないとハマることになるので注意。

また、cameraインスタンスは、必ずcloseしてからnullにするようにする。

Ubuntuでboot容量不足という警告の対処法

Ubuntuをアップグレードした際、bootの容量が100%になりました的な警告が出た。
対処法として、現在使用していない、旧カーネルをアンインストールすると解決する。

$ uname -a

で現在ブートしているカーネルバージョンを確認。

$ dpkg --get-selections | grep linux-image

Ubuntu上にインストールされているイメージ一覧を表示。

$ sudo apt-get remove linux-image-3.x.x-xx-generic
$ sudo apt-get autoremove

で現在使っていない、旧バージョンのイメージをアンインストール。
不要なカーネルイメージがなくなるまで繰り返す。

参考:Ubuntuの/bootパーティション100%容量問題解決

UbuntuでファイルIOを監視する

LinuxにはinotifyというIOを監視するコマンドがあるので
それを利用。

inotifyは通常再帰的ディレクトリ監視ができないが、
inotifywaitを使えば、ディレクトリを再帰的に監視可能。

まずはaptからインストール。

$ sudo apt-get install inotofy-tools



使い方。指定したディレクトリを監視する。

$ inotifywait ~/



上記コマンドだけでは、一度IOを確認すると実行が終了するので
mオプションを付加すると、継続的監視が可能。

$ inotifywait -m ~/



さらにrオプションを付加するとディレクトリを再帰的に監視可能。

$ inotofywait -r -m ~/

Androidアプリ「ギャラリー フォルダー プラグイン」の使い方

私が先日リリースしましたアプリの使い方について、
このエントリーでも触れておこうかと思います。

まず、このアプリを使うには、Androidに標準でインストールされている「ギャラリー」という、
写真や動画を閲覧するためのアプリが必要となります。
通常、どのスマホにもインストールされているはずですが、
中には意図的に入れられていない端末もあるようです。

その際は、無料アプリでは、「Gallery ICS」というアプリが、有料アプリでは、「Gallery+」というアプリが代替になります。
Gallery ICSは、「ギャラリー」を模倣した(?)アプリで、無料です。
Gallery+は、Galleryをベースに、様々な機能を拡張した、非常に優れたアプリです。
一応、どちらのアプリでも、本アプリが使えるようテストはしております。
けっこうサクサク動作し使いやすいので、おすすめアプリですw



Gallery ICS

Moblynx

価格:無料



Gallery+ (拡張版ギャラリー)

XELAVO

価格:100円

さて、ここからが使い方の説明になります。

  • まず、「ギャラリー」または「Gallery ICS」・「Gallery+」を起動します。


  • 次に、移動・コピーをしたいファイルを選択します。

ファイルを長押しすると、選択モードに切り替わります。
フォルダごと長押ししても、選択することができます。


  • すると、3つの点を線で結んだような形のアイコンが、上の方に出てくると思います。

これをクリックすると、リストが出てきますので、その中から「フォルダ管理」というタイトルをクリックします。
出てこない場合は、「すべて表示」すると出てくると思います。


  • 本アプリが起動します。

ギャラリー内に存在するフォルダの一覧リストが出てくるはずです。
そこから、移動・コピーしたい先のフォルダを選択します。
新しいフォルダを作成し、それに移動・コピーをしたい場合は、右上のボタンからフォルダを作成してください。
作成後、リストの先頭に新しいフォルダが追加されているはずです。

ちなみにコピー・移動の動作は、左上のセレクトボタンから変更できます。


  • フォルダを選択したら、あとはOKボタンを押すと、移動・コピーが始まります。

動画ファイルなどは、時間がかかりますので、処理が完了するまでお待ちになるか、
バックグラウンドに切り替えてください。


  • 終了すると、表示がでますので、ご確認ください。


もし不具合、ご意見等ありましたら、ホームページから
「Contact Tatuas」よりご連絡いただけると幸いです。
その際は、機種名をお教えいただけると幸いです。



評価、レビューもお待ちしております!!!

アンドロイドスマホのギャラリーでフォルダ分けを簡単に行う方法

Androidスマフォを使い始めると、標準のギャラリーに少し不満を持つと思います。
具体的には、なぜギャラリーは写真・画像や動画ファイルの移動やコピーができないのか、
ギャラリーからフォルダ作成や、フォルダ整理ができないのか、
といったところでしょう。

ここで、ほとんどの人は、QuickPicなどの著名アプリをインストールするわけですが、
標準のギャラリーのほうが、正直レスポンスがよく、洗練された部分も多いわけです。

解決策として、下記のアプリをインストールし、標準のギャラリーと連携して使うと、
ギャラリーのフォルダ管理ができるようになります。

使い方は簡単です。
前提として、ギャラリーを起動しておきます。
ギャラリーから移動またはコピーしたいファイルを選択し、
ギャラリーの「共有」ボタンから「フォルダ管理」を選択します。
フォルダ一覧のダイアログが出現しますので、
移動またはコピー先のフォルダを選択するか、
ダイアログ右上のフォルダ作成から作成したフォルダを選択し、
OKボタンを押します。

しばらく待てば、選択した写真・画像または動画ファイルが
希望通りのフォルダに移動またはコピーされていることでしょう。

最後にこのアプリは、ギャラリーと連携して動作するアプリである点に注意しましょう。


  • 最後に

このエントリーは、私がリリースしましたAndroidアプリの紹介記事となっておりますw
よろしくおねがいしますw

Androidアプリ「ギャラリー フォルダー プラグイン」をリリースしました

思ったより時間がかかってしまいましたが、
ようやくリリースすることができました。


このアプリは、Android標準のギャラリーから直接、
フォルダー整理やファイル移動・コピーができるようになるアプリです。
多分これまで類似のアプリは出ていないのではと自負しておりますw


技術的には結構複雑なことをいくつか行なっており
開発にそれなりの手間をかけてしまいました。


詳しくは、Google Playの方でご覧いただければと思います。
ぜひインストールしてください!

AndroidにおけるContextについて

Androidアプリを作っていると、一度はContextを目にする。
このContextにも、おおよそ2種類ある。

・ApplicationContext
通常はActivity内からgetApplicationContext()で取得可能(Context型)
アプリそのもののContextと考える。

・ActivityContext
現在開いているActivityのContext。
Activity内でthisとして取得可能。(Context型だが、Activity型にキャスト可能)

どちらも、取得した際にはContext型となる。
ここが、やや厄介なところ。
メソッドにより、片方のContextしか受け付けない場合があり、
IDEでもエラーは出ない。

例として、dialogをrunonuithreadから出力するときなどは、ActivityContextが必要になる。
ApplicationContextだとUnable to add windowとなり失敗する。

またContentResolverをActivityが開いていない状態でいじる際には
ApplicationContextが必要になる。


もしわからないときは、リファレンスを熟読し、親がどういったクラスなのかといったポイントから
読み取っていく必要がある。

AndroidのTween AnimationとProperty Animationの違い

Eclipseで、アニメーションのxmlを作成する際に困ったのでメモ。

  • Tween Animation

Viewに与えるアニメーション。
ボタンをフェードアウトさせたり、フェードインさせたりする。

APIandroid.view.animationで提供。
API Levelは1から。

  • Property Animation

Viewだけでなく、FragmentやDrawableといった様々なオブジェクトにアニメーションがかけられるようになった。

APIandroid.animationで提供。
API Levelは11から。

Androidで、自身のプロセスIDを指定してアプリのプロセスを強制終了する

android.os.Process.killProcess(android.os.Process.myPid());

文字通りアプリを強制終了する。
指定したプロセスとそれに関連するプロセスを強制停止する。
上記コードは自身のプロセスIDを拾っている。

実行するとデバッグモードであればログが出るはず。

推奨されないと巷には噂されるが、リファレンスには特にそうした記述は
見当たらない。自分が英語読めないだけという可能性も。。。

ただライフサイクルを巡回することなく、その時点で終了するので注意が必要。
(自分の実験結果。間違っている可能性もある。)

  • Androidでアプリを完全終了させる方法について

Androidの場合、厳密にはアプリは終了しない。
onDestroyまでライフサイクルが巡回すれば、
アプリのプロセスキャッシュがRAMに保存される。
つまり、プロセスはそのまま保持されるので、
見えなくなるだけと考えたほうが良い。
(RAMが逼迫すれば、GCが稼働しアプリが完全に破棄される。DDMSで確認。)
もっとも、アプリの起動・終了付近の振る舞いについては
ManifestでlaunchModeを指定すれば、カスタマイズ可能。


どうしてもすぐ終了させたい場合、Activity#finish()を実行すれば
onDestroyまでライフサイクルが巡回するので
Activity内でonPauseをオーバーライドし、killProcessを実行させる。

@Override
public void onPause() {
    super.onPause();
    finish();
    android.os.Process.killProcess(android.os.Process.myPid());
}

ただし、Toastも消えてしまうので注意。
(つまりToastはアプリのViewの一部ということである。また、Notificationは消えない。つまりNotificationはアプリとは連動していないこともわかる。)
また、アクティビティが終了する際のアニメーションもなくなるので、少し見栄えは悪くなる。