├── Makefile
├── README.md
├── chapter1.md
├── chapter2.md
├── chapter3.md
├── chapter4.md
├── cover.eps
├── cover.odg
├── hamacro.sty
├── images
├── fig1.eps
├── fig1.svg
├── fig10.eps
├── fig10.svg
├── fig11.eps
├── fig11.svg
├── fig12.eps
├── fig12.svg
├── fig13.eps
├── fig13.svg
├── fig14.eps
├── fig14.svg
├── fig15.eps
├── fig15.svg
├── fig16.eps
├── fig16.svg
├── fig17.eps
├── fig17.svg
├── fig18.eps
├── fig18.svg
├── fig19.eps
├── fig19.svg
├── fig2.eps
├── fig2.svg
├── fig20.eps
├── fig20.svg
├── fig21.eps
├── fig21.svg
├── fig22.eps
├── fig22.svg
├── fig23.eps
├── fig23.svg
├── fig24.eps
├── fig24.svg
├── fig25.eps
├── fig25.svg
├── fig26.eps
├── fig26.svg
├── fig27.eps
├── fig27.svg
├── fig28.eps
├── fig28.svg
├── fig29.eps
├── fig29.svg
├── fig3.eps
├── fig3.svg
├── fig30.eps
├── fig30.svg
├── fig31.eps
├── fig31.svg
├── fig32.eps
├── fig32.svg
├── fig33.eps
├── fig33.svg
├── fig34.eps
├── fig34.svg
├── fig35.eps
├── fig35.svg
├── fig36.eps
├── fig36.svg
├── fig37.eps
├── fig37.svg
├── fig38.eps
├── fig38.svg
├── fig39.eps
├── fig39.svg
├── fig4.eps
├── fig4.svg
├── fig40.eps
├── fig40.svg
├── fig41.eps
├── fig41.svg
├── fig42.eps
├── fig42.svg
├── fig43.eps
├── fig43.svg
├── fig44.eps
├── fig44.svg
├── fig45.eps
├── fig45.svg
├── fig46.eps
├── fig46.svg
├── fig47.eps
├── fig47.svg
├── fig48.eps
├── fig48.svg
├── fig49.eps
├── fig49.svg
├── fig5.eps
├── fig5.svg
├── fig50.eps
├── fig50.svg
├── fig51.eps
├── fig51.svg
├── fig52.eps
├── fig52.svg
├── fig53.eps
├── fig53.svg
├── fig54.eps
├── fig54.svg
├── fig55.eps
├── fig55.svg
├── fig56.eps
├── fig56.svg
├── fig57.eps
├── fig57.svg
├── fig58.eps
├── fig58.svg
├── fig59.eps
├── fig59.svg
├── fig6.eps
├── fig6.svg
├── fig60.eps
├── fig60.svg
├── fig61.eps
├── fig61.svg
├── fig62.eps
├── fig62.svg
├── fig63.eps
├── fig63.svg
├── fig64.eps
├── fig64.svg
├── fig65.eps
├── fig65.svg
├── fig66.eps
├── fig66.svg
├── fig67.eps
├── fig67.svg
├── fig68.eps
├── fig68.svg
├── fig69.eps
├── fig69.svg
├── fig7.eps
├── fig7.svg
├── fig70.eps
├── fig70.svg
├── fig8.eps
├── fig8.svg
├── fig9.eps
└── fig9.svg
├── macro.m4
├── meta.yaml
├── noto.map
├── postface.md
├── preface.md
├── template.tex
├── title.eps
└── title.odg
/Makefile:
--------------------------------------------------------------------------------
1 | #LATEX=platex
2 | LATEX=uplatex
3 | PANDOC=pandoc
4 | PANDOC_OPT=--toc --toc-depth=3 --chapters
5 | DVIPDFMX=dvipdfmx
6 | DVIPDFMX_OPT=-f noto
7 |
8 | NAME=zguide-ja
9 | TEMPLATE=template.tex
10 |
11 | SRCS=macro.m4 meta.yaml preface.md chapter1.md chapter2.md chapter3.md chapter4.md postface.md
12 | MD=$(NAME).md
13 | TEX=$(NAME).tex
14 | DVI=$(NAME).dvi
15 | PDF=$(NAME).pdf
16 | EPUB=$(NAME).epub
17 | HTML=$(NAME).html
18 |
19 | EXAMPLE_LANG=C
20 | EXAMPLE_EXT=c
21 | #EXAMPLE_LANG=Perl
22 | #EXAMPLE_EXT=pl
23 |
24 | # filter original text
25 | ORIGINAL_FILTER=sed -e 's/^;.*//'
26 | #ORIGINAL_FILTER=sed -e 's/^;\(.*\)/\1/'
27 |
28 | %.dvi: %.tex
29 | $(LATEX) $<
30 | $(LATEX) $<
31 |
32 | %.pdf: %.dvi
33 | $(DVIPDFMX) $(DVIPDFMX_OPT) $^
34 |
35 | all: $(PDF)
36 |
37 | clean:
38 | rm -rf *.log *.out *.aux *.toc $(MD) $(TEX) $(DVI) $(PDF) $(EPUB) $(HTML)
39 |
40 | $(MD): $(SRCS)
41 | m4 -DEXAMPLE_LANG=$(EXAMPLE_LANG) -DEXAMPLE_EXT=$(EXAMPLE_EXT) $^ | ${ORIGINAL_FILTER} > $@
42 |
43 | $(EPUB): $(MD)
44 | $(PANDOC) -o $@ $<
45 |
46 | $(HTML): $(MD)
47 | $(PANDOC) -o $@ $<
48 |
49 | $(TEX): $(MD) $(TEMPLATE)
50 | $(PANDOC) -f markdown -t latex $(PANDOC_OPT) --template=$(TEMPLATE) $< | sed -e 's/\\begin{figure}\(\[.*\]\)\?/\\begin{figure}\[H\]/g' > $@
51 |
52 | $(DVI): $(TEX)
53 |
54 | $(PDF): $(DVI)
55 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ØMQガイドブック
2 | ================
3 |
4 | 「ØMQガイドブック」はPieter Hintjens著「[ØMQ - The Guide](http://zguide.zeromq.org/)」の和訳版です。
5 |
6 | 誤字・誤訳等ありましたら[@hamano](https://twitter.com/hamano)まで連絡下さい。
7 |
8 | # 目次
9 | * [まえがき](preface.md)
10 | * [1章 - 基礎](chapter1.md)
11 | * 2章 - ソケットとパターン
12 | * 3章 - リクエスト・応答パターンの応用
13 | * 4章 - リクエスト・応答パターンの信頼性
14 | * 5章 - Pub-Subパターンの応用
15 | * 6章 - ØMQコミュニティ
16 | * 7章 - ØMQを活用した応用アーキテクチャ
17 | * 8章 - 分散コンピューティングフレームワーク
18 | * [あとがき](postface.md)
19 |
--------------------------------------------------------------------------------
/cover.odg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hamano/zguide-ja/ea3ae5702bef243a55c4092f5550401c9bf2b8d4/cover.odg
--------------------------------------------------------------------------------
/images/fig1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
173 |
--------------------------------------------------------------------------------
/images/fig10.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
59 |
--------------------------------------------------------------------------------
/images/fig11.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
64 |
--------------------------------------------------------------------------------
/images/fig2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
161 |
--------------------------------------------------------------------------------
/images/fig21.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
207 |
--------------------------------------------------------------------------------
/images/fig22.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
221 |
--------------------------------------------------------------------------------
/images/fig23.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
134 |
--------------------------------------------------------------------------------
/images/fig24.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
155 |
--------------------------------------------------------------------------------
/images/fig26.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
53 |
--------------------------------------------------------------------------------
/images/fig27.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
112 |
--------------------------------------------------------------------------------
/images/fig28.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
65 |
--------------------------------------------------------------------------------
/images/fig29.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
65 |
--------------------------------------------------------------------------------
/images/fig3.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
64 |
--------------------------------------------------------------------------------
/images/fig30.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
53 |
--------------------------------------------------------------------------------
/images/fig31.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
65 |
--------------------------------------------------------------------------------
/images/fig32.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
124 |
--------------------------------------------------------------------------------
/images/fig33.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
46 |
--------------------------------------------------------------------------------
/images/fig34.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
65 |
--------------------------------------------------------------------------------
/images/fig35.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
84 |
--------------------------------------------------------------------------------
/images/fig36.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
65 |
--------------------------------------------------------------------------------
/images/fig37.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
70 |
--------------------------------------------------------------------------------
/images/fig39.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
124 |
--------------------------------------------------------------------------------
/images/fig41.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
103 |
--------------------------------------------------------------------------------
/images/fig43.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
124 |
--------------------------------------------------------------------------------
/images/fig45.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
101 |
--------------------------------------------------------------------------------
/images/fig47.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
95 |
--------------------------------------------------------------------------------
/images/fig50.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
98 |
--------------------------------------------------------------------------------
/images/fig51.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
116 |
--------------------------------------------------------------------------------
/images/fig52.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
59 |
--------------------------------------------------------------------------------
/images/fig53.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
59 |
--------------------------------------------------------------------------------
/images/fig54.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
107 |
--------------------------------------------------------------------------------
/images/fig55.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
82 |
--------------------------------------------------------------------------------
/images/fig56.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
102 |
--------------------------------------------------------------------------------
/images/fig57.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
124 |
--------------------------------------------------------------------------------
/images/fig58.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
84 |
--------------------------------------------------------------------------------
/images/fig59.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
108 |
--------------------------------------------------------------------------------
/images/fig6.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
202 |
--------------------------------------------------------------------------------
/images/fig60.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
118 |
--------------------------------------------------------------------------------
/images/fig61.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
89 |
--------------------------------------------------------------------------------
/images/fig62.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
111 |
--------------------------------------------------------------------------------
/images/fig63.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
82 |
--------------------------------------------------------------------------------
/images/fig64.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
56 |
--------------------------------------------------------------------------------
/images/fig65.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
73 |
--------------------------------------------------------------------------------
/images/fig66.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
90 |
--------------------------------------------------------------------------------
/images/fig67.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
66 |
--------------------------------------------------------------------------------
/images/fig69.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
80 |
--------------------------------------------------------------------------------
/images/fig7.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
135 |
--------------------------------------------------------------------------------
/images/fig70.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
101 |
--------------------------------------------------------------------------------
/images/fig9.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
163 |
--------------------------------------------------------------------------------
/macro.m4:
--------------------------------------------------------------------------------
1 | changequote(<<<,>>>)dnl
2 | undefine(substr)dnl
3 | ifdef(EXAMPLE_LANG, , define(<<>>, <<>>))dnl
4 |
--------------------------------------------------------------------------------
/meta.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | title: ØMQガイドブック
3 | subtitle: ØMQ - The Guide
4 | author: Pieter Hintjens
5 | translator: 濱野 司
6 | authors: Pieter Hintjens 著 / HAMANO Tsukasa 訳
7 | keywords: ZeroMQ 0MQ ZMQ ØMQ The Guide 日本語 和訳
8 | version: 0.6
9 | ---
10 |
--------------------------------------------------------------------------------
/noto.map:
--------------------------------------------------------------------------------
1 |
2 | % TEXT, 90JIS
3 | uphminl-h unicode NotoSerifCJKjp-Light.otf
4 | uphminl-v unicode NotoSerifCJKjp-Light.otf
5 | uphminr-h unicode NotoSerifCJKjp-Medium.otf
6 | uphminr-v unicode NotoSerifCJKjp-Medium.otf
7 | uphminb-h unicode NotoSerifCJKjp-Bold.otf
8 | uphminb-v unicode NotoSerifCJKjp-Bold.otf
9 | uphgothr-h unicode NotoSansCJKjp-Regular.otf
10 | uphgothr-v unicode NotoSansCJKjp-Regular.otf
11 | uphgothb-h unicode NotoSansCJKjp-Bold.otf
12 | uphgothb-v unicode NotoSansCJKjp-Bold.otf
13 | uphgotheb-h unicode NotoSansCJKjp-Black.otf
14 | uphgotheb-v unicode NotoSansCJKjp-Black.otf
15 | uphmgothr-h unicode NotoSansCJKjp-Thin.otf
16 | uphmgothr-v unicode NotoSansCJKjp-Thin.otf
17 |
18 | % TEXT, JIS04
19 | uphminln-h unicode NotoSerifCJKjp-Light.otf
20 | uphminln-v unicode NotoSerifCJKjp-Light.otf
21 | uphminrn-h unicode NotoSerifCJKjp-Medium.otf
22 | uphminrn-v unicode NotoSerifCJKjp-Medium.otf
23 | uphminbn-h unicode NotoSerifCJKjp-Bold.otf
24 | uphminbn-v unicode NotoSerifCJKjp-Bold.otf
25 | uphgothrn-h unicode NotoSansCJKjp-Regular.otf
26 | uphgothrn-v unicode NotoSansCJKjp-Regular.otf
27 | uphgothbn-h unicode NotoSansCJKjp-Bold.otf
28 | uphgothbn-v unicode NotoSansCJKjp-Bold.otf
29 | uphgothebn-h unicode NotoSansCJKjp-Black.otf
30 | uphgothebn-v unicode NotoSansCJKjp-Black.otf
31 | uphmgothrn-h unicode NotoSansCJKjp-Thin.otf
32 | uphmgothrn-v unicode NotoSansCJKjp-Thin.otf
33 |
--------------------------------------------------------------------------------
/postface.md:
--------------------------------------------------------------------------------
1 | # あとがき {-}
2 |
3 | ## ライセンス {-}
4 | ;I want people to reuse this text in their own work: in presentations, articles, and even other books. However, the deal is that if they remix my work, others can remix theirs. I'd like credit, and have no argument against others making money from their remixes. Thus, the text is licensed under cc-by-sa.
5 |
6 | 私は多くの人達にこのテキストを雑誌、本、プレゼンテーションなどの仕事で再利用して欲しいと思っています。
7 | 誰かがこの本を再編集したら他の誰かがまた再編集出来ることが条件になります。
8 | 誰かが再編集したものを販売してもそれは私にとって名誉であり異論はありません。
9 | このテキストはcc-by-saライセンスで公開しています。
10 |
11 | ;For the examples, we started with GPL, but it rapidly became clear this wasn't workable. The point of examples is to give people reusable code fragments so they will use ØMQ more widely, and if these are GPL, that won't happen. We switched to MIT/X11, even for the larger and more complex examples that conceivably would work as LGPL.
12 |
13 | 当初、サンプルコードはGPLで公開していましたが、上手くいかない事がすぐにわかりました。
14 | サンプルーコードはそのコード片を幅広い用途で再利用出来る必要があります。
15 | GPLではそれが困難でした。
16 | そこで、サンプルコードのライセンスをMIT/X11に切り替えました。
17 | 規模が大きくてより複雑なサンプルコードに関してはLGPLでも上手くいくだろうと考えられます。
18 |
19 | ;However, when we started turning the examples into standalone projects (as with Majordomo), we used the LGPL. Again, remixability trumps dissemination. Licenses are tools; use them with intent, not ideology.
20 |
21 | そして、サンプルコードはMajordomoの様に独立したプロジェクトに移行を始めており、そこではLGPLを使用しています。
22 | 重ねて言いますが、普及と再編集性に適しているからです。
23 | ライセンスはツールであり、目的があって選択しているのであってイデオロギーではありません。
24 |
25 |
--------------------------------------------------------------------------------
/preface.md:
--------------------------------------------------------------------------------
1 | # まえがき {-}
2 |
3 | ## 訳者より {-}
4 | この本はØMQというライブラリの入門書という体裁になっていますが、もっと一般的なメッセージングシステムの設計方法を学べるように書かれています。
5 | マルチスレッドプログラミングおよびネットワークプログラミングで起こる一般的な問題の解決方法や、分散アプリケーションの設計方法などを学ぶことが出来ます。
6 | たとえば、P2Pアプリケーションや分散ハッシュテーブルなどの基盤を実装したいと考えている方にもおすすめの本です。
7 |
8 | この本の原文は全8章で構成されており、現在4章までの翻訳が完了しています。
9 |
10 | 誤字・誤訳等ありましたら[\@hamano](https://twitter.com/hamano)まで連絡下さい。
11 | 校正を手伝ってくれた亀井亜佐夫さんに感謝します。
12 |
13 | ## ØMQとは {-}
14 | ;ØMQ (also known as ZeroMQ, 0MQ, or zmq) looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry atomic messages across various transports like in-process, inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fan-out, pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous message-processing tasks. It has a score of language APIs and runs on most operating systems. ØMQ is from iMatix and is LGPLv3 open source.
15 |
16 | ØMQ(ZeroMQ, 0MQ, zmq などとも呼ばれます)は組み込みネットワークライブラリと言うことも出来ますが、並行フレームワークの様にも機能します。
17 | ØMQはプロセス内通信、プロセス間通信、TCPやマルチキャストの様な幅広い通信手段を用いてアトミックにメッセージを転送する通信ソケットを提供します。
18 | ソケットをファンアウト、Pub-Sub、タスク分散、リクエスト・応答の様なパターンでN対Nで接続できます。
19 | 非同期I/Oモデルにより、マルチコア環境でスケーラブルな非同期メッセージ処理を行うアプリケーションを構築可能で、製品クラスタを構成する上で十分高速です。
20 | ØMQは多くのプログラミング言語向けのAPIを持ち、ほとんどのOSで動作します。
21 | ØMQは[iMatix](http://www.imatix.com/)で開発され、LGPLv3ライセンスで配布されています。
22 |
23 | ## 事の発端 {-}
24 | ;We took a normal TCP socket, injected it with a mix of radioactive isotopes stolen from a secret Soviet atomic research project, bombarded it with 1950-era cosmic rays, and put it into the hands of a drug-addled comic book author with a badly-disguised fetish for bulging muscles clad in spandex. Yes, ØMQ sockets are the world-saving superheroes of the networking world.
25 |
26 | 我々は通常のTCPを手にしている。それにソビエトの秘密研究所から盗まれた放射性同位元素が注入され、1950年代の宇宙線が放射された。
27 | それはひどい変装趣味の漫画作家に渡り、全身タイツをまとい、筋肉が盛り上がった。
28 | ええ、こうしてØMQソケットはネットワーキングの世界を守るスーパーヒーローになったのです。
29 |
30 | 
31 |
32 | ## ゼロの哲学 {-}
33 | ;The Ø in ØMQ is all about tradeoffs. On the one hand this strange name lowers ØMQ's visibility on Google and Twitter. On the other hand it annoys the heck out of some Danish folk who write us things like "ØMG røtfl", and "Ø is not a funny looking zero!" and "Rødgrød med Fløde!", which is apparently an insult that means "may your neighbours be the direct descendants of Grendel!" Seems like a fair trade.
34 |
35 | ØMQのØはトレードオフが本質です。
36 | まず、この奇妙な名前によってGoogleやTwitterの検索での可視性が低下しています。
37 | 一方で、デンマークのひどい奴らが「ØMG(笑)」とか「Øは変な形をしたゼロではない」とか「Rødgrød med Fløde!」(クリームがのったデンマークのおやつ)とか言ってくるのは明らかな侮辱であり、不愉快です。うん、どうやらこれはフェアなトレードだ。
38 |
39 | ;Originally the zero in ØMQ was meant as "zero broker" and (as close to) "zero latency" (as possible). Since then, it has come to encompass different goals: zero administration, zero cost, zero waste. More generally, "zero" refers to the culture of minimalism that permeates the project. We add power by removing complexity rather than by exposing new functionality.
40 |
41 | 元来、ØMQのゼロは「仲介無し」や(出来るだけ)「遅延ゼロ」(に近づける)という意味を持っていました。
42 | 以来それは「ゼロ管理」や「ゼロコスト」、「無駄がゼロ」といった別の目的を包含するようになりました。
43 | 一般的な言葉で言うと、最小主義の文化がプロジェクトに浸透している事を示しています。
44 | 私達は新たな機能を追加するというよりも、複雑さを取り除くことを重要視します。
45 |
46 | ## 対象読者 {-}
47 | ;This book is written for professional programmers who want to learn how to make the massively distributed software that will dominate the future of computing. We assume you can read C code, because most of the examples here are in C even though ØMQ is used in many languages. We assume you care about scale, because ØMQ solves that problem above all others. We assume you need the best possible results with the least possible cost, because otherwise you won't appreciate the trade-offs that ØMQ makes. Other than that basic background, we try to present all the concepts in networking and distributed computing you will need to use ØMQ.
48 |
49 | この本は、コンピューティングの未来を支配する大規模な分散ソフトウェアの作り方を学びたいプロのプログラマ向けに書かれています。
50 | ØMQは多くのプログラミング言語で使えるにも関わらず、ほとんどのサンプルコードはC言語で書かれているため、あなたがC言語を読めることを想定しています。
51 | あなたがスケーラビリティの問題を気にしていることを想定しています。
52 | あなたが最小のコストで最良の結果を必要としている事を想定しています。そうしないとØMQのトレードオフについて認識できないからです。
53 | それ以外のØMQを使う上で必要なネットワークや分散コンピューティングなどの基本的な概念は出来るだけ説明するように心がけます。
54 |
55 | ## 謝辞 {-}
56 | ;Thanks to Andy Oram for making the O'Reilly book happen, and editing this text.
57 |
58 | このテキストを[書籍](http://shop.oreilly.com/product/0636920026136.do)として出版する為に企画と編集を行なってくれたAndy Oramに感謝します。
59 |
60 | 以下の方々の貢献に感謝します:
61 |
62 | Bill Desmarais, Brian Dorsey, Daniel Lin, Eric Desgranges, Gonzalo Diethelm, Guido Goldstein, Hunter Ford, Kamil Shakirov, Martin Sustrik, Mike Castleman, Naveen Chawla, Nicola Peduzzi, Oliver Smith, Olivier Chamoux, Peter Alexander, Pierre Rouleau, Randy Dryburgh, John Unwin, Alex Thomas, Mihail Minkov, Jeremy Avnet, Michael Compton, Kamil Kisiel, Mark Kharitonov, Guillaume Aubert, Ian Barber, Mike Sheridan, Faruk Akgul, Oleg Sidorov, Lev Givon, Allister MacLeod, Alexander D'Archangel, Andreas Hoelzlwimmer, Han Holl, Robert G. Jakabosky, Felipe Cruz, Marcus McCurdy, Mikhail Kulemin, Dr. Gergő Érdi, Pavel Zhukov, Alexander Else, Giovanni Ruggiero, Rick "Technoweenie", Daniel Lundin, Dave Hoover, Simon Jefford, Benjamin Peterson, Justin Case, Devon Weller, Richard Smith, Alexander Morland, Wadim Grasza, Michael Jakl, Uwe Dauernheim, Sebastian Nowicki, Simone Deponti, Aaron Raddon, Dan Colish, Markus Schirp, Benoit Larroque, Jonathan Palardy, Isaiah Peng, Arkadiusz Orzechowski, Umut Aydin, Matthew Horsfall, Jeremy W. Sherman, Eric Pugh, Tyler Sellon, John E. Vincent, Pavel Mitin, Min RK, Igor Wiedler, Olof Åkesson, Patrick Lucas, Heow Goodman, Senthil Palanisami, John Gallagher, Tomas Roos, Stephen McQuay, Erik Allik, Arnaud Cogoluègnes, Rob Gagnon, Dan Williams, Edward Smith, James Tucker, Kristian Kristensen, Vadim Shalts, Martin Trojer, Tom van Leeuwen, Hiten Pandya, Harm Aarts, Marc Harter, Iskren Ivov Chernev, Jay Han, Sonia Hamilton, Nathan Stocks, Naveen Palli, Zed Shaw
63 |
64 |
--------------------------------------------------------------------------------
/template.tex:
--------------------------------------------------------------------------------
1 | \documentclass[a4paper,12pt,uplatex]{jsbook}
2 |
3 | \usepackage{hamacro}
4 | \usepackage{float}
5 | \usepackage{pxjahyper}
6 | \usepackage{eso-pic}
7 |
8 | \usepackage[utf8]{inputenc}
9 | \usepackage[T1]{fontenc}
10 | \usepackage{textcomp}
11 | %\kcatcode`Ø=15
12 |
13 | \hypersetup{
14 | pdfstartview={FitV},
15 | pdftitle={$title$},
16 | pdfsubject={$subtitle$},
17 | pdfauthor={$authors$},
18 | pdfkeywords={$keywords$},
19 | }
20 |
21 | \let\cleardoublepage\clearpage
22 |
23 | % title
24 | \title{$title$}
25 | \author{$author$}
26 | \date{$date$}
27 |
28 | \newcommand\CoverPage{
29 | \put(9,-12){
30 | \includegraphics[width=\paperwidth,height=\paperheight]{./cover.eps}
31 | }
32 | }
33 |
34 | % document
35 | \begin{document}
36 | \begin{titlepage}
37 | \begin{center}
38 | \AddToShipoutPicture*{\CoverPage}
39 | \end{center}
40 | \clearpage
41 | \thispagestyle{empty}
42 |
43 | \begin{flushright}
44 | {\sf 第$version$版}
45 | \end{flushright}
46 | \vspace*{3em}
47 | \begin{center}
48 | {\Huge\bf{$title$}}
49 | \smallskip\\
50 | {\huge\it{$subtitle$}}
51 | \vspace{8em}\\
52 | {\Large\bf{$author$ 著}}
53 | \smallskip\\
54 | {\Large\bf{$translator$ 訳}}
55 | %%\vfill
56 | %%{\Large\bf{$publisher$ 発行}}
57 |
58 | \end{center}
59 |
60 | \end{titlepage}
61 |
62 | $if(toc)$
63 | \setcounter{tocdepth}{$toc-depth$}
64 | \tableofcontents
65 | \clearpage
66 | $endif$
67 |
68 | $body$
69 | \end{document}
70 |
--------------------------------------------------------------------------------
/title.odg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hamano/zguide-ja/ea3ae5702bef243a55c4092f5550401c9bf2b8d4/title.odg
--------------------------------------------------------------------------------