2009-09-04
■ [ruby][git] githubコマンドでforkした
昨日紹介したgithubコマンドだけど、wikiやissuesをブラウザで開く機能が欲しかったので実装してみた。
- http://github.com/yhara/github-gem/ (まだ表示されてないかも?)
ここに至るまでもgithubコマンド使いまくりで、
- github clone defunkt github-gem でリポジトリ複製
- 編集
- github fork でgithub上に俺用リポジトリができて、さらにoriginがそっちに書き換えられる
- git push origin master
という感じでした。
2009-09-03
■ [ruby][git] githubを10倍便利にするgithubコマンド
現在はgit-hub gemの方がおすすめです:Route 477 - github gemからgit-hub gemに乗り換えた (2011/1/13追記)
githubはよく使うけど、プロジェクト作るのにブラウザ開かないといけないのが 面倒だなーとか思っていませんか?githubコマンドをインストールすると、 ターミナルからgithubプロジェクトを新規作成できるようになります。
インストール
$ gem install defunkt-github -s http://gems.github.com
リポジトリの作成
新しく作る:
$ github create foobar -> foobar/ 以下にgitリポジトリができ、githubにも登録される
既存のgitリポジトリから作る:
$ github create-from-local -> ディレクトリ名がリポジトリ名になり、githubに登録される
ブラウザを開く
現在のリポジトリ:
$ github home
特定のリポジトリ:
$ github yhara biwascheme
その他
あとgithubの別のリポジトリからpullしたり、networkを表示したり、pull-request送ったりなどなど。
$ github -h
あとはWikiとかIssuesとか簡単に開けるといいなぁ。
■ [book] Scalaスケーラブルプログラミング
Scalaの本としては日本初?なのかな。
タイトルから応用編なのかと思ったが、立ち読みで確認したところ、入門書のようだった。 「これ一冊でScalaのことがだいたい分かる」みたいな感じ。
4844327453
原書はこちら。「Comprehensive」「Step-by-step」とか付いてるな。
0981531601
ということは、「スケーラブル」という単語を入れたのは日本の出版社の判断だと思うけど、 Scalaの利点ってスケーラビリティなんだっけ?
汎用言語はスケーラブルでなくてはならない。同じ概念で、小さいプログラムも大きなプログラムも記述できるべきである。
[Scala - Wikipediaより引用]
ああ、なんか、僕の思ってたスケーラブルと違う(笑)。
■ [ruby] 日本人のためのMarkdown/Textile入門
Markdown(wikipedia)及び Textile(wikipedia)は、 海外で(アメリカで、か?)人気のあるマークアップ言語です。 HTMLを簡単に書くためのやつね。 どちらもgithubとかRedMineで使われてたりして、避けがたくなりつつあるので、両者の特徴を簡単にまとめてみました。
文法
まずはそれぞれの文法を見てみましょう。 Textileは「HTMLの代替」を指向していて、実にいろいろな機能が用意されているのに対し、 Markdownは「自然な見た目」を指向しているようです。 両者は似ているように見えますが、Rubyist的に言うと「HamlとRDくらい違う」と言えるでしょう。
Textile Markdown ------------------------------------------------------------ 見出し1 h1. Hello world Hello world ※空行が必要 =========== 見出し2 h2. About About ※空行が必要 ----- 見出し3 h3. foo ### foo ※空行が必要 (あるいは ### foo ###) リスト * foo * foo ※+や-でもOK ** bar * bar 順序付きリスト # step 1 1. foo ※ネストは不可 ## step 1-a bar ※複数行書ける ## step 1-b 2. baz # step 2 quux pre Sample code: Sample code: <pre> require 'hello' require 'hello' Hello.greet Hello.greet </pre> ※空白は4つ 画像 !http://a.jpg! ![Alt text](http://a.jpg) 表 |_.foo|_.bar| (<table>タグを書く) | o | x | | x | o | リンク "Ruby":http://url [Ruby](http://url) 強調 これは *テスト* だ これは *テスト* だ ※どちらも「*」の前後に空白が必要
文法の詳細については以下を参照してください。
- Textile: http://redcloth.org/hobix.com/textile/
- Markdown: http://daringfireball.net/projects/markdown/basics
実装
TexitileはPHP生まれ、MarkdownはPerl生まれですが、どちらもRuby実装が存在します。それも、複数の。 こういう時に便利なのがRuby Toolboxです。
これを見ると、TextileコンバータとしてはRedClothが、 MarkdownコンバータとしてはRDiscountが最も人気があることが 分かります。(が、githubにリポジトリがあるものが点が高くなる傾向があり、実際は BlueClothも使われているんじゃないでしょうか)
それぞれ、
$ gem install RedCloth $ gem install rdiscount
でインストールできます。
まあ実際に自分で動かすよりは、githubなりRedMine経由でお世話になることがほとんどだとは思いますが。
まとめとしては、Textileは「高機能」、Markdownは「見た目重視」。これでどっちがどっちだか迷わないはずです。
■ [misc] 7月、8月のサブブログ
7月は1件しか書けず。8月は3件。
- 白MacBookの掃除
- MacBookの掃除方法について書いた。
- 太陽と月は同じ天体ではない
- 常識(らしい)科学知識について書いた。
- ロボリスとの再会
- ロボリスという思い出のゲームと、googlabilityについて書いた。
- 脳が劣化した
- 記憶について書いた(もうちょっと気軽に更新しようかな、と思った結果がこれだよ)。
2009-09-02
2009-09-01
2009-08-30
■ [event] 第参回天下一カウボーイ大会
面白かった。ちょっと今日は脳を使いすぎたんじゃない?
いろんな人(知ってる人/初対面の人/知らない人)と話して、最近考えてたいくつかの問題についてヒントをもらった。
この世にはまだまだ考えることがあるね。
カウボーイ大会とは何か
普通の技術系イベントと、大体一緒。20分のトークと、3分のLTがある。LTは一般/学生別だった(今回は)。
トークのテーマは、コンピュータに関するいろいろ。研究系あり、実装系あり、ビジネス系あり。
LTのテーマはガジェット系(コンピュータの外のデバイスを制御するようなもの)が一番多かったかなぁ。 普段、100%ソフトウェアなクラスタにいるのでちょっと新鮮だった。
あとトーカーがすごく豪華。来年あるかまだ未定だと思いますが、いつもと違う刺激を受けたい人は参加してみるといいと思います。
final alty party THE FINAL
alty party(懇親会みたいなもの)については今回が最後だそうなのであまり書かない。一言で言うと「やりたい放題」(笑)。
会場のBGMがOwl-Zoo(しかもFM音源)で感激した。
メモ
メモです。
- 最先端のスパコンの性能が、10年くらいでコモディティになる
- そろそろ家庭で使い切れる規模を越えてしまわないか (家庭に入らない→数が作れない→コモディティにならない→つまらん)
- ご家庭で計算量爆発するようなアプリを考えないと
- クラウドの実装として大量発注してもらえればおk
- 今のペースだと2025年(だっけ)くらいにスパコンで人間の神経系が
- BiwaSchemeの性能はどれくらい出るのか
- 測ってないですすいません (アプリでまだ困るほど遅くないので)
- そういえばアセンブラの代わりにCommon Lispに落とすコンパイラとかどうか (CLからネイティブまではコンパイラがある)
- Cで手書きするよりCLの最適化コンパイラに任せた方が速いんだ(Let Over Lambda理論)
- 近年は最適化が大変になっているので、人手的な理由でCLコンパイラがgccに(あるいはIntel compilerに)追いつけない可能性が…
- マクロでどこまで畳めるのか
- 3段以上になると、define-macroの場合バッククオートが大変、syntax-rulesの場合「...」に注意が必要。
- 関数呼び出しの階層はそこで切り分けられるが、マクロ呼び出しの階層は内側のマクロを内包してることがあって切り分けられない(←まだちゃんと理解してない。書いてみないとだめだな)
- アランケイ「ちょっと2万行でOS作るわ」
- http://www.vpri.org/html/work/ifnct.htm
- 現代のソフトウェアは大きくなりすぎ(数百万行)→人間の把握できる規模を越えている→どうにかして行数を減らさないといけない
- 2万行でOSとその上で動くアプリをネイティブコードまで
- OSといってもLinuxみたいなのじゃなく、Smalltalkの環境みたいなものかも (ということは畳むのに都合がいい仕様にする余地がある?)
- とりあえず1000行で高級言語のコンパイラが書けてる (ブートストラップ。その1000行を自分自身に食わすとコンパイラができる)
- プロジェクト応援に見る超循環
- 開発を行う人(0)、それを応援する人(1)、応援できる人を育てる人(2)、応援できる人を育てる人を育てる人(3)...
- これだけではメタなだけで循環ではない
- 開発を行う人が、年を取って若者を応援するようになるとメタサーキュラー
- Cが生き残ってる理由
- アセンブラは機械語に近すぎて、プロセッサの変化に弱い
- Cはプロセッサの変化にあまり影響されないぎりぎりのラインなのが偉い
- コードはアートか問題
- 同じ動作を複数の方法で記述できる冗長さがあるということは、アートの余地があるのではないか
□ ujihisa [Markdownのリストのところのネストは不可ってあるけど、ネスタできるよー。 * this * is *..]
□ ujihisa [s/ネスタ/ネスト/]
□ yhara [ども。直しました。]