ほんじゃらねっと

食と自転車とダイエットとたまにプログラミング

Vue.js + SVG でマインスイーパーもどきをつくる

前回作った数当てゲームがこどもに好評だったので、 blog.honjala.net 次はもう少し複雑なマインスイーパー作成に挑んでみた。 数当てゲームはシンプルすぎて2秒で飽きられたけど、 マインスイーパーならしばらく遊んでくれるにちがいない。 今回は前回使っ…

数当てゲームを作る(Vue.js + Vuex + TypeScriptに挑戦)

料理人の子がパパにおいしい料理を作ってもらえるように、 うちの子も何がしかプログラマの子としてのメリットを受けて然るべきではないか、 と急に思い立ち、子供用のゲームを色々作ってあげよう! と燃えてきたので、すぐ作れそうな「数当てゲーム」を作っ…

Java/Pythonプログラマの自分が今からC#を学ぶ価値があるかどうかを検討する

WindowsのGUIアプリとして作りたいものがいくつかあって、 PythonのGUIライブラリを いくつか(PyQtとかwxPythonとかKivyとか)試してみたけどしっくりこず、 やっぱりWindows用アプリを作るなら.NETじゃない? ということでC#での開発について調べている。 …

子どもの塗り絵にするために写真を線画化してみたら、むしろ大人向けな味のあるものができた

小学校にあがった娘が、 「もうお子様向けのぬりえでは満足できません」 というので、 写真を線画化して細かくてリアルな塗り絵を作ってみたら、 超上手なデッサンみたいな画像ができた。

効率的にやせるために栄養について理解するために栄養素データで遊ぶ

太り過ぎでそろそろ家族の冷たい視線と容赦ない言葉に耐えられなくなってきたので、 ダイエットに真剣に取り組みたい。 ダイエットといえば「食事のバランス」と「適度な運動」だけど、 おそらく日々の食事の方が体重への影響は大きいだろう、 ということで…

お絵かきおもちゃ「Etch-A-Sketch」があまりにも懐かしかったので操作感を再現するためにWeb版を作った

小さい頃に気に入って遊んでたあのお絵かきおもちゃ、 なんだったかな、 と思って検索したら「Etch-A-Sketch」という製品だった。 Ohio Art Classic Etch A Sketch Magic Screen出版社/メーカー: Ohio Artメディア: おもちゃ&ホビーこの商品を含むブログを…

いちいちExcelを開くのがつらいのでCSVファイルのカラムを揃えて見やすく出力してくれるスクリプトをつくる

仕事でCSVファイルのやりとりをすることが多い。 CSVファイルというのは、Excelで開くと見やすいのだけど、 普通にテキストエディタやCUI環境で開くと結構見づらい。 そして、Linuxで作業してる時なんかにいちいちファイルを ダウンロードしてExcelを開くの…

デザイナーとプログラマのわがままに応えて、テンプレートエンジンから生成されたHTMLファイルを元の部品ファイルに分割するツールを作る

Webアプリを開発する際、 最近の多くのテンプレートエンジンはHTMLをレイアウトや部品に分割して作成し、 それをextendしたりincludeしたりして1つのHTMLとして出力できるようになっている。 部品化することで、ヘッダーとかメニューとかフッターとか、 複数…

Web Speech Synthesis APIを使って、正月のかるた読み上げ無間地獄タスクを自動化する

正月休み、帰省した実家で娘たちがかるた遊びにハマり、 ほぼ毎日祖母やいとこと遊んでいた。 楽しそうだし、瞬発力やら記憶力やらが鍛えられそうで大変良い。 大変良いのだけど、 かるた遊びの困ったところは、プレイヤー以外に読み手が必要だというところ…

Node.jsで非同期処理を不特定回数繰り返す方法をYouTubeのお気に入りタイトル一覧を取得するスクリプトを作りながら考える

YouTubeでお気に入りに入れた動画のタイトルを一覧化して見たくなったので、 YouTube Data API経由でデータを取得して表示するNode.jsスクリプトを作ってみた。 APIへのアクセス自体はサクッとできたのだけど、 複数ページデータを非同期で取得するフローの…

jQueryUIのsortableウィジェットを使ってアイテムの並び順を管理するUIを作成する方法

例えば商品のランキングを手動で管理する場合、 商品データに並び順のようなものをつけてその順序で表示すると思うのだけど、 並び順を設定するUIをどのように作るのが良いか。 近いうちに作る機会がありそうなので、考えてみる。 ReactやVue.jsを使う機会は…

PostgreSQLのJSONB型カラム内のキーにユニーク制約をつけてUPSERTする方法

Node.jsとPostgreSQLを使ってるなら、 もうデータは全部JSON形式で管理した方が楽なんじゃないの、 ということでPostgreSQLのJSON型カラムについて色々調べている。 JSON/JSONB型カラムの基本的な使い方についてはちょっと前に書いた。 blog.honjala.net 今…

PostgreSQLでのUPSERT(INSERT or UPDATE)処理を検証する

PostgreSQLでUPSERT(データがあればUPDATEしてなければINSERT)する 方法について調べたところ、いくつか書き方があるようだ。 UPSERT処理で気になるのは同時実行された際に 重複登録されたり重複エラーが発生しないかどうかなので、 その観点で下記の4パタ…

PostgreSQLでpg_bigmを使って中間一致like検索を高速化する

昨日書いた下記記事の続き。 blog.honjala.net 全角半角大文字小文字ひらがなカタカナを区別せず高速検索できるようには なったのだけど、肝心のlike検索でインデックスが使えず 遅いままだったので、pg_bigmを導入してこれを解決する。 pg_bigmは簡単に言う…

PostgreSQLで全角半角大文字小文字ひらがなカタカナを区別せず検索したい!というよくあるわがままに応える

したいしたい!絶対したい!と駄々をこねられたので調査してみた。 こういった区別なし検索を実装する方法としてパッと思いつくのは、 あらかじめ検索対象となるカラムの検索用カラムを用意して、 データ変更時にトリガーで 元カラムの内容を半角小文字英数…