「最初に学ぶべきプログラミング言語」 - mizchi’s blog
- 「環境構築」に100%成功する(AppStoreからダウンロードするだけ)
- PC不要
- Ruby
なので拙作のRubyPicoをすすめてみます。
本格的にやりたくなったらPC買ってRubyに移行もできるよ。
「最初に学ぶべきプログラミング言語」 - mizchi’s blog
なので拙作のRubyPicoをすすめてみます。
本格的にやりたくなったらPC買ってRubyに移行もできるよ。
購入したepubをKindleに送ろうと思ったら、数ヶ月前にPCを乗り換えたのでcalibreがインストールされていなかった。
しかたないので昔書いた記事を見ながらcalibreを再インストールする。意外とブクマついてたので覗いてみると
変換だけなら公式のkindlegenの方が手軽かと。 http://b.hatena.ne.jp/entry/136255446/comment/hageatama-
これは便利そうなので試してみよう。
KindleGen v2.9をダウンロードして
$ unzip KindleGen_Mac_i386_v2_9.zip $ mv kindlegen /usr/local/bin/
これでインストールは終了。Windows, Linux, MacOS 用が用意されている。
$ kindlegen scheme-in-ruby.epub ************************************************************* Amazon kindlegen(MAC OSX) V2.9 build 1028-0897292 A command line e-book compiler Copyright Amazon.com and its Affiliates 2014 ************************************************************* Info(prcgen):I1047: Added metadata dc:Title "つくって学ぶプログラミング言語 RubyによるScheme処理系の実装" Info(prcgen):I1047: Added metadata dc:Date "2013-04-16" Info(prcgen):I1047: Added metadata dc:Creator "渡辺昌寛" Info(prcgen):I1047: Added metadata dc:Publisher "達人出版会" Info(prcgen):I1047: Added metadata dc:Contributor "高橋征義" . . Info(prcgen):I1036: Mobi file built successfully $ ls scheme-in-ruby.epub scheme-in-ruby.mobi
完成、あとはメールにmobiを添付してKindleに送りつければよい。
拡張スクリプトを追加することでGitHubに置いたスクリプトをダウンロードできるようになりました。 - 更新履歴
RubyPicoGemsの仕組みをリニューアルしました。
ongaeshi/rubypico_github
)全ての手順がRubyPico内で完結するようになりました。今までとは雲泥の使いやすさなので是非お試しください。自分が書いたプログラムもGitHubに置くことで他の人に配布できるようになります。
※ とりあえずongaeshi/app_installer
をインストールしておくとAppタブへの登録が簡単になるのでおすすめです
Image.load
でローカルファイル内の画像を読み込んだり、Image#save_to
でカメラロールの画像をファイルに保存することが可能になりました。
ということでついに、GitHubレポジトリに画像を入れてコミット、github_download.rbでダウンロード、Image.loadで表示することが可能になります。
情報が複数のページに拡散していたので1ページにまとめなおしました。スマホからでも読みやすく検索しやすくなったと思います。
App Storeからどうぞ。
2017年から日記を付け始めた。個人的にとても役立っているのでやりかたをまとめておく。
この本のやり方を真似ている。
大切な「抽出」について。今までも読んだ本や映画の記録、思いついたプログラムのアイデアなどを書き出していた。しかしそれぞれ違う場所に記録していたため記録が面倒になったり、一箇所に全てまとめるとテキストが大きくなって探せなかったりということがあった。書くときは全て日記に書き出し、10日ごとに専用の場所(例えば本の感想はブックメモアプリなど)に抽出する。こうすることで全てが記録された日記とカテゴリごとに読み返しやすい専用メモの2箇所に情報が蓄積され探しやすくなる。さらに抽出という作業を行うことで自分自身の記憶も強化されるので一石二鳥となる。
自分しか読まないからといってメモの断片の集合のような形にしてはいけない。あとで読み返しにくくなる。日記とは自分という読者に向けて書く「文章」なのでやはり読みやすい方が良い。読み返さないと日記のパワーを半分しか使えていない、みたいなことも本に書かれていた。
オーソドックスにDay Oneを使っている。ずっと昔に買って忘れていたのを見つけてそのまま使っている。
抽出作業はPCでやった方がはかどるので、テキストファイルとして保存してくれるDropbox連携は必須。
Day One は1つの日記に対して1枚の画像を付けることができる。あとで思い出すのに役立つのでどこかに行ったようなときは付けるようにしている。問題はDropboxの容量で今のiPod Touchのカメラは画像サイズが大きいため毎日撮っているとすぐに容量がいっぱいになってしまう。そこでRubyPicoを使って横幅1280になるようにサイズ調整するスクリプトを書いている。
gist086ffd836292ae4e4143242bae7f8e65
写真をとったらスクリプトを起動してリサイズ画像を作る。それをDay Oneに貼り付ける(Last Photo Takenを使うと便利)。貼り付けた画像はDay One側にコピーされてるのでカメラロール側のリサイズ画像は消す。
スクリプトはDST
の値を変えると横幅を調整できるようにしてある。記憶の手がかりになればよいので、もう少し小さくしてもいいかなとも感じている。
私の書きたい欲の大半はブログじゃなくて日記で解消するのだな、と思った。
自分を客観的に記録することができる。とりあえず書き出してみることで自分が考えていることを整理したり新しい事実に気がつくこともある。
もやもやすることがある時にブログを書こうとすると外向きの文章なのでなかなか筆がすすまないことがある。日記だと「こんなこと書いちゃっていいのかな?」と考えずにストレートな気持ちを書き出しやすい。あとで読み返すことで気持ちの整理もできる(炎上もしない)。他の人にどうしても聞いて欲しいことがあればそのあとでブログに書けばよい。そういえば昔もそんなこと書いてたな。
自分専用のメモを作って簡単に検索出来るようにする - ブログのおんがえし
メインのメモ帳のTiddlyWikiは割とテキスト断片の集合として使っているため読み返すのに向いていなかったと感じる(そういえばTiddlyWikiに書いていた箇条書きの作業ログはほとんど読み返したことがない)。作業ログやTODO管理には引き続きTiddlyWikiを使いつつ、読み返すための文章として日記を書いていこうと思う。
去年に引き続き、TiddlyWiki備忘録の2017年版を作りました。
以下に書きました。
zipアーカイブを展開します。memo.htmlが入っているのでブラウザで開いて下さい。
要望や不具合、使ってみた報告など頂けたら、2018年版を作る時の励みになります。
書評を上手に効率よく書くための「型」を身につけたくて手にとった。
筆者は2012年8月から「ライフハッカー」で書評コーナーを担当しており月曜日から金曜日までの毎日、月に20本もの書評を書いている。年間250冊以上の書評を書いている計算になり少なくとも週に5冊(実際には1日1冊以上のペースで読んでいるらしい)以上インプットする必要がある。2016年12月にサイトを覗いてみると引き続き同じペースで書かれているようなので今まで1000冊以上の書評を書いていることになる、すごい。
このような高負荷なインプットとアウトプットをこなせている筆者のテクニックは、趣味として書評をもう少し書きたいと思っている自分にとっても価値があるように感じた。
読書を、情報摂取モードと読書体験モードに切り替えているんですよ。
書籍の中でなんども言及されていたのが「たくさん読みたければ、何かを諦める必要がある」ということ。たくさん読んでいる人は全てを精読しているわけではなくいくつかの本は流し読みして情報摂取に勤め、本当に読みたい本は丁寧に読むということだった。これは本を読むのが好きで流し読みするのがなんとなく冒涜のように感じてしまう自分にとっては結構衝撃的だった(今でも少し抵抗感はある)。
さておき、本を読んでいてページ数を増やすために追加された章だなと感じることはたしかにあるので、本当に必要なことを効率よく取り出すために流し読みする勇気が自分には必要なのかもしれないと思った。本文にあった一節が胸に刺さる。
「義務的な精読」は、効率的なように見えてとても非効率的
思い返すとちゃんと読まないといけないと思って買うのを諦めた本、読み切れないからという理由で積読した本がたくさんあることに気がつく。それなら購入して本当に必要な1章だけを読んだ方がよかったのかもしれない。
技術書の場合は隅から隅まで役に立つということはまれで1/4くらいのことはなんとなく知っていて、半分くらいは自分にとって今は必要ないこともしくは難しくてわからないことで、本当に役に立つのは残りの1/4くらいということが結構ある。
例えばDockerの本が売っていて全部読む気はないけど、今知らなくてすごく知りたいトピックが目次に載っていたら購入して読んでそれで終わり!みたいなやり方をしてもいいのかもしれないなぁ。
筆者の書評のテンプレートが紹介されていてよかった。
署名、著者名、出版社名、内容説明 ↓ 引用 ↓ 解説 ↓ 引用 ↓ 解説 ↓ まとめ
最初に書籍の概要を書いてから引用を使いながら面白かったところを紹介していく。あらかじめ本を読みながら引用したい文章があったら線を引いたりドッグイヤーをしていくとよい。読み終わったら引用したい箇所を集めたり書きたいことの断片を書き出しておく。
実際に本を読んで書評に落とし込むまでの流れ。必要事項をあらかじめ入力する、一気に書ききる、修正は全て推敲で行う、などが参考になった。
筆者はライフハッカーの読者が本に対して感じていることを以下のように分析している。
「できれば、時間をかけて読み込みたい」
「そして、そのなかから自分に必要な情報を効率的に抽出したい」
「でも現実的に、それはとても困難なこと」
というジレンマのなかにいる
的確で素晴らしい分析だと感じた。引用を多用するスタイルは中身を短時間で知りたいという読者の気持ちに答えるために生まれたもののようだ。私が書く書評もこのように読者の問題を解決するものでありたい。
RubyPico 0.9.2 をリリースしました。irbをエディタ画面を経由せず実行できるようになったり、自分の作ったスクリプトをアプリとして登録できるようになりました。
他にもPOSTメソッドを呼び出せるBroser.post
や、複数選択肢の中からタップさせて結果を返してくれるchoise
など楽しいAPIがたくさん組み込まれました。
今まであった File, Sample に加え、新たにAppタグが増えました。ここに表示されたスクリプトはエディタ画面を経由せずに直接実行されます。スクリプトの中身を確認したいのではなく実行した結果に興味があるときは大変便利です。
irb, lineno が標準でアプリ化されています。特にirbは動作を確認したいときや簡易電卓として頻繁に使う人が多いのではないかと思います。
自分で書いたスクリプトも簡単にアプリ化することができます。ルートディレクトリに.app/
というフォルダがあるのでその中に置かれたファイルが自動的にアプリタブに表示されます。irbやlinenoが不要な場合は消すことも可能です。
.app/内のスクリプトは.rb
が付いていませんが、普通のRubyスクリプトとして実行されます。もちろん直接プログラムを書いてもよいのですが、プログラム本体は別の場所におき.app/
以下はrequireだけを呼ぶようにしておくのがおすすめです。
require 'sample/irb'
RubyPicoの特殊ルールとしてrequire 'sample/xxx'
と呼ぶとSampleタブにあるコードをrequireすることができます。それ以外はルートディレクトリからの絶対パスでrequireしたいファイルを指定します。例えば/foo/bin/main.rb
をAppタブに置きたい場合は以下のように書きます。
※ 新たに追加されたCopy
ボタンを使って他のアプリを流用すると簡単です
# .app/foo に置く require 'foo/bin/main'
Appタブを使うと自分や他の人の作ったスクリプトを簡単に呼び出すことができます。また.app/以下にファイルを作るだけなのでインストール自体もRubyスクリプトで書くことができます。面白い機能なので是非使ってみてください。
今までBrowser.get
やBrowser.json
を使ってGETメソッドを送ることはできていましたが、POSTメソッドも送信できるようになりました。以下のようなことができるようになります。
ちょっと不思議なメソッドです。文字入力なしでユーザーが選択できるようになるためスマホらしいUXが作れるのではないかと期待しています。
choise
を呼び出し以下はサンプルコードです。提示された選択肢をタップしていくことでプログラムが進みます。(アドベンチャーゲームとか作れそうです)
puts "What your birthday?" r = choise(%w(Jan Feb Etc)) if r != "Etc" puts puts "Hello, #{r}" return end puts "Sorry" r = choise(%w(Mar Apr Jun Jul Etc), with_no: true) if r!= "Etc" puts puts "Hey, #{r}" return end puts "Oh, Sorry" r = choise(%w(8 9 10 11 12), combine: true) puts puts "Yah, #{r}" r = choise(%w(1 2 3).map { |e| e + "\n" }) puts r
実行結果です。
App Storeからどうぞ。
個人開発者 Advent Calendar 1日目に参加しました。