Go & Cloud Run & Cloud SQLでWebAPIを作成したけど、公開する前に諦めた

Cloud RunとCloud SQLの料金が予想を上回った Goの勉強をしたく、WebAPIを作成することにした。特別難しいこともないただのREST API。 せっかくなのでアプリを作成しようということで、側はreact nativeで作成した。 で、結合しているうちに料金が結構請求されていることに気が付いた。 Cloud SQLが大体20日で4000円くらい。 しかもここら辺はよくわからないのだが、インスタンスを停止しているにもかかわらず、料金が発生している気がする。 調査して理解する必要がありそうなので、いつかまとめる。 今は幸い無料期間でクレジットを消費しているだけだが、無料期間終了後は確実に払うことができない。 つまり、現実できじゃない。 ここは仕様検討で気が付くべきだった。 ここまでやったこと Cloud Run & Cloud SQLでどうこうするのはいったん諦める。 でもいつか使うかもしれなので、やったことをまとめておく。 Cloud RunでGoを動かしたい GormでCloud SQLに接続する クライアントツールからCloud SQLのDBに接続したい これしかなかった。 基本的にドキュメントが整備されているので、その通り実行すれば結果を得ることができた。 ただ、料金体系が理解できていなので、そこらへんは整理したい。 AWSも理解できていなので、こちらも理解したい。 fly.io 個人開発だとよく聞くし、ここを使ってみようと思っている。 そのためには料金体系とかしっかり調べる必要がありそうだけど。 Plan Pricing· Fly 料金表見る限り月額5ドルとのこと。 無料プランはなくなったぽい、まあこのご時世だしこんなものか。 本当はGoでの実績を作りたかったけど、firebaseで作成するか。

投稿日 · 2024-06-12 · 更新日 · 2024-07-07 · 1 分 · nove-b

React Nativeでセキュアな環境にTokenを保存する

要はブラウザ委のストレージのような機能をアプリでどう再現するかを調べてみた。 iOSでは KeyChain、Androidでは KeyStoreという安全に重要情報を保存できる場所が用意されているらしい。 Expo Cliではreact-native-keychainが使えない。 で、React Nativeではreact-native-keychainというプラグインで実現できるらしいが、Expo Cliでは使えないらしい。これは落とし穴だった。結構な時間を溶かした。 expo-secure-storeを使用しよう 公式サイト npx expo install expo-secure-store でインストールする。 app.jsonに下記を追加する。 { "expo": { "plugins": [ [ "expo-secure-store", { "faceIDPermission": "Allow $(PRODUCT_NAME) to access your Face ID biometric data." } ] ] } } 実装 ログインボタンを押したときにアクセストークンを保存する。 <Button title="Log in" onPress={async () => { try { // ログイン処理 // トークンを保存してメイン画面に遷移 await SecureStore.setItemAsync("accessToken", "userToken"); navigation.navigate("Main"); } catch (error) { console.error("SecureStore error: ", error); } }} /> 遷移先のページでチェックする。...

投稿日 · 2024-06-10 · 更新日 · 2024-07-07 · 1 分 · nove-b

WordPressから記事をHugoに大体移植した

意外と見られていた旧ブログ ブログをHugoにリニューアルし、WordPressの方はずっと放置していた。 先日ふっと思い立ちこのブログにもアナリティクスを導入した。その時ちらっと見たWordPressのアナリティクスの数字は自分の想像を遥かに絶するものだった。 さすがにこれはもったいないと、お引越しをすることにした。 幸いWordPressブログなのだが、記事はGitで管理していた(使わなかった…)。 これ幸い、引っ越しを始める。 記事一覧の取得 まずは記事一覧の取得を行っていく。 WordPressの拡張機能であるExport All URLsを使い、URLを出力した。 Post ID Title URL Categories Tags Published Date 42 GithubActionを使用してエックスサーバーにデプロイする https://media.nove-web.com/42/ Github Github, Github Action, Wordpress, エックスサーバー, 効率化 2021/11/28 16:24 こんな感じの一覧が出力された。 次に出力したタイトルをパスパラメータ―に変換していく。 これが本当にしんどいけど、Chat GPTが全部やってくれました。 記事ファイルをxmlに変換する WordPressの管理画面からxml形式にエクスポートをする。 エクスポートしたファイルをxml-to-markdownというフォルダに格納し、npx wordpress-export-to-markdownを実行する。 ? Path to WordPress export file? name.WordPress.2024-06-07.xml ? Path to output folder? output ? Create year folders? No ? Create month folders? No ? Create a folder for each post? No ?...

投稿日 · 2024-06-07 · 更新日 · 2024-07-07 · 1 分 · nove-b

Fabric.jsをAngularで最短で動かしてみる

環境 Angular: 15 Fabric.js: 5.3.0 Fabric.jsとは? http://fabricjs.com/ Canvas内に画像やテキストを配置したりすることのできるライブラリ。 配置した要素の「移動」、「リサイズ」、「回転」など非常に自由度高く操作することができる。 お絵描きアプリとかを作ることができる。 色々なデモ インストール $ npm i fabric betaでバージョン6が公開されており、5から6で破壊的な変更があるっぽい。 つまり5を入れておくと、いずれ大規模な修正が必要になる可能性がある。 けど、解説とかは5の方が多いし、6がまだbetaということで5を入れることにした。 🧐 Breaking changes for fabric 6.0 次に定義ファイルも必要になったので"npm i @types/fabric": "^5.3.7",でインストールした。 実装 template <canvas width="300" height="300" #canvasEl> </canvas> まずテンプレート側でcanvas>を作成する。 component 次に、 @ViewChild('canvasEl') canvasEl: ElementRef | undefined; コンポーネント側でcanvasを取得し、 ngAfterViewInit() { if(this.canvasEl) { const canvas = new fabric.Canvas(this.canvasEl.nativeElement); const rect = new fabric.Rect({ top: 100, left: 100, width: 60, height: 70, fill: 'red', }); canvas....

投稿日 · 2024-06-06 · 更新日 · 2024-07-07 · 1 分 · nove-b

Expoのバージョンがシミュレーション用のスマホアプリとずれたのでアップグレードする

2年前からreact nativeでアプリを作成している。 が、いろいろ(他のアプリ作ったり、仕事が忙しくなったり)あり放置気味で、重い腰を上げるかと「完成」を今年の目標に入れた。 GoでApi作成し、結合しようかと思ったところスマホのExpoアプリで開発中のアプリが開けなくなっていた。 原因はExpoのバージョンがずれていたこと。 スマホのアプリのアップデートを自動にしているので、どうやら開発側とずれてしまっていたらしい。 スマホアプリのバージョンを落としてもいいのだけれど、開発側のアップデートをすることにした。 Expo SDK のアップグレード まんま上記の通り実行すれば問題ない。 npm install expo@latest npx expo install --fix これで無事に開発を続行することができるようになった。

投稿日 · 2024-06-03 · 更新日 · 2024-07-07 · 1 分 · nove-b