プログラミング
文字列を検索したりマッチしたものを置換したり、という作業は 技術者が制作・開発する時だけでなく、例えばExcelやWordで文書を編集する際や Webページ内で目的の文章を探したりする場合にも行うもので、 「作業の効率化」という点では欠かせないものだ。 …
前回書いたNode.js入門記事の続き。 blog.honjala.net 前回から引き続き、 いかにプログラムの勉強無しで自動化できることを増やすか、 もとい、 いかに他部署のノンプログラマに自動化ツールを使わせて自分への作業依頼を減らすか、 をマイテーマに少しずつ…
これまでいくつかの記事でNode.jsを使ったスクリプトを載せてきたが、 自動化のためのスクリプトを書いて動かす環境として Node.jsは手軽だし速いし色々ライブラリは揃ってきているし なかなか良い環境だと感じている。 Web系の仕事をしていればJavascriptは…
ついこないだまでJavaでのPDF出力にはpdfboxを使っていて、 なんでPDF文書作成っつーのはこんな大変なんだ! いちいち座標で指定させるんじゃねー! PDF出力嫌い!大嫌い! となっていたのだが、JasperReportsと出会って変わった。 何とJasperReportsを使う…
新しいチームでデータベースマイグレーションの仕組みが決まっていなかったので、flywayを導入してみた。 結論としては手軽で十分使えそう。 データベースマイグレーションとは 本来のマイグレーションの意味とは異なるかもしれないが、 データベースマイグ…
仕事でチーム間のコミュニケーションツールとして使い始めたチャットワークだが、 最近は「いろんなサービスやスクリプトからの通知を集めるツール」としての利用がメインになってきている。 www.chatwork.com 以前記事にした、 「Subversionのコミット情報…
ブログを書いていると、 自分が書いた記事にどれくらいブックマークがついているかが 気になるものである。 はてなブログでブログを管理している場合は、 ブログ管理画面や「はてなのお知らせ」というChrome拡張で ブックマークされたことを知ることができる…
Mapの内容をコンバートする方法を調べてたら、StackOverflowで良い方法を見つけた。 stackoverflow.com Mapのキーをキーワード化する時の方法についての相談で、下記のようなintoとforを使った方法が紹介されてた。 (into {} (for [[k v] my-map] [(keyword …
Clojureの練習を兼ねて、Excelでデータを編集して簡単にデータベースに 反映できるLeiningenアプリケーションを作ってみました。 pirosuke/clj-xlsx2db データベース操作にはKormaを使ってるのですが、 使いやすくて気に入ってます。 使い方 コマンドを指定…
Twitterに記事ツイートを投稿するなら、 閲覧者が多い時間帯に投稿した方が効率が良い。 ツイートが多い時間 = 閲覧者が多い時間だろう、 ということでTwitterのAPIを使って自分のフォロワーが どの曜日、どの時間帯でツイートしているのかを調査してみた。 …
Clojure始めました。 ちょっとしたスクリプトを作成しながら勉強中です。 最初にClojureで書かれたソースを見たときは 「このカッコ地獄には絶対慣れない」 と思いましたが、 書いているうちにカッコのおかげで処理や変数の範囲が明確に なっていることに気…
AmazonのAPIを触っていて、レスポンスとして返ってきた(XMLから生成された)オブジェクトから値を取得する際にいちいちhasattrでチェックするのが面倒だったので、そのパスがなければデフォルト値を返す関数を作った。 見つけられなかったけど、標準ライブ…
職場はメイン言語がJavaなので、プロジェクトでPythonを使う機会は ないのですが、キャプチャを撮ったりExcelを操作したりする作業を 「こっそり自動化」するスクリプトをPythonで書いたりしています。 最近はSE作業で何かとExcelを使うことが多いので、 Exc…
昨日の続きでScrapyをさわる。 ちなみに、昨日Linux環境にインストールする時は苦労したが、 今日Windows環境にpipでScrapyをインストールしてみたら、 何ひとつひっかからずにインストールが完了した。 ともあれ、ようやくScrapyをインストールできたので、…
ひとつPythonでWebスクレイピングでもやってみようかとScrapyをVPS環境に入れてみたところ、インストールするだけで手間取ってしまった。 環境はPython2.7.3で、インストールしてから特に何も設定していない状態。 本サイトに書いてある通り、まずは pip ins…
あるリストを元に、それと似た内容を持つリストをデータベースの中から探したい、 というケースはいくつか考えられる。 例えば、 いくつかの商品を組み合わせて作ったセット商品のうち、今見ている商品と同じような構成のものを探す SNSで自分と同じようなフ…
会社のノートパソコンの調子が悪くなってきたので、新しいパソコンに移行中です。 環境はWindows7。 色々とアプリをインストールしなおしたりデータを移行したり必要があるので、 整理ついでに開発関連ツール等自分が使っているアプリと最新版入手場所を ま…
作業履歴が入ったデータベーステーブルから、 案件情報を行に、作業内容(「設計」とか「PG」とか)を列に、 案件別作業内容別合計時間を値として持つピボットテーブルを作成して Excelで確認する必要があったので、以前から興味のあったPandasを 使ってスク…
ある開発プロジェクトで、 非技術系のメンバーにも進捗を知っておいてもらいたいものの、 「お前らSubversion入れろ」とか「リポジトリログを見ろ」といっても見そうになく、 いちいち伝えるのも面倒大変そうだったので、 Subversionにコミットがあったらメ…
個人的にNode.jsを習得しようと色々調べてた時に 仕事でWebアプリの速度改善の依頼が飛び込んできたので、 Node.jsでHTTPリクエストのレスポンス時間をチェックしたい時は どう書くのかな、と調べてみた。
とあるWeb開発プロジェクトで WBS(Excel製)に書かれた、機能ごとの開発担当・開始日・期日・予定工数を そのままRedmineのチケットとして登録するという、 手作業でやったらえらく時間のかかりそうな作業があったので、 RedmineのAPI経由でチケットを一括登…
Node.jsのRESTクライアントモジュールを試すため、 以前Groovyで作成したBit.lyの履歴を取得するスクリプトをNode.jsで焼きなおしてみる。 「node-rest-client」というモジュールを使用した。 get_bitlinks.js var RestClient = require('node-rest-client')…
そろそろNode.jsスクリプト作成にも慣れてきたので、 簡単なWebアプリ作成に挑戦してみた。 Meteor、MEAN.js、Sails.jsなど色々あって迷ったけど、 まずはシンプルにExpressを使ってみる。 MongoDBコレクションに保存された情報を Webページ上に一覧表示する…
MongoDBの勉強を兼ねて、Apacheのアクセスログを後でログ分析や ビジュアライズに使えるようにMongoDBにインポートするスクリプトを書いた。 下記のスクリプトはログファイルを行単位で読み込んでMongoDBの 特定のコレクションに登録する。 行単位のファイル…
先日別のチームから、 「PHPで作成したWebアプリの速度が遅いので助けてくれー」 という相談を受けた。 対応したものの、結構時間がかかって面倒だったので、 今後こういった問題が起こった時に使えるよう、チェックリストをまとめてやった。 基本的な内容だ…
ExcelなりWordなりテキストエディタなりメールなりで作成した文書を PDF化するに使える無料ツールです。(Windows用) 無料PDF作成・変換フリーソフト CubePDF インストールするとプリンタとしてCubePDFが作成され、 印刷時にそれを選択することで文書をPDF…
Nashornというのは、Java8に同梱されている新しいJavascriptエンジンで、 Javaライブラリを呼び出して利用するJavascriptプログラムを作成することができる。 Node.jsで適当なライブラリが見つからない場合やJavaライブラリに精通していて ちょっとしたスク…
Javascriptがプログラミング言語としてどうか、ということはさておいて、 「もうJavascriptさえ覚えておけば何でもできるんじゃない?」 というくらいJavascriptでできることが増えているので、それをまとめてみる。 Javascriptでできること Webサイトのクラ…
node.jsはWindowsでもLinuxでも同じスクリプトが そこそこ安定して動くので嬉しい。 今回は、ExcelJSモジュールを使って、 Excelのシート一覧を出力するスクリプトを書いた。 リダイレクトでファイルに出力できる。 簡単なスクリプトだけど、こういうものを…
Web開発を仕事にしていると 「マニュアルやプレゼンに使うのでWebアプリのスクリーンショットをくれ」 と依頼されることがよくある。 ChromeのFireshotのようなブラウザの拡張機能を使ったりすれば 1画面ずつ撮っていけるのだけど、 chrome.google.com たく…