| @Mac/iPhone

この記事はできる! Mac OS X アドベントカレンダー 20 日目の記事でしたが遅れて書いています。遅れてすみません。


Soulver and Calca

テキストを入力するためのソフトはいま色々ある。プログラミング向けのエディターとしては Emacs と Vim に加えて最近では SublimeText や GitHub の Atom なんかもある。ただ Mac にはプログラミング用途ではないけど面白い文章を書くためのソフトがあるので紹介します。今日は計算について特化したテキストエディターについてです。ちなみに一個前に FoldingText というエディターについて書きましたのでよろしければそちらもご覧ください。

パソコンでも紙に書くように計算したい

パソコンでもチラシの裏なんかみたいに計算過程を残しながら計算したいと思うことはないだろうか。自分はある。最近はパソコンや携帯電話に電卓機能がついていて計算ができる。しかし電卓では計算を行ってしまって答えを出すと計算の過程を見ることが出来ない。一部のパラメーターを変更して計算し直したいと思うことはないだろうか。

一足 300 円の靴下を 3 足買ったら => 900円
400 円の靴下だったら?(計算し直し)

複雑な計算だったりするとこういうのうんざりしてくる。計算の過程をあとからふりかえることが出来る状態でパソコンで計算できれば素晴らしい。

そんなのを実現してくれるのが Soulver と Calca だ。この二つのソフトはテキストエディタと計算機の中間に位置するようなソフトだ。

自動車ローンなんかの計算をしていて自動車本体と別に購入時の諸費用がいろいろかかって最終的にいくらになるか、みたいな計算をするとき、いちいち表計算ソフトに数字をいれていくのはだるい。チラシの裏で筆算を行った方が早いのではないかと思うことがある。

この手のソフトは自分が知っている限り二つある。一つは Soulver というやつで、こっちの方が多分メジャーで取っつきやすい。しかし高い。もう一つは Calca というもので、こちらの方はより理系向けっぽい機能が充実してる。そして安い。

Soulver

Soulver の良いところ

  • 見た目が Mac っぽい
  • 自動的に足し算する
  • 文章から数字要素を空気読んで抜き出して計算してくれる

Soulver の残念なところ

  • Markdown で書けない
  • 独自定義の関数が使えない
  • コピペしたときに計算結果がコピーされない

Markdown で書けないのが残念だ。また式を関数として定義できないので、式の使い回しが出来ない。場合によっては似たような計算式を何度も羅列しないといけなくなる。加えて計算結果が文字情報として残らないので、コピー&ペーストで計算結果を別のところに移したいときに使えないのが不便だ。

Calca

Calca の良いところ

  • 独自関数を定義できる
  • 変数の遅延評価ができる
  • 単位が自動認識される
  • Markdown で書ける
  • 計算結果をコピペできる
  • グラフが描ける!

独自関数を定義できる

独自の関数を定義できる。式を使い回せるので DRY に計算できる。

変数の遅延評価ができる

変数の遅延評価ができる。先に計算式を定義して後から変数を定義するやつ。 Soulver にはこれができないのが結構痛い。

単位が自動認識される

Soulver は単位を事前に登録しないといけない。例えば「本」のような単位はユーザーが事前に登録すれば解釈できるがそうでなければ Soulver は文字列として処理する。Calca は数字のあとにそれっぽい文字列がくっついてると自動的に単位として解釈して計算してくれる。いきなり「3本 * 3」と打つと「9本」と単位つきで答えを出してくれる。

Markdown で書ける

独自の拡張子を持たず Markdown 文書として書けるので日頃から Markdown を使い慣れてる人には大変使いやすい。保存時も .md などプレーンテキストとして保存できるので他の人と共有もしやすい。

計算結果をコピペできる

計算結果が文章内に表示されるので、計算内容をコピペするときに便利。

calculateBMI(weight, height) = (weight in kg) / (height in m)^2

calculateBMI(75kg, 172cm) => 25.3515 kg/m^2

グラフが描ける

2時間半停めたら 500 円だとわかる

理系の人が研究とかしながらメモを取っていくときには便利かもしれないけど、一般人にはいまいちメリットがない気もする…。

Calca の残念なところ

  • 文章中の数字を計算してくれない
  • 計算するときにいちいち式の後ろに => を入力しないといけない
  • デザインがいまいち

文章中に混ぜた数字を賢く計算してくれない

式は式として書かねばならず、文章中に数字を混ぜとくと自動的に計算してくれるような機能はない。

計算するときにいちいち式の後ろに => を入力しないといけない。

これも少しの手間だがわりあい面倒くさい。しかしおかげで計算結果が文章中に表示されるので、コピペで計算内容をほかの場所にコピーするときには便利。

デザインがいまいち

Calca は技術者向けなためか装飾が最低限だった。ソフトは使ったときの心地よさとか自分との相性が大事だと思う。 Soulver の方が心地よく感じられる。

結論

Calca は高機能だけど、理科系で研究とかをやってて複雑な数式を入力する機会がある人以外には用途が少ない気がする。またぶっちゃけるとプログラム書くみたいな感じで計算やるんだったら、 Ruby で irb 起動してやるのでも十分だったりする。プログラマーが好きそうで実はプログラマーだったらコード書いて計算させてしまって利用する機会がなかったりとかそんな感じ。

というわけで僕は毎月 Soulver で金の支払いの計算とかをしています。おすすめです。

おまけ

Mac の話ではなくて申し訳ないのですが、便利な使い方としては、 iPhone 版の Soulver をインストールしておくと回転寿司に行ったときの計算が劇的に楽です。こんな感じ。

Soulver for iPhone in 回転寿司

| @Mac/iPhone

この記事はできる! Mac OS X アドベントカレンダー 16 日目の記事でしたが遅れて書いています。遅れてすみません。


テキストエディター、普通は文章を書くことに特化してる。しかし最近いろいろおもしろいの出てきてて、書いている内容を理解するやつが登場してきた。今日は FoldingText を紹介します。

FoldingText は TaskPaper を作っていた1 Hog Bay Software が開発している。 TaskPaper は前紹介したことがある。この会社は WriteRoom とかも開発してて、 Mac 好きの間では 7, 8 年くらい前に一世を風靡した。いまは Jesse Grosjean という創設者のプログラマーが一人でやってて、なかなかくせのあるソフトを作り続けている。

何ができるのか

  1. Markdown で文章書ける
    • テキストフォーマットの文章を書くという意味ではその辺のほかのエディターと大差ない
  2. 文章の編集がしやすいショートカットが割り当てられている
    • 見出しレベルのショートカット指定
    • 段落の並び替えなど( Outline Processor のような使い方が出来る)
  3. 文章を書くこと以外におまけがついてる
    • 文章書くのがおもしろくなる

文章書くのがおもしろくなる機能

セクションを隠す ( Fold / Unfold )

ソフトの一番売りの機能で名前の由来でもあると思う。今書いているセクションだけ表示して、その部分にのみフォーカスして文章を書くことが出来る( WriteRoom のコンセプトに近い)。

ショートカットによる切り替えのほかに、見出し横の #### をクリックすることで、そのセクションを折りたたんだり、タグで表示するセクションを絞り込む、といった機能がある。

Vim でも似たようなことは出来るが、予め Fold / Unfold するルールを記述しておいたり、範囲選択して Fold するエリアを指定したり、 Vim Plugin を追加する必要がある。

Fold/Unfold

ToDo

TaskPaper 形式でタスクリスト書ける。

ToDo

例.todo
  • 見出し.todo とすることでチェックリスト書ける
    • .todo みたいなやつを Modes (モード)と呼ぶ

  • done したら @done タグがつく @done(2015-12-31)
  • TaskPaper の機能を取り込んだ感じ

計算

こんな感じで計算できる。

計算例

例.calc

1 + 1 152 / 324 * 194.3 - 1000

スケジュール

行程にかかる時間を入力すると終了時間を教えてくれる。現在の行程がハイライトされ、時間が来たら通知が表示されたりする。

スケジュール 1

5:15 にスケジュールを開始していまは 5:25 なので「シャワー」の行が強調表示されている。

スケジュール 2

5:20 になったら Mac OS X の通知が表示される。

スケジュール 3

通知一覧でも FoldingText からの通知が確認できる。

例.schedule

うんこ 5 minutes しっこ 30 seconds シャワー 0.2 hours

タグをつけられる @tag-description

タグ

このように見出しやリストにタグ付けをすることが可能。タグだけで絞り込んで表示・非表示を切り替えることも可能。上述の @done の機能もタグの一種。

Vim や Emacs には手を出せないけど、というような人向け

ほかにもまだ機能はあるけど目立つのは上に挙げたくらい。動画を見るとどんなことが出来るか一目瞭然なので是非公式サイトで動画を見てみてください。

総じて FoldingText は通好みというか、シンプルなのに高機能というか、一風変わったテキストエディターだと思う。 Vim や Emacs を駆使しまくっているようなギークとは少し違う層に向けたテキストエディターだと感じる。文科系の大学教授が使ってそうな雰囲気がある。 User's Guide とかも使い方というより開発者である Jesse Grosjean 氏のテキストエディティングに対するこだわりとか哲学がにじみ出ていて、 DHH による Agile Web Development with Rails みたいな雰囲気がある。我こそはと思う人は使ってみてください。


  1. 最近開発が再開されて TaskPaper 3 を作ってる。 FoldingText のフォーカス機能を兼ね備えた ToDo リストエディターとなるみたい。 

| @Mac/iPhone

MindNode

↑に書いてあるような開発の進め方を前職でもやっていて、チームで集まって見積もりをするとき、最初はホワイトボードにタスクを書き出してプランニングポーカーしてたんだけど、だんだんマンネリ化してきたし老化によりホワイトボードに書くのがつらくなってきていたので、ディスプレイのある会議室で Mac をディスプレイにつなぎマインドマップアプリケーションを使ってタスクを洗い出す、というような見積もりの仕方をしてた。そこで大活躍したのが MindNode Pro という Mac のソフトだった。

C というタスクは最初 A という大タスクのサブタスクかと思われたが、話し合いを進めていくうちに実は B というタスクのサブタスクだった、というようなことが起こりうる。そういうときにぐいっとノードを A から B に移すということができる。 C にサブタスクがあったとしてもそれごと移動できて便利。

1026-mindnode-pro-1.gif (789×551)

マインドマップを書くのに熱中していると、マインドマップのレイアウトがぐちゃぐちゃになることがよくある。これではせっかく出したアイディアを整理することができない。この 1 時間は何だったのか、ということになる。しかし MindNode Pro ならこういうときに ⌘ + ⌥ + R を押すとツリーが整理整頓されて見やすくなる。便利。

1026-mindnode-pro-2.gif (789×551)

マインドマップは視覚的にタスクのつながりを把握できるので、非開発メンバーからの受けも良く、見積もりをするときは MindNode がないと困るという感じだった。スプリントを終えて振り返るときにも MindNode を使って KPT を出していた。みんなが同じ画面を見て思っていることをアウトプットできるのがよい。

実際に先日の minne の技術戦略カンファレンスで、元同僚のイケメンスーパー貴公子プラチナハッカー @monochromegane さんが、 minne のプラットフォームチームではマインドマップでタスクの見積もりをしてるとスライドに書いてた。タスクの見積もりやるときに MindNode を使うようにし始めたの自分で、 @monochromegane さんがドヤ顔で話してるのは多少いけすかない感じはしたけども、自分なんかよりもスーパー Go lang 貴公子プラチナハッカーの @monochromegane さんに宣伝してもらった方が MindNode の開発元としてもうれしいだろうからよかったと思う。

仕事以外でも、金がなくて金策をしないといけないときなどにマインドマップを作成してライフハッカーを気取ったりしてた。最近バージョンが 2 になって、書いたマップの内容を Markdown として出力できるようになった。こんな感じ。

CQQKNWwVAAA9zgO.png:large (1024×640)

MindNode で書いてる各ノードが見出しになって、各ノードのメモが本文として書き出される。ノードのネストが深くなるほど見出しのレベルが下がっていく。バージョン 1 の頃からブログのアウトラインのようなものを MindNode で書いて、それをテキストファイルとして書き出してから Markdown として体裁を整える、という使い方をしていたので、この機能は便利だった。

しかも Markdown として書き出せるだけでなく Markdown 文書ビューワーの Marked 2 と連携していて、書いている途中のマインドマップの内容をリアルタイムに Marked 2 で Markdown 文書としてプレビューする機能が付いている。「ファイル」 -> 「詳細」 -> 「マークの付いた項目で開く」(おそらく "Open with Marked" の誤訳)で Marked 2 でプレビューできる。

MindNode -> Marked 2

マインドマップを書いているだけでブログエントリが完成して時間が有効活用できてよい。マインドマップで草稿を書いた上に清書するなどしていたらいつまでたってもブログ記事を公開できない。アウトプット業でプライベートが犠牲になる時間も短くなり、家庭円満である。お試しください。


この記事はできる Mac OS X Advent Calendar 2015 一日目の記事でした。明日は @turusuke さんです。

毎年参加するだけだったアドベントカレンダーだけど、今年は作ってみた。できる Mac OS X Advent Calendar 2015 という。なぜこのようなアドベントカレンダーをやろうと思ったのかというと、iPhone や MacBook Air 出てからだいぶ Mac ユーザーが増えたなと感じるけど、一昔前に比べて、あまり Mac の凝った使い方をしている情報が入ってこなくなった気がする。 iPhone も iPad もなかった頃の方が Mac の便利 Tip を載っけてるブログとかいっぱいあって、毎日いろんなブログを読んで回るのが楽しかった。使いこなすのに知恵がいるけど慣れたら便利な QuickSilver とか、 $50 くらいして少し値は張るのだけど思いついたことを何でもメモしておける Yojimbo とか( Evernote なんてまだなかった)。ブログで紹介されているソフトのライセンスキーを kagi みたいな怪しいサイトで購入してわくわくする、そんな経験をするのがとても楽しかった。いまはブログ書く人減ってるし、主戦場がモバイルに移ってしまって Mac の情報を見かけることがなくなった気がする。 10 年前のあの頃のように、 Mac の話題で盛り上がれたら良いなと思って作ってみた。まだ結構空いてるので、書いてみたい人いたらよろしくお願いします。

| @Mac/iPhone

MacBook の内蔵キーボードを有効にしたり無効にしたりするやつ、よく使うけど毎回 Terminal でコマンドうつの面倒くさいので Alfred の Workflow にした。

Alfred の Workflow でシェルコマンド実行できるけど sudo しないといけないのは実行できない。調べたら AppleScript 経由だと実行できることが分かった。

こんな感じ

do script “実行したいシェルスクリプト” with administrator privileges

MacBook の内蔵キーボードの有効無効の切り替えは以下のような感じになる。

on alfred_script(q)
  set script_to_run to "sudo kext" & q & " /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext"
  do shell script script_to_run with administrator privileges
end alfred_script

これ打つと認証プロンプト出るのでそこでパスワード入力すればよい。便利。

追記

workflow にして公開しといたので使ってみたい人いたら使ってください。

| @Mac/iPhone

面白かったので便乗して書きます。

iPod 、大学3年の頃に友達が買って見せびらかしてまわってたのが最初の出会いだった。当時は自分は Windows 使ってて Apple 周辺の事情に疎く、特に iPod を欲しいとも思わなかった。

初めて iPod を買ったのは就職活動に失敗して留年していた頃だ。家の近所をぶらついていて、確か発売されたばかりで結構品薄だったのを偶然発見し、就職活動が終わって始めた居酒屋のバイトでもらった初めての給料で買った。第四世代 iPod のモノクロのやつで、ディスクの容量は 20GB だった。

iPod を買った年の冬に精巣腫瘍になって翌年の正月に病院に行ってがんだと分かり入院・手術した。病院はおそろしく退屈で病人生活を始めた最初の頃はパソコンとか持ち込んだりしてなくて、 iPod で音楽を聴くか新聞を読むくらいしか楽しみがなかった。抗がん剤の治療をするようになってからは、点滴されながらじっと iPod で音楽聞いてた。音楽聞いて抗がん剤の吐き気とかを紛らわせようとしてた。

第四世代 iPod は Apple タイマーが正常に機能して、購入からぴったり一年後に壊れてしまった。 HDD が死んだぽかったので開腹してハードディスク入れ替えたら良さそうだったけど当時はハードディスクもそこそこ高く、海外に旅行に行く直前に(飛行機に10時間以上乗るのに無音はつらかったので)第五世代の iPod を買った。こちらは 30GB のディスク容量で、カラー液晶になっていて写真を閲覧したりもできた。

第五世代 iPod は京都で半年入院してるときに重宝した。この頃は抗がん剤の副作用で耳鳴り・高音難聴に苦しんでいたのでよく音楽を聞いた。あと当時付き合っていた女性にふられたのでコールドプレイの "Warning Sign" をエンドレスリピートしながら京都の寺社仏閣を一人でふらふらと歩いて回ったりした。退院して北海道まで青春18きっぷで行ったときもひたすら第五世代 iPod で音楽を聞いていた。

第五世代 iPod は液晶から壊れはじめた。縦方向に筋が入るようになり、最終的には筋が広がって筋の隙間からのぞき見るようにして画面を見る必要があった。iPhone 3G を買ってからは歩くときは iPhone で音楽聞くようになったので、 iPod はもっぱら車の中で音楽聞くとき専用端末になった。最後はオートバックスの駐車場でドアポケットの掃除かなんかしてるときになくしてしまったっぽくて行方不明になった。

実は最初にインターネットに接続したパソコンは弟が音楽製作用に買っていた初代 iMac のタンジェリンのやつで、パソコンの原体験は Apple にあった。大学ではレポート提出とかの都合上 Windows を使っていたけど、数年ぶりに Apple 製品に触れて再び Apple 熱が高まり、 AirMac Express を買って Air Tunes で音楽聞くようになった。

iPod が画期的だったのは、 iTunes のライブラリと iPod を同期して使うところだった。それまでの MD や既存の mp3 プレーヤーは、プレーヤーに入れたい曲を選択してプレーヤーに移す、という作業が必要だった。昔の iPod の CM に、家の Mac で聞いていた音楽の続きを出かけるときに iPod で聞く、というやつがあったけど、そういう発想は他のプレーヤーにはなかったと思う。最初は馴染めなかったけど、曲のレートや再生回数が iPod と iTunes で同期される便利さに慣れると、 iPod 大勝利だなと思うようになった。2ちゃんねるで SONY のプレーヤーの悪口を吹聴して回るほどだった。

しばらく Apple 製品使ってないうちに OS X が出ていることを知り、 OS X の GUI の美しさにびっくりした。当時の Windows XP のフォントはアンチエイリアスがきいておらずシャギーだった。 OS X といい、 iPod - iTunes といい、 Mac/Apple の方が Windows/Microsft よりもだいぶ進んでいるなと感じた。 Windows に無理矢理 Osaka フォント入れたりして Mac 化したりしてた。次パソコン買うなら絶対 Mac だなと思うようになっていた。

大学卒業して入院しているときには病院があまりにも暇でノートパソコンが欲しくなったので、 DELL の安いノートとかにしたらと母親に言われたものの、どうしても Mac がいいとだだをこねて PowerBook G4 の 17 インチのやつを買ってもらった。これを使って病院でブログ書いたりしてた。ブログいじりが楽しくて PHP とか少し触るようになり( Mac は簡単にウェブサーバーを立てることができるので病院とかでも PHP のコードいじったりするのに向いてた)、結果的に Web の仕事がしたいと思うようになって今日に至っているような気がするので、 iPod 買ってなかったら Mac を欲しいとも思わなくてプログラミングをやり始めることもなく、何の能力を身につけることもないまま今も親のすねをかじってニートをしていたかもしれない。