ページ

2012年2月19日日曜日

Linxu and Hacker way


このブログで先日書いた、Facebook の ハッカーウェイ( TIL 2012/02/05 マーク・ザッカーバーグの投資家向け公開状)、他にも記事を見つけたので追記。 それと、オープンソースコミュニティネタを一緒にどうぞ。

"ハッカーウェイ"について、ザックバーグは正しいことを言っている

Linus Torvaldsは、20年前に、共同でソフトウェアを開発する という方法でLinuxを始めた。 それは「単純に楽しいから」という理由と、 コードでLinuxは興味深い問題を解決できるという信念 があったからだ。お金のためではい。
また、Linuxは、ハッカーウェイの典型的な例だ。 それは、Linuxカーネル開発者が過去20年に渡って以下のことを 実践しているからである。
  • コードは、議論に打ち勝つ。
  • 早いリリースと、小さいイテレーションから学ぶ。
  • 最良のアイデアと実装は、常に勝つべきだ。
Zuckerbergは、Linusと、Linuxのハッカーウェイと同じことを実践している。
過去10年間で最大の起業サクセスストーリは、過去20年間の最大の技術革新、 すなわち、Linuxとオープンソフトウェア開発に深く根ざしているというのは、 偶然ではありません。コードと信念が、素晴らしいものへと駆り立てている よい事例がFacebookなのです。
以下の記事も参考になります。

Open Advice

42人のオープンソース貢献者たちが、その経験を共有するため作った本。 英語ですが、Creative Commons Attribution-ShareAlike licenceで、 以下のサイトからダウンロードできます。
この本の編集は、Lydia Pintscher (KDE board member)で、著者は、 以下のような人たちです。
  • Georg Greve (founder of the Free Software Foundation Europe)
  • Shaun McCance (GNOME documentation),
  • Máirín Duffy Strode (designer for Fedora and GNOME)
  • Jono Bacon (Ubuntu Community Manager)
  • Alexandra Leisse (Web Community Manager at Qt Development Frameworks)
  • Vincent Untz (former GNOME Release Manager)
  • Jos Poortvliet (openSUSE Community Manager)
  • Dave Neary (long-time GNOME and GIMP contributor)
  • Dr. Till Jaeger (attorney working with gpl-violations.org)
ホームーページ: Open Advice

2012年2月12日日曜日

Macworld 2012 キラーアプリ TourWrist


Macworld 2012 キラーアプリ

TourWrist

360度のパノラマ画像を見ることができます。iPhone/iPadの向きを変えると、 その向きに追従して、画像も変わります。 すなわち、外国の観光地などをiPhone/iPadをぐるぐる動かして、周囲をみることができるのです。まるでその場にいるような感じが味わえます。
新しいバージョンから、撮影も可能になりました。 360度のパノラマの撮影に約1分。 10個の異なる画像を合成します。写真が重なっている部分は、 ソフトウェアの処理で継目がわからないように合成します。 撮影した作品をwebで共有することもできます。













JavaScript オブジェクトについて (from Codeacademy)


JavaScript オブジェクトについて (from Codeacademy)

Code academy : Introduction to Object I (Code Year:Week 5)

オブジェクトとプロパティ

データタイプ:オブジェクト(Object)を学習します。 オブジェクトは、プロパティ(property)を含んでいます。 プロパティは、オブジェクトに関連付けた変数と考えられます。 プロパティを含んでいないオブジェクトの生成は次のようになります。
var Me = {};
プロパティを含んだオブジェクト生成は次のとおりです。 この生成方法を、literal notationと呼びます。
  • プロパティ名と値は「:」で区切ります。
  • プロパティが複数個、続く場合は、「,」で区切ります。 最後のプロパティには「,」は不要です。
var Me = {
  age    : 30,
  country: "Japan"
};
オブジェクトの生成に、new()を使った方法があります。 これを、constructor()を使った方法と言います。 new Object()で、中身が空のオブジェクトを生成後、 プロパティをくわえていきます。
var Me = new Object()

Me.age = 30;
Me.country = "Japan";
オブジェクトのプロパティ アクセス方法は、 オブジェクトとプロパティを「.」でつないでアクセスします。 この方法を、dot notation と言います。
var age_val = Me.age;
var country_val = Me.country;
また、次のようにアクセスすることも可能です。 この方法を、bracket notation をいいます。
var age_val = Me["age"];
var country_val = Me["country"];

オブジェクトとメソッド

メソッド(method)は、オブジェクトと関連付いた関数です。 メソッドの定義方法は、関数の定義方法と似ています。 = function の左辺に、ObjectName.methodName を書きます。 ObjectName.methodName()で使います。
var Me = new Object();

// プロパティ age を追加
Me.age = 10;

// メソッド Me.setAge() を作る
Me.setAge = function(age) {
  Me.age = age;
};

// メソッド Me.setAge() を使う
Me.setAge(30);
メソッド内で、自分自身のオブジェクトを表すのに thisを使います。thisを使うと、上記のメソッドは 次のように書き換えられます。 このようにthisを使うと、特定のオブジェクト(この例の場合はMe)に 縛られることがなくなります。
var Me = new Object();

// プロパティ age を追加
Me.age = 10;

// メソッド Me.setAge() を作る
Me.setAge = function(age) {
  this.age = age;
};

// メソッド Me.setAge() を使う
Me.setAge(30);

コンストラクタ

コンストラクタ(constructor)はオブジェクトを作る方法の一つです。 Me = new Object() とした場合は、bult-inコンストラクタが呼ばれます。 このbult-inコンストラクタは、JavaScritによって用意されていて、 プロパティとメソッドが一つもないオブジェクトを生成します。
空のオブジェクトを生成し、プロパティとメソッドを毎回追加するのは 面倒な作業です。そこで、カスタムコンストラクタを作成します。 カスタムコンストラクタによって、オブジェクトを生成時に、 プロパティをメソッドを同時に定義することができます。
// 四角形オブジェクト
function Rectangle(length, width) {
  this.length = length;
  this.width = width;

  // メソッド 面積を計算する
  this.calcArea = function() {
      return (this.length * this.width);
  };

  // メソッド 周囲の長さを計算する
  this.calcPerimeter = function() {
    return (this.length * 4);
  };
}

// オブジェクトを生成する
var rect1 = new Rectangle(10, 20);

// 面積を計算し、出力する
console.log(rect1.calcArea());
(END)

2012年2月5日日曜日

TIL 2012/02/05


TIL (Today I learned) 今日、知ったこと

ソフトウェア

Code academy (Code Year:Week 4)

今週も、学習完了。
  • Primitives in JavaScript
  • Challenge: BlackJack: Deal 'em Up
1/30日、Codeacademyは、Course Creator という企画を打ち出しました。 誰もが対話的なレッスンをこのサイトのツールを使って書くことができます。

Mozilla Labsが新プロジェクト「Pancake」

Web上の、検索・ブラウジング・ナビゲーション・整理・発見の 仕方を、根本的に変えるような取り組み。 実験的要素が強そうですが、今後が楽しみです。

マーク・ザッカーバーグの投資家向け公開状

Facebookは「世界をよりオープンにして人びとの結びつきを 強めるというソーシャルな使命をなし遂げるために作られたもの」、 とのことです。興味深いのは、「ハッカーウェイ」。
ハッカー(良い意味で世界にインパクトを与えたいと考えている優秀なエンジニア)は、 長期にわって最良とされるサービスを作るために、一度にすべてを 完成させるのではなく、 サービスを機敏に世に出し学びながら改良することを繰り返します。
スタンフォード大学のティナ・シーリグ教授と 同じことを言っています。 アイデアを実現するために非常に大切なことだと感じました。

Web & Social Networking Service

Pinterest

「ピンボード」に、自分の好きな写真を貼っていく。 ホームページ 「Pinterestとは」から引用。
Pinterestは、仮想的なピンボードです。
Web上で見つけた美しいものを整理し、共有することができます。
結婚式の計画、家の飾り付け、お気に入りの料理のレシピを
整理することができます。
他の人が作ったピンボードをブラウズすることができます。
これは、新しいものの発見や、同じ趣味を持っている人から
インスピレーションを得る楽しい方法です。
女性を惹きつけているサービスとのことです。









Apple

ついに脱獄可能になった「iPad 2」と「iPhone 4S」

個人的には、iOSまで手がまわりません。

2012年2月4日土曜日

AsciiDoc 1 文書の構成

AsciiDoc 1 文書の構成
AsciiDocのドキュメントは、「ドキュメントヘッダ」、「セクション」、 「パラグラフ」、「ブロック」で構成されます。

ドキュメントヘッダ (Document header)

ドキュメントヘッダは、文書のタイトル、著者の情報を記載します。 とりあえず文書を作成するときは必要ないので、ここでは詳細な説明は省略します。

セクション (Section)

ドキュメントヘッダを付ける、付けないにしても、以降に登場するのが、 セクションです。前回のブログ AsciiDoc Introduction に説明していますので、そちらを参照してください。

パラグラフとブロック (Paragraph and Block)

ドキュメントの内容は、パラグラフとブロックで構成します。 パラグラフは文書のかたまりで空行で1つのパラグラフが終わります。 AsciiDocのパラグラフの書式は以下のとおりです。
  • normal (通常)
  • literal (文字通り)
  • verse (詩)
  • quote (引用)
  • admonition (注意) (TIP/NOTE/IMPORTANT/WARNING/CAUTION)
  • listing (リスト)

normal (通常) パラグラフ

文字通り、通常のパラグラフです。(ここの文章のような)。 最初の行は左端から始めます。空行までが1つのパラグラフになります。 通常パラグラフは字下げ(インデント)されることはありません。

literal (文字通り) パラグラフ

literalパラグラフ。すなわち、書いたままの文書を 等幅フォント(monospaced font)で表示します。 パラグラフの最初の行の先頭に、スペースまたは、タブを入れると、 literalパラグラフになります。
記述例
        ここの部分は、literalパラグラフ。
        1行めの先頭は、スペースでインデントしています。
        記載したままで表示されます。
表示結果
ここの部分は、literalパラグラフ。
1行めの先頭は、スペースでインデントしています。
記載したままで表示されます。
[literal] を使うことで、literalパラグラフを 明示的に表すこともできます。
記述例
[literal]
ここの部分は、literalパラグラフ。
スペースでインデントしなくても、[literal]を使えば、
記載したままで表示されます。
表示結果
ここの部分は、literalパラグラフ。
スペースでインデントしなくても、[literal]を使えば、
記載したままで表示されます。

verse (詩) パラグラフ と、quote (引用) パラグラフ

改行を記述したまま表示します。また、著者、引用元を強調して表示します。
記述例
[verse, 松尾芭蕉, 奥の細道より]
五月雨を
集めて早し
最上川
表示結果
五月雨を
集めて早し
最上川
奥の細道より
— 松尾芭蕉
一方、quoteパラグラフは、著者/引用元を、右寄せで表します。
記述例
[quote, ウィンストン・チャーチル, イギリスの政治家 ノーベル文学賞受賞 1874~1965]
悲観主義者はすべての好機の中に困難をみつけるが、
楽観主義者はすべての困難の中に好機を見いだす
表示結果
悲観主義者はすべての好機の中に困難をみつけるが、 楽観主義者はすべての困難の中に好機を見いだす
イギリスの政治家 ノーベル文学賞受賞 1874~1965
— ウィンストン・チャーチル

admonition (注意) パラグラフ

パラグラフの先頭に注意を促すマークをおく書き方です。 マークには、Note,Tip,Important,Warning,Cautionがあります。
記述例
[NOTE]
This is an example note.

[TIP]
This is an example tip.

[IMPORTANT]
This is an example important.

[WARNING]
This is an example warning.

[CAUTION]
This is an expamle caution.
表示結果
Note
This is an example note.
Tip
This is an example tip.
Important
This is an example important.
Warning
This is an example warning.
Caution
This is an expamle caution.

TODO

  • admonition アイコン
  • list パラグラフ
  • ブロックの説明

2012年2月3日金曜日

AsciiDoc Introduction

AsciiDoc Introduction

AsciiDocを使う理由

AsciiDocを簡単に説明しますと、 テキストファイルをHTML,PDF,EPUB,unix manページなどの多くの 形式に変換するツールです。
私は、文章を作成するのに、単純なテキストフォーマットを 使うのが好きです。 理由は、文章の作成に集中することができる、 編集が簡単、プログラミングで使い慣れている エディタが使えることです。 そこで、テキストフォーマットから、HTMLなどのフォーマットに 変換してくれるツールを探していました。 偶然発見したのが、AsciiDocです。 使い方を調べてみると、本の執筆にも使われているくらい 本格的なツールだとわかりました。
実際、AsciiDocを利用して執筆された本を挙げます。
Ruby ベストプラクティス
AsciiDocで書いて、DocBook XMLを生成し、 dblatexを使ってPDFにレンダリングしたと、 著者自身が、言っています。
Progamming iOS 4
AsciiDocホームページ (http://www.methods.co.nz/asciidoc/index.html)
「Documents written using AsciiDoc」より。
他にもたくさんのAsciiDoc使用例がリストアップされています。

AsciiDocを使ってみよう

ということで、AsciiDocを使ってみようと思ってwebを 検索すると、日本語での紹介例があまり見つかりません。 仕方がないので、自分で使って情報を発信することにしました。 このブログの作成にAsciiDocを使って、使い方を学習し紹介していきます。 おそらく日本語で使った場合の問題にも遭遇すると 思いますので、その解決にもトライしたいです。
まず手始めに、このページで使った、書式を紹介します。

セクションとタイトル (Sections and Titles)

セクションのタイトルは、2行で書きます。 行の左端から書きます。 1行目がセクションのタイトルで、2行目にセクションの タイトルであることを示す記号を書きます。記号の個数は、1行目の セクションのタイトルと同じ長さの下線に見えるようにします。 こんな感じです。(プロポーショナルフォントの表示では、 1行目と2行目の長さが異なって見えるかもしれません)
   Introduction
   ============
セクションのレベルは、0 (top level)から、4 (bottom level) まで 対応していて、記号の種類により、レベルを決めます。
セクションのレベルと記号の区別
    Level 0 (top level):     ======================
    Level 1:                 ----------------------
    Level 2:                 ~~~~~~~~~~~~~~~~~~~~~~
    Level 3:                 ^^^^^^^^^^^^^^^^^^^^^^
    Level 4 (bottom level):  ++++++++++++++++++++++
この文章が書いてあるセクションは、レベル2 で記述は次のとおりです。
    セクションとタイトル (Sections and Titles)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1行でタイトルを記述する方法もあります。レベルは記号の数で 決まるので、記号の種類を覚えられない場合は、 こちらのほうが使い勝手がよいと思います。
    = Document Title (level 0) =
    == Section title (level 1) ==
    === Section title (level 2) ===
    ==== Section title (level 3) ====
    ===== Section title (level 4) =====
(END)