ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

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

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

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

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

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

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

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

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

PythonでSSHトンネリングしてデータベースアクセス

稼働中のWebアプリのデータベースに定期的にアクセスして データの状態をチェックしたい、でもデータベースには 外部から直アクセスできないようになっているので、 SSHトンネル経由でないとアクセスできない、という場合。 A5:SQLなりpgAdminなり最近のDBア…

Pythonでgrep風にディレクトリ内のファイルを検索する方法(Python3対応&機能追加版)

だいぶ前に書いた下記の記事 blog.honjala.net の内容がPython3で動かないようなので、 Python3対応しつつ、もう少し使えるように書きなおしてみる。

SQL Serverから出力したrptファイルを使いやすいようにcsvファイルに変換する【Python】

SQL Serverからエクスポートしたrpt形式ファイルを渡され、 CSVに変換してくれと依頼される。 「あれ、SQL Server Management Studioに 直接CSV出力する機能ありませんでしたっけ?」 と確認しても「しらん。やれ。」と言われる。 そんなよくある状況で助け…

ボケてきたのかタイムカードの打刻を忘れてしまうので、打刻漏れ防止用チェックプログラムを作成した

毎朝出社時に社員カードで入室し、 入室したのと同じカードで出勤打刻をするのだが、 入って数歩のところにタイムレコーダーが置いてあるにも関わらず、 打刻が漏れることがある。 どうやら、 雨の日に途中で傘を置いたり(傘立てはドアとタイムレコーダーの…

PostgreSQLにサクッとテストデータを登録するPythonテンプレ

Python手軽でいいね、ってことで 最近はJavascriptよりもPythonでスクリプトを書いている。 今日もパフォーマンステスト用に大量データを登録する必要があったので SQLAlchemyを使ってスクリプトを書いてみた。 Python3で動作確認済み。

iPythonでコマンド履歴ログ出力を自動化する

たまにはPythonを使っておこう、 ということでここ数日シェル環境としてiPythonを使っている。 Jupyter and the future of IPython — IPython ほぼPython言語としての機能は使っていないのだけど、 ちょっとした計算をしたりするにはなかなか便利だ。 せっか…

Node.jsでメモリを使い切らずに大容量ファイルを読み込んでデータベースに登録する方法

サーバが重いけどどこを直せばよいか分からないから調査してくれー、と Tomcatのでかいアクセスログファイルを渡されたので、 とりあえずデータベースに入れて調査してみるべ、と ログファイルの内容ををデータベースに取り込むスクリプトを書いてみた。 Nod…

便利なリスト・マップ操作関数を提供してくれるUnderscore.js を使ってJavascriptで文字別出現回数を数えるスクリプトを作成する

Javascriptライブラリの中でも、 Underscore.jsが大変気に入っている。 Underscore.js each、filter、map、reduce等 リスト操作、マップ操作関連の関数が 100以上含まれたユーティリティライブラリで、 他の言語にあってJavascriptにもあったらいいのにな、 …

Node.jsでWebサイトの更新チェックを自動化する

特定のWebサイトを定期的にチェックして特定のキーワードが含まれていたら 通知してくれる仕組みを1つ覚えておくと色々重宝する。 例えば 会社に社員用Webサイトがあるなら、 (そしてそのサイトがRSSもメール通知も提供してないなら) そこに「重要」とか「…

WindowsのタスクスケジューラからGruntスクリプトを起動する方法

どうせ自動化するなら完全自動化したいよね、 ということで今回は作成したGruntスクリプトを Windowsの起動時や毎日の決まった時間に実行できるように タスクスケジューラに登録する方法を紹介する。 この記事はGruntを実行する環境が整っていることを前提と…

一日使い続けるだけで通信速度が低下する古いルーターを毎日再起動させるNode.jsスクリプト

先日iPad miniとiPhone 6sを導入してから、 うちの古いルーターが2日間隔くらいで再起動しないと 通信が遅くなってネットに繋がらなくなるようになった。 どうやら新しいiPadとiPhoneはWi-fi環境だとガシガシ通信するようで、 ルーターのキャパをすぐに超え…

Node.jsとGruntでフォルダ監視ツールを作る

コミュニケーションというのはなかなか難しいもので、 「急いで確認したいから資料ができたら共有フォルダに入れて、すぐ連絡してよ」 と強めに伝えても、 資料はとっくにできてるのに やれ後で連絡するつもりだっただの、 もうちょっと確認してから連絡する…

新人にはまずプログラムを「読む」スキルを身につけていただきたい

会社の新入社員研修の事を考えていてふと思いついた。 社内で何がしかの開発を行っている場合、 全員がプログラマになるわけではない場合でも 一通りプログラムの基礎を身につけておこう、と新人研修に プログラミング研修が含まれていることがある。 そこで…

【Windows】フォルダ内のファイル名一覧を簡単に作成する方法

後輩に教えてあげたら喜ばれたので、 1つの作業効率化方法として書いておく。 資料を作成する際、特定のフォルダに入っているファイルの一覧を Excelに貼り付けたりしたい場合がある。 しかし、エクスプローラではファイル一覧を見ることはできるが、 それを…

正規表現を使ったエレガントな置換処理を学びつつ簡易なファイル名一括変換ツールを作る

文字列を検索したりマッチしたものを置換したり、という作業は 技術者が制作・開発する時だけでなく、例えばExcelやWordで文書を編集する際や Webページ内で目的の文章を探したりする場合にも行うもので、 「作業の効率化」という点では欠かせないものだ。 …

プログラミングはしたくないけど自動化はしたい人のための、Grunt.jsによる作業自動化入門

前回書いたNode.js入門記事の続き。 blog.honjala.net 前回から引き続き、 いかにプログラムの勉強無しで自動化できることを増やすか、 もとい、 いかに他部署のノンプログラマに自動化ツールを使わせて自分への作業依頼を減らすか、 をマイテーマに少しずつ…

大阪西梅田のお気に入りランチ3【大阪駅前第3ビル】

休日はブログも仕事から離れた記事を書こう、ということで 範囲が狭いせいか、内容が適当すぎるせいか 過去2回記事にしたけど全然アクセスされてない 西梅田周辺ランチ情報を懲りずにまた記事にする。 今回が最終回だ!

作業自動化のための Node.js 入門

これまでいくつかの記事でNode.jsを使ったスクリプトを載せてきたが、 自動化のためのスクリプトを書いて動かす環境として Node.jsは手軽だし速いし色々ライブラリは揃ってきているし なかなか良い環境だと感じている。 Web系の仕事をしていればJavascriptは…

【Java】フリーの帳票デザインツールJasperReportsでPDF生成が超楽になった

ついこないだまでJavaでのPDF出力にはpdfboxを使っていて、 なんでPDF文書作成っつーのはこんな大変なんだ! いちいち座標で指定させるんじゃねー! PDF出力嫌い!大嫌い! となっていたのだが、JasperReportsと出会って変わった。 何とJasperReportsを使う…

【Java】シンプルなデータベースマイグレーションツール「flyway」を導入する

新しいチームでデータベースマイグレーションの仕組みが決まっていなかったので、flywayを導入してみた。 結論としては手軽で十分使えそう。 データベースマイグレーションとは 本来のマイグレーションの意味とは異なるかもしれないが、 データベースマイグ…

家庭内あやとり部に入部しました

娘が保育園の影響であやとりに目覚めた。 家で一生懸命編んでいる姿は大変微笑ましいのだけど、 「みてみてー」、と毎回同じ形を見せられるのもあれなので、 レシピ調査&共有要員として一緒に学んでみることにした。 自分は男だからか友人が少なかったせい…

大阪西梅田のお気に入りランチ2 【大阪駅前第2ビル周辺】

範囲狭いな! 昨日に引き続き、思い出のお気に入りランチを紹介していく。 blog.honjala.net 祭太鼓 変わりカツ丼と親子丼の店。 デミカツ丼やら、めんたいなんちゃらカツ丼やらいろんな種類があって、... お気に入りはお茶漬け風の冷やしだし...カツ丼...だ…

大阪西梅田のお気に入りランチ【堂島アバンザ周辺】

近いうちに職場が西梅田から移転することになったので、お気に入りのランチが食べられるお店を記録しておく。 ダイエットについて書いた次の日に食べ物に関する記事を書くのはどうなのか、ということはさておき。 また近くに来た時に思い出せるように。 仔牛…

考えることに集中しやすい状況を作りつつ痩せるダイエット

昨日書いた blog.honjala.net について大盛りのミートソースを食べながらまた考えていて、思いついた。 おなかがいっぱいだと考えることに集中できなくなる 食べ過ぎるとお腹が苦しい。 ...当たり前のことを続けて書いたけど。 食べるにしても程よい量を食べ…

「何にもフォーカスしていない状態」を作ると、新しいアイデアが浮かんでくるらしい

さっきトイレに入っていて思いついた。 トイレに座っている時とか、お風呂で湯船に入っている時は新しいアイデアや悩んでいたことに対する答えが見つかりやすい。 パソコンの前に座っている時には思いつかなかったことが、諦めて電気を消してベッドに入ると…

IFTTTのMakerチャンネルを使って、いろんなサービスの更新情報を通知してくれる仕組みを作る

仕事でチーム間のコミュニケーションツールとして使い始めたチャットワークだが、 最近は「いろんなサービスやスクリプトからの通知を集めるツール」としての利用がメインになってきている。 www.chatwork.com 以前記事にした、 「Subversionのコミット情報…