From 176b9b9f8369b796165de08b6c483243b1a171cf Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 15:12:47 +0100 Subject: [PATCH 01/13] Another go at the redesign --- _config.yml | 2 +- meta/category/api.md | 1 + meta/category/conference.md | 1 + meta/category/general.md | 1 + meta/category/howto.md | 1 + meta/category/product.md | 1 + meta/tag/api.md | 1 + meta/tag/cloud.md | 1 + meta/tag/cto.md | 1 + meta/tag/culture.md | 1 + meta/tag/custdev.md | 1 + meta/tag/devops.md | 1 + meta/tag/docker.md | 1 + meta/tag/logging.md | 1 + meta/tag/microservice.md | 1 + meta/tag/mobile.md | 1 + meta/tag/open-source.md | 1 + meta/tag/security.md | 1 + meta/tag/smartsteuer.md | 1 + 19 files changed, 19 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 44db45a..a69ad29 100644 --- a/_config.yml +++ b/_config.yml @@ -56,7 +56,7 @@ baseurl: "" # !! You don't need to change any of the configuration flags below !! # -markdown: kramdown +# markdown: kramdown highlighter: rouge permalink: /:title/ diff --git a/meta/category/api.md b/meta/category/api.md index 423cf62..c1fc020 100644 --- a/meta/category/api.md +++ b/meta/category/api.md @@ -3,4 +3,5 @@ layout: post_by_category title: API category: api permalink: /meta/category/api/ +header-img: images/bg-post.jpg --- diff --git a/meta/category/conference.md b/meta/category/conference.md index ac2a777..3e23938 100644 --- a/meta/category/conference.md +++ b/meta/category/conference.md @@ -3,4 +3,5 @@ layout: post_by_category title: Conference category: conference permalink: /meta/category/conference/ +header-img: images/bg-post.jpg --- diff --git a/meta/category/general.md b/meta/category/general.md index 053e765..cd5c0ff 100644 --- a/meta/category/general.md +++ b/meta/category/general.md @@ -3,4 +3,5 @@ layout: post_by_category title: General category: general permalink: /meta/category/general/ +header-img: images/bg-post.jpg --- diff --git a/meta/category/howto.md b/meta/category/howto.md index 73f73b7..8417c95 100644 --- a/meta/category/howto.md +++ b/meta/category/howto.md @@ -3,4 +3,5 @@ layout: post_by_category title: Howto category: howto permalink: /meta/category/howto/ +header-img: images/bg-post.jpg --- diff --git a/meta/category/product.md b/meta/category/product.md index 31e8a28..0f14e9c 100644 --- a/meta/category/product.md +++ b/meta/category/product.md @@ -3,4 +3,5 @@ layout: post_by_category title: Product category: product permalink: /meta/category/product/ +header-img: images/bg-post.jpg --- diff --git a/meta/tag/api.md b/meta/tag/api.md index 497291a..52710ae 100644 --- a/meta/tag/api.md +++ b/meta/tag/api.md @@ -3,4 +3,5 @@ layout: post_by_tag title: API tag: api permalink: /meta/tag/api/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/cloud.md b/meta/tag/cloud.md index d4e8e79..d685206 100644 --- a/meta/tag/cloud.md +++ b/meta/tag/cloud.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Cloud tag: cloud permalink: /meta/tag/cloud/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/cto.md b/meta/tag/cto.md index 012ea78..1670ae9 100644 --- a/meta/tag/cto.md +++ b/meta/tag/cto.md @@ -3,4 +3,5 @@ layout: post_by_tag title: CTO tag: cto permalink: /meta/tag/cto/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/culture.md b/meta/tag/culture.md index ec8474f..da70122 100644 --- a/meta/tag/culture.md +++ b/meta/tag/culture.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Culture tag: culture permalink: /meta/tag/culture/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/custdev.md b/meta/tag/custdev.md index 8df887c..0b33d72 100644 --- a/meta/tag/custdev.md +++ b/meta/tag/custdev.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Customer Development tag: custdev permalink: /meta/tag/custdev/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/devops.md b/meta/tag/devops.md index 233a048..457de88 100644 --- a/meta/tag/devops.md +++ b/meta/tag/devops.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Devops tag: devops permalink: /meta/tag/devops/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/docker.md b/meta/tag/docker.md index 47d5f9f..d5588a6 100644 --- a/meta/tag/docker.md +++ b/meta/tag/docker.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Docker tag: docker permalink: /meta/tag/docker/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/logging.md b/meta/tag/logging.md index 153f12b..a226f92 100644 --- a/meta/tag/logging.md +++ b/meta/tag/logging.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Logging tag: logging permalink: /meta/tag/logging/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/microservice.md b/meta/tag/microservice.md index 76fa770..ff21a32 100644 --- a/meta/tag/microservice.md +++ b/meta/tag/microservice.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Microservice tag: microservice permalink: /meta/tag/microservice/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/mobile.md b/meta/tag/mobile.md index e1b1cd5..6e0c04a 100644 --- a/meta/tag/mobile.md +++ b/meta/tag/mobile.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Mobile tag: mobile permalink: /meta/tag/mobile/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/open-source.md b/meta/tag/open-source.md index 72aca33..d46332c 100644 --- a/meta/tag/open-source.md +++ b/meta/tag/open-source.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Open Source tag: open-source permalink: /meta/tag/open-source/ +header-img: images/bg-post.jpg --- \ No newline at end of file diff --git a/meta/tag/security.md b/meta/tag/security.md index 82e9015..698b006 100644 --- a/meta/tag/security.md +++ b/meta/tag/security.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Security tag: security permalink: /meta/tag/security/ +header-img: images/bg-post.jpg --- diff --git a/meta/tag/smartsteuer.md b/meta/tag/smartsteuer.md index 3df2783..43b51bc 100644 --- a/meta/tag/smartsteuer.md +++ b/meta/tag/smartsteuer.md @@ -3,4 +3,5 @@ layout: post_by_tag title: Smartsteuer tag: smartsteuer permalink: /meta/tag/smartsteuer/ +header-img: images/bg-post.jpg --- \ No newline at end of file From 4cc51a6720a7388c0cf9e91589e64650f498fa85 Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 15:26:03 +0100 Subject: [PATCH 02/13] trying to get images rendered inline again --- _posts/2015-12-11-apidays-paris.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/_posts/2015-12-11-apidays-paris.md b/_posts/2015-12-11-apidays-paris.md index 163e29d..d9bc6c5 100644 --- a/_posts/2015-12-11-apidays-paris.md +++ b/_posts/2015-12-11-apidays-paris.md @@ -11,10 +11,8 @@ header-img: "images/bg-post.jpg" Having just recently come home again from the [APIdays](http://www.apidays.io) conference in Paris (Dec 8-9th 2015), memories are still quite fresh. It was a crowded event, the first day hosting a whopping 800 API enthusiasts, ranging from the geekiest of the geeks to a fair amount of suited business people, showing that talking about APIs is no longer something just the most avantgardist of companies, the most high tech of the tech companies, spend their time with. *Au contraire* (we were in Paris after all), APIs are mainstream, and they contribute to the advancing of collaboration and automatization of the (digital) world as such. -
![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg) (Image by Martin Danielsson, [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/)) -
This was also one of the reasons the topic of APIdays was chosen as such: **Automating IT, Business and the whole society with APIs**. The partly non-techy twist of the subtitle to APIdays was also reflected in the sessions: Split into roughly three (or four) categories, you had a choice between real tech stuff, business related sessions and quite a few workshops. In addition to that, the opening and ending keynotes were more kept in a philosophical tone, featuring (in the opening keynote) [Christian Fauré](http://www.christian-faure.net/) and renowned french philosopher [Bernard Stiegler](https://en.wikipedia.org/wiki/Bernard_Stiegler) (in the ending keynote), presenting their takes on digital automation, collaboration and its effects on society, with respect to APIs. Even [Steven Willmott](http://twitter.com/njyx) pulled off a rather non-techy talk, and even non-businessy talk, rather unusual for a CEO of one of the big players in API space ([3scale](http://www.3scale.net)). From 07cab644c2f8b0a3d56d06155a45882be3e64308 Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 15:43:02 +0100 Subject: [PATCH 03/13] Trying to center the image --- _posts/2015-12-11-apidays-paris.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2015-12-11-apidays-paris.md b/_posts/2015-12-11-apidays-paris.md index d9bc6c5..39957a7 100644 --- a/_posts/2015-12-11-apidays-paris.md +++ b/_posts/2015-12-11-apidays-paris.md @@ -11,8 +11,8 @@ header-img: "images/bg-post.jpg" Having just recently come home again from the [APIdays](http://www.apidays.io) conference in Paris (Dec 8-9th 2015), memories are still quite fresh. It was a crowded event, the first day hosting a whopping 800 API enthusiasts, ranging from the geekiest of the geeks to a fair amount of suited business people, showing that talking about APIs is no longer something just the most avantgardist of companies, the most high tech of the tech companies, spend their time with. *Au contraire* (we were in Paris after all), APIs are mainstream, and they contribute to the advancing of collaboration and automatization of the (digital) world as such. -![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg) -(Image by Martin Danielsson, [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/)) +![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg){: align="middle" } +
(Image by Martin Danielsson, [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/))
This was also one of the reasons the topic of APIdays was chosen as such: **Automating IT, Business and the whole society with APIs**. The partly non-techy twist of the subtitle to APIdays was also reflected in the sessions: Split into roughly three (or four) categories, you had a choice between real tech stuff, business related sessions and quite a few workshops. In addition to that, the opening and ending keynotes were more kept in a philosophical tone, featuring (in the opening keynote) [Christian Fauré](http://www.christian-faure.net/) and renowned french philosopher [Bernard Stiegler](https://en.wikipedia.org/wiki/Bernard_Stiegler) (in the ending keynote), presenting their takes on digital automation, collaboration and its effects on society, with respect to APIs. Even [Steven Willmott](http://twitter.com/njyx) pulled off a rather non-techy talk, and even non-businessy talk, rather unusual for a CEO of one of the big players in API space ([3scale](http://www.3scale.net)). From 251e7cb37114ad45d5cdb6476ca44b924b15302f Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 15:47:34 +0100 Subject: [PATCH 04/13] another attempt --- _posts/2015-12-11-apidays-paris.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2015-12-11-apidays-paris.md b/_posts/2015-12-11-apidays-paris.md index 39957a7..c6435ea 100644 --- a/_posts/2015-12-11-apidays-paris.md +++ b/_posts/2015-12-11-apidays-paris.md @@ -11,8 +11,8 @@ header-img: "images/bg-post.jpg" Having just recently come home again from the [APIdays](http://www.apidays.io) conference in Paris (Dec 8-9th 2015), memories are still quite fresh. It was a crowded event, the first day hosting a whopping 800 API enthusiasts, ranging from the geekiest of the geeks to a fair amount of suited business people, showing that talking about APIs is no longer something just the most avantgardist of companies, the most high tech of the tech companies, spend their time with. *Au contraire* (we were in Paris after all), APIs are mainstream, and they contribute to the advancing of collaboration and automatization of the (digital) world as such. -![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg){: align="middle" } -
(Image by Martin Danielsson, [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/))
+![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg){:align="middle" } +(Image by Martin Danielsson, [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/)) This was also one of the reasons the topic of APIdays was chosen as such: **Automating IT, Business and the whole society with APIs**. The partly non-techy twist of the subtitle to APIdays was also reflected in the sessions: Split into roughly three (or four) categories, you had a choice between real tech stuff, business related sessions and quite a few workshops. In addition to that, the opening and ending keynotes were more kept in a philosophical tone, featuring (in the opening keynote) [Christian Fauré](http://www.christian-faure.net/) and renowned french philosopher [Bernard Stiegler](https://en.wikipedia.org/wiki/Bernard_Stiegler) (in the ending keynote), presenting their takes on digital automation, collaboration and its effects on society, with respect to APIs. Even [Steven Willmott](http://twitter.com/njyx) pulled off a rather non-techy talk, and even non-businessy talk, rather unusual for a CEO of one of the big players in API space ([3scale](http://www.3scale.net)). From 6d5a50de2b7fc1f59aac05ae0b9a098fcfaa7310 Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 15:58:32 +0100 Subject: [PATCH 05/13] Kramdown syntax for centering --- _posts/2015-12-11-apidays-paris.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2015-12-11-apidays-paris.md b/_posts/2015-12-11-apidays-paris.md index c6435ea..c8d8807 100644 --- a/_posts/2015-12-11-apidays-paris.md +++ b/_posts/2015-12-11-apidays-paris.md @@ -11,7 +11,8 @@ header-img: "images/bg-post.jpg" Having just recently come home again from the [APIdays](http://www.apidays.io) conference in Paris (Dec 8-9th 2015), memories are still quite fresh. It was a crowded event, the first day hosting a whopping 800 API enthusiasts, ranging from the geekiest of the geeks to a fair amount of suited business people, showing that talking about APIs is no longer something just the most avantgardist of companies, the most high tech of the tech companies, spend their time with. *Au contraire* (we were in Paris after all), APIs are mainstream, and they contribute to the advancing of collaboration and automatization of the (digital) world as such. -![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg){:align="middle" } +{:.center} +![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg) (Image by Martin Danielsson, [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/)) This was also one of the reasons the topic of APIdays was chosen as such: **Automating IT, Business and the whole society with APIs**. The partly non-techy twist of the subtitle to APIdays was also reflected in the sessions: Split into roughly three (or four) categories, you had a choice between real tech stuff, business related sessions and quite a few workshops. In addition to that, the opening and ending keynotes were more kept in a philosophical tone, featuring (in the opening keynote) [Christian Fauré](http://www.christian-faure.net/) and renowned french philosopher [Bernard Stiegler](https://en.wikipedia.org/wiki/Bernard_Stiegler) (in the ending keynote), presenting their takes on digital automation, collaboration and its effects on society, with respect to APIs. Even [Steven Willmott](http://twitter.com/njyx) pulled off a rather non-techy talk, and even non-businessy talk, rather unusual for a CEO of one of the big players in API space ([3scale](http://www.3scale.net)). From 3c661cc780d0e1f5e159efb45b5d67d05f53a581 Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 16:12:20 +0100 Subject: [PATCH 06/13] Adding center class --- css/clean-blog.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/css/clean-blog.css b/css/clean-blog.css index 4ec0bf2..9843afe 100644 --- a/css/clean-blog.css +++ b/css/clean-blog.css @@ -257,6 +257,9 @@ hr.small { margin-top: 60px; font-weight: 700; } +.center { + text-align: center; +} .caption { text-align: center; font-size: 14px; From 8a9fcd3dacfeef5a993d49b8373a127e6ff4cfd4 Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 16:16:09 +0100 Subject: [PATCH 07/13] tweaking .center css --- css/clean-blog.css | 1 + 1 file changed, 1 insertion(+) diff --git a/css/clean-blog.css b/css/clean-blog.css index 9843afe..0f58aac 100644 --- a/css/clean-blog.css +++ b/css/clean-blog.css @@ -259,6 +259,7 @@ hr.small { } .center { text-align: center; + margin: auto; } .caption { text-align: center; From 03afdd680393d13cbaa185b8547ed4dc94e7c9bd Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 16:18:57 +0100 Subject: [PATCH 08/13] more work on centering images --- _posts/2015-12-11-apidays-paris.md | 2 +- css/clean-blog.css | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/_posts/2015-12-11-apidays-paris.md b/_posts/2015-12-11-apidays-paris.md index c8d8807..1f96458 100644 --- a/_posts/2015-12-11-apidays-paris.md +++ b/_posts/2015-12-11-apidays-paris.md @@ -12,7 +12,7 @@ header-img: "images/bg-post.jpg" Having just recently come home again from the [APIdays](http://www.apidays.io) conference in Paris (Dec 8-9th 2015), memories are still quite fresh. It was a crowded event, the first day hosting a whopping 800 API enthusiasts, ranging from the geekiest of the geeks to a fair amount of suited business people, showing that talking about APIs is no longer something just the most avantgardist of companies, the most high tech of the tech companies, spend their time with. *Au contraire* (we were in Paris after all), APIs are mainstream, and they contribute to the advancing of collaboration and automatization of the (digital) world as such. {:.center} -![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg) +![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg){:margin="auto"} (Image by Martin Danielsson, [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/)) This was also one of the reasons the topic of APIdays was chosen as such: **Automating IT, Business and the whole society with APIs**. The partly non-techy twist of the subtitle to APIdays was also reflected in the sessions: Split into roughly three (or four) categories, you had a choice between real tech stuff, business related sessions and quite a few workshops. In addition to that, the opening and ending keynotes were more kept in a philosophical tone, featuring (in the opening keynote) [Christian Fauré](http://www.christian-faure.net/) and renowned french philosopher [Bernard Stiegler](https://en.wikipedia.org/wiki/Bernard_Stiegler) (in the ending keynote), presenting their takes on digital automation, collaboration and its effects on society, with respect to APIs. Even [Steven Willmott](http://twitter.com/njyx) pulled off a rather non-techy talk, and even non-businessy talk, rather unusual for a CEO of one of the big players in API space ([3scale](http://www.3scale.net)). diff --git a/css/clean-blog.css b/css/clean-blog.css index 0f58aac..9843afe 100644 --- a/css/clean-blog.css +++ b/css/clean-blog.css @@ -259,7 +259,6 @@ hr.small { } .center { text-align: center; - margin: auto; } .caption { text-align: center; From fa5cad8c49986930486d36d925e4db4438d8344f Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 16:21:08 +0100 Subject: [PATCH 09/13] last go at centering images --- _posts/2015-12-11-apidays-paris.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2015-12-11-apidays-paris.md b/_posts/2015-12-11-apidays-paris.md index 1f96458..6ad4b2b 100644 --- a/_posts/2015-12-11-apidays-paris.md +++ b/_posts/2015-12-11-apidays-paris.md @@ -12,7 +12,7 @@ header-img: "images/bg-post.jpg" Having just recently come home again from the [APIdays](http://www.apidays.io) conference in Paris (Dec 8-9th 2015), memories are still quite fresh. It was a crowded event, the first day hosting a whopping 800 API enthusiasts, ranging from the geekiest of the geeks to a fair amount of suited business people, showing that talking about APIs is no longer something just the most avantgardist of companies, the most high tech of the tech companies, spend their time with. *Au contraire* (we were in Paris after all), APIs are mainstream, and they contribute to the advancing of collaboration and automatization of the (digital) world as such. {:.center} -![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg){:margin="auto"} +![Eiffel Tower - Paris]({{ site.url }}/images/2015-12-11-paris-eiffeltower.jpg){:style="margin:auto"} (Image by Martin Danielsson, [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/)) This was also one of the reasons the topic of APIdays was chosen as such: **Automating IT, Business and the whole society with APIs**. The partly non-techy twist of the subtitle to APIdays was also reflected in the sessions: Split into roughly three (or four) categories, you had a choice between real tech stuff, business related sessions and quite a few workshops. In addition to that, the opening and ending keynotes were more kept in a philosophical tone, featuring (in the opening keynote) [Christian Fauré](http://www.christian-faure.net/) and renowned french philosopher [Bernard Stiegler](https://en.wikipedia.org/wiki/Bernard_Stiegler) (in the ending keynote), presenting their takes on digital automation, collaboration and its effects on society, with respect to APIs. Even [Steven Willmott](http://twitter.com/njyx) pulled off a rather non-techy talk, and even non-businessy talk, rather unusual for a CEO of one of the big players in API space ([3scale](http://www.3scale.net)). From a86815baba78bcef97e5ac307714a3ac5d4f9902 Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 16:31:21 +0100 Subject: [PATCH 10/13] Fixing image rendering and centering --- _posts/2015-12-11-apidays-paris.md | 5 ++--- _posts/2015-12-17-letsencrypt.md | 30 +++++++++++----------------- _posts/2016-01-11-log-aggregation.md | 17 ++++++++-------- 3 files changed, 22 insertions(+), 30 deletions(-) diff --git a/_posts/2015-12-11-apidays-paris.md b/_posts/2015-12-11-apidays-paris.md index 6ad4b2b..ae5f0f4 100644 --- a/_posts/2015-12-11-apidays-paris.md +++ b/_posts/2015-12-11-apidays-paris.md @@ -51,10 +51,9 @@ Many of the more technical talks dealt with the usual suspects [Microservices an The return to more serious topics, *Hypermedia* was an astonishingly big topic at the conference. Not that it's not a seriously good idea, but now adoption seems to find its way into real world scenarios, with practical and working specifications popping up, which are being adopted at an increasing rate. As Hypermedia leaves the state of a research topic (see below picture on [HATEOAS](https://en.wikipedia.org/wiki/HATEOAS) - Bless you!) and is actually being used. -
-![HATEOAS - Bless you!]({{ site.url }}/images/2015-12-11-hateoas.jpg) +{:.center} +![HATEOAS - Bless you!]({{ site.url }}/images/2015-12-11-hateoas.jpg){:style="margin:auto"} (Courtesy of [CommitStrip](http://www.commitstrip.com/en/2015/12/03/apiception/)) -
Many people are perhaps scared of the seemingly intransparent topic, but there are a lot of really good use cases for hypermedia. Jason Harmon of PayPal/Braintree ([@jharmn](http://twitter.com/jharmn)) pointed to some of the most prominent ones in his talk: diff --git a/_posts/2015-12-17-letsencrypt.md b/_posts/2015-12-17-letsencrypt.md index 25401c2..fc9a3bf 100644 --- a/_posts/2015-12-17-letsencrypt.md +++ b/_posts/2015-12-17-letsencrypt.md @@ -27,15 +27,13 @@ You will need the following things, which this how-to does not provide you with: To start things, open up the [Azure Portal](https://portal.azure.com) using your favorite web browser, and log in so that you have access to the Azure portal. Then click *Virtual machines (Classic)*, then *Add +*. -
-![New VM]({{ site.url }}/images/letsencrypt-1-new-vm.png) -
+{:.center} +![New VM]({{ site.url }}/images/letsencrypt-1-new-vm.png){:style="margin:auto"} Then, search for `ubuntu` and select *Ubuntu Server 14.04 LTS* (I think you can choose a regular Ubuntu, too, but this one definitely works). -
-![Select Ubuntu]({{ site.url }}/images/letsencrypt-2-select-ubuntu.png) -
+{:.center} +![Select Ubuntu]({{ site.url }}/images/letsencrypt-2-select-ubuntu.png){:style="margin:auto"} Specify the correct settings for the VM. I chose the following specs for the VM: @@ -46,9 +44,8 @@ Specify the correct settings for the VM. I chose the following specs for the VM: * Add two endpoints: http (tunnel port 80) and https (tunnel port 443). See image below. * Leave the rest of the setting to the defaults -
-![VM Settings]({{ site.url }}/images/letsencrypt-3-vm-settings.png) -
+{:.center} +![VM Settings]({{ site.url }}/images/letsencrypt-3-vm-settings.png){:style="margin:auto"} When you're done and all your settings have been confirmed (*OK*), click the *Create* button to provision your VM. @@ -56,9 +53,8 @@ When you're done and all your settings have been confirmed (*OK*), click the *Cr This will take some time (around 5 minutes), but after that, you will find the information on your machine in the following way: -
-![Azure VM Provisioned]({{ site.url }}/images/letsencrypt-4-azure-name.png) -
+{:.center} +![Azure VM Provisioned]({{ site.url }}/images/letsencrypt-4-azure-name.png){:style="margin:auto"} The automatically created DNS entry for your machine is displayed there, and this is the name you can use to connect to the machine using your favorite SSH tool (`ssh` if you're on Linux or Mac OS X, e.g PuTTY if you're on Windows). @@ -101,15 +97,13 @@ In the first step, Let's Encrypt will ask for an administration email address; t After that, you will have to accept the license terms: -
-![License Terms]({{ site.url }}/images/letsencrypt-5-terms.png) -
+{:.center} +![License Terms]({{ site.url }}/images/letsencrypt-5-terms.png){:style="margin:auto"} In the next step, enter the domain name(s) you want to create the certificate for: -
-![Domain Name]({{ site.url }}/images/letsencrypt-6-domain-name.png) -
+{:.center} +![Domain Name]({{ site.url }}/images/letsencrypt-6-domain-name.png){:style="margin:auto"} Usually, you will create one certificate per domain you will use. Exceptions will be for example when creating a certificate which is both valid for `www.contoso.com` and `contoso.com`, if your web server answers to both. In this case, we will just provide `myserver.contoso.com` (this might be a web service or similar). diff --git a/_posts/2016-01-11-log-aggregation.md b/_posts/2016-01-11-log-aggregation.md index 4c9da36..59febe7 100644 --- a/_posts/2016-01-11-log-aggregation.md +++ b/_posts/2016-01-11-log-aggregation.md @@ -19,17 +19,17 @@ The problems it tackles are: - Support for a great number of event sources and outputs One of the most prolific open source solutions on the market is the [ELK stack](https://www.elastic.co/videos/introduction-to-the-elk-stack) created by Elastic. -
- -
+ +<{:.center}> + + ELK stands for Elasticsearch – Logstash – Kibana and they are respectively their Search engine, Log Shipper and Visualization frontend solutions. Elasticsearch becomes the nexus for gathering and storing the log data and it is not exclusive to Logstash. Another very good data collection solution on the market is Fluentd, and it also supports Elasticsearch (amongst others) as the destination for it’s gathered data. So using the same data repository and frontend solutions, this becomes the EFK stack and if you do a bit of searching you will discover many people have chosen to substitute Elastic's logstash with FluentD and we will talk about why that is in a minute. -
- -
+{:.center} + # Logstash vs FluentD Both of them are very capable, have [hundreds](https://www.elastic.co/guide/en/logstash/current/input-plugins.html) and [hundreds](http://www.fluentd.org/plugins) of plugins available and are being maintained actively by corporation backed support. @@ -156,9 +156,8 @@ Sample output from stdout: ~~~ And here is the result of trying to use it in a visualization: -
- -
+{:.center} + I should mention, what you are seeing is the result of 6 messages that all have the field sourceProject set to the value "Test-Analyzed-Field". From 1af34cb61cff9d212ac416e3776af2f4bcb76071 Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 16:49:49 +0100 Subject: [PATCH 11/13] Converting post to new markdown syntax --- _posts/2016-01-11-log-aggregation.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/_posts/2016-01-11-log-aggregation.md b/_posts/2016-01-11-log-aggregation.md index 59febe7..aec7368 100644 --- a/_posts/2016-01-11-log-aggregation.md +++ b/_posts/2016-01-11-log-aggregation.md @@ -21,7 +21,7 @@ The problems it tackles are: One of the most prolific open source solutions on the market is the [ELK stack](https://www.elastic.co/videos/introduction-to-the-elk-stack) created by Elastic. <{:.center}> - +![Log aggregation Elk]({{ site.url }}/images/logaggregation-elk.png){:style="margin:auto; width:50%"} ELK stands for Elasticsearch – Logstash – Kibana and they are respectively their Search engine, Log Shipper and Visualization frontend solutions. Elasticsearch becomes the nexus for gathering and storing the log data and it is not exclusive to Logstash. @@ -29,7 +29,7 @@ Elasticsearch becomes the nexus for gathering and storing the log data and it is Another very good data collection solution on the market is Fluentd, and it also supports Elasticsearch (amongst others) as the destination for it’s gathered data. So using the same data repository and frontend solutions, this becomes the EFK stack and if you do a bit of searching you will discover many people have chosen to substitute Elastic's logstash with FluentD and we will talk about why that is in a minute. {:.center} - +![Log aggregation Efk]({{ site.url }}/images/logaggregation-efk.png){:style="margin:auto; width:20%"} # Logstash vs FluentD Both of them are very capable, have [hundreds](https://www.elastic.co/guide/en/logstash/current/input-plugins.html) and [hundreds](http://www.fluentd.org/plugins) of plugins available and are being maintained actively by corporation backed support. @@ -82,8 +82,7 @@ A message sent to Elasticsearch from fluentd would contain these values: *-this isn't the exact message, this is the result of the stdout output plugin-* - -~~~ruby +~~~ 2015-11-12 06:34:01 -0800 tag.common: {"message":"[ ajp-apr-127.0.0.1-8009-exec-3] LogInterceptor INFO ==== Request ===","time_as_string":"2015-11-12 06:34:01 -0800"} 2015-11-12 06:34:01 -0800 tag.common: {"message":"[ ajp-apr-127.0.0.1-8009-exec-3] LogInterceptor INFO GET /monitor/broker/ HTTP/1.1\n","time_as_string":"2015-11-12 06:34:01 -0800"} @@ -99,7 +98,7 @@ In order to build it yourself you only need the `record_transformer` filter that Next you need to parse the timestamp of your logs into separate date, time and millisecond components (which is basically what the better-timestamp plugin asks you to do, to some extent), and then to create a filter that would match all the messages you will send to Elasticsearch and to create the `@timestamp` value by appending the 3 components. This makes use of the fact that fluentd also allows you to run ruby code within your record_transformer filters to accommodate for more special log manipulation tasks. -~~~xml +~~~ type record_transformer enable_ruby true @@ -112,7 +111,7 @@ Next you need to parse the timestamp of your logs into separate date, time and m The result is that the above sample will come out like this: -~~~ruby +~~~ 2015-12-12 05:26:15 -0800 akai.common: {"date_string":"2015-11-12","time_string":"06:34:01","msec":"471","message":"[ ajp-apr-127.0.0.1-8009-exec-3] LogInterceptor INFO ==== Request ===","@timestamp":"2015-11-12T06:34:01.471Z"} 2015-12-12 05:26:15 -0800 akai.common: {"date_string":"2015-11-12","time_string":"06:34:01","msec":"473","message":"[ ajp-apr-127.0.0.1-8009-exec-3] LogInterceptor INFO GET /monitor/broker/ HTTP/1.1\n","@timestamp":"2015-11-12T06:34:01.473Z"} ~~~ @@ -137,7 +136,7 @@ For instance, by using the record_transformer I would send the hostname and also Using this example configuration I tried to create a pie chart showing the number of messages per project for a dashboard. Here is what I got. -~~~ruby +~~~ type record_transformer enable_ruby true @@ -151,13 +150,14 @@ Using this example configuration I tried to create a pie chart showing the numbe Sample output from stdout: -~~~ruby +~~~ 2015-12-12 06:01:35 -0800 clear: {"date_string":"2015-10-15","time_string":"06:37:32","msec":"415","message":"[amelJettyClient(0xdc64419)-706] jetty:test/test INFO totallyAnonymousContent: http://whyAreYouReadingThis?:)/history/3374425?limit=1","@timestamp":"2015-10-15T06:37:32.415Z","sourceProject":"Test-Analyzed-Field"} ~~~ And here is the result of trying to use it in a visualization: + {:.center} - +![Log aggregation analyzed]({{ site.url }}/images/logaggregation-analyzed-field.png){:style="margin:auto; width:35%"} I should mention, what you are seeing is the result of 6 messages that all have the field sourceProject set to the value "Test-Analyzed-Field". @@ -169,7 +169,7 @@ And the solution is: When Elasticsearch creates a new index, it will rely on the And what you basically need to do is to do a curl put with that json content to ES and then all the indices created that are prefixed with `logstash-*` will use that template. Be aware that with the fluent-plugin-elasticsearch you can specify your own index prefix so make sure to adjust the template to match your prefix: -~~~bash +~~~ curl -XPUT localhost:9200/_template/template_doru -d '{ "template" : "logstash-*", "settings" : {.... @@ -179,7 +179,7 @@ curl -XPUT localhost:9200/_template/template_doru -d '{ The main thing to note in the whole template is this section: -~~~json +~~~ json "string_fields" : { "match" : "*", "match_mapping_type" : "string", From e87e5fac03cbd1e994e36d33f9c5ef9af485fc0f Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 16:52:45 +0100 Subject: [PATCH 12/13] some tweaking --- _posts/2016-01-11-log-aggregation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2016-01-11-log-aggregation.md b/_posts/2016-01-11-log-aggregation.md index aec7368..f16116f 100644 --- a/_posts/2016-01-11-log-aggregation.md +++ b/_posts/2016-01-11-log-aggregation.md @@ -20,8 +20,8 @@ The problems it tackles are: One of the most prolific open source solutions on the market is the [ELK stack](https://www.elastic.co/videos/introduction-to-the-elk-stack) created by Elastic. -<{:.center}> -![Log aggregation Elk]({{ site.url }}/images/logaggregation-elk.png){:style="margin:auto; width:50%"} +{:.center} +![Log aggregation Elk]({{ site.url }}/images/logaggregation-elk.png){:style="margin:auto; width:70%"} ELK stands for Elasticsearch – Logstash – Kibana and they are respectively their Search engine, Log Shipper and Visualization frontend solutions. Elasticsearch becomes the nexus for gathering and storing the log data and it is not exclusive to Logstash. @@ -29,7 +29,7 @@ Elasticsearch becomes the nexus for gathering and storing the log data and it is Another very good data collection solution on the market is Fluentd, and it also supports Elasticsearch (amongst others) as the destination for it’s gathered data. So using the same data repository and frontend solutions, this becomes the EFK stack and if you do a bit of searching you will discover many people have chosen to substitute Elastic's logstash with FluentD and we will talk about why that is in a minute. {:.center} -![Log aggregation Efk]({{ site.url }}/images/logaggregation-efk.png){:style="margin:auto; width:20%"} +![Log aggregation Efk]({{ site.url }}/images/logaggregation-efk.png){:style="margin:auto; width:50%"} # Logstash vs FluentD Both of them are very capable, have [hundreds](https://www.elastic.co/guide/en/logstash/current/input-plugins.html) and [hundreds](http://www.fluentd.org/plugins) of plugins available and are being maintained actively by corporation backed support. From eb80b81bc5290d19a4b9f89d2a7e46af32524751 Mon Sep 17 00:00:00 2001 From: Holger Reinhardt Date: Wed, 3 Feb 2016 16:54:54 +0100 Subject: [PATCH 13/13] final tweak --- _posts/2016-01-11-log-aggregation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2016-01-11-log-aggregation.md b/_posts/2016-01-11-log-aggregation.md index f16116f..fd759ec 100644 --- a/_posts/2016-01-11-log-aggregation.md +++ b/_posts/2016-01-11-log-aggregation.md @@ -29,7 +29,7 @@ Elasticsearch becomes the nexus for gathering and storing the log data and it is Another very good data collection solution on the market is Fluentd, and it also supports Elasticsearch (amongst others) as the destination for it’s gathered data. So using the same data repository and frontend solutions, this becomes the EFK stack and if you do a bit of searching you will discover many people have chosen to substitute Elastic's logstash with FluentD and we will talk about why that is in a minute. {:.center} -![Log aggregation Efk]({{ site.url }}/images/logaggregation-efk.png){:style="margin:auto; width:50%"} +![Log aggregation Efk]({{ site.url }}/images/logaggregation-efk.png){:style="margin:auto; width:40%"} # Logstash vs FluentD Both of them are very capable, have [hundreds](https://www.elastic.co/guide/en/logstash/current/input-plugins.html) and [hundreds](http://www.fluentd.org/plugins) of plugins available and are being maintained actively by corporation backed support.