2015-01-01から1年間の記事一覧
2015年の振り返り。 仕事 銀座で働いてた マスターになったりセンセイになったりと忙しい一年だった 企画や開発のチームが最大限の力を発揮できるように悩み抜いた一年だった 聞くこと、描くこと、伝えることでコミュ力が鍛えられた一年だった 転職せずに他…
G*Advent Calendar 2015の18日目です。 qiita.com 昨日は某社の方をゲストに迎えて闇の話をしていたためAdvent Calendarの公開が遅れました。大変申し訳ございません。 本記事では、Gradle SSH PluginやGroovy SSHをどのようにテストしているか説明します。G…
CoffeeScriptで書いたアプリをDockerイメージとしてリリースする方法を説明します。Dockerを使うとNode.jsのインストールや依存関係の解決を手動でやる必要がなくなるので、他の環境でさくっとアプリを実行したい時に便利です。 以下の簡単なスクリプトを例…
家庭を支える技術 Advent Calendar 2015の13日目です。 www.adventar.org 本記事では、我が家の家計を支える技術を紹介します。昨年も家計を支える技術という記事を書きましたが、今年は環境の変化に対応したグレードアップ版をお届けします。タイトルは有名…
Sambaで複数のパーティションをまたがる共有ドライブを公開すると、空き容量が正しく表示されない問題があります。 例えば、下表のように /home の下に複数のパーティションをマウントしている場合、 /home の共有ドライブに対する容量は10 GBと表示されてし…
Google Appsのスプレッドシートは便利ですね。特に、JavaScriptで独自の関数やトリガーを定義できるのでハックが捗りますね。本エントリではスプレッドシートで特定のカラムの更新日時を記録する方法を説明します。 題材 スプレッドシートで下図のようなタス…
Hubotはチャットの投稿を受け取って処理を実行するのに便利ですが、外部からHTTPリクエストを受け取って処理を行うこともできます。 HubotにはExpressが組み込まれており、デフォルトでは8080ポートをlistenします。HubotでHTTPリクエストを処理するには、以…
Gradle SSH Plugin 1.1.4とGroovy SSH 1.1.8をリリースしました。リトライ機構にバグがあったので修正しました(Packet corrupt errors after upgrading from 1.1.5 to 1.1.7 · Issue #77 · int128/groovy-ssh · GitHub)。バグレポートをいただけるのは嬉し…
hotchemi.hateblo.jp Gmailの迷惑メールフォルダを整理していたら、数日前にトニー・モリスからメールが来てたことに気づいた。あと、メールを読んでいるうちに、Tony Morisの一部を伏せ字にするとT○○○Morisになるという知見を得た。 ちなみに、hotchemiさん…
Spockの PollingConditions が便利だったのでメモです。 PollingConditions は条件を満たすかタイムアウトになるまで評価を繰り返してくれます。E2Eテストで別スレッドでサーバを起動してサーバがreadyになるまで待つといった場合に便利です。 import spock.…
Gradle Updateを公開します - GeekFactoryint128.hatenablog.com Gradle Wrapperを自動更新してくれるサービス Gradle Update を公開してから積み残しがいくつかあったので改善しました。 Done README 英語圏の人にも使ってもらうため、使い方やスクリーンシ…
Gradle Wrapperを自動更新してくれるサービス Gradle Update を公開します。Gradle Wrapperのようなビルドシステムは一度設定するとバージョンを上げるタイミングがあまりないのですが、新しいバージョンを使うとパフォーマンスが改善されたりバグを踏まずに…
App Storeに公開されているアプリのレビューを取り出すXSL(XML Stylesheet)を書きました。 int128/appstore-reviewsgithub.com 以下の手順で使います。 App StoreからXMLをダウンロードします。ここではApp Store XMLと呼びます。 App Store XMLをXSLTで変…
Apache httpdやOpenVPNなどで自前のSSL証明書を使うには、一般に以下の手順が必要になります。 CAの秘密鍵を生成する。 CAの自己署名証明書を生成する。 サーバの秘密鍵を生成する。 サーバのCSRを生成してCAに送る。 CAで証明書を発行する。 クライアントの…
Mountain Lion以降のOS Xでは、AppleScriptを使って通知センターにメッセージを表示できるようになりました。下記のような関数定義を .zshrc に書いておくと便利です。 function display_notification () { osascript -e 'on run argv display notification …
zshでGitのステータス情報をプロンプトに表示するにはvcs_infoを使う方法が一般的ですが、vcs_infoで得られる情報には限りがあります。そこで、git statusを使ってプロンプトを表示する方法を調べてみました。なお、OS XのGit 2.3.2で確認しています。 git s…
Docker MachineはDockerホストを構築するためのツールです。VirtualBoxやVMwareなどの仮想化基盤、AWSやGCEなどのクラウドに対応しており、環境構築からDockerクライアントの接続設定まで自動的に行ってくれます。これによって気軽にDocker環境を調達できる…
Hubotでkuromoji.jsを使って形態素解析を行う方法を調べてみました。形態素解析のライブラリは node-mecab-async も有名ですが、Mecabのバイナリを用意する必要があります。kuromoji.jsはPure JavaScriptの実装なので、Herokuに簡単にデプロイできます。 yo …
ドキュメントやWebサイトの情報は、プロダクトと同じリポジトリで管理することが望ましいですが、構成管理の都合でリポジトリが別になってしまうことがあります。そのような場合、リポジトリ間で情報を反映する手作業が発生します。例えば、 ドキュメントをH…
これまでGradle SSH PluginやGroovy SSHのドキュメントをGitHub Flavored Markdown(GFM)で書いていましたが、AsciiDocに移行してみました。やったことを記事に残しておきます。 動機 これまでソースコードリポジトリとドキュメントリポジトリを別々に管理…
ソフトウェアのリリース作業は時間が経つとともに複雑化する傾向があります。どんなに作業の自動化を推し進めても、リリース後の確認やドキュメントの更新などの手作業は残ってしまいます。また、一部の担当者しかリリース作業を知らないと、人がボトルネッ…
Chrome Extensionをストアに公開するにはスクリーンショットを作成する必要があります。バージョンアップのたびに手作業が発生してつらかったので自動化してみました。 欲しいもの 私が公開しているChrome Extensionを例にして説明します。 chrome.google.co…
公開しているChrome ExtensionをReactベースに移行してみました。これは「新しいタブ」を置き換えるもので、新しいタブを開いた時に軽くて見やすいブックマークページが表示されるようになります。 Chromeストアから入手できます。 chrome.google.com これま…
暖かくなってきて、ついつい夜更かししてしまう季節になりました。睡眠時間は翌日の生産性に大きく影響するため、なるべく多くの睡眠時間を確保したいものです。Enterprise Neetなら昼前に出社する生活を堪能できますが、そんな機会はなかなかないものです。…
Gradleはおよそ2〜3ヶ月ごとに新しいバージョンがリリースされています。それに合わせてGradle Wrapperもアップデートするとバグフィックスや新機能の恩恵を受けられるのですが、後回しにして放置してしまうことが多いと思います。 ビルドを自動化したのなら…
Jenkins Workflow PluginのDSLを拡張する仕組みを調べたのでメモします. Workflow basic stepsを参考にする Workflow Pluginはbasic stepsという基礎的な命令セットと一緒にリリースされています.basic stepsには下記が含まれます. ArtifactArchiverStep …
Gradle SSH Plugin 1.1.1をリリースしました. GradleからリモートサーバにSSHしてコマンド実行やファイル転送を行うことができるプラグインです.Groovy DSLを活用しているので,簡単にSSH処理を記述できます. int128/gradle-ssh-plugin New Features 1.1…
JavaVMで動くコマンドラインツールをHomebrewで配布する方法を説明します.JavaやScala,Groovyなどで書かれたツールをMacユーザに配布する際に役立ちます. Homebrewとは Mac OS Xで使えるパッケージ管理システムの一つにHomebrewがあります. Homebrewを使…
スマートフォンの写真を整理していたら DSC_XXXX の連番が重なってつらかったので,画像ファイルを撮影日付のファイル名にリネームするツールを作りました.RubyのスクリプトなのでWindowsでもOS XでもLinuxでも使えます. int128/rename-exif Exifライブラ…
ページを下端までスクロールしたら次のページが読み込まれるInfinite Scroll(無限スクロール)をvue.jsで実装する方法を調べてみました. 一般的なInfinite Scrollの実装方法 スクロール可能な要素の scroll イベントを捕捉して,表示領域の位置を計算しま…