<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Thierry Nicola</title>
    <description>The latest articles on DEV Community by Thierry Nicola (@littleiffel).</description>
    <link>https://dev.to/littleiffel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F139019%2F6f99c46b-86b6-4cd5-ad0f-eae9c0e23df8.jpg</url>
      <title>DEV Community: Thierry Nicola</title>
      <link>https://dev.to/littleiffel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/littleiffel"/>
    <language>en</language>
    <item>
      <title>The perfect repository (WebApplication)</title>
      <dc:creator>Thierry Nicola</dc:creator>
      <pubDate>Tue, 16 Feb 2021 00:00:00 +0000</pubDate>
      <link>https://dev.to/littleiffel/the-perfect-repository-webapplication-ak7</link>
      <guid>https://dev.to/littleiffel/the-perfect-repository-webapplication-ak7</guid>
      <description>&lt;p&gt;Starting a new repository, aka new project is always exciting times. Starting fresh, no dependencies, no old code, just pure freedom to code and focus on the application code. But before getting started with that, let's setup the repository. But this raises many questions, public or private, which license to use, &lt;a href="https://gitlab.com/"&gt;gitlab&lt;/a&gt;, &lt;a href="https://github.com/"&gt;github&lt;/a&gt; or &lt;a href="https://sourcehut.org/"&gt;sourcehut&lt;/a&gt;... and then finally the name. (and we all know naming is hard). After the many important decisions i am almost ready to code, but before that let's choose the language, if not forced upon you, you should choose wisely as the project might still be around when the peak times of the language or framework is long gone. Choosing the language might be as important as choosing a partner for life, you have to spend a lot of time together, go through crisis, and there will be moments where you don't understand each other. Choose JS if you are young and wild, choose Java for something steady ...&lt;/p&gt;

&lt;p&gt;Let's assume I made all the choices above and I chose language X and framework Y to build my latest web application. I created the repo and did the &lt;code&gt;git clone&lt;/code&gt; (or added the remote), called &lt;code&gt;y init&lt;/code&gt;and am proudly looking on the first commit with message &lt;code&gt;Init&lt;/code&gt;. Now the fun starts, and even if I am working only me on this project I need to setup everything as if...&lt;/p&gt;

&lt;h3&gt;
  
  
  Local dev &lt;a href="https://littleiffel.net/posts/the-perfect-repository/#local-dev"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Add &lt;code&gt;docker-compose.yml&lt;/code&gt;for local development&lt;/li&gt;
&lt;li&gt;Configure my IDE for this project and save workspace settings file (VSCode or IntelliJ), see as well for next step&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Code Style &lt;a href="https://littleiffel.net/posts/the-perfect-repository/#code-style"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Adding &lt;code&gt;.editorconfig&lt;/code&gt; is the start, need to make sure the code of the framework is correct and probably fix it with my second commit. This is the bare minimum for each repo and this format is well understood by all editors&lt;/li&gt;
&lt;li&gt;Second addition is code Linters (&lt;a href="https://eslint.org/"&gt;ESLint&lt;/a&gt; for JS and TS, &lt;a href="https://github.com/rrrene/credo"&gt;Credo&lt;/a&gt; for Elixir, &lt;a href="https://github.com/stylelint/stylelint"&gt;Stylelint&lt;/a&gt; for CSS, ...), keeps my code consistent&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Testing &lt;a href="https://littleiffel.net/posts/the-perfect-repository/#testing"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Setup up tests (hopefully it comes with the framework)&lt;/li&gt;
&lt;li&gt;Generate Test coverage&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  CI (Automation) &lt;a href="https://littleiffel.net/posts/the-perfect-repository/#ci-(automation)"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Using Github Actions, Gitlab Actions or &lt;a href="https://circleci.com/"&gt;CircleCi&lt;/a&gt; the configuration lives in the repo, which is a must for me.&lt;/li&gt;
&lt;li&gt;Setup basic build to run tests and linter (and validate Code Style), if possible with &lt;a href="https://codeclimate.com/"&gt;CodeClimate&lt;/a&gt;, &lt;a href="https://www.codacy.com/"&gt;Codacy&lt;/a&gt; or similar&lt;/li&gt;
&lt;li&gt;Setup &lt;a href="https://github.com/GoogleChrome/lighthouse-ci"&gt;Lighthouse CI&lt;/a&gt; to validate lighthouse on each PR, yes this can run Lighthouse on each PR before releasing&lt;/li&gt;
&lt;li&gt;Setup deployment to an environment (&lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt;, &lt;a href="https://render.com/"&gt;Render&lt;/a&gt;, &lt;a href="https://www.digitalocean.com/"&gt;Digital Ocean&lt;/a&gt;, or one of the lesser know like AWS, Google Cloud or Azure...etc)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once this is done the repo is ready to handle my code!&lt;/p&gt;

</description>
      <category>repository</category>
      <category>scratch</category>
      <category>setup</category>
    </item>
    <item>
      <title>My developer year 2020</title>
      <dc:creator>Thierry Nicola</dc:creator>
      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/littleiffel/my-developer-year-2020-2mh9</link>
      <guid>https://dev.to/littleiffel/my-developer-year-2020-2mh9</guid>
      <description>&lt;p&gt;The year 2020 was definitely a special year. (If you read this in the far future, you might want to look up on Wikipedia why 2020 is so special). Some tools had a huge impact and changed my every day working. The order is not specific. &lt;/p&gt;

&lt;h3&gt;
  
  
  Dev tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/tmux/tmux"&gt;tmux&lt;/a&gt; Changed how I use my terminal dramatically. I still use a &lt;a href="https://tmuxcheatsheet.com/"&gt;cheatsheet&lt;/a&gt; on a daily basis, but synchronizing panes, making panes fullscreen or side-by-side allows a more effective keyboard-only workflow. Just using plain standard Ubuntu pre configuration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com"&gt;Github CLI&lt;/a&gt; allows to effectively create and do most operations on PRs in the terminal. Github in the browser is fast enough (compared to JIRA it is super fast), but opening PRs right after your commit from terminal is very nice and allows to us in any CI as well. Great Tool. Thanks Github!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Programming
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kotlinlang.org"&gt;Kotlin&lt;/a&gt; Started to learn Kotlin, and so impressed that we started using it on projects at work. I really enjoy reading and writing this languages. After writing Groovy for years, the compiler of Kotlin is impressive and gives such good hints and messages without going back to a Java-style language (requiring too much boilerplate). Kotlin allows to use all Java libs and vice versa. Used the &lt;a href="https://www.manning.com/books/kotlin-in-action"&gt;Kotlin in Action&lt;/a&gt; book which is an excellent resource to get into the language. To get started I used the official Docs from kotlinlang.org. For my personal projects Elixir is still the preferred language, however Kotlin is a close contender and i really looking forward to use more Kotlin in 2021.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://tailwindcss.com/"&gt;Tailwind&lt;/a&gt; Tailwind CSS! Tailwind CSS! This is definitely my favorite piece of software that i learned to love this year. There are many discussions around this CSS 'framework'. But I used it to prototype a few pages and I was so impressed that I spend much more time with it. For me this is the first notable evolution of CSS since Bootstrap v1.0. Often I see people refer to it as an Atomic CSS Framework, but tailwind is not an atomic css framework. They call it themselves 'utility-first' CSS framework, and this is something that allows you to use it as atomic framework but at the same time allows to build your BEM design system using the utility classes. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://svelte.dev/"&gt;SvelteJs&lt;/a&gt; &amp;amp; &lt;a href="https://svelte.dev/"&gt;Sapper&lt;/a&gt; I use React at work, and followed Svelte since it was first announced. The concept to compile the framework out of the Js that is shipped down the pipe is just the most logical, if you think about it. Besides that I enjoy the fresh ideas Svelte has to allow with a simple syntax to manage complex processes. Together with Sapper, after NextJS, my second SSR tool that I learned. Sapper is very interesting and is promising. If you want Svelte and SSR, well Sapper is your solution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://vertx.io/"&gt;Vert.X&lt;/a&gt; Finally i got to spend time with vertx, after looking for many years and wondering what it is. Went through a tough learning curve at the beginning, where for 2-3 days I had no idea what was going on, but once I grasped the concept everything makes so much sense, and I was already designing the architecture of many tools with verticles. The concepts of vertx and all the possibilities it overs on how to design system is just a perfect toolkit. I tried vert.x with Kotlin, but i tried it with Typescript as well &lt;a href="https://reactiverse.io/es4x/"&gt;https://reactiverse.io/es4x/&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://micronaut.io"&gt;Micronaut&lt;/a&gt; For a new tool at work we choose Micronaut as our go to solution. Coming from 'old' Java technology, where starting a server takes around 80 seconds in production, this one starts up in production in under 3 seconds. The work load it can handle is also quite impressive. Still it offers a platform where any Java developer will quickly find at home. We use it with Kotlin. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.graalvm.org/"&gt;GraalVm&lt;/a&gt; To deploy the above service we investigated the GraalVM option of Micronaut. Learned a lot on this technology and I managed to setup a pipeline to deploy the service using GraalVM. Startup times where impressive going from around 2.8 seconds to around 100 milliseconds. We manage services in Java running on Lambda where startup times are far from that. At the end we decided against GraalVm and deploy the service on Fargate AWS to be able to benefit from JVM optimizations over time and also to gain insights into the service, which are currently impossible as of my knowledge today. JVM allows good insights into running services, to debug and optimize performance. Nothing similar exists for Native images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.11ty.dev/"&gt;11ty&lt;/a&gt; A static site generator that i could love finally. I tried many others over the years (Gatsby, Hugo, Jekyll). This one just works and keeps the fun while developing. Yes hugo might be faster, but whenever i switch from editor to the browser the page has already finished rendering. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Game Development
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://godotengine.org"&gt;Godot&lt;/a&gt; In lockdown I started the game development learning and started with Godot. Godot is impressive powerful and the best is that it all fits into a download of under 100MB. It runs on my old Thinkpad with Linux and as well on windows. There are many good courses out there to learn Godot. I used (Heartbeast)[&lt;a href="https://twitter.com/uheartbeast"&gt;https://twitter.com/uheartbeast&lt;/a&gt;] tutorial on how to great an &lt;a href="https://www.youtube.com/watch?v=mAbG8Oi-SvQ&amp;amp;list=PL9FzW-m48fn2SlrW0KoLT4n5egNdX-W9a"&gt;2D Action RPG with Godot&lt;/a&gt;. Shortly after I started the same process with Unity, which is just very similar to Godot. Currently I am still learning and using both. I like the simplicity of Godot and at the same time I like the universe of Unity (many services available, multi-player, ads, deployment...etc). I cannot judge on how well both perform for professional games, but both allow to make fun games&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://unity.com"&gt;Unity&lt;/a&gt; Same as Godot I started to learn via Video lessons the Unity universe. Compared to Godot, the main advantage I see in unity is that Unity lives in universe of additional  services that integrate well and easily with Unity (Multiplayer services, Payments, Ads, Stats,...etc). Comparing Godot and Unity only based on making games I find both quite powerful having a similar approach on how to make games.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>2020</category>
      <category>devtools</category>
      <category>learning</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Choosing Publishing platform for developer</title>
      <dc:creator>Thierry Nicola</dc:creator>
      <pubDate>Wed, 06 Mar 2019 10:27:23 +0000</pubDate>
      <link>https://dev.to/littleiffel/choosing-publishing-platform-for-developer-3d86</link>
      <guid>https://dev.to/littleiffel/choosing-publishing-platform-for-developer-3d86</guid>
      <description>&lt;h2&gt;
  
  
  Bad XP with self hosted Blog
&lt;/h2&gt;

&lt;p&gt;I hosted for many years my own blog on different blogging engines. I can't even remember the name of the first one, but for the last 10 years it was running on Wordpress. My blogging XP has been much the same since then.&lt;/p&gt;

&lt;p&gt;Instead of producing content, I got distracted to keep the blog running, secure and alive. Most common tasks included updating Wordpress, Plugins and themes. After the updates came the phase to fix broken stuff. Mostly plugins not working well with the theme...etc. &lt;/p&gt;

&lt;p&gt;In 2019 I decided to change that as I want again to be able to focus on producing actual content instead of maintaining a website running. &lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing alternative
&lt;/h2&gt;

&lt;p&gt;The first thing I did was to ask on &lt;a href="https://twitter.com/littleiffel/status/1098164292099166208"&gt;twitter&lt;/a&gt; and I quickly abolished my initial idea to use Medium.com. Medium.com with their request to sign up and ask to be paid to view content was definitely a point that seemed weird to me and after feedback on twitter, this was the main point not to use medium. &lt;a href="https://twitter.com/radiomorillo/status/1097956302456844289"&gt;Example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The other suggestions to switch to a static site generator got my full attention as well and I investigate 2 potential candidates. The overhead of keeping a static site online looks much lower than keeping wordpress up and running. The candidates where &lt;a href="https://gohugo.io/"&gt;GoHugo&lt;/a&gt; and &lt;a href="https://www.gatsbyjs.org/"&gt;Gatsby&lt;/a&gt;.&lt;br&gt;
From the 2 i retained Gatbsy as I was closer to the stack I like. 'Go' seems interesting, but somehow not something that gets me motivated to spent time with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Along came Dev.to
&lt;/h2&gt;

&lt;p&gt;However while I was playing with Gatsby, I though on dev.to. Strangely nobod suggested this on twitter? I was already a big consumer on this platform, but I never took the time to see what it was about. I follow the Practicaldev twitter account and I like it. I searched for information on dev.to which I have to say are not easy to find, but it was after listening to the podcast on 8Changelog by Ben](&lt;a href="https://changelog.com/podcast/310"&gt;https://changelog.com/podcast/310&lt;/a&gt;) on OpenSourcing the DEV community that I decided that using dev.to would be much easier than anything selfhosted to publish without giving up on anything.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Selling points of Dev.to for Developers as publishing platform
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Platform Community (removes need to cross post)&lt;/li&gt;
&lt;li&gt;Mardown writing (No need to worry about layout, good control of layout..)&lt;/li&gt;
&lt;li&gt;Endless options for publishing targeted at developers (reference repo, codepen embed....)&lt;/li&gt;
&lt;li&gt;I can align with Code of Conduct&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So this is my first post and I am still learning the endless options for publishing. I use the BETA editor and writing this post was a much better experience than publishing on wordpress before.&lt;/p&gt;

&lt;h2&gt;
  
  
  About Dev.to
&lt;/h2&gt;

&lt;p&gt;Just in case somebody is looking what Dev.to actually is and where they want to go I suggest the following links. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://changelog.com/podcast/310"&gt;Changelog Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/thepracticaldev/dev.to"&gt;Github Repo of Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/devteam"&gt;Dev.to team feed on dev.to&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>blog</category>
      <category>devto</category>
    </item>
  </channel>
</rss>
