react 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -27
- package/doc/default-simple.dot +19 -0
- package/doc/default-simple.dot.png +0 -0
- package/examples/default-simple.js +45 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia.html +675 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/37px-Wiktionary-logo-en.svg.png +0 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/closewindow.png +0 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/index(1).php +407 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/index.php +130 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(1).php +3 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(10).php +89 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(2).php +23 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(3).php +153 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(4).php +6 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(5).php +3 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(6).php +96 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(7).php +16 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(8).php +14 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(9).php +123 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load.php +3 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png +0 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/saved_resource +1 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/search-ltr.png +0 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/wikimedia-button.png +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's.html +1369 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/121911_DobbsDigest_Cover.jpg +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/160-x-600-IMU Impact 2012.jpg +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp= +68 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(1) +67 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(2) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(3) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(4) +8 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(5) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461 +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(1) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(2) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(3) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(4) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(5) +431 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(6) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(7) +431 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(8) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(9) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad0St1Sz6Sq0V0Id20628317.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad2331174St1Sz225Sq20825250V0Id4.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/AdTracImage.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/FB.Share +9 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/addthis_widget.js +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/adlink_5242_1183459_0_154_AdId=2355270;BnId=1;itime=820768810;key=231400148+_database_231400148;link= +11 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/beacon.js +7 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/checkauth.js +18 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/colorbox.css +49 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/convert_data.js +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count(1).js +5 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.js +5 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.json +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dataflow1.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/def.html +126 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/defaults.css +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/detect.js +91 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/devtest_left-col-slim.css +30 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqus.js +327 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.css +34 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.js +8 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff(1).css +24 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff.css +24 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dobbs_disqus_logo.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.css +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.js +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqCfg.js +55 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqImg.js +12 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/embed.js +76 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/experience_util.js +636 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/fastbutton.html +11 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ga.js +51 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-facebook_sm.png +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-nav.css +798 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-twitter_sm.png +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h_s_code_remote.js +377 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hintbox_info.jpg +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hub.1326407570.html +3 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/in.js +76 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/insight.min.js +55 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.2.6.min.js +32 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.4.2.min.js +154 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-ui-1.8rc3.custom.min.js +374 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.colorbox-min.js +4 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.min.js +154 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/lib.js +212 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/like.html +214 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/noavatar32.png +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nodetag.js +18 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nonSecureAnonymousFramework +2913 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/p.json +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/plusone.js +32 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/popwindow.js +24 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/q4OyybLB0-A.js +91 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/quant.js +28 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/qxvZoiHdpAF.css +192 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/reply.html +160 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/rss.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/s.js +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource +421 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(1) +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(2) +341 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(3) +127 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/script84.js +113 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/scripts.js +30 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sh72.html +5 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shAutoloader.js +17 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAS3.js +59 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAppleScript.js +75 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushBash.js +59 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCSharp.js +65 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushColdFusion.js +100 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCpp.js +97 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCss.js +91 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDelphi.js +55 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDiff.js +41 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushErlang.js +52 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushGroovy.js +67 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJScript.js +52 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJava.js +57 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJavaFX.js +58 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPerl.js +72 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPhp.js +88 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPlain.js +33 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPowerShell.js +74 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPython.js +64 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushRuby.js +55 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSass.js +94 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushScala.js +51 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSql.js +66 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushVb.js +56 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushXml.js +69 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore.css +226 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCoreDefault.css +333 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore_new.js +17 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shLegacy.js +17 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shThemeDefault.css +117 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share-button-css +67 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_email_icon.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_print_icon.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sidebar.js +88 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/superfooter_936.css +186 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/svrGP.aspx +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/t.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thickbox.js +343 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thread.js +128 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/togglediv.js +15 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/tweet_button.html +3 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ubmtechweb_logo_sm.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/upload.html +91 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/welcome.js +7 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widget74.css +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widgets.js +40 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia.html +904 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/50px-Question_book-new.svg.png +0 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/closewindow.png +0 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/index(1).php +407 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/index.php +130 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(1).php +3 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(10).php +89 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(2).php +23 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(3).php +153 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(4).php +6 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(5).php +3 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(6).php +96 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(7).php +16 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(8).php +14 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(9).php +123 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load.php +3 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png +0 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/saved_resource +1 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/search-ltr.png +0 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/wikimedia-button.png +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS.html +113 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/6654_111305815684_541245684_2583159_5383291_n_normal.jpg +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/MARC3_normal.jpg +2 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/beacon.js +7 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46 +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46_normal.jpeg +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/clouds2_normal.jpg +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/count.json +1 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/def.html +126 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/defaults.css +1 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/disqus.js +327 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.css +1 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.js +66 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/embed.js +76 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/example1.dot +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/ga.js +51 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/get_num_replies.js +79 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/hub.1326407570.html +3 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/lib.js +212 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/quant.js +28 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/reply.html +160 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/t.gif +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/thread.js +128 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/tweet_button.1326407570.html +3 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/twitter_normal.jpg +2 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/upload.html +91 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/widgets.js +40 -0
- package/package.json +2 -2
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
.mw-hierotable{border:0 !important;border-spacing:0 !important}.mw-hiero-outer{display:inline}.mw-hierotable td{border:0 !important;padding:0 !important;text-align:center !important;vertical-align:middle !important}@media print{ a.stub,a.new{color:#ba0000;text-decoration:none}#toc{border:1px solid #aaaaaa;background-color:#f9f9f9;padding:5px}.tocindent{margin-left:2em}.tocline{margin-bottom:0px} div.floatright{float:right;clear:right;position:relative;margin:0.5em 0 0.8em 1.4em}div.floatright p{font-style:italic}div.floatleft{float:left;clear:left;position:relative;margin:0.5em 1.4em 0.8em 0}div.floatleft p{font-style:italic}div.center{text-align:center} div.thumb{border:none;width:auto;margin-top:0.5em;margin-bottom:0.8em;background-color:transparent}div.thumbinner{border:1px solid #cccccc;padding:3px !important;background-color:White;font-size:94%;text-align:center;overflow:hidden}html .thumbimage{border:1px solid #cccccc}html .thumbcaption{border:none;text-align:left;line-height:1.4em;padding:3px !important;font-size:94%}div.magnify{display:none} div.tright{float:right;clear:right;margin:0.5em 0 0.8em 1.4em} div.tleft{float:left;clear:left;margin:0.5em 1.4em 0.8em 0}img.thumbborder{border:1px solid #dddddd} table.rimage{float:right;width:1pt;position:relative;margin-left:1em;margin-bottom:1em;text-align:center}body{background:White; color:Black;margin:0;padding:0}.noprint,div#jump-to-nav,div.top,div#column-one,#colophon,.editsection,.toctoggle,.tochidden,div#f-poweredbyico,div#f-copyrightico,li#viewcount,li#about,li#disclaimer,li#privacy,#footer-places,#mw-hidden-catlinks{ display:none}ul{list-style-type:square}#content{background:none;border:none ! important;padding:0 ! important;margin:0 ! important;direction:ltr}#footer{background :white;color :black;margin-top:1em;border-top:1px solid #AAA;direction:ltr}h1,h2,h3,h4,h5,h6{font-weight:bold}p,.documentDescription{margin:1em 0 ! important;line-height:1.2em}.tocindent p{margin:0 0 0 0 ! important}pre{border:1pt dashed black;white-space:pre;font-size:8pt;overflow:auto;padding:1em 0;background:white;color:black}table.listing,table.listing td{border:1pt solid black;border-collapse:collapse}a{color:Black !important;background:none !important;padding:0 !important}a:link,a:visited{color:#520;background:transparent;text-decoration:underline}#content a.external.text:after,#content a.external.autonumber:after{ content:" (" attr(href) ") "}#globalWrapper{width:100% !important;min-width:0 !important}#content{background:white;color:black}#column-content{margin:0 !important}#column-content #content{padding:1em;margin:0 !important} a,a.external,a.new,a.stub{color:black ! important;text-decoration:none ! important} a,a.external,a.new,a.stub{color:inherit ! important;text-decoration:inherit ! important}img{border:none;vertical-align:middle} span.texhtml{font-family:serif}#siteNotice{display:none} li.gallerybox{vertical-align:top;border:solid 2px white;display:-moz-inline-box;display:inline-block}ul.gallery,li.gallerybox{zoom:1;*display:inline}ul.gallery{margin:2px;padding:2px;display:block}li.gallerycaption{font-weight:bold;text-align:center;display:block;word-wrap:break-word}li.gallerybox div.thumb{text-align:center;border:1px solid #ccc;margin:2px}div.gallerytext{overflow:hidden;font-size:94%;padding:2px 4px;word-wrap:break-word} table.diff{background:white}td.diff-otitle{background:#ffffff}td.diff-ntitle{background:#ffffff}td.diff-addedline{background:#ccffcc;font-size:smaller;border:solid 2px black}td.diff-deletedline{background:#ffffaa;font-size:smaller;border:dotted 2px black}td.diff-context{background:#eeeeee;font-size:smaller}.diffchange{color:silver;font-weight:bold;text-decoration:underline} table.wikitable{margin:1em 1em 1em 0;border:1px #aaa solid;background:white;border-collapse:collapse}.wikitable th,.wikitable td{border:1px #aaa solid;padding:0.2em}.wikitable th{text-align:center;background:white;font-weight:bold}.wikitable caption{font-weight:bold}a.sortheader{margin:0px 0.3em} .wikitable,.thumb,img{page-break-inside:avoid}h2,h3,h4,h5,h6,h7{page-break-after:avoid}p{widows:3;orphans:3} .catlinks ul{display:inline;margin:0px;list-style:none;list-style-type:none;list-style-image:none;vertical-align:middle !ie}.catlinks li{display:inline-block;line-height:1.15em;padding:0 .4em;border-left:1px solid #AAA;margin:0.1em 0;zoom:1;display:inline !ie}.catlinks li:first-child{padding-left:.2em;border-left:none}}@media screen{ .mw-content-ltr{direction:ltr}.mw-content-rtl{direction:rtl} .sitedir-ltr textarea,.sitedir-ltr input{direction:ltr}.sitedir-rtl textarea,.sitedir-rtl input{direction:rtl} input[type="submit"],input[type="button"],input[type="reset"],input[type="file"]{direction:ltr} textarea[dir="ltr"],input[dir="ltr"]{direction:ltr}textarea[dir="rtl"],input[dir="rtl"]{direction:rtl} abbr,acronym,.explain{border-bottom:1px dotted black;cursor:help} .mw-plusminus-pos{color:#006400} .mw-plusminus-neg{color:#8b0000} .mw-plusminus-null{color:#aaa} .allpagesredirect,.redirect-in-category,.watchlistredir{font-style:italic} span.comment{font-style:italic}span.changedby{font-size:95%} .texvc{direction:ltr;unicode-bidi:embed}img.tex{vertical-align:middle}span.texhtml{font-family:serif} #wikiPreview.ontop{margin-bottom:1em} #editform,#toolbar,#wpTextbox1{clear:both}#toolbar img{cursor:pointer}div#mw-js-message{margin:1em 5%;padding:0.5em 2.5%;border:solid 1px #ddd;background-color:#fcfcfc} .editsection{float:right;margin-left:5px} .mw-content-ltr .editsection,.mw-content-rtl .mw-content-ltr .editsection{float:right}.mw-content-rtl .editsection,.mw-content-ltr .mw-content-rtl .editsection{float:left} h2#filehistory{clear:both}table.filehistory th,table.filehistory td{vertical-align:top}table.filehistory th{text-align:left}table.filehistory td.mw-imagepage-filesize,table.filehistory th.mw-imagepage-filesize{white-space:nowrap}table.filehistory td.filehistory-selected{font-weight:bold} li span.deleted,span.history-deleted{text-decoration:line-through;color:#888;font-style:italic} .not-patrolled{background-color:#ffa}.unpatrolled{font-weight:bold;color:red}div.patrollink{font-size:75%;text-align:right} td.mw-label{text-align:right}td.mw-input{text-align:left}td.mw-submit{text-align:left}td.mw-label{vertical-align:top}.prefsection td.mw-label{width:20%}.prefsection table{width:100%}td.mw-submit{white-space:nowrap}table.mw-htmlform-nolabel td.mw-label{width:0 !important}tr.mw-htmlform-vertical-label td.mw-label{text-align:left !important}.mw-htmlform-invalid-input td.mw-input input{border-color:red}.mw-htmlform-multiselect-flatlist div.mw-htmlform-multiselect-item{display:inline;margin-right:1em;white-space:nowrap}input#wpSummary{width:80%} .thumbcaption{text-align:left}.magnify{float:right} #catlinks{ text-align:left}#catlinks ul{display:inline;margin:0px;padding:0px;list-style:none;list-style-type:none;list-style-image:none;vertical-align:middle !ie}#catlinks li{display:inline-block;line-height:1.35em;padding:0 .7em;border-left:1px solid #AAA;margin:0.3em 0;zoom:1;display:inline !ie}#catlinks li:first-child{padding-left:.4em;border-left:none} .mw-hidden-cats-hidden{display:none}.catlinks-allhidden{display:none} p.mw-ipb-conveniencelinks,p.mw-protect-editreasons,p.mw-filedelete-editreasons,p.mw-delete-editreasons,p.mw-revdel-editreasons{font-size:90%;text-align:right} .os-suggest{overflow:auto;overflow-x:hidden;position:absolute;top:0px;left:0px;width:0px;background-color:white;background-color:Window;border-style:solid;border-color:#AAAAAA;border-width:1px;z-index:99;font-size:95%}table.os-suggest-results{font-size:95%;cursor:pointer;border:0;border-collapse:collapse;width:100%}.os-suggest-result,.os-suggest-result-hl{white-space:nowrap;background-color:white;background-color:Window;color:black;color:WindowText;padding:2px}.os-suggest-result-hl,.os-suggest-result-hl-webkit{background-color:#4C59A6;color:white}.os-suggest-result-hl{ background-color:Highlight;color:HighlightText}.os-suggest-toggle{position:relative;left:1ex;font-size:65%}.os-suggest-toggle-def{position:absolute;top:0px;left:0px;font-size:65%;visibility:hidden} .autocomment{color:gray}#pagehistory .history-user{margin-left:0.4em;margin-right:0.2em}#pagehistory span.minor{font-weight:bold}#pagehistory li{border:1px solid white}#pagehistory li.selected{background-color:#f9f9f9;border:1px dashed #aaa}.mw-history-revisiondelete-button,#mw-fileduplicatesearch-icon{float:right} .newpage,.minoredit,.botedit{font-weight:bold}#shared-image-dup,#shared-image-conflict{font-style:italic} div.mw-warning-with-logexcerpt{padding:3px;margin-bottom:3px;border:2px solid #2F6FAB;clear:both}div.mw-warning-with-logexcerpt ul li{font-size:90%} span.mw-revdelundel-link,strong.mw-revdelundel-link{font-size:90%}span.mw-revdelundel-hidden,input.mw-revdelundel-hidden{visibility:hidden}td.mw-revdel-checkbox,th.mw-revdel-checkbox{padding-right:10px;text-align:center} a.feedlink{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH2AkOCjkSL9xYhAAAAc9JREFUKJE90LFrU1EYQPHzffe+l/iSVkXTmNiANBU7iE5OLrbSVYKIiy5dnARB3FwEB5dOOhQKuthJEEHRsUXBoosO0lKKEYRa29LWQk3S5L53r0PVv+D8OPJlolrrr1ZmI7F1BFEjqBXECGJAjSBCaLddc7u5Mmb7q5U5007rWh5E9rYR/xsTBBXBWMVEglqRpGiGhcE5G6kdyugxcGsGyRdJ15ZwC29IF55jNEWt8K+aFOMhc+dC7Z6SITjC7ga2MkI8cpH41Dhh7RPa20Gt4toZac+IqhFMTpG0hVt8RetJg967SaTvGLnGNKZ0EtfOcB1P5jyqVjCRkIzfpnjtMYXrT2FrCff6JqhFRx/gnCXtZHgXUFHQSGg/u4Gbf4T2lYkvTaFGce8fIgePY09fwXU8Pg3sk2JFu5v4lQ+4FxPge+j5u3Q+v8TvrBKfbZB1PT4LqJh9Uv7yFLmrM2i+gPs4jRyqIaUz7C2+xZZOEA4cJaSgaAhqhbC1DK0N3K9NusvzAHB4GLf+HQBJBsiCD7J6/9zXI2VbVyv/b6Sdv1e6nrTryboB7wVbyjXt1rcfo0Frs4UkqvtUJHMBjyVEAcSjFiQJwRvf3F3/OfYH/dDFWrCooaIAAAAASUVORK5CYII=) center left no-repeat;background:url(//bits.wikimedia.org/skins-1.18/common/images/feed-icon.png?2011-09-19T16:10:00Z) center left no-repeat!ie;padding-left:16px} .plainlinks a{background:none !important;padding:0 !important} .rtl a.external.free,.rtl a.external.autonumber{direction:ltr;unicode-bidi:embed} table.wikitable{margin:1em 1em 1em 0;background:#f9f9f9;border:1px #aaa solid;border-collapse:collapse;color:black}.wikitable th,.wikitable td{border:1px #aaa solid;padding:0.2em}.wikitable th{background:#f2f2f2;text-align:center}.wikitable caption{font-weight:bold} table.collapsed tr.collapsable{display:none} .success{color:green;font-size:larger}.warning{color:#FFA500; font-size:larger}.error{color:red;font-size:larger}.errorbox,.warningbox,.successbox{font-size:larger;border:2px solid;padding:.5em 1em;float:left;margin-bottom:2em;color:#000}.errorbox{border-color:red;background-color:#fff2f2}.warningbox{border-color:#FF8C00; background-color:#FFFFC0}.successbox{border-color:green;background-color:#dfd}.errorbox h2,.warningbox h2,.successbox h2{font-size:1em;font-weight:bold;display:inline;margin:0 .5em 0 0;border:none} .mw-infobox{border:2px solid #ff7f00;margin:0.5em;clear:left;overflow:hidden}.mw-infobox-left{margin:7px;float:left;width:35px}.mw-infobox-right{margin:0.5em 0.5em 0.5em 49px} .previewnote{color:#c00;margin-bottom:1em}.previewnote p{text-indent:3em;margin:0.8em 0}.visualClear{clear:both}#mw_trackbacks{border:solid 1px #bbbbff;background-color:#eeeeff;padding:0.2em} .TablePager{min-width:80%;border-collapse:collapse}.TablePager_nav{margin:0 auto}.TablePager_nav td{padding:3px;text-align:center}.TablePager_nav a{text-decoration:none}.TablePager,.TablePager td,.TablePager th{border:1px solid #aaaaaa;padding:0 0.15em 0 0.15em}.TablePager th{background-color:#eeeeff}.TablePager td{background-color:#ffffff}.TablePager tr:hover td{background-color:#eeeeff}.imagelist td,.imagelist th{white-space:nowrap}.imagelist .TablePager_col_links{background-color:#eeeeff}.imagelist .TablePager_col_img_description{white-space:normal}.imagelist th.TablePager_sort{background-color:#ccccff} ul#filetoc{text-align:center;border:1px solid #aaaaaa;background-color:#f9f9f9;padding:5px;font-size:95%;margin-bottom:0.5em;margin-left:0;margin-right:0}#filetoc li{display:inline;list-style-type:none;padding-right:2em} table.mw_metadata{font-size:0.8em;margin-left:0.5em;margin-bottom:0.5em;width:400px}table.mw_metadata caption{font-weight:bold}table.mw_metadata th{font-weight:normal}table.mw_metadata td{padding:0.1em}table.mw_metadata{border:none;border-collapse:collapse}table.mw_metadata td,table.mw_metadata th{text-align:center;border:1px solid #aaaaaa;padding-left:5px;padding-right:5px}table.mw_metadata th{background-color:#f9f9f9}table.mw_metadata td{background-color:#fcfcfc}table.mw_metadata ul.metadata-langlist{list-style-type:none;list-style-image:none;padding-right:5px;padding-left:5px;margin:0} .mw-content-ltr ul,.mw-content-rtl .mw-content-ltr ul{ margin:0.3em 0 0 1.5em;padding:0}.mw-content-rtl ul,.mw-content-ltr .mw-content-rtl ul{ margin:0.3em 1.5em 0 0;padding:0}.mw-content-ltr ol,.mw-content-rtl .mw-content-ltr ol{ margin:0.3em 0 0 3.2em;padding:0}.mw-content-rtl ol,.mw-content-ltr .mw-content-rtl ol{ margin:0.3em 3.2em 0 0;padding:0} .mw-content-ltr ul,.mw-content-rtl .mw-content-ltr ul{margin:.3em 0 0 1.5em}.mw-content-rtl ul,.mw-content-ltr .mw-content-rtl ul{margin:.3em 1.5em 0 0}.mw-content-ltr ol,.mw-content-rtl .mw-content-ltr ol{margin:.3em 0 0 3.2em}.mw-content-rtl ol,.mw-content-ltr .mw-content-rtl ol{margin:.3em 3.2em 0 0} li.gallerybox{vertical-align:top;border:solid 2px white;display:-moz-inline-box;display:inline-block}ul.gallery,li.gallerybox{zoom:1;*display:inline}ul.gallery{margin:2px;padding:2px;display:block}li.gallerycaption{font-weight:bold;text-align:center;display:block;word-wrap:break-word}li.gallerybox div.thumb{text-align:center;border:1px solid #ccc;background-color:#f9f9f9;margin:2px}li.gallerybox div.thumb img{display:block;margin:0 auto}div.gallerytext{overflow:hidden;font-size:94%;padding:2px 4px;word-wrap:break-word}.mw-ajax-loader{background-image:url(data:image/gif;base64,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);background-image:url(//bits.wikimedia.org/skins-1.18/common/images/ajax-loader.gif?2011-09-19T16:11:40Z)!ie;background-position:center center;background-repeat:no-repeat;padding:16px;position:relative;top:-16px}.mw-small-spinner{padding:10px !important;margin-right:0.6em;background-image:url(data:image/gif;base64,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);background-image:url(//bits.wikimedia.org/skins-1.18/common/images/spinner.gif?2011-09-19T16:10:00Z)!ie;background-position:center center;background-repeat:no-repeat} h1:lang(as),h1:lang(bn),h1:lang(gu),h1:lang(hi),h1:lang(kn),h1:lang(ml),h1:lang(mr),h1:lang(or),h1:lang(pa),h1:lang(sa),h1:lang(ta),h1:lang(te){line-height:1.5em !important}h2:lang(as),h3:lang(as),h4:lang(as),h5:lang(as),h6:lang(as),h2:lang(bn),h3:lang(bn),h4:lang(bn),h5:lang(bn),h6:lang(bn),h2:lang(gu),h3:lang(gu),h4:lang(gu),h5:lang(gu),h6:lang(gu),h2:lang(hi),h3:lang(hi),h4:lang(hi),h5:lang(hi),h6:lang(hi),h2:lang(kn),h3:lang(kn),h4:lang(kn),h5:lang(kn),h6:lang(kn),h2:lang(ml),h3:lang(ml),h4:lang(ml),h5:lang(ml),h6:lang(ml),h2:lang(mr),h3:lang(mr),h4:lang(mr),h5:lang(mr),h6:lang(mr),h2:lang(or),h3:lang(or),h4:lang(or),h5:lang(or),h6:lang(or),h2:lang(pa),h3:lang(pa),h4:lang(pa),h5:lang(pa),h6:lang(pa),h2:lang(sa),h3:lang(sa),h4:lang(sa),h5:lang(sa),h6:lang(sa),h2:lang(ta),h3:lang(ta),h4:lang(ta),h5:lang(ta),h6:lang(ta),h2:lang(te),h3:lang(te),h4:lang(te),h5:lang(te),h6:lang(te){line-height:1.2em} ol:lang(bcc) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(mzn) li{list-style-type:-moz-persian;list-style-type:persian}ol:lang(ckb) li{list-style-type:-moz-arabic-indic;list-style-type:arabic-indic}ol:lang(as) li,ol:lang(bn) li{list-style-type:-moz-bengali;list-style-type:bengali}ol:lang(or) li{list-style-type:-moz-oriya;list-style-type:oriya}#toc ul,.toc ul{margin:.3em 0} .mw-content-ltr .toc ul,.mw-content-ltr #toc ul,.mw-content-rtl .mw-content-ltr .toc ul,.mw-content-rtl .mw-content-ltr #toc ul{text-align:left}.mw-content-rtl .toc ul,.mw-content-rtl #toc ul,.mw-content-ltr .mw-content-rtl .toc ul,.mw-content-ltr .mw-content-rtl #toc ul{text-align:right}.mw-content-ltr .toc ul ul,.mw-content-ltr #toc ul ul,.mw-content-rtl .mw-content-ltr .toc ul ul,.mw-content-rtl .mw-content-ltr #toc ul ul{margin:0 0 0 2em}.mw-content-rtl .toc ul ul,.mw-content-rtl #toc ul ul,.mw-content-ltr .mw-content-rtl .toc ul ul,.mw-content-ltr .mw-content-rtl #toc ul ul{margin:0 2em 0 0}#toc #toctitle,.toc #toctitle,#toc .toctitle,.toc .toctitle{direction:ltr} .mw-help-field-hint{display:none;margin-left:2px;margin-bottom:-8px;padding:0px 0px 0px 15px;background-image:url(data:image/gif;base64,R0lGODlhCwALALMAAP///01NTZOTk1lZWefn57i4uJSUlPPz82VlZdDQ0HFxcaysrNvb28TExAAAAAAAACH5BAAAAAAALAAAAAALAAsAAAQrUIRJqQQ455nNNBgHJANBDAwgZsVwqIG2IEQYYwXy2lq/Kg3NqqeSVCqCCAA7);background-image:url(//bits.wikimedia.org/skins-1.18/common/images/help-question.gif?2011-09-19T16:10:00Z)!ie;background-position:left center;background-repeat:no-repeat;cursor:pointer;font-size:.8em;text-decoration:underline;color:#0645ad}.mw-help-field-hint:hover{background-image:url(data:image/gif;base64,R0lGODlhCwALALMAAAtop+7z+GCWwpW51oStz8rb6yZzrafF3bnR5Nzn8QBcoD91oABQmf///wAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE5NkQ0QUQzRjI0NzRCNUQwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBN0FFQTQwQjlGQzExREY5RDlBQTRBODQyMkJCMkFDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBN0FFQTNGQjlGQzExREY5RDlBQTRBODQyMkJCMkFDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkM3RjExNzQwNzIwNjgxMTk1RkVBQ0ZBOEQxNTU5MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTk2RDRBRDNGMjQ3NEI1RDAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQAAAAAACwAAAAACwALAAAEK3CxSalsOOeZxRQY1yBKkihFI2aDEqiMRgBJGGMD8NpavxoHzaqnklQqiwgAOw==);background-image:url(//bits.wikimedia.org/skins-1.18/common/images/help-question-hover.gif?2011-09-19T16:11:40Z)!ie}.mw-help-field-data{display:block;background-color:#d6f3ff;padding:5px 8px 4px 8px;border:1px solid #5dc9f4;margin-left:20px}.tipsy{padding:5px 5px 10px;font-size:12px;position:absolute;z-index:100000;overflow:visible}.tipsy-inner{padding:5px 8px 4px 8px;background-color:#d6f3ff;color:black;border:1px solid #5dc9f4;max-width:300px;text-align:left}.tipsy-arrow{position:absolute;background:url(data:image/gif;base64,R0lGODlhDQANAMQAAPf399bz/9vu9m/O9NXy/8Pm9svp9pfd+YLW943X9LTn++z093XQ9WnM9OLw9p/c9YTU9InY9/T292DK9Jre+afj+rvq/Nzv9rjk9brl9cPt/ZLb+GbL9MLs/ZHb+KLh+iH5BAAAAAAALAAAAAANAA0AAAVK4BGMZBkcg2WW1lBEKxkVAFTFFQQAwkSYhIlgB3hQTJQHEbBodEiaxmIJyHhIGwwVIGEoAgqGZAswIAIIA3mX+CTWOwfHAd9dtiEAOw==) no-repeat top left;background:url(//bits.wikimedia.org/skins-1.18/common/images/tipsy-arrow.gif?2011-09-19T16:11:40Z) no-repeat top left!ie;width:13px;height:13px}.tipsy-se .tipsy-arrow{bottom:-2px;right:10px;background-position:0% 100%} .ltr{ direction:ltr;unicode-bidi:embed}#mw-clearyourcache,#mw-sitecsspreview,#mw-sitejspreview,#mw-usercsspreview,#mw-userjspreview{direction:ltr;unicode-bidi:embed} .diff-currentversion-title,.diff{direction:ltr;unicode-bidi:embed} .diff-contentalign-right td{direction:rtl;unicode-bidi:embed} .diff-contentalign-left td{direction:ltr;unicode-bidi:embed}.diff-otitle,.diff-ntitle,.diff-lineno{direction:ltr !important;unicode-bidi:embed}#mw-revision-info,#mw-revision-nav{direction:ltr} div.tright,div.floatright,table.floatright{clear:right;float:right}div.tleft,div.floatleft,table.floatleft{float:left;clear:left}div.floatright,table.floatright,div.floatleft,table.floatleft{position:relative} #mw-credits a{unicode-bidi:embed}}@media screen{ html,body{height:100%;margin:0;padding:0;font-family:sans-serif;font-size:1em}body{background-color:#f3f3f3;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABRJREFUeF4FwTEBAAAAwJD1D+weGQD4APc0a6VeAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/page-base.png?2011-09-19T16:11:40Z)!ie} div#content{margin-left:10em;padding:1em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhJREFUeF4FwTEBAAAAgjD7FzESWfjYdgwEoAJ4lTsaxgAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/border.png?2011-09-19T16:11:40Z)!ie;background-position:top left;background-repeat:repeat-y;background-color:white;color:black;direction:ltr} #mw-page-base{height:5em;background-color:white;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADpJREFUeF5VjUkOAEAIwoD//7lzGJd4MJHGSoBImkFETP67CdLldUd7KC6f8fv3+psd8znbtU5x354HaWQjOx76v7MAAAAASUVORK5CYII=);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/page-fade.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:repeat-x}#mw-head-base{margin-top:-5em;margin-left:10em;height:5em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhJREFUeF4FwTEBAAAAgjD7FzESWfjYdgwEoAJ4lTsaxgAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/border.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:repeat-x}div#mw-head{position:absolute;top:0;right:0;width:100%}div#mw-head h5{margin:0;padding:0} div.emptyPortlet{display:none} #p-personal{position:absolute;top:0;right:0.75em}#p-personal h5{display:none}#p-personal ul{list-style:none;margin:0;padding-left:10em; } #p-personal li{line-height:1.125em;float:left} #p-personal li{margin-left:0.75em;margin-top:0.5em;font-size:0.75em;white-space:nowrap} #left-navigation{position:absolute;left:10em;top:2.5em}#right-navigation{float:right;margin-top:2.5em} div.vectorTabs h5,div.vectorMenu h5 span{display:none} div.vectorTabs{float:left;height:2.5em}div.vectorTabs{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:no-repeat;padding-left:1px} div.vectorTabs ul{float:left}div.vectorTabs ul{height:100%;list-style:none;margin:0;padding:0} div.vectorTabs ul li{float:left} div.vectorTabs ul li{line-height:1.125em;display:inline-block;height:100%;margin:0;padding:0;background-color:#f3f3f3;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAIAAADITs03AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADxJREFUeF7litsRACAMwrD77+Q0rtGoV98r+MEFchhgkr4NnZyb3bk/LM/yMCjiH4wots/++hYR3iXLJVWUBS1AtOi2fwAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-normal-fade.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:repeat-x;white-space:nowrap} div.vectorTabs ul > li{display:block}div.vectorTabs li.selected{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkAQAAAABvV2fNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABVJREFUeF7dwQEBAAAAQCDTTfdD4WOJ5TIB3ib9EgAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-current-fade.png?2011-09-19T16:11:40Z)!ie} div.vectorTabs li a{display:inline-block;height:1.9em;padding-left:0.5em;padding-right:0.5em;color:#0645ad;cursor:pointer;font-size:0.8em} div.vectorTabs li > a{display:block}div.vectorTabs li.icon a{background-position:bottom right;background-repeat:no-repeat} div.vectorTabs span a{display:inline-block;padding-top:1.25em} div.vectorTabs span > a{float:left;display:block}div.vectorTabs span{display:inline-block;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-position:bottom right;background-repeat:no-repeat}div.vectorTabs li.selected a,div.vectorTabs li.selected a:visited{color:#333333;text-decoration:none}div.vectorTabs li.new a,div.vectorTabs li.new a:visited{color:#a55858} div.vectorMenu{direction:ltr;float:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQCAMAAAAlM38UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA9QTFRFsbGxmpqa3d3deXl58/n79CzHcQAAAAV0Uk5T/////wD7tg5TAAAAMklEQVR42mJgwQoYBkqYiZEZAhiZUFRDxWGicEPA4nBRhNlAcYQokpVMDEwD6kuAAAMAyGMFQVv5ldcAAAAASUVORK5CYII=);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/arrow-down-icon.png?2011-10-16T22:58:20Z)!ie;background-position:100% 60%;background-repeat:no-repeat;cursor:pointer}div.vectorMenuFocus{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQBAMAAADgw5IVAAAAAXNSR0IArs4c6QAAABVQTFRFmpqakpKSra2tsbGxv7+/3d3d4+PjZlmM5AAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAmSURBVAjXY2CgGmBTFBQUVINykgQFhRIQEmpwVUlwYaCEG8WWAgARKQL1ECU8IAAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/arrow-down-focus-icon.png?2011-10-16T22:58:20Z)!ie;background-position:100% 60%} body.rtl div.vectorMenu{direction:rtl} div#mw-head div.vectorMenu h5{float:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-repeat:no-repeat} div#mw-head div.vectorMenu h5{background-position:bottom left;margin-left:-1px} div#mw-head div.vectorMenu > h5{background-image:none}div#mw-head div.vectorMenu h4{display:inline-block;float:left;font-size:0.8em;padding-left:0.5em;padding-top:1.375em;font-weight:normal;border:none} div.vectorMenu h5 a{display:inline-block;width:24px;height:2.5em;text-decoration:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-repeat:no-repeat} div.vectorMenu h5 a{background-position:bottom right} div.vectorMenu h5 > a{display:block}div.vectorMenu div.menu{position:relative;display:none;clear:both;text-align:left} body.rtl div.vectorMenu div.menu{margin-left:24px} body.rtl div.vectorMenu > div.menu{margin-left:auto} body.rtl div.vectorMenu > div.menu,x:-moz-any-link{margin-left:23px} div.vectorMenu:hover div.menu,div.vectorMenu div.menuForceShow{display:block}div.vectorMenu ul{position:absolute;background-color:white;border:solid 1px silver;border-top-width:0;list-style:none;list-style-image:none;list-style-type:none;padding:0;margin:0;margin-left:-1px;text-align:left} div.vectorMenu ul,x:-moz-any-link{min-width:5em} div.vectorMenu ul,x:-moz-any-link,x:default{min-width:0}div.vectorMenu li{padding:0;margin:0;text-align:left;line-height:1em} div.vectorMenu li a{display:inline-block;padding:0.5em;white-space:nowrap;color:#0645ad;cursor:pointer;font-size:0.8em} div.vectorMenu li > a{display:block}div.vectorMenu li.selected a,div.vectorMenu li.selected a:visited{color:#333333;text-decoration:none} #p-search h5{display:none} #p-search{float:left}#p-search{margin-right:0.5em;margin-left:0.5em}#p-search form,#p-search input{margin:0;margin-top:0.4em}div#simpleSearch{display:block;width:14em;height:1.4em;margin-top:0.65em;position:relative;min-height:1px; border:solid 1px #AAAAAA;color:black;background-color:white;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAQCAIAAABY/YLgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACZJREFUeF5diqERACAQgID95/3s+cFg4CDQzASkXl4jidvrCPzfA7puAx52W1pnAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/search-fade.png?2011-09-19T16:11:40Z)!ie;background-position:top left;background-repeat:repeat-x}div#simpleSearch label{ font-size:13px;top:0.25em;direction:ltr}div#simpleSearch input{color:black;direction:ltr}div#simpleSearch input:focus{outline:none}div#simpleSearch input.placeholder{color:#999999}div#simpleSearch input::-webkit-input-placeholder{color:#999999}div#simpleSearch input#searchInput{position:absolute;top:0;left:0;width:90%;margin:0;padding:0;padding-left:0.2em;padding-top:0.2em;padding-bottom:0.2em;outline:none;border:none; font-size:13px;background-color:transparent;direction:ltr}div#simpleSearch button#searchButton{position:absolute;width:10%;right:0;top:0;padding:0;padding-top:0.3em;padding-bottom:0.2em;padding-right:0.4em;margin:0;border:none;cursor:pointer;background-color:transparent;background-image:none} div#simpleSearch button#searchButton img{border:none;margin:0;margin-top:-3px;padding:0} div#simpleSearch button#searchButton > img{margin:0} div#mw-panel{position:absolute;top:160px;padding-top:1em;width:10em;left:0}div#mw-panel div.portal{padding-bottom:1.5em;direction:ltr}div#mw-panel div.portal h5{font-weight:normal;color:#444444;padding:0.25em;padding-top:0;padding-left:1.75em;cursor:default;border:none;font-size:0.75em}div#mw-panel div.portal div.body{margin:0;padding-top:0.5em;margin-left:1.25em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAAABCAAAAAAphRnkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeF61yMEJACAQxMCN/Xfr/yIsaAfOJxC2UTPWS6f5gABhUTedBz7fGPSonIP/AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/portal-break.png?2011-09-19T16:11:40Z)!ie;background-repeat:no-repeat;background-position:top left}div#mw-panel div.portal div.body ul{list-style:none;list-style-image:none;list-style-type:none;padding:0;margin:0}div#mw-panel div.portal div.body ul li{line-height:1.125em;padding:0;padding-bottom:0.5em;margin:0;overflow:hidden;font-size:0.75em}div#mw-panel div.portal div.body ul li a{color:#0645ad}div#mw-panel div.portal div.body ul li a:visited{color:#0b0080} div#footer{margin-left:10em;margin-top:0;padding:0.75em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhJREFUeF4FwTEBAAAAgjD7FzESWfjYdgwEoAJ4lTsaxgAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/border.png?2011-09-19T16:11:40Z)!ie;background-position:top left;background-repeat:repeat-x;direction:ltr}div#footer ul{list-style:none;list-style-image:none;list-style-type:none;margin:0;padding:0}div#footer ul li{margin:0;padding:0;padding-top:0.5em;padding-bottom:0.5em;color:#333333;font-size:0.7em}div#footer #footer-icons{float:right} body.ltr div#footer #footer-places{float:left}div#footer #footer-info li{line-height:1.4em}div#footer #footer-icons li{float:left;margin-left:0.5em;line-height:2em;text-align:right}div#footer #footer-places li{float:left;margin-right:1em;line-height:2em} #p-logo{position:absolute;top:-160px;left:0;width:10em;height:160px}#p-logo a{display:block;width:10em;height:160px;background-repeat:no-repeat;background-position:center center;text-decoration:none} #preftoc{ width:100%;float:left;clear:both;margin:0 !important;padding:0 !important;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAhCAQAAACysAk0AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAABAAAAIQBSEXtPAAAAAmJLR0QA/vCI/CkAAAAmSURBVAjXY2BgYPj3n+k/AwL9g5Fwxl8GJgYGpr+ogmgITQuSgQA1QiAL/go8LAAAACV0RVh0Y3JlYXRlLWRhdGUAMjAwOS0wOC0wOVQxOTowNTo0MSswMDowMCYO2tEAAAAldEVYdG1vZGlmeS1kYXRlADIwMDktMDgtMDlUMTk6MDU6NDErMDA6MDB5v6zlAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/preferences-break.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:no-repeat}#preftoc li{ float:left;margin:0;padding:0;padding-right:1px;height:2.25em;white-space:nowrap;list-style-type:none;list-style-image:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAhCAQAAACysAk0AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAABAAAAIQBSEXtPAAAAAmJLR0QA/vCI/CkAAAAmSURBVAjXY2BgYPj3n+k/AwL9g5Fwxl8GJgYGpr+ogmgITQuSgQA1QiAL/go8LAAAACV0RVh0Y3JlYXRlLWRhdGUAMjAwOS0wOC0wOVQxOTowNTo0MSswMDowMCYO2tEAAAAldEVYdG1vZGlmeS1kYXRlADIwMDktMDgtMDlUMTk6MDU6NDErMDA6MDB5v6zlAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/preferences-break.png?2011-09-19T16:11:40Z)!ie;background-position:bottom right;background-repeat:no-repeat} #preftoc li:first-child{margin-left:1px}#preftoc a,#preftoc a:active{display:inline-block;position:relative;color:#0645ad;padding:0.5em;text-decoration:none;background-image:none;font-size:0.9em}#preftoc a:hover,#preftoc a:focus{text-decoration:underline}#preftoc li.selected a{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAhCAQAAACysAk0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeF5twskJAAAMAjD3H7mXfYogCQiQeun68Z2WPk0SQHDa/pxXAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/preferences-fade.png?2011-09-19T16:11:40Z)!ie;background-position:bottom;background-repeat:repeat-x;color:#333333;text-decoration:none}#preferences{float:left;width:100%;margin:0;margin-top:-2px;clear:both;border:solid 1px #cccccc;background-color:#f9f9f9;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABRJREFUeF4FwTEBAAAAwJD1j+waGQD8APvyfoZlAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/preferences-base.png?2011-09-19T16:11:40Z)!ie}#preferences fieldset{border:none;border-top:solid 1px #cccccc}#preferences fieldset.prefsection{border:none;padding:0;margin:1em}#preferences legend{color:#666666}#preferences fieldset.prefsection legend.mainLegend{display:none}#preferences td{padding-left:0.5em;padding-right:0.5em}#preferences td.htmlform-tip{font-size:x-small;padding:.2em 2em;color:#666666}#preferences div.mw-prefs-buttons{padding:1em}#preferences div.mw-prefs-buttons input{margin-right:0.25em} #userlogin,#userloginForm{border:solid 1px #cccccc;padding:1.2em;margin:.5em;float:left}#userlogin{min-width:20em;max-width:90%;width:40em} div#content{line-height:1.5em}#bodyContent{font-size:0.8em} a{text-decoration:none;color:#0645ad;background:none}a:visited{color:#0b0080}a:active{color:#faa700}a:hover,a:focus{text-decoration:underline}a.stub{color:#772233}a.new,#p-personal a.new{color:#ba0000}a.new:visited,#p-personal a.new:visited{color:#a55858} img{border:none;vertical-align:middle}hr{height:1px;color:#aaa;background-color:#aaa;border:0;margin:.2em 0 .2em 0} h1,h2,h3,h4,h5,h6{color:black;background:none;font-weight:normal;margin:0;overflow:hidden;padding-top:.5em;padding-bottom:.17em;border-bottom:1px solid #aaa;width:auto}h1{font-size:188%}h1 .editsection{font-size:53%}h2{font-size:150%}h2 .editsection{font-size:67%}h3,h4,h5,h6{border-bottom:none;font-weight:bold}h3{font-size:132%}h3 .editsection{font-size:76%;font-weight:normal}h4{font-size:116%}h4 .editsection{font-size:86%;font-weight:normal}h5{font-size:100%}h5 .editsection{font-weight:normal}h6{font-size:80%}h6 .editsection{font-size:125%;font-weight:normal}.editsection{float:right}p{margin:.4em 0 .5em 0;line-height:1.5em}p img{margin:0}q{font-family:Times,"Times New Roman",serif;font-style:italic} pre,code,tt,kbd,samp{ font-family:monospace,"Courier New"}code{background-color:#f9f9f9}pre{padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.3em}ul{line-height:1.5em;list-style-type:square;margin:.3em 0 0 1.5em;padding:0;list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAANCAMAAABW4lS6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRFAFKM////QIUK9QAAAAJ0Uk5T/wDltzBKAAAAGklEQVR42mJgBAEGokgGBjBGBxBxsBqAAAMACHwALd5r8ygAAAAASUVORK5CYII=);list-style-image:url(//bits.wikimedia.org/skins-1.18/vector/images/bullet-icon.png?2011-09-19T16:11:40Z)!ie}ol{line-height:1.5em;margin:.3em 0 0 3.2em;padding:0;list-style-image:none}li{margin-bottom:.1em}dt{font-weight:bold;margin-bottom:.1em}dl{margin-top:.2em;margin-bottom:.5em}dd{line-height:1.5em;margin-left:2em;margin-bottom:.1em} table{font-size:100%} fieldset{border:1px solid #2f6fab;margin:1em 0 1em 0;padding:0 1em 1em;line-height:1.5em}fieldset.nested{margin:0 0 0.5em 0;padding:0 0.5em 0.5em}legend{padding:.5em;font-size:95%}form{border:none;margin:0}textarea{width:100%;padding:.1em}select{vertical-align:top} #toc,.toc,.mw-warning{border:1px solid #aaa;background-color:#f9f9f9;padding:5px;font-size:95%}#toc h2,.toc h2{display:inline;border:none;padding:0;font-size:100%;font-weight:bold}#toc #toctitle,.toc #toctitle,#toc .toctitle,.toc .toctitle{text-align:center}#toc ul,.toc ul{list-style-type:none;list-style-image:none;margin-left:0;padding:0;text-align:left}#toc ul ul,.toc ul ul{margin:0 0 0 2em}#toc .toctoggle,.toc .toctoggle{font-size:94%} div.floatright,table.floatright{margin:0 0 .5em .5em;border:0}div.floatright p{font-style:italic}div.floatleft,table.floatleft{margin:0 .5em .5em 0;border:0}div.floatleft p{font-style:italic} div.thumb{margin-bottom:.5em;width:auto;background-color:transparent}div.thumbinner{border:1px solid #ccc;padding:3px !important;background-color:#f9f9f9;font-size:94%;text-align:center;overflow:hidden}html .thumbimage{border:1px solid #ccc}html .thumbcaption{border:none;text-align:left;line-height:1.4em;padding:3px !important;font-size:94%}div.magnify{float:right;border:none !important;background:none !important}div.magnify a,div.magnify img{display:block;border:none !important;background:none !important}div.tright{margin:.5em 0 1.3em 1.4em}div.tleft{margin:.5em 1.4em 1.3em 0}img.thumbborder{border:1px solid #dddddd} .mw-warning{margin-left:50px;margin-right:50px;text-align:center} .usermessage{background-color:#ffce7b;border:1px solid #ffa500;color:black;font-weight:bold;margin:2em 0 1em;padding:.5em 1em;vertical-align:middle} #siteNotice{position:relative;text-align:center;font-size:0.8em;margin:0}#localNotice{margin-bottom:0.9em} .catlinks{border:1px solid #aaa;background-color:#f9f9f9;padding:5px;margin-top:1em;clear:both} #siteSub{display:none}#jump-to-nav{display:none}#contentSub,#contentSub2{font-size:84%;line-height:1.2em;margin:0 0 1.4em 1em;color:#7d7d7d;width:auto}span.subpages{display:block} .center{width:100%;text-align:center}*.center *{margin-left:auto;margin-right:auto} .small{font-size:94%}table.small{font-size:100%} h1,h2{margin-bottom:.6em}h3,h4,h5{margin-bottom:.3em}#firstHeading{padding-top:0;margin-top:0;padding-top:0;margin-bottom:0.1em;line-height:1.2em;font-size:1.6em;padding-bottom:0}div#content a.external,div#content a.external[href ^="gopher://"]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/external-link-ltr-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="https://"],.link-https{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeF6tjzsKg0AQhi09mimsFJLCzpNYCGKbK3gAtfUIljaCoKCCZIs8MMV2v+yCg8siWlh8zOtjhjEAEFmeIopDQtTrTJNEZIxhWysiNfULJFJjDzGnba/aBt4+wAuBzD+tg6a8SVkXf4GET96xmDxNzP39IvE/PPDtXIyVpYinv14A5F0laJ8oYFgAAAAASUVORK5CYII=) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/lock-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="mailto:"],.link-mailto{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKBAMAAAB/HNKOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADBQTFRF////////iIqF9vb26urpycfDvb275eXj2djV+/v4srKy6efio6GcqKejsa6q8fDtVM9qIQAAAAF0Uk5TAEDm2GYAAABOSURBVHheBcExDkAwGIDRL43NpJOt6a9hMdVilP8gklqsHMJmt4qeyeI03oNSNkCrAIU/7YTWbwp0zz4rTXZHxF/9YA15HTG4+4NFRNofUBMMOBBNZngAAAAASUVORK5CYII=) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/mail-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="news://"]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHtJREFUeF6NkEEKgCAQRT2w1wiiUxgk0SKiTe6i9oKeQXDhKSZmYAJRKeHh4j//DIp+6OAPJH6cXJRSZqSUQClViBjUKER8zXAbUhev+6Q7hMA0G1msNtIo5zxhrX3xzlNG4ravYMwBMUZsKsBsXjQIABCTHlsfTXuj8wCN3T2QBjtcwQAAAABJRU5ErkJggg==) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/news-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="ftp://"],.link-ftp{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAExJREFUeF5VyEEKwCAMAMH83o/0LT6kFHqQYqkevG1jIITs3kaQgn+A7A29ujnw5NKrsaPCrTegBBrRMzYeXkbGzsdkZRwsPWMUmEd+CkSgVeVp2OkAAAAASUVORK5CYII=) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/file-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="irc://"],div#content a.external[href ^="ircs://"],.link-irc{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHRJREFUeF590E0KgCAQBWAvH0TXigI3ZccQ/8H91ExqKNrAW8j7kFG27SvMyzQM9s8whuBnENdQSllFKdWFWFC01pQQwhASMMaAtXYIMQScc/0dxSXyIaPq1ZzzF6JOsKBTHOC9hxgjoQLbf2tRgekWKka5AShBSepvauUSAAAAAElFTkSuQmCC) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/talk-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href $=".ogg"],div#content a.external[href $=".OGG"],div#content a.external[href $=".mid"],div#content a.external[href $=".MID"],div#content a.external[href $=".midi"],div#content a.external[href $=".MIDI"],div#content a.external[href $=".mp3"],div#content a.external[href $=".MP3"],div#content a.external[href $=".wav"],div#content a.external[href $=".WAV"],div#content a.external[href $=".wma"],div#content a.external[href $=".WMA"],.link-audio{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKBAMAAAB/HNKOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADBQTFRF////dX8qyNF7eYMzwsxrsr9G8PHrm6Jrt7uakJVmn6OB1duat8NQi5YzhI4ykZR07gQraQAAAAF0Uk5TAEDm2GYAAABJSURBVHheNcSxDUBQFIbR727glxvKl3dHsIHCGESrNIIR7KE1hQ1MoDSCiMhJDixSDWVEhuZbei/sf/Jqbdn28+jxYe4u7CaND+p5C05J6bE1AAAAAElFTkSuQmCC) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/audio-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href $=".ogm"],div#content a.external[href $=".OGM"],div#content a.external[href $=".avi"],div#content a.external[href $=".AVI"],div#content a.external[href $=".mpeg"],div#content a.external[href $=".MPEG"],div#content a.external[href $=".mpg"],div#content a.external[href $=".MPG"],.link-video{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAAAAACoWZBhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAP9bkSK1AAAAXElEQVR4Xi2NMQoFMQgFvbpgHUj5LvF6K7sFQXKFsOew2G/xuylmGPn62Wb76U+ayHsTbDnrQMNrHdkZRChyi730KvK1QUWVD47gzoCOMBkXPSZrIuumseW/iKU/eKdG9xXBa10AAAAASUVORK5CYII=) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/video-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href $=".pdf"],div#content a.external[href $=".PDF"],div#content a.external[href *=".pdf#"],div#content a.external[href *=".PDF#"],div#content a.external[href *=".pdf?"],div#content a.external[href *=".PDF?"],.link-document{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE5JREFUeF5lykEKgDAMBdF/+17Es/QkiosiCBURXIzJooZohmweX6gwmkCeI+Oqc2C1FnvnF2ejlQYU0tLK2NjY6f/l8V12Ti7uhFFgDj19b58EwXuqkAAAAABJRU5ErkJggg==) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/document-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px} div#content a.extiw,div#content a.extiw:active{color:#36b; background:none;padding:0}div#content a.extiw:visited{color:#636}div#content a.extiw:active{color:#b63} div#content a.external{color:#36b}div#content a.external:visited{color:#636; }div#content a.external:active{color:#b63}div#content .printfooter{display:none} #pt-userpage,#pt-anonuserpage,#pt-login{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAANCAYAAACQN/8FAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAACxMAAAsTAQCanBgAAAHOSURBVCjPY2BAAjtLxLmPN4pFn2gSTdrfICDAgA2c65C0uznf6erT9dH/H6/0+39zut6d051SfiiK9jcwsFyfa3v21Z7S/++Odf1/uSP7/6OF1v+vT9O7ub9BlAdJoajBw+W+P98crPv/8eLC/6/2lPx/vNj+/705xv+PNwsHwRUerOFTvTXX9sfzjTFg056tC/v/YJbu//tzjP4eaxR3hiv8z8DAuKPF4N7DuUb/H84z/X9/hsb/BzM1/x/qMnxwJo2BFa5QP3rKpMjSiT/XtTr+vzzV+P+Vacb/N7fb/48v6fikHTYhFaxII3iSr0vRmm/muZv++9du/L969Yr/Wzeu+O9Tvvq/Rcay//aZC15reHXoMtimz91ulrnyv1n22v/muRv/960693/Fniv/TdKX/zdKXvDfPHX+f9PYySsYbFJnXDWIm/nfOG0pWDKkdsP/oonbgYoW/jdImPNfL2bKf+v4SRcZTCK6D5gkTAcLGibO/W+aMu+/b8mS//pxM8CKdAPr/xtFdB9lkDQNszOP7r1tnTLzr03qzP/WQGyVAqRTpv+3Tprxzzi88560VZo3xNui2jxi+oFB4oYRNaL6Ic0gDGEHh4HkQEoAjALoHv5slukAAAAASUVORK5CYII=) left top no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/user-icon.png?2011-09-19T16:11:40Z) left top no-repeat!ie;padding-left:15px !important;text-transform:none}.redirectText{font-size:140%}.redirectMsg img{vertical-align:text-bottom}.toccolours{border:1px solid #aaa;background-color:#f9f9f9;padding:5px;font-size:95%}#bodyContent{position:relative;width:100%}#mw-js-message{font-size:0.8em}div#bodyContent{line-height:1.5em} #ca-unwatch.icon a,#ca-watch.icon a{margin:0;padding:0;outline:none;display:block;width:26px; padding-top:3.1em;margin-top:0; margin-top:-0.8em !ie;height:0;overflow:hidden;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAAAQCAMAAAClQEgHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAwBQTFRFoNb/+vr52tXLdcP/ltL/ysKt39rPrdz/xtDT8vLwwrJxodr/vqxjzdnr8v7+ntb/uuX/i87/ytTV9fb3zuz+8eOU+fr8zvH/wuX/ecT/hbrnj7XBltb/m9T/h8z/jtH+c8H/vq53lL/Ovq109vb1/v7rx8CuhcT0xLJlot3/2PL/kc//59N3s9//v7KGbL7/mNf//v395NSLmdr//Pz7ccT/wbOIZ7v/ybZk6OzzpNf/icPu0cm2g8n/p9n/9fTzva1ouuL/samQwu3/scfhfrbj8e/q4+bnyLJQ6u3tqtr/irbG7PH5fcz/0d7ww+r/zcuL6Obh9f7/hsv/s8+r+e2rw7J2rb3C+fj2icTy1O7/jrvO1s++vMyUz8zGocna6+rn8vDtlLK8aL3/d8X///vV7fz/vraklMr039nMtNjqp97/o9362ejN4vb/zcN7sN3/vfP/bsD/1dLNhK2+yLeIkrri28drz7tp5N7TiK26grXi3trTccP/vub/rd//+v//qM7fyeHMztmq5PT8u6t0/f3+/P39ksDwk8HQtMTH3fn/kdH/ltLpxb5o0dzsnND6ssXbzun5rdru2+Dh5+vsz9nadrrx1eLz+fLM7/z/w71z//zPgMz/8eWrwtKT9vn8jbPCf7vs1N3pua1terXo1O3tqtfWwOX51cV5dMH/vtmy28p8fLXR4efx9emq///8z9TbzrxowLOP5ea57///nq2xy7xo///5frrnwrSP9PX2+vv7ztzwvd3P2vH5r9z/8/X4nMrlsN//qLq9wa5zh7fikdf/tuL9zbpo3tnQ1u/kx8rL+/z8kq+6+vLGkqKq6f//oMrfxuf8xbVwqLvSh7vq8PP3ltD6d8P/v7Ngx7dqwbFt/PGyk8jv9vf3zLhofqy/wdPqyeTc0vH9//3kxun5i7O/x87X09mr1sRzmK3C3dnQz9XXmLvg///6uc7ozLpq7O7u//zc7evoyfT/+/z+mtf/9e25zcJt7ezowMXGu8nM+Pn5////8/n77InDmQAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAJbSURBVHjaYvgPAb+3/ccK4tKxi7+4SkA9A5SWnuyJVSGXDidWcSnN6/jVQw0+s//fBWzqin9scMImvtF/62us6rfwOaEYXPLvXyM2pzn8+7dGBYt4dZ5WhjA29d3i+Sowg/d4TjuX9+9fQwnH1L8oqhIrN5//909VOdPNBEXcZ8Y7CQlHEam9Pt/Q1O/KrXNcdhSsnuFIZ3zWpLR/QMAnkhWvJA1TxVqx0mheKkj883qjVx9LYeIukRkT2P3rCtgPCGTfiLTuQKjPD3iZK1DAzv64OWD27VIG9+h/SOASB0xhwklk8XImmLilOp+IhK6XFQODrCyD+D1euPoHF50FDoPFZWQKfzIx/N/9PAiuP3oKwmOMYU9hwu8tAhHiYteidO34WbRtFZg1d65DVn+6HiJem3MrEBTGZ6taIPqDvN1RwkxxJkRcVeMLivixEwwsgpLmRfKulqjqm/jB4r08vyCp4tMhiAFPOFCj2L4cIh7KhCp+UJ1bjjlZ/6Y8L5r6PmOQuGkIEzS5vV0BMWBWOKrCGlGIeCorqvhieTlm5pRVkgYuaOpj5zLXmiqkLGeFGhwOTBRRl4EmJKEqVJsDdC3Q8B16qOITs4MNegS/B3OXoanf53s8JNbYN0cPanDSPy3vP0JVz/4tRFVo9u+uRcwbZdF/d1DFy8S5Fz3qr5ZxdkVT/3W1Rsyp1vmFS6AGP1TqAolzSK+9j6KQZ5MNiGK64sGIIr7U+gOI4pWaLoaqfjtEPRdIPdDgdiFY5hRCyaWGbDDz2CKQxdv8YOb5LcCtnuE/jQBAgAEAQlFsBT+lqfQAAAAASUVORK5CYII=);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/watch-icons.png?2011-09-19T16:11:40Z)!ie}#ca-unwatch.icon a{background-position:-43px 60%}#ca-watch.icon a{background-position:5px 60%}#ca-unwatch.icon a:hover,#ca-unwatch.icon a:focus{background-position:-67px 60%}#ca-watch.icon a:hover,#ca-watch.icon a:focus{background-position:-19px 60%}#ca-unwatch.icon a.loading,#ca-watch.icon a.loading{background-image:url(data:image/gif;base64,R0lGODlhEAAQAMQfANra2uLi4vDw8PLy8ujo6Ozs7NbW1vj4+Pb29s7Oztzc3NTU1O7u7uDg4NHR0erq6v39/d7e3vz8/Pv7+/7+/tPT09jY2Pr6+tnZ2efn5/X19eXl5ebm5vT09P///////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAwAfACwAAAAAEAAQAAAFa+Anjl9QkShacVqabp2XuKjjecHhStrjHDdIgtORiCyWSEZwud0mg0zEUhkYnNhsY/O5OCRZrEEwgvzCkgqZhGiEB1wUgRGeAFKApqcjcJ5QCx4aFQEECX1/JAlJJBsVFRMkEBkXLhyVNJkhACH5BAkDAB8ALAAAAAAQABAAAAV74CeO4hUQZEoGhqGqWzQtEnlYRCYMGSB5BkTKQCgUOBGPkjBIdQDKqBLhaJI4D6l0gylMRg6IVkmhNBIjxWBM8XAwHNFAIdYWDA0SRhNtKy0CJAUVEAcRAQJkFikZDg4EBB0RDR4dGCkIEhAjFBsBDwovKo0BoioFQiMhACH5BAkDAB8ALAAAAAAQABAAAAWB4CeO5HeU33OVl5IIpYEFh/QR1rYNZSMUAYVBwfBYbKRJwwPxFDxQjAbloECvHgMEBUBgPZTApjSxeL+eQGDUsQwkaGhBcUBYinGI5GBIEBwEGhxwVwwLFgoRHQwECgIADRFXBgUfEygfEBEDTmuYIxAJFAYwnyMFABVbpiMYGSghACH5BAkDAB8ALAAAAAAQABAAAAV+4CdKjWieKOJs6De1U5Zhg4YcmaG0kXcElQDtEWkZPMgMBGlofQDIqK9pmhAADClSEDBtAICJROvR7EQGx5LsgQAOogKm0LhQ2IDRQRJRFKIHAh4XAXknEw5REQsRBgAOEigRFBQEERofAgJiKBoZAgsXTicUDgYDoygNXU4hACH5BAUDAB8ALAAAAAAQABAAAAV54Cd+EFBNY6p+hgCssOERGwSP3eZBgUIEG0xhdGFpPMjChjNoRD6XIGBDQVo9FIcogZnsrlbLQNRQfMEewVN0ERAaaE9AoDoECGj76lBBTxQwDlYBEQweGwwqEDIHCwIbBgAAFioUBgUOdCIaBRwrBhUHNykQY6MfIQA7);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/watch-icon-loading.gif?2011-09-19T16:11:40Z)!ie;background-position:5px 60%}#ca-unwatch.icon a span,#ca-watch.icon a span{display:none}div.vectorTabs ul{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-position:right bottom;background-repeat:no-repeat} .tipsy{font-size:0.8em}}
|
|
2
|
+
|
|
3
|
+
/* cache key: enwiki:resourceloader:filter:minify-css:4:7fa8a42693a0e778407129643f72709b */
|
package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png
ADDED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Geo = {"city":"Marlton","country":"US","lat":"39.850601","lon":"-74.909897","IP":"198.185.18.207","netmask":"32"}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,1369 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
2
|
+
<!-- saved from url=(0037)http://drdobbs.com/database/231400148 -->
|
|
3
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><link rel="stylesheet" type="text/css" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widget74.css" media="all">
|
|
4
|
+
<script type="text/javascript" async="" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/insight.min.js"></script><script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource" async=""></script><script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/detect.js"></script>
|
|
5
|
+
<script type="text/javascript">
|
|
6
|
+
var mfp_url='http://m.drdobbs.com/';
|
|
7
|
+
var mfp_host_name=document.location.hostname;
|
|
8
|
+
var mfp_request_uri=document.location.pathname;
|
|
9
|
+
var mfp_no_mobile=location.search;
|
|
10
|
+
var mfp_cookie=document.cookie;
|
|
11
|
+
function mf_detect()
|
|
12
|
+
{
|
|
13
|
+
var mfp_ua=navigator.userAgent.toLowerCase();
|
|
14
|
+
var mfp_devices=['vnd.wap.xhtml+xml','sony','symbian','nokia','samsung','mobile','windows ce','epoc','opera mini','nitro','j2me','midp-','cldc-','netfront','mot','up.browser','up.link','audiovox','blackberry','ericsson','panasonic','philips','sanyo','sharp','sie-','portalmmm','blazer','avantgo','danger','palm','series60','palmsource','pocketpc','smartphone','rover','ipaq','au-mic','alcatel','ericy','vodafone','wap1','wap2','teleca','playstation','lge','lg-','iphone','ipod','android','htc','dream','webos','bolt','nintendo'];
|
|
15
|
+
var nottablet=true;
|
|
16
|
+
if((mfp_ua.indexOf('android')!=-1&&mfp_ua.indexOf('mobile')==-1)||mfp_ua.indexOf('ipad')!=-1)
|
|
17
|
+
{
|
|
18
|
+
nottablet=false
|
|
19
|
+
}
|
|
20
|
+
for(var i in mfp_devices)
|
|
21
|
+
{
|
|
22
|
+
if(mfp_ua.indexOf(mfp_devices[i])!=-1&&!((mfp_ua.indexOf('android')!=-1&&mfp_ua.indexOf('mobile')==-1)||mfp_ua.indexOf('ipad')!=-1))
|
|
23
|
+
{
|
|
24
|
+
return true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if(mfp_no_mobile!='?nomobile=1'&&mfp_cookie.indexOf('mfp_no_mobile')==-1)
|
|
29
|
+
{
|
|
30
|
+
mfp_is_mobile=mf_detect();
|
|
31
|
+
if(mfp_is_mobile)
|
|
32
|
+
{
|
|
33
|
+
//window.location=mfp_url+"?h="+mfp_host_name+"&r="+mfp_request_uri
|
|
34
|
+
//window.location=mfp_url+mfp_request_uri.slice(1,mfp_request_uri.length);
|
|
35
|
+
window.location=mfp_url;
|
|
36
|
+
}
|
|
37
|
+
}else
|
|
38
|
+
{
|
|
39
|
+
if(mfp_cookie.indexOf('mfp_no_mobile')!=-1)
|
|
40
|
+
{
|
|
41
|
+
|
|
42
|
+
}else
|
|
43
|
+
{
|
|
44
|
+
mfp_cookie_expires=new Date();
|
|
45
|
+
mfp_cookie_expires.setTime(mfp_cookie_expires.getTime()+1000*60*60*24);
|
|
46
|
+
document.cookie="mfp_no_mobile=-1; expires="+mfp_cookie_expires.toGMTString()+"; path=/;"
|
|
47
|
+
window.location=mfp_url+"?h="+mfp_host_name+"&r="+mfp_request_uri;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
</script> <script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.min.js"></script><script language="JavaScript" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/checkauth.js"></script>
|
|
51
|
+
<title>Dataflow Programming: Handling Huge Data Loads Without Adding Complexity | Dr Dobb's</title><meta name="description" content="Manage the data pipelines rather than webs of threads and processes">
|
|
52
|
+
<meta name="headline" content="Dataflow Programming: Handling Huge Data Loads Without Adding Complexity">
|
|
53
|
+
<meta name="keywords" content="patterns, actor model, parallel programming, multicore, big data, Scala, Erlang, scaling">
|
|
54
|
+
<meta name="created" content="September 19, 2011">
|
|
55
|
+
<meta name="google-site-verification" content="HqG7-1r7RoBTg-CKrClDy746Njj0o8y-9CgeYSK4CyM">
|
|
56
|
+
<meta name="original-source" content="http://drdobbs.com/database/231400148">
|
|
57
|
+
<link rel="image_src" href="http://i.cmpnet.com/ddj/v2/images/fb_thumbnail.jpg">
|
|
58
|
+
<link rel="stylesheet" href="http://i.cmpnet.com/ddj/v2/css/thickbox.css">
|
|
59
|
+
<link rel="stylesheet" href="http://i.cmpnet.com/ddj/v2/css/style.css">
|
|
60
|
+
<link rel="SHORTCUT ICON" href="http://i.cmpnet.com/ddj/v2/images/favicon.ico">
|
|
61
|
+
<script language="JavaScript" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.2.6.min.js"></script>
|
|
62
|
+
<script language="JavaScript" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sidebar.js"></script>
|
|
63
|
+
<script language="JavaScript" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thickbox.js"></script>
|
|
64
|
+
<script language="JavaScript" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/togglediv.js"></script>
|
|
65
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/addthis_widget.js"></script>
|
|
66
|
+
<script language="JavaScript" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/scripts.js"></script>
|
|
67
|
+
<script language="JavaScript" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/popwindow.js"></script>
|
|
68
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.4.2.min.js"></script>
|
|
69
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-ui-1.8rc3.custom.min.js"></script>
|
|
70
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/plusone.js" gapi_processed="true"></script>
|
|
71
|
+
<!-- <script type="text/javascript" src="http://img.drdobbs.com/v2/js/vsHubQuickLinksDialog.js"></script>
|
|
72
|
+
<link rel="stylesheet" type="text/css" href="http://img.drdobbs.com/v2/css/vsHubQuickLinksDialog.css" /> -->
|
|
73
|
+
<link rel="stylesheet" type="text/css" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-nav.css">
|
|
74
|
+
<link rel="stylesheet" href="http://twimgs.com/ddj/v2/css/devtest_style.css">
|
|
75
|
+
<style>
|
|
76
|
+
#container #header #nav { font-size: .9em; margin-top: 0px; margin-left: 5px; width: 999px; position: relative; top: 4px; } /* Absolutely positioned #nav is lower on homepage, see home.css */
|
|
77
|
+
</style>
|
|
78
|
+
<link href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's.html" rel="canonical">
|
|
79
|
+
<link href="http://drdobbs.com/rss/all" rel="alternate" type="application/rss+xml" title="Dr. Dobb's All Articles">
|
|
80
|
+
<link href="http://drdobbs.com/rss/all" rel="alternate" type="application/rss+xml" title="Dr. Dobb's All Articles">
|
|
81
|
+
<link href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/devtest_left-col-slim.css" media="screen" rel="stylesheet" type="text/css"> <script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nonSecureAnonymousFramework"></script><link rel="stylesheet" type="text/css" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share-button-css"><style type="text/css">* html #li_ui_li_gen_1326820768301_0 a#li_ui_li_gen_1326820768301_0-link{height:1% !important;}#li_ui_li_gen_1326820768301_0{position:relative !important;overflow:visible !important;display:block !important;}#li_ui_li_gen_1326820768301_0 a#li_ui_li_gen_1326820768301_0-link{border:0 !important;height:undefinedpx !important;text-decoration:none !important;padding:0 !important;margin:0 !important;display:inline-block !important;}#li_ui_li_gen_1326820768301_0 a#li_ui_li_gen_1326820768301_0-link:link, #li_ui_li_gen_1326820768301_0 a#li_ui_li_gen_1326820768301_0-link:visited, #li_ui_li_gen_1326820768301_0 a#li_ui_li_gen_1326820768301_0-link:hover, #li_ui_li_gen_1326820768301_0 a#li_ui_li_gen_1326820768301_0-link:active{border:0 !important;text-decoration:none !important;}#li_ui_li_gen_1326820768301_0 a#li_ui_li_gen_1326820768301_0-link:after{content:"." !important;display:block !important;clear:both !important;visibility:hidden !important;line-height:0 !important;height:0 !important;}#li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-logo{background:url(http://static02.linkedin.com/scds/common/u/img/sprite/sprite_connect_v13.png) 0px -276px no-repeat !important;cursor:pointer !important;border:0 !important;text-indent:-9999em !important;overflow:hidden !important;padding:0 !important;margin:0 !important;position:absolute !important;left:0px !important;top:0px !important;display:block !important;width:20px !important;height:20px !important;float:right !important;}#li_ui_li_gen_1326820768301_0.hovered #li_ui_li_gen_1326820768301_0-logo{background-position:-20px -276px !important;}#li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-logo, #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-logo{background-position:-40px -276px !important;}.IN-shadowed #li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-logo{}#li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title{color:#333 !important;cursor:pointer !important;display:block !important;white-space:nowrap !important;float:left !important;margin-left:1px !important;vertical-align:top !important;overflow:hidden !important;text-align:center !important;height:18px !important;padding:0 4px 0 23px !important;border:1px solid #000 !important;border-top-color:#E2E2E2 !important;border-right-color:#BFBFBF !important;border-bottom-color:#B9B9B9 !important;border-left-color:#E2E2E2 !important;border-left:0 !important;text-shadow:#FFFFFF -1px 1px 0 !important;line-height:20px !important;border-radius:0 !important;-webkit-border-radius:0 !important;border-top-right-radius:2px !important;border-bottom-right-radius:2px !important;-webkit-border-top-right-radius:2px !important;-webkit-border-bottom-right-radius:2px !important;background-color:#ECECEC !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#FEFEFE), color-stop(100%,#ECECEC)) !important; background-image: -webkit-linear-gradient(top, #FEFEFE 0%, #ECECEC 100%) !important;}#li_ui_li_gen_1326820768301_0.hovered #li_ui_li_gen_1326820768301_0-title{border:1px solid #000 !important;border-top-color:#ABABAB !important;border-right-color:#9A9A9A !important;border-bottom-color:#787878 !important;border-left-color:#04568B !important;border-left:0 !important;background-color:#EDEDED !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#EDEDED), color-stop(100%,#DEDEDE)) !important; background-image: -webkit-linear-gradient(top, #EDEDED 0%, #DEDEDE 100%) !important;}#li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-title, #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-title{color:#666 !important;border:1px solid #000 !important;border-top-color:#B6B6B6 !important;border-right-color:#B3B3B3 !important;border-bottom-color:#9D9D9D !important;border-left-color:#49627B !important;border-left:0 !important;background-color:#DEDEDE !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#E3E3E3), color-stop(100%,#EDEDED)) !important; background-image: -webkit-linear-gradient(top, #E3E3E3 0%, #EDEDED 100%) !important;}.IN-shadowed #li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title{}.IN-shadowed #li_ui_li_gen_1326820768301_0.hovered #li_ui_li_gen_1326820768301_0-title{}.IN-shadowed #li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-title, .IN-shadowed #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-title{}#li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title-text, #li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title-text *{color:#333 !important;font-size:11px !important;font-family:Arial, sans-serif !important;font-weight:bold !important;font-style:normal !important;display:inline-block !important;background:transparent none !important;vertical-align:baseline !important;height:18px !important;line-height:20px !important;float:none !important;}#li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title-text strong{font-weight:bold !important;}#li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title-text em{font-style:italic !important;}#li_ui_li_gen_1326820768301_0.hovered #li_ui_li_gen_1326820768301_0-title-text, #li_ui_li_gen_1326820768301_0.hovered #li_ui_li_gen_1326820768301_0-title-text *{color:#000 !important;}#li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-title-text, #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-title-text, #li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-title-text *, #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-title-text *{color:#666 !important;}#li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title #li_ui_li_gen_1326820768301_0-mark{display:inline-block !important;width:0px !important;overflow:hidden !important;}.success #li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title{color:#333 !important;border-top-color:#E2E2E2 !important;border-right-color:#BFBFBF !important;border-bottom-color:#B9B9B9 !important;border-left-color:#E2E2E2 !important;background-color:#ECECEC !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#FEFEFE), color-stop(100%,#ECECEC)) !important; background-image: -webkit-linear-gradient(top, #FEFEFE 0%, #ECECEC 100%) !important;}.success #li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title-text, .success #li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title-text *{color:#333 !important;}.IN-shadowed .success #li_ui_li_gen_1326820768301_0 #li_ui_li_gen_1326820768301_0-title{}.success #li_ui_li_gen_1326820768301_0.hovered #li_ui_li_gen_1326820768301_0-title{color:#000 !important;border-top-color:#ABABAB !important;border-right-color:#9A9A9A !important;border-bottom-color:#787878 !important;border-left-color:#04568B !important;background-color:#EDEDED !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#EDEDED), color-stop(100%,#DEDEDE)) !important; background-image: -webkit-linear-gradient(top, #EDEDED 0%, #DEDEDE 100%) !important;}.success #li_ui_li_gen_1326820768301_0.hovered #li_ui_li_gen_1326820768301_0-title-text, .success #li_ui_li_gen_1326820768301_0.hovered #li_ui_li_gen_1326820768301_0-title-text *{color:#000 !important;}.success #li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-title, .success #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-title{color:#666 !important;border-top-color:#B6B6B6 !important;border-right-color:#B3B3B3 !important;border-bottom-color:#9D9D9D !important;border-left-color:#49627B !important;background-color:#DEDEDE !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#E3E3E3), color-stop(100%,#EDEDED)) !important; background-image: -webkit-linear-gradient(top, #E3E3E3 0%, #EDEDED 100%) !important;}.success #li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-title-text, .success #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-title-text, .success #li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-title-text *, .success #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-title-text *{color:#666 !important;}.IN-shadowed .success #li_ui_li_gen_1326820768301_0.clicked #li_ui_li_gen_1326820768301_0-title, .IN-shadowed .success #li_ui_li_gen_1326820768301_0.down #li_ui_li_gen_1326820768301_0-title{}</style><link type="text/css" rel="stylesheet" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff.css" media="screen"><script type="text/javascript" async="" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/embed.js"></script><script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thread.js" async="" charset="UTF-8"></script><link rel="stylesheet" type="text/css" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/defaults.css"><script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqus.js" async="" charset="UTF-8"></script><script async="" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.js"></script><script type="text/javascript" async="" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count(1).js"></script><link rel="stylesheet" type="text/css" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.css"><script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.js" async="" charset="UTF-8"></script><script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/s.js"></script></head>
|
|
82
|
+
<body data-rendering="true"><iframe id="twttrHubFrame" allowtransparency="true" frameborder="0" scrolling="no" tabindex="0" name="twttrHubFrame" style="position: absolute; top: -9999em; width: 10px; height: 10px; " src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hub.1326407570.html"></iframe><div id="cboxOverlay" style="display: none; "></div><div id="colorbox" style="padding-bottom: 57px; padding-right: 28px; display: none; " class=""><div id="cboxWrapper" style=""><div id="false" style=""><div id="cboxTopLeft" style="float: left; "></div><div id="cboxTopCenter" style="float: left; "></div><div id="cboxTopRight" style="float: left; "></div></div><div id="false" style="clear: left; "><div id="cboxMiddleLeft" style="float: left; "></div><div id="cboxContent" style="float: left; "><div id="cboxLoadedContent" style="width: 0px; height: 0px; overflow-x: hidden; overflow-y: hidden; " class=""></div><div id="cboxLoadingOverlay" style="" class=""></div><div id="cboxLoadingGraphic" style="" class=""></div><div id="cboxTitle" style="" class=""></div><div id="cboxCurrent" style="" class=""></div><div id="cboxNext" style="" class=""></div><div id="cboxPrevious" style="" class=""></div><div id="cboxSlideshow" style="" class=""></div><div id="cboxClose" style="" class=""></div></div><div id="cboxMiddleRight" style="float: left; "></div></div><div id="false" style="clear: left; "><div id="cboxBottomLeft" style="float: left; "></div><div id="cboxBottomCenter" style="float: left; "></div><div id="cboxBottomRight" style="float: left; "></div></div></div><div id="false" style="position: absolute; width: 9999px; visibility: hidden; display: none; "></div></div><div style="visibility: hidden; height: 1px; width: 1px; position: absolute; z-index: 100000; " id="_atssh"><iframe id="_atssh892" title="AddThis utility frame" style="height: 1px; width: 1px; position: absolute; z-index: 100000; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; left: 0px; top: 0px; " src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sh72.html"></iframe></div><iframe id="494433466577" name="494433466577" width="0" height="0" style="display: none; " src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's.html"></iframe>
|
|
83
|
+
<script language="javascript">
|
|
84
|
+
<!--
|
|
85
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1953620/0/16/ADTECH;alias=Dr.Dobbs_Database_Wallpaper_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
86
|
+
//-->
|
|
87
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461"></script><a href="http://adserver.adtechus.com/?adlink/5242/1953610/0/16/AdId=-3;BnId=0;itime=820766160;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif" border="0" alt="AdTech Ad" width="1" height="1"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1953620/0/16/ADTECH;alias=Dr.Dobbs_Database_Wallpaper_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1953620/0/16/ADTECH;alias=Dr.Dobbs_Database_Wallpaper_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
88
|
+
<!-- SiteCatalyst code version: H.16.
|
|
89
|
+
Copyright 1997-2008 Omniture, Inc. More info available at
|
|
90
|
+
http://www.omniture.com -->
|
|
91
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h_s_code_remote.js"></script>
|
|
92
|
+
|
|
93
|
+
<script language="JavaScript" type="text/javascript">
|
|
94
|
+
var referer = '';
|
|
95
|
+
var eVar23 = '';
|
|
96
|
+
var slr="";
|
|
97
|
+
var host="";
|
|
98
|
+
|
|
99
|
+
$.ajax({
|
|
100
|
+
type: "GET",
|
|
101
|
+
url: host+"/omniture",
|
|
102
|
+
data: "referer="+slr+encodeURIComponent(document.referrer),
|
|
103
|
+
success: function(data){
|
|
104
|
+
if (data != null)
|
|
105
|
+
{
|
|
106
|
+
referer = data.referer;
|
|
107
|
+
eVar23 = data.eVar23;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
dataType: "json",
|
|
111
|
+
async: false,
|
|
112
|
+
cache: false
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
</script>
|
|
118
|
+
|
|
119
|
+
<script language="JavaScript" type="text/javascript">
|
|
120
|
+
<!--
|
|
121
|
+
s.pageName="";
|
|
122
|
+
s.referrer=referer;
|
|
123
|
+
s.server="";
|
|
124
|
+
s.channel="drdobbs.com/database";
|
|
125
|
+
s.pageType="";
|
|
126
|
+
s.prop1="";
|
|
127
|
+
s.prop2="231400148";
|
|
128
|
+
s.prop3="Dr. Dobb's Journal | 231400148 | Dataflow Programming: Handling Huge Data Loads Without Adding Complexity";
|
|
129
|
+
s.prop4="Dataflow Programming: Handling Huge Data Loads Without Adding Complexity";
|
|
130
|
+
s.prop5="database";
|
|
131
|
+
s.prop6="";
|
|
132
|
+
s.prop7="Jim Falgout";
|
|
133
|
+
s.prop8="198.185.18.207 | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7";
|
|
134
|
+
s.prop9="";
|
|
135
|
+
s.prop10="complete";
|
|
136
|
+
s.prop11="Feature";
|
|
137
|
+
s.prop12="";
|
|
138
|
+
s.prop14="";
|
|
139
|
+
s.prop15="";
|
|
140
|
+
s.prop16="";
|
|
141
|
+
s.prop19="False";
|
|
142
|
+
s.prop20="20110919";
|
|
143
|
+
s.prop21="";
|
|
144
|
+
|
|
145
|
+
/* Conversion Variables */
|
|
146
|
+
s.campaign="";
|
|
147
|
+
s.state="";
|
|
148
|
+
s.zip="";
|
|
149
|
+
s.events="event5";
|
|
150
|
+
s.products="";
|
|
151
|
+
s.purchaseID="";
|
|
152
|
+
s.eVar1="";
|
|
153
|
+
s.eVar2="";
|
|
154
|
+
s.eVar3="";
|
|
155
|
+
s.eVar4="";
|
|
156
|
+
s.eVar5="";
|
|
157
|
+
s.eVar21="";
|
|
158
|
+
s.eVar22="";
|
|
159
|
+
s.eVar23=eVar23;
|
|
160
|
+
|
|
161
|
+
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
|
|
162
|
+
var s_code=s.t();if(s_code)document.write(s_code)//-->
|
|
163
|
+
</script>
|
|
164
|
+
|
|
165
|
+
<script language="JavaScript" type="text/javascript"><!--
|
|
166
|
+
if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
|
|
167
|
+
//--></script><noscript><a href="http://www.omniture.com" title="Web Analytics"><img
|
|
168
|
+
src="http://cmpglobalvista.112.2O7.net/b/ss/cmpglobalvista/1/H.16--NS/0"
|
|
169
|
+
height="1" width="1" border="0" alt="" /></a></noscript><!--/DO NOT REMOVE/-->
|
|
170
|
+
|
|
171
|
+
<script language="JavaScript" type="text/javascript">
|
|
172
|
+
function trackComment(){
|
|
173
|
+
var s=s_gi('cmpglobalvista');
|
|
174
|
+
s.evar24=s.prop7 +" | "+ s.prop4;
|
|
175
|
+
s.events='event8';
|
|
176
|
+
s.tl(this,'o','Article Comment Posted');
|
|
177
|
+
}
|
|
178
|
+
</script>
|
|
179
|
+
|
|
180
|
+
<!-- End SiteCatalyst code version: H.16 --><script language="javascript">
|
|
181
|
+
<!--
|
|
182
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183575/0/16/ADTECH;alias=Dr.Dobbs_Database_WelcomeAd_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
183
|
+
//-->
|
|
184
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(1)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1195903/0/16/AdId=-3;BnId=0;itime=820766789;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif" border="0" alt="AdTech Ad" width="1" height="1"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183575/0/16/ADTECH;alias=Dr.Dobbs_Database_WelcomeAd_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183575/0/16/ADTECH;alias=Dr.Dobbs_Database_WelcomeAd_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
185
|
+
<script language="javascript">
|
|
186
|
+
<!--
|
|
187
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/2147145/0/0/ADTECH;alias=Dr.Dobbs_Database_Skin_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
188
|
+
//-->
|
|
189
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(2)"></script><a href="http://adserver.adtechus.com/?adlink/5242/2147123/0/0/AdId=-3;BnId=0;itime=820766911;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/AdTracImage.gif" border="0" alt="AdTech Ad" width="0" height="0"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/2147145/0/0/ADTECH;alias=Dr.Dobbs_Database_Skin_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/2147145/0/0/ADTECH;alias=Dr.Dobbs_Database_Skin_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
190
|
+
<div id="container">
|
|
191
|
+
<script language="javascript">
|
|
192
|
+
<!--
|
|
193
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183517/0/16/ADTECH;alias=Dr.Dobbs_Database_Ticker_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
194
|
+
//-->
|
|
195
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(3)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1953592/0/16/AdId=-3;BnId=0;itime=820766039;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif" border="0" alt="AdTech Ad" width="1" height="1"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183517/0/16/ADTECH;alias=Dr.Dobbs_Database_Ticker_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183517/0/16/ADTECH;alias=Dr.Dobbs_Database_Ticker_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
196
|
+
<style>
|
|
197
|
+
#login, #login a { color: white; font-weight: bold; font-size:93%;}
|
|
198
|
+
</style>
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
<div id="login" class="welcome" style="padding-left: 12px;">
|
|
202
|
+
<strong>Welcome Guest.</strong> | <a class="first" rel="nofollow" href="http://drdobbs.com/login?url=http%3A%2F%2Fdrdobbs.com%2Fdatabase%2F231400148%3Fat%3Dvalidate%26actionType%3D">Log In</a> | <a rel="nofollow" class="last" href="http://drdobbs.com/registration/index?siteId=3600005&successfulLoginRedirect=http%3A%2F%2Fdrdobbs.com%2Fdatabase%2F231400148">Register</a> | <a href="http://drdobbs.com/static/member/">Benefits</a>
|
|
203
|
+
<link rel="stylesheet" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff(1).css" type="text/css">
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
<script language="JavaScript" type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/welcome.js"> </script> <div id="header">
|
|
207
|
+
<!-- h-nav -->
|
|
208
|
+
<div id="h-nav">
|
|
209
|
+
<ul>
|
|
210
|
+
<li><a href="http://drdobbs.com/subscribe/">Subscribe</a></li>
|
|
211
|
+
<li><a href="http://drdobbs.com/newsletters/">Newsletters</a></li>
|
|
212
|
+
<li><a href="http://www.informationweek.com/whitepaper?itc=ddj-header-twdl">Digital Library</a></li>
|
|
213
|
+
<li><a href="http://drdobbs.com/rss/">RSS</a></li>
|
|
214
|
+
</ul>
|
|
215
|
+
</div>
|
|
216
|
+
<!-- / h-nav -->
|
|
217
|
+
|
|
218
|
+
<div id="search">
|
|
219
|
+
<script language="JavaScript" type="text/javascript">
|
|
220
|
+
<!--
|
|
221
|
+
$(
|
|
222
|
+
function()
|
|
223
|
+
{
|
|
224
|
+
$('input.search')
|
|
225
|
+
.click(
|
|
226
|
+
function()
|
|
227
|
+
{
|
|
228
|
+
queryText = $('input#queryText').val();
|
|
229
|
+
queryText = queryText.replace(/^\s*/, '').replace(/\s*$/, '');
|
|
230
|
+
if (!queryText)
|
|
231
|
+
{
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
)
|
|
236
|
+
.attr('disabled', false);
|
|
237
|
+
|
|
238
|
+
}
|
|
239
|
+
);
|
|
240
|
+
//-->
|
|
241
|
+
</script>
|
|
242
|
+
|
|
243
|
+
<form method="get" action="http://drdobbs.com/sitesearch">
|
|
244
|
+
<input type="hidden" name="sort" value="publishDate desc">
|
|
245
|
+
<ul>
|
|
246
|
+
<li><input type="text" value="" size="40" id="queryText" name="queryText" maxlength="100" class="text"></li>
|
|
247
|
+
<li><input type="submit" value=" " class="search"></li>
|
|
248
|
+
</ul>
|
|
249
|
+
Search:
|
|
250
|
+
<input type="radio" name="type" value="site" checked=""> Site
|
|
251
|
+
<input type="radio" name="type" value="sourcecode"> Source Code
|
|
252
|
+
</form> </div>
|
|
253
|
+
<br><br>
|
|
254
|
+
|
|
255
|
+
<div id="h-nav_main">
|
|
256
|
+
|
|
257
|
+
<div id="h-nav_mainSection">
|
|
258
|
+
<!-- main section indicator -->
|
|
259
|
+
<ul class="navigation">
|
|
260
|
+
<li class="h-58"><a href="http://drdobbs.com/?itc=ddj-header-navbar-home" class="h-58" style="float:left">Home</a></li><li class="h-68"><a href="http://drdobbs.com/articles?itc=ddj-header-navbar-articles" class="h-68" style="float:left">Articles</a></li><li class="h-58"><a href="http://drdobbs.com/news?itc=ddj-header-navbar-news" class="h-58" style="float:left">News</a></li><li class="h-58"><a href="http://drdobbs.com/blogs?itc=ddj-header-navbar-blogs" class="h-58" style="float:left">Blogs</a></li><li class="h-108"><a href="http://drdobbs.com/sourcecode?itc=ddj-header-navbar-sourcecode" class="h-108" style="float:left">Source Code</a></li><li class="h-118"><a href="https://store.drdobbs.com/?itc=ddj-header-navbar-store" class="h-118" style="float:left">Dobb's on DVD</a></li><li class="h-88"><a href="http://drdobbs.com/tv?itc=ddj-header-navbar-tv" class="h-88" style="float:left">Dobb's TV</a></li><li class="h-148"><a href="http://drdobbs.com/webinars?itc=ddj-header-navbar-webinars" class="h-148" style="float:left">Webinars & Events</a></li>
|
|
261
|
+
</ul>
|
|
262
|
+
</div><div id="clearLeft"></div>
|
|
263
|
+
<!-- / main section indicator -->
|
|
264
|
+
<!-- header social icons -->
|
|
265
|
+
<div id="h-nav_social">
|
|
266
|
+
<ul>
|
|
267
|
+
<li><a href="http://www.facebook.com/pages/Dr-Dobbs/17631669579" style="float:left"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-facebook_sm.png" alt="Facebook" border="0"></a></li>
|
|
268
|
+
<li><a href="http://twitter.com/dr_dobbs" style="float:left"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-twitter_sm.png" alt="Twitter" border="0"></a></li>
|
|
269
|
+
</ul>
|
|
270
|
+
</div>
|
|
271
|
+
<!-- / header social icons -->
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
<!-- go parallel indicator -->
|
|
275
|
+
<div id="h-nav_goParallel">
|
|
276
|
+
<ul>
|
|
277
|
+
<li class="h-88">
|
|
278
|
+
<a title="Go Parallel" class="gp" href="http://drdobbs.com/go-parallel/?itc=ddj-header-navbar-goparallel" style="float:right">Go Parallel</a>
|
|
279
|
+
</li>
|
|
280
|
+
</ul>
|
|
281
|
+
</div>
|
|
282
|
+
<!-- / go parallel indicator -->
|
|
283
|
+
|
|
284
|
+
</div><!-- / h-nav_main -->
|
|
285
|
+
|
|
286
|
+
<br>
|
|
287
|
+
</div>
|
|
288
|
+
<div id="subnav">
|
|
289
|
+
<div id="nav2">
|
|
290
|
+
<ul class="navigation">
|
|
291
|
+
|
|
292
|
+
<li><a href="http://drdobbs.com/cloud?itc=ddj-channel-navbar-cloud" style="float:left;">Cloud</a></li><li><a href="http://drdobbs.com/mobile?itc=ddj-channel-navbar-mobile" style="float:left;">Mobile</a></li><li><a href="http://drdobbs.com/parallel?itc=ddj-channel-navbar-parallel" style="float:left;">Parallel</a></li><li><a href="http://drdobbs.com/windows?itc=ddj-channel-navbar-windows" style="float:left;">.NET</a></li><li><a href="http://drdobbs.com/jvm?itc=ddj-channel-navbar-jvm" style="float:left;">JVM Languages</a></li><li><a href="http://drdobbs.com/cpp?itc=ddj-channel-navbar-cpp" style="float:left;">C/C++</a></li><li><a href="http://drdobbs.com/tools?itc=ddj-channel-navbar-tools" style="float:left;">Tools</a></li><li><a href="http://drdobbs.com/architecture-and-design?itc=ddj-channel-navbar-architecture-and-design" style="float:left;">Design</a></li><li><a href="http://drdobbs.com/testing?itc=ddj-channel-navbar-testing" style="float:left;">Testing</a></li><li><a href="http://drdobbs.com/web-development?itc=ddj-channel-navbar-web-development" style="float:left;">Web Dev</a></li><li class="lastitem"><a href="http://drdobbs.com/joltawards?itc=ddj-channel-navbar-joltawards" style="float:left;">Jolt Awards</a></li>
|
|
293
|
+
</ul>
|
|
294
|
+
</div> <!-- End: nav2 -->
|
|
295
|
+
</div><!-- End: subnav -->
|
|
296
|
+
|
|
297
|
+
<div id="leaderboard2">
|
|
298
|
+
<script language="javascript">
|
|
299
|
+
<!--
|
|
300
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183477/0/225/ADTECH;alias=Dr.Dobbs_Database_Top_728x90;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
301
|
+
//-->
|
|
302
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(4)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1183415/0/225/AdId=2331174;BnId=4;itime=820767655;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad2331174St1Sz225Sq20825250V0Id4.gif" border="0" alt="click here" width="728" height="90"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183477/0/225/ADTECH;alias=Dr.Dobbs_Database_Top_728x90;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183477/0/225/ADTECH;alias=Dr.Dobbs_Database_Top_728x90;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
303
|
+
</div>
|
|
304
|
+
|
|
305
|
+
<div id="columns">
|
|
306
|
+
|
|
307
|
+
<div id="content">
|
|
308
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shLegacy.js"></script>
|
|
309
|
+
<!--<script type="text/javascript" src="http://i.cmpnet.com/ddj/v2/syntaxhighlighter/scripts/shCore.js"></script> -->
|
|
310
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore_new.js"></script>
|
|
311
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushXml.js"></script>
|
|
312
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushVb.js"></script>
|
|
313
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSql.js"></script>
|
|
314
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushScala.js"></script>
|
|
315
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSass.js"></script>
|
|
316
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushRuby.js"></script>
|
|
317
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPython.js"></script>
|
|
318
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPowerShell.js"></script>
|
|
319
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPlain.js"></script>
|
|
320
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPhp.js"></script>
|
|
321
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPerl.js"></script>
|
|
322
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJScript.js"></script>
|
|
323
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJavaFX.js"></script>
|
|
324
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJava.js"></script>
|
|
325
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushGroovy.js"></script>
|
|
326
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushErlang.js"></script>
|
|
327
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDiff.js"></script>
|
|
328
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDelphi.js"></script>
|
|
329
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCss.js"></script>
|
|
330
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCSharp.js"></script>
|
|
331
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCpp.js"></script>
|
|
332
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushColdFusion.js"></script>
|
|
333
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushBash.js"></script>
|
|
334
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAS3.js"></script>
|
|
335
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAppleScript.js"></script>
|
|
336
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shAutoloader.js"></script>
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
<link href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shThemeDefault.css" rel="stylesheet" type="text/css">
|
|
341
|
+
<link href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCoreDefault.css" rel="stylesheet" type="text/css">
|
|
342
|
+
<link href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore.css" rel="stylesheet" type="text/css">
|
|
343
|
+
<style>
|
|
344
|
+
syntaxhighlighter {
|
|
345
|
+
margin-bottom: 0;
|
|
346
|
+
margin-left: 0;
|
|
347
|
+
margin-right: 0;
|
|
348
|
+
margin-top: 0;
|
|
349
|
+
overflow-x: auto;
|
|
350
|
+
overflow-y: auto;
|
|
351
|
+
width: 450px;
|
|
352
|
+
}
|
|
353
|
+
</style>
|
|
354
|
+
<div class="articles no-border">
|
|
355
|
+
<span id="rss" style="float: right; margin-bottom: 3px;">
|
|
356
|
+
<a href="http://drdobbs.com/rss/database"><img alt="RSS" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/rss.gif"></a>
|
|
357
|
+
|
|
358
|
+
</span>
|
|
359
|
+
|
|
360
|
+
<h2>Database</h2>
|
|
361
|
+
|
|
362
|
+
<div class="sharing-tools">
|
|
363
|
+
<div class="share-index">
|
|
364
|
+
<div style="float: left; margin-right: 40px;" class="share-tweet">
|
|
365
|
+
<!-- BEGIN TWEET BUTTON -->
|
|
366
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widgets.js"></script>
|
|
367
|
+
<iframe scrolling="no" frameborder="0" class="twitter-share-button twitter-count-horizontal" tabindex="0" allowtransparency="true" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/tweet_button.html" style="width: 110px; height: 20px;" title="Twitter For Websites: Tweet Button"></iframe>
|
|
368
|
+
<!-- END TWEET BUTTON -->
|
|
369
|
+
</div>
|
|
370
|
+
<!-- BEGIN FB LIKE -->
|
|
371
|
+
<div style="float: left; margin-right: 5px;" class="share-facebook-likes">
|
|
372
|
+
<iframe scrolling="no" frameborder="0" allowtransparency="true" style="border: medium none; overflow: hidden; width: 90px; padding-top: 0px; height: 25px;" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/like.html"></iframe>
|
|
373
|
+
</div>
|
|
374
|
+
<!-- END FB LIKE -->
|
|
375
|
+
<!-- Linked In Button -->
|
|
376
|
+
<div class="share-tweet" style="float: left; margin-right: 6px;">
|
|
377
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/in.js"></script>
|
|
378
|
+
<span style="line-height: 1; vertical-align: baseline; display: inline-block; text-align: center; " class="IN-widget"><span style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; text-indent: 0px !important; display: inline-block !important; vertical-align: baseline !important; font-size: 1px !important; "><span id="li_ui_li_gen_1326820768301_0"><a id="li_ui_li_gen_1326820768301_0-link" href="javascript:void(0);"><span id="li_ui_li_gen_1326820768301_0-logo">in</span><span id="li_ui_li_gen_1326820768301_0-title"><span id="li_ui_li_gen_1326820768301_0-mark"></span><span id="li_ui_li_gen_1326820768301_0-title-text">Share</span></span></a></span></span></span><script type="in/share+init" data-url="http://drdobbs.com/database/231400148"></script>
|
|
379
|
+
</div>
|
|
380
|
+
<!-- Linked In Button -->
|
|
381
|
+
<!-- Google +1 Button -->
|
|
382
|
+
<div style="float: left; margin-right: 2px;">
|
|
383
|
+
<div id="___plusone_0" style="height: 15px; width: 24px; display: inline-block; text-indent: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; float: none; line-height: normal; font-size: 1px; vertical-align: baseline; background-position: initial initial; background-repeat: initial initial; "><iframe allowtransparency="true" frameborder="0" hspace="0" id="I1_1326820770311" marginheight="0" marginwidth="0" name="I1_1326820770311" scrolling="no" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/fastbutton.html" style="width: 24px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; height: 15px; position: static; left: 0px; top: 0px; visibility: visible; " tabindex="-1" vspace="0" width="100%" title="+1"></iframe></div>
|
|
384
|
+
</div>
|
|
385
|
+
<!-- Google +1 Button -->
|
|
386
|
+
<div class="addthis_toolbox addthis_pill_combo_style" addthis:url="http://drdobbs.com/database/231400148">
|
|
387
|
+
|
|
388
|
+
<a style="cursor: pointer;" class="addthis_button_stumbleupon at300b" href="http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=xa-4af4a81901b903fa&source=tbx-250&lng=en-US&s=stumbleupon&url=http%3A%2F%2Fdrdobbs.com%2Fdatabase%2F231400148&title=Dataflow%20Programming%3A%20Handling%20Huge%20Data%20Loads%20Without%20Adding%20Complexity%20%7C%20Dr%20Dobb's&ate=AT-xa-4af4a81901b903fa/-/-/4f15ad9e1f9a810f/1&frommenu=1&uid=4f15ad9e1c1edecf&ct=1&tt=0" target="_blank" title="Send to StumbleUpon"> <span class="at300bs at15t_stumbleupon"></span></a>
|
|
389
|
+
<a class="addthis_button_reddit at300b" style="cursor:pointer" href="http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=xa-4af4a81901b903fa&source=tbx-250&lng=en-US&s=reddit&url=http%3A%2F%2Fdrdobbs.com%2Fdatabase%2F231400148&title=Dataflow%20Programming%3A%20Handling%20Huge%20Data%20Loads%20Without%20Adding%20Complexity%20%7C%20Dr%20Dobb's&ate=AT-xa-4af4a81901b903fa/-/-/4f15ad9e1f9a810f/2&frommenu=1&uid=4f15ad9e3f41546e&ct=1&tt=0" target="_blank" title="Send to Reddit"><span class="at300bs at15nc at15t_reddit"></span></a>
|
|
390
|
+
<a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fdrdobbs.com%2Fdatabase%2F231400148&t=Dataflow%20Programming%3A%20Handling%20Huge%20Data%20Loads%20Without%20Adding%20Complexity%20%7C%20Dr%20Dobb's&src=sp" share_url="http://drdobbs.com/database/231400148" type="icon" name="fb_share" style="text-decoration: none; "><span class="FBConnectButton_Simple"><span class="FBConnectButton_Text_Simple"></span></span></a><script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/FB.Share"></script>
|
|
391
|
+
<a title="Send As Email" href="javascript:emailLauncher('/email?articleUrl=','/database/231400148')" class="addthis_default_style"><img hspace="0" border="0" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_email_icon.gif"></a>
|
|
392
|
+
<a href="http://drdobbs.com/article/print?articleId=231400148&siteSectionName=" class="addthis_default_style"><img hspace="4" border="0" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_print_icon.gif"></a>
|
|
393
|
+
<a href="http://drdobbs.com/database/231400148#" class="addthis_permalink">Permalink</a>
|
|
394
|
+
<div class="atclear"></div>
|
|
395
|
+
<div class="atclear"></div></div>
|
|
396
|
+
<script type="text/javascript">var addthis_config = {"data_track_clickback":true};</script>
|
|
397
|
+
<script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/addthis_widget.js" type="text/javascript"></script>
|
|
398
|
+
<!-- AddThis Button END -->
|
|
399
|
+
</div>
|
|
400
|
+
<div style="clear: both;"></div>
|
|
401
|
+
</div>
|
|
402
|
+
|
|
403
|
+
<script>
|
|
404
|
+
function emailLauncher(filePath,storyURL) {
|
|
405
|
+
uri = filePath + encodeURIComponent(storyURL);
|
|
406
|
+
window.open(uri,"","toolbar=no,scrollbars=auto,location=no,status=no,width=733,height=590,resizable=1");
|
|
407
|
+
}
|
|
408
|
+
</script>
|
|
409
|
+
|
|
410
|
+
<div id="article-header">
|
|
411
|
+
<h1 class="story-title">Dataflow Programming: Handling Huge Data Loads Without Adding Complexity</h1>
|
|
412
|
+
<p class="byline">By <span class="byline">Jim Falgout</span>, September 19, 2011</p>
|
|
413
|
+
<p class="byline-comments"><span>
|
|
414
|
+
<a href="http://drdobbs.com/database/231400148#disqus_thread" data-disqus-identifier="article_231400148">3 Comments</a>
|
|
415
|
+
|
|
416
|
+
</span></p>
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
<font class="story-teaser">Manage the data pipelines rather than webs of threads and processes</font><br>
|
|
420
|
+
|
|
421
|
+
</div>
|
|
422
|
+
<div class="story">
|
|
423
|
+
<p>Today, we speak casually of terabytes of data the way we used to speak of megabytes. Multi-petabyte data stores are common and growing. To handle all this data quickly and efficiently, and to extract useful business insights from it, we need programming paradigms that combine the scalable use of multicore processors and many-node clusters with data processing and analysis. No single programming paradigm can serve all problem domains, so expect many alternatives and consolidation. We're entering an era of innovation and the time is ripe for a robust programming paradigm well suited to big data processing and analytics. In this article, I'll discuss dataflow, a technique that manages very large data flows into and through islands of high-speed computation.
|
|
424
|
+
</p><h3>What Is Dataflow?</h3>
|
|
425
|
+
<p>As a software architecture, dataflow consists of nodes in a graph connected by directed dataflow queues. The graph represents an application or program and the nodes represent functions to be applied to data. The dataflow queues transport the data between connected functions. Figure 1 shows connectors on the left reading data from data sources. The data flows from left to right, from node to node. In most cases, each operator in the graph receives data from its input queue, applies its function to the data, and outputs the results to its output queue. For example, the second operator, entitled "Missing Value," reads rows of data, looks for missing values in each row, and outputs replacement values to its output queue.
|
|
426
|
+
</p><p><img class="illowide" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dataflow1.gif"> </p><div class="caption"> <b>Figure 1: A dataflow graph processing and aggregating transactional data.</b> </div><br><p>
|
|
427
|
+
</p><p>Composing a dataflow graph is a process of creating instances of operators and linking them together by stitching the output of one operator to the input of another. This composition model provides great flexibility in how users link operators to create applications. By thinking of each operator as a function consuming data and producing an output, dataflow provides the higher-order mechanism (composition) for organizing those functions.
|
|
428
|
+
</p><p>Dataflow's shared-nothing model yields a simple programming paradigm, somewhat analogous to the UNIX shell where shell commands can be piped from one to the next to produce the desired output. Each shell command is independent but all live by a contract to consume standard input and pipe out standard output. Dataflow operators live by a similar kind of contract, using queues. Additionally, operators in dataflow can have multiple input and output queues. They also have properties that allow manipulating their behavior. Flow control is applied to queues to enable different consumption rates between operators. Deadlock detection can also be applied to prevent race conditions between operators.
|
|
429
|
+
</p><p>The dataflow model provides pipeline parallelism by its very nature. As an operator consumes input it pushes its output downstream. Operators normally don't have to see all of their input before producing output. As each operator works, a pipeline of data makes its way through the graph. Each operator can be represented by a thread, or possibly a set of threads. With many operators in a dataflow graph working in parallel, dataflow readily takes advantage of multicore processors.
|
|
430
|
+
</p><p>Dataflow also supports horizontal partitioning, allowing data to be segmented and applied to a replicated section of a graph. This partitioning can be dynamic, adjusting to the number of computing resources available at execution time. Horizontal partitioning is a great way to "divide and conquer" data problems where data dependency is not an issue. It can both scale up to multicore processors and scale out to multiple nodes within a cluster.
|
|
431
|
+
</p><h3>Dataflow History</h3>
|
|
432
|
+
<p>One definition of dataflow frequently found in computer science textbooks describes an architecture whereby changing the value of a variable results in the automatic recalculation of other dependent variables. This is more of the "spreadsheet" model made popular by Microsoft Excel and others.
|
|
433
|
+
</p><p>In his seminal paper titled <a href="http://www1.cs.columbia.edu/~sedwards/papers/kahn1974semantics.pdf">"The Semantics of a Simple Language for Parallel Processing"</a> [PDF], Gilles Kahn defines Kahn Process Networks (KPNs). According to <a href="http://en.wikipedia.org/wiki/Kahn_process_networks">Wikipedia</a>, KPN's define a programming model "...where a group of deterministic sequential processes are communicating through unbounded FIFO channels." This matches closely with how we've been describing dataflow.
|
|
434
|
+
</p><p>KPNs were originally designed with distributed programming in mind. They are also heavily used for modeling signal-processing systems. The functional approach of KPNs is a good fit for signal processing, allowing filters to be built as pluggable functions that can be inserted as needed within a signal flow.
|
|
435
|
+
</p><p>The original concept of dataflow (spreadsheets) and KPNs have, over time, evolved to the software architecture of dataflow.
|
|
436
|
+
</p><h3>Dataflow Goodness</h3>
|
|
437
|
+
<p>The concepts of dataflow are easy to grasp leading to "design-time scalability." As Figure 1 shows, dataflow lends itself well to GUI environments, bringing high-performance computing to an extremely accessible usability level.
|
|
438
|
+
</p><p>The <b>java.util.concurrent</b> library has been in existence since Java 5, yet few programmers have deep experience with it. With the proliferation of multicore processors and the abundance of raw data, developers need the ability to write high-performing, scalable software, which is almost impossible if we stay in today's thread-centric, shared-memory model of programming. Dataflow provides a means of composing scalable applications using a building block approach. It does so while abstracting away low-level issues such as threads, memory synchronization, and race conditions.
|
|
439
|
+
</p><p>Dataflow has many of the good qualities of functional programming. For example, dataflow queues are immutable, eliminating concerns about shared memory synchronization or side effects from upstream operators. Immutability also allows queues to have multiple readers for good functional reuse. Having no global state also limits side effects. By contract, each operator in a dataflow graph only mutates the data it receives according to the function it provides. It's easy to look at a dataflow graph and surmise how it works and what it does. The similarity of this approach to the actor model cannot be overlooked.</p></div><!-- test -->
|
|
440
|
+
<br>
|
|
441
|
+
<div class="nav1">
|
|
442
|
+
<center>
|
|
443
|
+
<br><b>1</b> <a href="http://drdobbs.com/database/231400148?pgno=2">2</a> <a href="http://drdobbs.com/database/231400148?pgno=2">Next</a> </center>
|
|
444
|
+
</div>
|
|
445
|
+
|
|
446
|
+
<style type="text/css">
|
|
447
|
+
<!--
|
|
448
|
+
.nav1 {
|
|
449
|
+
clear: both;
|
|
450
|
+
text-align: center;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.topcommenttools .tools {
|
|
454
|
+
display: table;
|
|
455
|
+
font-size: .7em;
|
|
456
|
+
font-weight: bold;
|
|
457
|
+
padding-bottom: 10px;
|
|
458
|
+
width: 100%;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.topcommenttools .tools .reply {
|
|
462
|
+
float: left;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
.topcommenttools .tools .share-email-report {
|
|
466
|
+
float: right;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.topcommenttools .tools .share-email-report span {
|
|
470
|
+
margin-left: 10px;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
.topcommenttools .tools .reply a {
|
|
474
|
+
background: transparent
|
|
475
|
+
url('http://i.cmpnet.com/ddj/v2/images/reply.gif') no-repeat 0px 3px;
|
|
476
|
+
padding-left: 10px;
|
|
477
|
+
padding-right: 10px;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.topcommenttools .tools .share {
|
|
481
|
+
background: transparent
|
|
482
|
+
url('http://i.cmpnet.com/ddj/v2/images/share_icon.gif') no-repeat
|
|
483
|
+
bottom left;
|
|
484
|
+
padding-left: 23px;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
.topcommenttools .tools .email {
|
|
488
|
+
background: transparent
|
|
489
|
+
url('http://i.cmpnet.com/ddj/v2/images/mail_icon.gif') no-repeat
|
|
490
|
+
bottom left;
|
|
491
|
+
padding-left: 22px;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.topcommenttools .tools .report {
|
|
495
|
+
background: transparent
|
|
496
|
+
url('http://i.cmpnet.com/ddj/v2/images/report_icon.gif') no-repeat
|
|
497
|
+
bottom left;
|
|
498
|
+
padding-left: 16px;
|
|
499
|
+
}
|
|
500
|
+
-->
|
|
501
|
+
</style>
|
|
502
|
+
|
|
503
|
+
</div>
|
|
504
|
+
|
|
505
|
+
<!-- Related Reading Box -->
|
|
506
|
+
<!-- / Related Reading Box -->
|
|
507
|
+
<div class="dcolmask doublepage">
|
|
508
|
+
<div class="dcolleft">
|
|
509
|
+
<div class="dcol1">
|
|
510
|
+
<!-- Column 1 start -->
|
|
511
|
+
<div id="left-col" style="width:160px;">
|
|
512
|
+
<div class="infolink">
|
|
513
|
+
<span style="font-size: 0.7em; font-weight: bold;">INFO-LINK</span>
|
|
514
|
+
<ul style="color: rgb(33, 82, 190); font-size: 0.7em; list-style: none outside none; margin-top: 0px; padding: 8px 0px 0px;">
|
|
515
|
+
<li style="padding-left: 15px; background: url("http://i.cmpnet.com/nc/mt/bg_left-nav.png") no-repeat scroll 5px 7px transparent; color: rgb(0, 59, 176); margin: 0px 0pt;">
|
|
516
|
+
<script language="javascript">
|
|
517
|
+
<!--
|
|
518
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183516/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_1_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
519
|
+
//-->
|
|
520
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp="></script><a target="_parent" href="http://adserver.adtechus.com/adlink/5242/1183566/0/16/AdId=2030203;BnId=1;itime=820767253;key=231400148+/database/231400148;nodecode=yes;link=http://twimgs.com/ddj/v2/images/channel-sponsor/MS_RIA_Unleash_Power_Hardware_Accelerated_HTML5_Canvas.pdf">
|
|
521
|
+
Unleash the Power of Hardware-Accelerated HTML5 Canvas</a>
|
|
522
|
+
<noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183516/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_1_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183516/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_1_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" border="0" width="1" height="1"></img></a></noscript>
|
|
523
|
+
</li>
|
|
524
|
+
<li style="padding-left: 15px; background: url("http://i.cmpnet.com/nc/mt/bg_left-nav.png") no-repeat scroll 5px 7px transparent; color: rgb(0, 59, 176); margin: 0px 0pt;">
|
|
525
|
+
<script language="javascript">
|
|
526
|
+
<!--
|
|
527
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183550/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_2_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
528
|
+
//-->
|
|
529
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(1)"></script><a target="_parent" href="http://adserver.adtechus.com/adlink/5242/1183483/0/16/AdId=2030206;BnId=3;itime=820767196;key=231400148+/database/231400148;nodecode=yes;link=http://twimgs.com/ddj/v2/images/channel-sponsor/MS_RIA_How_to_Choose_Between_Canvas_SVG_for_Your_Site.pdf">How to Choose Between Canvas and SVG for Your Site</a>
|
|
530
|
+
<noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183550/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_2_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183550/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_2_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" border="0" width="1" height="1"></img></a></noscript>
|
|
531
|
+
</li>
|
|
532
|
+
<li style="padding-left: 15px; background: url("http://i.cmpnet.com/nc/mt/bg_left-nav.png") no-repeat scroll 5px 7px transparent; color: rgb(0, 59, 176); margin: 0px 0pt;">
|
|
533
|
+
<script language="javascript">
|
|
534
|
+
<!--
|
|
535
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183588/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_3_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
536
|
+
//-->
|
|
537
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(2)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1183508/0/16/AdId=-3;BnId=0;itime=820767540;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif" border="0" alt="AdTech Ad" width="1" height="1"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183588/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_3_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183588/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_3_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" border="0" width="1" height="1"></img></a></noscript>
|
|
538
|
+
</li>
|
|
539
|
+
<li style="padding-left: 15px; background: url("http://i.cmpnet.com/nc/mt/bg_left-nav.png") no-repeat scroll 5px 7px transparent; color: rgb(0, 59, 176); margin: 0px 0pt;">
|
|
540
|
+
<script language="javascript">
|
|
541
|
+
<!--
|
|
542
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183424/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_4_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
543
|
+
//-->
|
|
544
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(3)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1183580/0/16/AdId=-3;BnId=0;itime=820768690;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif" border="0" alt="AdTech Ad" width="1" height="1"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183424/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_4_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183424/0/16/ADTECH;alias=Dr.Dobbs_Database_Infolink_4_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" border="0" width="1" height="1"></img></a></noscript>
|
|
545
|
+
</li>
|
|
546
|
+
</ul>
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
</div>
|
|
552
|
+
<br>
|
|
553
|
+
<br>
|
|
554
|
+
|
|
555
|
+
<script language="javascript">
|
|
556
|
+
<!--
|
|
557
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1196722/0/154/ADTECH;alias=Dr.Dobbs_Database_Sky_160x600;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
558
|
+
//-->
|
|
559
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(4)"></script><script language="JavaScript1.1" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/adlink_5242_1183459_0_154_AdId=2355270;BnId=1;itime=820768810;key=231400148+_database_231400148;link=">
|
|
560
|
+
</script><!-- Template Id = 4,228 Template Name = HTML Image Banner + Optional Additional Tracking - [DFA] -->
|
|
561
|
+
<a href="http://ad.doubleclick.net/click%3Bh%3Dv8/3bff/7/a6/%2a/b%3B251284460%3B0-0%3B0%3B75543004%3B2321-160/600%3B45703848/45721236/1%3B%3B~sscs%3D%3fhttp%3A//adserver.adtechus.com/adlink%2F5242%2F1183459%2F0%2F154%2FAdId%3D2355270%3BBnId%3D1%3Bitime%3D820768810%3Bkey%3D231400148%2B%2Fdatabase%2F231400148%3Blink%3Dhttp://www-01.ibm.com/software/websphere/events/impact/index.html?re=impact2012externaldobbs" target="_blank">
|
|
562
|
+
<img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/160-x-600-IMU Impact 2012.jpg" border="0" alt=""></a>
|
|
563
|
+
|
|
564
|
+
<script type="text/javascript" language="javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/script84.js"></script>
|
|
565
|
+
|
|
566
|
+
<noscript>
|
|
567
|
+
<A HREF="http://adserver.adtechus.com/adlink/5242/1183459/0/154/AdId=2355270;BnId=1;itime=820768810;key=231400148+/database/231400148;nodecode=yes;link=http://ad.doubleclick.net/jump/N815.ddj/B6169529.3;sz=160x600;ord=820768810?">
|
|
568
|
+
<IMG SRC="http://ad.doubleclick.net/ad/N815.ddj/B6169529.3;sz=160x600;ord=820768810?" BORDER=0 WIDTH=160 HEIGHT=600 ALT="Advertisement"></A>
|
|
569
|
+
</noscript>
|
|
570
|
+
<noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1196722/0/154/ADTECH;alias=Dr.Dobbs_Database_Sky_160x600;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1196722/0/154/ADTECH;alias=Dr.Dobbs_Database_Sky_160x600;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" border="0" width="1" height="1"></img></a></noscript>
|
|
571
|
+
<script language="javascript">
|
|
572
|
+
<!--
|
|
573
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1629135/0/16/ADTECH;alias=Dr.Dobbs_Database_Floating_Banner_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
574
|
+
//-->
|
|
575
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(5)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1629152/0/16/AdId=-3;BnId=0;itime=820768370;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif" border="0" alt="AdTech Ad" width="1" height="1"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1629135/0/16/ADTECH;alias=Dr.Dobbs_Database_Floating_Banner_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1629135/0/16/ADTECH;alias=Dr.Dobbs_Database_Floating_Banner_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=;" border="0" width="1" height="1"></img></a></noscript>
|
|
576
|
+
|
|
577
|
+
</div>
|
|
578
|
+
</div>
|
|
579
|
+
<div class="dcol2" style="left:71%;width:73%;">
|
|
580
|
+
<!-- Commenting -->
|
|
581
|
+
<div id="dobbs_disqus">
|
|
582
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.colorbox-min.js"></script>
|
|
583
|
+
<script type="text/javascript">
|
|
584
|
+
var brainyardDomain = 'drdobbs.com';
|
|
585
|
+
</script>
|
|
586
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.js"></script>
|
|
587
|
+
<!-- This section is for calling the commenting policy pop-up -->
|
|
588
|
+
<script>
|
|
589
|
+
$(document).ready(function(){
|
|
590
|
+
$(".commentingPolicy").colorbox({width:"420px",height:"300px",inline:true,href:"#inlineCommenting"});//end .htmlTags
|
|
591
|
+
});//end doc ready
|
|
592
|
+
</script>
|
|
593
|
+
<link rel="stylesheet" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/colorbox.css" type="text/css">
|
|
594
|
+
<link rel="stylesheet" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.css" type="text/css">
|
|
595
|
+
|
|
596
|
+
<div style="display:none">
|
|
597
|
+
<div id="inlineModal" style="padding:10px;">
|
|
598
|
+
<div class="newsletterHeader">
|
|
599
|
+
<img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dobbs_disqus_logo.gif">
|
|
600
|
+
</div>
|
|
601
|
+
<br><br>
|
|
602
|
+
<div class="markdown">
|
|
603
|
+
<h3>Currently we allow the following HTML tags in comments:</h3>
|
|
604
|
+
<h3>Single tags</h3>
|
|
605
|
+
<p><i>These tags can be used alone and don't need an ending tag. </i></p>
|
|
606
|
+
<p><code><br></code> Defines a single line break <br><br>
|
|
607
|
+
<code><hr></code> Defines a horizontal line</p>
|
|
608
|
+
|
|
609
|
+
<h3>Matching tags</h3>
|
|
610
|
+
<p><i>These require an ending tag - e.g. <code><i>italic text</i></code> </i></p>
|
|
611
|
+
<p><code><a></code> Defines an anchor<br><br>
|
|
612
|
+
<code><b></code> Defines bold text<br><br>
|
|
613
|
+
<code><big></code> Defines big text<br><br>
|
|
614
|
+
|
|
615
|
+
<code><blockquote></code> Defines a long quotation<br><br>
|
|
616
|
+
<code><caption></code> Defines a table caption<br><br>
|
|
617
|
+
<code><cite></code> Defines a citation<br><br>
|
|
618
|
+
<code><code></code> Defines computer code text<br><br>
|
|
619
|
+
<code><em></code> Defines emphasized text<br><br>
|
|
620
|
+
|
|
621
|
+
<code><fieldset></code> Defines a border around elements in a form<br><br>
|
|
622
|
+
<code><h1></code> This is heading 1<br><br>
|
|
623
|
+
<code><h2></code> This is heading 2<br><br>
|
|
624
|
+
<code><h3></code> This is heading 3<br><br>
|
|
625
|
+
<code><h4></code> This is heading 4<br><br>
|
|
626
|
+
|
|
627
|
+
<code><h5></code> This is heading 5<br><br>
|
|
628
|
+
<code><h6></code> This is heading 6<br><br>
|
|
629
|
+
<code><i></code> Defines italic text<br><br>
|
|
630
|
+
<code><p></code> Defines a paragraph<br><br>
|
|
631
|
+
<code><pre></code> Defines preformatted text<br><br>
|
|
632
|
+
|
|
633
|
+
<code><q></code> Defines a short quotation<br><br>
|
|
634
|
+
<code><samp></code> Defines sample computer code text<br><br>
|
|
635
|
+
<code><small></code> Defines small text<br><br>
|
|
636
|
+
<code><span></code> Defines a section in a document<br><br>
|
|
637
|
+
<code><s></code> Defines strikethrough text<br><br>
|
|
638
|
+
|
|
639
|
+
<code><strike></code> Defines strikethrough text <br><br>
|
|
640
|
+
<code><strong></code> Defines strong text <br><br>
|
|
641
|
+
<code><sub></code> Defines subscripted text <br><br>
|
|
642
|
+
<code><sup></code> Defines superscripted text <br><br>
|
|
643
|
+
<code><u></code> Defines underlined text<br><br></p>
|
|
644
|
+
</div>
|
|
645
|
+
</div><!-- /end inline_mailinglist-->
|
|
646
|
+
|
|
647
|
+
<div id="inlineCommenting" style="padding:10px;text-align: justify;" class="markdown">
|
|
648
|
+
<p>DrDobbs encourages readers to engage
|
|
649
|
+
in spirited, healthy debate, including taking us to task.
|
|
650
|
+
However, DrDobbs moderates all comments posted to our site,
|
|
651
|
+
and reserves the right to modify or remove any content that it determines to be derogatory,
|
|
652
|
+
offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing/SPAM.
|
|
653
|
+
DrDobbs further reserves the right to disable the profile of any commenter participating
|
|
654
|
+
in said activities.</p>
|
|
655
|
+
</div>
|
|
656
|
+
</div>
|
|
657
|
+
<table cellspacing="0" cellpadding="0" border="0" width="100%" bgcolor="#f3f3f3">
|
|
658
|
+
<tbody><tr>
|
|
659
|
+
<td colspan="2"> </td>
|
|
660
|
+
</tr>
|
|
661
|
+
<tr>
|
|
662
|
+
<td width="34"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hintbox_info.jpg" alt="Disqus Tips" border="0" align="left" height="34"></td>
|
|
663
|
+
<td><font style="font-family: Arial, Helvetica, Geneva, SunSans-Regular, sans-serif; color: #000000; font-size: 11px;">
|
|
664
|
+
<strong>To upload an avatar photo,</strong> first <a href="http://disqus.com/dashboard/" style="font-family: Arial,Helvetica,Geneva,SunSans-Regular,sans-serif; color: #003bb0; font-size: 11px;" target="_blank">complete your Disqus profile.</a> | <a href="http://drdobbs.com/database/231400148#" class="htmlTags cboxElement" style="font-family: Arial,Helvetica,Geneva,SunSans-Regular,sans-serif; color: #003bb0; font-size: 11px;">View the list</a> of <strong>supported HTML tags</strong> you can use to style comments. | Please read our <a href="http://drdobbs.com/database/231400148#" class="commentingPolicy cboxElement" style="font-family: Arial,Helvetica,Geneva,SunSans-Regular,sans-serif; color: #003bb0; font-size: 11px;"><strong>commenting policy.</strong></a>
|
|
665
|
+
</font>
|
|
666
|
+
</td>
|
|
667
|
+
</tr>
|
|
668
|
+
<tr>
|
|
669
|
+
<td colspan="2"> </td>
|
|
670
|
+
</tr>
|
|
671
|
+
</tbody></table>
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
<script language="JavaScript" type="text/javascript">
|
|
676
|
+
<!--
|
|
677
|
+
var jmessage = '';
|
|
678
|
+
var jtimestamp = '';
|
|
679
|
+
var jhmac = '';
|
|
680
|
+
var jmessage = '';
|
|
681
|
+
$.ajax({
|
|
682
|
+
type: "GET",
|
|
683
|
+
url: "/disqussetting",
|
|
684
|
+
data: "referer="+encodeURIComponent(window.location.href),
|
|
685
|
+
success: function(data){
|
|
686
|
+
if (data != null)
|
|
687
|
+
{
|
|
688
|
+
jmessage = data.jmessage;
|
|
689
|
+
jtimestamp = data.jtimestamp;
|
|
690
|
+
jhmac = data.jhmac;
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
dataType: "json",
|
|
694
|
+
async: false,
|
|
695
|
+
cache: false
|
|
696
|
+
}
|
|
697
|
+
);
|
|
698
|
+
|
|
699
|
+
if(jhmac == null || jhmac == ''){
|
|
700
|
+
var headID = document.getElementsByTagName("head")[0];
|
|
701
|
+
var cssNode = document.createElement('link');
|
|
702
|
+
cssNode.type = 'text/css';
|
|
703
|
+
cssNode.rel = 'stylesheet';
|
|
704
|
+
cssNode.href = 'http://i.techweb.com/brainyard/css/disqusLoggedOff.css';
|
|
705
|
+
cssNode.media = 'screen';
|
|
706
|
+
headID.appendChild(cssNode);
|
|
707
|
+
}
|
|
708
|
+
else
|
|
709
|
+
{
|
|
710
|
+
document.write("<style type=\"text/css\">#techwebCommentLogin{display:none;}</style>");
|
|
711
|
+
|
|
712
|
+
}
|
|
713
|
+
-->
|
|
714
|
+
|
|
715
|
+
</script>
|
|
716
|
+
|
|
717
|
+
<script type="text/javascript">
|
|
718
|
+
var disqus_config = function () {
|
|
719
|
+
|
|
720
|
+
var hmac1 = jhmac;
|
|
721
|
+
var htimestamp = jtimestamp;
|
|
722
|
+
var hmessage = jmessage;
|
|
723
|
+
if(hmac1 != null){
|
|
724
|
+
this.page.remote_auth_s3 = hmessage + ' ' + hmac1 + ' ' + htimestamp;
|
|
725
|
+
this.page.api_key = "Qq6ImCn7MIzMK699FJY4iuhauNLipx3XghP08sjP0Wz9Ipk81mTrcqxz85A8OOqv";
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
this.sso = {
|
|
729
|
+
name: "UBM TechWeb",
|
|
730
|
+
button: "http://i.techweb.com/informationweek/images/ubm-techweb-logo.gif",
|
|
731
|
+
icon: "http://i.cmpnet.com/brainyard/images/favicon.ico",
|
|
732
|
+
url: "http://drdobbs.com/login?url=http%3A%2F%2Fdrdobbs.com%2Fdatabase%2F231400148%3Fat%3Dvalidate%26actionType%3Dform1&actionType=form1",
|
|
733
|
+
logout: "http://drdobbs.com/logout?url=http%3A%2F%2Fdrdobbs.com%2Fdatabase%2F231400148",
|
|
734
|
+
width: "800",
|
|
735
|
+
height: "400"
|
|
736
|
+
};
|
|
737
|
+
this.callbacks.onNewComment = [function() {trackComment();}];
|
|
738
|
+
};
|
|
739
|
+
</script>
|
|
740
|
+
|
|
741
|
+
<style type="text/css">
|
|
742
|
+
.dsq-post-tools .dsq-post-as .dsq-button{
|
|
743
|
+
background: url(none);
|
|
744
|
+
background-color:#c90000;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
.dsq-post-tools .dsq-post-as .dsq-button:active{
|
|
748
|
+
background: url(none);
|
|
749
|
+
background-color:#ed0404;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
.dsq-post-tools .dsq-post-as .dsq-button:hover{
|
|
753
|
+
background: url(none);
|
|
754
|
+
background-color:#e00000;
|
|
755
|
+
}
|
|
756
|
+
.dsq-post-tools .dsq-post-as .dsq-button{
|
|
757
|
+
text-shadow:none;
|
|
758
|
+
color:white;
|
|
759
|
+
}
|
|
760
|
+
.dsq-comment-text blockquote{
|
|
761
|
+
border-left:1px solid #555555;
|
|
762
|
+
padding-left:15px;
|
|
763
|
+
padding-top:5px;
|
|
764
|
+
padding-bottom:5px;
|
|
765
|
+
font-style:italic;
|
|
766
|
+
font-size:15px;
|
|
767
|
+
margin:15px;
|
|
768
|
+
color:#999999;
|
|
769
|
+
margin-bottom:10px;
|
|
770
|
+
padding-right:15px;
|
|
771
|
+
font-weight:bold;
|
|
772
|
+
}
|
|
773
|
+
#dsq-content .dsq-comment-meta li, #dsq-content .dsq-comment-actions li {
|
|
774
|
+
float: left;
|
|
775
|
+
font-size: 65%;
|
|
776
|
+
margin: 0 10px 0 0;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
#dsq-content #dsq-footer li {
|
|
780
|
+
float: left;
|
|
781
|
+
font-size: 0.75em;
|
|
782
|
+
margin: 0 10px 0 0;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
#dsq-content .dsq-comment-text {
|
|
786
|
+
display: inline;
|
|
787
|
+
font-size: .80em;
|
|
788
|
+
}
|
|
789
|
+
</style>
|
|
790
|
+
|
|
791
|
+
<a name="comments"></a>
|
|
792
|
+
<div id="disqus_thread"><div id="dsq-content-stub" style="display: none; "><img width="71" height="17" alt="DISQUS" src="data:image/png;base64,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"><img width="16" height="11" alt="..." src="data:image/gif;base64,R0lGODlhEAALAPQAAP///z2LqeLt8dvp7u7090GNqz2LqV+fuJ/F1IW2ycrf51aatHWswaXJ14i4ys3h6FmctUCMqniuw+vz9eHs8fb5+meku+Tu8vT4+cfd5bbT3tbm7PH2+AAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA" style="margin:0 0 3px 5px"></div><div id="dsq-content" style="display: block; " class="clearfix"> <div id="dsq-global-toolbar" class="dsq-clearfix"> <ul class="dsq-global-toolbar-right dsq-clearfix"> <li class="dsq-community-box"> <a href="http://drdobbs.com/database/231400148#" class="dsq-toolbar-item dsq-tt" onclick="DISQUS.dtpl.actions.fire('community.show'); return false" title="Expand Community Box"><span class="dsq-toolbar-icon"></span></a> </li> <li class="dsq-global-toolbar-dropdown-container"> <div id="dsq-toolbar-dropdown"> <a href="http://drdobbs.com/database/231400148#" class="dsq-toolbar-logo dsq-toolbar-item dsq-clearfix"><span class="dsq-toolbar-icon">Disqus</span></a> <div id="dsq-toolbar-dropdown-wrap" style="display: none"> <ul class="dsq-clearfix"> <li class="dsq-login-link"><a href="http://drdobbs.com/database/231400148#" onclick="DISQUS.dtpl.actions.fire('auth.login'); return false"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">Login</span></a></li> <li class="dsq-about-link"><a href="http://disqus.com/" target="_blank"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">About Disqus</span></a></li> </ul> </div> </div> </li> </ul> <ul class="dsq-global-toolbar-left dsq-clearfix"> <li class="dsq-like-thread"> <a href="http://drdobbs.com/database/231400148#" id="dsq-like-thread-button" class="dsq-toolbar-item dsq-clearfix dsq-tt" onclick="DISQUS.dtpl.actions.fire('thread.vote', 1); return false;" title="I like this page"> <span class="dsq-toolbar-icon"></span> <span class="dsq-toolbar-label">Like</span> </a> </li> <li class="dsq-dislike-thread"> <a href="http://drdobbs.com/database/231400148#" id="dsq-dislike-thread-button" class="dsq-toolbar-item dsq-clearfix dsq-tt" onclick="DISQUS.dtpl.actions.fire('thread.vote', -1); return false" title="I don't like this page"> <span class="dsq-toolbar-icon">Dislike</span> </a> </li> <li class="dsq-like-panel"> <ul class="dsq-like-faces dsq-clearfix"> <li class="dsq-like-activity"> </li> </ul> </li> </ul> </div> <div id="dsq-like-tooltip"> <div id="dsq-share-step-1" class="dsq-share-step"> <h3>Glad you liked it. Would you like to share?</h3> <p class="dsq-tooltip-checkbox"><input type="checkbox" id="dsq-share-thread-facebook" value="Facebook"><label for="dsq-share-thread-facebook"><span class="dsq-facebook">Facebook</span></label></p> <p class="dsq-tooltip-checkbox"><input type="checkbox" id="dsq-share-thread-twitter" value="Twitter"><label for="dsq-share-thread-twitter"><span class="dsq-twitter">Twitter</span></label></p> <ul id="dsq-tooltip-actions"> <li><a href="http://drdobbs.com/database/231400148#" onclick="DISQUS.dtpl.actions.fire('thread.share.send'); return false" class="dsq-primary-action">Share</a></li> <li><a href="http://drdobbs.com/database/231400148#" onclick="DISQUS.dtpl.actions.fire('thread.share.cancel'); return false" class="dsq-secondary-action">No thanks</a></li> </ul> </div> <div id="dsq-share-step-2" class="dsq-share-step" style="display:none !important"> <p>Sharing this page �</p> </div> <div id="dsq-share-step-3" class="dsq-share-step" style="display:none !important"> <p>Thanks! <a href="http://drdobbs.com/database/231400148#" class="dsq-tooltip-decline" onclick="DISQUS.dtpl.actions.fire('thread.share.cancel'); return false">Close</a></p> </div> </div> <div class="dsq-reply " id="dsq-reply"> <div id="dsq-account-dropdown"> <div class="dsq-login"> <a href="http://drdobbs.com/database/231400148#" onclick="DISQUS.dtpl.actions.fire('auth.login'); return false;">Login</a> </div> </div> <h3>Add New Comment</h3> <div id="techwebCommentLogin"> <a href="http://drdobbs.com/login?url=http%3A%2F%2Fdrdobbs.com%2Fdatabase%2F231400148%3Fat%3Dvalidate%26actionType%3Dform1&actionType=form1"> Login or Register to Comment </a> </div> <div class="dsq-avatar"> <img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/noavatar32.png"> </div> <div class="dsq-textarea dsq-textarea-reply"> <div class="dsq-textarea-background"> <div class="dsq-textarea-wrapper"> <!-- filled dynamically --> <iframe name="easyXDM_DISQUS_net_default7444_provider" id="easyXDM_DISQUS_net_default7444_provider" scrolling="no" frameborder="0" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/reply.html"></iframe></div> <div id="dsq-media-preview" class="dsq-media-preview" style="display:none"> </div> <div class="dsq-post-tools"> <ul> <li class="dsq-post-as"> <button type="button" class="dsq-button" onclick="DISQUS.dtpl.actions.fire('comments.validate', null, this);"> Post as � </button> </li> <li class="dsq-attach-media"> <div class="dsq-attach-media-container"> <span>Image</span> <!-- filled dynamically --> <iframe name="easyXDM_DISQUS_net_default7445_provider" id="easyXDM_DISQUS_net_default7445_provider" scrolling="no" frameborder="0" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/upload.html"></iframe></div> </li> <li class="dsq-share-on dsq-clearfix"> </li> </ul> </div> </div> </div></div> <div id="dsq-sort-by"> <select id="dsq-sort-select" onchange="DISQUS.dtpl.actions.fire('thread.sort', this.value);"> <option value="hot"> Sort by popular now </option> <option value="best"> Sort by best rating </option> <option value="newest"> Sort by newest first </option> <option value="oldest" selected="selected"> Sort by oldest first </option> </select> </div> <h3> Showing <span id="dsq-num-posts">3</span> comments </h3> <ul id="dsq-comments"> <li id="dsq-comment-361412470" data-dsq-comment-id="361412470" class="dsq-comment dsq-clearfix " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand Billboatman's profile"> <a href="http://disqus.com/guest/71e5b49bb14503337071f8b11819e7e9/" onclick="DISQUS.dtpl.actions.fire('profile.show', 361412470, null); return false"> <img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-361412470" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">Billboatman</span> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://drdobbs.com/database/231400148#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 361412470); return false;"><span>Collapse</span></a> <a href="http://drdobbs.com/database/231400148#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 361412470); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-361412470"> <div class="dsq-comment-text" id="dsq-comment-text-361412470"> DataFlow looks like the analog of analog computing! True or False? </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-361412470"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="permalink-361412470"> <a href="http://drdobbs.com/database/article_231400148/permalink/comment/361412470"> Permalink </a> </li> <li class="dsq-comment-flag"> <a href="http://drdobbs.com/database/231400148#" onclick="return DISQUS.dtpl.actions.fire('comments.report', 361412470, false);">Flag as inappropriate</a> </li> <li id="dsq-like-361412470"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://drdobbs.com/database/231400148#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,361412470); return false">Like</a> </li> <li> <a href="http://drdobbs.com/database/231400148#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',361412470, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://drdobbs.com/database/231400148#comment-361412470" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 361412470);" title="Link to comment by Billboatman"> 2 months ago </a></li> <li style="display:none"> <a href="http://drdobbs.com/database/231400148#" id="dsq-comment-like-count-361412470" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 361412470); return false">0 Like </a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-361412470"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-361412470"></li> <li id="dsq-comment-362751202" data-dsq-comment-id="362751202" class="dsq-comment dsq-clearfix " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand jawad's profile"> <a href="http://disqus.com/ubm_techweb_disqus_sso_-b4da655a32a0316c91fe1fd755e5f0e2/" onclick="DISQUS.dtpl.actions.fire('profile.show', 362751202, null); return false"> <img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-362751202" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">jawad</span> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://drdobbs.com/database/231400148#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 362751202); return false;"><span>Collapse</span></a> <a href="http://drdobbs.com/database/231400148#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 362751202); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-362751202"> <div class="dsq-comment-text" id="dsq-comment-text-362751202"> I would like to read more about data flow (with possibly a small implementation example, for example determining shortest path in a large weighted connected graph). Can you point me to some material? I am actually attempting to write a parallel compiler, so I want to have a good understanding of parallel programming approaches, algorithms, and some sample implementations).<br>pls post here or u can send me email: m_jawad_butt@yahoo.com </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-362751202"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="permalink-362751202"> <a href="http://drdobbs.com/database/article_231400148/permalink/comment/362751202"> Permalink </a> </li> <li class="dsq-comment-flag"> <a href="http://drdobbs.com/database/231400148#" onclick="return DISQUS.dtpl.actions.fire('comments.report', 362751202, false);">Flag as inappropriate</a> </li> <li id="dsq-like-362751202"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://drdobbs.com/database/231400148#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,362751202); return false">Like</a> </li> <li> <a href="http://drdobbs.com/database/231400148#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',362751202, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://drdobbs.com/database/231400148#comment-362751202" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 362751202);" title="Link to comment by jawad"> 2 months ago </a></li> <li style="display:none"> <a href="http://drdobbs.com/database/231400148#" id="dsq-comment-like-count-362751202" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 362751202); return false">0 Like </a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-362751202"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-362751202"></li> <li id="dsq-comment-379325796" data-dsq-comment-id="379325796" class="dsq-comment dsq-clearfix " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand homin's profile"> <a href="http://disqus.com/ubm_techweb_disqus_sso_-8adf1d8ab9043d1bde729abf8ff82b6c/" onclick="DISQUS.dtpl.actions.fire('profile.show', 379325796, null); return false"> <img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-379325796" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">homin</span> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://drdobbs.com/database/231400148#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 379325796); return false;"><span>Collapse</span></a> <a href="http://drdobbs.com/database/231400148#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 379325796); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-379325796"> <div class="dsq-comment-text" id="dsq-comment-text-379325796"> Questions:<br><br>1) Do you think that finer breakdown into more data links between nodes meaning more threads/tasks/processes and more queues need to be maintained? And as such requiring higher CPUs processing cycles and memory hog for maintaining the framework? It probably makes sense for certain tasks that do need such parallelism, but for some monolithic data processing usually in single channel/piping, it would be simpler to run in traditional model without too much parallelism. <br>So it depends a lot on the nature of the processing needs if dataflow model truly applicable, do you agree?<br><br>2) Don't quite understand how the data links as queues could prevent synchronization... Even if queues are presented as immutable to readers, there is still a specific time instance a node has to own and push to queue? During such time instance, isn't concurrency synchronization need inevitable? Instead, the finer data links are defined, the longer chain of synchronization dependency is built, e.g. to avoid starvation problem, and the cost is higher complexity, particularly when there is feedback relation in the data graph.<br><br>Thanks.<br><br><br> </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-379325796"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="permalink-379325796"> <a href="http://drdobbs.com/database/article_231400148/permalink/comment/379325796"> Permalink </a> </li> <li class="dsq-comment-flag"> <a href="http://drdobbs.com/database/231400148#" onclick="return DISQUS.dtpl.actions.fire('comments.report', 379325796, false);">Flag as inappropriate</a> </li> <li id="dsq-like-379325796"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://drdobbs.com/database/231400148#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,379325796); return false">Like</a> </li> <li> <a href="http://drdobbs.com/database/231400148#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',379325796, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://drdobbs.com/database/231400148#comment-379325796" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 379325796);" title="Link to comment by homin"> 1 month ago </a></li> <li style="display:none"> <a href="http://drdobbs.com/database/231400148#" id="dsq-comment-like-count-379325796" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 379325796); return false">0 Like </a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-379325796"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-379325796"></li> </ul> <div id="dsq-pagination"> <ul id="dsq-footer" class="dsq-clearfix"> <div id="dsq-subscribe"> <li> <a href="http://drdobbs.com/database/231400148#" class="dsq-subscribe-email" onclick="return DISQUS.dtpl.actions.fire('thread.subscribe');"> <span class="dsq-font">M</span> <em>Subscribe by email</em> </a> </li> <li> <a href="http://drdobbs.disqus.com/new_comment_on_dataflow_programming_handling_huge_data_loads_without_adding_complexity/latest.rss" class="dsq-subscribe-rss"> <span class="dsq-font">S</span> <em>RSS</em> </a> </li> </div> </ul> </div> </div><div> </div></div>
|
|
793
|
+
|
|
794
|
+
<script type="text/javascript">
|
|
795
|
+
var disqus_developer = 1;
|
|
796
|
+
|
|
797
|
+
var disqus_shortname = 'drdobbs';
|
|
798
|
+
var disqus_domain = 'disqus.com';
|
|
799
|
+
var disqus_identifier = 'article_231400148';
|
|
800
|
+
var disqus_url = 'http://drdobbs.com/database/231400148';
|
|
801
|
+
var disqus_title = '"Dataflow Programming: Handling Huge Data Loads Without Adding Complexity"';
|
|
802
|
+
/* * * DON'T EDIT BELOW THIS LINE * * */
|
|
803
|
+
(function() {
|
|
804
|
+
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
|
805
|
+
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
|
|
806
|
+
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
|
807
|
+
})();
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
</script>
|
|
811
|
+
</div>
|
|
812
|
+
<!-- / Commenting -->
|
|
813
|
+
<!-- Best of Web -->
|
|
814
|
+
<div class="subsection best">
|
|
815
|
+
<h2>Best of the Web</h2>
|
|
816
|
+
|
|
817
|
+
<h1><a href="http://drdobbs.com/bestofweb/QuickRead2.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">How Debuggers Work</a></h1>
|
|
818
|
+
<p>A detailed series of articles explaining how debuggers work their magic.</p>
|
|
819
|
+
<p class="quick-read"><a href="http://drdobbs.com/bestofweb/QuickRead2.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">Quick Read</a></p>
|
|
820
|
+
|
|
821
|
+
<h1><a href="http://drdobbs.com/bestofweb/QuickRead3.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">Custom Development Becoming Key Strategic Differentiator</a></h1>
|
|
822
|
+
<p>At financial services firms, developers rule once again!</p>
|
|
823
|
+
<p class="quick-read"><a href="http://drdobbs.com/bestofweb/QuickRead3.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">Quick Read</a></p>
|
|
824
|
+
|
|
825
|
+
<h1><a href="http://drdobbs.com/bestofweb/QuickRead5.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">Learn Git Fast</a></h1>
|
|
826
|
+
<p>A series of approachable, to-the-point tutorials on how to use Git.</p>
|
|
827
|
+
<p class="quick-read"><a href="http://drdobbs.com/bestofweb/QuickRead5.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">Quick Read</a></p>
|
|
828
|
+
|
|
829
|
+
<h1><a href="http://drdobbs.com/bestofweb/QuickRead1.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">A Layman's Introduction to Formal Grammar</a></h1>
|
|
830
|
+
<p>For an easy-to-understand explanation of formal grammar in one concise essay, start with this.</p>
|
|
831
|
+
<p class="quick-read"><a href="http://drdobbs.com/bestofweb/QuickRead1.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">Quick Read</a></p>
|
|
832
|
+
|
|
833
|
+
<h1><a href="http://drdobbs.com/bestofweb/QuickRead6.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">A Deep Look at Font Rasterization</a></h1>
|
|
834
|
+
<p>How fonts are rasterized and optimized for display (with an emphasis on open source tools).</p>
|
|
835
|
+
<p class="quick-read"><a href="http://drdobbs.com/bestofweb/QuickRead6.jhtml?KeepThis=true&TB_iframe=true&height=300&width=735" class="thickbox">Quick Read</a></p> </div>
|
|
836
|
+
<!-- END Best of Web -->
|
|
837
|
+
</div>
|
|
838
|
+
</div>
|
|
839
|
+
</div>
|
|
840
|
+
|
|
841
|
+
<!-- Finally, to actually run the highlighter, you need to include this JS on your page -->
|
|
842
|
+
<script type="text/javascript">
|
|
843
|
+
SyntaxHighlighter.all();
|
|
844
|
+
</script>
|
|
845
|
+
</div>
|
|
846
|
+
<div id="right-col">
|
|
847
|
+
<script language="javascript">
|
|
848
|
+
<!--
|
|
849
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183416/0/0/ADTECH;alias=Dr.Dobbs_Database_IMU1_300x250;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
850
|
+
//-->
|
|
851
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(5)"></script>
|
|
852
|
+
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,0,0" id="AT_FLASHO1183486" name="AT_FLASHO1183486" width="300" height="250"><param name="movie" value="http://aka-cdn-ns.adtechus.com/apps/36/Ad2331172St3Sz170Sq20825236V0Id4/ObjectSQL-H7_300x250_CT1.swf?targetTAG=_blank&clickTarget=_blank&pathTAG=http%3A//aka-cdn-ns.adtechus.com/apps/36/Ad2331172St3Sz170Sq20825236V0Id4/&closeTAG=javascript%3AcloseAdLayer1183486%28%29&openTAG=javascript%3AopenAdLayer1183486%28%29&expandTAG=javascript%3Aexpand1183486%28%29&collapseTAG=javascript%3Acollapse1183486%28%29&clicktarget=_blank&clickTarget=_blank&clickTARGET=_blank&CURRENTDOMAIN=drdobbs.com"><param name="quality" value="autohigh"><param name="base" value="http://aka-cdn-ns.adtechus.com/apps/36/Ad2331172St3Sz170Sq20825236V0Id4/"><param name="flashvars" value="clickTag=http%3A//adserver.adtechus.com/adlink/5242/1183486/0/170/AdId%3D2331172%3BBnId%3D4%3Bitime%3D820768143%3Bkey%3D231400148+/database/231400148%3Bnodecode%3Dyes%3Blink%3Dhttp%3A//www.InterSystems.com/ddjdbobjectsql7_336x280/index.html"><param name="allowscriptaccess" value="always"><param name="swLiveConnect" value="true"><param name="wmode" value="opaque"><embed src="http://aka-cdn-ns.adtechus.com/apps/36/Ad2331172St3Sz170Sq20825236V0Id4/ObjectSQL-H7_300x250_CT1.swf?targetTAG=_blank&clickTarget=_blank&pathTAG=http%3A//aka-cdn-ns.adtechus.com/apps/36/Ad2331172St3Sz170Sq20825236V0Id4/&closeTAG=javascript%3AcloseAdLayer1183486%28%29&openTAG=javascript%3AopenAdLayer1183486%28%29&expandTAG=javascript%3Aexpand1183486%28%29&collapseTAG=javascript%3Acollapse1183486%28%29&clicktarget=_blank&clickTarget=_blank&clickTARGET=_blank&CURRENTDOMAIN=drdobbs.com" id="AT_FLASHO1183486" name="AT_FLASHO1183486" base="http://aka-cdn-ns.adtechus.com/apps/36/Ad2331172St3Sz170Sq20825236V0Id4/" quality="autohigh" flashvars="clickTag=http%3A//adserver.adtechus.com/adlink/5242/1183486/0/170/AdId%3D2331172%3BBnId%3D4%3Bitime%3D820768143%3Bkey%3D231400148+/database/231400148%3Bnodecode%3Dyes%3Blink%3Dhttp%3A//www.InterSystems.com/ddjdbobjectsql7_336x280/index.html" allowscriptaccess="always" swliveconnect="true" width="300" height="250" wmode="opaque" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></object><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183416/0/0/ADTECH;alias=Dr.Dobbs_Database_IMU1_300x250;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183416/0/0/ADTECH;alias=Dr.Dobbs_Database_IMU1_300x250;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
853
|
+
|
|
854
|
+
<br><br>
|
|
855
|
+
|
|
856
|
+
<div class="subsection sponsored-content">
|
|
857
|
+
</div>
|
|
858
|
+
<div class="recent-articles">
|
|
859
|
+
|
|
860
|
+
<h2>Database Recent Articles</h2>
|
|
861
|
+
<ul>
|
|
862
|
+
<li><a href="http://drdobbs.com/database/232301271">The Best of 2011</a></li>
|
|
863
|
+
<li><a href="http://drdobbs.com/database/232300656">Version Numbers: Sequenced Meaninglessness</a></li>
|
|
864
|
+
<li><a href="http://drdobbs.com/database/232300106">Megatrend: Cheap RAM Reshaping All of Computing</a></li>
|
|
865
|
+
<li><a href="http://drdobbs.com/database/231902601">Project of the Month: OpenStack, A Universal Cloud Front End</a></li>
|
|
866
|
+
<li><a href="http://drdobbs.com/database/231902587">Full-Text Search with InnoDB</a></li>
|
|
867
|
+
<li><a href="http://drdobbs.com/database/"></a></li>
|
|
868
|
+
</ul> </div>
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
<script language="javascript">
|
|
872
|
+
<!--
|
|
873
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183600/0/6/ADTECH;alias=Dr.Dobbs_Database_Tile_125x125;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
874
|
+
//-->
|
|
875
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(6)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1183455/0/6/AdId=2359752;BnId=7;itime=820768348;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad0St1Sz6Sq0V0Id20628317.gif" border="0" alt="click here" width="125" height="125"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183600/0/6/ADTECH;alias=Dr.Dobbs_Database_Tile_125x125;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183600/0/6/ADTECH;alias=Dr.Dobbs_Database_Tile_125x125;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
876
|
+
|
|
877
|
+
<div class="subsection mostpopular">
|
|
878
|
+
<h2>Most Popular</h2>
|
|
879
|
+
|
|
880
|
+
<div class="tab_controls">
|
|
881
|
+
<a id="articles" class="current" href="http://drdobbs.com/database/231400148#">Stories</a>
|
|
882
|
+
<a id="blogs" href="http://drdobbs.com/database/231400148#">Blogs</a>
|
|
883
|
+
</div>
|
|
884
|
+
<div id="mostpopular" class="box_wrap">
|
|
885
|
+
<ul>
|
|
886
|
+
<li>
|
|
887
|
+
<a href="http://drdobbs.com/database/232301271?cid=dobbs-callout-mostpop">The Best of 2011</a>
|
|
888
|
+
</li>
|
|
889
|
+
<li>
|
|
890
|
+
<a href="http://drdobbs.com/database/231902587?cid=dobbs-callout-mostpop">Full-Text Search with InnoDB</a>
|
|
891
|
+
</li>
|
|
892
|
+
<li>
|
|
893
|
+
<a href="http://drdobbs.com/database/222700353?cid=dobbs-callout-mostpop">JDBC Fast Connection Failover with Oracle RAC</a>
|
|
894
|
+
</li>
|
|
895
|
+
<li>
|
|
896
|
+
<a href="http://drdobbs.com/database/231902601?cid=dobbs-callout-mostpop">Project of the Month: OpenStack, A Universal Cloud Front End</a>
|
|
897
|
+
</li>
|
|
898
|
+
<li>
|
|
899
|
+
<a href="http://drdobbs.com/database/223100116?cid=dobbs-callout-mostpop">Apache CouchDB and Java</a>
|
|
900
|
+
</li>
|
|
901
|
+
<li>
|
|
902
|
+
<a href="http://drdobbs.com/database/?cid=dobbs-callout-mostpop"></a>
|
|
903
|
+
</li>
|
|
904
|
+
</ul></div>
|
|
905
|
+
|
|
906
|
+
<div id="mostpopular" class="box_wrap" style="display: none; ">
|
|
907
|
+
<ul>
|
|
908
|
+
<li>
|
|
909
|
+
<a href="http://drdobbs.com/blogs/database/232400331?cid=dobbs-callout-mostpop-blog">Supercomputing, The Cloud, Big Data, and NoSQL</a>
|
|
910
|
+
</li>
|
|
911
|
+
<li>
|
|
912
|
+
<a href="http://drdobbs.com/blogs/database/231000846?cid=dobbs-callout-mostpop-blog">Sharding, Replication, Caches, and In-Memory Databases</a>
|
|
913
|
+
</li>
|
|
914
|
+
<li>
|
|
915
|
+
<a href="http://drdobbs.com/blogs/database/232301211?cid=dobbs-callout-mostpop-blog">What's the Best Paradigm for Data Compression Routines?</a>
|
|
916
|
+
</li>
|
|
917
|
+
<li>
|
|
918
|
+
<a href="http://drdobbs.com/blogs/database/229619597?cid=dobbs-callout-mostpop-blog">MongoDB and Java</a>
|
|
919
|
+
</li>
|
|
920
|
+
<li>
|
|
921
|
+
<a href="http://drdobbs.com/blogs/database/229402861?cid=dobbs-callout-mostpop-blog">World's Largest Database: The Web of Data</a>
|
|
922
|
+
</li>
|
|
923
|
+
<li>
|
|
924
|
+
<a href="http://drdobbs.com/blogs/database/?cid=dobbs-callout-mostpop-blog"></a>
|
|
925
|
+
</li>
|
|
926
|
+
</ul></div>
|
|
927
|
+
</div>
|
|
928
|
+
|
|
929
|
+
<div class="box video">
|
|
930
|
+
<h3 class="video"><span>Video</span></h3> <div class="box_wrap">
|
|
931
|
+
<!-- Start of Brightcove Player -->
|
|
932
|
+
<script type="text/javascript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/experience_util.js"></script>
|
|
933
|
+
<script type="text/javascript">
|
|
934
|
+
// By use of this code snippet, I agree to the Brightcove Publisher T and C
|
|
935
|
+
// found at http://corp.brightcove.com/legal/terms_publisher.cfm.
|
|
936
|
+
|
|
937
|
+
var config = new Array();
|
|
938
|
+
|
|
939
|
+
/*
|
|
940
|
+
* feel free to edit these configurations
|
|
941
|
+
* to modify the player experience
|
|
942
|
+
*/
|
|
943
|
+
config["videoId"] = null; //the default video loaded into the player
|
|
944
|
+
config["videoRef"] = null; //the default video loaded into the player by ref id specified in console
|
|
945
|
+
config["lineupId"] = null; //the default lineup loaded into the player
|
|
946
|
+
config["playerTag"] = null; //player tag used for identifying this page in brightcove reporting
|
|
947
|
+
config["autoStart"] = false; //tells the player to start playing video on load
|
|
948
|
+
config["preloadBackColor"] = "#FFFFFF"; //background color while loading the player
|
|
949
|
+
config["wmode"] = "opaque";
|
|
950
|
+
|
|
951
|
+
/* do not edit these config items */
|
|
952
|
+
config["playerId"] = 64699398001;
|
|
953
|
+
config["width"] = 300;
|
|
954
|
+
config["height"] = 361;
|
|
955
|
+
|
|
956
|
+
createExperience(config, 8);
|
|
957
|
+
</script><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" id="flashObj0" width="300" height="361"> <param name="allowScriptAccess" value="always"> <param name="allowFullScreen" value="true"> <param name="movie" value="http://admin.brightcove.com/viewer/federated_f8.swf?flashId=flashObj0&servicesURL=http%3A%2F%2Fconsole.brightcove.com%2Fservices&viewerSecureGatewayURL=https%3A%2F%2Fconsole.brightcove.com%2Fservices%2Famfgateway&cdnURL=http%3A%2F%2Fadmin.brightcove.com&autoStart=false&preloadBackColor=%23FFFFFF&wmode=opaque&playerId=64699398001&width=300&height=361&externalAds=false&sendReports=false&buildNumber=26&ranNum=845922"> <param name="wmode" value="opaque"> <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <param name="base" value="http://admin.brightcove.com/viewer/"> <param name="SeamlessTabbing" value="false"> <embed src="http://admin.brightcove.com/viewer/federated_f8.swf?flashId=flashObj0&servicesURL=http%3A%2F%2Fconsole.brightcove.com%2Fservices&viewerSecureGatewayURL=https%3A%2F%2Fconsole.brightcove.com%2Fservices%2Famfgateway&cdnURL=http%3A%2F%2Fadmin.brightcove.com&autoStart=false&preloadBackColor=%23FFFFFF&wmode=opaque&playerId=64699398001&width=300&height=361&externalAds=false&sendReports=false&buildNumber=26&ranNum=845922" base="http://admin.brightcove.com/viewer/" quality="high" bgcolor="#FFFFFF" allowscriptaccess="always" name="flashObj0" width="300" height="361" wmode="opaque" seamlesstabbing="false" type="application/x-shockwave-flash" swliveconnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></object>
|
|
958
|
+
<!-- End of Brightcove Player -->
|
|
959
|
+
</div>
|
|
960
|
+
|
|
961
|
+
<div class="slide_controls">
|
|
962
|
+
<a href="http://drdobbs.com/tv"><strong>View All Videos</strong></a>
|
|
963
|
+
</div>
|
|
964
|
+
|
|
965
|
+
</div>
|
|
966
|
+
|
|
967
|
+
<div class="subsection sponsored-content">
|
|
968
|
+
<h2>This month's Dr. Dobb's Journal</h2>
|
|
969
|
+
<div class="sponsored">
|
|
970
|
+
<div class="whitepaper">
|
|
971
|
+
<div align="center">
|
|
972
|
+
<a href="http://drdobbs.com/digital/121911?k=ddjtm&cid=onedit_ds_ddjtm">
|
|
973
|
+
<img height="131" width="216" border="0" alt="The Dr. Dobb's Digital Digest cover - January Issue" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/121911_DobbsDigest_Cover.jpg">
|
|
974
|
+
</a>
|
|
975
|
+
</div>
|
|
976
|
+
<p>
|
|
977
|
+
<a href="http://drdobbs.com/digital/121911?k=ddjtm&cid=onedit_ds_ddjtm"><b>This month</b></a>, In this final issue of 2011, Andrew Koenig argues that destructors can be just as harmful as goto statements in C++. We also explore cross-platform development with Eclipse C/C++ Development Tooling, review fixed-point arithmetic types for C++, <b><a href="http://drdobbs.com/digital/121911?k=ddjtm&cid=onedit_ds_ddjtm">and much more!</a></b><br><br>
|
|
978
|
+
<a href="http://drdobbs.com/digital/121911?k=ddjtm&cid=onedit_ds_ddjtm">Download the latest issue today. >></a>
|
|
979
|
+
</p>
|
|
980
|
+
</div>
|
|
981
|
+
</div>
|
|
982
|
+
</div>
|
|
983
|
+
|
|
984
|
+
<script language="javascript">
|
|
985
|
+
<!--
|
|
986
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183546/0/0/ADTECH;alias=Dr.Dobbs_Database_IMU2_300x250;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
987
|
+
//-->
|
|
988
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(7)"></script>
|
|
989
|
+
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,0,0" id="AT_FLASHO1183518" name="AT_FLASHO1183518" width="300" height="250"><param name="movie" value="http://aka-cdn-ns.adtechus.com/apps/32/Ad2331680St3Sz170Sq20825239V0Id1/ObjectSQL-H7_300x250_CT1.swf?targetTAG=_blank&clickTarget=_blank&pathTAG=http%3A//aka-cdn-ns.adtechus.com/apps/32/Ad2331680St3Sz170Sq20825239V0Id1/&closeTAG=javascript%3AcloseAdLayer1183518%28%29&openTAG=javascript%3AopenAdLayer1183518%28%29&expandTAG=javascript%3Aexpand1183518%28%29&collapseTAG=javascript%3Acollapse1183518%28%29&clicktarget=_blank&clickTarget=_blank&clickTARGET=_blank&CURRENTDOMAIN=drdobbs.com"><param name="quality" value="autohigh"><param name="base" value="http://aka-cdn-ns.adtechus.com/apps/32/Ad2331680St3Sz170Sq20825239V0Id1/"><param name="flashvars" value="clickTag=http%3A//adserver.adtechus.com/adlink/5242/1183518/0/170/AdId%3D2331680%3BBnId%3D1%3Bitime%3D820768579%3Bkey%3D231400148+/database/231400148%3Bnodecode%3Dyes%3Blink%3Dhttp%3A//www.InterSystems.com/ddjdbobjectsql7_336x280/index.html"><param name="allowscriptaccess" value="always"><param name="swLiveConnect" value="true"><param name="wmode" value="opaque"><embed src="http://aka-cdn-ns.adtechus.com/apps/32/Ad2331680St3Sz170Sq20825239V0Id1/ObjectSQL-H7_300x250_CT1.swf?targetTAG=_blank&clickTarget=_blank&pathTAG=http%3A//aka-cdn-ns.adtechus.com/apps/32/Ad2331680St3Sz170Sq20825239V0Id1/&closeTAG=javascript%3AcloseAdLayer1183518%28%29&openTAG=javascript%3AopenAdLayer1183518%28%29&expandTAG=javascript%3Aexpand1183518%28%29&collapseTAG=javascript%3Acollapse1183518%28%29&clicktarget=_blank&clickTarget=_blank&clickTARGET=_blank&CURRENTDOMAIN=drdobbs.com" id="AT_FLASHO1183518" name="AT_FLASHO1183518" base="http://aka-cdn-ns.adtechus.com/apps/32/Ad2331680St3Sz170Sq20825239V0Id1/" quality="autohigh" flashvars="clickTag=http%3A//adserver.adtechus.com/adlink/5242/1183518/0/170/AdId%3D2331680%3BBnId%3D1%3Bitime%3D820768579%3Bkey%3D231400148+/database/231400148%3Bnodecode%3Dyes%3Blink%3Dhttp%3A//www.InterSystems.com/ddjdbobjectsql7_336x280/index.html" allowscriptaccess="always" swliveconnect="true" width="300" height="250" wmode="opaque" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></object><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183546/0/0/ADTECH;alias=Dr.Dobbs_Database_IMU2_300x250;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183546/0/0/ADTECH;alias=Dr.Dobbs_Database_IMU2_300x250;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
990
|
+
<div class="recent-articles">
|
|
991
|
+
<h2>Featured Reports</h2>
|
|
992
|
+
<!--cahe Key : 5868ae81725d5b9ac1c32d63cc016cb0--> <ul class="archive">
|
|
993
|
+
|
|
994
|
+
<li>
|
|
995
|
+
<a href="http://informationweek.com/whitepaper/Hardware/Data-Centers/how-to-build-a-mission-critical-data-center-wp1316015508?articleID=191703452&cid=ddj_fture_Analytics_default&itc=ddj_fture_Analytics_default">
|
|
996
|
+
How To Build a Mission-Critical Data Center </a>
|
|
997
|
+
</li>
|
|
998
|
+
|
|
999
|
+
</ul>
|
|
1000
|
+
|
|
1001
|
+
<h2>Featured Whitepapers</h2>
|
|
1002
|
+
<!--cahe Key : 10e446f9cd15e8e0e35e80370a2d9994--> <ul class="archive">
|
|
1003
|
+
|
|
1004
|
+
<li>
|
|
1005
|
+
<a href="http://www.informationweek.com/whitepaper/Windows-Microsoft/Applications/top-10-reasons-to-migrate-to-windows-server-2008-wp1317415173?articleID=191703509&cid=ddj_fture_wp_default&itc=ddj_fture_wp_default">
|
|
1006
|
+
Top 10 Reasons to Migrate to Windows Server 2008 </a>
|
|
1007
|
+
</li>
|
|
1008
|
+
|
|
1009
|
+
<li>
|
|
1010
|
+
<a href="http://www.informationweek.com/whitepaper/Security/Application-Security/how-security-features-in-windows-server-2008-can-s-wp1317418007?articleID=191703539&cid=ddj_fture_wp_default&itc=ddj_fture_wp_default">
|
|
1011
|
+
How Security Features in Windows Server 2008 Can Save you Money </a>
|
|
1012
|
+
</li>
|
|
1013
|
+
|
|
1014
|
+
<li>
|
|
1015
|
+
<a href="http://www.informationweek.com/whitepaper/Security/Application-Security/server-virtualization-expert-overview-of-costs-tr-wp1317418123?articleID=191703551&cid=ddj_fture_wp_default&itc=ddj_fture_wp_default">
|
|
1016
|
+
Server Virtualization: Expert Overview of Costs Trends and More </a>
|
|
1017
|
+
</li>
|
|
1018
|
+
|
|
1019
|
+
<li>
|
|
1020
|
+
<a href="http://www.informationweek.com/whitepaper/Software/Business-Systems-Management/the-state-of-analytics-in-government-healthcare-or-wp1324307729?articleID=191703920&cid=ddj_fture_wp_default&itc=ddj_fture_wp_default">
|
|
1021
|
+
State of Analytics in Government Healthcare </a>
|
|
1022
|
+
</li>
|
|
1023
|
+
|
|
1024
|
+
<li>
|
|
1025
|
+
<a href="http://banktech.com/whitepaper/Payments-Cards/Workflow-Automation/top-10-reasons-to-automate-your-banking-ap-process-wp1324498197?articleID=191703921&cid=ddj_fture_wp_default&itc=ddj_fture_wp_default">
|
|
1026
|
+
Top 10 Reasons to Automate Your Banking AP Processes </a>
|
|
1027
|
+
</li>
|
|
1028
|
+
|
|
1029
|
+
</ul>
|
|
1030
|
+
|
|
1031
|
+
</div>
|
|
1032
|
+
<div class="subsection mostrecent">
|
|
1033
|
+
<h2>Most Recent Premium Content</h2>
|
|
1034
|
+
<div class="tab_controls">
|
|
1035
|
+
<a class="current" href="http://drdobbs.com/database/231400148#">Digital Issues</a>
|
|
1036
|
+
</div>
|
|
1037
|
+
<div class="box_wrap">
|
|
1038
|
+
<ul>
|
|
1039
|
+
<li><a href="http://drdobbs.com/digital/020711/?cid=ddj_premium_Feb2011Special"><i>Dr. Dobb's Journal</i> February Digital Issue</a></li>
|
|
1040
|
+
<li><a href="http://drdobbs.com/digital/021511/?cid=ddj_premium_March2011"><i>Dr. Dobb's Journal</i> March Digital Issue</a></li>
|
|
1041
|
+
<li><a href="http://drdobbs.com/digital/031511/?cid=ddj_premium_April2011"><i>Dr. Dobb's Journal</i> April Digital Issue</a></li>
|
|
1042
|
+
<li><a href="http://drdobbs.com/digital/040411/?cid=ddj_premium_May2011"><i>Dr. Dobb's Journal</i> May Digital Issue</a></li>
|
|
1043
|
+
<li><a href="http://drdobbs.com/digital/051911/?cid=ddj_premium_June2011"><i>Dr. Dobb's Journal</i> June Digital Issue</a></li>
|
|
1044
|
+
<li><a href="http://drdobbs.com/digital/061911/?cid=ddj_premium_July2011"><i>Dr. Dobb's Journal</i> July Digital Issue</a></li>
|
|
1045
|
+
<li><a href="http://drdobbs.com/digital/071911/?cid=ddj_premium_August2011"><i>Dr. Dobb's Journal</i> August Digital Issue</a></li>
|
|
1046
|
+
<li><a href="http://drdobbs.com/digital/081911/?cid=ddj_premium_September2011"><i>Dr. Dobb's Journal</i> September Digital Issue</a></li>
|
|
1047
|
+
<li><a href="http://drdobbs.com/digital/091911/?cid=ddj_premium_October2011"><i>Dr. Dobb's Journal</i> October Digital Issue</a></li>
|
|
1048
|
+
</ul>
|
|
1049
|
+
</div> </div>
|
|
1050
|
+
|
|
1051
|
+
</div>
|
|
1052
|
+
|
|
1053
|
+
<script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nodetag.js"></script>
|
|
1054
|
+
<div id="bottom" align="center" style="clear: both;">
|
|
1055
|
+
<script language="javascript">
|
|
1056
|
+
<!--
|
|
1057
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183535/0/225/ADTECH;alias=Dr.Dobbs_Database_Bottom_728x90;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
1058
|
+
//-->
|
|
1059
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(8)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1183522/0/225/AdId=2331174;BnId=4;itime=820768003;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad2331174St1Sz225Sq20825250V0Id4.gif" border="0" alt="click here" width="728" height="90"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183535/0/225/ADTECH;alias=Dr.Dobbs_Database_Bottom_728x90;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183535/0/225/ADTECH;alias=Dr.Dobbs_Database_Bottom_728x90;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
1060
|
+
|
|
1061
|
+
<table cellspacing="0" cellpadding="0" border="0" width="990" class="elfixo"><tbody>
|
|
1062
|
+
<tr>
|
|
1063
|
+
<td valign="top">
|
|
1064
|
+
|
|
1065
|
+
|
|
1066
|
+
<link rel="stylesheet" type="text/css" href="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/superfooter_936.css">
|
|
1067
|
+
<div align="center">
|
|
1068
|
+
<div id="tw_superfooter_936">
|
|
1069
|
+
|
|
1070
|
+
<div id="tw_superfooter_top">
|
|
1071
|
+
<div id="tw_superfooter_bottom_bg">
|
|
1072
|
+
<div id="tw_superfooter_header">
|
|
1073
|
+
<div id="tw_superfooter_left_header_logo">
|
|
1074
|
+
<a href="http://www.techweb.com/aboutus?itc=footer" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ubmtechweb_logo_sm.gif"></a>
|
|
1075
|
+
</div>
|
|
1076
|
+
<div id="tw_superfooter_tagline"><h3>Enabling People and Organizations to Harness the Transformative Power of Technology</h3></div>
|
|
1077
|
+
</div>
|
|
1078
|
+
<div id="tw_superfooter_mid">
|
|
1079
|
+
<div id="tw_superfooter_links">
|
|
1080
|
+
|
|
1081
|
+
<ul class="tw_superfooter_links_column">
|
|
1082
|
+
<h4>CIOs & IT Professionals</h4>
|
|
1083
|
+
<li><a href="http://www.blackhat.com/" target="_blank">Black Hat</a></li>
|
|
1084
|
+
<li><a href="http://www.byte.com/?itc=footer" target="_blank">BYTE</a></li>
|
|
1085
|
+
<li><a href="http://www.cloudconnectevent.com/?itc=footer" target="_blank">Cloud Connect</a></li>
|
|
1086
|
+
<li><a href="http://www.darkreading.com/?itc=footer" target="_blank">Dark Reading</a></li>
|
|
1087
|
+
<li><a href="http://www.enterprise2conf.com/?itc=footer" target="_blank">Enterprise 2.0</a></li>
|
|
1088
|
+
<li><a href="http://www.voicecon.com/?itc=footer" target="_blank">Enterprise Connect</a></li>
|
|
1089
|
+
<li><a href="http://www.enterpriseefficiency.com/?itc=footer" target="_blank">Enterprise Efficiency</a></li>
|
|
1090
|
+
<li><a href="http://www.thinkhdi.com/?itc=footer" target="_blank">HDI</a></li>
|
|
1091
|
+
<li><a href="http://www.informationweek.com/?itc=footer" target="_blank">InformationWeek</a></li>
|
|
1092
|
+
<li><a href="http://www.informationweek.com/iw500?itc=footer" target="_blank">InformationWeek 500</a></li>
|
|
1093
|
+
<li><a href="http://www.informationweekconference.com/?itc=footer" target="_blank">InformationWeek 500 Conference</a></li>
|
|
1094
|
+
<li><a href="http://www.informationweek.com/events/?itc=footer" target="_blank">InformationWeek Events</a></li>
|
|
1095
|
+
<li><a href="http://www.informationweek.com/global-cio/?itc=footer" target="_blank">InformationWeek Global CIO</a></li>
|
|
1096
|
+
<li><a href="http://www.informationweek.com/healthcare/?itc=footer" target="_blank">InformationWeek Healthcare</a></li>
|
|
1097
|
+
<li><a href="http://www.informationweek.in/?itc=footer" target="_blank">InformationWeek India</a></li>
|
|
1098
|
+
<li><a href="http://reports.informationweek.com/?itc=footer" target="_blank">InformationWeek Reports</a></li>
|
|
1099
|
+
<li><a href="http://smb.informationweek.com/?itc=footer" target="_blank">InformationWeek SMB</a></li>
|
|
1100
|
+
<li><a href="http://www.interop.com/?itc=footer" target="_blank">Interop</a></li>
|
|
1101
|
+
<li><a href="http://www.mobileconnectevent.com/?itc=footer" target="_blank">Mobile Connect</a></li>
|
|
1102
|
+
<li><a href="http://www.networkcomputing.com/?itc=footer" target="_blank">Network Computing</a></li>
|
|
1103
|
+
<li><a href="http://www.nojitter.com/?itc=footer" target="_blank">No Jitter</a></li>
|
|
1104
|
+
<li><a href="http://www.techweb.com/?itc=footer" target="_blank">TechWeb.com</a></li>
|
|
1105
|
+
<li><a href="http://www.thebrainyard.com/?itc=footer" target="_blank">The BrainYard</a></li>
|
|
1106
|
+
</ul>
|
|
1107
|
+
<ul class="tw_superfooter_links_column">
|
|
1108
|
+
<h4>Software Developers</h4>
|
|
1109
|
+
<li><a href="http://drdobbs.com/?itc=footer" target="_blank">Dr. Dobb's</a></li>
|
|
1110
|
+
<li><a href="http://drdobbs.com/windows/?itc=footer" target="_blank">Dr. Dobb's M-Dev</a></li>
|
|
1111
|
+
<li><a href="http://www.drdobbs.com/digital?itc=footer" target="_blank">Dr. Dobb's Journal</a></li>
|
|
1112
|
+
<li><a href="http://www.drdobbs.com/newsletters/?itc=footer" target="_blank">Dr. Dobb's Update</a></li>
|
|
1113
|
+
<li><a href="http://www.techweb.com/?itc=footer" target="_blank">TechWeb.com</a></li>
|
|
1114
|
+
<h4>Web & Digital Professionals</h4>
|
|
1115
|
+
<li><a href="http://www.internetevolution.com/?itc=footer" target="_blank">Internet Evolution</a></li>
|
|
1116
|
+
<li><a href="http://www.onlinemarketingsummit.com/?itc=footer" target="_blank">Online Marketing Summit</a></li>
|
|
1117
|
+
<li><a href="http://www.techweb.com/?itc=footer" target="_blank">TechWeb.com</a></li>
|
|
1118
|
+
<h4>Government Officials</h4>
|
|
1119
|
+
<li><a href="http://www.gtec.ca/?itc=footer" target="_blank">GTEC Ottawa</a></li>
|
|
1120
|
+
<li><a href="http://www.informationweek.com/government/?itc=footer" target="_blank">InformationWeek Government</a></li>
|
|
1121
|
+
<li><a href="http://www.techweb.com/?itc=footer" target="_blank">TechWeb.com</a></li>
|
|
1122
|
+
</ul>
|
|
1123
|
+
<ul class="tw_superfooter_links_column">
|
|
1124
|
+
<h4>Vertical Markets</h4>
|
|
1125
|
+
<li><a href="http://www.advancedtrading.com/?itc=footer" target="_blank">Advanced Trading</a></li>
|
|
1126
|
+
<li><a href="http://www.banktech.com/?itc=footer" target="_blank">Bank Systems & Technology</a></li>
|
|
1127
|
+
<li><a href="http://www.createyournextcustomer.com/?itc=footer" target="_blank">CreateYourNextCustomer</a></li>
|
|
1128
|
+
<li><a href="http://www.informationweek.com/government/?itc=footer" target="_blank">InformationWeek Government</a></li>
|
|
1129
|
+
<li><a href="http://www.informationweek.com/healthcare/?itc=footer" target="_blank">InformationWeek Healthcare</a></li>
|
|
1130
|
+
<li><a href="http://www.insurancetech.com/?itc=footer" target="_blank">Insurance & Technology</a></li>
|
|
1131
|
+
<li><a href="http://www.lightreading.com/?itc=footer" target="_blank">Light Reading / Telecom</a></li>
|
|
1132
|
+
<li><a href="http://www.thecmosite.com/?itc=footer" target="_blank">The CMO Site</a></li>
|
|
1133
|
+
<li><a href="http://www.wallstreetandtech.com/?itc=footer" target="_blank">Wall Street & Technology</a></li>
|
|
1134
|
+
<h4>Game Industry Professionals</h4>
|
|
1135
|
+
<li><a href="http://gamasutra.com/?itc=footer" target="_blank">Gamasutra.com</a></li>
|
|
1136
|
+
<li><a href="http://www.gdconf.com/?itc=footer" target="_blank">Game Developers Conference (GDC)</a></li>
|
|
1137
|
+
<li><a href="http://www.igf.com/?itc=footer" target="_blank">Independent Games Festival</a></li>
|
|
1138
|
+
<li><a href="http://www.gdmag.com/?itc=footer" target="_blank">Game Developer Magazine</a></li>
|
|
1139
|
+
<li><a href="http://www.gdceurope.com/?itc=footer" target="_blank">GDC Europe</a></li>
|
|
1140
|
+
<li><a href="http://www.china.gdconf.com/?itc=footer" target="_blank">GDC China</a></li>
|
|
1141
|
+
<li><a href="http://www.gamecareerguide.com/?itc=footer" target="_blank">Game Career Guide</a></li>
|
|
1142
|
+
<li><a href="http://www.game-advertising-online.com/?itc=footer" target="_blank">Game Advertising Online</a></li>
|
|
1143
|
+
</ul>
|
|
1144
|
+
<ul class="tw_superfooter_links_column">
|
|
1145
|
+
<h4>Global Communications <br>Service Providers</h4>
|
|
1146
|
+
<li><a href="http://www.heavyreading.com/?itc=footer" target="_blank">Heavy Reading</a></li>
|
|
1147
|
+
<li><a href="http://www.heavyreading.com/research/?itc=footer" target="_blank">Heavy Reading Insiders</a></li>
|
|
1148
|
+
<li><a href="http://www.pyr.com/" target="_blank">Pyramid Research</a></li>
|
|
1149
|
+
<li><a href="http://www.lightreading.com/?itc=footer" target="_blank">Light Reading</a></li>
|
|
1150
|
+
<li><a href="http://www.lightreading.in/?itc=footer" target="_blank">Light Reading India</a></li>
|
|
1151
|
+
<li><a href="http://www.lightreading.com/lr-mobile/?itc=footer" target="_blank">Light Reading Mobile</a></li>
|
|
1152
|
+
<li><a href="http://www.lightreading.com/lr-cable/?itc=footer" target="_blank">Light Reading Cable</a></li>
|
|
1153
|
+
<li><a href="http://www.lightreading.com/europe/?itc=footer" target="_blank">Light Reading Europe</a></li>
|
|
1154
|
+
<li><a href="http://www.lightreading.com/asia/?itc=footer" target="_blank">Light Reading Asia</a></li>
|
|
1155
|
+
<li><a href="http://www.ethernetexpo.com/" target="_blank">Ethernet Expo</a></li>
|
|
1156
|
+
<li><a href="http://www.telcotvonline.com/" target="_blank">TelcoTV</a></li>
|
|
1157
|
+
<li><a href="http://www.towersummit.com/" target="_blank">Tower Summit</a></li>
|
|
1158
|
+
<li><a href="http://www.lightreading.com/live/?itc=footer" target="_blank">Light Reading Live & Virtual Events</a></li>
|
|
1159
|
+
<li><a href="http://www.lightreading.com/calendar_webinars.asp?site=lightreading?itc=footer" target="_blank">Webinars</a></li>
|
|
1160
|
+
</ul>
|
|
1161
|
+
|
|
1162
|
+
<ul class="tw_superfooter_links_column">
|
|
1163
|
+
<h4>Most Popular</h4>
|
|
1164
|
+
<li><a href="http://www.lightreading.com/blog.asp?blog_sectionid=419&doc_id=180545&site=cdn&?itc=footer" target="_blank">Cable Catchup</a></li>
|
|
1165
|
+
<li><a href="http://blog.cloudconnectevent.com/?itc=footer" target="_blank">Cloud Connect Blog</a></li>
|
|
1166
|
+
<li><a href="http://www.informationweek.com/blogs/digital_life?itc=footer" target="_blank">Digital Life</a></li>
|
|
1167
|
+
<li><a href="http://www.darkreading.com/blog/archives/evil_bytes/index.html?itc=footer" target="_blank">Evil Bytes</a></li>
|
|
1168
|
+
<li><a href="http://reports.informationweek.com/?itc=footer" target="_blank">InformationWeek Reports</a></li>
|
|
1169
|
+
<li><a href="http://blog.interop.com/?itc=footer" target="_blank">Interop Blog</a></li>
|
|
1170
|
+
<li><a href="http://www.lightreading.com/archives.asp?section_id=222" target="_blank">Monkey Bidness</a></li>
|
|
1171
|
+
<li><a href="http://www.informationweek.com/blogs/mobility?itc=footer" target="_blank">Over the Air</a></li>
|
|
1172
|
+
<li><a href="http://www.informationweek.com/personal-tech/?itc=footer" target="_blank">Personal Tech</a></li>
|
|
1173
|
+
<li><a href="http://www.lightreading.com/archives.asp?section_id=217" target="_blank">The Philter</a></li>
|
|
1174
|
+
<li><a href="http://www.lightreading.com/archives.asp?section_id=388" target="_blank">Valley Wonk</a></li>
|
|
1175
|
+
</ul>
|
|
1176
|
+
|
|
1177
|
+
<div style="clear: both;"></div>
|
|
1178
|
+
</div>
|
|
1179
|
+
</div>
|
|
1180
|
+
</div>
|
|
1181
|
+
</div>
|
|
1182
|
+
<div id="tw_superfooter_bottom">
|
|
1183
|
+
<div id="tw_superfooter_tw">
|
|
1184
|
+
<h4>UBM TechWeb Reader Services</h4>
|
|
1185
|
+
<ul>
|
|
1186
|
+
<li><a href="http://www.techweb.com/aboutus/?itc=footer" target="_blank">About UBM TechWeb</a></li>
|
|
1187
|
+
<li><a href="http://createyournextcustomer.com/contact-us/?itc=footer" target="_blank">Advertising Contacts</a></li>
|
|
1188
|
+
<li><a href="http://www.createyournextcustomer.com/?itc=footer" target="_blank">Technology Marketing Solutions</a></li>
|
|
1189
|
+
<li><a href="http://www.ubmtechweb.com/contact/?itc=footer" target="_blank">Contact Us</a></li>
|
|
1190
|
+
<li><a href="mailto:feedback@techweb.com" target="_blank">Feedback</a></li>
|
|
1191
|
+
</ul>
|
|
1192
|
+
<div style="clear:both;"></div>
|
|
1193
|
+
<ul>
|
|
1194
|
+
<li><a href="http://www.wrightsreprints.com/reprints/?magid=techweb" target="_blank">Reprints</a></li>
|
|
1195
|
+
<li><a href="http://www.informationweek.com/whitepaper/?itc=footer" target="_blank">TechWeb Digital Library / White Papers</a></li>
|
|
1196
|
+
<li><a href="http://events.techweb.com/?itc=footer" target="_blank">TechWeb Events Calendar</a></li>
|
|
1197
|
+
<li><a href="http://www.techweb.com/?itc=footer" target="_blank">TechWeb.com</a></li>
|
|
1198
|
+
</ul>
|
|
1199
|
+
|
|
1200
|
+
</div>
|
|
1201
|
+
</div>
|
|
1202
|
+
<div id="tw_superfooter_tos">
|
|
1203
|
+
<ul>
|
|
1204
|
+
<li><a href="http://legal.us.ubm.com/terms-of-service/?itc=footer" target="_blank">Terms of Service</a></li>
|
|
1205
|
+
<li>|</li>
|
|
1206
|
+
<li><a href="http://legal.us.ubm.com/privacy-notice/?itc=footer" target="_blank">Privacy Statement</a></li>
|
|
1207
|
+
<li>|</li>
|
|
1208
|
+
<li><a href="http://legal.us.ubm.com/copyright-notice/?itc=footer" target="_blank">Copyright � 2012 UBM TechWeb, All rights reserved.</a></li>
|
|
1209
|
+
</ul>
|
|
1210
|
+
<br><a href="http://www.zend.com/">Powered by Zend/PHP</a>
|
|
1211
|
+
</div>
|
|
1212
|
+
</div>
|
|
1213
|
+
<style>
|
|
1214
|
+
|
|
1215
|
+
/* BEGIN FOOTER CSS */
|
|
1216
|
+
|
|
1217
|
+
#footer {
|
|
1218
|
+
clear: both;
|
|
1219
|
+
font-family:arial, helvetica, sans-serif;
|
|
1220
|
+
color: #fff;
|
|
1221
|
+
border-top: 4px solid #febc00;
|
|
1222
|
+
/* border-bottom: 2px solid #ccc;
|
|
1223
|
+
orignal footer bottom color. changed w/ refresh 0/19/2010 - JH
|
|
1224
|
+
border-bottom: 4px solid #971c10;
|
|
1225
|
+
*/
|
|
1226
|
+
font-size: .9em;
|
|
1227
|
+
text-align:center;
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
|
|
1232
|
+
#footer a,
|
|
1233
|
+
#footer a:visited {
|
|
1234
|
+
color: #fff;
|
|
1235
|
+
text-decoration: none;
|
|
1236
|
+
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
#footer #footer2 ul {
|
|
1241
|
+
margin: 0;
|
|
1242
|
+
padding: 5px 0;
|
|
1243
|
+
list-style:none;
|
|
1244
|
+
line-height: 1.4em;
|
|
1245
|
+
text-align:center;
|
|
1246
|
+
width:999px;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
#footer #footer2 li {
|
|
1250
|
+
font-weight: normal;
|
|
1251
|
+
padding: 0 0 0 15px;
|
|
1252
|
+
display: inline;
|
|
1253
|
+
text-indent:0;
|
|
1254
|
+
text-decoration: none;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
#footer-a {
|
|
1258
|
+
background-color: #369f2b;
|
|
1259
|
+
text-align:center;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
#footer-b {
|
|
1263
|
+
background-color: #16530f;
|
|
1264
|
+
text-align:center;
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
#footer #footer2 #footer-a li a,
|
|
1268
|
+
#footer #footer2 #footer-c li a {
|
|
1269
|
+
background: url("http://twimgs.com/ddj/v2/images/footer_vertline.gif") no-repeat 1px .15em;
|
|
1270
|
+
padding-left:20px;
|
|
1271
|
+
margin-top:10px;
|
|
1272
|
+
text-indent:0;
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
#footer #footer2 #footer-b li a {
|
|
1276
|
+
background: url("http://twimgs.com/ddj/v2/images/footer_vertline.gif") no-repeat 1px .15em;
|
|
1277
|
+
padding-left:20px;
|
|
1278
|
+
margin-top:10px;
|
|
1279
|
+
text-indent:0;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
#footer #footer2 #footer-a .first,
|
|
1283
|
+
#footer #footer2 #footer-b .first,
|
|
1284
|
+
#footer #footer2 #footer-c .first {
|
|
1285
|
+
background: none;
|
|
1286
|
+
padding-left:0;
|
|
1287
|
+
text-indent:0;
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
#footer #footer2 li{
|
|
1292
|
+
background: none;
|
|
1293
|
+
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
/* END FOOTER CSS */
|
|
1297
|
+
|
|
1298
|
+
</style>
|
|
1299
|
+
|
|
1300
|
+
<div id="footer">
|
|
1301
|
+
|
|
1302
|
+
<div id="footer2">
|
|
1303
|
+
|
|
1304
|
+
<div id="footer-a">
|
|
1305
|
+
<center>
|
|
1306
|
+
<ul>
|
|
1307
|
+
|
|
1308
|
+
<li><a href="http://drdobbs.com/" class="first">Dr. Dobb's Home</a></li><li><a href="http://drdobbs.com/articles">Articles</a></li><li><a href="http://drdobbs.com/news">News</a></li><li><a href="http://drdobbs.com/blogs">Blogs</a></li><li><a href="http://drdobbs.com/sourcecode">Source Code</a></li><li><a href="https://store.drdobbs.com/">Dobb's on DVD</a></li><li><a href="http://drdobbs.com/tv">Dobb's TV</a></li><li><a href="http://drdobbs.com/webinars">Webinars & Events</a></li> </ul>
|
|
1309
|
+
</center>
|
|
1310
|
+
</div>
|
|
1311
|
+
|
|
1312
|
+
<div id="footer-b">
|
|
1313
|
+
<center>
|
|
1314
|
+
<ul>
|
|
1315
|
+
<li><a href="http://drdobbs.com/aboutus" class="first">About Us</a></li>
|
|
1316
|
+
<li><a href="http://drdobbs.com/contactus">Contact Us</a></li>
|
|
1317
|
+
<li><a href="http://drdobbs.com/sitemap">Site Map</a></li>
|
|
1318
|
+
<li><a href="http://drdobbs.com/edcal">Editorial Calendar</a></li>
|
|
1319
|
+
</ul>
|
|
1320
|
+
</center>
|
|
1321
|
+
</div>
|
|
1322
|
+
|
|
1323
|
+
</div>
|
|
1324
|
+
<!-- END: Footer2 -->
|
|
1325
|
+
</div>
|
|
1326
|
+
<!-- END: Footer -->
|
|
1327
|
+
|
|
1328
|
+
</div>
|
|
1329
|
+
|
|
1330
|
+
<br>
|
|
1331
|
+
|
|
1332
|
+
|
|
1333
|
+
<script type="text/javascript" language="JavaScript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqCfg.js"></script>
|
|
1334
|
+
<script type="text/javascript" language="JavaScript" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqImg.js"></script><layer hidden="true"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/svrGP.aspx" border="0" width="1" height="1"></layer>
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
<script language="javascript">
|
|
1341
|
+
<!--
|
|
1342
|
+
document.write('<scr'+'ipt language="javascript1.1" charset="utf-8" src="http://adserver.adtechus.com/addyn/3.0/5242.1/1183536/0/16/ADTECH;alias=Dr.Dobbs_Database_Pagepeel_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461;misc='+new Date().getTime()+'"></scri'+'pt>');
|
|
1343
|
+
//-->
|
|
1344
|
+
</script><script language="javascript1.1" charset="utf-8" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(9)"></script><a href="http://adserver.adtechus.com/?adlink/5242/1195906/0/16/AdId=-3;BnId=0;itime=820769433;key=231400148+/database/231400148;" target="_blank"><img src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif" border="0" alt="AdTech Ad" width="1" height="1"></a><noscript><a href="http://adserver.adtechus.com/adlink/3.0/5242.1/1183536/0/16/ADTECH;alias=Dr.Dobbs_Database_Pagepeel_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" target="_blank"><img src="http://adserver.adtechus.com/adserv/3.0/5242.1/1183536/0/16/ADTECH;alias=Dr.Dobbs_Database_Pagepeel_1x1;key=231400148+/database/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=300;grp=500202461;" border="0" width="1" height="1"></img></a></noscript>
|
|
1345
|
+
<!-- Default Insight Tag -->
|
|
1346
|
+
<script type="text/javascript">
|
|
1347
|
+
var _bizo_data_partner_id = "590";
|
|
1348
|
+
</script>
|
|
1349
|
+
<script type="text/javascript">
|
|
1350
|
+
var _bizo_p = (("https:" == document.location.protocol) ? "https://sjs." : "http://js.");
|
|
1351
|
+
document.write(unescape("%3Cscript src='" + _bizo_p + "bizographics.com/convert_data.js?partner_id=" + _bizo_data_partner_id + "' type='text/javascript'%3E%3C/script%3E"));
|
|
1352
|
+
</script><script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/convert_data.js" type="text/javascript"></script>
|
|
1353
|
+
|
|
1354
|
+
<script type="text/javascript">
|
|
1355
|
+
|
|
1356
|
+
var disqus_shortname = 'drdobbs';
|
|
1357
|
+
var disqus_developer = 1;
|
|
1358
|
+
/* * * DON'T EDIT BELOW THIS LINE * * */
|
|
1359
|
+
(function () {
|
|
1360
|
+
var s = document.createElement('script'); s.async = true;
|
|
1361
|
+
s.type = 'text/javascript';
|
|
1362
|
+
s.src = 'http://' + disqus_shortname + '.disqus.com/count.js';
|
|
1363
|
+
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
|
|
1364
|
+
}());
|
|
1365
|
+
</script>
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
</td></tr></tbody></table></div></div></div><iframe name="easyXDM_DISQUS_net_default7443_provider" id="easyXDM_DISQUS_net_default7443_provider" style="position: absolute; top: -2000px; left: 0px; " frameborder="0" src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/def.html"></iframe><script src="./Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(1)" type="text/javascript"></script></body></html>
|