ほんじゃらねっと

ダイエット中プログラマのブログ

PostgreSQLでテスト用組み合わせパターンデータを一括生成する

先日書いたgenerate_series関数を使用したテストデータ生成の続き。 blog.honjala.net どうせテストデータを作成するなら、 連番だけでなく、必要なパターンの組み合わせデータを生成したい。 ちょっと前にPythonやClojureを使った組み合わせデータ作成のス…

JSONB型カラムでPostgreSQLをNoSQL風にスキーマレスに使う方法

PostgreSQL9.2以降のバージョンではjson型/jsonb型カラムが使える。 ちょっと特殊な記法を使うけど、 json/jsonbデータ内のキーをDBのカラムと同様に使えるようになるので、 スキーマレスDBのように同じテーブル内のレコードで 異なるデータ構成を持たせるこ…

PostgreSQLのgenerate_series関数でテスト用データを作成する

これまでテスト用にたくさんデータを作成する時は、 PythonやらNode.jsやらでプログラムを書いてた。 blog.honjala.net PostgreSQLならgenerate_seriesという連続値生成関数を利用することで SQLだけで手軽にデータ生成できる、ということを発見したので、 …

PostgresqlのSELECT句での関数呼び出し順序を確認した

チーム内の雑談で、 Delete-Insert処理を1つのSQL文で行うとしたら、 SELECT文のSELECT句でDELETE用SPとINSERT用SPを呼び出す方法もあるよね、 SELECT句って記述順に実行してくれるのかな? みたいな話になったので、検証してみた。

自動化のための「トリガー」について考える

何かしらの作業を自動化する際、 その作業を起動する「きっかけ(イベント)」を何にするかを考える必要がある。 例えば定期的に実行するなら、「曜日」や「時間」がきっかけになるし、 自分が実行したい時に実行するなら(それを自動化と呼ぶかどうかはさて…

イギリス帰りの友人から教えてもらった「polite ignorance」という言葉

学生時代にイギリス帰りの友人から「Polite Ignorance」という言葉を教えてもらったことがあります。 今調べてみるとこの2語を組み合わせた言葉としての説明は見つけられなかったので自分なりに解釈しますと、「上品な」「思いやりある」という意味の「polit…

既存のMarkdownファイルをreStructuredTextに(ざっくりと)変換する

新しいプロジェクトを開始するにあたり、 ExcelやめてSphinx + reStructuredTextでドキュメント作るようにしません? という提案をしてみたら、意外とすんなり通った。 概要 — Sphinx 1.5.6 ドキュメント reStructuredText入門 — Sphinx 1.5.6 ドキュメント …

エディタ浮気性の自分のための、Vimから他のエディタに乗り換えたくなった時にチェックするポイント

ライトな言語で開発する時とか、文章を書く時は テキストエディタとしてVim(KaoriYaさんのWindows版Vim)を長く使用している。 www.kaoriya.net 根が浮気症なので Spacemacs+EmacsとかSublimeTextとかAtomとかLightTableとか 話題になったエディタには 「これ…

昨日食べたものも思い出せなくなってきたおっさん(自分)のために食事履歴記録アプリをつくった

おじさんになると、 よっぽど興味を持ったこと以外はすぐに忘れてしまうようだ。 忘れるというよりも、覚えてるけどうまく思い出せない、というべきか。 今週ランチで食べたものを思い出してみようとしても、 昨日のメニューすらなかなか出てこないことがあ…

プログラムテスト用の組み合わせパターンデータをササッと作るためのテンプレ【Python/Clojure】

他の誰かが作成した検索プログラムやストアドファンクションを 修正させられる時に、 検索対象のテストデータとか プログラムに渡す検索パラメータのテスト用データを 必要なパターン分作成してテストするのだけど、 抜け漏れのないテストデータを簡単に生成…

Windows/Linuxでディスクがいっぱいになった時に、フォルダ毎に使用している容量を確認する方法

PCやサーバの容量がなくなる、というのは案外よくあるもので、 年に1回くらいそんな事態に遭遇しては、 どのフォルダ・ファイルが容量を圧迫してるんだ! 容量を調べるためのコマンドなんだっけ? とコマンドを探したりツールを探したりする。 なので、自分…

忙しいけど映画は観たい人のために、テレビ映画放映情報チェックして通知してくれるスクリプト

映画鑑賞は割と好きなのだけど、 なかなか映画館にはいけないし、 DVDを借りてもレンタル中に観る時間が取れるとは限らないし、 ということでもっぱらテレビで面白そうな映画をやってたら録画して 時間のある時に観ている。 しかしそうそうテレビ欄をチェッ…

はてなカウンターのログを分析できるようにデータベースに取り込むスクリプト【Python/Clojure】

はてなカウンターの「ログ」画面で ログを月単位でダウンロードできることを発見したので、 ダウンロードしたログを分析用にデータベースに保存するスクリプトを作成する。

Node.jsがES5とES6(ES2015)に対応してることに今さら気づいて、使ってみたら感動した新要素

Pythonを堪能したのでJavascriptに戻ってきた。 JavascriptでPythonのジェネレータみたいな機能はないのかな、 と調べてみると、ES6(ES2015)で追加され、Node.jsはES6対応済みらしい。 そういえばES5もES6もよく調べたことないな、と思って 調べてみると、便…

Pythonのジェネレータを使って大容量ファイルを分割する

過去に下記のような、ファイルを複数に分割する方法について記事を書いた: blog.honjala.net この記事に書いたコードをもう少しエレガントに書けないものか、 と方法を調べていて、 Pythonのジェネレータが使えそうだったので色々試してみた。