Virtualboxの[設定]-[共有フォルダー]で「自動マウント」がOFFの場合は こちら(2024/06/15)   0. 環境 [Host OS] Windows 11 Home [Oracle VM VirtualBox] 6.1.32 [Gust OS] ubuntu 16.04 1. 問題 VirtualBoxに入れたLinux上で、シンボリック・リンク(Symbolic link)の作成に失敗する。 下記の例は、node.jsのライブラリをインストールするときに発生してますが、根本の問題は上記の通り。 root@hoge:/dev/blockchain# npm i express --save npm ERR! code EPROTO npm ERR! syscall symlink npm ERR! path ../mime/cli.js npm ERR! dest /dev/blockchain/node_modules/.bin/mime npm ERR! errno -71 npm ERR! EPROTO: protocol error, symlink '../mime/cli.js' -> '/dev/blockchain/node_modules/.bin/mime' 2. 対応 ネットで調べたら、いろんな情報が出てきましたが、VMを管理者モードで起動するだけで解決しました。 タスクバーにあるVMのアイコンを2回右クリックして、「管理者として実行」を選択。 ...

Read more

  (2024/06/16) watchOptions.ignored について追記。 0. 環境 [OS] ubuntu 16.04 [Node.js] 17.1.0 [Next.js] 12.1.6 [Prisma] 3.13.0 1. 問題 Next.jsを勉強するため、下記構成のサンプルアプリをいじってたのですが、とにかく画面ロード時間が遅くて使い物にならない。 構成 [Next.js] -> [Prisma] -> [PlanetScale(サーバーレスDB)] 起動コマンド # npm run dev 2. 対応 最初、当てずっぽうで、PlanetScaleへの通信が遅いのかと考え、DBをローカルに持ってきましたが変わりませんでした。 その後、Prismaの処理をコメントアウトしても重かったので、Next.jsに照準を絞りました。 原因の切り分けをしないと、ググることすらできないです。 (最初、「Prisma 遅い」とかで調べてました・・・) 最終的にポーリングの間隔を長くしたら、画面の表示は軽くなりました。 (2024/06/16,追記) ignored を追加。 自分が知らない技術を勉強する際、最初の環境設定が面倒なので、ついつい、Githubなどから公開されてるソースを落としてきて動かすことが多いです。 各パラメーターの意味を知らないまま始めるので、今回のようにハマることがあります。 3. その他 (2024/06/16,追記) ローカル開発環境を変更後にNextJSを起動しようとしたら、やたらと重かったので調べたら、今回もポーリング絡みでした。(冒頭の環境よりもVer上げてます) NextJSをデバッグモードで起動(ポートは80を使用) # PORT=80 npm run dev 下記コマンドは原因特定に有用。(CPU使用率が高かったので、ポーリングのパラメータと合わせて、VMのコア数2→4に変更) ...

Read more

0. 環境 [OS] Windows11 Home [VirtualBox] 6.1.22 -> 6.1.32 1. 問題 VirtualBoxから仮想マシンが起動できなくなりました。 エラーメッセージ 仮想マシン"ubuntu_64"のセッションを開けませんでした。 Failed to get device handle and/or partition ID for 0000000001b5bc40 (hPartitionDevice=0000000000000b95, Last=0xc0000002/1) (VERR_NEM_VM_CREATE_FAILED). 終了コード : E_FAIL (0x80004005) コンポーネント: ConsoleWrap インターフェース: IConsole {872da645-4a9b-1727-bee2-5585105b9eed} 2. 原因 たぶん、Windows11のUpdateが原因。 因果関係は確かではないですが、下記WindowsUpdateの前後があやしい。 Cumulative Update for Windows 11, version 22H2 Insider Preview (10.0.22581.100) (KB5013283) Microsoft Defender Antivirus のセキュリティ インテリジェンス更新プログラム - KB2267602 (バージョン 1.361.759.0) 3. ...

Read more

0. 環境 [OS] MacOS 10.11.6 [Flutter] 2.2.3 1. 問題 flutterアプリの修正中に、”flutter upgrade”を実行したら、いつものコマンドでアプリが起動しなくなってしまいました。 (いつものコマンド) flutter run -d chrome --web-port=5000 (エラー内容) Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds コンソールいっぱいにエラーメッセージが出ましたが、代表させて上記のみ記載。 ググると同じエラーに関する情報がありました。 ここに書いてある方法では直らなかったので、flutterを以前のバージョンに戻すことにしました。 2. 対応 flutterを配置している場所を確認。 $ which flutter [path_to_flutter]/flutter/bin/flutter [path_to_flutter] にあるflutterディレクトリをバックアップとしてリネーム。 [path_to_flutter] に古いバージョンのflutterをダウンロード。 前のバージョンのflutter(僕は2.2.3を取得しました) OSごとにタブが分かれているので注意。 ダウンロードしたファイルを解凍し、下記のように元のディレクトリ名と同じになっているか確認。(こうすればPATHの変更も不要) [path_to_flutter]/flutter/ 任意の場所で下記コマンドを実行。 $ flutter precache $ flutter doctor 最後にアプリのルートで下記を実行。 ...

Read more

0. 環境 [OS] CentOS 6.10 [MySQL] 5.1 1. 前提 MySQLシステム変数は、SESSIONとGLOBALがあるので注意。 有効範囲はそれぞれ「SESSIONは接続ごと」「GLOBALはMySQL起動中」というふうに異なります。 GLOBALスコープで設定した値は、MySQL再起動で消失します。(これを防ぎたい場合、mysql.cnfに直接記載) MySQL8からは、SET PERSIST .. とすることで消失を防げる。 2. 接続 MySQLに接続。mysql -u root -p 3. コマンド (SESSIONスコープ) 下記は、SHOW SESSION VARIABLES ..と書いたのと同義。 現在の値 -- SlowQueryを出力するか? SHOW VARIABLES LIKE 'slow_query_log'; -- 何秒を超えたらSlowQueryとして出力するか? SHOW VARIABLES LIKE 'long_query_time'; -- SlowQuery出力先のファイル名 SHOW VARIABLES LIKE 'slow_query_log_file'; 更新 SET long_query_time = 3; (注)slow_query_logとslow_query_log_fileはGLOBALスコープでのみ変更可能。 4. ...

Read more

0. 環境 [OS] Windows 11 Home [Android Studio] 3.6.3 1. ビルド 期日が迫ってたので、App Bundle対応を行いました。いくつか「あれ?」と思ったので記載しておきます。 いつものように、Android Studioでメニューから[Build]-[Generate Signed Bundle / APK…]を選択。 ビルド用のダイアログで「Android App Bundle」を選択し、[Next]ボタンをクリックすると下記が開きます。 [Export encryped…]にチェックを入れ、直下に表示された秘密鍵の保存場所を覚えておきます。(*a) [Next]ボタンを押して先に進むと、aabという拡張子のファイルが生成されます。(*b) 2. アプリ公開 いつものようにブラウザでPlay Consoleを開いて、対象のアプリを選択。 左メニュー[製品版]-[新しいリリースを作成]をクリックし、[App Bundle]を選択すると下記画面に来ます。 前述(*a)の登録がまだなので、[オプトイン]リンクをクリック。 ここで前述の(*a)をアップロード。 そのままこの画面に戻ってきて上記(*b)をアップロードするとエラーが出ました。 app bundle 予期しないエラーが発生しました。もう一度お試しください(40B24C00)。 エラーコードをググっても出てこなかったので、作成中のリリースを一度破棄し、ブラウザを再起動してやり直したらうまくいきました。 (秘密鍵のアップロードはやり直さなくてOKでした) あとはいつものように必要項目を入力し、フッター部分のボタンを押していくと公開設定が完了します。しばらく「審査中」の後、無事公開されました。 [保存] → [リリースのレビュー] → [製品版としての公開を開始] → 確認ダイアログで[公開]クリック ...

Read more

0. 環境 [OS] Windows 11 Home [VirtualBox] 6.1.22 1. 問題 1週間くらい前にWindowsUpdateしたら、下記エラーでVMが起動しなくなりました。 仮想マシン"ubuntu_64"のセッションを開けませんでした。 Failed to get device handle and/or partition ID for 00000000027d6520 (hPartitionDevice=0000000000000bd1, Last=0xc0000002/1) (VERR_NEM_VM_CREATE_FAILED). 終了コード : E_FAIL (0x80004005) コンポーネント: ConsoleWrap インターフェース: IConsole {872da645-4a9b-1727-bee2-5585105b9eed} WindowsUpdate後にUIが変わってたのでたぶん「Windows 11 Insider Preview」のせいだと思います。 Windowsタスクバーの虫眼鏡マークをクリックし「設定」と入力。 設定画面が開くので左メニューから「Windows Update」をクリックすると履歴が参照可能。 2. 対応 Windowsタスクバーの虫眼鏡マークをクリックし「コントロールパネル」と入力。 「コントロールパネル」内の「プログラムと機能」をクリック。 「プログラムと機能」内の左のメニュー「Windowsの機能の有効化または無効化」をクリック。 下記が開くので、「Windows ハイパーバイザー プラットフォーム」にチェックし、Windowsを再起動したら直りました。(WindowsUpdateでデフォルトのOffに戻ってしまったようです…) ...

Read more

0. 環境 [OS] MacOS 10.11.6 [Flutter] 2.2.3 [Dart] 2.13.4 1. 背景 React NativeでiOSアプリを作成してたんですが、環境周りの不具合に時間を取られ、肝心の実装がほとんどできない状態が続いてました。 そこで、試しにFlutterをやってみたら、シュミレーターで動かすところまでは比較的楽にできたので乗り換えることにしました。 JSを使えるエンジニアが多いという理由で、React Nativeが支持されるかな?と予想してたのですが、 最近、TwitterなどでReact離れを 見かけることが増えてきて、そろそろ潮時かなと思ってきました。 2. 検討 作成したいアプリがローカルDBを使用しているので、何が良いのかいろいろ見てみました。 こちらのページがよくまとまってます。 まず、僕の環境で、sqflite、Realm、Moor、ObjectBoxはサンプルアプリすら動かなかったので諦めました。 作ろうとしてるアプリのAndroid版がSQLite3を使ってるので、sqfliteやそれをラッピングしてるというMoorがいいかなと思ったのですが、下記のエラーが解決できず諦めました。同様のエラーで開発者に対する質問が結構挙がってましたが、いまいち決定的な解決方法はなさそうでした。 Error: MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite) 3. Hiveサンプルアプリ 上記ページで紹介されてるHiveがさくっと動きました。 サンプルページの「Code」ボタンからファイルアイコンをクリックしてURLをコピー。(画像参照) 適当なディレクトリにソースをダウンロードしてアプリを起動します。 $ git clone https://github.com/hivedb/samples.git $ cd samples/todo/ $ flutter create . $ flutter run To-Doアプリが起動しました。 ...

Read more

0. 環境 [OS] MacOS 10.11.6 [React Native] 0.61.4 [SQLite Studio] 3.2.1 1. 背景 React NativeでiOSアプリを作成中です。 ローカルストレージとしてExpoのSQLiteを使っていますが、開発ツールからテーブル参照する方法が分からず調べてました。 アプリから登録されたレコードの確認など、なにかとこの手のツールは必要です。 Androidアプリ開発のStethoみたいなのがないかなーと思ってましたが、結局こんな感じにしました。 2. 手順(DBファイルの格納先) expo-sqliteが作成するDBファイルの保存先は${FileSystem.documentDirectory}/SQLite/${name}」なので、まず${FileSystem.documentDirectory}がどこなのか調べます。 (詳細はこちらのページの”SQLite.openDatabase”参照) アプリ実行時に必ず通る箇所にログを仕込みます。(importとconsoleの行だけあればどこでもOK) import * as FileSystem from 'expo-file-system' class DB { static db; static getDB(){ console.log("FileSystem; " + FileSystem.documentDirectory); : コンソールに出力されたパスからfile://を削ったものが${FileSystem.documentDirectory}です。 さらに上記${name}は、SQLite.openDatabase();の引数で指定しているDB名になります。 3. 手順(SQLiteStudio) MacにSQLiteStudioをインストール。 SQLiteStudioのメニューで[Database]-[Add a database]を選び、上記2で調べたパスを[File]に入力して[OK]をクリック。 左ペインにテーブルが表示されれば成功です。 ...

Read more

0. 環境 [Gradle] 5.6.4 1. 問題 こちらの情報を元にFabricからFirebaseへの移行を行いました。 Android プロジェクトに Firebase を追加する Upgrade to the Firebase Crashlytics SDK コード修正後、エラーが発生してビルドできず・・・ Duplicate class com.google.android.gms.measurement.AppMeasurement found in modules jetified-firebase-analytics-impl-12.0.1-runtime.jar (com.google.firebase:firebase-analytics-impl:12.0.1) and jetified-play-services-measurement-impl-17.4.3-runtime.jar (com.google.android.gms:play-services-measurement-impl:17.4.3) Duplicate class com.google.android.gms.measurement.AppMeasurement$ConditionalUserProperty found in modules jetified-firebase-analytics-impl-12.0.1-runtime.jar (com.google.firebase:firebase-analytics-impl:12.0.1) and jetified-play-services-measurement-impl-17.4.3-runtime.jar (com.google.android.gms:play-services-measurement-impl:17.4.3) Duplicate class com.google.android.gms.measurement.AppMeasurement$Event found in modules jetified-firebase-analytics-impl-12.0.1-runtime.jar (com.google.firebase:firebase-analytics-impl:12.0.1) and jetified-play-services-measurement-impl-17.4.3-runtime.jar (com.google.android.gms:play-services-measurement-impl:17.4.3) Duplicate class com.google.android.gms.measurement.AppMeasurement$EventInterceptor found in modules jetified-firebase-analytics-impl-12.0.1-runtime.jar (com.google.firebase:firebase-analytics-impl:12.0.1) and jetified-play-services-measurement-impl-17.4.3-runtime.jar (com.google.android.gms:play-services-measurement-impl:17.4.3) Duplicate class com.google.android.gms.measurement.AppMeasurement$OnEventListener found in modules jetified-firebase-analytics-impl-12.0.1-runtime.jar (com. ...

Read more