2014年11月30日日曜日

Google Account: 二要素認証 with Yubikey

Google accountをセキュアに利用されたい方は、以下の方法があります。

Google 認証(スマートフォン)
Yubikey NEO

お薦めはYubikey NEO(NFCデバイス対応, 50ドル)です。Google認証は電磁波盗聴には不利です。しかしマイクロコードやシグナルをELINT活動といって盗聴する技術が用意され盗聴できるため完全にYubikey NEOで防げるか分かりません。

FIDOにも参加しGITHUBにもソースが公開されているためアプリに組み込みたいところです。

https://fidoalliance.org

2014年11月26日水曜日

Android dev: Android開発するならこの本

「あんざいゆき」さんが出版している、または関係している本を読めばどんなIT系の出版会社よりも即効性があります。

内緒にしておきたかったけど、 皆さんが いいアプリが作れればと思います。

Google Drive: Spreadsheetにユニークな「転置」機能

以前、Googleにフィードバックしていた以下の内容「転置」が実装された。名前が分かりづらいので使っている方は未知数だが、表計算に慣れない人には便利な機能です。それを簡単に紹介します。

機能:
カラムといって列に配置されたデーターを行配置に変える機能です。

是非使ってください。

2014年9月7日日曜日

Android Dev: Chrome BookでAndroidアプリ開発環境を導入するには

Chrome Bookはネット専用ですが、Chrome BookにAndroid StudioなどのAndroid開発環境を構築する方法があります。
それは、Githubにアップされたcroutonと、さらにLinuxのUbuntu OSを導入する事で再起動無しにそれらの環境を切り替え(chroot)て利用できます。Intel x86ベースであれば、デュアルブート環境を構築できるそうですが、再起動無しに切り替える事ができるchrootの方が利便性は高そうです。

関連リンク:

2014年8月7日木曜日

OSX: ICMPについて

■ICMPの設定について

 ICMPは、TCP/IP通信において、補助的な情報(エラーなどの情報)をやり取りするために使われるプロトコルである。pingコマンドでは、このICMPを使って診断用データを送受信しているので、pingコマンドを利用できるようにするためには、ICMPのパケットが送受信できるようにしておく必要がある(ネットワークのトラブルシューティング作業などのためには、ぜひともこのpingが使えるようにしておくべきである)。

 ICMPで送受信されるパケットには、“type”と“code”という補助的なフィールドがある。pingで使われるICMP Echoとその応答であるICMP Echo Replyパケットでは、typeフィールドの値はそれぞれ「8」と「0」なので、pingの応答を受け取ることができるようにするには「type=0」のICMPパケットを通すようにする必要がある。また他のマシンからのpingに対して応答できるようにするには(必ずしも外部からのpingに応答する必要はないが、自分のマシン環境をインターネット側からチェックしたりする場合に、これが可能だと便利である。テストが終われば閉じてしまってもよいだろう)、「type=8」のICMPパケットを通すようにする必要がある(codeの値は0)。

2014年7月23日水曜日

OSX: ターミナルとフォルダ

ターミナル(Terminal)アプリケーションとは、GUI(グラッフィカルユーザインターフェイス)と相違し、CLIといってOSレベルのコマンドを入力し、OSや場合によってはアプリケーションを操作する為のアプリケーションです。

Terminalコマンドを使って様々な事ができます。
例えばファイル名を変更したい場合は、「rm」コマンドです。そしてこのコマンドの詳細が不明な場合はmanコマンドとrmコマンドを組み合わせて実行する事でコマンドの詳細が画面に表示されます。manの詳細については参考リンクから参照ください。

Terminal画面について
  • Terminalを起動すると以下の内容が表示されます。
    • your_pc_name:~ your_id$ 
  • 「~ your_id」と表示されるという事は、今ログインしているユーザIDのユーザフォルダのパスの配下(パスが通った状態)にアクセスできる状態であって、lsコマンドで表示されたフォルダがそうです。TerminalコマンドでDocuments(書類)などのユーザフォルダへアクセスするには~/を付加して操作する必要があります。以下がそのコマンドです。
    • cd ~/Documents です。
OSXのフォルダ種類:
  1. ユーザフォルダ
    • 「~/」で始まるフォルダ
    • Terminalから「cd ~」でユーザフォルダへ移動でき、以下のようにTerminal内の左側の表示が変わります。
      • your_pc_name:~ your_id$ 
  2. システムフォルダ 
    • 「/」 で始まるフォルダ 
    • Terminalから「cd /」でシステムフォルダへ移動でき、以下のようにTerminal内の左側の表示が変わります。
      • your_pc_name:/ your_id$ 
参考リンク:
環境変数(PATH)について
manコマンドの使い方

OSX: Bashscriptを作成し、実行する方法

バッシュスクリプトとは:

ターミナルで利用できるコマンドを実行可能形式のTextファイルに羅列し記述することで、一括で実行できるようにする為のスクリプトである。
この場合、外部パラメタ、グローバルまたはローカル変数、条件式を用いてそれに応じたTerminalコマンドを実行するように記述する為のものです。更なる詳しい事についてはGoogle検索してください。

作成方法:

コマンドによるバックアップ方法の内容に基づきbashscriptを作成する方法を説明する。

作成場所:~/Documents (書類)フォルダ
  1. 標準搭載の「TextEdit」などのエディターを起動する。
    • TextEditをテキストエディターとして使うにはTextEditアプリのTextEditメニューのPreferences(設定、「⌘+,」を押下)を表示させ、Plain Textを設定する必要があります。
  2. 以下の内容をその新規作成するファイルに記載、次の行からそれぞれのコマンドをTerminalで起動するときと同様の形式で記載する。
    • #!/bin/bash
  3. 任意のファイル名をつけ保存し、拡張子をshとする。
  4. Terminalを起動し、実行権限を以下のコマンドで作成したファイルに付与する。
    • $ chmod +x ~/Documents/backup.sh
  5. Terminalから実行し動作を確認する。
    • $ ~/Documents/backup.sh
   上記、$表示はコンソール内の表示であって無視。
 途中停止する場合、Control + Cで停止できます。

shファイル内容:
以下の内容はデスクトップにBackupフォルダを作成して個別バックアップ及びリストアするスクリプトです。なお、コマンド実行時にパラメターとしてディレクトリを入力を促すようにする事もできます。

------------------------------------------------------------------
Backup:

------------------------------------------------------------------
#!/bin/bash

echo Put your favourite path except the path to be backed up. Otherwise, it’ll be loop.
echo recommend to use external mount point such /Volumes

SUBVAR1=/Volumes/G-DRIVE
SUBVAR2=/Backup0728

if [ -z “$SUBVAR2” ]
then
VAR=$SUBVAR1
else
VAR=$SUBVAR1$SUBVAR2
mkdir $VAR
fi

mkdir $VAR
mkdir $VAR/System
mkdir $VAR/System/var
mkdir $VAR/System/Library
mkdir $VAR/User
mkdir $VAR/User/Mail
mkdir $VAR/User/Library
mkdir $VAR/User/Library/Application\ Support/

rsync -av -u ~/Desktop $VAR/User/
rsync -av -u ~/Documents $VAR/User/
rsync -av -u ~/Movies $VAR/User/

echo $VAR

rsync -av -u cp -R ~/Music $VAR/User/
rsync -av -u ~/Pictures $VAR/User/
rsync -av -u ~/Downloads $VAR/User/
rsync -av -u ~/Library/Logs $VAR/User/Library/

rsync -av -u ~/Library/Mail/V2 $VAR/User/Mail/
rsync -av -u ~/Library/Application\ Support/AddressBook $VAR/User/Library/Application\ Support/
rsync -av -u ~/Library/Calendars $VAR/User/Library/
rsync -av -u ~/Library/Safari $VAR/User/Library/
rsync -av -u ~/Library/Keychains $VAR/User/Library/
rsync -av -u ~/Library/StickiesDatabase $VAR/User/Library/
rsync -av -u ~/Library/Preferences $VAR/User/Library/
rsync -av -u ~/Library/Logs $VAR/User/Library/

sudo rsync -av -u /Library/KeyChains $VAR/System/Library/
sudo rsync -av -u /var/log $VAR/System/var/
sudo rsync -av -u /Library/Logs $VAR/System/Library/




-------------------------------------------------------
Restore: 


-------------------------------------------------------
#!/bin/bash

echo put your favourite path except the path to be backed up. Otherwise, it’ll be loop.
echo recommend to use external mount point such /Volumes

SUBVAR1=/Volumes/G-DRIVE
SUBVAR2=/Backup0728

if [ -z “$SUBVAR2” ]
then
VAR=$SUBVAR1
else
VAR=$SUBVAR1$SUBVAR2
fi

echo Documents
echo cp -R $VAR/Documents ~/

echo Desktop
echo cp -R $VAR/Desktop ~/

echo Movies
sudo cp -R $VAR/Movies ~/

echo Music
sudo cp -R $VAR/Music ~/

echo Mail
sudo cp -R $VAR/User/Mail/V2 ~/Library/Mail/

echo Pictures
sudo cp -R $VAR/User/Pictures ~/

echo Downloads
sudo cp -R $VAR/User/Downloads ~/

echo user LibraryApplication Support
sudo cp -R $VAR/User/Library/Application\ Support/AddressBook  ~/Library/Application\ Support/

echo user Library Calendars
sudo cp -R $VAR/User/Library/Calendars ~/Library/

echo user Safari
sudo cp -R $VAR/User/Library/Safari ~/Library/

echo User Keychains
sudo cp -R $VAR/User/Library/Keychains ~/Library/

echo User Stickies
sudo cp -R $VAR/User/Library/StickiesDatabase ~/Library/

echo User Preferences
sudo cp -R $VAR/User/Library/Preferences ~/Library/

echo User Logs
sudo cp -R  $VAR/User/Library/Logs ~/Library/

echo System Library Keychain
sudo cp -R $VAR/System/Library/KeyChains /Library/

echo System var
sudo cp -R $VAR/System/var/log /var/

echo System Library

sudo cp -R $VAR/System/Library/Logs /Library/

参考リンク:


2014年7月13日日曜日

Mac: アプリケーションのインストールパスをGUIから確認する方法

インストール後、アプリケーションのインストールパスがわからない場合、以下の手順で確認する事ができます。

手順:
  1. Finderを起動して、アプリケーション(英語の場合はApplication)フォルダを開く
  2. 特的のアプリケーションのアイコンをControlキー + クリックする事でパッケージ詳細(Package Contents)を表示する。その配下のファイルが表示されます。
  3. どれか適当にファイルなどのアイテムを選択し、情報をみる(Command+iキーをクリックする)でパスを確認できる。





Mac: コマンドによるThunderbird のバックアップとリストア

以下の手順によりコマンドでバックアップとリストアする方法を説明します。なお、バックアップ対象は以下の通りでこれらの手順でリビルド時等にバックアップしたときの状態に復旧できます。

バックアップ対象:

プロファイルをバックアップする事で以下の対象がバックアップできます。
  • すべてのメールアカウントのプロファイルとそのパスワード
  • メールコンテンツ(ローカル)

バックアップ手順:
概要:
  • Thunderbirdのプロファイルディレクトリの確認
  • 指定パスへのプロファイルのバックアップ

詳細:

Thunderbirdのプロファイルディレクトリの確認
  1. Run Terminal
  2. cd ~/Library/Thunderbird/Profiles
  3. ls
  4. .defaultと拡張子がついたファイルがプロファイルとそのローカルコンテンツを含んだファイルになります。例:pr1cde0f.default

指定パスへのプロファイルのバックアップ
以下の場合は、Documentsフォルダへ上記の例であげたプロファイルをバックアップする方法です。
  1. cp -R ~/Library/Thunderbird/Profiles/ab7cde1f.default ~/Documents/pr1cde0f.default


2014年7月12日土曜日

OSX: man コマンドの使い方

manコマンドによって該当のコマンドの詳細やオプション表示できます。

例:


終了: q、または、ctrl+vを押下
画面スクロール: コマンドキー(⌘)+上または下矢印キーを押下

Mac: コマンドによるバックアップ方法 〜 TimeMachineを使わずに

TimeMachineなどでバックアップする以外に、以下の項目を個別にバックアップする事が可能です。そのときのOSXの最新バージョンで説明しています。

バックアップ対象一覧:

個人データおよびファイル
  • ~/Desktop
  • ~/Documents
  • ~Movies
    • iMovie, etc
  • ~/Music
    • iTunes, etc
  • ~/Pictures
    • iPhoto, etc
  • ~/Downloads
セキュリティ設定(キーチェン)
  • ~/Library/KeyChains
    • サイトへログインし正常にKeychainsへ保存されたパスワード
    • Wi-Fi(SSID)のセキュリティキー
コンソールログ
  • /var/log
  • /Library/Logs
  • ~/Library/Logs
メール設定とメール
ブラウザのBookmark
  • Safari
  • Chrome
ユーザ辞書
  • 方法:ユーザ辞書を開き選択してデスクトップへドラッグするとファイル(plist)が作成され、そのファイルの内容をドロップして戻せば復元できる。
その他アプリの設定
  • 各アプリケーションなどのplistをバックアップする

バックアップコマンド一覧:

外部ドライブの方は、LaunchPadのその他のDiskUtilityからマウントポイントを確認し/your_backup_path/ の部分を任意のフルパスへ変更してください。私の場合、マウントポイントは、/Volumes/External1/です。そしてその外部ドライブに作成したバックアップの為のフォルダが、Backupという名称のフォルダーなので、/Volumes/External1/Backup/です。そして、私の場合わかりやすく、UserとSystemのフォルダを分けています。そのため、User/とSystem/を付加しています。権限の関係でSystemフォルダはエラーが発生しますので、「sudo cp -R」 で実行する必要があります。

フォルダの区分
  • ユーザフォルダ 「~/」
  • システムフォルダ 「/」
バックアップコマンド一覧:

cp -R ~/Desktop /your_backup_path/User/
cp -R ~/Documents /your_backup_path/User/
cp -R ~/Library/Mail/V2 /your_backup_path/User/
cp -R ~/Movies /your_backup_path/User/
cp -R ~/Music your_backup_path/User/
cp -R ~/Pictures /your_backup_path/User/
cp -R ~/Downloads /your_backup_path/User/
cp -R ~/Library/Application\ Support/AddressBook /your_backup_path/User/Library/Application\ Support/
cp -R ~/Library/Calendars /your_backup_path/User/Library/
cp -R ~/Library/Safari /your_backup_path/User/Library/
cp -R ~/Library/Keychains /your_backup_path/User/Library/
cp -R ~/Library/StickiesDatabase /your_backup_path/User/Library/
cp -R ~/Library/Preferences /your_backup_path/User/Library/
cp -R ~/Library/Logs /your_backup_path/User/Library/

sudo cp -R /Library/KeyChains /your_backup_path/System/Library/
sudo cp -R /var/log /your_backup_path/System/var/
sudo cp -R /Library/Logs /your_backup_path/System/Library/

リストアコマンド一覧:

cp -R /your_backup_path/Desktop ~/

cp -R /your_backup_path/Documents ~/
cp -R /your_backup_path/Movies ~/
cp -R /your_backup_path/Music ~/
cp -R /your_backup_path/User/Mail/V2 ~/Library/Mail/
cp -R /your_backup_path/User/Pictures  ~/
cp -R /your_backup_path/User/Downloads ~/
cp -R /your_backup_path/User/Library/Application\ Support/AddressBook  ~/Library/Application\ Support/
cp -R /your_backup_path/User/Library/Calendars ~/Library/
cp -R /your_backup_path/User/Library/Safari ~/Library/
cp -R /your_backup_path/User/Library/Keychains ~/Library/
cp -R /your_backup_path/User/Library/StickiesDatabase  ~/Library/
cp -R /your_backup_path/User/Library/Preferences  ~/Library/
cp -R  /your_backup_path/User/Library/Logs ~/Library/
sudo cp -R /your_backup_path/System/Library/KeyChains /Library/
sudo cp -R /your_backup_path/System/var/log /var/
sudo cp -R /your_backup_path/System/Library/Logs /Library/

上記の全てのコマンドを一括実行したい場合には、bashscriptという実行可能なファイルを作成し、Terminalから実行する事ができる。その方がTerminalのコマンドヒストリーが雑然にならなくてよいと考えます。またTerminalのCommandヒストリーは削除できる方法がありますが、複雑のようです。
bachscriptの書き方はこちらから参照してください。

補足:
  • 開発者はAndroidStudioなどに保存したプロジェクトファイルのバックアップなどお忘れなく。
参考リンク:

    Mac: ネットワークブート時のローカルディスクアクセス

    ネットワークブートした場合にローカルディスクの~/Libraryなどへアクセスするには、そのブートした画面からFinderメニューのGo To Folderから以下のパスを入力することでアクセスできる。

    /Volumes/VolumeName/Users/UserName/Library

     VolumeNameは通常Macintosh HD




    2014年6月3日火曜日

    製品開発のアイデアを集めるには

    当たり前の事を申し上げるようで恐縮ですが、各メーカーが製品アイデアを考える、また集める為の効率的な方法をお考えになっていると思いますが、それが反映されたり、効果を生んでいますか?

    私の目には特に日本のメーカーは競争力を失いかけている様に見えます。

    (合成テレパシー、ニューラルネットワークコンピューター、RNMNM、サイコトロニクス兵器のV2Kで思考操縦、思考妨害されているので簡潔には書けませんが、少しだけでもヒントにしてください)

    マーケティング会社やシンクタンクも良いと思いますが、エンドユーザからの目線というのをお忘れになっていませんか? マーケティングのプロでも見落としている点があるかと思います。独自目線をもってみることも一考です。社内ベンチャーで若手登用してはいかがでしょうか。合成テレパシーでアイデアが生まれるかもしれません。

    どのフォームも個人情報を記載させるばかりでタイムコンジューミングであり、前向きにGoogleみたいな形で簡単にフィードバックできる体勢を整えるべきだと思います。

    例えば:
    それがスマートフォンのアプリだったり、個人情報を入力の必要の無いウェッブフォーム、そしてアクセスのし易さ、仮名漢字変換モードが自動的に変わる入力し易いフォームの提供です。
    仮にこれらが利用できる状態であっても執拗に個人情報を電話で伺ったり、入力させたりしていませんか?
    この対応はエンドユーザに煩わしさをもたらすものであり、建前だけで受け付けたくないとも感じられる対応であり、さらにはエンドユーザの時間を奪う形となっております。明らかに後ろ向きであると考えます。
    • スマホアプリ
      • ドミノピザが億単位の売り上げを上げた話をご存知かと思いますが、良い例だと思います。
    • ウェッブフォーム
      • フィードバックフォームへの容易なアクセス
      • フィードバックフォームとFAQフォームの連携
      • 公的機関に認められた有効なSSL証明書と通信には必ずhttpsを必ず用いる
      • 不必要に個人情報を収集しない
      • 容易な入力および簡潔な入力フォームの用意
      • 認証を前提とするのであれば、Googleアカウント認証等も利用できるようにする。とても良い例が、「Superuser.com」などを参照してください。
    冗談を交えたようなアプリを開発し(容量はミニマムアクセス権を動作するアプリ)、提供する事でそれを用いて利用者からフィードバックしてもらう仕組みを活用する等、さまざまな手があるかと思いますが、一度ご検討ください。

    人と同じことをせず、今まで「いらないんじゃない・・・、難しいから・・・」と思われていた事を再度考えてみてはいかがでしょうか?

    こんなのがあったら:
    • Lexusがインターネットで、3Dモデリングツール(あくまでもディテール)を開示して、ボディの形状を整形できる仕組みを提供し、生産ラインを整え、受注生産する。
    • 車メーカーがボディ設計(AutoCAD形式など)を公開し、他社がそれを用いて、インターネットで3Dモデリングサイトを用意し、ボディーパーツを受注する仕組み
    • TOTOがトイレが好きになるようなアプリを開発し、ウォームタイマーや、ウォシュレットの設定(ウォシュレットの角度や位置)をスマホに登録できるアプリを用意する。小学生や幼稚園児は大きい方を恥ずかしがり、行った方をバカにしたりしますがそれも払拭するようなアプリ。



    2014年5月31日土曜日

    OSX: 録音した音声ファイルの作成日付を維持するには

    ファイルの日付が変わる場合、以下のケースが想定されます

    想定されるケース:
    • 録音機からPCへダウンロードするとFinder上ではダウンロード日付が作成日になる(これはSonority Plusなどの管理ソフトを使うと、管理ソフト上では作成日は正しく表示されていますが、Finder上ではダウンロード日時となっています。
    • 何者かによってマイクロ波でマイクロコード(コマンド)が送られてきたりして、ファイルの日付が変えられる
    対策:

    まず録音機(/Volumes)からダウンロードせずに、つないだ状態でfindとstatコマンドの組み合わせで日付を取得しファイル名に日付をつけると問題を解決できます。

    コマンドは以下の通りです 

    find /Volumes -exec stat -f "%N %SB %Sa %Sm %Sc %z" {} + > ~/Desktop/list.txt


    捕捉:

    上記のlist.txtの部分に対して、ネーミングコンベンション(名前付け規則)でファイル名に日付などをつけておくと便利です。






    2014年5月30日金曜日

    Nexus 5(EM)がGoogle Accountの2要素認証に完全対応!(2014/5/28現在)

    Google Product forum経由でお願いしていた、Emobileが提供しているNexus 5のメールアドレスのドメイン(FQDN)が、Google Accountの2要素認証に対応しましたとの連絡がありました!(2014/5/28現在)

    Googleの2要素認証(2FA, 2 step verification)について
    https://www.google.com/intl/ja/landing/2step/

    メールアドレス以外ではずっと対応しておりましたが、これで完全対応です。

    感謝感激です!!!

    Thank you, Google!





    2014年5月12日月曜日

    OSX - ファイルのタイムスタンプをリストに抽出するには

    以下はDocumentsフォルダの内容すべてをリスト化するコマンドです。

    find ~/Documents -exec stat -f "%N %SB %Sa %Sm %Sc %z" {} + > ~/Desktop/Documents.txt

    %N         ファイル名
    %SB  作成日
    %Sa  最終アクセス日
    %Sm  更新日
    %Sc
    %z   容量


    statのオプションの詳細についてはman statコマンドで見る事ができます。

    2014年3月26日水曜日

    Thinking like Google to bring efficiency and effectiveness in all life

    お洒落でかっこいいと思われているMac。実は、最近色々使っていると、標準アプリなのにも関わらずインターフェイスのメニュー項目名が統一されていないため、初心者には使い勝手が悪い部分があります。言葉を変えれば、このようなUI・機能不足などは、開発者にとってビジネスチャンスです! もちろん、ご存知の通りMacには興味深い機能やサービスがたくさんあります。

    ご存知の通り信者が多いのもMacですが、実はスティーブ・ジョブズ氏の思想が分かっているようで分かっていない保守派の信者やユーザーが多いようです。 知っている方も多いと思いますが、あのGUIとマウスを一般向けに展開したのはスティーブ・ジョブズ氏です。私の大好きな経営者でありイノベイターのスティーブ・ジョブズ氏。彼の思想をエンドユーザ側で支援します。 私が見つけ次第、「Fix it」します!

    これからいろいろと改善提案をしますが、おそらくGoogle社のようには改善の話には前向きでないと思いますが、保守的にならず、根気よく簡潔かつ丁寧に提案していきます。


    私はGoogleの信者ではないですが、お金があったらタイミングを見計らってGoogle社の株を買いたいですね! 株にはリスクが付き纏いますが、株を買いたいと思わせる程の企業が本当のイノベイター企業です。もちろん今もアップルの株はとても魅力的ですが・・・。

    もしかしたらChrome BookやAndroidがあなたのデスクトップ環境の分野に、そして世界を席巻する日がくるかもしれないと予想している今日この頃です。

    最後に、経営者や、専門家が陥っていけない一つに視野の狭さつまり柔軟性に欠けること。肝に銘じて・・・ これは誰にもどんなときにも言える事です。

    無想転生

    2014年3月11日火曜日

    Chrome: ブラウザの動作および表示されたコンテンツの問題点を特定するには〜執筆中

    Chromeでブラウザの動作および表示されたコンテンツの問題点を特定するには以下の方法をお薦めします。

    初心者向け:



    中級者向け:
    ・設定(chrome://settings)のスタートアップで、open a specific page or set of pagesのset pagesでchrome://net-internals追加することで同一ウィンドウ内の動作を確認できます。
    ・Wireshark(http://www.wireshark.org/)でパケットキャプチャーでパケットのやり取りを確認できます。

    OS X:
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --log-net-log=$HOME/net_log.json

    out put: net_log.json

    補足:

    昨今マイクロ波などを活用して、リプレイアタックや、なんらかのパケットインスペクションが行われていると思われる現象が起きています。その為とても不思議な状況に見舞われる事がある方が散見されます。
    例えば、英語版Appを使っても日本語が表示されたりします。Android Nativeアプリはstrings.xmlでコントロールしており、サポートされていなければ表示しません。HTML5版のAndroidアプリは一般的にご存知の通りHTMLです、もしかしたらWeb componetが変換しているかもしれません。

    2014年3月10日月曜日

    Mac OS X(Mavericks)の環境変数および設定方法について

    環境設定には以下の3種類あります。(まとめ中に付き、以下リンクより参照)

    参考リンク:
    http://osx.miko.org/index.php/Beginning_OS_X_Mavericks/%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E6%95%B4%E5%82%99%E7%B7%A8#.E7.92.B0.E5.A2.83.E5.A4.89.E6.95.B0.E3.81.AE.E8.A8.AD.E5.AE.9A

    a. システム環境設定
    b. 全ユーザ用     ~/.bash.rc
    c. 個人ユーザ環境設定   /.bashrc

    たとえば、ユーザ特有のパス設定などをするときはユーザ環境設定でします。
    コマンドは以下の通りです


    Android Studio開発環境のPATH:
    PATH=/Applications/Android\
    Studio.app/sdk/tools:/Applications/Android\ Studio.app/sdk/platform-tools:$PATH

    export PATH

    adbは<sdk>/platform-tools/.
    ddmsは<sdk>/tools
    Android Studioのインストールパスがわからない場合、ApplicationフォルダでアプリのアイコンをCommand+クリックでパッケージ詳細(Package Contents)を見る事でファイルが表示されるので、どれか適当にCommand+iキーで情報をみるでパスを確認する事ができます。

    参考:
    アプリケーションのインストールパスをGUIから確認する方法
    http://tappiserv.com/geek/?p=60
    https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/EnvironmentVars.html
    https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man1/dyld.1.html



    2014年3月9日日曜日

    Blogger: LibreOfficeからBloggerにペーストするとフォントが変になる

    LibreのLibreOfficeからBloggerにペーストするとフォントが変わります。Bloggerでは直せません。
    そこで、LibreのプリファレンスでDefault Language for documentsの設定のAsiaをJapaneseにしてから、ペーストすると解決します。




    Trouble shooting Tips 6: Google Chromeが急に不安定および動作しなくなった場合

    Chromeが更新されると以下のような理由によりChromeが正常に動作しないようになることがあります。


    原因:

    1. Google Chromeと連携して動作するコンポーネントが更新された。
    • 例えば、Flash Player  → 更新版またはChromeオプションでGPUを無効
    2. Google Chrome(Extension)の実行に伴い作成されるファイルに影響するアプリをインストールしている。
    3. Google Chromeの通信に影響を与えるソフトウェアがインストールされている。
    4. OSの機能が関係している。
    • Windows Vista以降に付加されたUAC機能によりUACに対応していないアプリは管理者権限でないと動かなくなっている場合がある。UAC(ユーザアカウント制御)の解除 又は →  OSメーカーのヘルプおよびGoogle Productforum
    個人で行うトラブルシューティング:
    • 基本:最小構成で実行してみてどうか確認する。
    1. Chrome エクステンション(chrome://extensions/)を全て無効
    2. Mac(PC)をセーフブート+ネットワークで起動(上記で上げた3番までの項目が念のため動作停止していることを確認し、再現性はあるか、安全と思えるサイトhttps://www.google.co.jpへアクセスできるか?失敗 → 次に進む
    3. その他プロセスがChrome実行の為に必要なファイルを掴んでいないかをファイルモニター等のユーティリティで確認し問題を特定する。→ 除外したり、プロセスを停止する。
    ※アプリ側から停止してもサービス(デーモン)が何らかの理由により動作している場合があるため、OS側のサービス(デーモン)表示画面から停止することがポイント。 
    その他の原因:
    1. 設定を誤って変えてしまった。→ GoogleChrome ヘルプ とchrome://settings/
    2. 空き容量がない(クオータまたは総容量)→ 個人データのバックアップ、Tempフォルダ内のクリア、一時保管更新ファイルの削除
    いずれにしてもこれらの現象はリスクとして健在するため、以下のリカバリープランを用意することをお薦めします。

    復旧プラン:
    1. バージョンのインストーラーを保存しておく。→ 外部ディスク
    2. インストールの前またはインストール後全ての動作確認後、OS含むフルバックアップを保管しておく。→ TimeMachine(Macの場合)、 Symantec Ghost
    3. Chromium等のブラウザをインストールし、ブックマークなどをバックアップ、インポートしておく。
    補足:

    旧バージョンのインストーラーを保管する場合、デフォルトのダウンロード先に保管すると、悪意のあるアプリなどにより改竄され、後日あなたは知らずに利用することになりかねません。
    知りたい方は、正常動作しているときにパケットキャプチャー、ファイルモニターなどで調べておくと動作の把握ができ、問題時に比較できます。





    2014年3月7日金曜日

    Trouble shooting Tips 5: Chromeを使ってインターネットのサイトにアクセスできない場合に

    以下のような対処方法(問題の切り分け、解決)があります。

    Google Chromeを使うとサイトが見れない場合(他ブラウザで見える場合):

    確認方法: 
    • OS(パソコン)のセーフモード(+ネットワーク)起動後安全と思われるgoogle.co.jpへアクセスの可否
    • ウィルス対策ソフトウェア(アプリケーションブロック機能等)の一時停止後の安全と思われるgoogle.co.jpへアクセス可否、→ ウィルス対策ソフトウェア更新入手
    • Chrome拡張(エクステンション)の一時停止、→ Chrome及びエクステンションの更新
    • Chromeの履歴(Cookie含む)の削除
    • Androidスマホ Chromeの場合はデータおよびキャッシュのクリア
    • それぞれの設定確認
    • Chromium、または他のブラウザを利用
    • Chrome https://support.google.com/chrome/answer/117805?hl=ja
    • パケットキャプチャーによる分析など
    • Chromeをデバッグモードで起動
    どのブラウザを使ってもサイトが見れない場合(インターネットに繋がらない場合を除く):


    概要:
    • ping, telnet, tracerouteでの疎通確認
    • telnetで, ウェッブまたはメールサーバのサービスポートへの疎通確認
    • ifconfig(ipconfig)で、自身の設定などの確認
    • nslookupでDNS名前解決可否
    • Wi-Fiのチャネル設定を含むネットワーク状態確認、ファームウェアの更新、設定適正化、機器の再起動
    • nslookupでサイト名解決可否確認 nslookup www.google.co.jp
    • whoisでサイト登録状況の確認 whois www.google.co.jp
    • パケットキャプチャーによる分析
    • System/Application ログの解析
    なお、解明がかなり難しい特殊な攻撃があります。Replay attack、Man in the middle attack、マイクロ波によりマイクロコードが制御されるなどあります。

    クラウドサービスのアカウントおよびパスワード管理について

    Macやパソコン、スマートフォンでインターネットを使っているとパスワード管理が気になります。そこで以下の機能と、サービスまたはアプリを簡単にご紹介します。

    認証情報を一括でサイトで管理(SSO) したい場合:

    • ショッピングサイトなどの認証情報を一括でサイトで管理して、一つのIDとパスワードでどの端末からも利用できるようにできます。また物理トークンと合わせ二要素認証もできます。詳しくは以下のサイトで参照してください。
    • Lastpassアプリ及びサイト(https://lastpass.com/)、物理トークンで二要素認証可能

     GmailやGmailアプリなどのGoogleクラウドサービスをもっとセキュアに利用したい場合:

    • 以下のアプリを用いて2つの要素で認証する方法を取り入れる事を薦めします。これによりあなたのアカウントのリスクを大幅に軽減できます。通信端末が利用できない場合に備えて紙にコードを事前印刷したり、オフラインでも利用できます。
    • Google 認証(Google Authenticator)アプリ(https://www.google.com/intl/ja/landing/2step/

    パスワード管理を1カ所で管理し同期したい場合:

    • 以下のアプリを用いてパスワードを管理でき、またマルチプラットフォーム管で同期できます。
    • 1Password4(https://agilebits.com/onepassword)

    余談:

    アカウント管理あなたの責任です。アカウント管理の基本になるのは、アカウントを以下の項目で使い分けること、パスワードはSNSやどんな親しい人にも推測されにくいフレーズでかつ大小英数字特殊記号などを用いて長めに構成すること。またセキュリティについては余程親しくても何を使っているかは話さない様にすることがキーポイントです。Google社などのYoutubeビデオでも見て参考にしてください。



    (執筆中につき情報をまとめていきます)

    2014年3月5日水曜日

    Essentials: PC、スマホ初心者が問題を抱えた場合のトラブルシューティング方法

    PC、スマホの初心者の方が、少しでもできるだけ時間を欠けずに問題解決できればと思って記載しています。単純に実施することで結果から判断できる内容になっています。

    問題解決へのアプローチ:
    トラブルシューティング:
    状況把握:


    トラブル軽減策:
    • 普段から、設定した内容、データなどは外部ディスクへバックアップしましょう。またあなたのその機能に対する緊急性と重要度に応じてプライオリティを決め、リスクを軽減することです。たとえばリリースされた内容にざっとでも目を通して確認し、影響範囲を見極める事が大切です。また緊急性が低いものはすぐに更新しないことなどで回避しましょう。外部データの暗号化が必要な人は別のページでご案内します。
    その他:


    何か誤字脱字などあれば気軽にコメント下さい。なお、抱えたトラブルシューティング対応は致しておりません。ご了承ください。

    Trouble shooting Tips 2: Android アプリケーションのトラブルシューティング〜全般

    一部まとめ中につき、完全では有りません、ヒントがあります。

    もしAndroidアプリケーションの利用中にトラブルを抱えたら、以下のことをかくに実施しすると解決への糸口となり、また再現性があるかを見る事で、googleproductformsを利用し適切な内容とともに質問したり、Googleへ直接フィードバックしたりできるでしょう。
    なお、設定中の個別のエラーは対象外です。

    まず最初に確認する項目:
    ・事前に設定変更をしていないか(念のための設定の確認)
    ・Google Playでアプリをインストール、または更新したか(それ以外のインストール方法は除く)
    ・Google Playでアプリの更新通知は来ていないか?

    クリアする対象:
    ・履歴、キャッシュ
    ・データ

    方法:
    ・通常メニューから履歴、キャッシュをクリア
    ・設定>アプリ>任意のアプリ>キャッシュをクリア
    ・設定>アプリ>任意のアプリ>データーをクリア

    それぞれの利用目的(まとめ中)
    ・履歴
    ・キャッシュ
    ・データ

    今後の対応:
    ・緊急対応以外または安定して稼働している状況であれば更新通知がきてもすぐにインストールしない。
    ・設定を変えたばかりであれば新機能が付加され、ユーザーインターフェイスが一部変わるため、初心者には操作が分からなくなる可能性があるためインストール通知がきてもしばらくは控える。(ただしメニュー項目の定義は以前と同一で機能が増えただけ)
    ・Google Playで更新通知を表示し、インストールはユーザが選択してを選ぶ。

    アプリケーション固有の条件
    ・Google Authenticatorアプリで2要素認証を実現している人は、時間同期がNTPサーバー(タイムサーバー)と取れていてかつ正確な時間である必要があります。またあなた自身が設定したパスワードは使えても、アプリケーション固有のパスワード(ASP)は場合によってはエラーを生み出す可能性があり、再設定をすることを薦めます。

    解決できない場合の質問先:
    ・Google Product Forum
    ・各アプリケーションのアクションメニュー(画面右上部)からのフィードバック

    Factoryリセットまでせずとも、アプリケーションを初期状態に戻し、設定をやり直す事で解決できる場合が殆どです。

    以上ワークアラウンド的対応について説明させていただきました。

    2014年3月4日火曜日

    Trouble shooting Tips 4: インターネットやメールサーバーに繋がらない場合の対処法

    範囲:
    • ネットワーク的要素による問題
    • OS X Mavericks(ただしコマンドtracerouteをtracertと読み替えれば有効な内容です) ※表現は初心者向けに変更しています。
    範囲外:
    ブラウザ自体の問題、例えば、Chromeでは表示できるが、Safariではできないと言った問題の解決方法ではありません。その場合、Google検索で調べてみたり、Googleやアップルのディスカッションサイトで質問してください。無線LANを利用されている方はこちらも合わせて参照下さい 。( Wi-Fiが不安定になり、繋がりにくくなる、または切断される)
    想定されるケース:
    インターネット、サーバー等が障害またはメンテナンスでダウンまたは切断されている。  → 手順 
    自宅のルータ及びルータ上のサービス(DHCPサービス等)が何らかの理由によりダウンしているまたは設定不良。  → 手順
    ウィルスに感染し機器が汚染され誤動作している → おつかいのルータまたはウィルス対策ソフトメーカーのサポートセンター及びホームページ参照
    手順:
    1. まずは、画面下部にあるDockからLaunchpad>その他を順にクリックして、Terminalを起動します。
    サイト(インターネット)に繋がらない場合、以下の確認方法で示されているコマンドで指定するサイト名にはあなたが問題を抱えたサイト名(FQDN)や、または安定的に稼働しているだろうと思われるサイト名www.google.comなどに置き換えて実施します。
    メールを受信できない場合、サイト名をあなたが使っている受信プロトコル(+サービスポート番号)に合わせ置き換えて操作してみてください。
    以下は2014年3月4日現在、利用しているiCloudとGmailの場合です。
    iCloud(IMAP4のみ対応)の場合imap.mail.me.com サービスポート番号は993
    Google(Gmail)の場合:IMAPサーバ imap.google.com サービスポート番号は993、POPサーバ pop.google.com サービスポート番号は995
     2. 以下の確認方法の項にあるコマンドを実行し応答があるか、エラーがあった応答しないなどのメッセージが表示されるかを確認し問題の切り分けを行います。

    確認方法:

    以下のコマンドを入力し実行します。(尚、_はスペースに置き換えてください。応答が無かったり、エラーが表示された場合は、各コマンドの文頭の番号を引用し、「結果からわかる問題点」を参照してください)
    1. ping_あなたのルータのIPアドレス(あなた固有の設定) 
    2. ping_サイト名またはIPアドレス
    3. traceroute_サイト名(FQDN)またはIPアドレス(OS Xの場合)
    4. telnet_サイト名(FQDN)_サービスポート番号 
    5. 上記でサイト名が解決できない場合は上記サイト名部分をIPアドレスに置き換えてください。また以下のコマンドで名前解決(サイト名からIPアドレスへ)できるかどうか確認します。 
    6. nslookup サイト名
    7. whois サイト名
    サイト名について、通常Webサイトはポート80番(http)、グーグルや、Gmail、Amazonなどは、SSLによる署名がされているサイトなので、ポート443(https)番になります。それらは、URLバー(検索バー)でhttp://(80) またはhttps://(443)のURLで確認できます。
    結果から分かる問題点:
    1. pingであなたのルーターから応答が返ってこなければ、ルータを含むそれまでの経路上の問題です。この場合ケーブル、無線LAN、無線LANのチャネル設定、ネットワークインターフェイスなどが想定されます。(ネットワークインターフェイスは2つの方法で確認できます。割り当てられたIPアドレスへのpingとloopbackアドレスへのpingで確認できます。OS X Mavericksの場合、loopbackが有効になっていないので必要に応じて有効にする必要が有ります)
    2. pingでサイト名またそのIPアドレスからの応答が返ってこなければ、サーバーへのICMPが経路上のどこかでブロック設定されているか、サーバーが落ちているかエラー内容により確認できます。 
    3. tracerouteでそのサイト名またそのIPアドレスまでの経路情報が表示され、たどり着けない場合はこれで障害ポイントを見つける事が出来ます。 
    4. telnetでportに接続できなければ、サービスが落ちている、設定が不足または設定されていない、または途中サービスポートの通信を妨げる機器があるなどの原因が考えられます。(普通動いていれば接続できます。ログアウトする場合は通常"^]"を入力します。)
    5. nslookupでサイト名を名前解決が出来ない場合、設定されたDNSサーバーがダウン、DNSアドレスの消滅、DNSサーバ名が間違っている、DNSクライアント設定が間違っている、DNSクライアントデーモンが停止しているなど考えられます。
    6. whoisでサイト名が存在する事を確認できない場合、すでに何らかの理由(サービス廃止、統合、変更)によりそのサイトは廃止されています。
    例: 
    ping 192.168.111.1 
    ping imap.gmail.com 
    traceroute imap.gmail.com
    telnet imap.gmail.com 993
    nslookup imap.gmail.com
    whois gmail.com 

    補足:
    • 上記コマンドラインの後ろに”> ~/Desktop/ping www.google.co.jp_hizuke.txt”などで結果をファイルに保存することもできます。
    • man pingなどでpingのオプションコマンドを参照できます。終了するにはq, ctrl+vを押下。画面をスクロールする場合は、コマンド+上下矢印キーを押下することでできる。
    • コマンドが動作しない場合、コマンドへのアクセス権を制限されている、アプリケーションファイアウォールでコマンドがブロックされている等が考えられます。またまず無いと思いますが、コマンドファイルに実行権限がないなどが考えられます。

    2014年3月3日月曜日

    I Love Google

    私はグーグルの思想が好きです。グーグルの良いところは、クラウドなどのインフラだけでなく、Gmailなどのサービスや、それを使うためのクライアントアプリなどが考え抜いて作られているからです。それも透過的に、スケーラブルに・・・

    またセキュリティ面も、どのインターネット企業よりも率先して研究・実装してきます。

    さらにその開発環境、その開発者を支援するツールも情報が整理され、開発者の苦手な分野までカバーし支援するといった姿勢にとても好感が持てます。

    またユーザレベルにおいて、提供されているアプリの設定メニューからすぐにフィードバックできるため、機能追加依頼ができ、またこれがかなり早い段階で反映されたりすることもあり、とてもアクティブでかつスピーディな会社だと思います。類い稀なる会社です。

    人に楽しみと幸せをもたらすとてもすばらしい会社だと思います。


    2014年3月2日日曜日

    Trouble shooting tips 3: Wi-Fiが不安定になり、繋がりにくくなる、または切断される場合の問題解決方法

    Wi-Fiが不安定になっている場合は以下のような状況および問題が想定され、対処を記載しました。くれぐれもトラブルシューティング時において過信は禁物です。

    ※このドキュメント誤記を見つけた方はご連絡いただけますと幸いです。

    状況:
    現在の状況から、右に記載された番号の想定される問題の各項目を見てください。

    ・一度繋がり、しばらくするとまた不安定になる、切断される。 → 1, 2, 3, 4, 5, 6
    ・ほぼ同じ時刻辺りに不安定になる。 → 2, 3, 5, 6 
    ・ほぼ同じ時刻辺りに切れる。 → 2, 3, 5, 6 
    ・複数のWi-Fiのクライアント(スマホなど)何故か一台だけ繋がらない。 → 1, 5, 7
    ・同じネットワークの違う端末が起動すると不安定になる。 →  5, 4,1
    ・工場や大きなまたは古い機械が近くにあり稼働すると不安定になる。 → 3

    想定される問題:

    1. 現状のMacWi-Fi関連のソフトウェア(ドライバー、Wi-Fiのファームウェア)またはWi-Fiルータのファームウェアが対応していない(相性が悪い)→ 対処A
    2. 利用しているWi-Fiのチャネルが他のWi-Fiルータのチャネルと同じであるため干渉している。理由としては近隣のオフィスまたは住民が自動設定にしておけばよいのですが、あなたも含め手動で設定している可能性が高く、そのWi-Fiルータが起動した場合、先に利用している者とバッティングして電波干渉が起きる。→ 対処B
    3. 同一周波数帯の電磁波例えば電子レンジ等の2Gzh帯が干渉している。→ 対処C
    4. ネットワークに接続しているPCまたはネットワーク機器がウィルスに感染している。→ 対処D
    5. IP Addressの衝突及びPingが出来きない → 対処E
    6. 設定ミス → 対処F
    7何者かがハッキングしようとしている。(とても稀)→ 対処G
    8. 何者か妨害およびハッキングしようとしている (とても稀、これには電磁波盗聴、サイドチャネルアタックなども想定される)→ 対処H

    対処:

    A. 必要であればバックアップをとり、Macを更新し、Wi-Fiルータメーカーのファームウェアサポート情報を参照し必要であれば、設定や設定ファイルなどにバックアップしてファームウェアの更新する。分からなければ、Wi-FiルーターのメーカーのサポートセンターにWI-FiルータとMacの対応状況(相性)を確認しサポートを乞う。
    B. 問題が起きた際に、Mac(WiFi Explorer)/inSSIDerアプリ等でWi-Fiのチャネルの使用状況を確認し、空きのチャネルを見つけてWi-Fiルータの設定画面でチャネル設定手動で変更してみる。または問題が起きたときは設定を自動設定に設定変更して、再起動する。そうすることで空きチャネルに自動設定できる。またその自動で割り当てられたチャネルをWi-Fi Explorer等で確認し、そのチャネルをとりあえず控えておくと以後の空きチャネルを探しやすくなる。
    C. おそらく現在2Ghz帯を利用していると思われます。その場合は5GHz帯を利用する設定またはWI-Fi機器(Macも対応している必要あり)を用意し設定して利用することで大抵の場合解決できます。
    D. ウィルス対策ソフトを最新にしてスキャンを欠けもし見つかった場合はすぐにネットワークから切り離す。すべてのスキャン及び駆除が終わった段階でネットワークに接続する。また対策Aを実施する。
    E. DHCPサーバーから割り当てられたIPアドレスの確認、予約したIPアドレスとMACアドレス、DHCPオプション等が間違ってないか確認、端末に静的に設定したIPアドレスが干渉していないかを管理画面やネットワーク構成から確認する。(通常衝突したら両方のノードのログや画面に表示される)
    F. Wi-Fiルータとクライアント側で設定を確認する。
    G. セキュリティを向上させるため、管理ツールアクセスをローカルのみにしてから次の設定を行います。SSIDは工場出荷時でなくあなたの個人的情報を含まない推測されにくいものに変更(小)、SSIDの設定でAny接続拒否(=SSIDの隠匿)(小)、プライバシーセパレイター設定+インターネット通信のみ、(中)、MACアドレスフィルタリングでMACアドレスを登録(小)、複雑なキー設定(中)、WPA2-PSK-AES(中)を用いセッションの暗号化を行い、電波範囲(中)を絞り込むことによりセキュリティを保てます。
    H. 基本的に発見は難しい為、近くからの攻撃元の特定には特殊な装置(100万円前後)が必要、そのため防御として、二要素認証により認証をより安全にしたり、ファイアーウォールのアウトトラフィックの制御を強固にし、共有サービスは原則最小または使用せず、インターネットサービスの認証はすべてSSLで利用し、パケットをキャプチャーする。この場合操作妨害も起きていると思われ、OSメーカー公認の画面音声キーログ機能のソフトウェアなどで画面音声キーを録画しながら操作することがベター。容量が足りなければ二要素認証を使ってクラウドへアップロードという手もある。


    参考リンク:

    チャネル変更方法

    チャネルについて