概要
無料から使える(※2024年5月時点)Database SaaSのNeonを使います。
Neonとしては提供しているのは本当にPostgresqlの部分だけで、アプリケーション部分は別途用意する必要があります。
アプリケーションにNext系のものを使う場合はVercelがNeonと連携しているので、Vercelで使うのが楽なんじゃないかと思います。
というわけで、それ以外のもので、ということでRailsからNeonを使ってみます。
続きを読むRailsのviewで部分テンプレート内でエラーが起きたときに画面全体がエラーになるのを防ぎたい、の第二段。
昨日の続き。
Railsのviewで部分テンプレート(partial template)内でエラーが起きた時に画面全体がエラーになるのを防ぐ(1) - なんじゃくにっき
昨日のやり方だと、部分テンプレート内でエラーが起きた時に途中まで描画されて閉じタグない状態などができてしまいます。
ということで部分テンプレート内でエラーが起きたときは部分テンプレート全部表示されなくする版も作ってみました。
続きを読む高速かつ省メモリの画像操作ライブラリとしてlibvipsがあります。
RailsのActiveStorageなんかに使われているんですが、もちろん単体でも使えます。
で、画像処理したいときにこれを使えば良い場面は結構あるんですが、存在を忘れててImageMagickを使いがち。
ということで備忘録として使い方のメモです。
続きを読むHerokuに引き続き、PlanetScaleの半永久無料枠が終了してしまいました。
個人開発でサービスを公開したいけど維持費を無料にしたいとか、法人でもサービス開発初期の費用を抑えたいときはどうしましょう、という話。
紹介しているサービスの内容は変更されている可能性があります。また、筆者の調査が不十分なこともあります。
この記事によって損害を被っても補償しかねます。必ず自身の目でサービスの契約内容をお読みになって下さい。
あとデータ容量/通信量等の単位はGBとGiBとか厳密に区別せずに全部GBの表記にしています(1つのサービス内でもドキュメントによって混在したりしていて1つ1つ確認が大変だったため)。
続きを読むAstroで静的サイトの開発中にローカルで動かしている時、別のマシンから動作確認したいときがあります。
スマホ実機での表示、動作の確認をしたいときとかね。
そんなときにデフォルトの状態ではローカルipアドレスでアクセスできません。
http://192.168.0.19:4321/sub_dir みたいな感じ。
そんなときはhostオプションを指定します。
astro dev --host 0.0.0.0
こうすると以下のように標準出力に他のローカルネットワーク上のマシンからアクセスするためのアドレスが出力されます。
(※環境によって出力されるIPアドレスは異なります。念の為。)
┃ Local http://localhost:4321/sub_dir ┃ Network http://192.168.0.10:4321/sub_dir
公衆無線LANなどにつないでいる際は有効にしないようにしましょう。
悪戯攻撃される恐れがあります。
デフォルトで有効になっていないのはこういうケースがあるからだと思います。
この前任意の文字列をQRコードで出力するのをGithub Pagesのお試し用に作ったんですが
現在のURLをQR出力するだけのスニペットもほしいかもと思い書いてみました。
というかボタン押してモーダルを出すところまではChatGPTに書かせました。
QR出すところだけ人力(つっても3行くらい)。
ライブラリはqrcodejsを使わせてもらってます。
https://github.com/davidshimjs/qrcodejs
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Modal Example</title> <style> /* スタイルを追加して、モーダルが中央に表示されるようにする */ dialog { width: 80%; max-width: 600px; padding: 20px; border: 1px solid #888; background-color: #fefefe; } /* ボタンを画面の右下に配置するスタイル */ #myBtn { position: fixed; bottom: 20px; right: 20px; padding: 10px 20px; font-size: 16px; background-color: #007bff; color: #fff; border: none; border-radius: 5px; cursor: pointer; } </style> </head> <body> <!-- モーダルを開くボタン --> <button id="myBtn">Open Modal</button> <!-- モーダル本体 --> <dialog id="myModal"> <button id="closeBtn">×</button> <div id="qr"></div> </dialog> <script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script> <script> // ボタンを取得 var btn = document.getElementById("myBtn"); // モーダルを取得 var modal = document.getElementById("myModal"); // 閉じるボタンを取得 var closeBtn = document.getElementById("closeBtn"); // ボタンをクリックした時にモーダルを表示する btn.onclick = function() { modal.showModal(); } // 閉じるボタンをクリックした時にモーダルを非表示にする closeBtn.onclick = function() { modal.close(); } new QRCode(document.getElementById("qr"), window.location.href); </script> </body> </html>
既存のHTMLにモーダル出すscriptタグ埋め込むならこんな感じ。
コードは適当です。QRコードクリックで閉じるようになっています。
style当てるなり閉じるボタン作るなりはお好みでどうぞ。
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script> <script> var modal = document.createElement('dialog'); var qr_area = document.createElement('div'); qr_area.id="qr"; modal.appendChild(qr_area) document.body.appendChild(modal); new QRCode(document.getElementById("qr"),window.location.href); qr_area.onclick = function(){modal.close()} var btn = document.createElement('button'); btn.textContent = 'QRコード表示'; btn.style.position = 'fixed'; btn.style.bottom = '20px'; btn.style.fontSize = '16px'; btn.onclick = function(){modal.showModal()} document.body.appendChild(btn); </script>
この前作ったGithub Pagesのサンプルプロジェクト、百徳ツールとか言う名前を付けた割に機能が1つしかなくて、 とても寂しいので機能を追加してみました。
ランダムな名前を生成するものを作りました。日本人の人名ね。
名字と名前をそれぞれランダムに取ってきてくっつけてるだけ。
ここで試せます。
他、技術的なところでは、prettier入れたり、playwright入れたりしてました。
テストライブラリはjestだかvitestだか何を入れようか悩み中。
ただ、個人開発なのでUnit testもE2Eテストもどこまでちゃんと書くかは分かりません(^^;
今回の機能追加で一番大変だったのは名前のデータを作ることろ。
漢字の名字、名前を集めてくるのはまあ出来るんですが、
そこからフリガナ振るのが全部人力。
名字、男性名、女性名それぞれ100件、計300件を人力で処理したっていう・・
4/18 生成したものをダウンロード可能に