子どもたちがマインクラフト(iOS版)にはまっており、一緒に遊んだりしている。 クリエイティブモードで一緒にわーわー言いながら街や建物を作るのはなかなか楽しい。 楽しいのだけど、 ちまちまブロックを置いていくのはそろそろ飽きてきたので、 ビャーっと…
苦労したのでメモ。 Node.jsでのデータベース操作にはいつもknexを使用していて、 Knex.js - A SQL Query Builder for Javascript knexはSQLServerにも対応しているのだけど、 そこで使用されているmssqlパッケージがWindows認証には対応していないのか、 う…
以前作成した映画情報取得用スクリプトのように blog.honjala.net 定期的に実行したいスクリプトを作成した場合、 そのスクリプトをどこで動かすか、というのが悩みどころになる。 いくつか方法はあるのだけど、 ローカルのPCでタスクスケジューラなりcronな…
Javascript と Node.js を使ってあれこれ自動化する記事が増えてきたので、 目次としてまとめておく。 blog.honjala.net blog.honjala.net
最近素晴らしいことに家族内でSlackを使ってやりとりするようになった。 せっかくなので何かボット的なものを作ろう、ということで 昔Clojureで作った、 「映画情報をスクレイピングして通知する」スクリプトのNode.js版を作って、 定期的にSlackに通知する…
会社の自分のPC(Windows)で何かを定期的に実行したいときは だいたいPythonなりnode.jsなりでスクリプトを書いて タスクスケジューラに登録しておく。 のだけど、 タスクスケジューラは未ログイン時に実行しようとすると ログインアカウントを登録しておく必…
数当てゲーム、マインスイーパーに続き、Vue.jsでこども向けゲームを作る。 もう少し動きのあるゲームが作ってみたいので、 今回はボールが跳ね回るブロック崩しゲームに挑戦する。 これまでに作ったゲームは初期処理で何か答えを生成しておいて、 あとはユ…
node.jsでデータ収集のためのWebスクレイピングを行う。 Webスクレイピングの流れというのはだいたい決まっていて、 WebページにアクセスしてHTMLを取得する 取得したHTMLの中から必要なデータを抽出する 抽出したデータを保存する の3段階となる。
ぼくが仕事でLinuxサーバ環境に接続して行う操作というのはだいたい決まっていて、 コマンドでサーバの状態を確認 ログをファイル出力してダウンロード サービスの設定変更と再起動 SSHトンネル経由でDBアクセス のうちどれかを行うことが多い。 基本は手作…
Vue.jsでこども用ゲーム作成シリーズ第3弾。 前回作ったマインスイーパーは、ゲームルール自体の中毒性のおかげか、 たまにプレイしてくれてるようで作った甲斐があった。 blog.honjala.net 飽きないうちに次のゲームを作成しておこう、ということで 今回は…
前回作った数当てゲームがこどもに好評だったので、 blog.honjala.net 次はもう少し複雑なマインスイーパー作成に挑んでみた。 数当てゲームはシンプルすぎて2秒で飽きられたけど、 マインスイーパーならしばらく遊んでくれるにちがいない。 今回は前回使っ…
料理人の子がパパにおいしい料理を作ってもらえるように、 うちの子も何がしかプログラマの子としてのメリットを受けて然るべきではないか、 と急に思い立ち、子供用のゲームを色々作ってあげよう! と燃えてきたので、すぐ作れそうな「数当てゲーム」を作っ…
WindowsのGUIアプリとして作りたいものがいくつかあって、 PythonのGUIライブラリを いくつか(PyQtとかwxPythonとかKivyとか)試してみたけどしっくりこず、 やっぱりWindows用アプリを作るなら.NETじゃない? ということでC#での開発について調べている。 …
小学校にあがった娘が、 「もうお子様向けのぬりえでは満足できません」 というので、 写真を線画化して細かくてリアルな塗り絵を作ってみたら、 超上手なデッサンみたいな画像ができた。
太り過ぎでそろそろ家族の冷たい視線と容赦ない言葉に耐えられなくなってきたので、 ダイエットに真剣に取り組みたい。 ダイエットといえば「食事のバランス」と「適度な運動」だけど、 おそらく日々の食事の方が体重への影響は大きいだろう、 ということで…
小さい頃に気に入って遊んでたあのお絵かきおもちゃ、 なんだったかな、 と思って検索したら「Etch-A-Sketch」という製品だった。 Ohio Art Classic Etch A Sketch Magic Screen出版社/メーカー: Ohio Artメディア: おもちゃ&ホビーこの商品を含むブログを…
仕事でCSVファイルのやりとりをすることが多い。 CSVファイルというのは、Excelで開くと見やすいのだけど、 普通にテキストエディタやCUI環境で開くと結構見づらい。 そして、Linuxで作業してる時なんかにいちいちファイルを ダウンロードしてExcelを開くの…
Webアプリを開発する際、 最近の多くのテンプレートエンジンはHTMLをレイアウトや部品に分割して作成し、 それをextendしたりincludeしたりして1つのHTMLとして出力できるようになっている。 部品化することで、ヘッダーとかメニューとかフッターとか、 複数…
正月休み、帰省した実家で娘たちがかるた遊びにハマり、 ほぼ毎日祖母やいとこと遊んでいた。 楽しそうだし、瞬発力やら記憶力やらが鍛えられそうで大変良い。 大変良いのだけど、 かるた遊びの困ったところは、プレイヤー以外に読み手が必要だというところ…
YouTubeでお気に入りに入れた動画のタイトルを一覧化して見たくなったので、 YouTube Data API経由でデータを取得して表示するNode.jsスクリプトを作ってみた。 APIへのアクセス自体はサクッとできたのだけど、 複数ページデータを非同期で取得するフローの…
例えば商品のランキングを手動で管理する場合、 商品データに並び順のようなものをつけてその順序で表示すると思うのだけど、 並び順を設定するUIをどのように作るのが良いか。 近いうちに作る機会がありそうなので、考えてみる。 ReactやVue.jsを使う機会は…
Node.jsとPostgreSQLを使ってるなら、 もうデータは全部JSON形式で管理した方が楽なんじゃないの、 ということでPostgreSQLのJSON型カラムについて色々調べている。 JSON/JSONB型カラムの基本的な使い方についてはちょっと前に書いた。 blog.honjala.net 今…
PostgreSQLでUPSERT(データがあればUPDATEしてなければINSERT)する 方法について調べたところ、いくつか書き方があるようだ。 UPSERT処理で気になるのは同時実行された際に 重複登録されたり重複エラーが発生しないかどうかなので、 その観点で下記の4パタ…
昨日書いた下記記事の続き。 blog.honjala.net 全角半角大文字小文字ひらがなカタカナを区別せず高速検索できるようには なったのだけど、肝心のlike検索でインデックスが使えず 遅いままだったので、pg_bigmを導入してこれを解決する。 pg_bigmは簡単に言う…
したいしたい!絶対したい!と駄々をこねられたので調査してみた。 こういった区別なし検索を実装する方法としてパッと思いつくのは、 あらかじめ検索対象となるカラムの検索用カラムを用意して、 データ変更時にトリガーで 元カラムの内容を半角小文字英数…
先日書いたgenerate_series関数を使用したテストデータ生成の続き。 blog.honjala.net どうせテストデータを作成するなら、 連番だけでなく、必要なパターンの組み合わせデータを生成したい。 ちょっと前にPythonやClojureを使った組み合わせデータ作成のス…
PostgreSQL9.2以降のバージョンではjson型/jsonb型カラムが使える。 ちょっと特殊な記法を使うけど、 json/jsonbデータ内のキーをDBのカラムと同様に使えるようになるので、 スキーマレスDBのように同じテーブル内のレコードで 異なるデータ構成を持たせるこ…
これまでテスト用にたくさんデータを作成する時は、 PythonやらNode.jsやらでプログラムを書いてた。 blog.honjala.net PostgreSQLならgenerate_seriesという連続値生成関数を利用することで SQLだけで手軽にデータ生成できる、ということを発見したので、 …
チーム内の雑談で、 Delete-Insert処理を1つのSQL文で行うとしたら、 SELECT文のSELECT句でDELETE用SPとINSERT用SPを呼び出す方法もあるよね、 SELECT句って記述順に実行してくれるのかな? みたいな話になったので、検証してみた。
何かしらの作業を自動化する際、 その作業を起動する「きっかけ(イベント)」を何にするかを考える必要がある。 例えば定期的に実行するなら、「曜日」や「時間」がきっかけになるし、 自分が実行したい時に実行するなら(それを自動化と呼ぶかどうかはさて…