Vagrant と VirtualBoxを使うメモ
参考
VagrantとDockerについて名前しか知らなかったので試した - Qiita
Vagrant + VirtualBoxでWindows上に開発環境をサクッと構築する - Qiita
やってみる
それぞれダウンロード
VirtualBox と Vagrant をそれぞれインストール
VMの構成設定ファイルを作成
(作成するdirを準備し、移動してから)
vagrant init --minimal ubuntu/trusty64
→Vagrantfile
が生成されている
中身はこんなの
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" end
Rubyで記述されている模様
VMを起動
vagrant up
Vagrantfileと同じ場所で
※初回は時間かかるみたい
SSHログイン
vagrant up vagrant ssh
ログインできなかった
`ssh` executable not found in any directories in the %PATH% variable. Is an SSH client installed?
SSHコマンドを利用するためのクライアントがなかったらしい
なので
Windowsでsshコマンドを使う方法 - Qiita
を参考しにして準備する
vagrant ssh
うまく行った
まだ端末間でのデータ移行で消耗してるん?
データ移行の闇にとらわれているあなたへ
Android端末からiPhone、iPhoneからPC、といった端末間でのデータ移行(バックアップ含め)の方法に悩まされている人が未だにいることに驚きが隠せません。
この大インターネット時代に変なケーブルを使って時間を浪費しデータ移行とかするなんて不毛です。端末が壊れてデータが取り出せない?原始時代でしょうか?
インターネット環境とGoogleアカウントを使って、原始的なデータ移行への依存から解き放たれましょう。
データ移行なんてしなくても、勝手にバックアップが取れている状態になります。
今から説明する設定を行えば、わざわざデータ移行する時間をとって準備をせずとも、半自動的にデータがバックアップできるようになります。自動的じゃなく「半自動的」と書いたのは理由がありますが、あとで説明します。
今回取り扱うデータ
- 画像データ
- 動画データ
- アドレス帳データ
アプリデータのバックアップについては対象にしません。
Googleアカウント取得,端末との紐付け,Googleフォトのダウンロード
タイトルの通りなのですが、下記の手順で設定をどうぞ。
1. Googleアカウント取得
下記リンクよりアカウントを作成
Create your Google Account
2. 各種端末にアカウントの紐付けを行う
iPhoneの場合
メール/連絡先/カレンダーを選択
アカウントを追加を選択
Googleを選択
必要情報入力
連絡先チェック
ここに追加されてればOK
3. Googleフォトをダウンロードする
iPhoneの端末にダウンロード
GoogleフォトをiPhoneで! アプリの初期設定と写真のアップロード方法 | できるネット
※最初の一回はバックアップに時間がかかります。
アドレス帳は自動でバックアップ、画像と動画は半自動でバックアップ
アドレス帳は、Googleアカウントのサーバー上に自動で保存されるようになります。
iPhoneで作成したアドレスデータは自動で保存されるので、端末を変えても上記と同様の設定を行えばデータは取り戻せます。
画像と動画は、初回バックアップ以降はアプリを起動しておけば確実にバックアップされているようです。
※バッググラウンドでもバックアップされるようですが、執筆時点では起動しないとバックアップされてなかったりしますね。。
ZipArchive::openのエラー内容を検知する
前提
PHPだけでzipファイルこねくり回すと、 ZipArchiveクラスを使うことになるわけやけど
ZipArchive::open
ここでとてもつまるし、返り値もわかりづらいし、エラーの意味を吐き出すだけのコード作った。
とてもシンプル。
コード
switch ($response){ case 0 : echo 'ER_OK'; break; case 1 : echo 'ER_MULTIDISK'; break; case 2 : echo 'ER_RENAME'; break; case 3 : echo 'ER_CLOSE'; break; case 4 : echo 'ER_SEEK'; break; case 5 : echo 'ER_READ'; break; case 6 : echo 'ER_WRITE'; break; case 7 : echo 'ER_CRC'; break; case 8 : echo 'ER_ZIPCLOSED'; break; case 9 : echo 'ER_NOENT'; break; case 10 : echo 'ER_EXISTS'; break; case 11 : echo 'ER_OPEN'; break; case 12 : echo 'ER_TMPOPEN'; break; case 13 : echo 'ER_ZLIB'; break; case 14 : echo 'ER_MEMORY'; break; case 15 : echo 'ER_CHANGED'; break; case 16 : echo 'ER_COMPNOTSUPP'; break; case 17 : echo 'ER_EOF'; break; case 18 : echo 'ER_INVAL'; break; case 19 : echo 'ER_NOZIP'; break; case 20 : echo 'ER_INTERNAL'; break; case 21 : echo 'ER_INCONS'; break; case 22 : echo 'ER_REMOVE'; break; case 23 : echo 'ER_DELETED'; break; }
あとがき
完全に俺の備忘録
【Android Studio】Execution failed for task ':app:buildInfoDebugLoader'.
経緯
Android Studioで、アプリのデバッグ?に失敗した模様
Error:Execution failed for task ':app:buildInfoDebugLoader'. > Exception while doing past iteration backup :
でも直った
Build -> Rebuild Project
プロジェクトをリビルトして再度Runすると、直った模様
ローカルPCにGitを導入する
経緯
Githubにコードを公開して、よくいるイケイケなエンジニアのように振る舞いたいので、まずローカルのPCにGitを導入する
GitをWindowsの画面で扱いやすくするためのツールも導入します。
GitとGithubの違いはググればわかるよん
Gitをインストール
Gitを画面から操作できるGitクライアントをインストール
- Download TortoiseGit
- Language Packs の両方ダウンロードしてインストールする
セットアップ
初期設定【チュートリアル1 Gitの基本】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
最後に
これで終わり。
ちらっと画像引用したサイトみれば一番わかりやすいのは内緒
AndroidでHTTP通信して自作APIから値を取得する
経緯
AndroidでHTTP通信して自作APIから値を取得してみたメモ
参考
コピペする
そのまま何も考えずコピペ。ただし、1ファイルずつ https://github.com/suzukaze/RxAndroidSample
1.MainActivity.java
赤文字がいっぱい。一旦無視する。
2.res
3.AndroidManifest.xml
ユーザー認証追加。問題なさ気。
4.api,modelディレクトリ追加
- api/ServiceGenerator.java 赤文字いっぱい。
- api/EmpitomeBeamService.java 赤文字いっぱい。
- model/EpitomeBeam.java 赤文字いっぱい。
- model/EpitomeEntry.java 赤文字いっぱい。
# import部分を調整してみる
- package名が入ってるとこは com.ksyunnnn.apitest に 全体的に赤文字は減った
5.build.gradle
- app/build.gradle dependencies{}のみ追加してみる
一旦sync... 赤文字には関係ないのか…。
違った
ただのsyncじゃなく、 「sync with project gradle」を使わないとgradleの同期はしてなかった模様
同期したら赤文字なくなった!
動いた!
記事を理解する
通信部分をRxAndroidを使用して、リクエストし、レスポンスをパース後にUI操作の流れをわかりやすく記述する。リクエストについてはRetrofitによりRESTfulに記述し、Gsonによるレスポンスをパースした結果を定義することにより、面倒なパースを自動的にパースします。
出てきた単語 * RxAndroid => リクエスト,レスポンス * Gson => パース * Retrofit
RxAndroid
非同期通信をうまくなんやするライブラリ パース(構文解析)も行っている?
dependencies { compile 'io.reactivex:rxandroid:0.24.0' compile 'io.reactivex:rxjava:1.0.8' }
GSON
JSONデータとJavaオブジェクトを相互に変換するためのライブラリ
dependencies { ??? // compileなしでなぜかいけてる… }
Retrofit
インターフェースの定義のために必要そうなもの?
dependencies { compile 'com.squareup.retrofit:retrofit:1.9.0' }
OkHTTP
※文中にはないけど使ってる模様 HTTPクライアントのライブラリ。WebSocketに対応していて、同期/非同期のAPIを提供。
dependencies { compile 'com.squareup.okhttp:okhttp:2.3.0' }
脳みそ整理
- パース => 構文解析
構造を見ていく
RxAndroidによる通信
(1)リクエストしてレスポンスをパース(構文解析) subscribeOn(Schedulers.io())により、io用のスレッドで行う設定
(2)結果を受け取りUI操作 observeOn(AndroidSchedulers.mainThread())によりメインスレッドで行う設定
やんわりOKということにする
WebAPIを作ってみる
phpの
$resposnse = array( "user" => "俺", "id" => "hoge" ); json_encode($response);
で簡単に解決 json形式で吐き出した。
アプリから取得する
できない
できない理由
オブジェクトでパースしようとしてるのに 配列で返してるのがダメな原因らしい
結果
配列では受け取れないが、単体のオブジェクトとしては受け取れたので一旦良しとする。
ソースは下記の質問ページに記載してるので、ご参考に teratail.com