2016-07-17

Itamae でレシピとリソースに共通のヘルパメソッドを定義するテクニック

Itamae 使ってますか?

Chef のような Ruby の DSL による気持ちのいい書き心地と、Ansible のようなシンプルさを兼ね備えており、わたしのお気に入りの構成管理ツールです。

レシピとリソースにヘルパメソッドを追加したい

ある程度 Itamae のレシピが増えてくると、コードを DRY にするために、特定の処理やデータをメソッドとしてくくりだしておいて、各所で使いたくなることがあります。

Itamae は結局 Ruby なので、この目的を達成する方法はいろいろあると思います。この記事では、それなりにキレイと思われる、レシピとリソースに共通のヘルパメソッドを定義...

2016-07-16

Node.js と AWS (S3・Lambda・SES)を使って CLI アップローダを作ってみた

Architecture

AWS の API であそぶ

ちかごろ、業務で本格的に AWS と向き合う機会が増えてきました。AWS の API を使いこなしていろいろなものが作れるようになりたいなと思ったので、前から遊んでみたかった Lambda を使って、CLI で使えるファイルアップローダを作ってみました。

ファイルの受け渡しがめんどくさい問題

ファイルアップローダは巷にたくさんありますが、たいていがブラウザベースで、わたしにとって使いやすいものではありません。CLI でシュッとファイルをアップロードしてメール送れたらな〜と常々思っていたのですが、ある日天啓が。

「AWS の API の勉強がてら、S3...

2016-05-14

Arch Linux の ufw を 0.35-2 にアップデートするときの注意点

Linux でのファイアウォール

Linux でファイアウォールを実現するためにはいろいろな方法があり、ユーザの好みや実現したい目的によってツールを切り替えることができます。挙動を細かくいじりたくて iptables を直接操作するのが好きな人もいれば、firewalld や ufw といった iptables のフロントエンドを使って、楽をするのが好きな人もいます。ちなみにわたしは Arch Linux で ufw を利用しています。

週 1 くらいのペースでパッケージのアップデートをしているのですが、今日 (2016-05-12) ufw を 0.34-1 から 0.35-2 に...

2016-04-27

LGTM 用 gif アニメをシュッと探せる Selemene 0.2.0 をリリースしました

LGTM 用の gif 画像をパッと探してポッと貼れるアプリを Electron で作ってみました で紹介した Selemene をアップデートしました。

Your inventory of animated gifs for LGTM. を実現すべく、いちばん欲しかった倉庫機能を実装しました。以下の GitHub ページからダウンロードできます。

Release v0.2.0

倉庫機能

検索画面で適当にポチポチ F キーを押すと、gif アニメをお気に入りして倉庫にしまうことができます。また、L キーで倉庫画面に遷移して、検索画面と同じように、倉庫にしまった gif アニメ...

2016-04-10

Travis CI + Ruby 2.1.10 環境下で curses gem のビルドが落ちる問題のワークアラウンド

TL; DR

.travis.yml に以下のセクションを追加するとビルドが通ります。docker container を使っていない場合は、before_install セクションで sudo apt-get install -y libgmp-dev などとするとよいでしょう。

addons:
  apt:
    packages:
      - libgmp-dev

ワークアラウンドを見つけるまでの道のり

ことの発端

先日、Ruby 2.1.9 および 2.1.10 がリリースされたので、拙作のアプリ、rbtclk の .travis.yml ファイルに 2.1.10...

2016-04-07

いまさら「リーダブルコード」

(image from https://www.oreilly.co.jp/books/9784873115658/)

春もうららか、読書が気持ちいい季節になってきました。しばらくの間、夏ぐらいまで自由な時間が増えるので、積んでいる技術書を崩していく活動を始めました。

その中で、プログラマなら誰でも知ってるであろう、「リーダブルコード」をいまさらながらキチンと読んだので、印象に残った部分を読書メモとして残しておきたいと思います。

気づき

全体として 4 部に別れており、第 1 部で「表面上の改善」、第 2 部で「ループとロジックの単純化」、第 3 部で「コードの再構成」、第 4...

2016-04-02

say コマンドでつくる簡単なデスクトップ通知

OS X に付属の say コマンドを利用すると、任意の文字列を計算機にしゃべらせることができます。say コマンドと OS X のデスクトップ通知、bash の function を組み合わせることで、デスクトップ通知をするためのシンプルなコマンドを作ることができます。

コード

以下のコード片を、.bashrc などに記述します。

function notify() {
  osascript -e "display notification \"$1\""

  if [ -n "$TMUX" ]; then
    reattach-to-user-namespace say 
2016-03-27

LGTM 用の gif 画像をパッと探してポッと貼れるアプリを Electron で作ってみました

Node.js & Electron デビューしたかった

最近、JavaScript 周りのフロントエンドがアツいですよね。

仲のいい人たちがフロントエンドで盛り上がっているので、彼らが何を言ってるのかを理解できるくらいには、フロントエンドを嗜んでおきたいという気持ちになりました。

思えばわたしの JavaScript 観は 2000 年代で止まっていて、業務でも jQuery を採用しているコードを触っているのます。なので、そろそろ生 DOM をゴリゴリいじくりたおすのとは違うパラダイムを学んでみよう、というのがことの発端です。

そして、どうせ JavaScript 周辺の...

2016-03-23

懐かしの blink タグを復活させる Firefox アドオン

Web 1.0

Web 2.0 もすっかりと錆びてしまったバズワードですが、Web 2.0 がさけばれる以前のインターネットは、今思えばたいへん情緒あふれる世界だったように思います。

原色バリバリのたいへん目にきびしいカラーリングに、marquee タグに囲まれた文字が画面をさっそうと駆け抜け、blink タグで装飾された画像がビカビカとその存在をアピールし、踏み逃げ禁止のウェブサイトで後ろめたい思いをしながら踏み逃げをしたあの頃。

なにもかもが、なつかしいです。

blink タグ

Web 1.0 を彩ってきたウェブ技術の中でも、<blink> タグはきわめて印象的なものの...

2016-03-21

Travis CI の docker image をローカルでビョーンとしてみました

Docker
(docker くじらくんかわいい💓)

TL; DR

ちょっと複雑なビルドプロセスを Travis CI に任せようとしたときに、いちいち新しいブランチを作って merge して.. みたいな繰り返しがイヤになってきました。

Travis CI で使われている docker image が公開されているので、それを使ってビルドプロセスの検証をちょっと楽にしたときのメモ書きです。

まえおき

.travis.yml をゴリゴリいじっているときに、Twitter にそれがつらい旨を書き込んだら、ソフトウェアをつくる犬の @Linda_pp さんがオトク情報を教えてくれました。