3752 lines
120 KiB
HTML
3752 lines
120 KiB
HTML
<!DOCTYPE html>
|
||
<html dir='ltr' lang='en'>
|
||
<head>
|
||
<meta content='width=device-width, initial-scale=1' name='viewport'/>
|
||
<title>Operational Metrics and Alerts for Distributed Software Systems</title>
|
||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
|
||
<!-- Chrome, Firefox OS and Opera -->
|
||
<meta content='#ffffff' name='theme-color'/>
|
||
<!-- Windows Phone -->
|
||
<meta content='#ffffff' name='msapplication-navbutton-color'/>
|
||
<meta content='blogger' name='generator'/>
|
||
<link href='https://www.corriganjc.net/favicon.ico' rel='icon' type='image/x-icon'/>
|
||
<link href='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' rel='canonical'/>
|
||
<link rel="alternate" type="application/atom+xml" title="The Fast Country - Atom" href="https://www.corriganjc.net/feeds/posts/default" />
|
||
<link rel="alternate" type="application/rss+xml" title="The Fast Country - RSS" href="https://www.corriganjc.net/feeds/posts/default?alt=rss" />
|
||
<link rel="service.post" type="application/atom+xml" title="The Fast Country - Atom" href="https://www.blogger.com/feeds/5208889869407022153/posts/default" />
|
||
|
||
<link rel="alternate" type="application/atom+xml" title="The Fast Country - Atom" href="https://www.corriganjc.net/feeds/8754570723222510945/comments/default" />
|
||
<!--Can't find substitution for tag [blog.ieCssRetrofitLinks]-->
|
||
<meta content='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' property='og:url'/>
|
||
<meta content='Operational Metrics and Alerts for Distributed Software Systems' property='og:title'/>
|
||
<meta content=' This post will be about operational metrics and alerts for distributed software systems. What do I mean by that? I mean the metrics and a...' property='og:description'/>
|
||
<style type='text/css'>@font-face{font-family:'Lato';font-style:italic;font-weight:700;font-display:swap;src:url(//fonts.gstatic.com/s/lato/v25/S6u_w4BMUTPHjxsI5wq_Gwfo.ttf)format('truetype');}@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/lato/v25/S6uyw4BMUTPHjx4wWw.ttf)format('truetype');}@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:swap;src:url(//fonts.gstatic.com/s/lato/v25/S6u9w4BMUTPHh6UVSwiPHA.ttf)format('truetype');}@font-face{font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/lora/v37/0QI6MX1D_JOuGQbT0gvTJPa787weuxJBkqg.ttf)format('truetype');}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-stretch:normal;font-display:swap;src:url(//fonts.gstatic.com/s/opensans/v44/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsgH1x4gaVc.ttf)format('truetype');}</style>
|
||
<style id='page-skin-1' type='text/css'><!--
|
||
/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
|
||
body{
|
||
overflow-wrap:break-word;
|
||
word-break:break-word;
|
||
word-wrap:break-word
|
||
}
|
||
.hidden{
|
||
display:none
|
||
}
|
||
.invisible{
|
||
visibility:hidden
|
||
}
|
||
.container::after,.float-container::after{
|
||
clear:both;
|
||
content:"";
|
||
display:table
|
||
}
|
||
.clearboth{
|
||
clear:both
|
||
}
|
||
#comments .comment .comment-actions,.subscribe-popup .FollowByEmail .follow-by-email-submit,.widget.Profile .profile-link{
|
||
background:0 0;
|
||
border:0;
|
||
box-shadow:none;
|
||
color:#970101;
|
||
cursor:pointer;
|
||
font-size:14px;
|
||
font-weight:700;
|
||
outline:0;
|
||
text-decoration:none;
|
||
text-transform:uppercase;
|
||
width:auto
|
||
}
|
||
.dim-overlay{
|
||
background-color:rgba(0,0,0,.54);
|
||
height:100vh;
|
||
left:0;
|
||
position:fixed;
|
||
top:0;
|
||
width:100%
|
||
}
|
||
#sharing-dim-overlay{
|
||
background-color:transparent
|
||
}
|
||
input::-ms-clear{
|
||
display:none
|
||
}
|
||
.blogger-logo,.svg-icon-24.blogger-logo{
|
||
fill:#ff9800;
|
||
opacity:1
|
||
}
|
||
.loading-spinner-large{
|
||
-webkit-animation:mspin-rotate 1.568s infinite linear;
|
||
animation:mspin-rotate 1.568s infinite linear;
|
||
height:48px;
|
||
overflow:hidden;
|
||
position:absolute;
|
||
width:48px;
|
||
z-index:200
|
||
}
|
||
.loading-spinner-large>div{
|
||
-webkit-animation:mspin-revrot 5332ms infinite steps(4);
|
||
animation:mspin-revrot 5332ms infinite steps(4)
|
||
}
|
||
.loading-spinner-large>div>div{
|
||
-webkit-animation:mspin-singlecolor-large-film 1333ms infinite steps(81);
|
||
animation:mspin-singlecolor-large-film 1333ms infinite steps(81);
|
||
background-size:100%;
|
||
height:48px;
|
||
width:3888px
|
||
}
|
||
.mspin-black-large>div>div,.mspin-grey_54-large>div>div{
|
||
background-image:url(https://www.blogblog.com/indie/mspin_black_large.svg)
|
||
}
|
||
.mspin-white-large>div>div{
|
||
background-image:url(https://www.blogblog.com/indie/mspin_white_large.svg)
|
||
}
|
||
.mspin-grey_54-large{
|
||
opacity:.54
|
||
}
|
||
@-webkit-keyframes mspin-singlecolor-large-film{
|
||
from{
|
||
-webkit-transform:translateX(0);
|
||
transform:translateX(0)
|
||
}
|
||
to{
|
||
-webkit-transform:translateX(-3888px);
|
||
transform:translateX(-3888px)
|
||
}
|
||
}
|
||
@keyframes mspin-singlecolor-large-film{
|
||
from{
|
||
-webkit-transform:translateX(0);
|
||
transform:translateX(0)
|
||
}
|
||
to{
|
||
-webkit-transform:translateX(-3888px);
|
||
transform:translateX(-3888px)
|
||
}
|
||
}
|
||
@-webkit-keyframes mspin-rotate{
|
||
from{
|
||
-webkit-transform:rotate(0);
|
||
transform:rotate(0)
|
||
}
|
||
to{
|
||
-webkit-transform:rotate(360deg);
|
||
transform:rotate(360deg)
|
||
}
|
||
}
|
||
@keyframes mspin-rotate{
|
||
from{
|
||
-webkit-transform:rotate(0);
|
||
transform:rotate(0)
|
||
}
|
||
to{
|
||
-webkit-transform:rotate(360deg);
|
||
transform:rotate(360deg)
|
||
}
|
||
}
|
||
@-webkit-keyframes mspin-revrot{
|
||
from{
|
||
-webkit-transform:rotate(0);
|
||
transform:rotate(0)
|
||
}
|
||
to{
|
||
-webkit-transform:rotate(-360deg);
|
||
transform:rotate(-360deg)
|
||
}
|
||
}
|
||
@keyframes mspin-revrot{
|
||
from{
|
||
-webkit-transform:rotate(0);
|
||
transform:rotate(0)
|
||
}
|
||
to{
|
||
-webkit-transform:rotate(-360deg);
|
||
transform:rotate(-360deg)
|
||
}
|
||
}
|
||
.skip-navigation{
|
||
background-color:#fff;
|
||
box-sizing:border-box;
|
||
color:#000;
|
||
display:block;
|
||
height:0;
|
||
left:0;
|
||
line-height:50px;
|
||
overflow:hidden;
|
||
padding-top:0;
|
||
position:fixed;
|
||
text-align:center;
|
||
top:0;
|
||
-webkit-transition:box-shadow .3s,height .3s,padding-top .3s;
|
||
transition:box-shadow .3s,height .3s,padding-top .3s;
|
||
width:100%;
|
||
z-index:900
|
||
}
|
||
.skip-navigation:focus{
|
||
box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);
|
||
height:50px
|
||
}
|
||
#main{
|
||
outline:0
|
||
}
|
||
.main-heading{
|
||
position:absolute;
|
||
clip:rect(1px,1px,1px,1px);
|
||
padding:0;
|
||
border:0;
|
||
height:1px;
|
||
width:1px;
|
||
overflow:hidden
|
||
}
|
||
.Attribution{
|
||
margin-top:1em;
|
||
text-align:center
|
||
}
|
||
.Attribution .blogger img,.Attribution .blogger svg{
|
||
vertical-align:bottom
|
||
}
|
||
.Attribution .blogger img{
|
||
margin-right:.5em
|
||
}
|
||
.Attribution div{
|
||
line-height:24px;
|
||
margin-top:.5em
|
||
}
|
||
.Attribution .copyright,.Attribution .image-attribution{
|
||
font-size:.7em;
|
||
margin-top:1.5em
|
||
}
|
||
.BLOG_mobile_video_class{
|
||
display:none
|
||
}
|
||
.bg-photo{
|
||
background-attachment:scroll!important
|
||
}
|
||
body .CSS_LIGHTBOX{
|
||
z-index:900
|
||
}
|
||
.extendable .show-less,.extendable .show-more{
|
||
border-color:#970101;
|
||
color:#970101;
|
||
margin-top:8px
|
||
}
|
||
.extendable .show-less.hidden,.extendable .show-more.hidden{
|
||
display:none
|
||
}
|
||
.inline-ad{
|
||
display:none;
|
||
max-width:100%;
|
||
overflow:hidden
|
||
}
|
||
.adsbygoogle{
|
||
display:block
|
||
}
|
||
#cookieChoiceInfo{
|
||
bottom:0;
|
||
top:auto
|
||
}
|
||
iframe.b-hbp-video{
|
||
border:0
|
||
}
|
||
.post-body img{
|
||
max-width:100%
|
||
}
|
||
.post-body iframe{
|
||
max-width:100%
|
||
}
|
||
.post-body a[imageanchor="1"]{
|
||
display:inline-block
|
||
}
|
||
.byline{
|
||
margin-right:1em
|
||
}
|
||
.byline:last-child{
|
||
margin-right:0
|
||
}
|
||
.link-copied-dialog{
|
||
max-width:520px;
|
||
outline:0
|
||
}
|
||
.link-copied-dialog .modal-dialog-buttons{
|
||
margin-top:8px
|
||
}
|
||
.link-copied-dialog .goog-buttonset-default{
|
||
background:0 0;
|
||
border:0
|
||
}
|
||
.link-copied-dialog .goog-buttonset-default:focus{
|
||
outline:0
|
||
}
|
||
.paging-control-container{
|
||
margin-bottom:16px
|
||
}
|
||
.paging-control-container .paging-control{
|
||
display:inline-block
|
||
}
|
||
.paging-control-container .comment-range-text::after,.paging-control-container .paging-control{
|
||
color:#970101
|
||
}
|
||
.paging-control-container .comment-range-text,.paging-control-container .paging-control{
|
||
margin-right:8px
|
||
}
|
||
.paging-control-container .comment-range-text::after,.paging-control-container .paging-control::after{
|
||
content:"\b7";
|
||
cursor:default;
|
||
padding-left:8px;
|
||
pointer-events:none
|
||
}
|
||
.paging-control-container .comment-range-text:last-child::after,.paging-control-container .paging-control:last-child::after{
|
||
content:none
|
||
}
|
||
.byline.reactions iframe{
|
||
height:20px
|
||
}
|
||
.b-notification{
|
||
color:#000;
|
||
background-color:#fff;
|
||
border-bottom:solid 1px #000;
|
||
box-sizing:border-box;
|
||
padding:16px 32px;
|
||
text-align:center
|
||
}
|
||
.b-notification.visible{
|
||
-webkit-transition:margin-top .3s cubic-bezier(.4,0,.2,1);
|
||
transition:margin-top .3s cubic-bezier(.4,0,.2,1)
|
||
}
|
||
.b-notification.invisible{
|
||
position:absolute
|
||
}
|
||
.b-notification-close{
|
||
position:absolute;
|
||
right:8px;
|
||
top:8px
|
||
}
|
||
.no-posts-message{
|
||
line-height:40px;
|
||
text-align:center
|
||
}
|
||
@media screen and (max-width:968px){
|
||
body.item-view .post-body a[imageanchor="1"][style*="float: left;"],body.item-view .post-body a[imageanchor="1"][style*="float: right;"]{
|
||
float:none!important;
|
||
clear:none!important
|
||
}
|
||
body.item-view .post-body a[imageanchor="1"] img{
|
||
display:block;
|
||
height:auto;
|
||
margin:0 auto
|
||
}
|
||
body.item-view .post-body>.separator:first-child>a[imageanchor="1"]:first-child{
|
||
margin-top:20px
|
||
}
|
||
.post-body a[imageanchor]{
|
||
display:block
|
||
}
|
||
body.item-view .post-body a[imageanchor="1"]{
|
||
margin-left:0!important;
|
||
margin-right:0!important
|
||
}
|
||
body.item-view .post-body a[imageanchor="1"]+a[imageanchor="1"]{
|
||
margin-top:16px
|
||
}
|
||
}
|
||
.item-control{
|
||
display:none
|
||
}
|
||
#comments{
|
||
border-top:1px dashed rgba(0,0,0,.54);
|
||
margin-top:20px;
|
||
padding:20px
|
||
}
|
||
#comments .comment-thread ol{
|
||
margin:0;
|
||
padding-left:0;
|
||
padding-left:0
|
||
}
|
||
#comments .comment .comment-replybox-single,#comments .comment-thread .comment-replies{
|
||
margin-left:60px
|
||
}
|
||
#comments .comment-thread .thread-count{
|
||
display:none
|
||
}
|
||
#comments .comment{
|
||
list-style-type:none;
|
||
padding:0 0 30px;
|
||
position:relative
|
||
}
|
||
#comments .comment .comment{
|
||
padding-bottom:8px
|
||
}
|
||
.comment .avatar-image-container{
|
||
position:absolute
|
||
}
|
||
.comment .avatar-image-container img{
|
||
border-radius:50%
|
||
}
|
||
.avatar-image-container svg,.comment .avatar-image-container .avatar-icon{
|
||
border-radius:50%;
|
||
border:solid 1px #3e3f3c;
|
||
box-sizing:border-box;
|
||
fill:#3e3f3c;
|
||
height:35px;
|
||
margin:0;
|
||
padding:7px;
|
||
width:35px
|
||
}
|
||
.comment .comment-block{
|
||
margin-top:10px;
|
||
margin-left:60px;
|
||
padding-bottom:0
|
||
}
|
||
#comments .comment-author-header-wrapper{
|
||
margin-left:40px
|
||
}
|
||
#comments .comment .thread-expanded .comment-block{
|
||
padding-bottom:20px
|
||
}
|
||
#comments .comment .comment-header .user,#comments .comment .comment-header .user a{
|
||
color:#3e3f3c;
|
||
font-style:normal;
|
||
font-weight:700
|
||
}
|
||
#comments .comment .comment-actions{
|
||
bottom:0;
|
||
margin-bottom:15px;
|
||
position:absolute
|
||
}
|
||
#comments .comment .comment-actions>*{
|
||
margin-right:8px
|
||
}
|
||
#comments .comment .comment-header .datetime{
|
||
bottom:0;
|
||
color:rgba(0,0,0,0.54);
|
||
display:inline-block;
|
||
font-size:13px;
|
||
font-style:italic;
|
||
margin-left:8px
|
||
}
|
||
#comments .comment .comment-footer .comment-timestamp a,#comments .comment .comment-header .datetime a{
|
||
color:rgba(0,0,0,0.54)
|
||
}
|
||
#comments .comment .comment-content,.comment .comment-body{
|
||
margin-top:12px;
|
||
word-break:break-word
|
||
}
|
||
.comment-body{
|
||
margin-bottom:12px
|
||
}
|
||
#comments.embed[data-num-comments="0"]{
|
||
border:0;
|
||
margin-top:0;
|
||
padding-top:0
|
||
}
|
||
#comments.embed[data-num-comments="0"] #comment-post-message,#comments.embed[data-num-comments="0"] div.comment-form>p,#comments.embed[data-num-comments="0"] p.comment-footer{
|
||
display:none
|
||
}
|
||
#comment-editor-src{
|
||
display:none
|
||
}
|
||
.comments .comments-content .loadmore.loaded{
|
||
max-height:0;
|
||
opacity:0;
|
||
overflow:hidden
|
||
}
|
||
.extendable .remaining-items{
|
||
height:0;
|
||
overflow:hidden;
|
||
-webkit-transition:height .3s cubic-bezier(.4,0,.2,1);
|
||
transition:height .3s cubic-bezier(.4,0,.2,1)
|
||
}
|
||
.extendable .remaining-items.expanded{
|
||
height:auto
|
||
}
|
||
.svg-icon-24,.svg-icon-24-button{
|
||
cursor:pointer;
|
||
height:24px;
|
||
width:24px;
|
||
min-width:24px
|
||
}
|
||
.touch-icon{
|
||
margin:-12px;
|
||
padding:12px
|
||
}
|
||
.touch-icon:active,.touch-icon:focus{
|
||
background-color:rgba(153,153,153,.4);
|
||
border-radius:50%
|
||
}
|
||
svg:not(:root).touch-icon{
|
||
overflow:visible
|
||
}
|
||
html[dir=rtl] .rtl-reversible-icon{
|
||
-webkit-transform:scaleX(-1);
|
||
-ms-transform:scaleX(-1);
|
||
transform:scaleX(-1)
|
||
}
|
||
.svg-icon-24-button,.touch-icon-button{
|
||
background:0 0;
|
||
border:0;
|
||
margin:0;
|
||
outline:0;
|
||
padding:0
|
||
}
|
||
.touch-icon-button .touch-icon:active,.touch-icon-button .touch-icon:focus{
|
||
background-color:transparent
|
||
}
|
||
.touch-icon-button:active .touch-icon,.touch-icon-button:focus .touch-icon{
|
||
background-color:rgba(153,153,153,.4);
|
||
border-radius:50%
|
||
}
|
||
.Profile .default-avatar-wrapper .avatar-icon{
|
||
border-radius:50%;
|
||
border:solid 1px #000000;
|
||
box-sizing:border-box;
|
||
fill:#000000;
|
||
margin:0
|
||
}
|
||
.Profile .individual .default-avatar-wrapper .avatar-icon{
|
||
padding:25px
|
||
}
|
||
.Profile .individual .avatar-icon,.Profile .individual .profile-img{
|
||
height:120px;
|
||
width:120px
|
||
}
|
||
.Profile .team .default-avatar-wrapper .avatar-icon{
|
||
padding:8px
|
||
}
|
||
.Profile .team .avatar-icon,.Profile .team .default-avatar-wrapper,.Profile .team .profile-img{
|
||
height:40px;
|
||
width:40px
|
||
}
|
||
.snippet-container{
|
||
margin:0;
|
||
position:relative;
|
||
overflow:hidden
|
||
}
|
||
.snippet-fade{
|
||
bottom:0;
|
||
box-sizing:border-box;
|
||
position:absolute;
|
||
width:96px
|
||
}
|
||
.snippet-fade{
|
||
right:0
|
||
}
|
||
.snippet-fade:after{
|
||
content:"\2026"
|
||
}
|
||
.snippet-fade:after{
|
||
float:right
|
||
}
|
||
.post-bottom{
|
||
-webkit-box-align:center;
|
||
-webkit-align-items:center;
|
||
-ms-flex-align:center;
|
||
align-items:center;
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
-webkit-flex-wrap:wrap;
|
||
-ms-flex-wrap:wrap;
|
||
flex-wrap:wrap
|
||
}
|
||
.post-footer{
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 1 auto;
|
||
-ms-flex:1 1 auto;
|
||
flex:1 1 auto;
|
||
-webkit-flex-wrap:wrap;
|
||
-ms-flex-wrap:wrap;
|
||
flex-wrap:wrap;
|
||
-webkit-box-ordinal-group:2;
|
||
-webkit-order:1;
|
||
-ms-flex-order:1;
|
||
order:1
|
||
}
|
||
.post-footer>*{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 1 auto;
|
||
-ms-flex:0 1 auto;
|
||
flex:0 1 auto
|
||
}
|
||
.post-footer .byline:last-child{
|
||
margin-right:1em
|
||
}
|
||
.jump-link{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto;
|
||
-webkit-box-ordinal-group:3;
|
||
-webkit-order:2;
|
||
-ms-flex-order:2;
|
||
order:2
|
||
}
|
||
.centered-top-container.sticky{
|
||
left:0;
|
||
position:fixed;
|
||
right:0;
|
||
top:0;
|
||
width:auto;
|
||
z-index:8;
|
||
-webkit-transition-property:opacity,-webkit-transform;
|
||
transition-property:opacity,-webkit-transform;
|
||
transition-property:transform,opacity;
|
||
transition-property:transform,opacity,-webkit-transform;
|
||
-webkit-transition-duration:.2s;
|
||
transition-duration:.2s;
|
||
-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);
|
||
transition-timing-function:cubic-bezier(.4,0,.2,1)
|
||
}
|
||
.centered-top-placeholder{
|
||
display:none
|
||
}
|
||
.collapsed-header .centered-top-placeholder{
|
||
display:block
|
||
}
|
||
.centered-top-container .Header .replaced h1,.centered-top-placeholder .Header .replaced h1{
|
||
display:none
|
||
}
|
||
.centered-top-container.sticky .Header .replaced h1{
|
||
display:block
|
||
}
|
||
.centered-top-container.sticky .Header .header-widget{
|
||
background:0 0
|
||
}
|
||
.centered-top-container.sticky .Header .header-image-wrapper{
|
||
display:none
|
||
}
|
||
.centered-top-container img,.centered-top-placeholder img{
|
||
max-width:100%
|
||
}
|
||
.collapsible{
|
||
-webkit-transition:height .3s cubic-bezier(.4,0,.2,1);
|
||
transition:height .3s cubic-bezier(.4,0,.2,1)
|
||
}
|
||
.collapsible,.collapsible>summary{
|
||
display:block;
|
||
overflow:hidden
|
||
}
|
||
.collapsible>:not(summary){
|
||
display:none
|
||
}
|
||
.collapsible[open]>:not(summary){
|
||
display:block
|
||
}
|
||
.collapsible:focus,.collapsible>summary:focus{
|
||
outline:0
|
||
}
|
||
.collapsible>summary{
|
||
cursor:pointer;
|
||
display:block;
|
||
padding:0
|
||
}
|
||
.collapsible:focus>summary,.collapsible>summary:focus{
|
||
background-color:transparent
|
||
}
|
||
.collapsible>summary::-webkit-details-marker{
|
||
display:none
|
||
}
|
||
.collapsible-title{
|
||
-webkit-box-align:center;
|
||
-webkit-align-items:center;
|
||
-ms-flex-align:center;
|
||
align-items:center;
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex
|
||
}
|
||
.collapsible-title .title{
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 1 auto;
|
||
-ms-flex:1 1 auto;
|
||
flex:1 1 auto;
|
||
-webkit-box-ordinal-group:1;
|
||
-webkit-order:0;
|
||
-ms-flex-order:0;
|
||
order:0;
|
||
overflow:hidden;
|
||
text-overflow:ellipsis;
|
||
white-space:nowrap
|
||
}
|
||
.collapsible-title .chevron-down,.collapsible[open] .collapsible-title .chevron-up{
|
||
display:block
|
||
}
|
||
.collapsible-title .chevron-up,.collapsible[open] .collapsible-title .chevron-down{
|
||
display:none
|
||
}
|
||
.overflowable-container{
|
||
max-height:48px;
|
||
overflow:hidden;
|
||
position:relative
|
||
}
|
||
.overflow-button{
|
||
cursor:pointer
|
||
}
|
||
#overflowable-dim-overlay{
|
||
background:0 0
|
||
}
|
||
.overflow-popup{
|
||
box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
|
||
background-color:#ffffff;
|
||
left:0;
|
||
max-width:calc(100% - 32px);
|
||
position:absolute;
|
||
top:0;
|
||
visibility:hidden;
|
||
z-index:101
|
||
}
|
||
.overflow-popup ul{
|
||
list-style:none
|
||
}
|
||
.overflow-popup .tabs li,.overflow-popup li{
|
||
display:block;
|
||
height:auto
|
||
}
|
||
.overflow-popup .tabs li{
|
||
padding-left:0;
|
||
padding-right:0
|
||
}
|
||
.overflow-button.hidden,.overflow-popup .tabs li.hidden,.overflow-popup li.hidden{
|
||
display:none
|
||
}
|
||
.ripple{
|
||
position:relative
|
||
}
|
||
.ripple>*{
|
||
z-index:1
|
||
}
|
||
.splash-wrapper{
|
||
bottom:0;
|
||
left:0;
|
||
overflow:hidden;
|
||
pointer-events:none;
|
||
position:absolute;
|
||
right:0;
|
||
top:0;
|
||
z-index:0
|
||
}
|
||
.splash{
|
||
background:#ccc;
|
||
border-radius:100%;
|
||
display:block;
|
||
opacity:.6;
|
||
position:absolute;
|
||
-webkit-transform:scale(0);
|
||
-ms-transform:scale(0);
|
||
transform:scale(0)
|
||
}
|
||
.splash.animate{
|
||
-webkit-animation:ripple-effect .4s linear;
|
||
animation:ripple-effect .4s linear
|
||
}
|
||
@-webkit-keyframes ripple-effect{
|
||
100%{
|
||
opacity:0;
|
||
-webkit-transform:scale(2.5);
|
||
transform:scale(2.5)
|
||
}
|
||
}
|
||
@keyframes ripple-effect{
|
||
100%{
|
||
opacity:0;
|
||
-webkit-transform:scale(2.5);
|
||
transform:scale(2.5)
|
||
}
|
||
}
|
||
.search{
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
line-height:24px;
|
||
width:24px
|
||
}
|
||
.search.focused{
|
||
width:100%
|
||
}
|
||
.search.focused .section{
|
||
width:100%
|
||
}
|
||
.search form{
|
||
z-index:101
|
||
}
|
||
.search h3{
|
||
display:none
|
||
}
|
||
.search form{
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 0 0;
|
||
-ms-flex:1 0 0px;
|
||
flex:1 0 0;
|
||
border-bottom:solid 1px transparent;
|
||
padding-bottom:8px
|
||
}
|
||
.search form>*{
|
||
display:none
|
||
}
|
||
.search.focused form>*{
|
||
display:block
|
||
}
|
||
.search .search-input label{
|
||
display:none
|
||
}
|
||
.centered-top-placeholder.cloned .search form{
|
||
z-index:30
|
||
}
|
||
.search.focused form{
|
||
border-color:#3e3f3c;
|
||
position:relative;
|
||
width:auto
|
||
}
|
||
.collapsed-header .centered-top-container .search.focused form{
|
||
border-bottom-color:transparent
|
||
}
|
||
.search-expand{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto
|
||
}
|
||
.search-expand-text{
|
||
display:none
|
||
}
|
||
.search-close{
|
||
display:inline;
|
||
vertical-align:middle
|
||
}
|
||
.search-input{
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 0 1px;
|
||
-ms-flex:1 0 1px;
|
||
flex:1 0 1px
|
||
}
|
||
.search-input input{
|
||
background:0 0;
|
||
border:0;
|
||
box-sizing:border-box;
|
||
color:#3e3f3c;
|
||
display:inline-block;
|
||
outline:0;
|
||
width:calc(100% - 48px)
|
||
}
|
||
.search-input input.no-cursor{
|
||
color:transparent;
|
||
text-shadow:0 0 0 #3e3f3c
|
||
}
|
||
.collapsed-header .centered-top-container .search-action,.collapsed-header .centered-top-container .search-input input{
|
||
color:#3e3f3c
|
||
}
|
||
.collapsed-header .centered-top-container .search-input input.no-cursor{
|
||
color:transparent;
|
||
text-shadow:0 0 0 #3e3f3c
|
||
}
|
||
.collapsed-header .centered-top-container .search-input input.no-cursor:focus,.search-input input.no-cursor:focus{
|
||
outline:0
|
||
}
|
||
.search-focused>*{
|
||
visibility:hidden
|
||
}
|
||
.search-focused .search,.search-focused .search-icon{
|
||
visibility:visible
|
||
}
|
||
.search.focused .search-action{
|
||
display:block
|
||
}
|
||
.search.focused .search-action:disabled{
|
||
opacity:.3
|
||
}
|
||
.sidebar-container{
|
||
background-color:#f7f7f7;
|
||
max-width:320px;
|
||
overflow-y:auto;
|
||
-webkit-transition-property:-webkit-transform;
|
||
transition-property:-webkit-transform;
|
||
transition-property:transform;
|
||
transition-property:transform,-webkit-transform;
|
||
-webkit-transition-duration:.3s;
|
||
transition-duration:.3s;
|
||
-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);
|
||
transition-timing-function:cubic-bezier(0,0,.2,1);
|
||
width:320px;
|
||
z-index:101;
|
||
-webkit-overflow-scrolling:touch
|
||
}
|
||
.sidebar-container .navigation{
|
||
line-height:0;
|
||
padding:16px
|
||
}
|
||
.sidebar-container .sidebar-back{
|
||
cursor:pointer
|
||
}
|
||
.sidebar-container .widget{
|
||
background:0 0;
|
||
margin:0 16px;
|
||
padding:16px 0
|
||
}
|
||
.sidebar-container .widget .title{
|
||
color:#000000;
|
||
margin:0
|
||
}
|
||
.sidebar-container .widget ul{
|
||
list-style:none;
|
||
margin:0;
|
||
padding:0
|
||
}
|
||
.sidebar-container .widget ul ul{
|
||
margin-left:1em
|
||
}
|
||
.sidebar-container .widget li{
|
||
font-size:16px;
|
||
line-height:normal
|
||
}
|
||
.sidebar-container .widget+.widget{
|
||
border-top:1px dashed #000000
|
||
}
|
||
.BlogArchive li{
|
||
margin:16px 0
|
||
}
|
||
.BlogArchive li:last-child{
|
||
margin-bottom:0
|
||
}
|
||
.Label li a{
|
||
display:inline-block
|
||
}
|
||
.BlogArchive .post-count,.Label .label-count{
|
||
float:right;
|
||
margin-left:.25em
|
||
}
|
||
.BlogArchive .post-count::before,.Label .label-count::before{
|
||
content:"("
|
||
}
|
||
.BlogArchive .post-count::after,.Label .label-count::after{
|
||
content:")"
|
||
}
|
||
.widget.Translate .skiptranslate>div{
|
||
display:block!important
|
||
}
|
||
.widget.Profile .profile-link{
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex
|
||
}
|
||
.widget.Profile .team-member .default-avatar-wrapper,.widget.Profile .team-member .profile-img{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto;
|
||
margin-right:1em
|
||
}
|
||
.widget.Profile .individual .profile-link{
|
||
-webkit-box-orient:vertical;
|
||
-webkit-box-direction:normal;
|
||
-webkit-flex-direction:column;
|
||
-ms-flex-direction:column;
|
||
flex-direction:column
|
||
}
|
||
.widget.Profile .team .profile-link .profile-name{
|
||
-webkit-align-self:center;
|
||
-ms-flex-item-align:center;
|
||
align-self:center;
|
||
display:block;
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 1 auto;
|
||
-ms-flex:1 1 auto;
|
||
flex:1 1 auto
|
||
}
|
||
.dim-overlay{
|
||
background-color:rgba(0,0,0,.54);
|
||
z-index:100
|
||
}
|
||
body.sidebar-visible{
|
||
overflow-y:hidden
|
||
}
|
||
@media screen and (max-width:1619px){
|
||
.sidebar-container{
|
||
bottom:0;
|
||
position:fixed;
|
||
top:0;
|
||
left:auto;
|
||
right:0
|
||
}
|
||
.sidebar-container.sidebar-invisible{
|
||
-webkit-transition-timing-function:cubic-bezier(.4,0,.6,1);
|
||
transition-timing-function:cubic-bezier(.4,0,.6,1);
|
||
-webkit-transform:translateX(320px);
|
||
-ms-transform:translateX(320px);
|
||
transform:translateX(320px)
|
||
}
|
||
}
|
||
.dialog{
|
||
box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
|
||
background:#ffffff;
|
||
box-sizing:border-box;
|
||
color:#3e3f3c;
|
||
padding:30px;
|
||
position:fixed;
|
||
text-align:center;
|
||
width:calc(100% - 24px);
|
||
z-index:101
|
||
}
|
||
.dialog input[type=email],.dialog input[type=text]{
|
||
background-color:transparent;
|
||
border:0;
|
||
border-bottom:solid 1px rgba(62,63,60,.12);
|
||
color:#3e3f3c;
|
||
display:block;
|
||
font-family:Lora, serif;
|
||
font-size:16px;
|
||
line-height:24px;
|
||
margin:auto;
|
||
padding-bottom:7px;
|
||
outline:0;
|
||
text-align:center;
|
||
width:100%
|
||
}
|
||
.dialog input[type=email]::-webkit-input-placeholder,.dialog input[type=text]::-webkit-input-placeholder{
|
||
color:#3e3f3c
|
||
}
|
||
.dialog input[type=email]::-moz-placeholder,.dialog input[type=text]::-moz-placeholder{
|
||
color:#3e3f3c
|
||
}
|
||
.dialog input[type=email]:-ms-input-placeholder,.dialog input[type=text]:-ms-input-placeholder{
|
||
color:#3e3f3c
|
||
}
|
||
.dialog input[type=email]::-ms-input-placeholder,.dialog input[type=text]::-ms-input-placeholder{
|
||
color:#3e3f3c
|
||
}
|
||
.dialog input[type=email]::placeholder,.dialog input[type=text]::placeholder{
|
||
color:#3e3f3c
|
||
}
|
||
.dialog input[type=email]:focus,.dialog input[type=text]:focus{
|
||
border-bottom:solid 2px #970101;
|
||
padding-bottom:6px
|
||
}
|
||
.dialog input.no-cursor{
|
||
color:transparent;
|
||
text-shadow:0 0 0 #3e3f3c
|
||
}
|
||
.dialog input.no-cursor:focus{
|
||
outline:0
|
||
}
|
||
.dialog input.no-cursor:focus{
|
||
outline:0
|
||
}
|
||
.dialog input[type=submit]{
|
||
font-family:Lora, serif
|
||
}
|
||
.dialog .goog-buttonset-default{
|
||
color:#970101
|
||
}
|
||
.subscribe-popup{
|
||
max-width:364px
|
||
}
|
||
.subscribe-popup h3{
|
||
color:#ffffff;
|
||
font-size:1.8em;
|
||
margin-top:0
|
||
}
|
||
.subscribe-popup .FollowByEmail h3{
|
||
display:none
|
||
}
|
||
.subscribe-popup .FollowByEmail .follow-by-email-submit{
|
||
color:#970101;
|
||
display:inline-block;
|
||
margin:0 auto;
|
||
margin-top:24px;
|
||
width:auto;
|
||
white-space:normal
|
||
}
|
||
.subscribe-popup .FollowByEmail .follow-by-email-submit:disabled{
|
||
cursor:default;
|
||
opacity:.3
|
||
}
|
||
@media (max-width:800px){
|
||
.blog-name div.widget.Subscribe{
|
||
margin-bottom:16px
|
||
}
|
||
body.item-view .blog-name div.widget.Subscribe{
|
||
margin:8px auto 16px auto;
|
||
width:100%
|
||
}
|
||
}
|
||
body#layout .bg-photo,body#layout .bg-photo-overlay{
|
||
display:none
|
||
}
|
||
body#layout .page_body{
|
||
padding:0;
|
||
position:relative;
|
||
top:0
|
||
}
|
||
body#layout .page{
|
||
display:inline-block;
|
||
left:inherit;
|
||
position:relative;
|
||
vertical-align:top;
|
||
width:540px
|
||
}
|
||
body#layout .centered{
|
||
max-width:954px
|
||
}
|
||
body#layout .navigation{
|
||
display:none
|
||
}
|
||
body#layout .sidebar-container{
|
||
display:inline-block;
|
||
width:40%
|
||
}
|
||
body#layout .hamburger-menu,body#layout .search{
|
||
display:none
|
||
}
|
||
.widget.Sharing .sharing-button{
|
||
display:none
|
||
}
|
||
.widget.Sharing .sharing-buttons li{
|
||
padding:0
|
||
}
|
||
.widget.Sharing .sharing-buttons li span{
|
||
display:none
|
||
}
|
||
.post-share-buttons{
|
||
position:relative
|
||
}
|
||
.centered-bottom .share-buttons .svg-icon-24,.share-buttons .svg-icon-24{
|
||
fill:#3e3f3c
|
||
}
|
||
.sharing-open.touch-icon-button:active .touch-icon,.sharing-open.touch-icon-button:focus .touch-icon{
|
||
background-color:transparent
|
||
}
|
||
.share-buttons{
|
||
background-color:#ffffff;
|
||
border-radius:2px;
|
||
box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
|
||
color:#3e3f3c;
|
||
list-style:none;
|
||
margin:0;
|
||
padding:8px 0;
|
||
position:absolute;
|
||
top:-11px;
|
||
min-width:200px;
|
||
z-index:101
|
||
}
|
||
.share-buttons.hidden{
|
||
display:none
|
||
}
|
||
.sharing-button{
|
||
background:0 0;
|
||
border:0;
|
||
margin:0;
|
||
outline:0;
|
||
padding:0;
|
||
cursor:pointer
|
||
}
|
||
.share-buttons li{
|
||
margin:0;
|
||
height:48px
|
||
}
|
||
.share-buttons li:last-child{
|
||
margin-bottom:0
|
||
}
|
||
.share-buttons li .sharing-platform-button{
|
||
box-sizing:border-box;
|
||
cursor:pointer;
|
||
display:block;
|
||
height:100%;
|
||
margin-bottom:0;
|
||
padding:0 16px;
|
||
position:relative;
|
||
width:100%
|
||
}
|
||
.share-buttons li .sharing-platform-button:focus,.share-buttons li .sharing-platform-button:hover{
|
||
background-color:rgba(128,128,128,.1);
|
||
outline:0
|
||
}
|
||
.share-buttons li svg[class*=" sharing-"],.share-buttons li svg[class^=sharing-]{
|
||
position:absolute;
|
||
top:10px
|
||
}
|
||
.share-buttons li span.sharing-platform-button{
|
||
position:relative;
|
||
top:0
|
||
}
|
||
.share-buttons li .platform-sharing-text{
|
||
display:block;
|
||
font-size:16px;
|
||
line-height:48px;
|
||
white-space:nowrap
|
||
}
|
||
.share-buttons li .platform-sharing-text{
|
||
margin-left:56px
|
||
}
|
||
.flat-button{
|
||
cursor:pointer;
|
||
display:inline-block;
|
||
font-weight:700;
|
||
text-transform:uppercase;
|
||
border-radius:2px;
|
||
padding:8px;
|
||
margin:-8px
|
||
}
|
||
.flat-icon-button{
|
||
background:0 0;
|
||
border:0;
|
||
margin:0;
|
||
outline:0;
|
||
padding:0;
|
||
margin:-12px;
|
||
padding:12px;
|
||
cursor:pointer;
|
||
box-sizing:content-box;
|
||
display:inline-block;
|
||
line-height:0
|
||
}
|
||
.flat-icon-button,.flat-icon-button .splash-wrapper{
|
||
border-radius:50%
|
||
}
|
||
.flat-icon-button .splash.animate{
|
||
-webkit-animation-duration:.3s;
|
||
animation-duration:.3s
|
||
}
|
||
h1,h2,h3,h4,h5,h6{
|
||
margin:0
|
||
}
|
||
.post-body h1,.post-body h2,.post-body h3,.post-body h4,.post-body h5,.post-body h6{
|
||
margin:1em 0
|
||
}
|
||
.action-link,a{
|
||
color:#970101;
|
||
cursor:pointer;
|
||
text-decoration:none
|
||
}
|
||
.action-link:visited,a:visited{
|
||
color:#970101
|
||
}
|
||
.action-link:hover,a:hover{
|
||
color:#970101
|
||
}
|
||
body{
|
||
background-color:#ffffff;
|
||
color:#3e3f3c;
|
||
font:400 20px Lora, serif;
|
||
margin:0 auto
|
||
}
|
||
.unused{
|
||
background:#ffffff none repeat scroll top left
|
||
}
|
||
.dim-overlay{
|
||
z-index:100
|
||
}
|
||
.all-container{
|
||
min-height:100vh;
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
-webkit-box-orient:vertical;
|
||
-webkit-box-direction:normal;
|
||
-webkit-flex-direction:column;
|
||
-ms-flex-direction:column;
|
||
flex-direction:column
|
||
}
|
||
body.sidebar-visible .all-container{
|
||
overflow-y:scroll
|
||
}
|
||
.page{
|
||
max-width:1280px;
|
||
width:100%
|
||
}
|
||
.Blog{
|
||
padding:0;
|
||
padding-left:136px
|
||
}
|
||
.main_content_container{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto;
|
||
margin:0 auto;
|
||
max-width:1600px;
|
||
width:100%
|
||
}
|
||
.centered-top-container{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto
|
||
}
|
||
.centered-top,.centered-top-placeholder{
|
||
box-sizing:border-box;
|
||
width:100%
|
||
}
|
||
.centered-top{
|
||
box-sizing:border-box;
|
||
margin:0 auto;
|
||
max-width:1280px;
|
||
padding:44px 136px 32px 136px;
|
||
width:100%
|
||
}
|
||
.centered-top h3{
|
||
color:rgba(255,255,255,0.54);
|
||
font:700 14px Lato, sans-serif
|
||
}
|
||
.centered{
|
||
width:100%
|
||
}
|
||
.centered-top-firstline{
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
position:relative;
|
||
width:100%
|
||
}
|
||
.main_header_elements{
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 1 auto;
|
||
-ms-flex:0 1 auto;
|
||
flex:0 1 auto;
|
||
-webkit-box-ordinal-group:2;
|
||
-webkit-order:1;
|
||
-ms-flex-order:1;
|
||
order:1;
|
||
overflow-x:hidden;
|
||
width:100%
|
||
}
|
||
html[dir=rtl] .main_header_elements{
|
||
-webkit-box-ordinal-group:3;
|
||
-webkit-order:2;
|
||
-ms-flex-order:2;
|
||
order:2
|
||
}
|
||
body.search-view .centered-top.search-focused .blog-name{
|
||
display:none
|
||
}
|
||
.widget.Header img{
|
||
max-width:100%
|
||
}
|
||
.blog-name{
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 1 auto;
|
||
-ms-flex:1 1 auto;
|
||
flex:1 1 auto;
|
||
min-width:0;
|
||
-webkit-box-ordinal-group:2;
|
||
-webkit-order:1;
|
||
-ms-flex-order:1;
|
||
order:1;
|
||
-webkit-transition:opacity .2s cubic-bezier(.4,0,.2,1);
|
||
transition:opacity .2s cubic-bezier(.4,0,.2,1)
|
||
}
|
||
.subscribe-section-container{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto;
|
||
-webkit-box-ordinal-group:3;
|
||
-webkit-order:2;
|
||
-ms-flex-order:2;
|
||
order:2
|
||
}
|
||
.search{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto;
|
||
-webkit-box-ordinal-group:4;
|
||
-webkit-order:3;
|
||
-ms-flex-order:3;
|
||
order:3;
|
||
line-height:24px
|
||
}
|
||
.search svg{
|
||
margin-bottom:0px;
|
||
margin-top:0px;
|
||
padding-bottom:0;
|
||
padding-top:0
|
||
}
|
||
.search,.search.focused{
|
||
display:block;
|
||
width:auto
|
||
}
|
||
.search .section{
|
||
opacity:0;
|
||
position:absolute;
|
||
right:0;
|
||
top:0;
|
||
-webkit-transition:opacity .2s cubic-bezier(.4,0,.2,1);
|
||
transition:opacity .2s cubic-bezier(.4,0,.2,1)
|
||
}
|
||
.search-expand{
|
||
background:0 0;
|
||
border:0;
|
||
margin:0;
|
||
outline:0;
|
||
padding:0;
|
||
display:block
|
||
}
|
||
.search.focused .search-expand{
|
||
visibility:hidden
|
||
}
|
||
.hamburger-menu{
|
||
float:right;
|
||
height:24px
|
||
}
|
||
.search-expand,.subscribe-section-container{
|
||
margin-left:44px
|
||
}
|
||
.hamburger-section{
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 0 auto;
|
||
-ms-flex:1 0 auto;
|
||
flex:1 0 auto;
|
||
margin-left:44px;
|
||
-webkit-box-ordinal-group:3;
|
||
-webkit-order:2;
|
||
-ms-flex-order:2;
|
||
order:2
|
||
}
|
||
html[dir=rtl] .hamburger-section{
|
||
-webkit-box-ordinal-group:2;
|
||
-webkit-order:1;
|
||
-ms-flex-order:1;
|
||
order:1
|
||
}
|
||
.search-expand-icon{
|
||
display:none
|
||
}
|
||
.search-expand-text{
|
||
display:block
|
||
}
|
||
.search-input{
|
||
width:100%
|
||
}
|
||
.search-focused .hamburger-section{
|
||
visibility:visible
|
||
}
|
||
.centered-top-secondline .PageList ul{
|
||
margin:0;
|
||
max-height:288px;
|
||
overflow-y:hidden
|
||
}
|
||
.centered-top-secondline .PageList li{
|
||
margin-right:30px
|
||
}
|
||
.centered-top-secondline .PageList li:first-child a{
|
||
padding-left:0
|
||
}
|
||
.centered-top-secondline .PageList .overflow-popup ul{
|
||
overflow-y:auto
|
||
}
|
||
.centered-top-secondline .PageList .overflow-popup li{
|
||
display:block
|
||
}
|
||
.centered-top-secondline .PageList .overflow-popup li.hidden{
|
||
display:none
|
||
}
|
||
.overflowable-contents li{
|
||
display:inline-block;
|
||
height:48px
|
||
}
|
||
.sticky .blog-name{
|
||
overflow:hidden
|
||
}
|
||
.sticky .blog-name .widget.Header h1{
|
||
overflow:hidden;
|
||
text-overflow:ellipsis;
|
||
white-space:nowrap
|
||
}
|
||
.sticky .blog-name .widget.Header p,.sticky .centered-top-secondline{
|
||
display:none
|
||
}
|
||
.centered-top-container,.centered-top-placeholder{
|
||
background:#000000 none repeat scroll top left
|
||
}
|
||
.centered-top .svg-icon-24{
|
||
fill:#ffffff
|
||
}
|
||
.blog-name h1,.blog-name h1 a{
|
||
color:#f44d14;
|
||
font:700 24px Lato, sans-serif;
|
||
line-height:24px;
|
||
text-transform:uppercase
|
||
}
|
||
.widget.Header .header-widget p{
|
||
font:700 14px Lato, sans-serif;
|
||
font-style:italic;
|
||
color:rgba(255,255,255,0.54);
|
||
line-height:1.6;
|
||
max-width:676px
|
||
}
|
||
.centered-top .flat-button{
|
||
color:#ffffff;
|
||
cursor:pointer;
|
||
font:700 14px Lato, sans-serif;
|
||
line-height:24px;
|
||
text-transform:uppercase;
|
||
-webkit-transition:opacity .2s cubic-bezier(.4,0,.2,1);
|
||
transition:opacity .2s cubic-bezier(.4,0,.2,1)
|
||
}
|
||
.subscribe-button{
|
||
background:0 0;
|
||
border:0;
|
||
margin:0;
|
||
outline:0;
|
||
padding:0;
|
||
display:block
|
||
}
|
||
html[dir=ltr] .search form{
|
||
margin-right:12px
|
||
}
|
||
.search.focused .section{
|
||
opacity:1;
|
||
margin-right:36px;
|
||
width:calc(100% - 36px)
|
||
}
|
||
.search input{
|
||
border:0;
|
||
color:rgba(255,255,255,0.54);
|
||
font:700 16px Lato, sans-serif;
|
||
line-height:24px;
|
||
outline:0;
|
||
width:100%
|
||
}
|
||
.search form{
|
||
padding-bottom:0
|
||
}
|
||
.search input[type=submit]{
|
||
display:none
|
||
}
|
||
.search input::-webkit-input-placeholder{
|
||
text-transform:uppercase
|
||
}
|
||
.search input::-moz-placeholder{
|
||
text-transform:uppercase
|
||
}
|
||
.search input:-ms-input-placeholder{
|
||
text-transform:uppercase
|
||
}
|
||
.search input::-ms-input-placeholder{
|
||
text-transform:uppercase
|
||
}
|
||
.search input::placeholder{
|
||
text-transform:uppercase
|
||
}
|
||
.centered-top-secondline .dim-overlay,.search .dim-overlay{
|
||
background:0 0
|
||
}
|
||
.centered-top-secondline .PageList .overflow-button a,.centered-top-secondline .PageList li a{
|
||
color:#ffffff;
|
||
font:700 14px Lato, sans-serif;
|
||
line-height:48px;
|
||
padding:12px
|
||
}
|
||
.centered-top-secondline .PageList li.selected a{
|
||
color:#ffffff
|
||
}
|
||
.centered-top-secondline .overflow-popup .PageList li a{
|
||
color:#3e3f3c
|
||
}
|
||
.PageList ul{
|
||
padding:0
|
||
}
|
||
.sticky .search form{
|
||
border:0
|
||
}
|
||
.sticky{
|
||
box-shadow:0 0 20px 0 rgba(0,0,0,.7)
|
||
}
|
||
.sticky .centered-top{
|
||
padding-bottom:0;
|
||
padding-top:0
|
||
}
|
||
.sticky .blog-name h1,.sticky .search,.sticky .search-expand,.sticky .subscribe-button{
|
||
line-height:40px
|
||
}
|
||
.sticky .hamburger-section,.sticky .search-expand,.sticky .search.focused .search-submit{
|
||
-webkit-box-align:center;
|
||
-webkit-align-items:center;
|
||
-ms-flex-align:center;
|
||
align-items:center;
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
height:40px
|
||
}
|
||
.subscribe-popup h3{
|
||
color:rgba(0,0,0,0.84);
|
||
font:700 24px Lato, sans-serif;
|
||
margin-bottom:24px
|
||
}
|
||
.subscribe-popup div.widget.FollowByEmail .follow-by-email-address{
|
||
color:rgba(0,0,0,0.84);
|
||
font:700 14px Lato, sans-serif
|
||
}
|
||
.subscribe-popup div.widget.FollowByEmail .follow-by-email-submit{
|
||
color:#3e3f3c;
|
||
font:700 14px Lato, sans-serif;
|
||
margin-top:24px
|
||
}
|
||
.post-content{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 1 auto;
|
||
-ms-flex:0 1 auto;
|
||
flex:0 1 auto;
|
||
-webkit-box-ordinal-group:2;
|
||
-webkit-order:1;
|
||
-ms-flex-order:1;
|
||
order:1;
|
||
margin-right:76px;
|
||
max-width:676px;
|
||
width:100%
|
||
}
|
||
.post-filter-message{
|
||
background-color:#970101;
|
||
color:#ffffff;
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
font:700 16px Lato, sans-serif;
|
||
margin:40px 136px 48px 136px;
|
||
padding:10px;
|
||
position:relative
|
||
}
|
||
.post-filter-message>*{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto
|
||
}
|
||
.post-filter-message .search-query{
|
||
font-style:italic;
|
||
quotes:"\201c" "\201d" "\2018" "\2019"
|
||
}
|
||
.post-filter-message .search-query::before{
|
||
content:open-quote
|
||
}
|
||
.post-filter-message .search-query::after{
|
||
content:close-quote
|
||
}
|
||
.post-filter-message div{
|
||
display:inline-block
|
||
}
|
||
.post-filter-message a{
|
||
color:#ffffff;
|
||
display:inline-block;
|
||
text-transform:uppercase
|
||
}
|
||
.post-filter-description{
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 1 auto;
|
||
-ms-flex:1 1 auto;
|
||
flex:1 1 auto;
|
||
margin-right:16px
|
||
}
|
||
.post-title{
|
||
margin-top:0
|
||
}
|
||
body.feed-view .post-outer-container{
|
||
margin-top:85px
|
||
}
|
||
body.feed-view .feed-message+.post-outer-container,body.feed-view .post-outer-container:first-child{
|
||
margin-top:0
|
||
}
|
||
.post-outer{
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
position:relative
|
||
}
|
||
.post-outer .snippet-thumbnail{
|
||
-webkit-box-align:center;
|
||
-webkit-align-items:center;
|
||
-ms-flex-align:center;
|
||
align-items:center;
|
||
background:#000;
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto;
|
||
height:256px;
|
||
-webkit-box-pack:center;
|
||
-webkit-justify-content:center;
|
||
-ms-flex-pack:center;
|
||
justify-content:center;
|
||
margin-right:136px;
|
||
overflow:hidden;
|
||
-webkit-box-ordinal-group:3;
|
||
-webkit-order:2;
|
||
-ms-flex-order:2;
|
||
order:2;
|
||
position:relative;
|
||
width:256px
|
||
}
|
||
.post-outer .thumbnail-empty{
|
||
background:0 0
|
||
}
|
||
.post-outer .snippet-thumbnail-img{
|
||
background-position:center;
|
||
background-repeat:no-repeat;
|
||
background-size:cover;
|
||
width:100%;
|
||
height:100%
|
||
}
|
||
.post-outer .snippet-thumbnail img{
|
||
max-height:100%
|
||
}
|
||
.post-title-container{
|
||
margin-bottom:16px
|
||
}
|
||
.post-bottom{
|
||
-webkit-box-align:baseline;
|
||
-webkit-align-items:baseline;
|
||
-ms-flex-align:baseline;
|
||
align-items:baseline;
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
-webkit-box-pack:justify;
|
||
-webkit-justify-content:space-between;
|
||
-ms-flex-pack:justify;
|
||
justify-content:space-between
|
||
}
|
||
.post-share-buttons-bottom{
|
||
float:left
|
||
}
|
||
.footer{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto;
|
||
margin:auto auto 0 auto;
|
||
padding-bottom:32px;
|
||
width:auto
|
||
}
|
||
.post-header-container{
|
||
margin-bottom:12px
|
||
}
|
||
.post-header-container .post-share-buttons-top{
|
||
float:right
|
||
}
|
||
.post-header-container .post-header{
|
||
float:left
|
||
}
|
||
.byline{
|
||
display:inline-block;
|
||
margin-bottom:8px
|
||
}
|
||
.byline,.byline a,.flat-button{
|
||
color:#3e3f3c;
|
||
font:700 14px Lato, sans-serif
|
||
}
|
||
.flat-button.ripple .splash{
|
||
background-color:rgba(62,63,60,.4)
|
||
}
|
||
.flat-button.ripple:hover{
|
||
background-color:rgba(62,63,60,.12)
|
||
}
|
||
.post-footer .byline{
|
||
text-transform:uppercase
|
||
}
|
||
.post-comment-link{
|
||
line-height:1
|
||
}
|
||
.blog-pager{
|
||
float:right;
|
||
margin-right:468px;
|
||
margin-top:48px
|
||
}
|
||
.FeaturedPost{
|
||
margin-bottom:56px
|
||
}
|
||
.FeaturedPost h3{
|
||
margin:16px 136px 8px 136px
|
||
}
|
||
.shown-ad{
|
||
margin-bottom:85px;
|
||
margin-top:85px
|
||
}
|
||
.shown-ad .inline-ad{
|
||
display:block;
|
||
max-width:676px
|
||
}
|
||
body.feed-view .shown-ad:last-child{
|
||
display:none
|
||
}
|
||
.post-title,.post-title a{
|
||
color:#3e3f3c;
|
||
font:700 36px Lato, sans-serif;
|
||
line-height:1.3333333333
|
||
}
|
||
.feed-message{
|
||
color:rgba(0,0,0,0.54);
|
||
font:700 16px Lato, sans-serif;
|
||
margin-bottom:52px
|
||
}
|
||
.post-header-container .byline,.post-header-container .byline a{
|
||
color:rgba(0,0,0,0.54);
|
||
font:700 16px Lato, sans-serif
|
||
}
|
||
.post-header-container .byline.post-author:not(:last-child)::after{
|
||
content:"\b7"
|
||
}
|
||
.post-header-container .byline.post-author:not(:last-child){
|
||
margin-right:0
|
||
}
|
||
.post-snippet-container{
|
||
font:400 20px Lora, serif
|
||
}
|
||
.sharing-button{
|
||
text-transform:uppercase;
|
||
word-break:normal
|
||
}
|
||
.post-outer-container .svg-icon-24{
|
||
fill:#3e3f3c
|
||
}
|
||
.post-body{
|
||
color:#3e3f3c;
|
||
font:400 20px Lora, serif;
|
||
line-height:2;
|
||
margin-bottom:24px
|
||
}
|
||
.blog-pager .blog-pager-older-link{
|
||
color:#3e3f3c;
|
||
float:right;
|
||
font:700 14px Lato, sans-serif;
|
||
text-transform:uppercase
|
||
}
|
||
.no-posts-message{
|
||
margin:32px
|
||
}
|
||
body.item-view .Blog .post-title-container{
|
||
background-color:#f44d14;
|
||
box-sizing:border-box;
|
||
margin-bottom:-1px;
|
||
padding-bottom:86px;
|
||
padding-right:290px;
|
||
padding-left:140px;
|
||
padding-top:124px;
|
||
width:100%
|
||
}
|
||
body.item-view .Blog .post-title,body.item-view .Blog .post-title a{
|
||
color:#ffffff;
|
||
font:700 48px Lato, sans-serif;
|
||
line-height:1.4166666667;
|
||
margin-bottom:0
|
||
}
|
||
body.item-view .Blog{
|
||
margin:0;
|
||
margin-bottom:85px;
|
||
padding:0
|
||
}
|
||
body.item-view .Blog .post-content{
|
||
margin-right:0;
|
||
max-width:none
|
||
}
|
||
body.item-view .comments,body.item-view .shown-ad,body.item-view .widget.Blog .post-bottom{
|
||
margin-bottom:0;
|
||
margin-right:400px;
|
||
margin-left:140px;
|
||
margin-top:0
|
||
}
|
||
body.item-view .widget.Header header p{
|
||
max-width:740px
|
||
}
|
||
body.item-view .shown-ad{
|
||
margin-bottom:24px;
|
||
margin-top:24px
|
||
}
|
||
body.item-view .Blog .post-header-container{
|
||
padding-left:140px
|
||
}
|
||
body.item-view .Blog .post-header-container .post-author-profile-pic-container{
|
||
background-color:#f44d14;
|
||
border-top:1px solid #f44d14;
|
||
float:left;
|
||
height:84px;
|
||
margin-right:24px;
|
||
margin-left:-140px;
|
||
padding-left:140px
|
||
}
|
||
body.item-view .Blog .post-author-profile-pic{
|
||
max-height:100%
|
||
}
|
||
body.item-view .Blog .post-header{
|
||
float:left;
|
||
height:84px
|
||
}
|
||
body.item-view .Blog .post-header>*{
|
||
position:relative;
|
||
top:50%;
|
||
-webkit-transform:translateY(-50%);
|
||
-ms-transform:translateY(-50%);
|
||
transform:translateY(-50%)
|
||
}
|
||
body.item-view .post-body{
|
||
color:#3e3f3c;
|
||
font:400 20px Lora, serif;
|
||
line-height:2
|
||
}
|
||
body.item-view .Blog .post-body-container{
|
||
padding-right:290px;
|
||
position:relative;
|
||
margin-left:140px;
|
||
margin-top:20px;
|
||
margin-bottom:32px
|
||
}
|
||
body.item-view .Blog .post-body{
|
||
margin-bottom:0;
|
||
margin-right:110px
|
||
}
|
||
body.item-view .Blog .post-body::first-letter{
|
||
float:left;
|
||
font-size:80px;
|
||
font-weight:600;
|
||
line-height:1;
|
||
margin-right:16px
|
||
}
|
||
body.item-view .Blog .post-body div[style*="text-align: center"]::first-letter{
|
||
float:none;
|
||
font-size:inherit;
|
||
font-weight:inherit;
|
||
line-height:inherit;
|
||
margin-right:0
|
||
}
|
||
body.item-view .Blog .post-body::first-line{
|
||
color:#3e3f3c
|
||
}
|
||
body.item-view .Blog .post-body-container .post-sidebar{
|
||
right:0;
|
||
position:absolute;
|
||
top:0;
|
||
width:290px
|
||
}
|
||
body.item-view .Blog .post-body-container .post-sidebar .sharing-button{
|
||
display:inline-block
|
||
}
|
||
.widget.Attribution{
|
||
clear:both;
|
||
font:600 14px Open Sans, sans-serif;
|
||
padding-top:2em
|
||
}
|
||
.widget.Attribution .blogger{
|
||
margin:12px
|
||
}
|
||
.widget.Attribution svg{
|
||
fill:rgba(0, 0, 0, 0.54)
|
||
}
|
||
body.item-view .PopularPosts{
|
||
margin-left:140px
|
||
}
|
||
body.item-view .PopularPosts .widget-content>ul{
|
||
padding-left:0
|
||
}
|
||
body.item-view .PopularPosts .widget-content>ul>li{
|
||
display:block
|
||
}
|
||
body.item-view .PopularPosts .post-content{
|
||
margin-right:76px;
|
||
max-width:664px
|
||
}
|
||
body.item-view .PopularPosts .post:not(:last-child){
|
||
margin-bottom:85px
|
||
}
|
||
body.item-view .post-body-container img{
|
||
height:auto;
|
||
max-width:100%
|
||
}
|
||
body.item-view .PopularPosts>.title{
|
||
color:rgba(0,0,0,0.54);
|
||
font:700 16px Lato, sans-serif;
|
||
margin-bottom:36px
|
||
}
|
||
body.item-view .post-sidebar .post-labels-sidebar{
|
||
margin-top:48px;
|
||
min-width:150px
|
||
}
|
||
body.item-view .post-sidebar .post-labels-sidebar h3{
|
||
color:#3e3f3c;
|
||
font:700 14px Lato, sans-serif;
|
||
margin-bottom:16px
|
||
}
|
||
body.item-view .post-sidebar .post-labels-sidebar a{
|
||
color:#3e3f3c;
|
||
display:block;
|
||
font:400 14px Lato, sans-serif;
|
||
font-style:italic;
|
||
line-height:2
|
||
}
|
||
body.item-view blockquote{
|
||
font:italic 700 36px Lato, sans-serif;
|
||
font-style:italic;
|
||
quotes:"\201c" "\201d" "\2018" "\2019"
|
||
}
|
||
body.item-view blockquote::before{
|
||
content:open-quote
|
||
}
|
||
body.item-view blockquote::after{
|
||
content:close-quote
|
||
}
|
||
body.item-view .post-bottom{
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
float:none
|
||
}
|
||
body.item-view .widget.Blog .post-share-buttons-bottom{
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 1 auto;
|
||
-ms-flex:0 1 auto;
|
||
flex:0 1 auto;
|
||
-webkit-box-ordinal-group:3;
|
||
-webkit-order:2;
|
||
-ms-flex-order:2;
|
||
order:2
|
||
}
|
||
body.item-view .widget.Blog .post-footer{
|
||
line-height:1;
|
||
margin-right:24px
|
||
}
|
||
.widget.Blog body.item-view .post-bottom{
|
||
margin-right:0;
|
||
margin-bottom:80px
|
||
}
|
||
body.item-view .post-footer .post-labels .byline-label{
|
||
color:#3e3f3c;
|
||
font:700 14px Lato, sans-serif
|
||
}
|
||
body.item-view .post-footer .post-labels a{
|
||
color:#3e3f3c;
|
||
display:inline-block;
|
||
font:400 14px Lato, sans-serif;
|
||
line-height:2
|
||
}
|
||
body.item-view .post-footer .post-labels a:not(:last-child)::after{
|
||
content:", "
|
||
}
|
||
body.item-view #comments{
|
||
border-top:0;
|
||
padding:0
|
||
}
|
||
body.item-view #comments h3.title{
|
||
color:rgba(0,0,0,0.54);
|
||
font:700 16px Lato, sans-serif;
|
||
margin-bottom:48px
|
||
}
|
||
body.item-view #comments .comment-form h4{
|
||
position:absolute;
|
||
clip:rect(1px,1px,1px,1px);
|
||
padding:0;
|
||
border:0;
|
||
height:1px;
|
||
width:1px;
|
||
overflow:hidden
|
||
}
|
||
.heroPost{
|
||
display:-webkit-box;
|
||
display:-webkit-flex;
|
||
display:-ms-flexbox;
|
||
display:flex;
|
||
position:relative
|
||
}
|
||
.widget.Blog .heroPost{
|
||
margin-left:-136px
|
||
}
|
||
.heroPost .big-post-title .post-snippet{
|
||
color:#ffffff
|
||
}
|
||
.heroPost.noimage .post-snippet{
|
||
color:#3e3f3c
|
||
}
|
||
.heroPost .big-post-image-top{
|
||
display:none;
|
||
background-size:cover;
|
||
background-position:center
|
||
}
|
||
.heroPost .big-post-title{
|
||
background-color:#f44d14;
|
||
box-sizing:border-box;
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 1 auto;
|
||
-ms-flex:1 1 auto;
|
||
flex:1 1 auto;
|
||
max-width:888px;
|
||
min-width:0;
|
||
padding-bottom:84px;
|
||
padding-right:76px;
|
||
padding-left:136px;
|
||
padding-top:76px
|
||
}
|
||
.heroPost.noimage .big-post-title{
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 0 auto;
|
||
-ms-flex:1 0 auto;
|
||
flex:1 0 auto;
|
||
max-width:480px;
|
||
width:480px
|
||
}
|
||
.heroPost .big-post-title h3{
|
||
margin:0 0 24px
|
||
}
|
||
.heroPost .big-post-title h3 a{
|
||
color:#ffffff
|
||
}
|
||
.heroPost .big-post-title .post-body{
|
||
color:#ffffff
|
||
}
|
||
.heroPost .big-post-title .item-byline{
|
||
color:#ffffff;
|
||
margin-bottom:24px
|
||
}
|
||
.heroPost .big-post-title .item-byline .post-timestamp{
|
||
display:block
|
||
}
|
||
.heroPost .big-post-title .item-byline a{
|
||
color:#ffffff
|
||
}
|
||
.heroPost .byline,.heroPost .byline a,.heroPost .flat-button{
|
||
color:#ffffff
|
||
}
|
||
.heroPost .flat-button.ripple .splash{
|
||
background-color:rgba(255,255,255,.4)
|
||
}
|
||
.heroPost .flat-button.ripple:hover{
|
||
background-color:rgba(255,255,255,.12)
|
||
}
|
||
.heroPost .big-post-image{
|
||
background-position:center;
|
||
background-repeat:no-repeat;
|
||
background-size:cover;
|
||
-webkit-box-flex:0;
|
||
-webkit-flex:0 0 auto;
|
||
-ms-flex:0 0 auto;
|
||
flex:0 0 auto;
|
||
width:392px
|
||
}
|
||
.heroPost .big-post-text{
|
||
background-color:#e7e8e0;
|
||
box-sizing:border-box;
|
||
color:#3e3f3c;
|
||
-webkit-box-flex:1;
|
||
-webkit-flex:1 1 auto;
|
||
-ms-flex:1 1 auto;
|
||
flex:1 1 auto;
|
||
min-width:0;
|
||
padding:48px
|
||
}
|
||
.heroPost .big-post-text .post-snippet-fade{
|
||
color:#3e3f3c;
|
||
background:-webkit-linear-gradient(right,#e7e8e0,rgba(231, 232, 224, 0));
|
||
background:linear-gradient(to left,#e7e8e0,rgba(231, 232, 224, 0))
|
||
}
|
||
.heroPost .big-post-text .byline,.heroPost .big-post-text .byline a,.heroPost .big-post-text .jump-link,.heroPost .big-post-text .sharing-button{
|
||
color:#3e3f3c
|
||
}
|
||
.heroPost .big-post-text .snippet-item::first-letter{
|
||
color:#f44d14;
|
||
float:left;
|
||
font-weight:700;
|
||
margin-right:12px
|
||
}
|
||
.sidebar-container{
|
||
background-color:#ffffff
|
||
}
|
||
body.sidebar-visible .sidebar-container{
|
||
box-shadow:0 0 20px 0 rgba(0,0,0,.7)
|
||
}
|
||
.sidebar-container .svg-icon-24{
|
||
fill:#000000
|
||
}
|
||
.sidebar-container .navigation .sidebar-back{
|
||
float:right
|
||
}
|
||
.sidebar-container .widget{
|
||
padding-right:16px;
|
||
margin-right:0;
|
||
margin-left:38px
|
||
}
|
||
.sidebar-container .widget+.widget{
|
||
border-top:solid 1px #bdbdbd
|
||
}
|
||
.sidebar-container .widget .title{
|
||
font:400 16px Lato, sans-serif
|
||
}
|
||
.collapsible{
|
||
width:100%
|
||
}
|
||
.widget.Profile{
|
||
border-top:0;
|
||
margin:0;
|
||
margin-left:38px;
|
||
margin-top:24px;
|
||
padding-right:0
|
||
}
|
||
body.sidebar-visible .widget.Profile{
|
||
margin-left:0
|
||
}
|
||
.widget.Profile h2{
|
||
display:none
|
||
}
|
||
.widget.Profile h3.title{
|
||
color:#000000;
|
||
margin:16px 32px
|
||
}
|
||
.widget.Profile .individual{
|
||
text-align:center
|
||
}
|
||
.widget.Profile .individual .default-avatar-wrapper .avatar-icon{
|
||
margin:auto
|
||
}
|
||
.widget.Profile .team{
|
||
margin-bottom:32px;
|
||
margin-left:32px;
|
||
margin-right:32px
|
||
}
|
||
.widget.Profile ul{
|
||
list-style:none;
|
||
padding:0
|
||
}
|
||
.widget.Profile li{
|
||
margin:10px 0;
|
||
text-align:left
|
||
}
|
||
.widget.Profile .profile-img{
|
||
border-radius:50%;
|
||
float:none
|
||
}
|
||
.widget.Profile .profile-info{
|
||
margin-bottom:12px
|
||
}
|
||
.profile-snippet-fade{
|
||
background:-webkit-linear-gradient(right,#ffffff 0,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
|
||
background:linear-gradient(to left,#ffffff 0,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
|
||
height:1.7em;
|
||
position:absolute;
|
||
right:16px;
|
||
top:11.7em;
|
||
width:96px
|
||
}
|
||
.profile-snippet-fade::after{
|
||
content:"\2026";
|
||
float:right
|
||
}
|
||
.widget.Profile .profile-location{
|
||
color:#000000;
|
||
font-size:16px;
|
||
margin:0;
|
||
opacity:.74
|
||
}
|
||
.widget.Profile .team-member .profile-link::after{
|
||
clear:both;
|
||
content:"";
|
||
display:table
|
||
}
|
||
.widget.Profile .team-member .profile-name{
|
||
word-break:break-word
|
||
}
|
||
.widget.Profile .profile-datablock .profile-link{
|
||
color:#000000;
|
||
font:700 16px Lato, sans-serif;
|
||
font-size:24px;
|
||
text-transform:none;
|
||
word-break:break-word
|
||
}
|
||
.widget.Profile .profile-datablock .profile-link+div{
|
||
margin-top:16px!important
|
||
}
|
||
.widget.Profile .profile-link{
|
||
font:700 16px Lato, sans-serif;
|
||
font-size:14px
|
||
}
|
||
.widget.Profile .profile-textblock{
|
||
color:#000000;
|
||
font-size:14px;
|
||
line-height:24px;
|
||
margin:0 18px;
|
||
opacity:.74;
|
||
overflow:hidden;
|
||
position:relative;
|
||
word-break:break-word
|
||
}
|
||
.widget.Label .list-label-widget-content li a{
|
||
width:100%;
|
||
word-wrap:break-word
|
||
}
|
||
.extendable .show-less,.extendable .show-more{
|
||
font:700 16px Lato, sans-serif;
|
||
font-size:14px;
|
||
margin:0 -8px
|
||
}
|
||
.widget.BlogArchive .post-count{
|
||
color:#3e3f3c
|
||
}
|
||
.Label li{
|
||
margin:16px 0
|
||
}
|
||
.Label li:last-child{
|
||
margin-bottom:0
|
||
}
|
||
.post-snippet.snippet-container{
|
||
max-height:160px
|
||
}
|
||
.post-snippet .snippet-item{
|
||
line-height:40px
|
||
}
|
||
.post-snippet .snippet-fade{
|
||
background:-webkit-linear-gradient(left,#ffffff 0,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
|
||
background:linear-gradient(to left,#ffffff 0,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
|
||
color:#3e3f3c;
|
||
height:40px
|
||
}
|
||
.hero-post-snippet.snippet-container{
|
||
max-height:160px
|
||
}
|
||
.hero-post-snippet .snippet-item{
|
||
line-height:40px
|
||
}
|
||
.hero-post-snippet .snippet-fade{
|
||
background:-webkit-linear-gradient(left,#f44d14 0,#f44d14 20%,rgba(244, 77, 20, 0) 100%);
|
||
background:linear-gradient(to left,#f44d14 0,#f44d14 20%,rgba(244, 77, 20, 0) 100%);
|
||
color:#ffffff;
|
||
height:40px
|
||
}
|
||
.hero-post-snippet a{
|
||
color:#790101
|
||
}
|
||
.hero-post-noimage-snippet.snippet-container{
|
||
max-height:320px
|
||
}
|
||
.hero-post-noimage-snippet .snippet-item{
|
||
line-height:40px
|
||
}
|
||
.hero-post-noimage-snippet .snippet-fade{
|
||
background:-webkit-linear-gradient(left,#e7e8e0 0,#e7e8e0 20%,rgba(231, 232, 224, 0) 100%);
|
||
background:linear-gradient(to left,#e7e8e0 0,#e7e8e0 20%,rgba(231, 232, 224, 0) 100%);
|
||
color:#3e3f3c;
|
||
height:40px
|
||
}
|
||
.popular-posts-snippet.snippet-container{
|
||
max-height:160px
|
||
}
|
||
.popular-posts-snippet .snippet-item{
|
||
line-height:40px
|
||
}
|
||
.popular-posts-snippet .snippet-fade{
|
||
background:-webkit-linear-gradient(left,#ffffff 0,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
|
||
background:linear-gradient(to left,#ffffff 0,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
|
||
color:#3e3f3c;
|
||
height:40px
|
||
}
|
||
.profile-snippet.snippet-container{
|
||
max-height:192px
|
||
}
|
||
.profile-snippet .snippet-item{
|
||
line-height:24px
|
||
}
|
||
.profile-snippet .snippet-fade{
|
||
background:-webkit-linear-gradient(left,#ffffff 0,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
|
||
background:linear-gradient(to left,#ffffff 0,#ffffff 20%,rgba(255, 255, 255, 0) 100%);
|
||
color:#000000;
|
||
height:24px
|
||
}
|
||
.hero-post-noimage-snippet .snippet-item::first-letter{
|
||
font-size:80px;
|
||
line-height:80px
|
||
}
|
||
#comments a,#comments cite,#comments div{
|
||
font-size:16px;
|
||
line-height:1.4
|
||
}
|
||
#comments .comment .comment-header .user,#comments .comment .comment-header .user a{
|
||
color:#3e3f3c;
|
||
font:700 14px Lato, sans-serif
|
||
}
|
||
#comments .comment .comment-header .datetime a{
|
||
color:rgba(0,0,0,0.54);
|
||
font:700 14px Lato, sans-serif
|
||
}
|
||
#comments .comment .comment-header .datetime a::before{
|
||
content:"\b7 "
|
||
}
|
||
#comments .comment .comment-content{
|
||
margin-top:6px
|
||
}
|
||
#comments .comment .comment-actions{
|
||
color:#3e3f3c;
|
||
font:700 14px Lato, sans-serif
|
||
}
|
||
#comments .continue{
|
||
display:none
|
||
}
|
||
#comments .comment-footer{
|
||
margin-top:8px
|
||
}
|
||
.cmt_iframe_holder{
|
||
margin-left:140px!important
|
||
}
|
||
body.variant-rockpool_deep_orange .centered-top-secondline .PageList .overflow-popup li a{
|
||
color:#000
|
||
}
|
||
body.variant-rockpool_pink .blog-name h1,body.variant-rockpool_pink .blog-name h1 a{
|
||
text-transform:none
|
||
}
|
||
body.variant-rockpool_deep_orange .post-filter-message{
|
||
background-color:#000000
|
||
}
|
||
@media screen and (max-width:1619px){
|
||
.page{
|
||
float:none;
|
||
margin:0 auto;
|
||
max-width:none!important
|
||
}
|
||
.page_body{
|
||
max-width:1280px;
|
||
margin:0 auto
|
||
}
|
||
}
|
||
@media screen and (max-width:1280px){
|
||
.heroPost .big-post-image{
|
||
display:table-cell;
|
||
left:auto;
|
||
position:static;
|
||
top:auto
|
||
}
|
||
.heroPost .big-post-title{
|
||
display:table-cell
|
||
}
|
||
}
|
||
@media screen and (max-width:1168px){
|
||
.centered-top-container,.centered-top-placeholder{
|
||
padding:24px 24px 32px 24px
|
||
}
|
||
.sticky{
|
||
padding:0 24px
|
||
}
|
||
.subscribe-section-container{
|
||
margin-left:48px
|
||
}
|
||
.hamburger-section{
|
||
margin-left:48px
|
||
}
|
||
.big-post-text-inner,.big-post-title-inner{
|
||
margin:0 auto;
|
||
max-width:920px
|
||
}
|
||
.centered-top{
|
||
padding:0;
|
||
max-width:920px
|
||
}
|
||
.Blog{
|
||
padding:0
|
||
}
|
||
body.item-view .Blog{
|
||
padding:0 24px;
|
||
margin:0 auto;
|
||
max-width:920px
|
||
}
|
||
.post-filter-description{
|
||
margin-right:36px
|
||
}
|
||
.post-outer{
|
||
display:block
|
||
}
|
||
.post-content{
|
||
max-width:none;
|
||
margin:0
|
||
}
|
||
.post-outer .snippet-thumbnail{
|
||
width:920px;
|
||
height:613.3333333333px;
|
||
margin-bottom:16px
|
||
}
|
||
.post-outer .snippet-thumbnail.thumbnail-empty{
|
||
display:none
|
||
}
|
||
.shown-ad .inline-ad{
|
||
max-width:100%
|
||
}
|
||
body.item-view .Blog{
|
||
padding:0;
|
||
max-width:none
|
||
}
|
||
.post-filter-message{
|
||
margin:24px calc((100% - 920px)/ 2);
|
||
max-width:none
|
||
}
|
||
.FeaturedPost h3,body.feed-view .blog-posts,body.feed-view .feed-message{
|
||
margin-left:calc((100% - 920px)/ 2);
|
||
margin-right:calc((100% - 920px)/ 2)
|
||
}
|
||
body.item-view .Blog .post-title-container{
|
||
padding:62px calc((100% - 920px)/ 2) 24px
|
||
}
|
||
body.item-view .Blog .post-header-container{
|
||
padding-left:calc((100% - 920px)/ 2)
|
||
}
|
||
body.item-view .Blog .post-body-container,body.item-view .comments,body.item-view .post-outer-container>.shown-ad,body.item-view .widget.Blog .post-bottom{
|
||
margin:32px calc((100% - 920px)/ 2);
|
||
padding:0
|
||
}
|
||
body.item-view .cmt_iframe_holder{
|
||
margin:32px 24px!important
|
||
}
|
||
.blog-pager{
|
||
margin-left:calc((100% - 920px)/ 2);
|
||
margin-right:calc((100% - 920px)/ 2)
|
||
}
|
||
body.item-view .post-bottom{
|
||
margin:0 auto;
|
||
max-width:968px
|
||
}
|
||
body.item-view .PopularPosts .post-content{
|
||
max-width:100%;
|
||
margin-right:0
|
||
}
|
||
body.item-view .Blog .post-body{
|
||
margin-right:0
|
||
}
|
||
body.item-view .Blog .post-sidebar{
|
||
display:none
|
||
}
|
||
body.item-view .widget.Blog .post-share-buttons-bottom{
|
||
margin-right:24px
|
||
}
|
||
body.item-view .PopularPosts{
|
||
margin:0 auto;
|
||
max-width:920px
|
||
}
|
||
body.item-view .comment-thread-title{
|
||
margin-left:calc((100% - 920px)/ 2)
|
||
}
|
||
.heroPost{
|
||
display:block
|
||
}
|
||
.heroPost .big-post-title{
|
||
display:block;
|
||
max-width:none;
|
||
padding:24px
|
||
}
|
||
.heroPost .big-post-image{
|
||
display:none
|
||
}
|
||
.heroPost .big-post-image-top{
|
||
display:block;
|
||
height:613.3333333333px;
|
||
margin:0 auto;
|
||
max-width:920px
|
||
}
|
||
.heroPost .big-post-image-top-container{
|
||
background-color:#f44d14
|
||
}
|
||
.heroPost.noimage .big-post-title{
|
||
max-width:none;
|
||
width:100%
|
||
}
|
||
.heroPost.noimage .big-post-text{
|
||
position:static;
|
||
width:100%
|
||
}
|
||
.heroPost .big-post-text{
|
||
padding:24px
|
||
}
|
||
}
|
||
@media screen and (max-width:968px){
|
||
body{
|
||
font-size:14px
|
||
}
|
||
.post-header-container .byline,.post-header-container .byline a{
|
||
font-size:14px
|
||
}
|
||
.post-title,.post-title a{
|
||
font-size:24px
|
||
}
|
||
.post-outer .snippet-thumbnail{
|
||
width:100%;
|
||
height:calc((100vw - 48px) * 2 / 3)
|
||
}
|
||
body.item-view .Blog .post-title-container{
|
||
padding:62px 24px 24px 24px
|
||
}
|
||
body.item-view .Blog .post-header-container{
|
||
padding-left:24px
|
||
}
|
||
body.item-view .Blog .post-body-container,body.item-view .PopularPosts,body.item-view .comments,body.item-view .post-outer-container>.shown-ad,body.item-view .widget.Blog .post-bottom{
|
||
margin:32px 24px;
|
||
padding:0
|
||
}
|
||
.FeaturedPost h3,body.feed-view .blog-posts,body.feed-view .feed-message{
|
||
margin-left:24px;
|
||
margin-right:24px
|
||
}
|
||
.post-filter-message{
|
||
margin:24px 24px 48px 24px
|
||
}
|
||
body.item-view blockquote{
|
||
font-size:18px
|
||
}
|
||
body.item-view .Blog .post-title{
|
||
font-size:24px
|
||
}
|
||
body.item-view .Blog .post-body{
|
||
font-size:14px
|
||
}
|
||
body.item-view .Blog .post-body::first-letter{
|
||
font-size:56px;
|
||
line-height:56px
|
||
}
|
||
.main_header_elements{
|
||
position:relative;
|
||
display:block
|
||
}
|
||
.search.focused .section{
|
||
margin-right:0;
|
||
width:100%
|
||
}
|
||
html[dir=ltr] .search form{
|
||
margin-right:0
|
||
}
|
||
.hamburger-section{
|
||
margin-left:24px
|
||
}
|
||
.search-expand-icon{
|
||
display:block;
|
||
float:left;
|
||
height:24px;
|
||
margin-top:-12px
|
||
}
|
||
.search-expand-text{
|
||
display:none
|
||
}
|
||
.subscribe-section-container{
|
||
margin-top:12px
|
||
}
|
||
.subscribe-section-container{
|
||
float:left;
|
||
margin-left:0
|
||
}
|
||
.search-expand{
|
||
position:absolute;
|
||
right:0;
|
||
top:0
|
||
}
|
||
html[dir=ltr] .search-expand{
|
||
margin-left:24px
|
||
}
|
||
.centered-top.search-focused .subscribe-section-container{
|
||
opacity:0
|
||
}
|
||
.blog-name{
|
||
float:none
|
||
}
|
||
.blog-name{
|
||
margin-right:36px
|
||
}
|
||
.centered-top-secondline .PageList li{
|
||
margin-right:24px
|
||
}
|
||
.centered-top.search-focused .subscribe-button,.centered-top.search-focused .subscribe-section-container{
|
||
opacity:1
|
||
}
|
||
body.item-view .comment-thread-title{
|
||
margin-left:24px
|
||
}
|
||
.blog-pager{
|
||
margin-left:24px;
|
||
margin-right:24px
|
||
}
|
||
.heroPost .big-post-image-top{
|
||
width:100%;
|
||
height:calc(100vw * 2 / 3)
|
||
}
|
||
.popular-posts-snippet.snippet-container,.post-snippet.snippet-container{
|
||
font-size:14px;
|
||
max-height:112px
|
||
}
|
||
.popular-posts-snippet .snippet-item,.post-snippet .snippet-item{
|
||
line-height:2
|
||
}
|
||
.popular-posts-snippet .snippet-fade,.post-snippet .snippet-fade{
|
||
height:28px
|
||
}
|
||
.hero-post-snippet.snippet-container{
|
||
font-size:14px;
|
||
max-height:112px
|
||
}
|
||
.hero-post-snippet .snippet-item{
|
||
line-height:2
|
||
}
|
||
.hero-post-snippet .snippet-fade{
|
||
height:28px
|
||
}
|
||
.hero-post-noimage-snippet.snippet-container{
|
||
font-size:14px;
|
||
line-height:2;
|
||
max-height:224px
|
||
}
|
||
.hero-post-noimage-snippet .snippet-item{
|
||
line-height:2
|
||
}
|
||
.hero-post-noimage-snippet .snippet-fade{
|
||
height:28px
|
||
}
|
||
.hero-post-noimage-snippet .snippet-item::first-letter{
|
||
font-size:56px;
|
||
line-height:normal
|
||
}
|
||
body.item-view .post-body-container .separator[style*="text-align: center"] a[imageanchor="1"]{
|
||
margin-left:-24px!important;
|
||
margin-right:-24px!important
|
||
}
|
||
body.item-view .post-body-container .separator[style*="text-align: center"] a[imageanchor="1"][style*="float: left;"],body.item-view .post-body-container .separator[style*="text-align: center"] a[imageanchor="1"][style*="float: right;"]{
|
||
margin-left:0!important;
|
||
margin-right:0!important
|
||
}
|
||
body.item-view .post-body-container .separator[style*="text-align: center"] a[imageanchor="1"][style*="float: left;"] img,body.item-view .post-body-container .separator[style*="text-align: center"] a[imageanchor="1"][style*="float: right;"] img{
|
||
max-width:100%
|
||
}
|
||
}
|
||
@media screen and (min-width:1620px){
|
||
.page{
|
||
float:left
|
||
}
|
||
.centered-top{
|
||
max-width:1600px;
|
||
padding:44px 456px 32px 136px
|
||
}
|
||
.sidebar-container{
|
||
box-shadow:none;
|
||
float:right;
|
||
max-width:320px;
|
||
z-index:32
|
||
}
|
||
.sidebar-container .navigation{
|
||
display:none
|
||
}
|
||
.hamburger-section,.sticky .hamburger-section{
|
||
display:none
|
||
}
|
||
.search.focused .section{
|
||
margin-right:0;
|
||
width:100%
|
||
}
|
||
#footer{
|
||
padding-right:320px
|
||
}
|
||
}
|
||
|
||
--></style>
|
||
<style id='template-skin-1' type='text/css'><!--
|
||
body#layout .hidden,
|
||
body#layout .invisible {
|
||
display: inherit;
|
||
}
|
||
body#layout .navigation {
|
||
display: none;
|
||
}
|
||
body#layout .page {
|
||
display: inline-block;
|
||
vertical-align: top;
|
||
width: 55%;
|
||
}
|
||
body#layout .sidebar-container {
|
||
display: inline-block;
|
||
float: right;
|
||
width: 40%;
|
||
}
|
||
body#layout .hamburger-menu,
|
||
body#layout .search {
|
||
display: none;
|
||
}
|
||
--></style>
|
||
<script type='text/javascript'>
|
||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||
ga('create', 'UA-162951925-2', 'auto', 'blogger');
|
||
ga('blogger.send', 'pageview');
|
||
</script>
|
||
<script async='async' src='https://www.gstatic.com/external_hosted/clipboardjs/clipboard.min.js'></script>
|
||
<link href='https://www.blogger.com/dyncss/5208889869407022153/authorization.css?zx=e74cf1b5-82f5-4f40-af0e-936cbfdd93af' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyncss/5208889869407022153/authorization.css?zx=e74cf1b5-82f5-4f40-af0e-936cbfdd93af' rel='stylesheet'/></noscript>
|
||
<meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/>
|
||
<meta name='google-adsense-platform-domain' content='blogspot.com'/>
|
||
|
||
</head>
|
||
<body class='container item-view version-1-3-3 variant-rockpool_deep_orange'>
|
||
<a class='skip-navigation' href='#main' tabindex='0'>
|
||
Skip to main content
|
||
</a>
|
||
<div class='all-container'>
|
||
<div class='centered-top-placeholder'></div>
|
||
<header class='centered-top-container' role='banner'>
|
||
<div class='centered-top'>
|
||
<div class='centered-top-firstline container'>
|
||
<div class='main_header_elements container'>
|
||
<!-- Blog name and header -->
|
||
<div class='blog-name'>
|
||
<div class='section' id='header' name='Header'><div class='widget Header' data-version='2' id='Header1'>
|
||
<div class='header-widget'>
|
||
<div>
|
||
<h1>
|
||
<a href='https://www.corriganjc.net/'>
|
||
The Fast Country
|
||
</a>
|
||
</h1>
|
||
</div>
|
||
<p>
|
||
</p>
|
||
</div>
|
||
</div></div>
|
||
</div>
|
||
<!-- End blog name and header -->
|
||
<!-- Search -->
|
||
<div class='search'>
|
||
<button aria-label='Search' class='flat-button search-expand touch-icon-button'>
|
||
<div class='search-expand-text'>Search</div>
|
||
<div class='search-expand-icon flat-icon-button'>
|
||
<svg class='svg-icon-24'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_search_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
</div>
|
||
</button>
|
||
<div class='section' id='search_top' name='Search (Top)'><div class='widget BlogSearch' data-version='2' id='BlogSearch1'>
|
||
<h3 class='title'>
|
||
Search This Blog
|
||
</h3>
|
||
<div class='widget-content' role='search'>
|
||
<form action='https://www.corriganjc.net/search' target='_top'>
|
||
<div class='search-input'>
|
||
<input aria-label='Search this blog' autocomplete='off' name='q' placeholder='Search this blog' value=''/>
|
||
</div>
|
||
<label class='search-submit'>
|
||
<input type='submit'/>
|
||
<div class='flat-icon-button ripple'>
|
||
<svg class='svg-icon-24 search-icon'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_search_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
</div>
|
||
</label>
|
||
</form>
|
||
</div>
|
||
</div></div>
|
||
</div>
|
||
</div>
|
||
<!-- Hamburger menu -->
|
||
<div class='hamburger-section container'>
|
||
<button class='svg-icon-24-button hamburger-menu flat-icon-button ripple'>
|
||
<svg class='svg-icon-24'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_menu_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
<!-- End hamburger menu -->
|
||
</div>
|
||
<nav role='navigation'>
|
||
<div class='centered-top-secondline no-items section' id='page_list_top' name='Page List (Top)'>
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
<div class='main_content_container clearfix'>
|
||
<div class='page'>
|
||
<div class='page_body'>
|
||
<div class='centered'>
|
||
<main class='centered-bottom' id='main' role='main' tabindex='-1'>
|
||
<div class='main section' id='page_body' name='Page Body'>
|
||
<div class='widget Blog' data-version='2' id='Blog1'>
|
||
<div class='blog-posts hfeed container'>
|
||
<article class='post-outer-container'>
|
||
<div class='post-outer'>
|
||
<div class='post-content container'>
|
||
<div class='post-title-container'>
|
||
<a name='8754570723222510945'></a>
|
||
<h3 class='post-title entry-title'>
|
||
Operational Metrics and Alerts for Distributed Software Systems
|
||
</h3>
|
||
</div>
|
||
<div class='post-header-container container'>
|
||
<div class='post-header'>
|
||
<div class='post-header-line-1'>
|
||
<span class='byline post-timestamp'>
|
||
<meta content='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html'/>
|
||
<a class='timestamp-link' href='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' rel='bookmark' title='permanent link'>
|
||
<time class='published' datetime='2017-07-23T17:59:00+01:00' title='2017-07-23T17:59:00+01:00'>
|
||
July 23, 2017
|
||
</time>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class='post-body-container'>
|
||
<div class='post-body entry-content float-container' id='post-body-8754570723222510945'>
|
||
<div dir="ltr" style="text-align: left;" trbidi="on">
|
||
<p>This post will be about operational metrics and alerts for distributed software systems. What do I mean by that? I mean the metrics and alerts that allow operations personel to detect failure of of a distributed software system and helps them to quickly diagnose what is wrong.</p>
|
||
<h3>Metrics</h3>
|
||
<p>The metrics are measurements of characteristics of the system collected at regular(ish) intervals and stored somewhere for processing - rendering into graphs, triggering alert notifications, etc. Metrics can be divided into 3 categories: input metrics, output metrics, and process metrics. Input metrics are measures of the inputs to the system, for example, the number of user requests, counts of particular characteristics of the requests - where they are from, how large the request data is, counts of particular features in the request (for example, which resources/items/products are being asked for). Output metrics are measures of the output of the system. Examples of these would include orders successfully placed, counts of unsuccessful orders, and, since users often care about it the time to respond to a user request can also be considered an output metric. Good output metrics are a close proxy for dollars earned or saved by the system per minute. Process metrics are measurements of internal operation of the system. Examples of this include the standard host metrics, such as load average, free memory, disk space or inodes free, etc. Process metrics can also include application specific internal measurements, such as the number of times an API call retried before it was successful.</p>
|
||
<p>Sometimes the lines between metric categories are blurry. For example, counts HTTP response codes sent back to the client can belong to each of the categories. Typically, 2xx and 5xx response counts are output metrics. 4xx responses are normally input metrics, though if the request is built from data included the response of previous requests to the system, then a case can be made for including them in the output metric category. The category that 3xx responses fall into is entirely application specific.</p>
|
||
<p>In a large system, composed of multiple modules, components, or services, then each subcomponent can have metrics of each type. That is each subcomponent or service can have its own input metrics, output metrics, and process metrics.
|
||
</p><p>Each of these categories of metrics are useful in different ways. Output metrics are best for indicating the existence of a problem and its severity. Input metrics are good for indicating whether a problem exists in the system itself, or whether an upstream system is at fault. Process metrics are best for drilling down into what is wrong once the existence of a problem has been established.</p>
|
||
<p>Metrics should be gathered regularly enough to indicate changes quickly, and should be predictable enough to detect problems easily. The ideal metric's graph should look like a boring flat line when things are okay, and very definitely not be a boring flat line at the point where problems have started.</p>
|
||
<h3>Alerts</h3>
|
||
<p>Alerts are a notification that a negative unexpected situation has occurred. In practical terms, some metric has changed in a direction that indicates that bad things are happening. Traditionally alerts have been categorized based on the severity of the underlying event.</p>
|
||
<ul>
|
||
<li><em>SEV 1</em> : The event is severe enough to threaten business continuity if nothing is done, e.g., through a significant loss of revenue or reputation or due to a violation of laws or regulations.</li>
|
||
<li><em>SEV 2</em> : The event has a significant business impact, e.g., there is a spike in failing orders, the order rate has dropped by 10%, customer responses are taking 10 times longer than normal or some employees are not able to do their jobs due to a failure in the system.</li>
|
||
<li><em>SEV 3</em> : The system metrics indicate that something is seriously wrong, e.g., servers are very heavily loaded or some of the requests coming in are malformed, but the business is not affected and the output of the system looks normal. </li>
|
||
<li><em>SEV 4</em> : Some unexpected but not particularly serious change has occurred in the metrics. </li>
|
||
</ul>
|
||
<p>The typical responses to these events are:</p>
|
||
<ul>
|
||
<li><em>SEV 1</em> : Page everyone. Think of the scene in the movie Leon where Stansfield asks for everyone. This is likely to require quick, co-ordinated action, PR handling, frantic debugging, and possibly approval for significant expenses. It is better to have people not be needed and there than the opposite in such situations.</li>
|
||
<li><em>SEV 2</em> : Page someone (or multiple someones) with the ability and authority to fix the issue. Have fixing the issue be their highest priority.</li>
|
||
<li><em>SEV 3</em> : Make a note in Slack or create a ticket in the ticketing system. The issue should be worked on in the near future, ideally before the end of the next sprint.</li>
|
||
<li><em>SEV 4</em> : Unless the team is very proactive, don't bother creating these alerts. For very proactive teams, a notification on Slack, or a backlog item to investigate the error may be appropriate. Even for proactive teams, digging into the root cause of such items is often not the best use of the team's time. Creating process metrics on the number and frequency of such events is probably more appropriate. Getting lots more of these weird events, a lot more often, could then be categorized as a SEV 3 event.</li>
|
||
</ul>
|
||
|
||
<h3>Putting them together</h3>
|
||
<p>You should identify at least one output metric for the overall system that is providing a service to customers. Ideally, that metric is a close proxy for dollars earned per minute earned or saved. Examples, ads served per minute, page impressions per minute, bytes streamed per minute, successful uploads of customer pictures per hour, etc. It is also good to include latency on requests to the end customer as an output metric.</p>
|
||
<p>For aggregate metrics such as sum or average of some values, e.g., the average latency on customer requests, it is good to generate a few more aggregates. Always include the count of the number of inputs int the aggregate. Consider also including quantiles (p0, p25, p50, p75, p90, p99, and p100 are useful). The modal number and median number are also helpful sometimes. If the input values are normally distributed then standard deviation should be included.</p>
|
||
<p>Pageable alerts, i.e., for SEV 1 and SEV 2 events, should be on output metrics that meet the following criteria:</p>
|
||
<ol>
|
||
<li>The metric is clean, i.e., the signal in the metric is not swamped by random noise. If a suitable metric is noisy, it might be less noisy if averaged over a longer time period. Rolling averages can work well.</li>
|
||
<li>There should be a significant negative change to the metric. It should either be too large to explain as noise or too long in duration to be caused by noise.</li>
|
||
<li>The problem should require human intervention to fix. There is no point in paging someone for a transient blip. It is better to let them sleep.</li>
|
||
</ol>
|
||
<p>Other things worth paging people for are process metrics that correlate <em>very strongly</em> with a system failure in the near future. As an example, if your system uses MySQL, then a sustained and increasing history list length metric value, is almost certainly going to result in system failure in a few hours after it starts. However, the correlation needs to be very strong to avoid alert fatigue. If it is a 50/50 chance, then it is better to let the on-call engineer sleep until the system actually fails, in most SEV 2 cases.</p>
|
||
<p>Related to this, if host metrics going into alarm (load average, CPU usage, disk space or memory free, etc., on a particular host) are good predictor of system failure, then this is an indicator of architectural weakness. Instead of setting up a pageable alert, fix the redundancy and failover architecture instead. </p>
|
||
</div>
|
||
</div>
|
||
<div class='post-sidebar invisible'>
|
||
<div class='post-share-buttons post-share-buttons-top'>
|
||
<div class='byline post-share-buttons goog-inline-block'>
|
||
<div aria-owns='sharing-popup-Blog1-normalpostsidebar-8754570723222510945' class='sharing' data-title='Operational Metrics and Alerts for Distributed Software Systems'>
|
||
<button aria-controls='sharing-popup-Blog1-normalpostsidebar-8754570723222510945' aria-label='Share' class='sharing-button touch-icon-button flat-button ripple' id='sharing-button-Blog1-normalpostsidebar-8754570723222510945' role='button'>
|
||
Share
|
||
</button>
|
||
<div class='share-buttons-container'>
|
||
<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-normalpostsidebar-8754570723222510945' role='menu'>
|
||
<li>
|
||
<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Get link'>
|
||
<svg class='svg-icon-24 touch-icon sharing-link'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Get link</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=facebook' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
|
||
<svg class='svg-icon-24 touch-icon sharing-facebook'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Facebook</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=twitter' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Share to X'>
|
||
<svg class='svg-icon-24 touch-icon sharing-twitter'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>X</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=pinterest' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
|
||
<svg class='svg-icon-24 touch-icon sharing-pinterest'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Pinterest</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=email' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Email'>
|
||
<svg class='svg-icon-24 touch-icon sharing-email'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Email</span>
|
||
</span>
|
||
</li>
|
||
<li aria-hidden='true' class='hidden'>
|
||
<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Share to other apps'>
|
||
<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Other Apps</span>
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class='post-bottom'>
|
||
<div class='post-footer'>
|
||
<div class='post-footer-line post-footer-line-1'>
|
||
</div>
|
||
<div class='post-footer-line post-footer-line-2'>
|
||
</div>
|
||
</div>
|
||
<div class='post-share-buttons post-share-buttons-bottom'>
|
||
<div class='byline post-share-buttons goog-inline-block'>
|
||
<div aria-owns='sharing-popup-Blog1-byline-8754570723222510945' class='sharing' data-title='Operational Metrics and Alerts for Distributed Software Systems'>
|
||
<button aria-controls='sharing-popup-Blog1-byline-8754570723222510945' aria-label='Share' class='sharing-button touch-icon-button flat-button ripple' id='sharing-button-Blog1-byline-8754570723222510945' role='button'>
|
||
Share
|
||
</button>
|
||
<div class='share-buttons-container'>
|
||
<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-8754570723222510945' role='menu'>
|
||
<li>
|
||
<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Get link'>
|
||
<svg class='svg-icon-24 touch-icon sharing-link'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Get link</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=facebook' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
|
||
<svg class='svg-icon-24 touch-icon sharing-facebook'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Facebook</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=twitter' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Share to X'>
|
||
<svg class='svg-icon-24 touch-icon sharing-twitter'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>X</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=pinterest' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
|
||
<svg class='svg-icon-24 touch-icon sharing-pinterest'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Pinterest</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=8754570723222510945&target=email' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Email'>
|
||
<svg class='svg-icon-24 touch-icon sharing-email'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Email</span>
|
||
</span>
|
||
</li>
|
||
<li aria-hidden='true' class='hidden'>
|
||
<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html' role='menuitem' tabindex='-1' title='Share to other apps'>
|
||
<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Other Apps</span>
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<section class='comments embed' data-num-comments='0' id='comments'>
|
||
<a name='comments'></a>
|
||
<h3 class='title'>Comments</h3>
|
||
<div id='Blog1_comments-block-wrapper'>
|
||
</div>
|
||
<div class='footer'>
|
||
<div class='comment-form'>
|
||
<a name='comment-form'></a>
|
||
<h4 id='comment-post-message'>Post a Comment</h4>
|
||
<a href='https://www.blogger.com/comment/frame/5208889869407022153?po=8754570723222510945&hl=en&saa=85391&origin=https://www.corriganjc.net&skin=notable' id='comment-editor-src'></a>
|
||
<iframe allowtransparency='allowtransparency' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410px' id='comment-editor' name='comment-editor' src='' width='100%'></iframe>
|
||
<script src='https://www.blogger.com/static/v1/jsbin/3790099508-comment_from_post_iframe.js' type='text/javascript'></script>
|
||
<script type='text/javascript'>
|
||
BLOG_CMT_createIframe('https://www.blogger.com/rpc_relay.html');
|
||
</script>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</article>
|
||
</div>
|
||
</div><div class='widget PopularPosts' data-version='2' id='PopularPosts1'>
|
||
<h3 class='title'>
|
||
Popular posts from this blog
|
||
</h3>
|
||
<div role='feed'>
|
||
<article class='post' role='article'>
|
||
<div class='post-outer-container'>
|
||
<div class='post-outer'>
|
||
<div class='snippet-thumbnail thumbnail-empty'></div>
|
||
<div class='post-content container'>
|
||
<div class='post-title-container'>
|
||
<a name='151343023806100627'></a>
|
||
<h3 class='post-title entry-title'>
|
||
<a href='https://www.corriganjc.net/2015/01/learning-forth.html'>Learning Forth</a>
|
||
</h3>
|
||
</div>
|
||
<div class='post-header-container container'>
|
||
<div class='post-header'>
|
||
<div class='post-header-line-1'>
|
||
<span class='byline post-timestamp'>
|
||
<meta content='https://www.corriganjc.net/2015/01/learning-forth.html'/>
|
||
<a class='timestamp-link' href='https://www.corriganjc.net/2015/01/learning-forth.html' rel='bookmark' title='permanent link'>
|
||
<time class='published' datetime='2015-01-25T15:34:00Z' title='2015-01-25T15:34:00Z'>
|
||
January 25, 2015
|
||
</time>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class='container post-body entry-content' id='post-snippet-151343023806100627'>
|
||
<div class='post-snippet snippet-container r-snippet-container'>
|
||
<div class='snippet-item r-snippetized'>
|
||
One of my side projects for this year is to learn the programming language, Forth. Some people might consider this an odd language to learn. It is not a popular language. There are no hot startups using it (that I know of). It doesn't even show up in the top 100 languages in the TIOBE Index . However, I am convinced learning it is worthwhile. Some of my reasons for this are: Forth is probably the most successful and widely deployed language that nobody has heard of. It is the language used to develop OpenFirmware . This boot loader is installed on the laptops of the One Laptop Per Child Project , on PowerPC based Apple Mac computers, and on SPARC based computers from SUN Microsystems. It has also been used to develop to develop control software for the National Radio Astronomy Observatory , which is where it was developed. While not as widely used as C/C++, Forth is used a lot in embedded applications and has been ported to most micro-controllers. For example, the Forth, Inc. w...
|
||
</div>
|
||
<a class='snippet-fade r-snippet-fade hidden' href='https://www.corriganjc.net/2015/01/learning-forth.html'></a>
|
||
</div>
|
||
</div>
|
||
<div class='post-bottom'>
|
||
<div class='post-footer'>
|
||
<div class='post-footer-line post-footer-line-0'>
|
||
<div class='byline post-share-buttons goog-inline-block'>
|
||
<div aria-owns='sharing-popup-PopularPosts1-footer-0-151343023806100627' class='sharing' data-title='Learning Forth'>
|
||
<button aria-controls='sharing-popup-PopularPosts1-footer-0-151343023806100627' aria-label='Share' class='sharing-button touch-icon-button flat-button ripple' id='sharing-button-PopularPosts1-footer-0-151343023806100627' role='button'>
|
||
Share
|
||
</button>
|
||
<div class='share-buttons-container'>
|
||
<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-PopularPosts1-footer-0-151343023806100627' role='menu'>
|
||
<li>
|
||
<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=151343023806100627&target=' data-url='https://www.corriganjc.net/2015/01/learning-forth.html' role='menuitem' tabindex='-1' title='Get link'>
|
||
<svg class='svg-icon-24 touch-icon sharing-link'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Get link</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=151343023806100627&target=facebook' data-url='https://www.corriganjc.net/2015/01/learning-forth.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
|
||
<svg class='svg-icon-24 touch-icon sharing-facebook'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Facebook</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=151343023806100627&target=twitter' data-url='https://www.corriganjc.net/2015/01/learning-forth.html' role='menuitem' tabindex='-1' title='Share to X'>
|
||
<svg class='svg-icon-24 touch-icon sharing-twitter'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>X</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=151343023806100627&target=pinterest' data-url='https://www.corriganjc.net/2015/01/learning-forth.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
|
||
<svg class='svg-icon-24 touch-icon sharing-pinterest'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Pinterest</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=151343023806100627&target=email' data-url='https://www.corriganjc.net/2015/01/learning-forth.html' role='menuitem' tabindex='-1' title='Email'>
|
||
<svg class='svg-icon-24 touch-icon sharing-email'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Email</span>
|
||
</span>
|
||
</li>
|
||
<li aria-hidden='true' class='hidden'>
|
||
<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.corriganjc.net/2015/01/learning-forth.html' role='menuitem' tabindex='-1' title='Share to other apps'>
|
||
<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Other Apps</span>
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<span class='byline post-comment-link container'>
|
||
<a class='comment-link flat-button ripple' href='https://www.corriganjc.net/2015/01/learning-forth.html#comments' onclick=''>
|
||
Post a Comment
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class='byline jump-link'>
|
||
<a class='flat-button ripple' href='https://www.corriganjc.net/2015/01/learning-forth.html' title='Learning Forth'>
|
||
Read more
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</article>
|
||
<article class='post' role='article'>
|
||
<div class='post-outer-container'>
|
||
<div class='post-outer'>
|
||
<div class='snippet-thumbnail thumbnail-empty'></div>
|
||
<div class='post-content container'>
|
||
<div class='post-title-container'>
|
||
<a name='5817803921782874068'></a>
|
||
<h3 class='post-title entry-title'>
|
||
<a href='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html'>Repost: ANTLR Trinity</a>
|
||
</h3>
|
||
</div>
|
||
<div class='post-header-container container'>
|
||
<div class='post-header'>
|
||
<div class='post-header-line-1'>
|
||
<span class='byline post-timestamp'>
|
||
<meta content='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html'/>
|
||
<a class='timestamp-link' href='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html' rel='bookmark' title='permanent link'>
|
||
<time class='published' datetime='2020-06-15T22:41:00+01:00' title='2020-06-15T22:41:00+01:00'>
|
||
June 15, 2020
|
||
</time>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class='container post-body entry-content' id='post-snippet-5817803921782874068'>
|
||
<div class='post-snippet snippet-container r-snippet-container'>
|
||
<div class='snippet-item r-snippetized'>
|
||
This post is a repost of an article I had on a previous incarnation of this blog. I hadn't intended to transfer it over, as the technology is old now (ANTLR is on version 4), but I recently came acros a slide deck online, where the post was referenced, so I am reposting in case anyone was looking for it. There are 3 components to a really useful software development technology: innovative features, clear and comprehensive documentation, and solid tools. The recent release of ANTLR v3.0 is a perfect example of this. This parser generator tool has all 3 components and each component is done superbly. ANTLR is a parser generator tool that is capable of targeting multiple output languages. Out of the box it will generate Java, Python, C, C#, or Ruby code for parsers. Other target languages are possible if the code generators are written. Amongst its cool features are: LL(*) parsing: This is an extension to the normal, top down with looka...
|
||
</div>
|
||
<a class='snippet-fade r-snippet-fade hidden' href='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html'></a>
|
||
</div>
|
||
</div>
|
||
<div class='post-bottom'>
|
||
<div class='post-footer'>
|
||
<div class='post-footer-line post-footer-line-0'>
|
||
<div class='byline post-share-buttons goog-inline-block'>
|
||
<div aria-owns='sharing-popup-PopularPosts1-footer-0-5817803921782874068' class='sharing' data-title='Repost: ANTLR Trinity'>
|
||
<button aria-controls='sharing-popup-PopularPosts1-footer-0-5817803921782874068' aria-label='Share' class='sharing-button touch-icon-button flat-button ripple' id='sharing-button-PopularPosts1-footer-0-5817803921782874068' role='button'>
|
||
Share
|
||
</button>
|
||
<div class='share-buttons-container'>
|
||
<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-PopularPosts1-footer-0-5817803921782874068' role='menu'>
|
||
<li>
|
||
<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=5817803921782874068&target=' data-url='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html' role='menuitem' tabindex='-1' title='Get link'>
|
||
<svg class='svg-icon-24 touch-icon sharing-link'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Get link</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=5817803921782874068&target=facebook' data-url='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
|
||
<svg class='svg-icon-24 touch-icon sharing-facebook'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Facebook</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=5817803921782874068&target=twitter' data-url='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html' role='menuitem' tabindex='-1' title='Share to X'>
|
||
<svg class='svg-icon-24 touch-icon sharing-twitter'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>X</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=5817803921782874068&target=pinterest' data-url='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
|
||
<svg class='svg-icon-24 touch-icon sharing-pinterest'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Pinterest</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=5817803921782874068&target=email' data-url='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html' role='menuitem' tabindex='-1' title='Email'>
|
||
<svg class='svg-icon-24 touch-icon sharing-email'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Email</span>
|
||
</span>
|
||
</li>
|
||
<li aria-hidden='true' class='hidden'>
|
||
<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html' role='menuitem' tabindex='-1' title='Share to other apps'>
|
||
<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Other Apps</span>
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<span class='byline post-comment-link container'>
|
||
<a class='comment-link flat-button ripple' href='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html#comments' onclick=''>
|
||
Post a Comment
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class='byline jump-link'>
|
||
<a class='flat-button ripple' href='https://www.corriganjc.net/2020/06/repost-antlr-trinity.html' title='Repost: ANTLR Trinity'>
|
||
Read more
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</article>
|
||
<article class='post' role='article'>
|
||
<div class='post-outer-container'>
|
||
<div class='post-outer'>
|
||
<div class='snippet-thumbnail thumbnail-empty'></div>
|
||
<div class='post-content container'>
|
||
<div class='post-title-container'>
|
||
<a name='859887108181324528'></a>
|
||
<h3 class='post-title entry-title'>
|
||
<a href='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html'>Useful Links: Deploys - It’s Not Actually About Fridays</a>
|
||
</h3>
|
||
</div>
|
||
<div class='post-header-container container'>
|
||
<div class='post-header'>
|
||
<div class='post-header-line-1'>
|
||
<span class='byline post-timestamp'>
|
||
<meta content='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html'/>
|
||
<a class='timestamp-link' href='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html' rel='bookmark' title='permanent link'>
|
||
<time class='published' datetime='2020-04-28T14:58:00+01:00' title='2020-04-28T14:58:00+01:00'>
|
||
April 28, 2020
|
||
</time>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class='container post-body entry-content' id='post-snippet-859887108181324528'>
|
||
<div class='post-snippet snippet-container r-snippet-container'>
|
||
<div class='snippet-item r-snippetized'>
|
||
This: https://charity.wtf/2019/10/28/deploys-its-not-actually-about-fridays/ Read. Contemplate. Incorporate. Seriously, there are 4 metrics that reliably indicate a high function software organization (see Accelerate, by Fosgren, et al., for details - https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations-ebook/dp/B07B9F83WM ): Lead time for changes Deployment frequency Time to restore service Change failure rate This article addresses the 'change failure rate' one, by improving the first two with observability tooling.
|
||
</div>
|
||
<a class='snippet-fade r-snippet-fade hidden' href='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html'></a>
|
||
</div>
|
||
</div>
|
||
<div class='post-bottom'>
|
||
<div class='post-footer'>
|
||
<div class='post-footer-line post-footer-line-0'>
|
||
<div class='byline post-share-buttons goog-inline-block'>
|
||
<div aria-owns='sharing-popup-PopularPosts1-footer-0-859887108181324528' class='sharing' data-title='Useful Links: Deploys - It’s Not Actually About Fridays'>
|
||
<button aria-controls='sharing-popup-PopularPosts1-footer-0-859887108181324528' aria-label='Share' class='sharing-button touch-icon-button flat-button ripple' id='sharing-button-PopularPosts1-footer-0-859887108181324528' role='button'>
|
||
Share
|
||
</button>
|
||
<div class='share-buttons-container'>
|
||
<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-PopularPosts1-footer-0-859887108181324528' role='menu'>
|
||
<li>
|
||
<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=859887108181324528&target=' data-url='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html' role='menuitem' tabindex='-1' title='Get link'>
|
||
<svg class='svg-icon-24 touch-icon sharing-link'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Get link</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=859887108181324528&target=facebook' data-url='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html' role='menuitem' tabindex='-1' title='Share to Facebook'>
|
||
<svg class='svg-icon-24 touch-icon sharing-facebook'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Facebook</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=859887108181324528&target=twitter' data-url='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html' role='menuitem' tabindex='-1' title='Share to X'>
|
||
<svg class='svg-icon-24 touch-icon sharing-twitter'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>X</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=859887108181324528&target=pinterest' data-url='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html' role='menuitem' tabindex='-1' title='Share to Pinterest'>
|
||
<svg class='svg-icon-24 touch-icon sharing-pinterest'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Pinterest</span>
|
||
</span>
|
||
</li>
|
||
<li>
|
||
<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=5208889869407022153&postID=859887108181324528&target=email' data-url='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html' role='menuitem' tabindex='-1' title='Email'>
|
||
<svg class='svg-icon-24 touch-icon sharing-email'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Email</span>
|
||
</span>
|
||
</li>
|
||
<li aria-hidden='true' class='hidden'>
|
||
<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html' role='menuitem' tabindex='-1' title='Share to other apps'>
|
||
<svg class='svg-icon-24 touch-icon sharing-sharingOther'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<span class='platform-sharing-text'>Other Apps</span>
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<span class='byline post-comment-link container'>
|
||
<a class='comment-link flat-button ripple' href='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html#comments' onclick=''>
|
||
Post a Comment
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class='byline jump-link'>
|
||
<a class='flat-button ripple' href='https://www.corriganjc.net/2020/04/useful-links-deploys-its-not-actually.html' title='Useful Links: Deploys - It’s Not Actually About Fridays'>
|
||
Read more
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div></div>
|
||
</main>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<aside class='sidebar-container sidebar-invisible' role='complementary'>
|
||
<div class='navigation container'>
|
||
<button class='svg-icon-24-button sidebar-back flat-icon-button ripple'>
|
||
<svg class='svg-icon-24'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_arrow_forward_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
<div class='sidebar section' id='sidebar' name='Sidebar'>
|
||
<div class='widget BlogArchive' data-version='2' id='BlogArchive1'>
|
||
<details class='collapsible extendable'>
|
||
<summary>
|
||
<div class='collapsible-title'>
|
||
<h3 class='title'>
|
||
Archive
|
||
</h3>
|
||
<svg class='svg-icon-24 chevron-down'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<svg class='svg-icon-24 chevron-up'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
</div>
|
||
</summary>
|
||
<div class='widget-content'>
|
||
<div id='ArchiveList'>
|
||
<div id='BlogArchive1_ArchiveList'>
|
||
<div class='first-items'>
|
||
<ul class='hierarchy'>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2020/'>
|
||
2020
|
||
<span class='post-count'>11</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
<ul class='hierarchy'>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2020/06/'>
|
||
June
|
||
<span class='post-count'>1</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
</div>
|
||
</li>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2020/04/'>
|
||
April
|
||
<span class='post-count'>10</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class='remaining-items'>
|
||
<ul class='hierarchy'>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2017/'>
|
||
2017
|
||
<span class='post-count'>2</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
<ul class='hierarchy'>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2017/09/'>
|
||
September
|
||
<span class='post-count'>1</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
</div>
|
||
</li>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2017/07/'>
|
||
July
|
||
<span class='post-count'>1</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
<ul class='posts hierarchy'>
|
||
<li>
|
||
<a href='https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html'>Operational Metrics and Alerts for Distributed Sof...</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2015/'>
|
||
2015
|
||
<span class='post-count'>2</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
<ul class='hierarchy'>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2015/03/'>
|
||
March
|
||
<span class='post-count'>1</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
</div>
|
||
</li>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2015/01/'>
|
||
January
|
||
<span class='post-count'>1</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2014/'>
|
||
2014
|
||
<span class='post-count'>3</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
<ul class='hierarchy'>
|
||
<li class='archivedate'>
|
||
<div class='hierarchy-title'>
|
||
<a class='post-count-link' href='https://www.corriganjc.net/2014/11/'>
|
||
November
|
||
<span class='post-count'>3</span>
|
||
</a>
|
||
</div>
|
||
<div class='hierarchy-content'>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<span class='show-more flat-button'>Show more</span>
|
||
<span class='show-less hidden flat-button'>Show less</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</details>
|
||
</div><div class='widget Label' data-version='2' id='Label1'>
|
||
<details class='collapsible extendable'>
|
||
<summary>
|
||
<div class='collapsible-title'>
|
||
<h3 class='title'>
|
||
Labels
|
||
</h3>
|
||
<svg class='svg-icon-24 chevron-down'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
<svg class='svg-icon-24 chevron-up'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
</div>
|
||
</summary>
|
||
<div class='widget-content list-label-widget-content'>
|
||
<div class='first-items'>
|
||
<ul>
|
||
<li><a class='label-name' href='https://www.corriganjc.net/search/label/ANTLR'>ANTLR</a></li>
|
||
<li><a class='label-name' href='https://www.corriganjc.net/search/label/Useful%20Links'>Useful Links</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</details>
|
||
</div><div class='widget ReportAbuse' data-version='2' id='ReportAbuse1'>
|
||
<h3 class='title'>
|
||
<a class='report_abuse' href='https://www.blogger.com/go/report-abuse' rel='noopener nofollow' target='_blank'>
|
||
Report Abuse
|
||
</a>
|
||
</h3>
|
||
</div><div class='widget HTML' data-version='2' id='HTML1'>
|
||
<h3 class='title'>
|
||
Stack Exchange Profile
|
||
</h3>
|
||
<div class='widget-content'>
|
||
<a href="http://stackexchange.com/users/70759/corriganjc"><img src="https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vKFOFkQyvXMUVXvf4kpDxLDDVLrJ6XpSXrqYoxsdiWSm_AkggEE-MYAW51AnXwpqPTgB4eNfWcrHvkdVJ-aBMWgUMqnn7okW2GHusArYYZOw=s0-d" width="208" height="58" alt="profile for corriganjc on Stack Exchange, a network of free, community-driven Q&A sites" title="profile for corriganjc on Stack Exchange, a network of free, community-driven Q&A sites"></a>
|
||
</div>
|
||
</div><div class='widget Subscribe' data-version='2' id='Subscribe1'>
|
||
<h3 class='title'>
|
||
Subscribe
|
||
</h3>
|
||
<div class='widget-content'>
|
||
<div class='subscribe-wrapper subscribe-type-POST'>
|
||
<div class='subscribe expanded subscribe-type-POST' id='SW_READER_LIST_Subscribe1POST' style='display:none;'>
|
||
<div class='top'>
|
||
<span class='inner' onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
|
||
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
|
||
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
|
||
Posts
|
||
</span>
|
||
<div class='feed-reader-links'>
|
||
<a class='feed-reader-link' href='https://www.netvibes.com/subscribe.php?url=https%3A%2F%2Fwww.corriganjc.net%2Ffeeds%2Fposts%2Fdefault' target='_blank'>
|
||
<img src='https://resources.blogblog.com/img/widgets/subscribe-netvibes.png'/>
|
||
</a>
|
||
<a class='feed-reader-link' href='https://add.my.yahoo.com/content?url=https%3A%2F%2Fwww.corriganjc.net%2Ffeeds%2Fposts%2Fdefault' target='_blank'>
|
||
<img src='https://resources.blogblog.com/img/widgets/subscribe-yahoo.png'/>
|
||
</a>
|
||
<a class='feed-reader-link' href='https://www.corriganjc.net/feeds/posts/default' target='_blank'>
|
||
<img align='absmiddle' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
|
||
Atom
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class='bottom'></div>
|
||
</div>
|
||
<div class='subscribe' id='SW_READER_LIST_CLOSED_Subscribe1POST' onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
|
||
<div class='top'>
|
||
<span class='inner'>
|
||
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
|
||
<span onclick='return(_SW_toggleReaderList(event, "Subscribe1POST"));'>
|
||
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
|
||
Posts
|
||
</span>
|
||
</span>
|
||
</div>
|
||
<div class='bottom'></div>
|
||
</div>
|
||
</div>
|
||
<div class='subscribe-wrapper subscribe-type-PER_POST'>
|
||
<div class='subscribe expanded subscribe-type-PER_POST' id='SW_READER_LIST_Subscribe1PER_POST' style='display:none;'>
|
||
<div class='top'>
|
||
<span class='inner' onclick='return(_SW_toggleReaderList(event, "Subscribe1PER_POST"));'>
|
||
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
|
||
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
|
||
Comments
|
||
</span>
|
||
<div class='feed-reader-links'>
|
||
<a class='feed-reader-link' href='https://www.netvibes.com/subscribe.php?url=https%3A%2F%2Fwww.corriganjc.net%2Ffeeds%2F8754570723222510945%2Fcomments%2Fdefault' target='_blank'>
|
||
<img src='https://resources.blogblog.com/img/widgets/subscribe-netvibes.png'/>
|
||
</a>
|
||
<a class='feed-reader-link' href='https://add.my.yahoo.com/content?url=https%3A%2F%2Fwww.corriganjc.net%2Ffeeds%2F8754570723222510945%2Fcomments%2Fdefault' target='_blank'>
|
||
<img src='https://resources.blogblog.com/img/widgets/subscribe-yahoo.png'/>
|
||
</a>
|
||
<a class='feed-reader-link' href='https://www.corriganjc.net/feeds/8754570723222510945/comments/default' target='_blank'>
|
||
<img align='absmiddle' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
|
||
Atom
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class='bottom'></div>
|
||
</div>
|
||
<div class='subscribe' id='SW_READER_LIST_CLOSED_Subscribe1PER_POST' onclick='return(_SW_toggleReaderList(event, "Subscribe1PER_POST"));'>
|
||
<div class='top'>
|
||
<span class='inner'>
|
||
<img class='subscribe-dropdown-arrow' src='https://resources.blogblog.com/img/widgets/arrow_dropdown.gif'/>
|
||
<span onclick='return(_SW_toggleReaderList(event, "Subscribe1PER_POST"));'>
|
||
<img align='absmiddle' alt='' border='0' class='feed-icon' src='https://resources.blogblog.com/img/icon_feed12.png'/>
|
||
Comments
|
||
</span>
|
||
</span>
|
||
</div>
|
||
<div class='bottom'></div>
|
||
</div>
|
||
</div>
|
||
<div style='clear:both'></div>
|
||
</div>
|
||
</div></div>
|
||
</aside>
|
||
</div>
|
||
<footer class='footer section' id='footer' name='Footer'><div class='widget Attribution' data-version='2' id='Attribution1'>
|
||
<div class='widget-content'>
|
||
<div class='blogger'>
|
||
<a href='https://www.blogger.com' rel='nofollow'>
|
||
<svg class='svg-icon-24'>
|
||
<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_post_blogger_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use>
|
||
</svg>
|
||
Powered by Blogger
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div></footer>
|
||
</div>
|
||
<script type="text/javascript" src="https://resources.blogblog.com/blogblog/data/res/4015412103-rockpool_compiled.js" async="true"></script>
|
||
|
||
<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1363620594-widgets.js"></script>
|
||
<script type='text/javascript'>
|
||
window['__wavt'] = 'AAPvtVkAAruaQtt1EeRbHGa1MTJ6:1789057406647';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d5208889869407022153','//www.corriganjc.net/2017/07/designing-operational-metrics-for.html','5208889869407022153');
|
||
_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '5208889869407022153', 'title': 'The Fast Country', 'url': 'https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html', 'canonicalUrl': 'https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html', 'homepageUrl': 'https://www.corriganjc.net/', 'searchUrl': 'https://www.corriganjc.net/search', 'canonicalHomepageUrl': 'https://www.corriganjc.net/', 'blogspotFaviconUrl': 'https://www.corriganjc.net/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-162951925-2', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': true, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22The Fast Country - Atom\x22 href\x3d\x22https://www.corriganjc.net/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22The Fast Country - RSS\x22 href\x3d\x22https://www.corriganjc.net/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22The Fast Country - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/5208889869407022153/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22The Fast Country - Atom\x22 href\x3d\x22https://www.corriganjc.net/feeds/8754570723222510945/comments/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/1890a9484e710b1c', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'item', 'postId': '8754570723222510945', 'pageName': 'Operational Metrics and Alerts for Distributed Software Systems', 'pageTitle': 'The Fast Country: Operational Metrics and Alerts for Distributed Software Systems'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'Notable', 'localizedName': 'Notable', 'isResponsive': true, 'isAlternateRendering': false, 'isCustom': false, 'variant': 'rockpool_deep_orange', 'variantId': 'rockpool_deep_orange'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Operational Metrics and Alerts for Distributed Software Systems', 'description': ' This post will be about operational metrics and alerts for distributed software systems. What do I mean by that? I mean the metrics and a...', 'url': 'https://www.corriganjc.net/2017/07/designing-operational-metrics-for.html', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': false, 'isPost': true, 'isHomepage': false, 'isArchive': false, 'isLabelSearch': false, 'postId': 8754570723222510945}}, {'name': 'widgets', 'data': [{'title': 'The Fast Country (Header)', 'type': 'Header', 'sectionId': 'header', 'id': 'Header1'}, {'title': '', 'type': 'BlogArchive', 'sectionId': 'sidebar', 'id': 'BlogArchive1'}, {'title': 'Labels', 'type': 'Label', 'sectionId': 'sidebar', 'id': 'Label1'}, {'title': '', 'type': 'ReportAbuse', 'sectionId': 'sidebar', 'id': 'ReportAbuse1'}, {'title': 'Stack Exchange Profile', 'type': 'HTML', 'sectionId': 'sidebar', 'id': 'HTML1'}, {'title': 'Subscribe', 'type': 'Subscribe', 'sectionId': 'sidebar', 'id': 'Subscribe1'}, {'title': 'Search This Blog', 'type': 'BlogSearch', 'sectionId': 'search_top', 'id': 'BlogSearch1'}, {'title': '', 'type': 'FeaturedPost', 'sectionId': 'page_body', 'id': 'FeaturedPost1', 'postId': '5817803921782874068'}, {'title': 'Blog Posts', 'type': 'Blog', 'sectionId': 'page_body', 'id': 'Blog1', 'posts': [{'id': '8754570723222510945', 'title': 'Operational Metrics and Alerts for Distributed Software Systems', 'showInlineAds': false}], 'headerByline': {'regionName': 'header1', 'items': [{'name': 'timestamp', 'label': ''}]}, 'footerBylines': [{'regionName': 'footer1', 'items': [{'name': 'share', 'label': ''}, {'name': 'comments', 'label': 'comments'}, {'name': 'labels', 'label': 'Labels:'}, {'name': 'icons', 'label': ''}]}, {'regionName': 'footer3', 'items': [{'name': 'location', 'label': 'Location:'}]}], 'allBylineItems': [{'name': 'timestamp', 'label': ''}, {'name': 'share', 'label': ''}, {'name': 'comments', 'label': 'comments'}, {'name': 'labels', 'label': 'Labels:'}, {'name': 'icons', 'label': ''}, {'name': 'location', 'label': 'Location:'}]}, {'title': '', 'type': 'PopularPosts', 'sectionId': 'page_body', 'id': 'PopularPosts1', 'posts': [{'title': 'Learning Forth', 'id': 151343023806100627}, {'title': 'Repost: ANTLR Trinity', 'id': 5817803921782874068}, {'title': 'Useful Links: Deploys - It\u2019s Not Actually About Fridays', 'id': 859887108181324528}]}, {'type': 'Attribution', 'sectionId': 'footer', 'id': 'Attribution1'}]}]);
|
||
_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar', document.getElementById('Label1'), {}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_ReportAbuseView', new _WidgetInfo('ReportAbuse1', 'sidebar', document.getElementById('ReportAbuse1'), {}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar', document.getElementById('HTML1'), {}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_SubscribeView', new _WidgetInfo('Subscribe1', 'sidebar', document.getElementById('Subscribe1'), {}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'search_top', document.getElementById('BlogSearch1'), {}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_FeaturedPostView', new _WidgetInfo('FeaturedPost1', 'page_body', document.getElementById('FeaturedPost1'), {}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'page_body', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/700075392-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts1', 'page_body', document.getElementById('PopularPosts1'), {}, 'displayModeFull'));
|
||
_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer', document.getElementById('Attribution1'), {}, 'displayModeFull'));
|
||
</script>
|
||
</body>
|
||
</html> |