linuxbrewのインストール時(Warning: /home/linuxbrew/.linuxbrew/bin is not in your PATH.)が発生する
linuxbrew
macユーザーには同じものbrewですが、linuxにも存在します。今回はlinuxbrewをインストールしました。
install方法
公式にあるように
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
でインストールできます。
インストールする前に依存ツールのダウンロードをしましょう。
sudo apt-get install build-essential curl file git
linuxbrew.sh
install時のwarning
install時にWarning: /home/linuxbrew/.linuxbrew/bin is not in your PATH.)
パスがないと怒られました。
brewコマンドを叩いてみても、
「-bash: brew: コマンドが見つかりません」となります。
そこで下記のコマンドを実行することで使えるようになります。
echo 'export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
wslのbeep音を消す
echo "set bell-style none" >> ~/.inputrc
ターミナルを再起動でbeep音がしなくなる
SFOで1週間働いてみた
サンフランシスコに1週間出張したのでその感想です。
自己紹介
新卒3年目でメーカーで勤務でハードウェアに組み込むソフトウェアの開発をメインで行うエンジニアです。 英語は学生時代から苦手で去年受けたTOEICは505点でした。(入社直後に受けたときは300点くらい)
SFOで1週間働くことになった理由
サンフランシスコで日本向けのクラウドアプリケーションを開発しているが、コミュニケーションコストが高いので 日本側で開発をできるようにするのが目的
英語はできないけど、「何とかなるやろ」の精神で出張
Good
- ほめてくれる 日程通りに終わっていたらほめてくれて、遅れていても責め立てるという奮起ではない
- プロジェクトオーナーがきちんと機能している
日本だと偉い人が名前だけのプロジェクトオーナーになっていて機能していない - PM = 課長ではない
セクションマネージャーが技術のリードをしていてPMはきちんと別にいて
日程のマネージメントをしていた。
役職が上だからPMをしているという雰囲気ではなく、
人柄や日程管理が得意だからPMをしているという感じでgood - 6時になるとほとんどの人が帰り始める
やはり帰るのが早い
7時には働いている人は2人くらい
bad
- 物価が高い
サンフランシスコはやはり物価が高い
ランチでも10ドルは普通に超えてしまう。 - 自己主張しないといけない
自分がどう思うかきちんと伝えないといけない (自己主張が得意なひとにとってはgoodかも) - 太る 金曜日には休憩室に砂糖たっぷりドーナッツ🍩がおいてたり、そもそもハイカロリーな食べ物が多い
感想
PO/PMがきちんと機能していて日本の企業によくある名前だけ役職という感じではないのが
よかった。
自己紹介でも書いた通り英語は苦手であったが伝えようとする気持ちがあるときちんと聞いてくれる。
()
や{}
などプログラミングでよく使う記号については呼び名を調べておくとよかった。
FileProvider.GetUriForFileでNullPointerExceptionが発生する
デバック時にNullPointerExceptionが発生しマニフェストファイルでミスがあったので覚え書きです。
private void CameraIntent() { Log.Info(TAG, "CameraIntent::start"); File cameraFolder = new File(Android.OS.Environment.GetExternalStoragePublicDirectory( Android.OS.Environment.DirectoryDcim), "Camera"); // file name string filename = new SimpleDateFormat("ssHHmmss", Locale.Us) .Format(new Date()); m_filePath = String.Format("{0}{1}.jpg", cameraFolder.Path, filename); Log.Debug(TAG, "filename:: {0}", m_filePath); Log.Debug(TAG, this.PackageName); try { m_uri = FileProvider.GetUriForFile(this, this.PackageName + ".provider", new File(m_filePath)); } catch(Exception e) { Log.Error(TAG, e.ToString()); } Intent intent = new Intent(MediaStore.ActionImageCapture); intent.PutExtra(MediaStore.ExtraOutput, m_uri); StartActivityForResult(intent, RESULT_CAMERA); Log.Debug(TAG, "CameraIntent::end"); }
- AndroidManifest
<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider>
- log
07-30 00:00:58.011 D/Phptp2Text::MainActivity(23022): filename:: /storage/emulated/0/DCIM/Camera58000058.jpg 07-30 00:00:58.012 D/Phptp2Text::MainActivity(23022): Photo2Text.Photo2Text 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): Java.Lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <f32579baafc1404fa37ba3ec1abdc0bd>:0 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at Java.Interop.JniEnvironment+StaticMethods.CallStaticObjectMethod (Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00069] in <09bf3e262b934ffab2ba01f9fc7fd54d>:0 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at Java.Interop.JniPeerMembers+JniStaticMethods.InvokeObjectMethod (System.String encodedMember, Java.Interop.JniArgumentValue* parameters) [0x00018] in <09bf3e262b934ffab2ba01f9fc7fd54d>:0 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at Android.Support.V4.Content.FileProvider.GetUriForFile (Android.Content.Context context, System.String authority, Java.IO.File file) [0x00070] in <fb0c55a748614587b658fc2ca38fdfc2>:0 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at Photo2Text.MainActivity.CameraIntent () [0x00088] in G:\repo\photo2text\Photo2Text\MainActivity.cs:73 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): --- End of managed Java.Lang.NullPointerException stack trace --- 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:591) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:565) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:403) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:30) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.view.View.performClick(View.java:5204) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.view.View$PerformClick.run(View.java:21153) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.os.Handler.handleCallback(Handler.java:739) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.os.Handler.dispatchMessage(Handler.java:95) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.os.Looper.loop(Looper.java:148) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at android.app.ActivityThread.main(ActivityThread.java:5417) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at java.lang.reflect.Method.invoke(Native Method) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 07-30 00:00:58.077 E/Phptp2Text::MainActivity(23022): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
原因
AndroidManifestに原因があった
providerがapplicationタグのそとに書かれていたので参照できずヌルぽが発生していたようだ。
書き直したAndroidManifestはこちらです。
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider> </application>
単純なミスほど原因が分からず困りますね
nodejs を最新版をインストールする
nodejs を最新版をインストールする
npm からinstallしたnodejsが古い場合が多い
- npm をアップデートとする
npm install npm
- nをインストールする
npm install n
- stable版nodejsをインストール
n stable
axmlでintellisenseが有効にならない
axmlでintellisenseが有効にならなかったので有効になるようにする方法
基本的にこちら
Android .axml ファイルでは、Intellisense を有効にする方法は? - Xamarin | Microsoft Docs
ただ
android-layout-xml.xsd
schemas.android.com.apk.res.android.xsd
が見つからなかったのでGithubから
android-layout-xml.xsd、schemas.android.com.apk.res.android.xsdを以下のフォルダに保存
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Xml\Schemas
xml -> shcemaから先ほど追加したファイルを有効にする
そうするとintellisenseが有効になります