iPadでクラウドIDE

どこでもプログラムを書きたい!

ちょっと旅に出たり、仕事(今は無職だけど)で出かける時には、自分のMacBookを持って行くことが多い。思いついたときに文章書いたり、コード書いたりするのにキーボード使えるからだ。

それでもちょっとその辺に外出したりする時、さすがにノートPCは持ち出さない。面倒じゃないかあ。

その場合、便利なのがiPad

これまで私の場合、iPadはちょっとしたメモ書いたり、下手な絵の練習したり、電子書籍ビューアとして使う程度だった。でもちょっと出先で思いつくことって、結構あって、コードを試したりする環境は必要だよなって思っていた。

しかし残念なことにiPad単体で可能な開発環境はそれほど充実していない。PythonLuaPHPはあるけれどGitHubとの連携できるわけではなく、うちに帰ってから己のPCで再編集するのにも手間がかかる。

それならばクラウドで使える開発環境をということで、いくつか調べてたところ、それほど遅くなくiPadでも充分使えそうなのは

codeanywhere.com

のようだ。ちゃんとアプリもあるしね。 もし有料コースに移行してもお値段は他に比べて良心的に思える。

とりあえず登録してRuby環境を整えてみたところだ。

書籍のカイカタ

書籍の買い方って、人ぞれぞれだと思う。

ここで言っている買い方っていうのは、大別すると電子書籍だったり、通常の紙ベースだったり、版元からの購入だったり、はたまた定番のAmazonだったりすることだ。

電子書籍でもKindlerなどに代表される専用アプリや端末を使うタイプと PDFやEPUB配布の場合があるよね。

私の場合、大抵はジャンルや読みたい場面に応じた買い方をしている。

・技術書

Amazonで検索したら、まずは版元のサイトでPDFやEPUBで出版されていないか確認する。 PDFやEPUBがあったら、できるだけ版元で購入する。

<理由など>

技術書特にTech系の本は流行り廃りが早く、紙ベースの書籍だと後々本棚ばかり食い尽くしてしまう。 PDFやEPUBは検索が可能。Kindle版は場合によっては、固定レイアウトのことがあり不便なこともある。 特に洋書の場合、版元で購入した方が安価になることが多い。

ライトノベルや漫画等

巻数と作品への思い入れ、まとめ買いしたときの価格によって、電子書籍か紙ベースかを決める。 電子書籍の場合はたいていiBooksKindle

<理由など>

まとめ買いかつ紙ベースの場合はたいていAmazonで買う。特に完結している場合は古本ゆえ安価で入手できる傾向がある。 巻数が20巻越えてしまうような作品は、本棚に収納できないので電子書籍を購入する。 電子書籍ラノベは個人的にはKindleよりiBooksのほうが読みやすく感じる。

・文芸系や通常の書籍

たいていは電子書籍で購入する(KindleiBooks) 歴史書など専門的な事柄を扱っている書籍は、残念なことにほとんど電子化されていないため紙ベースで購入。

<理由など>

かさばってしまうからできる限り電子書籍。 専門的な書籍は....まあ、電子化されてないから紙ベースですね。

電子書籍について

同じ電子書籍でもKindleiBooksでは微妙に見やすさが違ったりするし、どの端末で読むか・読みたいかという場面に応じて、購入先を換えてみたりはよくあります。

函数プログラミング再入門にあたって

どうして再入門なの?

これまではどちらかというと自分の業務の一部である事務作業の一環として、PythonやCL(CommonLisp)でExcelファイルやCSVファイルをいじってきたけれど、4月から無職になり、たぶん今後は事務をするような業務に就くことはできないだろうと思われるので、自分の特性に合ったやり方で、仕事に関係なく成果物を作っていった方がいいと思ったからだ。

それに何か学ぶということや、何か育てる(ソフトウェアは育てるモノだと思ってる)って、いつまでもウジウジしないで、前向きになれるきっかけになるからね。それが関心のあることならなおさら。

特性と函数プログラミング

私自身、妙な特性がある。それは一見関係ない事柄やモノの共通点を見いだすことや、それらを関連付けることで問題解決したりすることが子どもの頃からとても好きだったし、得意だった。過去、実務に役に立つこともあったし、そうでないように思われることもあったけれど。 また単純な業務でのどうすれば効率あがるのかとかを考えて、工夫して、やってみる過程を愉しむ変わり者です。 前述したうちの「共通点を見いだすこと」や「関連付け」って、実は「抽象化」のことだって、最近になって知った。己自身ではこの特性をうまく端的に説明できなかったので、今更ながら目からうろこだ。

函数プログラミングはその抽象化が一番の肝だと思う。 ほんとの函数プログラミングの強みは「それは何であるのか?」とか「これとそれはこういう関係だよ」とかを上手く表現できる点にあると思うし、データを作りやすい。これはPythonなどで気にするような「何をどうしてこうするのか?」とは大きく違うところだ。 もちろん函数プログラミングとはいえ、手続き的な部分だってあるのは知ってるけれどね。 それに私はけっこうおっちょこちょいだ。型システムがしっかりして厳密な方がありがたい。また幸いにもREPL環境がある処理系が多いため、ボトムアップに組み立てていけるのが強みだ。

だからこそ、函数プログラミングにのめり込んでみようと思ったのだ。

ほどいいテキストが増えてきた

「変数は変更できない」とか「ループではなく再帰」とか「モナド」とか「高階」とか...。 難しい数学的概念もあるけれど、それはそれだ。数学的概念は研究者にまかせておけばいい。 私がしたい・やりたいのは「何を上手く作れるか?」、「楽に作れる」こと。

函数プログラミング言語の代表といえば、Haskellだけど、以前はある程度「用語についていける」とか、小難しい数学的素養がないと読めなかったり、「他言語経験者」をターゲットにしてる書籍が多かったように思う。有名な「 すごいHaskellたのしく学ぼう! 」はわかりやすくはあるが、ペースが速く例題的なものも多くはないから、プログラミング初学者や函数プログラミングが初めての人にはそれほど向いているように思えない。

最近、英文だけど初学者向け・再入門向けのよいテキストをいくつか見つけたのでご紹介しておく。

HaskellBook [Haskell Programming - Home] 細かく手とり足とり丁寧にGHCi使って説明している。例題や考えてみよう的な例がたくさんある。 まだ未完の模様。

Happy Learn Haskell Tutorial [Happy Learn Haskell Tutorial] 函数をパズルのピースのように捉えて図解して説明している。概念的にもわかりやすいが未完。

Haskell Cookbook 基本的なことはもちろん、Stackの使い方や中級程度のことまで。「あれ?これって?」って思う時にも使える。

さて時間がある今のうちに...。