プログラミング
昨日書いた下記記事の続き。 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句って記述順に実行してくれるのかな? みたいな話になったので、検証してみた。
何かしらの作業を自動化する際、 その作業を起動する「きっかけ(イベント)」を何にするかを考える必要がある。 例えば定期的に実行するなら、「曜日」や「時間」がきっかけになるし、 自分が実行したい時に実行するなら(それを自動化と呼ぶかどうかはさて…
新しいプロジェクトを開始するにあたり、 ExcelやめてSphinx + reStructuredTextでドキュメント作るようにしません? という提案をしてみたら、意外とすんなり通った。 概要 — Sphinx 1.5.6 ドキュメント reStructuredText入門 — Sphinx 1.5.6 ドキュメント …
ライトな言語で開発する時とか、文章を書く時は テキストエディタとしてVim(KaoriYaさんのWindows版Vim)を長く使用している。 www.kaoriya.net 根が浮気症なので Spacemacs+EmacsとかSublimeTextとかAtomとかLightTableとか 話題になったエディタには 「これ…
おじさんになると、 よっぽど興味を持ったこと以外はすぐに忘れてしまうようだ。 忘れるというよりも、覚えてるけどうまく思い出せない、というべきか。 今週ランチで食べたものを思い出してみようとしても、 昨日のメニューすらなかなか出てこないことがあ…
他の誰かが作成した検索プログラムやストアドファンクションを 修正させられる時に、 検索対象のテストデータとか プログラムに渡す検索パラメータのテスト用データを 必要なパターン分作成してテストするのだけど、 抜け漏れのないテストデータを簡単に生成…
PCやサーバの容量がなくなる、というのは案外よくあるもので、 年に1回くらいそんな事態に遭遇しては、 どのフォルダ・ファイルが容量を圧迫してるんだ! 容量を調べるためのコマンドなんだっけ? とコマンドを探したりツールを探したりする。 なので、自分…
映画鑑賞は割と好きなのだけど、 なかなか映画館にはいけないし、 DVDを借りてもレンタル中に観る時間が取れるとは限らないし、 ということでもっぱらテレビで面白そうな映画をやってたら録画して 時間のある時に観ている。 しかしそうそうテレビ欄をチェッ…
はてなカウンターの「ログ」画面で ログを月単位でダウンロードできることを発見したので、 ダウンロードしたログを分析用にデータベースに保存するスクリプトを作成する。
Pythonを堪能したのでJavascriptに戻ってきた。 JavascriptでPythonのジェネレータみたいな機能はないのかな、 と調べてみると、ES6(ES2015)で追加され、Node.jsはES6対応済みらしい。 そういえばES5もES6もよく調べたことないな、と思って 調べてみると、便…
過去に下記のような、ファイルを複数に分割する方法について記事を書いた: blog.honjala.net この記事に書いたコードをもう少しエレガントに書けないものか、 と方法を調べていて、 Pythonのジェネレータが使えそうだったので色々試してみた。
稼働中のWebアプリのデータベースに定期的にアクセスして データの状態をチェックしたい、でもデータベースには 外部から直アクセスできないようになっているので、 SSHトンネル経由でないとアクセスできない、という場合。 A5:SQLなりpgAdminなり最近のDBア…
だいぶ前に書いた下記の記事 blog.honjala.net の内容がPython3で動かないようなので、 Python3対応しつつ、もう少し使えるように書きなおしてみる。
SQL Serverからエクスポートしたrpt形式ファイルを渡され、 CSVに変換してくれと依頼される。 「あれ、SQL Server Management Studioに 直接CSV出力する機能ありませんでしたっけ?」 と確認しても「しらん。やれ。」と言われる。 そんなよくある状況で助け…
毎朝出社時に社員カードで入室し、 入室したのと同じカードで出勤打刻をするのだが、 入って数歩のところにタイムレコーダーが置いてあるにも関わらず、 打刻が漏れることがある。 どうやら、 雨の日に途中で傘を置いたり(傘立てはドアとタイムレコーダーの…
Python手軽でいいね、ってことで 最近はJavascriptよりもPythonでスクリプトを書いている。 今日もパフォーマンステスト用に大量データを登録する必要があったので SQLAlchemyを使ってスクリプトを書いてみた。 Python3で動作確認済み。
たまにはPythonを使っておこう、 ということでここ数日シェル環境としてiPythonを使っている。 Jupyter and the future of IPython — IPython ほぼPython言語としての機能は使っていないのだけど、 ちょっとした計算をしたりするにはなかなか便利だ。 せっか…
サーバが重いけどどこを直せばよいか分からないから調査してくれー、と Tomcatのでかいアクセスログファイルを渡されたので、 とりあえずデータベースに入れて調査してみるべ、と ログファイルの内容ををデータベースに取り込むスクリプトを書いてみた。 Nod…
Javascriptライブラリの中でも、 Underscore.jsが大変気に入っている。 Underscore.js each、filter、map、reduce等 リスト操作、マップ操作関連の関数が 100以上含まれたユーティリティライブラリで、 他の言語にあってJavascriptにもあったらいいのにな、 …
特定のWebサイトを定期的にチェックして特定のキーワードが含まれていたら 通知してくれる仕組みを1つ覚えておくと色々重宝する。 例えば 会社に社員用Webサイトがあるなら、 (そしてそのサイトがRSSもメール通知も提供してないなら) そこに「重要」とか「…
どうせ自動化するなら完全自動化したいよね、 ということで今回は作成したGruntスクリプトを Windowsの起動時や毎日の決まった時間に実行できるように タスクスケジューラに登録する方法を紹介する。 この記事はGruntを実行する環境が整っていることを前提と…
先日iPad miniとiPhone 6sを導入してから、 うちの古いルーターが2日間隔くらいで再起動しないと 通信が遅くなってネットに繋がらなくなるようになった。 どうやら新しいiPadとiPhoneはWi-fi環境だとガシガシ通信するようで、 ルーターのキャパをすぐに超え…
コミュニケーションというのはなかなか難しいもので、 「急いで確認したいから資料ができたら共有フォルダに入れて、すぐ連絡してよ」 と強めに伝えても、 資料はとっくにできてるのに やれ後で連絡するつもりだっただの、 もうちょっと確認してから連絡する…
会社の新入社員研修の事を考えていてふと思いついた。 社内で何がしかの開発を行っている場合、 全員がプログラマになるわけではない場合でも 一通りプログラムの基礎を身につけておこう、と新人研修に プログラミング研修が含まれていることがある。 そこで…
後輩に教えてあげたら喜ばれたので、 1つの作業効率化方法として書いておく。 資料を作成する際、特定のフォルダに入っているファイルの一覧を Excelに貼り付けたりしたい場合がある。 しかし、エクスプローラではファイル一覧を見ることはできるが、 それを…