<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Jacopo Nardiello</title>
        <description>Jacopo Nardiello is a founder and technologist building infrastructure, open source and AI automation products, with deep experience in Kubernetes and cloud native.</description>
        <link>https://jnardiello.me/</link>
        <atom:link href="https://jnardiello.me/feed.xml" rel="self" type="application/rss+xml" />
        
        <item>
            <title>Managing sensitive data in Git repositories</title>
            <description>&lt;p&gt;More often than not, especially if you work with operations, you end up managing sensitive data both for your projects and, more importantly, for your clients. Screwing up usually have devastating consequences.&lt;/p&gt;

&lt;p&gt;While some might argue that secrets should be handled carefully and should never &lt;strong&gt;ever&lt;/strong&gt; be committed to repositories, I find that this is almost always impossible. Almost every project at some point will have keys, password, configuration, etc that you will need to handle.&lt;/p&gt;

&lt;p&gt;While many considers private repositories to be secure enough, what if any of your accounts gets compromised? What if an ill-intentioned individual gain access to your private repositories? This is a situation that can be effectively mitigated by simply uploading your secrets &lt;strong&gt;encrypted&lt;/strong&gt;. Gaining access to a repo won’t be enough, they will also need to have access to your GPG keys.&lt;/p&gt;

&lt;p&gt;For this specific purpose, I’ve used in the past &lt;a href=&quot;https://github.com/AGWA/git-crypt&quot;&gt;git-crypt&lt;/a&gt;. This tool lets you transparently encrypt your sensitive data. Locally you will have a decrypted version of your files, while on commit they will be encrypted and then pushed. Pairing this with a team management system such as &lt;a href=&quot;https://www.lastpass.com/&quot;&gt;lastpass&lt;/a&gt; to share encryption passwords with your team, let’s you have a battle-tested way of handling your secrets.&lt;/p&gt;

&lt;h2 id=&quot;installing-git-crypt-on-fedora-26&quot;&gt;Installing git-crypt on Fedora 26&lt;/h2&gt;

&lt;p&gt;While &lt;a href=&quot;https://github.com/AGWA/git-crypt/blob/master/INSTALL.md&quot;&gt;installing git-crypt&lt;/a&gt; is pretty straight-forward on Mac OS X, it’s a bit of a hassle on Linux.&lt;/p&gt;

&lt;p&gt;In fedora, you must first ensure to have a few dependencies installed before compiling from source.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Installing dependencies&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;dnf &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;gcc-c++
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;dnf &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;openssl-devel

&lt;span class=&quot;c&quot;&gt;# Insalling git-crypt&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;make &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PREFIX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/local
&lt;span class=&quot;nb&quot;&gt;chmod &lt;/span&gt;jnardiello:jnardiello git-crypt&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;using-git-crypt&quot;&gt;Using git-crypt&lt;/h2&gt;

&lt;p&gt;In order to use git-crypt, you need to add your GPG key to the trusted sources which can access the decrypted files.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Initializing your git-crypt repo&lt;/span&gt;
git-crypt init

&lt;span class=&quot;c&quot;&gt;# Add your GPG credentials to unlock the repo&lt;/span&gt;
git-crypt add-gpg-user &lt;span class=&quot;nt&quot;&gt;--trusted&lt;/span&gt; &amp;lt;USER_ID or gpg email&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Once a project is initialized, you must now configure which files you want to encrypt. In order to do that, you should create a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.gitattributes&lt;/code&gt; file and add your sensitive paths there (note that it does support wildcards a bit like your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.gitignore&lt;/code&gt;).&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Example of .gitattributes&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;.key &lt;span class=&quot;nv&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;git-crypt &lt;span class=&quot;nv&quot;&gt;diff&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;git-crypt&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;After this is done, the key will be added to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.git-crypt&lt;/code&gt; and the user will be able to decrypt the files.&lt;/p&gt;

&lt;p&gt;When cloning an encrypted repository, with the correct GPG key configured, you can decrypt it by issuing the command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git-crypt unlock&lt;/code&gt;&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;This is the best way I’ve found so far. Do you have any suggestion? If so, I’d love to hear your opinion.&lt;/p&gt;
</description>
            <pubDate>Mon, 06 Nov 2017 23:00:00 +0000</pubDate>
            <link>https://jnardiello.me/managing-sensitive-data-in-git-repositories.html</link>
            <guid isPermaLink="true">https://jnardiello.me/managing-sensitive-data-in-git-repositories.html</guid>
        </item>
        
        <item>
            <title>Hello Spreaker</title>
            <description>&lt;p&gt;&lt;img src=&quot;https://scontent-mxp1-1.xx.fbcdn.net/hphotos-xaf1/t31.0-8/11078257_10152831403801347_8094100540044052540_o.jpg&quot; alt=&quot;Hello Spreaker&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The big news is that starting next week I’ll be joining &lt;a href=&quot;http://spreaker.com&quot;&gt;Spreaker&lt;/a&gt; as a backend and architecture engineer. If you don’t know them already, they are one of the big players in the podcasting world. Their platform (Web app and &lt;a href=&quot;https://www.spreaker.com/download&quot;&gt;Spreaker Studio&lt;/a&gt;) allows to record, distribute, measure and listen podcasts. Their community currently hosts thousands of shows.&lt;/p&gt;

&lt;p&gt;While I have no idea what it’s going to be like working with them, I know for sure that their tech team has some of the best engineers I know and the company culture they managed to grow is just amazing (more on this in future posts).&lt;/p&gt;

&lt;p&gt;On my side it’s going to be a fairly big shift and a completely new challenge. I will spend a lot of my time automating their infrastructure, which means less pure software engineering and more devops.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The only thing I’m sure is that I’ll learn hell of a lot and that’s all I could ask.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Next week I’ll be in Rimini to work with &lt;a href=&quot;http://twitter.com/pracucci&quot;&gt;Marco&lt;/a&gt;. I’ll keep you all posted and wish me luck!&lt;/p&gt;
</description>
            <pubDate>Mon, 08 Feb 2016 11:30:00 +0000</pubDate>
            <link>https://jnardiello.me/hello-spreaker.html</link>
            <guid isPermaLink="true">https://jnardiello.me/hello-spreaker.html</guid>
        </item>
        
        <item>
            <title>Goodbye WorkDigital, Goodbye London</title>
            <description>&lt;p&gt;January was my last month at &lt;a href=&quot;http://workdigital.co.uk/&quot;&gt;WorkDigital&lt;/a&gt; and, more generally, in London. My year-long journey with them has been a hell of a ride. Their domain of work is complex and particularly interesting. I owe them the chance of working on some really puzzling problems from which I genuinely learnt a lot.&lt;/p&gt;

&lt;h2 id=&quot;what-im-really-proud-of&quot;&gt;What I’m really proud of&lt;/h2&gt;

&lt;p&gt;During the last year I worked on (many) different things and mostly touched every part of the core company platform. I spent time on a wide range of activites spanning from rewriting internal core components, refactoring old bits of forgotten code, played/benchmarked candidate tools and frameworks, cracked the good old “how the hell do we process javascript” problem and mostly annoyed my colleagues with “did you test this and that?”. In the meantime I organized and hosted a few meetups in the DHI silicon rounabout offices, worth mentioning &lt;a href=&quot;http://codebar.io&quot;&gt;Codebar&lt;/a&gt; and the &lt;a href=&quot;http://globalday.coderetreat.org/&quot;&gt;Global Day of Code Retreat&lt;/a&gt; with the folks at &lt;a href=&quot;http://twitter.com/8thLightInc&quot;&gt;@8thligh&lt;/a&gt;.&lt;br /&gt;
&lt;img src=&quot;https://jnardiello.me/img/gdcr.jpg&quot; alt=&quot;GDCR&quot; /&gt;&lt;/p&gt;

&lt;p&gt;But of course, all this was only during our spare time. Our true main activity at the office was playing street-fighter.
&lt;img src=&quot;https://jnardiello.me/img/street_fighter.jpg&quot; alt=&quot;Woaaah&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Or sumo.
&lt;img src=&quot;https://jnardiello.me/img/sumo.jpg&quot; alt=&quot;Sumo&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-didnt-go-that-well&quot;&gt;What didn’t go that well&lt;/h2&gt;

&lt;p&gt;Despite the overall good work we carried on I still feel a few things could have been done in a different (better) way:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;We had very little customer interaction. This is a industry-wide problem and WorldDigital was no exception, it’s like engineers have to be isolated from the world so that they can’t be distracted and can be “managed” properly. I think this is a massive missed opportunity as it’s from customer interaction that you create real value.&lt;/li&gt;
  &lt;li&gt;The way we estimated things was broken, and we knew that. Unfortunately we forgot to tell managers who, by manual, treated them as deadlines. Quite a mess.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;a-big-thank-you&quot;&gt;A big thank you&lt;/h2&gt;

&lt;p&gt;Working with the WorkDigital team was a turning point in my career. I learnt a lot, it was a great experience and I met some great people. I really couldn’t ask for more.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;To the whole team, a big thank you. You guys really made my days.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;what-is-next&quot;&gt;What is next&lt;/h2&gt;

&lt;p&gt;My next adventure is starting soon and it will be a blast. Just &lt;a href=&quot;http://twitter.com/jnardiello&quot;&gt;stay tuned&lt;/a&gt;.&lt;/p&gt;
</description>
            <pubDate>Thu, 04 Feb 2016 09:30:00 +0000</pubDate>
            <link>https://jnardiello.me/goodbye-workdigital.html</link>
            <guid isPermaLink="true">https://jnardiello.me/goodbye-workdigital.html</guid>
        </item>
        
        <item>
            <title>Back to blogging</title>
            <description>&lt;p&gt;Despite my best intentions, this blog went dead for a little over two years.&lt;/p&gt;

&lt;p&gt;Now I really feel it’s time to change, it’s critical to start writing again. My main goal is to start shaping organizations and the technical community around me, publishing articles is the first small step toward this direction.&lt;/p&gt;

&lt;p&gt;I will try to keep all my articles relevant and focused on software engineering and automation. I might throw a few articles about finance too as I’m increasingly getting into it.&lt;/p&gt;

&lt;p&gt;This blog doesn’t provide (on purpose) a comments section. That’s because I love interactions and conversations therefore you are highly encouraged to ping me directly &lt;a href=&quot;http://twitter.com/jnardiello&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
            <pubDate>Sun, 31 Jan 2016 17:53:00 +0000</pubDate>
            <link>https://jnardiello.me/back-to-blogging.html</link>
            <guid isPermaLink="true">https://jnardiello.me/back-to-blogging.html</guid>
        </item>
        
        <item>
            <title>Presenting Tenzo</title>
            <description>&lt;p&gt;&lt;a href=&quot;https://github.com/jnardiello/tenzo&quot;&gt;Tenzo&lt;/a&gt; is an essential theme for Jekyll (and my first open source project, be kind!). I started crafting it for my personal website and then decided to add some extra-work and ship a ready-to-use package for the public. If you are curious to see it in action, well, you are already doing so.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/jnardiello/tenzo&quot;&gt;Tenzo&lt;/a&gt;  has been crafted keeping &lt;em&gt;semplicity&lt;/em&gt; in mind. It’s not fancy, it’s not extra-packed with features. It is essential and wants to keep the focus on you and on content.&lt;/p&gt;

&lt;h2 id=&quot;typography&quot;&gt;Typography&lt;/h2&gt;

&lt;p&gt;Tenzo is based on two fonts: ‘Roboto’ for headlines and ‘Cambo’ for paragraphs. It aims to be extra-clear and a pleasure to read. All fonts are completely free, imported via Google fonts.&lt;/p&gt;

&lt;h2 id=&quot;mobile-first&quot;&gt;Mobile first&lt;/h2&gt;

&lt;p&gt;The only thing that matters is what you write. Tenzo will behave very well when displayed on phones and tablets.&lt;/p&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;p&gt;To use Tenzo, all you have to do is to download or clone the github repo, place it in a working jekyll environment and you should almost be good to go. Yes, if you fork the repo on github, &lt;em&gt;it will be running out of the box with github pages&lt;/em&gt;. Just make sure to rename the repository accordingly.&lt;/p&gt;

&lt;p&gt;All the configuration happens in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt;. After filling the config file, if you are running a self-hosted (or local) instance Run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Jekyll serve&lt;/code&gt; and you’ll be ready to start writing.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;styling-posts&quot;&gt;Styling posts&lt;/h2&gt;

&lt;p&gt;Tenzo is pure CSS3. There’s no Javascript, it doesn’t use any plugin.&lt;/p&gt;

&lt;p&gt;An important aspect to note is that it uses &lt;em&gt;custom html elements&lt;/em&gt;. I have no idea how this will affect website indicization, but - at least for me - calling all the elements “div” is a nonsense - (yet, i’m not sure if it’s a feature or a bug, only time will tell). Let’s try to introduce some innovation.&lt;/p&gt;

&lt;h3 id=&quot;headings&quot;&gt;Headings&lt;/h3&gt;
&lt;p&gt;h1 is reserved for the article main title.&lt;/p&gt;
&lt;h2 id=&quot;h2-looks-like-this&quot;&gt;H2 Looks like this&lt;/h2&gt;
&lt;h3 id=&quot;h3-looks-like-this&quot;&gt;H3 Looks like this&lt;/h3&gt;
&lt;h4 id=&quot;h4-looks-like-this&quot;&gt;H4 Looks like this&lt;/h4&gt;
&lt;h5 id=&quot;h5-looks-like-this&quot;&gt;H5 Looks like this&lt;/h5&gt;

&lt;h3 id=&quot;code-snippets&quot;&gt;Code snippets&lt;/h3&gt;
&lt;p&gt;Here is how a code snippet is displayed:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Hi, &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;Tom&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#=&amp;gt; prints &apos;Hi, Tom&apos; to STDOUT.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;images&quot;&gt;Images&lt;/h3&gt;
&lt;p&gt;Here is how including images looks like:
&lt;img src=&quot;http://octodex.github.com/images/baracktocat.jpg&quot; alt=&quot;Octocode&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;lists&quot;&gt;Lists&lt;/h3&gt;
&lt;h4 id=&quot;unordered-list&quot;&gt;Unordered List&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;First item&lt;/li&gt;
  &lt;li&gt;Second item&lt;/li&gt;
  &lt;li&gt;Third item&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;ordered-list&quot;&gt;Ordered List&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;First item&lt;/li&gt;
  &lt;li&gt;Second item&lt;/li&gt;
  &lt;li&gt;Third item&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;horizontal-rule&quot;&gt;Horizontal rule&lt;/h3&gt;

&lt;p&gt;And if (by any chance) you want to add a horizontal rule, here is what you get:&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;bugs-and-issues&quot;&gt;Bugs and Issues&lt;/h2&gt;

&lt;p&gt;Tenzo isn’t perfect, but aims high. If you find any bug or if you have any suggestion do not hesitateto contribute on github.&lt;/p&gt;

&lt;h2 id=&quot;credits&quot;&gt;Credits&lt;/h2&gt;

&lt;p&gt;I took the best from the best. For all the typography work i used &lt;a href=&quot;http://typecast.com&quot;&gt;typecast&lt;/a&gt;. Code is displayed using Pygment, code snippet style was inspired by &lt;a href=&quot;http://svbtle.com&quot;&gt;svbtle&lt;/a&gt;.&lt;/p&gt;
</description>
            <pubDate>Mon, 20 Jan 2014 15:38:00 +0000</pubDate>
            <link>https://jnardiello.me/presenting-tenzo-for-jekyll.html</link>
            <guid isPermaLink="true">https://jnardiello.me/presenting-tenzo-for-jekyll.html</guid>
        </item>
        
        <item>
            <title>Hello world</title>
            <description>&lt;p&gt;After quite a while I &lt;em&gt;finally&lt;/em&gt; launched my personal website. I’ve tried multiple times in the past and I’ve been using different platforms (wordpress, medium, ghost) but in the end i was never happy with the final result. I’ve spent by far too many hours trying to build a virtual place i’d be happy to call “home”.&lt;/p&gt;

&lt;p&gt;For every time i tried, every time i ended up being just frustrated. While reaching a nice appearance has been always the easiest part, knowing that the content was published with platforms that were (at best) “&lt;em&gt;black bagic&lt;/em&gt;” and on which i had very little control has been always extremely frustrating. I wanted something &lt;em&gt;simple&lt;/em&gt;, where &lt;em&gt;i owned the content&lt;/em&gt;, on which i could &lt;em&gt;hack easily&lt;/em&gt; (without an unreasonable amount of time spent studying random documentation) and where &lt;em&gt;content was king&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So far, everything i tried either required lot of time spent in configuration, unreasonable server/platform costs or my published content was owned by third parties (or a mix of these).&lt;/p&gt;

&lt;p&gt;Finally i reached equilibrium. Switched to Jekyll, crafted the theme (&lt;a href=&quot;https://github.com/jnardiello/tenzo&quot;&gt;Tenzo&lt;/a&gt;), hosted on github.&lt;/p&gt;

&lt;p&gt;Here i’ll be writing mostly about coding and computer science, occasionally about math and life. It will be an interesting adventure writing here and i hope that you will enjoy the ride with me. You can follow me on &lt;a href=&quot;http://twitter.com/jnardiello&quot;&gt;twitter&lt;/a&gt; or add to your favurites the rss feed.&lt;/p&gt;

&lt;p&gt;PS: English isn’t my first language, it is very very likely that i’ll make mistakes. Please, if you spot any, open an issue on &lt;a href=&quot;https://github.com/jnardiello/jnardiello.github.io&quot;&gt;github&lt;/a&gt;.&lt;/p&gt;
</description>
            <pubDate>Mon, 20 Jan 2014 14:55:00 +0000</pubDate>
            <link>https://jnardiello.me/hello-world.html</link>
            <guid isPermaLink="true">https://jnardiello.me/hello-world.html</guid>
        </item>
        
    </channel>
</rss>
