1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
---|
2 | <html xmlns="http://www.w3.org/1999/xhtml"> |
---|
3 | <head> |
---|
4 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
---|
5 | <meta http-equiv="Content-Style-Type" content="text/css" /> |
---|
6 | <meta name="generator" content="pandoc" /> |
---|
7 | <title></title> |
---|
8 | <style type="text/css">code{white-space: pre;}</style> |
---|
9 | <link href="data:text/css,%2F%2A%0A%20%20%20%20Buttondown%0A%20%20%20%20A%20Markdown%2FMultiMarkdown%2FPandoc%20HTML%20output%20CSS%20stylesheet%0A%20%20%20%20Author%3A%20Ryan%20Gray%0A%20%20%20%20Date%3A%2015%20Feb%202011%0A%20%20%20%20Revised%3A%2021%20Feb%202012%0A%20%20%20%0A%20%20%20%20General%20style%20is%20clean%2C%20with%20minimal%20re%2Ddefinition%20of%20the%20defaults%20or%20%0A%20%20%20%20overrides%20of%20user%20font%20settings%2E%20The%20body%20text%20and%20header%20styles%20are%20%0A%20%20%20%20left%20alone%20except%20title%2C%20author%20and%20date%20classes%20are%20centered%2E%20A%20Pandoc%20TOC%20%0A%20%20%20%20is%20not%20printed%2C%20URLs%20are%20printed%20after%20hyperlinks%20in%20parentheses%2E%20%0A%20%20%20%20Block%20quotes%20are%20italicized%2E%20Tables%20are%20lightly%20styled%20with%20lines%20above%20%0A%20%20%20%20and%20below%20the%20table%20and%20below%20the%20header%20with%20a%20boldface%20header%2E%20Code%20%0A%20%20%20%20blocks%20are%20line%20wrapped%2E%20%0A%20%0A%20%20%20%20All%20elements%20that%20Pandoc%20and%20MultiMarkdown%20use%20should%20be%20listed%20here%2C%20even%20%0A%20%20%20%20if%20the%20style%20is%20empty%20so%20you%20can%20easily%20add%20styling%20to%20anything%2E%0A%20%20%20%20%0A%20%20%20%20There%20are%20some%20elements%20in%20here%20for%20HTML5%20output%20of%20Pandoc%2C%20but%20I%20have%20not%20%0A%20%20%20%20gotten%20around%20to%20testing%20that%20yet%2E%0A%2A%2F%0A%20%0A%2F%2A%20NOTES%3A%0A%20%0A%20%20%20%20Stuff%20tried%20and%20failed%3A%0A%20%20%20%20%0A%20%20%20%20It%20seems%20that%20specifying%20font%2Dfamily%3Aserif%20in%20Safari%20will%20always%20use%20%0A%20%20%20%20Times%20New%20Roman%20rather%20than%20the%20user%27s%20preferences%20setting%2E%0A%20%20%20%20%0A%20%20%20%20Making%20the%20font%20size%20different%20or%20a%20fixed%20value%20for%20print%20in%20case%20the%20screen%20%0A%20%20%20%20font%20size%20is%20making%20the%20print%20font%20too%20big%3A%20Making%20font%2Dsize%20different%20for%20%0A%20%20%20%20print%20than%20for%20screen%20causes%20horizontal%20lines%20to%20disappear%20in%20math%20when%20using%20%0A%20%20%20%20MathJax%20under%20Safari%2E%0A%2A%2F%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Front%20Matter%20%2D%2D%2D%2D%20%2A%2F%0A%20%0A%2F%2A%20Pandoc%20header%20DIV%2E%20Contains%20%2Etitle%2C%20%2Eauthor%20and%20%2Edate%2E%20Comes%20before%20div%23TOC%2E%20%0A%20%20%20Only%20appears%20if%20one%20of%20those%20three%20are%20in%20the%20document%2E%0A%2A%2F%0A%20%0Adiv%23header%2C%20header%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Put%20border%20on%20bottom%2E%20Separates%20it%20from%20TOC%20or%20body%20that%20comes%20after%20it%2E%20%2A%2F%0A%20%20%20%20border%2Dbottom%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%2Etitle%20%2F%2A%20Pandoc%20title%20header%20%28h1%2Etitle%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20%7D%0A%20%0A%2Eauthor%2C%20%2Edate%20%2F%2A%20Pandoc%20author%28s%29%20and%20date%20headers%20%28h2%2Eauthor%20and%20h3%2Edate%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20Pandoc%20table%20of%20contents%20DIV%20when%20using%20the%20%2D%2Dtoc%20option%2E%0A%20%20%20NOTE%3A%20this%20doesn%27t%20support%20Pandoc%27s%20%2D%2Did%2Dprefix%20option%20for%20%23TOC%20and%20%23header%2E%20%0A%20%20%20Probably%20would%20need%20to%20use%20div%5Bid%24%3D%27TOC%27%5D%20and%20div%5Bid%24%3D%27header%27%5D%20as%20selectors%2E%0A%2A%2F%0A%20%0Adiv%23TOC%2C%20nav%23TOC%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Put%20border%20on%20bottom%20to%20separate%20it%20from%20body%2E%20%2A%2F%0A%20%20%20%20border%2Dbottom%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20div%23TOC%2C%20nav%23TOC%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20Don%27t%20display%20TOC%20in%20print%20%2A%2F%0A%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Headers%20and%20sections%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Ah1%2C%20h2%2C%20h3%2C%20h4%2C%20h5%2C%20h6%0A%7B%0A%20%20%20%20font%2Dfamily%3A%20%22Helvetica%20Neue%22%2C%20Helvetica%2C%20%22Liberation%20Sans%22%2C%20Calibri%2C%20Arial%2C%20sans%2Dserif%3B%20%2F%2A%20Sans%2Dserif%20headers%20%2A%2F%0A%20%0A%20%20%20%20%2F%2A%20font%2Dfamily%3A%20%22Liberation%20Serif%22%2C%20%22Georgia%22%2C%20%22Times%20New%20Roman%22%2C%20serif%3B%20%2F%2A%20Serif%20headers%20%2A%2F%0A%20%0A%20%20%20%20page%2Dbreak%2Dafter%3A%20avoid%3B%20%2F%2A%20Firefox%2C%20Chrome%2C%20and%20Safari%20do%20not%20support%20the%20property%20value%20%22avoid%22%20%2A%2F%0A%7D%0A%20%0A%2F%2A%20Pandoc%20with%20%2D%2Dsection%2Ddivs%20option%20%2A%2F%0A%20%0Adiv%20div%2C%20section%20section%20%2F%2A%20Nested%20sections%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dleft%3A%202em%3B%20%2F%2A%20This%20will%20increasingly%20indent%20nested%20header%20sections%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Ap%20%7B%7D%0A%20%0Ablockquote%0A%20%20%20%20%7B%20%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20%7D%0A%20%0Ali%20%2F%2A%20All%20list%20items%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ali%20%3E%20p%20%2F%2A%20Loosely%20spaced%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dtop%3A%201em%3B%20%2F%2A%20IE%3A%20lack%20of%20space%20above%20a%20%3Cli%3E%20when%20the%20item%20is%20inside%20a%20%3Cp%3E%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Aul%20%2F%2A%20Whole%20unordered%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aul%20li%20%2F%2A%20Unordered%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aol%20%2F%2A%20Whole%20ordered%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Aol%20li%20%2F%2A%20Ordered%20list%20item%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ahr%20%7B%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Some%20span%20elements%20%2D%2D%2D%20%2A%2F%0A%20%0Asub%20%2F%2A%20Subscripts%2E%20Pandoc%3A%20H%7E2%7EO%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Asup%20%2F%2A%20Superscripts%2E%20Pandoc%3A%20The%202%5End%5E%20try%2E%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aem%20%2F%2A%20Emphasis%2E%20Markdown%3A%20%2Aemphasis%2A%20or%20%5Femphasis%5F%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aem%20%3E%20em%20%2F%2A%20Emphasis%20within%20emphasis%3A%20%2AThis%20is%20all%20%2Aemphasized%2A%20except%20that%2A%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dstyle%3A%20normal%3B%0A%20%20%20%20%7D%0A%20%0Astrong%20%2F%2A%20Markdown%20%2A%2Astrong%2A%2A%20or%20%5F%5Fstrong%5F%5F%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Links%20%28anchors%29%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aa%20%2F%2A%20All%20links%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Keep%20links%20clean%2E%20On%20screen%2C%20they%20are%20colored%3B%20in%20print%2C%20they%20do%20nothing%20anyway%2E%20%2A%2F%0A%20%20%20%20text%2Ddecoration%3A%20none%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20screen%0A%20%20%20%20%7B%0A%20%20%20%20a%3Ahover%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20On%20hover%2C%20we%20indicate%20a%20bit%20more%20that%20it%20is%20a%20link%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20text%2Ddecoration%3A%20underline%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20a%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20In%20print%2C%20a%20colored%20link%20is%20useless%2C%20so%20un%2Dstyle%20it%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20color%3A%20black%3B%0A%20%20%20%20%20%20%20%20background%3A%20transparent%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20a%5Bhref%5E%3D%22http%3A%2F%2F%22%5D%3Aafter%2C%20a%5Bhref%5E%3D%22https%3A%2F%2F%22%5D%3Aafter%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20However%2C%20links%20that%20go%20somewhere%20else%2C%20might%20be%20useful%20to%20the%20reader%2C%0A%20%20%20%20%20%20%20%20%20%20%20so%20for%20http%20and%20https%20links%2C%20print%20the%20URL%20after%20what%20was%20the%20link%20%0A%20%20%20%20%20%20%20%20%20%20%20text%20in%20parens%0A%20%20%20%20%20%20%20%20%2A%2F%0A%20%20%20%20%20%20%20%20content%3A%20%22%20%28%22%20attr%28href%29%20%22%29%20%22%3B%0A%20%20%20%20%20%20%20%20font%2Dsize%3A%2090%25%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Images%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aimg%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Let%20it%20be%20inline%20left%2Fright%20where%20it%20wants%20to%20be%2C%20but%20verticality%20make%20%0A%20%20%20%20%20%20%20it%20in%20the%20middle%20to%20look%20nicer%2C%20but%20opinions%20differ%2C%20and%20if%20in%20a%20multi%2Dline%20%0A%20%20%20%20%20%20%20paragraph%2C%20it%20might%20not%20be%20so%20great%2E%20%0A%20%20%20%20%2A%2F%0A%20%20%20%20vertical%2Dalign%3A%20middle%3B%0A%20%20%20%20%7D%0A%20%0Adiv%2Efigure%20%2F%2A%20Pandoc%20figure%2Dstyle%20image%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Center%20the%20image%20and%20caption%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20auto%3B%0A%20%20%20%20margin%2Dright%3A%20auto%3B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20%7D%0A%20%0Ap%2Ecaption%20%2F%2A%20Pandoc%20figure%2Dstyle%20caption%20within%20div%2Efigure%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Inherits%20div%2Efigure%20props%20by%20default%20%2A%2F%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Code%20blocks%20and%20spans%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Apre%2C%20code%20%0A%20%20%20%20%7B%0A%20%20%20%20background%2Dcolor%3A%20%23fdf7ee%3B%0A%20%20%20%20%2F%2A%20BEGIN%20word%20wrap%20%2A%2F%0A%20%20%20%20%2F%2A%20Need%20all%20the%20following%20to%20word%20wrap%20instead%20of%20scroll%20box%20%2A%2F%0A%20%20%20%20%2F%2A%20This%20will%20override%20the%20overflow%3Aauto%20if%20present%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20pre%2Dwrap%3B%20%2F%2A%20css%2D3%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Dmoz%2Dpre%2Dwrap%20%21important%3B%20%2F%2A%20Mozilla%2C%20since%201999%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Dpre%2Dwrap%3B%20%2F%2A%20Opera%204%2D6%20%2A%2F%0A%20%20%20%20white%2Dspace%3A%20%2Do%2Dpre%2Dwrap%3B%20%2F%2A%20Opera%207%20%2A%2F%0A%20%20%20%20word%2Dwrap%3A%20break%2Dword%3B%20%2F%2A%20Internet%20Explorer%205%2E5%2B%20%2A%2F%0A%20%20%20%20%2F%2A%20END%20word%20wrap%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Apre%20%2F%2A%20Code%20blocks%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Distinguish%20pre%20blocks%20from%20other%20text%20by%20more%20than%20the%20font%20with%20a%20background%20tint%2E%20%2A%2F%0A%20%20%20%20padding%3A%200%2E5em%3B%20%2F%2A%20Since%20we%20have%20a%20background%20color%20%2A%2F%0A%20%20%20%20border%2Dradius%3A%205px%3B%20%2F%2A%20Softens%20it%20%2A%2F%0A%20%20%20%20%2F%2A%20Give%20it%20a%20some%20definition%20%2A%2F%0A%20%20%20%20border%3A%201px%20solid%20%23aaa%3B%0A%20%20%20%20%2F%2A%20Set%20it%20off%20left%20and%20right%2C%20seems%20to%20look%20a%20bit%20nicer%20when%20we%20have%20a%20background%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20%200%2E5em%3B%0A%20%20%20%20margin%2Dright%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0A%40media%20screen%0A%20%20%20%20%7B%0A%20%20%20%20pre%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20On%20screen%2C%20use%20an%20auto%20scroll%20box%20for%20long%20lines%2C%20unless%20word%2Dwrap%20is%20enabled%20%2A%2F%0A%20%20%20%20%20%20%20%20white%2Dspace%3A%20pre%3B%0A%20%20%20%20%20%20%20%20overflow%3A%20auto%3B%0A%20%20%20%20%20%20%20%20%2F%2A%20Dotted%20looks%20better%20on%20screen%20and%20solid%20seems%20to%20print%20better%2E%20%2A%2F%0A%20%20%20%20%20%20%20%20border%3A%201px%20dotted%20%23777%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0Acode%20%2F%2A%20All%20inline%20code%20spans%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Ap%20%3E%20code%2C%20li%20%3E%20code%20%2F%2A%20Code%20spans%20in%20paragraphs%20and%20tight%20lists%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Pad%20a%20little%20from%20adjacent%20text%20%2A%2F%0A%20%20%20%20padding%2Dleft%3A%20%202px%3B%0A%20%20%20%20padding%2Dright%3A%202px%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Ali%20%3E%20p%20code%20%2F%2A%20Code%20span%20in%20a%20loose%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20We%20have%20room%20for%20some%20more%20background%20color%20above%20and%20below%20%2A%2F%0A%20%20%20%20padding%3A%202px%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Math%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aspan%2Emath%20%2F%2A%20Pandoc%20inline%20math%20default%20and%20%2D%2Djsmath%20inline%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%2F%2A%20Tried%20font%2Dstyle%3Aitalic%20here%2C%20and%20it%20messed%20up%20MathJax%20rendering%20in%20some%20browsers%2E%20Maybe%20don%27t%20mess%20with%20at%20all%2E%20%2A%2F%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Emath%20%2F%2A%20Pandoc%20%2D%2Djsmath%20display%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Aspan%2ELaTeX%20%2F%2A%20Pandoc%20%2D%2Dlatexmathml%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0Aeq%20%2F%2A%20Pandoc%20%2D%2Dgladtex%20math%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Tables%20%2D%2D%2D%2D%20%2A%2F%0A%20%0A%2F%2A%20%20A%20clean%20textbook%2Dlike%20style%20with%20horizontal%20lines%20above%20and%20below%20and%20under%20%0A%20%20%20%20the%20header%2E%20Rows%20highlight%20on%20hover%20to%20help%20scanning%20the%20table%20on%20screen%2E%0A%2A%2F%0A%20%0Atable%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dcollapse%3A%20collapse%3B%0A%20%20%20%20border%2Dspacing%3A%200%3B%20%2F%2A%20IE%206%20%2A%2F%0A%20%0A%20%20%20%20border%2Dbottom%3A%202pt%20solid%20%23000%3B%0A%20%20%20%20border%2Dtop%3A%202pt%20solid%20%23000%3B%20%2F%2A%20The%20caption%20on%20top%20will%20not%20have%20a%20bottom%2Dborder%20%2A%2F%0A%20%0A%20%20%20%20%2F%2A%20Center%20%2A%2F%0A%20%20%20%20margin%2Dleft%3A%20auto%3B%0A%20%20%20%20margin%2Dright%3A%20auto%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Athead%20%2F%2A%20Entire%20table%20header%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dbottom%3A%201pt%20solid%20%23000%3B%0A%20%20%20%20background%2Dcolor%3A%20%23eee%3B%20%2F%2A%20Does%20this%20BG%20print%20well%3F%20%2A%2F%0A%20%20%20%20%7D%0A%20%0Atr%2Eheader%20%2F%2A%20Each%20header%20row%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%20%0A%20%0Atbody%20%2F%2A%20Entire%20table%20%20body%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20Table%20body%20rows%20%2A%2F%0A%20%0Atr%20%20%7B%0A%20%20%20%20%7D%0Atr%2Eodd%3Ahover%2C%20tr%2Eeven%3Ahover%20%2F%2A%20Use%20%2Eodd%20and%20%2Eeven%20classes%20to%20avoid%20styling%20rows%20in%20other%20tables%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20background%2Dcolor%3A%20%23eee%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20Odd%20and%20even%20rows%20%2A%2F%0Atr%2Eodd%20%7B%7D%0Atr%2Eeven%20%7B%7D%0A%20%0Atd%2C%20th%20%2F%2A%20Table%20cells%20and%20table%20header%20cells%20%2A%2F%0A%20%20%20%20%7B%20%0A%20%20%20%20vertical%2Dalign%3A%20top%3B%20%2F%2A%20Word%20%2A%2F%0A%20%20%20%20vertical%2Dalign%3A%20baseline%3B%20%2F%2A%20Others%20%2A%2F%0A%20%20%20%20padding%2Dleft%3A%20%20%200%2E5em%3B%0A%20%20%20%20padding%2Dright%3A%20%200%2E5em%3B%0A%20%20%20%20padding%2Dtop%3A%20%20%20%200%2E2em%3B%0A%20%20%20%20padding%2Dbottom%3A%200%2E2em%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20Removes%20padding%20on%20left%20and%20right%20of%20table%20for%20a%20tight%20look%2E%20Good%20if%20thead%20has%20no%20background%20color%2A%2F%0A%2F%2A%0Atr%20td%3Alast%2Dchild%2C%20tr%20th%3Alast%2Dchild%0A%20%20%20%20%7B%0A%20%20%20%20padding%2Dright%3A%200%3B%0A%20%20%20%20%7D%0Atr%20td%3Afirst%2Dchild%2C%20tr%20th%3Afirst%2Dchild%20%0A%20%20%20%20%7B%0A%20%20%20%20padding%2Dleft%3A%200%3B%0A%20%20%20%20%7D%0A%2A%2F%0A%20%0Ath%20%2F%2A%20Table%20header%20cells%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dweight%3A%20bold%3B%20%0A%20%20%20%20%7D%0A%20%0Atfoot%20%2F%2A%20Table%20footer%20%28what%20appears%20here%20if%20caption%20is%20on%20top%3F%29%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0Acaption%20%2F%2A%20This%20is%20for%20a%20table%20caption%20tag%2C%20not%20the%20p%2Ecaption%20Pandoc%20uses%20in%20a%20div%2Efigure%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20caption%2Dside%3A%20top%3B%0A%20%20%20%20border%3A%20none%3B%0A%20%20%20%20font%2Dsize%3A%200%2E9em%3B%0A%20%20%20%20font%2Dstyle%3A%20italic%3B%0A%20%20%20%20text%2Dalign%3A%20center%3B%0A%20%20%20%20margin%2Dbottom%3A%200%2E3em%3B%20%2F%2A%20Good%20for%20when%20on%20top%20%2A%2F%0A%20%20%20%20padding%2Dbottom%3A%200%2E2em%3B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20%2D%2D%2D%2D%20Definition%20lists%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Adl%20%2F%2A%20The%20whole%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%202pt%20solid%20black%3B%0A%20%20%20%20padding%2Dtop%3A%200%2E5em%3B%0A%20%20%20%20border%2Dbottom%3A%202pt%20solid%20black%3B%0A%20%20%20%20%7D%0A%20%0Adt%20%2F%2A%20Definition%20term%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20font%2Dweight%3A%20bold%3B%0A%20%20%20%20%7D%0A%20%0Add%2Bdt%20%2F%2A%202nd%20or%20greater%20term%20in%20the%20list%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%201pt%20solid%20black%3B%0A%20%20%20%20padding%2Dtop%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0Add%20%2F%2A%20A%20definition%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20margin%2Dbottom%3A%200%2E5em%3B%0A%20%20%20%20%7D%0A%20%0Add%2Bdd%20%2F%2A%202nd%20or%20greater%20definition%20of%20a%20term%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20border%2Dtop%3A%201px%20solid%20black%3B%20%2F%2A%20To%20separate%20multiple%20definitions%20%2A%2F%0A%20%20%20%20%7D%0A%20%20%20%20%0A%2F%2A%20%2D%2D%2D%2D%20Footnotes%20%2D%2D%2D%2D%20%2A%2F%0A%20%0Aa%2Efootnote%2C%20a%2EfootnoteRef%20%7B%20%2F%2A%20Pandoc%2C%20MultiMarkdown%20footnote%20links%20%2A%2F%0A%20%20%20%20font%2Dsize%3A%20small%3B%20%0A%20%20%20%20vertical%2Dalign%3A%20text%2Dtop%3B%0A%7D%0A%20%0Aa%5Bhref%5E%3D%22%23fnref%22%5D%2C%20a%2Ereversefootnote%20%2F%2A%20Pandoc%2C%20MultiMarkdown%2C%20%3F%3F%20footnote%20back%20links%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20a%5Bhref%5E%3D%22%23fnref%22%5D%2C%20a%2Ereversefootnote%20%2F%2A%20Pandoc%2C%20MultiMarkdown%20%2A%2F%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2A%20Don%27t%20display%20these%20at%20all%20in%20print%20since%20the%20arrow%20is%20only%20something%20to%20click%20on%20%2A%2F%0A%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Efootnotes%20%2F%2A%20Pandoc%20footnotes%20div%20at%20end%20of%20the%20document%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20%0Adiv%2Efootnotes%20li%5Bid%5E%3D%22fn%22%5D%20%2F%2A%20A%20footnote%20item%20within%20that%20div%20%2A%2F%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%0A%2F%2A%20You%20can%20class%20stuff%20as%20%22noprint%22%20to%20not%20print%2E%20%0A%20%20%20Useful%20since%20you%20can%27t%20set%20this%20media%20conditional%20inside%20an%20HTML%20element%27s%20%0A%20%20%20style%20attribute%20%28I%20think%29%2C%20and%20you%20don%27t%20want%20to%20make%20another%20stylesheet%20that%20%0A%20%20%20imports%20this%20one%20and%20adds%20a%20class%20just%20to%20do%20this%2E%0A%2A%2F%0A%20%0A%40media%20print%0A%20%20%20%20%7B%0A%20%20%20%20%2Enoprint%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20display%3Anone%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A" rel="stylesheet" type="text/css" /> |
---|
10 | </head> |
---|
11 | <body> |
---|
12 | <div id="TOC"> |
---|
13 | <ul> |
---|
14 | <li><a href="#gestion-y-monitorizacion-de-redes---smokeping---parte-ii">Gestion y Monitorizacion de Redes - Smokeping - Parte II</a><ul> |
---|
15 | <li><a href="#adicionando-nuevos-sondeos-probes-a-smokeping">5. Adicionando nuevos sondeos (Probes) a Smokeping</a></li> |
---|
16 | <li><a href="#adicione-chequeos-de-la-latencia-http-para-las-pcs-de-la-clase">6. Adicione chequeos de la latencia HTTP para las PCs de la clase</a></li> |
---|
17 | <li><a href="#adicione-chequeos-de-latencia-dns">7. Adicione chequeos de latencia DNS</a></li> |
---|
18 | <li><a href="#graficos-de-varios-dispostivos">8. Graficos de varios dispostivos</a></li> |
---|
19 | <li><a href="#enviar-alertas-smokeping">9. Enviar alertas Smokeping</a></li> |
---|
20 | <li><a href="#instancias-delegadas-esclavas-slaves---solo-informacional">10. Instancias delegadas /esclavas (slaves) - Solo informacional</a></li> |
---|
21 | </ul></li> |
---|
22 | </ul> |
---|
23 | </div> |
---|
24 | <h1 id="gestion-y-monitorizacion-de-redes---smokeping---parte-ii"><a href="#gestion-y-monitorizacion-de-redes---smokeping---parte-ii">Gestion y Monitorizacion de Redes - Smokeping - Parte II</a></h1> |
---|
25 | <h2 id="adicionando-nuevos-sondeos-probes-a-smokeping"><a href="#adicionando-nuevos-sondeos-probes-a-smokeping">5. Adicionando nuevos sondeos (Probes) a Smokeping</a></h2> |
---|
26 | <p>La entrada actual en el fichero de Probes file funciona bien, pero si desea usar chequeos adicionales, se pueden especificar su comportanmiento. Esto se puede hacer en el fichero Targets.</p> |
---|
27 | <p>Para adicionar un sondeo y cheque la latencia HTTP y tambien DNS, edite el fichero Probes y adicione AL FINAL:</p> |
---|
28 | <pre><code>+ EchoPingHttp |
---|
29 | |
---|
30 | + DNS |
---|
31 | binary = /usr/bin/dig |
---|
32 | pings = 5 |
---|
33 | step = 180 |
---|
34 | lookup = www.nsrc.org</code></pre> |
---|
35 | <p>El sondeo DNS va a determinar la direccion IP de www.nsrc.org utilizando otro servidor DNS definido en el fichero Targets. Esto se explicara mas adelante en los ejercicios.</p> |
---|
36 | <p>Guarde y verfique que los cambios fueron activados:</p> |
---|
37 | <pre><code># service smokeping reload</code></pre> |
---|
38 | <h2 id="adicione-chequeos-de-la-latencia-http-para-las-pcs-de-la-clase"><a href="#adicione-chequeos-de-la-latencia-http-para-las-pcs-de-la-clase">6. Adicione chequeos de la latencia HTTP para las PCs de la clase</a></h2> |
---|
39 | <p>Edite el fichero Targets:</p> |
---|
40 | <pre><code># editor Targets</code></pre> |
---|
41 | <p>Al final adicione:</p> |
---|
42 | <pre><code># |
---|
43 | # Local Web server response |
---|
44 | # |
---|
45 | |
---|
46 | +HTTP |
---|
47 | |
---|
48 | menu = Local HTTP Response |
---|
49 | title = HTTP Response Student PCs |
---|
50 | |
---|
51 | ++pc1 |
---|
52 | |
---|
53 | menu = pc1 |
---|
54 | title = pc1 HTTP response time |
---|
55 | probe = EchoPingHttp |
---|
56 | host = pc1.ws.nsrc.org |
---|
57 | |
---|
58 | ++pc2 |
---|
59 | |
---|
60 | menu = pc2 |
---|
61 | title = pc2 HTTP response time |
---|
62 | probe = EchoPingHttp |
---|
63 | host = pc2.ws.nsrc.org |
---|
64 | |
---|
65 | ++pc3 |
---|
66 | |
---|
67 | menu = pc3 |
---|
68 | title = pc3 HTTP response time |
---|
69 | probe = EchoPingHttp |
---|
70 | host = pc3.ws.nsrc.org |
---|
71 | |
---|
72 | ++pc4 |
---|
73 | |
---|
74 | menu = pc4 |
---|
75 | title = pc4 HTTP response time |
---|
76 | probe = EchoPingHttp |
---|
77 | host = pc4.ws.nsrc.org</code></pre> |
---|
78 | <p>Usted puede utilizar la definicion "probe = EchoPingHttp" para pc1, y esto seria la definicion por defecto hasta que exista otro "probe = " en el fichero Targets.</p> |
---|
79 | <p>Puede adicionar mas PCs o puede considerar el chequeo de latencia de PCs remotas - que pueden ser mas interesantes. Sus propios servidores publicos puede ser una opcion u otroa servidores de uso diario como Google, Yahoo, etc.</p> |
---|
80 | <p>Por ejemplo, edicione lo siguiente al final del fichero Targets:</p> |
---|
81 | <pre><code># |
---|
82 | # Remote Web server response |
---|
83 | # |
---|
84 | |
---|
85 | +HTTPRemote |
---|
86 | |
---|
87 | menu = Remote HTTP Response |
---|
88 | title = HTTP Response Remote Machines |
---|
89 | |
---|
90 | ++google |
---|
91 | |
---|
92 | menu = Google |
---|
93 | title = Google.com HTTP response time |
---|
94 | probe = EchoPingHttp |
---|
95 | host = www.wikipedia.org |
---|
96 | |
---|
97 | ++nsrc |
---|
98 | |
---|
99 | menu = Network Startup Resource Center |
---|
100 | title = nsrc.org HTTP response time |
---|
101 | probe = EchoPingHttp |
---|
102 | host = nsrc.org</code></pre> |
---|
103 | <p>Adicione su propio dispositivo que utiliza en su Compania a la lista de "Remote Web Server".</p> |
---|
104 | <p>Guardo el fichero Targets y verifique:</p> |
---|
105 | <pre><code># service smokeping reload</code></pre> |
---|
106 | <h2 id="adicione-chequeos-de-latencia-dns"><a href="#adicione-chequeos-de-latencia-dns">7. Adicione chequeos de latencia DNS</a></h2> |
---|
107 | <p>Al final del fichero Targets vamos a adicionar algunas entradas para verificar la latencia desde nuestra ubicacion hasta un servidor DNS remoto recursivo y chequear un registro para nsrc.org Es posible que desee sustituir una direccion importante para su institucion en el fichero Probes. Tambien puede cambiar la direccion que desea chequear en el fichero Targets. Para mas informacion, consulte:</p> |
---|
108 | <p><a href="http://oss.oetiker.ch/smokeping/probe/DNS.en.html">http://oss.oetiker.ch/smokeping/probe/DNS.en.html</a></p> |
---|
109 | <p>y ademas:</p> |
---|
110 | <p><a href="http://oss.oetiker.ch/smokeping/probe/index.en.html">http://oss.oetiker.ch/smokeping/probe/index.en.html</a></p> |
---|
111 | <p>Edite el fichero Target. Asegurese se ir al final del fichero:</p> |
---|
112 | <pre><code># cd /etc/smokeping/config.d (asegurese...) |
---|
113 | # editor Targets</code></pre> |
---|
114 | <p>Adicione al final del fichero:</p> |
---|
115 | <pre><code># |
---|
116 | # Sample DNS probe |
---|
117 | # |
---|
118 | |
---|
119 | +DNS |
---|
120 | |
---|
121 | probe = DNS |
---|
122 | menu = DNS Latency |
---|
123 | title = DNS Latency Probes |
---|
124 | |
---|
125 | ++LocalDNS1 |
---|
126 | menu = 10.10.0.241 |
---|
127 | title = DNS Delay for local DNS Server on s1.ws.nsrc.org |
---|
128 | host = s1.ws.nsrc.org |
---|
129 | |
---|
130 | ++GoogleA |
---|
131 | menu = 8.8.8.8 |
---|
132 | title = DNS Latency for google-public-dns-a.google.com |
---|
133 | host = google-public-dns-a.google.com |
---|
134 | |
---|
135 | ++GoogleB |
---|
136 | |
---|
137 | menu = 8.8.4.4 |
---|
138 | title = DNS Latency for google-public-dns-b.google.com |
---|
139 | host = google-public-dns-b.google.com |
---|
140 | |
---|
141 | ++OpenDNSA |
---|
142 | |
---|
143 | menu = 208.67.222.222 |
---|
144 | title = DNS Latency for resolver1.opendns.com |
---|
145 | host = resolver1.opendns.com |
---|
146 | |
---|
147 | ++OpenDNSB |
---|
148 | |
---|
149 | menu = 208.67.220.220 |
---|
150 | title = DNS Latency for resolver2.opendns.com |
---|
151 | host = resolver2.opendns.com</code></pre> |
---|
152 | <p>Salve el fichero Targets y verifique la configuracion:</p> |
---|
153 | <pre><code># service smokeping reload</code></pre> |
---|
154 | <p>Examine sondeos adiciones de Smokeping y considere implementar algunos que sea utiles para su organizacion:</p> |
---|
155 | <p><a href="http://oss.oetiker.ch/smokeping/probe/index.en.html">http://oss.oetiker.ch/smokeping/probe/index.en.html</a></p> |
---|
156 | <h2 id="graficos-de-varios-dispostivos"><a href="#graficos-de-varios-dispostivos">8. Graficos de varios dispostivos</a></h2> |
---|
157 | <p>Una vez que ha definido grupos de dispositivos bajo un mismo sondeo en /etc/smokeping/config.d/Targets, entonces se pueden crear un grafico que muestre los resultados de todos los chequeos para esos dispositivos. La ventaja de esta caracteristica es que se pueden realizar comparaciones rapidas.</p> |
---|
158 | <p>La funcion de Graficos Multiples en Smokeping es extremadamente especifica. Atienda con cuidado!</p> |
---|
159 | <p>Edite el fichero Targets:</p> |
---|
160 | <pre><code># editor Targets</code></pre> |
---|
161 | <p>Vamos a crear un grafico multiple para los sondeos de latencia DNS que se han creado. Entonces, vaya al final del fichero Targets y adicione:</p> |
---|
162 | <pre><code># |
---|
163 | # Multihost Graph of all DNS latency checks |
---|
164 | # |
---|
165 | |
---|
166 | ++MultiHostDNS |
---|
167 | |
---|
168 | menu = MultiHost DNS |
---|
169 | title = Consolidated DNS Responses |
---|
170 | host = /DNS/LocalDNS1 /DNS/GoogleA /DNS/GoogleB /DNS/OpenDNSA /DNS/OpenDNSB</code></pre> |
---|
171 | <p>Guarde y chequee la configuracion.</p> |
---|
172 | <pre><code># service smokeping reload</code></pre> |
---|
173 | <p>Si Smokeping falla, es muy posible que existan errores en la configuracion. Si no puede detectar el error (recuerde revisar /var/log/syslog), pregunte a su instructor.</p> |
---|
174 | <p>Usted puede adicionar un grafico multiple para cualquier cantidad de sondeos (FPing, EchoPingHttp) que han sido configurados. Debe adicionar una entrada MultiHost al final de la seccion de sondeos. Si no entiende como funcione, pregunte a su instructor.</p> |
---|
175 | <p>Adicionalmente, en el NOC existen ficheros de configuracion con ejemplos.</p> |
---|
176 | <h2 id="enviar-alertas-smokeping"><a href="#enviar-alertas-smokeping">9. Enviar alertas Smokeping</a></h2> |
---|
177 | <p>Si desea recibir un correo cuando se dispara una alerta a partir de los chequeos, realice los siguiente:</p> |
---|
178 | <pre><code># cd /etc/smokeping/config.d |
---|
179 | # editor Alerts</code></pre> |
---|
180 | <p>Actualice el inicio del fichero, donde se ve:</p> |
---|
181 | <pre><code>*** Alerts *** |
---|
182 | to = alertee@address.somewhere |
---|
183 | from = smokealert@company.xy</code></pre> |
---|
184 | <p>incluya "to" y "from" de su servidor de correo:</p> |
---|
185 | <pre><code>*** Alerts *** |
---|
186 | to = sysadm@localhost |
---|
187 | from = smokeping-alert@localhost</code></pre> |
---|
188 | <p>Debe actualizar las definiciones de dispositivos para incluir una linea como:</p> |
---|
189 | <pre><code>alerts = alertName1, alertName2, etc, etc...</code></pre> |
---|
190 | <p>La alerta "someloss" ha sido definida en el fichero Alerts:</p> |
---|
191 | <p>Para leer sobre las Alerta en Smokeping :</p> |
---|
192 | <p><a href="http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html">http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html</a></p> |
---|
193 | <p>al final de la pagina hay una seccion titulada <code>*** Alerts ***</code></p> |
---|
194 | <p>Para definir alertas en los dospositivos, edite el fichero Targets:</p> |
---|
195 | <pre><code># editor Targets</code></pre> |
---|
196 | <p>Vaya casi al inicio del fichero, donde se definieron nuestras PCs y justo debajo de la linea "host =" adicione la siguiente linea:</p> |
---|
197 | <pre><code>alerts = someloss</code></pre> |
---|
198 | <p>Ejemplo para la PC1:</p> |
---|
199 | <pre><code>++pc1 |
---|
200 | |
---|
201 | menu = pc1 |
---|
202 | title = Virtual Machine 1 |
---|
203 | host = pc1.ws.nsrc.org |
---|
204 | alerts = someloss</code></pre> |
---|
205 | <p>Adicione alertas para otros dispositivos. Cuando termine, guarde la configuracion y verifique:</p> |
---|
206 | <pre><code># service smokeping reload</code></pre> |
---|
207 | <p>Si algunos de los dispositivos que tienen la opcion "alerts = " envian un correo, porque la alerta se dispara, puede revisarlo con un cliente de correo como "mutt"</p> |
---|
208 | <pre><code># apt-get install mutt |
---|
209 | # su - sysadm (debe cambiar al usuario sysadmin) |
---|
210 | $ mutt</code></pre> |
---|
211 | <p>Acepte la creazon del buzon de correo cuando se le pregunte y chequee que tiene correo de smokeping-alerts@localhost. Es posible que no. Para salir de Mutt presione "q".</p> |
---|
212 | <p>Para salir del usuario sysadmin en la consola, escriba:</p> |
---|
213 | <pre><code>$ exit |
---|
214 | #</code></pre> |
---|
215 | <h2 id="instancias-delegadas-esclavas-slaves---solo-informacional"><a href="#instancias-delegadas-esclavas-slaves---solo-informacional">10. Instancias delegadas /esclavas (slaves) - Solo informacional</a></h2> |
---|
216 | <p>Esto es una descripcion con propositos informacional, en caso que desee realizar este tipo de configuracion despues que termine el curso.</p> |
---|
217 | <p>La idea detras de esto es que se puedan ejecutar multiples instancias de Smokeping en multiples ubicaciones y que esten monitorizando los mismos dispositivos y servicios que la instancia principal. Los esclavos envian los resultados al servidor principal y se visualizan los resultados con los chequeos locales. Esto permite ver como los usuarios fuera de su red perciben sus servicios y dispositivos.</p> |
---|
218 | <p>Esto puede ser muy util para resolver problemas de servicios y dispositivos que se dificultan cuando solo se tienen datos locales.</p> |
---|
219 | <p>Graficamente seria como lo siguiente:</p> |
---|
220 | <pre><code> |
---|
221 | [slave 1] [slave 2] [slave 3] |
---|
222 | | | | |
---|
223 | +-------+ | +--------+ |
---|
224 | | | | |
---|
225 | v v v |
---|
226 | +---------------+ |
---|
227 | | maestro | |
---|
228 | +---------------+ |
---|
229 | </code></pre> |
---|
230 | <p>Se pueden ver ejemplos a continuacion:</p> |
---|
231 | <p><a href="http://oss.oetiker.ch/smokeping-demo/">http://oss.oetiker.ch/smokeping-demo/</a></p> |
---|
232 | <p>Preste atencion a los grupos de graficos y note que muchos graficos tienen varias lineas con el codigo de colores de elementos como "median RTT from mipsrv01" - Estos no son multiples graficos de dispositivos, sino graficos de servidores Smokeping externos.</p> |
---|
233 | <p>Para configurar un servidor master/slave puede consultar la documentacion:</p> |
---|
234 | <p><a href="http://oss.oetiker.ch/smokeping/doc/smokeping_master_slave.en.html">http://oss.oetiker.ch/smokeping/doc/smokeping_master_slave.en.html</a></p> |
---|
235 | <p>Ademas, una lista de pasos para configurar esta caracteristica esta disponible en el fichero sample-smokeping-master-slave.txt el cual debe ser listado como una referencia adicional al final de la pagina Agenda de la "wiki en clase.</p> |
---|
236 | </body> |
---|
237 | </html> |
---|