Permalink
Browse files

Rebuilt for latest changes

  • Loading branch information...
1 parent 8c8b588 commit 76172da40df23b93106710c3c0496f74bfac73df @hintjens hintjens committed Dec 22, 2012
Showing with 70 additions and 56 deletions.
  1. +22 −22 .bookmarks
  2. +1 −1 .cache_hx
  3. +1 −1 .cache_lua
  4. +1 −1 .cache_main
  5. +1 −1 .cache_page
  6. +1 −1 .cache_php
  7. +1 −1 .cache_py
  8. +8 −6 .signatures
  9. +2 −2 chapter1.txt
  10. BIN images/fig3.png
  11. +30 −18 images/fig3.svg
  12. +2 −2 images/fig3.txt
View
@@ -1,42 +1,42 @@
-Architecture-of-the-MQ-Community Architecture of the 0MQ Community
Binary-Star-Implementation Binary Star Implementation
+Architecture-of-the-MQ-Community Architecture of the 0MQ Community
Protocol-Assertions Protocol Assertions
The-ROUTER-to-ROUTER-Combination The ROUTER to ROUTER Combination
Burnout Burnout
Upgrading-from-MQ-to-MQ Upgrading from 0MQ/2.2 to 0MQ/3.2
-Writing-the-Unprotocol Writing the Unprotocol
Republishing-Updates-from-Clients Republishing Updates from Clients
Vadim-Shalts-s-Story Vadim Shalts's Story
-the-community Chapter 6 - The 0MQ Community
+Writing-the-Unprotocol Writing the Unprotocol
Service-Oriented-Reliable-Queuing-Majordomo-Pattern Service-Oriented Reliable Queuing (Majordomo Pattern)
-Preemptive-Discovery-over-Raw-Sockets Preemptive Discovery over Raw Sockets
-Goals Goals
+the-community Chapter 6 - The 0MQ Community
ROUTER-Broker-and-DEALER-Workers ROUTER Broker and DEALER Workers
-Symbolic-Links Symbolic Links
-Crazy-Beautiful-and-Easy Crazy, Beautiful, and Easy
+Goals Goals
+Preemptive-Discovery-over-Raw-Sockets Preemptive Discovery over Raw Sockets
Messaging-Patterns Messaging Patterns
-Step-Draw-a-Rough-Architecture Step 2: Draw a Rough Architecture
+Crazy-Beautiful-and-Easy Crazy, Beautiful, and Easy
+Symbolic-Links Symbolic Links
Divide-and-Conquer Divide and Conquer
+Step-Draw-a-Rough-Architecture Step 2: Draw a Rough Architecture
Group-Messaging Group Messaging
-Getting-an-Out-of-band-Snapshot Getting an Out-of-band Snapshot
A-Minor-Note-on-Strings A Minor Note on Strings
+Getting-an-Out-of-band-Snapshot Getting an Out-of-band Snapshot
The-Flash-Mob The Flash Mob
The-Mystic The Mystic
-advanced-architecture Chapter 7 - Advanced Architecture using 0MQ
ROUTER-Broker-and-REQ-Workers ROUTER Broker and REQ Workers
+advanced-architecture Chapter 7 - Advanced Architecture using 0MQ
Initial-Design-Cut-the-API Initial Design Cut - the API
Making-a-Clean-Exit Making a Clean Exit
-MQ-is-Not-a-Neutral-Carrier 0MQ is Not a Neutral Carrier
Upfront-Coordination Upfront Coordination
Chapter-A-Framework-for-Distributed-Computing Chapter 8 - A Framework for Distributed Computing
-The-Zen-of-Zero The Zen of Zero
Why-We-Needed-MQ Why We Needed 0MQ
+The-Zen-of-Zero The Zen of Zero
Tom-van-Leeuwen-s-Story Tom van Leeuwen's Story
A-Plausible-Minimal-Implementation A Plausible Minimal Implementation
Using-Sockets-to-Carry-Data Using Sockets to Carry Data
Chapter-Reliable-Request-Reply-Patterns Chapter 4 - Reliable Request-Reply Patterns
-Configuration Configuration
Slow-Subscriber-Detection-Suicidal-Snail-Pattern Slow Subscriber Detection (Suicidal Snail Pattern)
+Configuration Configuration
How-the-Guide-Happened How the Guide Happened
Working-with-Messages Working with Messages
Heartbeating Heartbeating
@@ -68,8 +68,8 @@ Ephemeral-Values Ephemeral Values
Pub-Sub-Message-Envelopes Pub-Sub Message Envelopes
Step-Decide-on-the-Contracts Step 3: Decide on the Contracts
Tracing-Activity Tracing Activity
-Simplicity-vs-Complexity Simplicity vs. Complexity
Language Language
+Simplicity-vs-Complexity Simplicity vs. Complexity
Starting-Assumptions Starting Assumptions
reliable-request-reply Chapter 4 - Reliable Request-Reply Patterns
Idempotent-Services Idempotent Services
@@ -127,15 +127,15 @@ File-Stability File Stability
Programming-with-MQ Programming with 0MQ
Step-Internalize-the-Semantics Step 1: Internalize the Semantics
The-Constant-Gardener The Constant Gardener
-Representing-State-as-Key-Value-Pairs Representing State as Key-Value Pairs
-Unprotocols Unprotocols
Robustness-in-Conflict Robustness in Conflict
+Unprotocols Unprotocols
+Representing-State-as-Key-Value-Pairs Representing State as Key-Value Pairs
Exploring-ROUTER-Sockets Exploring ROUTER Sockets
How-MQ-Lost-its-Road-map How 0MQ Lost its Road-map
-Transport-Bridging Transport Bridging
Chapter-Advanced-Publish-Subscribe-Patterns Chapter 5 - Advanced Publish-Subscribe Patterns
-Delivery-Notifications Delivery Notifications
+Transport-Bridging Transport Bridging
The-DEALER-to-REP-Combination The DEALER to REP Combination
+Delivery-Notifications Delivery Notifications
The-Benevolent-Tyrant The Benevolent Tyrant
Cost-of-Failure Cost of Failure
Identities-and-Addresses Identities and Addresses
@@ -261,19 +261,19 @@ Architecture-of-a-Single-Cluster Architecture of a Single Cluster
Audience Audience
Model-Three-Complex-and-Nasty Model Three - Complex and Nasty
Development-Process Development Process
-Infinite-Property Infinite Property
The-Rolling-Stone The Rolling Stone
+Infinite-Property Infinite Property
Example-Zyre-Application Example Zyre Application
Postface Postface
Making-a-Detour Making a Detour
-Complexity-Oriented-Design Complexity-Oriented Design
State-Machines State Machines
-Multiple-Nodes-on-One-Device Multiple Nodes on One Device
+Complexity-Oriented-Design Complexity-Oriented Design
More-about-UDP More about UDP
+Multiple-Nodes-on-One-Device Multiple Nodes on One Device
Intermediaries-and-Proxies Intermediaries and Proxies
Reliable-Publish-Subscribe-Clone-Pattern Reliable Publish-Subscribe (Clone Pattern)
-The-Process The Process
Evolution-of-Public-Contracts Evolution of Public Contracts
+The-Process The Process
Rob-Gagnon-s-Story Rob Gagnon's Story
-Handling-Interrupt-Signals Handling Interrupt Signals
Code-Generation Code Generation
+Handling-Interrupt-Signals Handling Interrupt Signals
View
@@ -3,9 +3,9 @@ c5c3b37b6dbed1f8974d788182f886ff939171cf all.wd
a204a67ca01485ccaee1eeef759a9218cd88eea6 chapter1.wd
c233ba3d79cd799aaa0daa8072ac2aee3b59215b chapter2.wd
5238e889920ab275dd77f95a66080484e7f5cb5f chapter3.wd
-3e95e3b217737ba277e03fa7f7a6a11a847be74f chapter4.wd
0d0ebfe0cb731351970e0c4c43436e25810b17b9 chapter5.wd
df2601d32d02e88a54da95c9992e5642aa28f025 chapter6.wd
591d44c9da84e5362de2feb52948d7703ea3873f chapter7.wd
3944a13d05c4ce5e10bd9e61b37f50828265f3e5 chapter8.wd
52111bb045ac07d1a9b7f4bb2434cce0ade22f62 postface.wd
+0d9f65b652e5e201b14d5ae7dad2b8636533c957 chapter4.wd
View
@@ -3,9 +3,9 @@
a93fe6ded1ea95e4304f57e012d2cc8aaab120e5 chapter1.wd
dd1b302a0c96c2889e9a24ffa12fb200676f1b51 chapter2.wd
7e22a3d970b6b5f16b1707cb01dda790ea710bfa chapter3.wd
-af90ef4e59c45ba176a8ec0ba73d0cf5aca18c82 chapter4.wd
b4031da0d71cdb8891ec924366827f9a6925f0b0 chapter5.wd
df2601d32d02e88a54da95c9992e5642aa28f025 chapter6.wd
8dc624b4d51da3cfecc8ab126974046a7352ccd7 chapter7.wd
4d714555756da1c50d25ecda84f48492e888b472 chapter8.wd
52111bb045ac07d1a9b7f4bb2434cce0ade22f62 postface.wd
+ea0bc837998ef0631ba97163efa9339c5b5e0d4b chapter4.wd
View
@@ -1 +1 @@
-f6b7091c2c538b5c73c3b0cc3d6d728e6505411a scoreboard.wd
+3904c5da417b6368eeefbdb0e598fc8ebbf61f91 scoreboard.wd
View
@@ -3,9 +3,9 @@
28ea8caa25628b5f876767190dee67b5cc18e824 chapter1.wd
0d664127a6abcb741ea84ab390a453c0247737b2 chapter2.wd
ca4c926dfc5ca9ea18a824f69abdea88eb8c1be4 chapter3.wd
-a5a131a3fcb7a71458a862cedd101e590708165e chapter4.wd
e6c1e0ac2966a5f6d51a01b16a30aa703a1ac405 chapter5.wd
df2601d32d02e88a54da95c9992e5642aa28f025 chapter6.wd
d9c8666956f4059457e6965998982a2c7e1ea0cf chapter7.wd
cecad48596a0f4e502f6ad9950f8b7ff5925c048 chapter8.wd
52111bb045ac07d1a9b7f4bb2434cce0ade22f62 postface.wd
+b4ed384ff4d553d62c2b1c0580efef079f714fec chapter4.wd
View
@@ -3,9 +3,9 @@
ded0cbf82a8f183d2fe1cd2be5d612440fe28b44 chapter1.wd
f2a45342099e2fbc14ebe5f643a16e8224b65db2 chapter2.wd
14de7321a9e72b7c86b9a6c05b87f1dba84d2827 chapter3.wd
-ff63b0a158a1cae8be20f4fbf178b3a8ed1494e0 chapter4.wd
c6a97b001c84f973f3a1dc83fbe225f3c85ff828 chapter5.wd
df2601d32d02e88a54da95c9992e5642aa28f025 chapter6.wd
a1dcc7522c20dff5de9835412fa84524d8d15b21 chapter7.wd
57e8174c9a57196f8f0749b7dbe8aac6e43204c7 chapter8.wd
52111bb045ac07d1a9b7f4bb2434cce0ade22f62 postface.wd
+0bc979ddd77fc0834fecdebc44c04d64973c65ea chapter4.wd
View
@@ -3,9 +3,9 @@
89b9ef0f30691902a9d49ef968774648e2a9443a chapter1.wd
5bae0cb499185ce20fa843d726b2d819516e5e71 chapter2.wd
314120180cf751fc476a3b2dec7d10ba3c55e8e6 chapter3.wd
-356b9b543d42999bbab506b4cd5490fa4caec271 chapter4.wd
6ec5f41fd4bc64a1f71fa134019f201cee585c7a chapter5.wd
df2601d32d02e88a54da95c9992e5642aa28f025 chapter6.wd
2b2bee9e88dc9703b7bddd37d53f59ed3dc65411 chapter7.wd
7f1a4768f3a56dc81a0e02f1d8f23e18682dff9d chapter8.wd
52111bb045ac07d1a9b7f4bb2434cce0ade22f62 postface.wd
+138cf46a8c36d6e5e5c4b48340dca302b3f3e046 chapter4.wd
View
@@ -71,8 +71,8 @@ b02005487696f2e75f5fe6ebc2a9d6f34d425425 examples/Erlang/hwclient.es
8d65609f4c5a245f18abdf39ea5f17378ebe7949 examples/Python/clonecli1.py
4a39ab9dcffe45ee068128e8bb2b79071c654c70 images/fig34.txt
19950526a70c9d6d69aa49e26410278a76a2c7b9 examples/Python/mdcliapi2.py
-5e920cc8ab69c567a8e86f514ed330b684ec8803 examples/Java/lpclient.java
533912e22da75f4c27e8f865dca8858b804f0346 examples/C++/mtserver.cpp
+5e920cc8ab69c567a8e86f514ed330b684ec8803 examples/Java/lpclient.java
f5255561e6c274c9214ca1e53e4b40d6fff86d47 examples/Java/tripping.java
b9176d1cf9d04301ee470dbe13e3abb4baee3360 examples/Java/version.java
dfe97e2297014f74a9941bbe0d28d6021de0eb51 examples/F#/syncpub.fsx
@@ -91,6 +91,7 @@ ce11487c92b25457062d16cfa03aaee428dadc96 examples/Tcl/flclient1.tcl
baa5687f33207675ad5a256620598e09f1dd67a6 examples/Haskell/identity.hs
e51a5ba89f2f990a74143e947d5eb138b4437bd0 examples/C/tasksink2.c
6f356d1d98158e5ded441b702cca208aca02f052 examples/Haxe/wuclient.hx
+509ecc744f464f4966a891a01cd29624d82382e5 examples/C#/ppworker.cs
6d7629f3a49bffaef56ad21691dd42178608c8b5 examples/Ruby/ticlient.rb
87bb28c49bb1dc83b09dd58aac624a0ea8c06761 examples/C#/mtserver.cs
01b94a290674970a11b07b24f76872a78cfb238f examples/Racket/syncpub.rkt
@@ -125,17 +126,17 @@ c9aa1cea8ad4b225bfaeaae56d2388db2a4bbe13 listings/Lua/listing_52.lua
33eb7e43b88c56411dbb639471fb164e7331d274 examples/Delphi/taskwork.dpr
5d83e50701bd3d32af15cb0739ed8888e721c32c fragments/C/iothreads.c
e0588e9167edf9fb11154ea7364ed1f45b7b8cba examples/C/mdclient2.c
-b55d6909f384e41673a0ac08c2fc383af38378d3 examples/Haxe/tasksink2.hx
946d8d8e0dac7224685f0b82024a33573bbf6248 images/fig2.html
+b55d6909f384e41673a0ac08c2fc383af38378d3 examples/Haxe/tasksink2.hx
6ac10c128697c5696144b44e6b6f2b22365f8fae examples/C/rrworker.c
c2e5818c670b5999a3a1de96b1080932df2ec612 examples/Felix/wuclient.flx
aa7f062cb4b086f3c00fd02a769fc15c41751829 images/fig55.html
944b1f6aec4e513e135d2ea4ef4e4aded05f08f3 examples/Go/wuserver.go
8aa0ee8cdceada1858674ac5f7766ccd1391e0c1 examples/Ruby/psenvsub.rb
89e33e7a0541c59b007ed1cd5a7906c7f29f1e54 images/fig14.html
ddfc2281b409a383f380b8bbd2ef8b63916740e3 examples/Clojure/tasksink2.clj
-757c637e8ce0b9cdedceab28224d7081baef0172 examples/Tcl/rtdealer.tcl
6e6502fd6552b22bc7b2ac4b3a5b1e3bf0fbafc5 examples/Python/syncpub.py
+757c637e8ce0b9cdedceab28224d7081baef0172 examples/Tcl/rtdealer.tcl
d50c97ecd4fdfc0c982323734e4f7a3554366b0b fragments/C/endpoint-hashing.c
a3c78d15e03ff754a35ad2d4d9c5129bd6e0781b examples/Erlang/syncsub.es
d4a51d25b984a549dd99076aa80900d071f9c2d1 examples/Ruby/hwclient.rb
@@ -797,6 +798,7 @@ bccd2903912a0ee9327147df46c2f2ee4af4eb7d examples/PHP/msgqueue.php
5ab6f9eae9b48e19d8d9db8fe00491d7afde1d09 examples/Perl/hwclient.pl
3c6a9991700252ff4bf317ea30374b89f5397369 examples/PHP/ppqueue.php
eac1fdeea054fa75aa75ca66f260c4311e1f20cd fragments/C/fmq-server-methods.c
+ed847f4794451efafbc3fe0147f473d39b0f9d02 examples/C#/ppqueue.cs
050c9a52a5e95e34019579a68f6d69ac4593e074 examples/Haxe/psenvpub.hx
454aaf49cf11eb196137db4b526ade21a29b9678 examples/PHP/rrworker.php
8e636c1772843986c290c680361eb88fb98eeadf examples/Python/clonesrv3.py
@@ -882,7 +884,7 @@ e0262047664aeec36e21064043def139c1fc9155 images/fig70.txt
c5daa5026683f992a38e451a02137c852ac10cf6 examples/Ruby/taskwork.rb
37cae4e61787d0e919eecb92bf8bb120b7af9720 examples/C#/wuclient.cs
b42c1d6d1c4ffafeddf3195ebd8d32454a31d131 examples/PHP/flclient2.php
-475fc02c5d2db1db93a128341110240d89565e76 images/fig3.txt
+f05049e9fe014ac889bf9adf03ef0b1b1786482f images/fig3.txt
49d8e81d1a2a15f28797329da96cf4357c0295b5 listings/Tcl/listing_53.tcl
6d0728c1f389c9146353665ea97e9dccd013c067 examples/Ruby/identity.rb
355f613847209ec070652f0172c7977bb831bbbc fragments/C/clone-methods.c
@@ -1026,8 +1028,8 @@ ac1156ba2f953b3997550affe245164d50925024 examples/PHP/lbbroker2.php
a58db4e6242dcbd31dcfe8248382a69cb5ebf4dc examples/C/rtdealer.c
3505522b83dc283a63a9ce5654cd9d7071612314 images/fig4.txt
98913d674c40172faadc26833ee49e6b298c507c fragments/C/proxy.c
-2f7baf7baed1713272d61725d94f3aa7859e47a1 examples/Go/mspoller.go
b59f86b32ba40e90f104ba6aa9cbb683876b9853 examples/Java/ppworker.java
+2f7baf7baed1713272d61725d94f3aa7859e47a1 examples/Go/mspoller.go
7377682230bfb1631480a93cd27cadacaeb4f1e3 examples/Python/psenvpub.py
-8e4e30e4e224edd0c4a78420a6ddb3c0589e1cfb images/fig26.txt
cf00f05adee687a45fa3c0bd1d1b90a7843f0070 images/fig63.html
+8e4e30e4e224edd0c4a78420a6ddb3c0589e1cfb images/fig26.txt
View
@@ -111,9 +111,9 @@ socket.send ("Hello")
Then what goes onto the wire is a length (one byte for shorter strings) and the string contents, as individual characters[figure].
[[code type="textdiagram" title="A 0MQ string"]]
-+-----+ +-----+-----+-----+-----+-----+
+#-----# #-----+-----+-----+-----+-----#
| 5 | | H | e | l | l | o |
-+-----+ +-----+-----+-----+-----+-----+
+#-----# #-----+-----+-----+-----+-----#
[[/code]]
And if you read this from a C program, you will get something that looks like a string, and might by accident act like a string (if by luck the five bytes find themselves followed by an innocently lurking null), but isn't a proper string. When your client and server don't agree on the string format, you will get weird results.
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
@@ -26,27 +26,39 @@
<path d="M 0 0 L 10 5 L 0 10 z" />
</marker>
</defs><g id="boxes" stroke="black" stroke-width="2" fill="none" >
+<g id="group0">
+ <path id="path0" filter="url(#dsFilter)" fill="#fff" d="M 4.5 8 L 58.5 8 L 58.5 40 L 4.5 40 Z" />
+ <text x="26.1" y="28.8" id="text0" fill="#000" stroke="none" style="font-family:Consolas,Monaco,Anonymous Pro,Anonymous,Bitstream Sans Mono,monospace;font-size:15.2px" >5</text>
+
+</g>
+<g id="group2">
+ <path id="path2" filter="url(#dsFilter)" fill="#fff" d="M 103.5 8 L 373.5 8 L 373.5 40 L 103.5 40 Z" />
+ <text x="125.1" y="28.8" id="text2" fill="#000" stroke="none" style="font-family:Consolas,Monaco,Anonymous Pro,Anonymous,Bitstream Sans Mono,monospace;font-size:15.2px" >H</text>
+
+ <text x="179.1" y="28.8" id="text2" fill="#000" stroke="none" style="font-family:Consolas,Monaco,Anonymous Pro,Anonymous,Bitstream Sans Mono,monospace;font-size:15.2px" >e</text>
+
+ <text x="233.1" y="28.8" id="text2" fill="#000" stroke="none" style="font-family:Consolas,Monaco,Anonymous Pro,Anonymous,Bitstream Sans Mono,monospace;font-size:15.2px" >l</text>
+
+ <text x="287.1" y="28.8" id="text2" fill="#000" stroke="none" style="font-family:Consolas,Monaco,Anonymous Pro,Anonymous,Bitstream Sans Mono,monospace;font-size:15.2px" >l</text>
+
+ <text x="341.1" y="28.8" id="text2" fill="#000" stroke="none" style="font-family:Consolas,Monaco,Anonymous Pro,Anonymous,Bitstream Sans Mono,monospace;font-size:15.2px" >o</text>
+
+</g>
</g>
<g id="lines" stroke="black" stroke-width="2" fill="none" >
+<g id="group84">
+ <path id="path84" d="M 157.5 8 L 157.5 40 " />
+</g>
+<g id="group109">
+ <path id="path109" d="M 211.5 8 L 211.5 40 " />
+</g>
+<g id="group134">
+ <path id="path134" d="M 265.5 8 L 265.5 40 " />
+</g>
+<g id="group159">
+ <path id="path159" d="M 319.5 8 L 319.5 40 " />
+</g>
</g>
<g id="text" fill="black" style="font-family:Consolas,Monaco,Anonymous Pro,Anonymous,Bitstream Sans Mono,monospace;font-size:15.2px" >
-<text x="-0.9" y="12.8" id="text0" fill="#000" >+-----+ </text>
-<text x="98.1" y="12.8" id="text1" fill="#000" >+-----+-----+-----+-----+-----+</text>
-<text x="-0.9" y="28.8" id="text2" fill="#000" >|</text>
-<text x="26.1" y="28.8" id="text3" fill="#000" >5</text>
-<text x="53.1" y="28.8" id="text4" fill="#000" >|</text>
-<text x="98.1" y="28.8" id="text5" fill="#000" >|</text>
-<text x="125.1" y="28.8" id="text6" fill="#000" >H</text>
-<text x="152.1" y="28.8" id="text7" fill="#000" >|</text>
-<text x="179.1" y="28.8" id="text8" fill="#000" >e</text>
-<text x="206.1" y="28.8" id="text9" fill="#000" >|</text>
-<text x="233.1" y="28.8" id="text10" fill="#000" >l</text>
-<text x="260.1" y="28.8" id="text11" fill="#000" >|</text>
-<text x="287.1" y="28.8" id="text12" fill="#000" >l</text>
-<text x="314.1" y="28.8" id="text13" fill="#000" >|</text>
-<text x="341.1" y="28.8" id="text14" fill="#000" >o</text>
-<text x="368.1" y="28.8" id="text15" fill="#000" >|</text>
-<text x="-0.9" y="44.8" id="text16" fill="#000" >+-----+ </text>
-<text x="98.1" y="44.8" id="text17" fill="#000" >+-----+-----+-----+-----+-----+</text>
</g>
</svg>
View
@@ -1,3 +1,3 @@
-+-----+ +-----+-----+-----+-----+-----+
+#-----# #-----+-----+-----+-----+-----#
| 5 | | H | e | l | l | o |
-+-----+ +-----+-----+-----+-----+-----+
+#-----# #-----+-----+-----+-----+-----#

0 comments on commit 76172da

Please sign in to comment.