WJ';}@media only screen and (min-width:37.5rem){.bar-header .logo a:after{content:'> Souhaieb Tarhouni'}}.header-post{min-height:31.25rem;position:fixed;width:100%;}.header-post .content{margin:auto;max-width:50rem}.header-post .subheader{display:table;padding:20px;}.header-post .subheader a{border:2px solid #fff;border-radius:20px;padding:0 10px;}@media only screen and (min-width:37.5rem){.header-post .subheader a{padding:0 10px}}.header-post .date{font-weight:300;font-style:normal;font-size:1rem}.header-post h1{font-size:1.875rem;margin:0 0 30px;text-shadow:3px 3px #004c79;}@media only screen and (min-width:37.5rem){.header-post h1{font-size:3.75rem}}.header-post .subtitle{font-weight:300;font-style:normal;font-size:1.25rem}.header-post h1,.header-post .subtitle,.header-post .date{color:#fff;text-align:center}.header-post a,.header-post p{color:#fff;text-decoration:none;font-weight:300;font-style:normal;font-size:1.125rem}.post-content h1:before,.frame-content h1:before,.post-content h2:before,.frame-content h2:before,.post-content h3:before,.frame-content h3:before,.post-content h4:before,.frame-content h4:before,.post-content h5:before,.frame-content h5:before,.tag-title:before{display:block;content:" ";margin-top:-60px;height:75px;visibility:hidden}.post{position:relative;top:31.25rem;background:#fff}.post-content,.frame-content{padding:2.5rem 0;}.post-content img,.frame-content img{max-width:100%;margin:1.875rem auto;display:block}.post-content p,.frame-content p,.post-content h1,.frame-content h1,.post-content h2,.frame-content h2,.post-content h3,.frame-content h3,.post-content h4,.frame-content h4,.post-content ul,.frame-content ul,.post-content ol,.frame-content ol,.post-content .tags,.frame-content .tags,.post-content iframe,.frame-content iframe,.post-content .button-post,.frame-content .button-post{*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;padding:0 1.25rem;margin:0 auto 1.875rem;font-weight:300;font-style:normal;font-size:1.25rem;line-height:2;letter-spacing:.069rem;}.post-content p:before,.frame-content p:before,.post-content h1:before,.frame-content h1:before,.post-content h2:before,.frame-content h2:before,.post-content h3:before,.frame-content h3:before,.post-content h4:before,.frame-content h4:before,.post-content ul:before,.frame-content ul:before,.post-content ol:before,.frame-content ol:before,.post-content .tags:before,.frame-content .tags:before,.post-content iframe:before,.frame-content iframe:before,.post-content .button-post:before,.frame-content .button-post:before,.post-content p:after,.frame-content p:after,.post-content h1:after,.frame-content h1:after,.post-content h2:after,.frame-content h2:after,.post-content h3:after,.frame-content h3:after,.post-content h4:after,.frame-content h4:after,.post-content ul:after,.frame-content ul:after,.post-content ol:after,.frame-content ol:after,.post-content .tags:after,.frame-content .tags:after,.post-content iframe:after,.frame-content iframe:after,.post-content .button-post:after,.frame-content .button-post:after{content:'';display:table}.post-content p:after,.frame-content p:after,.post-content h1:after,.frame-content h1:after,.post-content h2:after,.frame-content h2:after,.post-content h3:after,.frame-content h3:after,.post-content h4:after,.frame-content h4:after,.post-content ul:after,.frame-content ul:after,.post-content ol:after,.frame-content ol:after,.post-content .tags:after,.frame-content .tags:after,.post-content iframe:after,.frame-content iframe:after,.post-content .button-post:after,.frame-content .button-post:after{clear:both}@media only screen and (min-width:37.5rem){.post-content p,.frame-content p,.post-content h1,.frame-content h1,.post-content h2,.frame-content h2,.post-content h3,.frame-content h3,.post-content h4,.frame-content h4,.post-content ul,.frame-content ul,.post-content ol,.frame-content ol,.post-content .tags,.frame-content .tags,.post-content iframe,.frame-content iframe,.post-content .button-post,.frame-content .button-post{font-size:1.25rem}}.post-content li,.frame-content li{padding:.625rem 0;}.post-content li > ul,.frame-content li > ul{margin-bottom:0}.post-content p,.frame-content p,.post-content li,.frame-content li{color:#333;}.post-content p code,.frame-content p code,.post-content li code,.frame-content li code{color:#005f97;word-wrap:break-word}.post-content a,.frame-content a{color:#005f97;border-bottom:2px dashed #005f97;font-weight:300;font-style:normal;text-decoration:none;transition:all .3s;}.post-content a:hover,.frame-content a:hover{background:#005f97;color:#fff}.post-content .externalLink:after,.frame-content .externalLink:after{display:inline-block;content:'';color:#005f97;background-image:url("/assets/img/external.svg");background-size:100%;margin-left:.313rem;width:1.125rem;height:1.125rem}.post-content iframe,.frame-content iframe{margin-top:1.875rem;width:100%}.post-content #twitter-widget-0,.frame-content #twitter-widget-0,.post-content .instagram-media,.frame-content .instagram-media,.post-content .twitter-tweet,.frame-content .twitter-tweet{margin:20px auto !important}.post-content h1,.frame-content h1,.post-content h2,.frame-content h2,.post-content h3,.frame-content h3,.post-content h4,.frame-content h4,.post-content h5,.frame-content h5{font-weight:800;font-style:normal;}.post-content h1,.frame-content h1{font-size:1.875rem;line-height:1.4;}@media only screen and (min-width:37.5rem){.post-content h1,.frame-content h1{font-size:2.813rem}}.post-content h2,.frame-content h2{font-size:1.375rem;line-height:1.4;}@media only screen and (min-width:37.5rem){.post-content h2,.frame-content h2{font-size:2.188rem}}.post-content h3,.frame-content h3{font-size:1.125rem;line-height:1.4;}@media only screen and (min-width:37.5rem){.post-content h3,.frame-content h3{font-size:1.563rem}}.post-content ul,.frame-content ul,.post-content ol,.frame-content ol{padding-left:2.5rem}.post-content ul.post-list,.frame-content ul.post-list{padding:0;}.post-content ul.post-list.svg-serie p,.frame-content ul.post-list.svg-serie p{padding:0}@media only screen and (max-width:37.5rem){.post-content ul.post-list,.frame-content ul.post-list{padding:0 1.25rem}}.post-content blockquote,.frame-content blockquote{*zoom:1;width:auto;max-width:45.625rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;border-left:.313rem solid #005f97;padding:0 1.875rem;margin:3.125rem auto;}.post-content blockquote:before,.frame-content blockquote:before,.post-content blockquote:after,.frame-content blockquote:after{content:'';display:table}.post-content blockquote:after,.frame-content blockquote:after{clear:both}@media only screen and (max-width:37.5rem){.post-content blockquote,.frame-content blockquote{width:90%}}.post-content blockquote p,.frame-content blockquote p{color:rgba(0,0,0,0.6);margin:0;}@media only screen and (max-width:37.5rem){.post-content blockquote p,.frame-content blockquote p{font-size:1.125rem;line-height:1.5;padding:0}}.post-content hr,.frame-content hr{*zoom:1;width:auto;max-width:47.5rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;border:1px solid #f2f2f2;margin:50px auto}.post-content hr:before,.frame-content hr:before,.post-content hr:after,.frame-content hr:after{content:'';display:table}.post-content hr:after,.frame-content hr:after{clear:both}.post-content > table,.frame-content > table{margin:3.125rem auto;}@media only screen and (max-width:37.5rem){.post-content > table,.frame-content > table{display:none}}.post-content > table th,.frame-content > table th,.post-content > table td,.frame-content > table td{border:.125rem solid #ccc;padding:.313rem}.post-content td > pre,.frame-content td > pre{padding:0;margin:0}.post-content td.gutter.gl,.frame-content td.gutter.gl{padding-right:1.563rem;line-height:1.5rem}.tag-title{font-weight:300;font-style:normal;font-size:2.25rem;margin-top:3.75rem;*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;}.tag-title:before,.tag-title:after{content:'';display:table}.tag-title:after{clear:both}@media only screen and (max-width:37.5rem){.tag-title{font-size:1.75rem;margin-top:1.25rem;padding:0 1.25rem}}.post-list{list-style:none;margin:1.563rem auto;}@media only screen and (max-width:37.5rem){.post-list{padding:0 1.25rem}}.post-list a{display:block;border-bottom:1px solid #dadada;padding:.625rem 0;text-decoration:none;transition:all .5s;}.post-list a:hover{color:#002f4c;border-bottom:1px solid #002f4c;background:#fff}.post-list .entry-date{float:right;}@media only screen and (max-width:37.5rem){.post-list .entry-date{display:none}}iframe[src*='ads-iframe']{display:none}.share{*zoom:1;width:auto;max-width:800px;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;text-align:center;}.share:before,.share:after{content:'';display:table}.share:after{clear:both}.share svg{margin:.938rem;width:35px;height:35px}.share a{text-decoration:none;border:none}pre{background:#282c34;width:100%;padding:1.25rem 0;color:#fff;margin:1.875rem 0;font-size:.875rem;}@media only screen and (min-width:37.5rem){pre{font-size:1rem;padding:2.5rem 0;margin:3.125rem 0}}pre code{*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;padding:0 1.25rem;}pre code:before,pre code:after{content:'';display:table}pre code:after{clear:both}@media only screen and (max-width:37.5rem){pre code{overflow-x:scroll}}pre span{line-height:1.5rem;font-family:'Monaco','Consolas','Menlo',monospace}.highlight{margin:1.25rem 0;}@media only screen and (min-width:37.5rem){.highlight{word-wrap:break-word}}.token.attr-name{color:#c5a5c5}.token.boolean{color:#ff8b50}.token.tag{color:#fc929e}.token.string{color:#8dc891}.token.punctuation{color:#5fb3b3}.token.function{color:#79b6f2}.token.attr-value{color:#8dc891}.token.keyword{color:#c5a5c5}.token.important{font-weight:400}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.property,.token.number,.token.function-name,.token.constant,.token.symbol,.token.deleted{color:#5a9bcf}.token.selector,.token.char,.token.builtin,.token.inserted{color:#d8dee9}.token.operator,.token.entity,.token.url,.token.variable{color:#d7deea}.token.atrule,.token.class-name{color:#fac863}.namespace{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70);opacity:.7}.author{background:#f2f2f2;display:table;width:100%;padding:2.5rem 0;margin:2.5rem 0;}@media only screen and (min-width:37.5rem){.author{padding:3.125rem 0}}.author .details{margin:auto;max-width:50rem;padding:0 1.25rem;}@media only screen and (max-width:37.5rem){.author .details{text-align:center}}.author img{border-radius:50%;display:block;margin:auto;}@media only screen and (min-width:37.5rem){.author img{float:left;margin-right:3.125rem}}.author .def{color:#808080;font-size:1.125rem;font-weight:300;font-style:normal;margin:.625rem;}@media only screen and (min-width:37.5rem){.author .def{margin:0;padding-top:1.563rem}}.author .name{margin:0;}.author .name a{font-weight:800;font-style:normal;text-decoration:none;color:#000;font-size:1.875rem;}.author .name a:hover{color:#005f97}@media only screen and (min-width:37.5rem){.author .name a{font-size:2.813rem}}.author .desc{font-weight:300;font-style:normal;margin:.625rem;font-size:1rem;}@media only screen and (min-width:37.5rem){.author .desc{font-size:1.25rem}}.author .email{text-decoration:none;color:#005f97}.comments{*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;padding:0 1.25rem;}.comments:before,.comments:after{content:'';display:table}.comments:after{clear:both}.comments h3{margin:0 0 1.875rem;font-size:1.875rem}footer{background:#005f97;padding:1.563rem 0;margin-top:100px;}footer p,footer a{text-decoration:none;font-weight:300;font-style:normal;color:#fff;text-align:center;margin:0}.post-jekyll .title-category{color:#b31917}.post-jekyll .post-content h1,.post-jekyll .post-content h2,.post-jekyll .post-content h3,.post-jekyll .post-content h4{color:#b31917}.post-jekyll .post-content a{color:#b31917;border-bottom:2px dashed #b31917;}.post-jekyll .post-content a:hover{background-color:#b31917;color:#fff}.post-jekyll .post-content strong{color:#b31917}.post-jekyll .post-content p code,.post-jekyll .post-content li code{color:#b31917}.post-jekyll .post-content blockquote{border-left:.313rem solid #b31917}.post-jekyll .header-post,.post-jekyll .header-site{background-color:#b31917;}.post-jekyll .header-post h1,.post-jekyll .header-site h1{text-shadow:3px 3px #8f1412}.post-jekyll .bar-header .logo a{color:#b31917}.post-jekyll .author .email{color:#b31917}.post-jekyll .share a:hover svg{fill:#b31917}@media only screen and (max-width:37.5rem){.post-jekyll body.search-overlay:after{background-color:#b31917}}.post-jekyll .icon-menu{fill:#b31917}.post-jekyll .cursos-menu{color:#b31917}.post-jekyll .box-body h2{color:#b31917}.post-jekyll .box-body .tags a{color:#b31917;border:1px solid #b31917;}.post-jekyll .box-body .tags a:hover{color:#fff;background:#b31917}.post-jekyll .related-post a{color:#b31917}.post-jekyll aside{background-color:#b31917;}.post-jekyll aside nav li a:hover{color:#b31917}.post-jekyll .ribbon span{background-color:#b31917;}.post-jekyll .ribbon span:before{border-left:3px solid #7d1210;border-top:3px solid #7d1210}.post-jekyll .ribbon span:after{border-right:3px solid #7d1210;border-top:3px solid #7d1210}.post-jekyll footer{background-color:#b31917}.post-css .title-category{color:#2da0c3}.post-css .post-content h1,.post-css .post-content h2,.post-css .post-content h3,.post-css .post-content h4{color:#2da0c3}.post-css .post-content a{color:#2da0c3;border-bottom:2px dashed #2da0c3;}.post-css .post-content a:hover{background-color:#2da0c3;color:#fff}.post-css .post-content strong{color:#2da0c3}.post-css .post-content p code,.post-css .post-content li code{color:#2da0c3}.post-css .post-content blockquote{border-left:.313rem solid #2da0c3}.post-css .header-post,.post-css .header-site{background-color:#2da0c3;}.post-css .header-post h1,.post-css .header-site h1{text-shadow:3px 3px #24809c}.post-css .bar-header .logo a{color:#2da0c3}.post-css .author .email{color:#2da0c3}.post-css .share a:hover svg{fill:#2da0c3}@media only screen and (max-width:37.5rem){.post-css body.search-overlay:after{background-color:#2da0c3}}.post-css .icon-menu{fill:#2da0c3}.post-css .cursos-menu{color:#2da0c3}.post-css .box-body h2{color:#2da0c3}.post-css .box-body .tags a{color:#2da0c3;border:1px solid #2da0c3;}.post-css .box-body .tags a:hover{color:#fff;background:#2da0c3}.post-css .related-post a{color:#2da0c3}.post-css aside{background-color:#2da0c3;}.post-css aside nav li a:hover{color:#2da0c3}.post-css .ribbon span{background-color:#2da0c3;}.post-css .ribbon span:before{border-left:3px solid #207088;border-top:3px solid #207088}.post-css .ribbon span:after{border-right:3px solid #207088;border-top:3px solid #207088}.post-css footer{background-color:#2da0c3}.post-js .title-category{color:#d6ba32}.post-js .post-content h1,.post-js .post-content h2,.post-js .post-content h3,.post-js .post-content h4{color:#d6ba32}.post-js .post-content a{color:#d6ba32;border-bottom:2px dashed #d6ba32;}.post-js .post-content a:hover{background-color:#d6ba32;color:#fff}.post-js .post-content strong{color:#d6ba32}.post-js .post-content p code,.post-js .post-content li code{color:#d6ba32}.post-js .post-content blockquote{border-left:.313rem solid #d6ba32}.post-js .header-post,.post-js .header-site{background-color:#d6ba32;}.post-js .header-post h1,.post-js .header-site h1{text-shadow:3px 3px #b09823}.post-js .bar-header .logo a{color:#d6ba32}.post-js .author .email{color:#d6ba32}.post-js .share a:hover svg{fill:#d6ba32}@media only screen and (max-width:37.5rem){.post-js body.search-overlay:after{background-color:#d6ba32}}.post-js .icon-menu{fill:#d6ba32}.post-js .cursos-menu{color:#d6ba32}.post-js .box-body h2{color:#d6ba32}.post-js .box-body .tags a{color:#d6ba32;border:1px solid #d6ba32;}.post-js .box-body .tags a:hover{color:#fff;background:#d6ba32}.post-js .related-post a{color:#d6ba32}.post-js aside{background-color:#d6ba32;}.post-js aside nav li a:hover{color:#d6ba32}.post-js .ribbon span{background-color:#d6ba32;}.post-js .ribbon span:before{border-left:3px solid #9a851f;border-top:3px solid #9a851f}.post-js .ribbon span:after{border-right:3px solid #9a851f;border-top:3px solid #9a851f}.post-js footer{background-color:#d6ba32}.post-svg .title-category{color:#7d669e}.post-svg .post-content h1,.post-svg .post-content h2,.post-svg .post-content h3,.post-svg .post-content h4{color:#7d669e}.post-svg .post-content a{color:#7d669e;border-bottom:2px dashed #7d669e;}.post-svg .post-content a:hover{background-color:#7d669e;color:#fff}.post-svg .post-content strong{color:#7d669e}.post-svg .post-content p code,.post-svg .post-content li code{color:#7d669e}.post-svg .post-content blockquote{border-left:.313rem solid #7d669e}.post-svg .header-post,.post-svg .header-site{background-color:#7d669e;}.post-svg .header-post h1,.post-svg .header-site h1{text-shadow:3px 3px #64517f}.post-svg .bar-header .logo a{color:#7d669e}.post-svg .author .email{color:#7d669e}.post-svg .share a:hover svg{fill:#7d669e}@media only screen and (max-width:37.5rem){.post-svg body.search-overlay:after{background-color:#7d669e}}.post-svg .icon-menu{fill:#7d669e}.post-svg .cursos-menu{color:#7d669e}.post-svg .box-body h2{color:#7d669e}.post-svg .box-body .tags a{color:#7d669e;border:1px solid #7d669e;}.post-svg .box-body .tags a:hover{color:#fff;background:#7d669e}.post-svg .related-post a{color:#7d669e}.post-svg aside{background-color:#7d669e;}.post-svg aside nav li a:hover{color:#7d669e}.post-svg .ribbon span{background-color:#7d669e;}.post-svg .ribbon span:before{border-left:3px solid #57476f;border-top:3px solid #57476f}.post-svg .ribbon span:after{border-right:3px solid #57476f;border-top:3px solid #57476f}.post-svg footer{background-color:#7d669e}.post-dev .title-category{color:#637a91}.post-dev .post-content h1,.post-dev .post-content h2,.post-dev .post-content h3,.post-dev .post-content h4{color:#637a91}.post-dev .post-content a{color:#637a91;border-bottom:2px dashed #637a91;}.post-dev .post-content a:hover{background-color:#637a91;color:#fff}.post-dev .post-content strong{color:#637a91}.post-dev .post-content p code,.post-dev .post-content li code{color:#637a91}.post-dev .post-content blockquote{border-left:.313rem solid #637a91}.post-dev .header-post,.post-dev .header-site{background-color:#637a91;}.post-dev .header-post h1,.post-dev .header-site h1{text-shadow:3px 3px #4f6274}.post-dev .bar-header .logo a{color:#637a91}.post-dev .author .email{color:#637a91}.post-dev .share a:hover svg{fill:#637a91}@media only screen and (max-width:37.5rem){.post-dev body.search-overlay:after{background-color:#637a91}}.post-dev .icon-menu{fill:#637a91}.post-dev .cursos-menu{color:#637a91}.post-dev .box-body h2{color:#637a91}.post-dev .box-body .tags a{color:#637a91;border:1px solid #637a91;}.post-dev .box-body .tags a:hover{color:#fff;background:#637a91}.post-dev .related-post a{color:#637a91}.post-dev aside{background-color:#637a91;}.post-dev aside nav li a:hover{color:#637a91}.post-dev .ribbon span{background-color:#637a91;}.post-dev .ribbon span:before{border-left:3px solid #455565;border-top:3px solid #455565}.post-dev .ribbon span:after{border-right:3px solid #455565;border-top:3px solid #455565}.post-dev footer{background-color:#637a91}.post-misc .title-category{color:#7aab13}.post-misc .post-content h1,.post-misc .post-content h2,.post-misc .post-content h3,.post-misc .post-content h4{color:#7aab13}.post-misc .post-content a{color:#7aab13;border-bottom:2px dashed #7aab13;}.post-misc .post-content a:hover{background-color:#7aab13;color:#fff}.post-misc .post-content strong{color:#7aab13}.post-misc .post-content p code,.post-misc .post-content li code{color:#7aab13}.post-misc .post-content blockquote{border-left:.313rem solid #7aab13}.post-misc .header-post,.post-misc .header-site{background-color:#7aab13;}.post-misc .header-post h1,.post-misc .header-site h1{text-shadow:3px 3px #62890f}.post-misc .bar-header .logo a{color:#7aab13}.post-misc .author .email{color:#7aab13}.post-misc .share a:hover svg{fill:#7aab13}@media only screen and (max-width:37.5rem){.post-misc body.search-overlay:after{background-color:#7aab13}}.post-misc .icon-menu{fill:#7aab13}.post-misc .cursos-menu{color:#7aab13}.post-misc .box-body h2{color:#7aab13}.post-misc .box-body .tags a{color:#7aab13;border:1px solid #7aab13;}.post-misc .box-body .tags a:hover{color:#fff;background:#7aab13}.post-misc .related-post a{color:#7aab13}.post-misc aside{background-color:#7aab13;}.post-misc aside nav li a:hover{color:#7aab13}.post-misc .ribbon span{background-color:#7aab13;}.post-misc .ribbon span:before{border-left:3px solid #55780d;border-top:3px solid #55780d}.post-misc .ribbon span:after{border-right:3px solid #55780d;border-top:3px solid #55780d}.post-misc footer{background-color:#7aab13}.post-tools .title-category{color:#b31917}.post-tools .post-content h1,.post-tools .post-content h2,.post-tools .post-content h3,.post-tools .post-content h4{color:#b31917}.post-tools .post-content a{color:#b31917;border-bottom:2px dashed #b31917;}.post-tools .post-content a:hover{background-color:#b31917;color:#fff}.post-tools .post-content strong{color:#b31917}.post-tools .post-content p code,.post-tools .post-content li code{color:#b31917}.post-tools .post-content blockquote{border-left:.313rem solid #b31917}.post-tools .header-post,.post-tools .header-site{background-color:#b31917;}.post-tools .header-post h1,.post-tools .header-site h1{text-shadow:3px 3px #8f1412}.post-tools .bar-header .logo a{color:#b31917}.post-tools .author .email{color:#b31917}.post-tools .share a:hover svg{fill:#b31917}@media only screen and (max-width:37.5rem){.post-tools body.search-overlay:after{background-color:#b31917}}.post-tools .icon-menu{fill:#b31917}.post-tools .cursos-menu{color:#b31917}.post-tools .box-body h2{color:#b31917}.post-tools .box-body .tags a{color:#b31917;border:1px solid #b31917;}.post-tools .box-body .tags a:hover{color:#fff;background:#b31917}.post-tools .related-post a{color:#b31917}.post-tools aside{background-color:#b31917;}.post-tools aside nav li a:hover{color:#b31917}.post-tools .ribbon span{background-color:#b31917;}.post-tools .ribbon span:before{border-left:3px solid #7d1210;border-top:3px solid #7d1210}.post-tools .ribbon span:after{border-right:3px solid #7d1210;border-top:3px solid #7d1210}.post-tools footer{background-color:#b31917}.night-mode{background:#444;}.night-mode a,.night-mode .related-post a,.night-mode .page_number{color:#d6ba32}.night-mode .bar-header,.night-mode .box-item{background:#2b2b2b}.night-mode .box-item{border:none;}.night-mode .box-item .box-body h2{color:#ddd}.night-mode .box-item .box-body p{color:#b1b1b1}.night-mode .box-item:hover{box-shadow:1px 2px 10px #000}.night-mode .home,.night-mode .post{background:#444}.night-mode .title-category,.night-mode .tag-title{color:#ddd}.night-mode .post-content h1,.night-mode .post-content h2,.night-mode .post-content h3,.night-mode .post-content h4{color:#ddd}.night-mode .post-content a{color:#ddd;border-bottom:2px dashed #ddd;}.night-mode .post-content a:hover{background-color:#2b2b2b;color:#fff}.night-mode .post-content strong,.night-mode .post-content code{color:#ddd;background:#000;padding:2px 5px;border-radius:5px}.night-mode .post-content p,.night-mode .post-content li,.night-mode .post-content code{color:#ddd}.night-mode .post-content pre code{background:none;padding:0 1.25rem}.night-mode .post-content .externalLink:after{-webkit-filter:invert(1);filter:invert(1)}.night-mode .author{background:#2b2b2b;}.night-mode .author .name a,.night-mode .author .desc,.night-mode .author .email{color:#ddd}.night-mode .related-post_title{color:#ddd}.night-mode .share{color:#ddd;}.night-mode .share a{-webkit-filter:invert(1);filter:invert(1);}.night-mode .share a:hover{color:#a6a6a6}.night-mode .comments{color:#ddd}.night-mode .header-post,.night-mode .header-site{background-color:#2b2b2b;color:#ddd}.night-mode .bar-header .logo a{color:#ddd}.night-mode .author .email{color:#ddd}.night-mode .share a:hover svg{fill:#ddd}@media only screen and (max-width:37.5rem){.night-mode body.search-overlay:after{background-color:#ddd}}.night-mode .icon-menu{fill:#ddd}.night-mode .cursos-menu{color:#ddd}.night-mode a.previous,.night-mode a.next{background:#2b2b2b;}.night-mode a.previous:hover,.night-mode a.next:hover{color:#d6ba32}.night-mode aside{background-color:#2b2b2b;}.night-mode aside nav li a:hover{color:#2b2b2b}.night-mode footer{background-color:#2b2b2b}.post-content{padding-bottom:0}.related{*zoom:1;width:auto;max-width:50rem;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:0;padding-right:0;padding:0 1.25rem}.related:before,.related:after{content:'';display:table}.related:after{clear:both}.related-post_title{text-align:center}.related-posts_section{-webkit-column-count:1;-moz-column-count:1;column-count:1;-webkit-column-gap:3.75rem;-moz-column-gap:3.75rem;column-gap:3.75rem;list-style:none;padding:0 1.25rem;}@media only screen and (min-width:37.5rem){.related-posts_section{-webkit-column-count:2;-moz-column-count:2;column-count:2;padding:1.25rem 0 0}}.related-post{text-align:left;-webkit-column-break-inside:avoid;-moz-column-break-inside:avoid;column-break-inside:avoid;}.related-post a{margin:auto;display:block;font-size:1rem;text-decoration:none;padding-bottom:1.25rem;}.related-post a:hover{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80);opacity:.8}
Introduction today when i opened my laptop, to start working, one of my preferred productivity app didn’t start, i opened it using open -a
, from /Applications
folder using Finder
, but nothing seemed to work, i returned to an older version, it worked properly; after that i tried to update another app by downloading the dmg than copy/paste under /Applications
folder, the same error as for the first app happened again, definitely i have to try to find a fix.
after thinking a little, trying opening the apps from the terminal to see error messages, didn’t help at all open -a
or /Applications/APPNAME.app/contents/MacOS/APPNAME
, unlike linux opening the app from terminal didn’t show any helpful error message.
after some googling, i stumbled upon 🔗 , which give me a hint, the macOS Console.app
How to fix it shortly, how i proceeded:
i opened the Console
app i clicked on system.log
under Reports
on the left sidebar of the Console
app i typed the name of app in the top search field
of Console
app i opened the app again using Launchpad
or from /Applications
folder using Finder
read the messages with the timestamp close to when you opened the app voila, now i get errors on the Console
that can give me a lead on how to fix the problem
removing service since it exited with consistent failure - OS_REASON_CODESIGNING | When validating /Applications/APPNAME.app/Contents/MacOS/APPNAME
.... Binary is improperly signed
it’s a problem with codesignature, it’s something that i faced before, normaly codesign the app will resolve the problem and it can be done from terminal using:
sudo codesign --force --deep --sign "/Applications/APPNAME.app/Contents/MacOS/APPNAME"
N.B: some time you need to execute the above command on multiple file because the app has Dependencies that are not properly signed, for that repeat the process described above until all error messages go away.
Just one thing to keep in mind, on MacOS Console.app
is your friend
Coments