読者です 読者をやめる 読者になる 読者になる

面白コンテンツ探求日記

ラーメン食べたい

WWDC2016期間限定のセール情報

WWDC2016を記念してアプリや開発関連の本がセールになっていたのでまとめた。

Paintcode

Reveal

VMWare Fusion

Tower

Tower - The most powerful Git client for Mac

書籍など

他にもやってるかなと思って有名どころのアプリをStoreで見たけど、意外とやってなかった。

QuipでMarkdownドキュメントの作成管理をしはじめた

Mac Markdown

一つのツールで文章作成・管理をしたい

普段文章を書くときは、社内ドキュメント・ブログ・Qiita・メモいずれもMarkdown。だけど書くツールAtomだったりKobitoだったりとバラバラ、保存する場所もバラバラだったので、いい加減同じツールで同じ場所に蓄積していきたいなーと思い、Quipというツールを試してみた。

Quip

Quip

Quip

Quip

  • Quip
  • 仕事効率化
  • 無料

日本では全く話題になっていないけど、創設者は初期のGoogle Maps開発、昔懐かしのFriendFeed立ち上げ、FacebookのCTOも務めたBret Taylor氏ということで前からうっすらとウォッチしていた。

しかし長らくiOSアプリのみという展開で、Macアプリ無いなら選択肢にならんなーと思っていた。ところが去年の夏頃これが出ていたらしく、使ってみたらとても良い感じ。

良いところ

f:id:horimislime:20160418111601p:plain

Markdown記法にコードブロックもサポートされているので、技術的なドキュメントを書くのにも不自由なし。MaciOSクライアントのクォリティがとても高くて、PC・モバイルどちらからも文章編集がしやすい。ファイルの整理も簡単な操作でフォルダ分けできるようになっているので、必要な機能は全て揃っている。この記事もQuipで書いた。

Quipで特徴的なのが、Markdownで書いたらその場でRitchテキストのように整形して表示してくれる点。書いたMarkdownがその場でプレビュー表示されるような感覚。普通のMarkdownエディタは編集画面とプレビュー画面を行ったり来たりしないといけないのが面倒で、普段はほぼプレビューをしていなかった。Quipの場合編集しながらその場で簡易的にプレビューができて良い。

f:id:horimislime:20160417231250g:plain

Quipのサイトにも書いてるけど、このツールは単なるMarkdownエディタじゃなく、社内などで複数人によるドキュメント共同編集を簡単にする事が主眼になってる。だからチャットとかコラボレーション機能が盛り沢山なんだけど、UIはとてもシンプルで一人で使う分にも邪魔な感じはしない。

最近の文章を書くワークフロー

そんなわけで、今は個人ブログ、社内ドキュメント、MTGの議事録、思いつきのメモも全てQuipに書き残すようにしてる。文章が固まってきたらMarkdown形式でExportし、あとはQiitaなりesaなり、はてなブログのエディタに貼り付けて公開。完了したものはフォルダに分類して整理するようにしてる。

画像貼り付けは各サービスのエディタ上でやらないといけないのは仕方ないんだけど、ちょっと不便。だけど一箇所にあらゆる文章を集約して管理しとくのは何かと便利。

他のエディタとくらべてみて

最近はQuiverとか話題になってて試してもみたけど、Cellという概念に慣れなかった(いつもMarkdownで書くと決まっているのに、毎回本文を書き始める際にMarkdownのCellを選択しないといけない)のと、Tagによる文章の分類に馴染めなかったためQuipに落ち着いた。あとは単純にQuiverよりQuipのUIがシンプルで好みだったというのもある。

まとめ

Markdownを書き溜めていく場所としてQuipが良さげという話でした。エディタ環境は定期的に目新しい物が出ては試して、あまり一つの環境を長く使ってこなかったけど、Quipはアプリケーションの出来とマルチプラットフォーム対応が秀逸なので長く腰を据えて使っていきそうな気がする。

食洗機買ったらライフがチェンジした

家電 日常

これ買った。まだ一週間くらいしか運用してないけど、とにかくライフチェンジングすぎてヤバイ。

前々から買おうと思いつつ躊躇してた理由と、実際使ってみた感想は以下。

めっちゃ場所取りそう

f:id:horimislime:20160402195057j:plain:w600

めっちゃ場所取る。台所がオマケで付いてきたような一人暮らし用マンションだと置けない(前の家だったら絶対置けなかった 意外と盲点なのが高さで、自分が買ったこのモデルは扉が上に開くタイプでけっこうギリギリだった。

綺麗に洗えるのか?

米粒のがっつり付いた茶碗とかもツルツルになる。食洗機って汚れけっこう残りそう、みたいな印象があったけど今のところ洗い残しは全然気にならない。高温で洗浄するから油汚れとかもしっかり取れて、除菌効果も高いらしい。

タッパーだけは素材が相性良くないのかあんま綺麗にならなくて、フタとかを除いて手洗いしてる。まだ試してないけど、洗浄温度調節すると綺麗になるのかも。

お金かかりそう

一応商品の宣伝文句では手洗いより水道代も節約できる・・とは言ってる。・・けど自動化できる恩恵を考えたらちょっと手洗いより光熱費かかってもいいかなとは思ってる。

初期費用に関しては大体6万前後なので、ドラム式洗濯機とか買うよりかはだいぶ手頃。

あんま入らなさそう

f:id:horimislime:20160404012148j:plain:w500

普通の食器は一食で出る4〜5人分の汚れ物は入れられそう。今は毎食後二人分入れてるけど、けっこう余裕あるので炊飯器の釜も一緒に入れたりする。食器が少ない時はフライパンも入って便利。

使ってみて思ったデメリット

音がけっこう気になるので、ワンルームで台所とリビングの仕切りが無い家だと気になるかも。どれくらい大きいかというと、台所のすぐ横にテレビがあったりすると音がかき消されるレベル。うちは仕切りが無いタイプなので、今は寝る前とかに稼働させて寝室のドアを締め切るようにしてる。

雑感

土鍋とか巨大なやつは入れられないけど普段の洗い物はほぼ自動化できて、ドラム式洗濯機並みに生活が変わった気がする。たまーに大きい汚れ物が出たら手洗いしてるけど、食後に食洗機回しつつサクッと5分くらいで終わってる。

今まで平日は食器洗うの面倒で翌日まで放置してたけど、食洗機導入してからはその日にぜんぶ片付けられるようになった。良い。

Slack用botをbotkit+Heroku+RedisCloudで動かす

Slack

f:id:horimislime:20160111232309p:plain

年末にSlackのプラットフォーム化とともに発表されたbotkitを使ってChatBotを作ってみました。

内容はチャット上でタスクの開始と終了時刻を記録してどれくらい時間を使ったか振り返れるというもの。前から時間管理のためにいくつかアプリを試したり、ポモドーロもやってみたものの手になじまず、また最近はSlack上で分報チャンネルを作りそこにタスク一覧をまとめたりメモを書いていたので、時間管理もSlack上でやれたらと思ったのがbotを作ったきっかけです。今のところ便利に使えています。

botは現在Herokuで動かしており、チャットに書き込んだタスクはRedisCloudで永続化するという形をとっています。せっかくなので似たようなデータの永続化を伴うBotを簡単に試せるようにサンプルを作って公開しました。Deploy to Herokuボタンですぐに試せます。

horimislime/botkit-heroku-redis-example

free dynoで動かし続けるために

無料プランで30分以上Webのトラフィックがないとdynoがスリープしてしまいます。Botはそもそも外部からのトラフィックが無いのですぐに寝てしまう事になります。なのでわざとHTTPサーバを立ち上げ、Heroku Schedulerから定期的にアプリへcurlしてdynoを起こしておくようにしています。

http.createServer(function(request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Ok, dyno is awake.');
}).listen(process.env.PORT || 5000);

Schedulerは以下のように。[Heroku] 特定の時間帯にDynoを起動させておくためのワンライナー (Heroku Scheduler用) - Qiitaを参考にさせてもらいました。

# botを使いそうな時間帯、10:00 - 22:00 JST (1:00 - 13:00 UTC)にcurlする
seq 1 13 | grep -qw $((10#`date -u "+%H"`)) && curl http://your-app-name.herokuapp.com > /dev/null 2>&1

これを10分おきに実行しておけばOK。

botkit雑感

SlackのChatbotを作るのに特化しているだけあり、emojiリアクションを付けたりSlackappを作ったりするのがとても簡単です。Slack上で使う前提ならHubotをあえて選ぶ理由はあまり無いかも。

また会話の実装がとても簡単にできるのも気に入っています。

controller.hears('^デプロイして$', 'direct_mention,mention', function(bot, message) {
    bot.startConversation(message, function(response, convo) {
        convo.ask("デプロイ開始します。OK?", [
            {
                pattern: 'ok',
                callback: function(response,convo) {
                    convo.say('開始します');
                    // デプロイ処理
                    convo.next();
                }
            },
            {
                pattern: 'キャンセル',
                callback: function(response,convo) {
                    convo.say('やめときます');
                    convo.next();
                }
            }
        ]);
    });
});

特定のmentionで会話を開始し、続くメッセージ(okか、キャンセルか)に応じてBotがリアクションを取るというもの。自力でこれを実装すると考えるとしんどいですが、botkit だと簡単。こうした対話形式はchatopsで活用できそうですね。

今のところタスクの管理だけで満足してますが、少しずつ便利な機能を追加していこうと思います。