プログラミング
たまに親子で百人一首で遊ぶのですが、最近長女がメキメキ力をつけてきてなかなか勝てなくなりました。 遊んでいるだけでどんどん歌を記憶していける小学生に記憶力の衰え始めたおっさんが勝つにはこっそり特訓する必要がありそうです。 そんなわけで和歌を…
Slackを自作ツールのフロントエンドとして使う、というテーマで書いた下記の記事の続きです。 blog.honjala.net 前回はSlack上で飲んだものと飲んだ量を登録する「水分摂取量記録アプリ」を作りながら、Slack APIの「ショートカット」「モーダル」を使ったボ…
ブラウザで操作できるツールを作りたいけどWebのフロントエンド作るの面倒だな...とWeb系開発者にあるまじき事を考えつつ良いプラットフォームを探していたら、SlackのAPIが進化してツールフロントエンド化するのにうってつけの機能が増えているのを見つけま…
PostgreSQLのスロークエリログはパフォーマンス調査する際に必ずと言っていいほどよく利用するものですが、Java等のデータベースライブラリ経由で出力されるクエリはプリペアド文とパラメータに分かれて出力されるため、そのままコピペして実行して確認する…
Node.jsは入出力関連の処理を非同期で行ないます。入出力イベントが非同期で実行されることで、遅い入出力処理の合間に他の処理を挟んで効率的にプログラムを実行することができます。この特長を活かすため、ライブラリに含まれる関数も非同期的に実行される…
OpenCV、インストール難しすぎじゃね? 前回の記事で blog.honjala.net Node.jsでOpenCVを使うことに成功したわけですが、 OpenCVはとにかくインストールでうまくいかないことが多くて、 Macでどうにかうまく動いてもLinuxにインストールしようとすると また…
画像処理で遊びたいな、と思い立ったので、 以前PythonとOpenCVで作成した画像線画化スクリプトを Node.jsで作成しなおしてみました。 blog.honjala.net OpenCVはPythonと使うのがやはり一番使いやすいのですが、 Javascript用APIも提供されているので、 Web…
先日書いたツールのGUI化に関する記事で blog.honjala.net Electronやcarloを使ったデスクトップアプリ化について紹介したあとで ちょっと考えていた時のこと。 carloのようにUI機能を持たずに インストールされているChromeを使うのがアリならば、 もう思い…
プログラマの仕事は、人が行う作業を代わりに行なってくれるプログラムを書くことであり、それはつまるところ「作業を自動化」することだ。 長くプログラマをやってると忘れちゃうけど、 コマンドプロンプトを開いてコマンドを実行するのは、 プログラマ以外…
子どもたちがマインクラフト(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パタ…