<?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>Forem: opt-nc</title>
    <description>The latest articles on Forem by opt-nc (@optnc).</description>
    <link>https://forem.com/optnc</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%2Forganization%2Fprofile_image%2F5458%2F98dc3bfe-45f7-48c6-a182-21944edf46b6.jpg</url>
      <title>Forem: opt-nc</title>
      <link>https://forem.com/optnc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/optnc"/>
    <language>en</language>
    <item>
      <title>🥳 We built the cli of our dreams to send sms ❣️</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Mon, 14 Apr 2025 21:48:18 +0000</pubDate>
      <link>https://forem.com/optnc/we-built-the-cli-of-our-dreams-to-send-sms-3c7m</link>
      <guid>https://forem.com/optnc/we-built-the-cli-of-our-dreams-to-send-sms-3c7m</guid>
      <description>&lt;h2&gt;
  
  
  🤔 About the benefits of &lt;code&gt;cli&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Since a few years now, we started to design various &lt;code&gt;cli&lt;/code&gt; for internal batch usage, on our Java Stack on top of &lt;a href="https://picocli.info/" rel="noopener noreferrer"&gt;&lt;code&gt;picocli&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://quarkus.io/" rel="noopener noreferrer"&gt;&lt;code&gt;quarkus&lt;/code&gt;&lt;/a&gt;, delivered as images, and run on &lt;a href="https://podman.io/" rel="noopener noreferrer"&gt;&lt;code&gt;podman&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Our goal was to : &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Avoid as much as possible to write&lt;/strong&gt; unnecessary documentations : each tool should describe himself according to a common pattern&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rely on the best possible practices&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;And overall : &lt;strong&gt;deliver a consistent first-class UX to OPS&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Therefore I started to read and follow the following site to follow the best possible guidelines : &lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/cli-guidelines" rel="noopener noreferrer"&gt;
        cli-guidelines
      &lt;/a&gt; / &lt;a href="https://github.com/cli-guidelines/cli-guidelines" rel="noopener noreferrer"&gt;
        cli-guidelines
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Command Line Interface Guidelines&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;An open-source guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.&lt;/p&gt;
&lt;p&gt;This is the source code for the guide. To read it, go to &lt;a href="https://clig.dev/" rel="nofollow noopener noreferrer"&gt;clig.dev&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://discord.gg/EbAW5rUCkE" rel="nofollow noopener noreferrer"&gt;Join us on Discord&lt;/a&gt; if you want to discuss the guide, or just chat about CLI design.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Contributing&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;The content of the guide lives in a single Markdown file, &lt;a href="https://github.com/cli-guidelines/cli-guidelines/content/_index.md" rel="noopener noreferrer"&gt;content/_index.md&lt;/a&gt;.
The website is built using &lt;a href="https://gohugo.io/" rel="nofollow noopener noreferrer"&gt;Hugo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To run Hugo locally to see your changes, run:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;$ brew install hugo
$ cd &amp;lt;path&amp;gt;/&amp;lt;to&amp;gt;/cli-guidelines/
$ hugo server
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To view the site on an external mobile device, run:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;hugo server --bind 0.0.0.0 --baseURL http://$(hostname -f):1313
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;License&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;This work is licensed under a
&lt;a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow noopener noreferrer"&gt;Creative Commons Attribution-ShareAlike 4.0 International License&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/cli-guidelines/cli-guidelines" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  🎯 Our &lt;code&gt;Go&lt;/code&gt;(al)
&lt;/h2&gt;

&lt;p&gt;On my very own side I gave a try during a hackathon to Go and &lt;a href="https://goreleaser.com/" rel="noopener noreferrer"&gt;&lt;code&gt;goreleaser&lt;/code&gt;&lt;/a&gt; : &lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/adriens/github-copilot-1-day-build-challenge-eol-a-tiny-go-client-to-manage-eols-j" class="crayons-story__hidden-navigation-link"&gt;⏳GitHub Copilot 1-Day Build Challenge : eol, a tiny Go client to manage eols&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/adriens" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F446871%2F3e9ded5c-f368-4906-a277-35e56c9f97a7.png" alt="adriens profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/adriens" class="crayons-story__secondary fw-medium m:hidden"&gt;
              adriens
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                adriens
                
              
              &lt;div id="story-author-preview-content-2200466" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/adriens" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F446871%2F3e9ded5c-f368-4906-a277-35e56c9f97a7.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;adriens&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/adriens/github-copilot-1-day-build-challenge-eol-a-tiny-go-client-to-manage-eols-j" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 11 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/adriens/github-copilot-1-day-build-challenge-eol-a-tiny-go-client-to-manage-eols-j" id="article-link-2200466"&gt;
          ⏳GitHub Copilot 1-Day Build Challenge : eol, a tiny Go client to manage eols
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/githubchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;githubchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/go"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;go&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/adriens/github-copilot-1-day-build-challenge-eol-a-tiny-go-client-to-manage-eols-j" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;17&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/adriens/github-copilot-1-day-build-challenge-eol-a-tiny-go-client-to-manage-eols-j#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              9&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;p&gt;Then, I wanted to bring my team to the Go experience at the office  as sometimes we need to deliver apps to &lt;strong&gt;systems on which we don't want or can't install new softwares&lt;/strong&gt; : so delivering a static binary thanks to Go and &lt;a href="https://goreleaser.com/" rel="noopener noreferrer"&gt;&lt;code&gt;goreleaser&lt;/code&gt;&lt;/a&gt; seemed a good option for effortless cross-compilation... and of course build the best possible &lt;code&gt;UX&lt;/code&gt; thanks to &lt;a href="https://cobra.dev/" rel="noopener noreferrer"&gt;Cobra&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So I used this opportunity to sharpen our skill with my team : &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1909597554590855170-986" src="https://platform.twitter.com/embed/Tweet.html?id=1909597554590855170"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1909597554590855170-986');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1909597554590855170&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;And...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build the best possible &lt;code&gt;cli&lt;/code&gt; of our dreams to send &lt;code&gt;sms&lt;/code&gt; from a terminal and see what we can deliver and learn from that.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🍿 &lt;code&gt;v1.0.0&lt;/code&gt; &lt;code&gt;brew&lt;/code&gt; unboxing
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/jHg7Ydlo55E"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  📜 The story behind the product development
&lt;/h2&gt;

&lt;p&gt;As I always say to my team &amp;amp; student, always &lt;a href="https://www.goodreads.com/book/show/7108725-start-with-why?ref=nav_sb_ss_1_12" rel="noopener noreferrer"&gt;"Start with why"&lt;/a&gt; : &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1910458188945867005-564" src="https://platform.twitter.com/embed/Tweet.html?id=1910458188945867005"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1910458188945867005-564');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1910458188945867005&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;After having drafted my ideas : &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1908757267941666914-566" src="https://platform.twitter.com/embed/Tweet.html?id=1908757267941666914"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1908757267941666914-566');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1908757267941666914&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Here are the motivations that kept us on track : &lt;/p&gt;

&lt;p&gt;Do things extremely : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧩 Interoperable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🫴 Easy to integrate for anyone&lt;/strong&gt; (even on legacy systems)&lt;/li&gt;
&lt;li&gt;⚡ Efficient&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🦥 Useful : make people save time&lt;/strong&gt;, ie. make more with less effort&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📦 Easy to deliver&lt;/strong&gt; and install&lt;/li&gt;
&lt;li&gt;🤩 Beautiful&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📉 Fast to build&lt;/strong&gt; : for an improved Time to market&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🟢 Fast&lt;/strong&gt; to (learn to) use&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💡 Inspiring&lt;/strong&gt; for us and others, eg. create new business opportunities ideas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;😍 Desirable&lt;/strong&gt; : people should feel the desire to use the product and feel joy while using it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧑‍🤝‍🧑 Create new relationships with people&lt;/strong&gt; and discover new practices&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔭 What's next
&lt;/h2&gt;

&lt;p&gt;Next, we'll focus on &lt;strong&gt;showing and sharing&lt;/strong&gt; the benefits : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;♾️ Continuous delivery tools&lt;/strong&gt; and automation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📼 New ways of documentation&lt;/strong&gt; with next-gen tools&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ Security&lt;/strong&gt; (beacause it always matters)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🦸 One liners&lt;/strong&gt; (because they're both a cool and efficient way to get things done)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🐧 Classical linux&lt;/strong&gt; tools&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;📚 General IT Culture&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧑‍🎨 Creative product design&lt;/strong&gt; and development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully you'll like it as much as we do...and will engage yourself on the same kind of way : the &lt;a href="https://dev.to/t/learning"&gt;&lt;code&gt;#learnbydoing&lt;/code&gt;&lt;/a&gt; journey 🤗&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>go</category>
      <category>cli</category>
      <category>learning</category>
    </item>
    <item>
      <title>Microcks for dummies</title>
      <dc:creator>Supervinh</dc:creator>
      <pubDate>Thu, 09 Jan 2025 00:19:39 +0000</pubDate>
      <link>https://forem.com/optnc/microcks-for-dummies-1imn</link>
      <guid>https://forem.com/optnc/microcks-for-dummies-1imn</guid>
      <description>&lt;h2&gt;
  
  
  🤔 Microcks: For Whom and For What?
&lt;/h2&gt;

&lt;p&gt;How can you tell if API documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is properly documented ?&lt;/li&gt;
&lt;li&gt;Is sufficient for effective usage ?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Allows partners/clients&lt;/strong&gt; to efficiently test ?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is exactly what &lt;a href="https://microcks.io/" rel="noopener noreferrer"&gt;Microcks&lt;/a&gt;, an open-source tool, promises to deliver. Its benefits have already been explored in one of &lt;a href="https://dev.to/adriens/series/18414"&gt;OPT-NC’s public APIs for agency waiting times&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1862247586411028971-410" src="https://platform.twitter.com/embed/Tweet.html?id=1862247586411028971"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1862247586411028971-410');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1862247586411028971&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  🤓 Spoilers
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/K0lFZwJlHp8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  📜 Annotations and REST API Documentation Quality
&lt;/h2&gt;

&lt;p&gt;Why document a REST API using annotations directly in the source code?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💡 &lt;strong&gt;Clarity for developers&lt;/strong&gt;: Annotations precisely describe endpoints, parameters, and responses, making the API easier to understand.&lt;/li&gt;
&lt;li&gt;🔄 &lt;strong&gt;Automatic updates&lt;/strong&gt;: Generating OpenAPI documentation from annotations ensures that it stays aligned with the source code in a simple and efficient way.&lt;/li&gt;
&lt;li&gt;📚 &lt;strong&gt;Concrete examples&lt;/strong&gt;: Annotations also allow adding example calls, helping developers understand practical use cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s an example of annotations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nd"&gt;@GET&lt;/span&gt;
&lt;span class="nd"&gt;@Path&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/endpoint"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="nd"&gt;@Operation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;summary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Operation summary"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Detailed description"&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="nd"&gt;@APIResponses&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="nd"&gt;@APIResponse&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
                        &lt;span class="n"&gt;responseCode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"200"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
                        &lt;span class="n"&gt;description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"OK response"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
                        &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nd"&gt;@Content&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
                                &lt;span class="n"&gt;mediaType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"application/json"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
                                &lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nd"&gt;@Schema&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;implementation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;MyClass&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
                                &lt;span class="n"&gt;examples&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                                        &lt;span class="nd"&gt;@ExampleObject&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
                                                &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Example 1"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
                                                &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"{'key':'value'}"&lt;/span&gt;
                                        &lt;span class="o"&gt;)&lt;/span&gt;
                                &lt;span class="o"&gt;}&lt;/span&gt;
                        &lt;span class="o"&gt;)&lt;/span&gt;
                &lt;span class="o"&gt;)&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;ReturnValue&lt;/span&gt; &lt;span class="nf"&gt;myFunction&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And to describe &lt;strong&gt;request parameters&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nd"&gt;@GET&lt;/span&gt;
&lt;span class="nd"&gt;@Path&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/endpoint/{id}"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;ReturnValue&lt;/span&gt; &lt;span class="nf"&gt;myFunction&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="nd"&gt;@Parameter&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Expected ID"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nd"&gt;@Schema&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"integer"&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
                &lt;span class="n"&gt;examples&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                        &lt;span class="nd"&gt;@ExampleObject&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Example ID"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"123"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
                &lt;span class="o"&gt;})&lt;/span&gt;
        &lt;span class="nd"&gt;@PathParam&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"id"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Validation and Security with Swagger:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Validation&lt;/strong&gt; of parameters and responses.&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Endpoint security&lt;/strong&gt; to prevent injection attacks.&lt;/li&gt;
&lt;li&gt;🚫 &lt;strong&gt;Rejection&lt;/strong&gt; of invalid values (e.g., negative numbers for non-allowed parameters).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;But documentation - and hence its quality - must also be tested!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;💼 &lt;strong&gt;Enter Microcks&lt;/strong&gt;: This open-source tool generates mocks from OpenAPI annotations, enabling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;API testing&lt;/strong&gt; without actual deployment.&lt;/li&gt;
&lt;li&gt;🧪 &lt;strong&gt;Evaluation&lt;/strong&gt; of documentation quality and completeness.&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Scoring&lt;/strong&gt; for OpenAPI compliance to ensure high standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Microcks, documenting is not just writing, it ensures everything works as expected, leading to robust, well-documented APIs. -&amp;gt; ...that can be embedded as part of a CI&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Microcks: Boosting Developer Experience
&lt;/h2&gt;

&lt;p&gt;Thanks to annotations and the mocks generated by Microcks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📝 &lt;strong&gt;Clarity even before development&lt;/strong&gt;: API functionalities are defined upfront, making communication between developers, test managers, project managers and future users easier.&lt;/li&gt;
&lt;li&gt;⏱️ &lt;strong&gt;Time-saving&lt;/strong&gt;: Development and documentation can progress in parallel, optimizing project resources, allowing those depending on the API to start development even before the API itself is implemented.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Microcks transforms how APIs are designed, tested, and shared, creating a seamless and efficient DEVEX (developer experience).&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 Microcks and the Testing Pyramid
&lt;/h3&gt;

&lt;p&gt;Among the various representations of testing strategies, &lt;strong&gt;Watirmelon’s&lt;/strong&gt; model stands out as particularly insightful.&lt;/p&gt;

&lt;p&gt;🧩 Microcks fits into the &lt;strong&gt;Automated API Tests&lt;/strong&gt; layer, with a particular focus on &lt;a href="https://pactflow.io/blog/what-is-contract-testing/" rel="noopener noreferrer"&gt;Contract Testing&lt;/a&gt;, ensuring that APIs adhere to their specifications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://microcks.io/documentation/explanations/conformance-testing/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbngx28wzftbpkwcv0hs.png" alt="Ideal Software Testing Pyramide" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Personal and team benefits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Documentation quality&lt;/strong&gt;: I was pleasantly surprised by the clarity and precision of the documentation provided by Microcks.&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Intuitive user interface&lt;/strong&gt;: The UI is simple, intuitive, and very enjoyable to use, making the tool accessible right from the start.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Developer responsiveness&lt;/strong&gt;: The contributors of Microcks are highly active on GitHub and respond quickly to issues, which is reassuring when resolving potential roadblocks.&lt;/li&gt;
&lt;li&gt;🚀 &lt;strong&gt;Unblocking my tests&lt;/strong&gt;: In my last project, I struggled to mock calls to OpenSearch. With Microcks, I no longer need to mock the calls. I can simply simulate the database to contact, which saves time and greatly simplifies testing.&lt;/li&gt;
&lt;li&gt;🔮 &lt;strong&gt;Usefulness for future projects&lt;/strong&gt;: Microcks will be invaluable for my future projects, especially during the development phases. Instead of relying on paid APIs, I can simply use my Microcks mock, which is both more economical and practical.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Microcks has proven to be a powerful ally, not only for this project but also for those to come.&lt;/p&gt;

</description>
      <category>api</category>
      <category>testing</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>🔁➡️📘 Kafka documentation automation : HUGO, gomplate, Github Actions &amp; pages</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Wed, 18 Sep 2024 20:30:38 +0000</pubDate>
      <link>https://forem.com/optnc/kafka-documentation-automation-hugo-gomplate-github-actions-pages-68a</link>
      <guid>https://forem.com/optnc/kafka-documentation-automation-hugo-gomplate-github-actions-pages-68a</guid>
      <description>&lt;h2&gt;
  
  
  💭 &lt;em&gt;"what's wrong with writing (and maintaining) docs ?"&lt;/em&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Very often &lt;strong&gt;a single team has a privileged access to a set of data, services, middlewares&lt;/strong&gt; and you cannot grant access because of technical limitations (sometimes due to limited licences plans), costs, access control strategies&lt;br&gt;
 or so many other reasons : there may me plenty of them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;👉 Still, it is not rare that &lt;strong&gt;third parties need to have at least a partial access to these resources&lt;/strong&gt;, for example to develop new services on top of yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  💸 The cost of manual legacy documentation
&lt;/h2&gt;

&lt;p&gt;The consequence is that you may be asked to implement a Wiki (eg. on Confluence) that your &lt;strong&gt;team will be charged to maintain in addition to its core activities.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then you grant access to this wiki and &lt;strong&gt;everyone is happy..or so you think&lt;/strong&gt;... as &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;you have just increased the &lt;code&gt;RUN&lt;/code&gt; load of your team... and then impacted your own &lt;em&gt;"Time to Market"&lt;/em&gt; to deliver new bankable services.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To make simple, the problem with this strategy is that : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;😫 It will cost you a &lt;strong&gt;lot of time&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🏋️ You have to stay up-to-date&lt;/strong&gt; with sometime - and hopefully for you - very fast changing systems&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📉 You waste your team skills&lt;/strong&gt; &amp;amp; workforce on writing most of the time outdated documentations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ♾️ Embracing continuous change
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;What we want is a &lt;a href="https://www.schemacrawler.com/" rel="noopener noreferrer"&gt;SchemaCrawler&lt;/a&gt; like portable and static report of our onPrem Kafka so we can embrace the change comfortably and continuously.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🎯 The &lt;em&gt;"What"&lt;/em&gt; &amp;amp; the &lt;em&gt;"How"&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;This post is about this common pattern and &lt;strong&gt;how we delivered a scalable data-driven documentation pipeline around Kafka&lt;/strong&gt;, based on data &amp;amp; CI:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;💰 We already have the automatically data prepared &amp;amp; delivered&lt;/strong&gt; as &lt;code&gt;csv&lt;/code&gt; and &lt;code&gt;json&lt;/code&gt; by scheduled GH Actions on a third party repository&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🦥 On a dedicated Wiki-like repository&lt;/strong&gt; we &lt;code&gt;clone&lt;/code&gt; the part of the data we need&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔁 Thanks to templates &amp;amp; &lt;a href="https://docs.gomplate.ca/" rel="noopener noreferrer"&gt;&lt;code&gt;gomplate&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; we transform &lt;code&gt;csv&lt;/code&gt; and &lt;code&gt;json&lt;/code&gt; into nice &lt;code&gt;markdown&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎁 We build &amp;amp; deliver the resulting static site&lt;/strong&gt; with &lt;a href="https://gohugo.io/hosting-and-deployment/hosting-on-github/" rel="noopener noreferrer"&gt;HUGO Github Action&lt;/a&gt; on GH Pages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🤩 We enjoy&lt;/strong&gt; the &lt;a href="https://themes.gohugo.io/themes/shadocs/" rel="noopener noreferrer"&gt;&lt;code&gt;HUGO shadocs&lt;/code&gt;&lt;/a&gt; theme&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  💰 Benefits
&lt;/h2&gt;

&lt;p&gt;Below some benefits we immediately got&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔄  Up-to-date&lt;/strong&gt; documentation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ Data security&lt;/strong&gt; thanks to custom obfuscation so the doc can be shared with confidence to third parties&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⚡&lt;code&gt;DevEx&lt;/code&gt; impact&lt;/strong&gt; : third parties get informations &lt;em&gt;"as a Service"&lt;/em&gt;, whenever they need it 24/7 : no need to make an issue...&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🤩 Responsive wiki and amazing UI&lt;/strong&gt; (PC, tablet and even phone)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌟 Continuously improving documentations&lt;/strong&gt;, howtos and resources&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;"🎀 as a Service"&lt;/em&gt;&lt;/strong&gt; delivery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔗 Linked to classical/legacy static documentations&lt;/strong&gt;... in both directions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔐 GitHub driven Access management&lt;/strong&gt; (Teams, SSO,...)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🍿 Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/JBlSaaiiS2w"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  💪 The magic of &lt;code&gt;gomplate&lt;/code&gt; : &lt;code&gt;csv&lt;/code&gt; to &lt;code&gt;markdown&lt;/code&gt;s
&lt;/h2&gt;

&lt;p&gt;The core magic that transforms &lt;strong&gt;a single input &lt;code&gt;csv&lt;/code&gt; file into more than 100 separate &lt;code&gt;markdown&lt;/code&gt;&lt;/strong&gt;  (in less than 1' ) is below :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;in&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
  &lt;span class="s"&gt;{{ $topics := (datasource "topics") | data.ToCSV | data.CSVByRow }}&lt;/span&gt;

  &lt;span class="s"&gt;{{ range $i, $e := $topics }}&lt;/span&gt;
    &lt;span class="s"&gt;{{ $file := $e.name | strings.Slug }}&lt;/span&gt;
    &lt;span class="s"&gt;{{ tmpl.Exec "topicT" . | file.Write (print "outputs/topics/" $file ".md") }}&lt;/span&gt;
  &lt;span class="s"&gt;{{ end }}&lt;/span&gt;

&lt;span class="na"&gt;templates&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;topicT=template/topic.tmpl&lt;/span&gt;
&lt;span class="na"&gt;datasources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;topics&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;source/import/auto/kafka/node_kafka_topic.csv&lt;/span&gt;
&lt;span class="na"&gt;outputFiles&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;csv"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;suppressEmpty&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🤩 Then &lt;code&gt;HUGO&lt;/code&gt; does the rest within GitHub to &lt;strong&gt;deliver a whole functional website  : the overall process takes less than a minute.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>devops</category>
      <category>kafka</category>
      <category>showdev</category>
    </item>
    <item>
      <title>🔑 APIGEE 101: onboarding &amp; authentication</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Mon, 02 Sep 2024 20:50:34 +0000</pubDate>
      <link>https://forem.com/optnc/apigee-101-onboarding-authentication-1ghl</link>
      <guid>https://forem.com/optnc/apigee-101-onboarding-authentication-1ghl</guid>
      <description>&lt;h2&gt;
  
  
  💭 forwords : &lt;em&gt;"From grocery to supermarkets"&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;In a few words : you cannot hope for people to use and pay for your APIs and put your digital products &amp;amp; strategy to the next level if you don't showcase them in a proper place : the &lt;em&gt;"developer portal"&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.lexpress.fr/diaporama/diapo-photo/actualite/societe/leclerc-un-epicier-mediatique-devenu-le-roi-des-supermarches_1162248.html" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslaac7jtdg09d7b9k2ax.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Picture taken 17 February 1963 of Edouard Leclerc the French businessman in front of the first butcher's shop he opened in Paris. E. Leclerc wants to reform the distribution system in selling goods at wholesale prices, [...].&lt;br&gt;
In the 80's Leclerc owns over 130 superstores, 350 supermarkets and about 50 specialized shops (sportswear, clothes, do-it-yourself, agricultural equipments stores). Moreover he his the biggest oil distributor in France after the national distributors.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  💡 It's all about Customer empowerment
&lt;/h2&gt;

&lt;p&gt;👉 Metaphorically, in the past people were going to the grocery and &lt;strong&gt;were asking to an agent to pick the products&lt;/strong&gt; for themselves.&lt;br&gt;
The disruption came when &lt;strong&gt;&lt;em&gt;Edouard Leclerc&lt;/em&gt;  empowered customers so they could choose, carry and even pay by themselves.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is what we want to achieve in the digital era : &lt;strong&gt;putting self service as much as possible. Everywhere.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  ❔ About &lt;code&gt;APIs&lt;/code&gt; "supermarkets"
&lt;/h2&gt;

&lt;p&gt;Developer portals are at the core the digital transformation as they are the &lt;strong&gt;place where outer &amp;amp; inner software engineers/architects&lt;/strong&gt; will come, discover available API products, ideate - and hopefully prototype - on how they will build innovative solutions on top of them thanks to appealing free plans.&lt;/p&gt;
&lt;h2&gt;
  
  
  🎯 What you'll learn
&lt;/h2&gt;

&lt;p&gt;In this content, you'll : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🥳 Discover the public developer portal thanks to &lt;a href="https://cloud.google.com/apigee/docs/api-platform/publish/intro-portals#integrated-portal" rel="noopener noreferrer"&gt;Apigee integrated portal&lt;/a&gt; we recently kicked off, in its early - alpha - version,&lt;/li&gt;
&lt;li&gt;🔑 Learn how to &lt;strong&gt;authenticate&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🔓 Learn how to &lt;strong&gt;create API keys&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🚀 See how to &lt;strong&gt;call APIs by yourself&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  🍿 Demo time
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/L56z2Vkht5E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🔖 Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://apigee-optnc-prd-api.apigee.io/" rel="noopener noreferrer"&gt;Our portal (α version)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.google.com/apigee/docs/api-platform/publish/intro-portals#integrated-portal" rel="noopener noreferrer"&gt;Apigee integrated portal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.google.com/apigee/docs/api-platform/publish/intro-portals" rel="noopener noreferrer"&gt;Developer portal solutions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Further about the "Apigee API hub" to&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"consolidate and organize information about all of the APIs of interest to your organization."&lt;/em&gt;:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cloud.google.com/apigee/docs/apihub/what-is-api-hub" rel="noopener noreferrer"&gt;What is Apigee API hub? &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>api</category>
      <category>gcp</category>
      <category>googlecloud</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>🧱 Custom components 💏 API{GEE} : sms automation w. Power Platform</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Mon, 29 Jul 2024 21:36:55 +0000</pubDate>
      <link>https://forem.com/optnc/custom-components-apigee-sms-automation-w-power-platform-1mk7</link>
      <guid>https://forem.com/optnc/custom-components-apigee-sms-automation-w-power-platform-1mk7</guid>
      <description>&lt;h2&gt;
  
  
  ❔ About
&lt;/h2&gt;

&lt;p&gt;When I was a kid, I loved to &lt;strong&gt;create new toys with my lego bricks kits&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Today...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I still (maybe even more) love to build new things on top of existing bricks"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;so I can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;💡 Ideate&lt;/strong&gt; something new&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧑‍🎨 Create&lt;/strong&gt; a playable/runnable artefact&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🤗 Enjoy&lt;/strong&gt; the new tool/gadget&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🏬 Share&lt;/strong&gt; (play with others)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🤯 Plug toys&lt;/strong&gt; &amp;amp; tools together to create something even bigger or newer &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🎯 What we'll see
&lt;/h2&gt;

&lt;p&gt;👉 This post will show how &lt;strong&gt;this pattern makes sense in a corporate environment (on a custom tenant) and why it really matters in terms of productivity.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We'll see how, with our SMS API available from the &lt;code&gt;www&lt;/code&gt; we can : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;📲 Unse our API&lt;/strong&gt; on APIGEE&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧱 Build the core building block&lt;/strong&gt; : the Power Platform Custom Component&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;🏗️ Run a custom scheduled workflow&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🍿 Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/rFA-vfbJaV4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 Further about process mining
&lt;/h2&gt;

&lt;p&gt;The Power Platform offers &lt;a href="https://learn.microsoft.com/en-us/power-automate/process-mining-overview" rel="noopener noreferrer"&gt;process mining&lt;/a&gt; opportunities and tools:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The business value of the process mining capability lies in its ability to help organizations gain insights into their operational processes and identify areas for improvement."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Below some real life examples I could generate from my very simple workflow:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlf8rv6fh8ivq6aseb0o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlf8rv6fh8ivq6aseb0o.png" alt="Image description" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8l5f4gjwsb6dhirozx8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8l5f4gjwsb6dhirozx8.png" alt="Image description" width="363" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsehmkumtcyt0mt2k7ir6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsehmkumtcyt0mt2k7ir6.png" alt="Image description" width="437" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>powerplatform</category>
      <category>googlecloud</category>
      <category>nocode</category>
      <category>apigateway</category>
    </item>
    <item>
      <title>🥳 Mobitag.nc... 25 ans plus tard, des sms en SaaS via API{GEE}</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Mon, 17 Jun 2024 21:44:54 +0000</pubDate>
      <link>https://forem.com/optnc/mobitagnc-25-ans-plus-tard-des-sms-en-saas-via-apigee-2h9e</link>
      <guid>https://forem.com/optnc/mobitagnc-25-ans-plus-tard-des-sms-en-saas-via-apigee-2h9e</guid>
      <description>&lt;h2&gt;
  
  
  ❔ A propos
&lt;/h2&gt;

&lt;p&gt;Il y a &lt;a href="https://scontent.fnou1-1.fna.fbcdn.net/v/t31.18172-8/14206112_1088604524599086_3925776389787353140_o.jpg?_nc_cat=105&amp;amp;ccb=1-7&amp;amp;_nc_sid=5f2048&amp;amp;_nc_ohc=T4G1-ra0VQcQ7kNvgER-_pA&amp;amp;_nc_ht=scontent.fnou1-1.fna&amp;amp;oh=00_AYBy3G0LJCnnE1ow6xeGXzSVkODfjT_4zERdeOxxEQM1Pw&amp;amp;oe=66876EC5" rel="noopener noreferrer"&gt;25 ans de cela, en 1999&lt;/a&gt;, via &lt;a href="https://www.facebook.com/Mobilis.NC" rel="noopener noreferrer"&gt;Mobilis&lt;/a&gt; l'&lt;a href="https://www.opt.nc/" rel="noopener noreferrer"&gt;OPT-NC&lt;/a&gt; lançait &lt;a href="https://office.opt.nc/fr/nous-connaitre/domaines-d-activites/marques" rel="noopener noreferrer"&gt;la marque&lt;/a&gt; &lt;code&gt;Mobitag&lt;/code&gt;: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Mobitag.nc est un service gratuit d'envoi de SMS depuis un ordinateur, réservé aux particuliers et à destination des mobiles de Nouvelle-Calédonie."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgj2ubnj69h0uycrx3g1h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgj2ubnj69h0uycrx3g1h.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://scontent.fnou1-1.fna.fbcdn.net/v/t31.18172-8/14206112_1088604524599086_3925776389787353140_o.jpg?_nc_cat=105&amp;amp;ccb=1-7&amp;amp;_nc_sid=5f2048&amp;amp;_nc_ohc=T4G1-ra0VQcQ7kNvgER-_pA&amp;amp;_nc_ht=scontent.fnou1-1.fna&amp;amp;oh=00_AYD-wXRPgsIbKVP-W7gxh8WBUKFfUbpVRb1zUKQYnH7dCA&amp;amp;oe=66873685" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fih108vk60oagen2l6xwd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;25 ans plus tard, l'OPT-NC se dote d'une technologie de portail d'API&lt;/strong&gt;, d'abord sur RapidAPI, puis d'APIGEE, avec l'ambition d'accélerer la transition digitiale en proposant ses services digitaux... &lt;strong&gt;directement en SaaS.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 Le but de cette démarche est de &lt;strong&gt;permettre des intégrations aisées, en self-service&lt;/strong&gt; avec:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Des clients finaux (B2C),&lt;/li&gt;
&lt;li&gt;Des partenaires (B2B) désireux de développer de nouveaus services sur ceux de l'OPT-NC&lt;/li&gt;
&lt;li&gt;Des plateformes SaaS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... ou tout simplement pour lui-même afin &lt;strong&gt;d'accélérer ses projets en réduisant le &lt;em&gt;Time to Market&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Objectif
&lt;/h2&gt;

&lt;p&gt;Le but de ce ce post est &lt;strong&gt;d'illustrer concrétement un cas&lt;/strong&gt; autour de ce service gratuit tant apprécié des calédoniens.&lt;/p&gt;

&lt;h2&gt;
  
  
  🪝 Ce que l'on va découvrir
&lt;/h2&gt;

&lt;p&gt;Dans la démo qui suit, on va voir, comment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🦥 Avec &lt;strong&gt;très peu de code&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;☁️ Directement &lt;strong&gt;depuis le cloud&lt;/strong&gt; (&lt;a href="https://www.kaggle.com/code/optnouvellecaldonie/mobitag-nc-for-dummies" rel="noopener noreferrer"&gt;Kaggle&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;on peut envoyer un sms de la part de &lt;a href="//www.mobitag.nc"&gt;&lt;code&gt;mobitag.nc&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🍿 Démo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/KnRrtYKEtUc"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;
&lt;h2&gt;
  
  
  🤔 Re-Contextualisation
&lt;/h2&gt;

&lt;p&gt;Lors de l'épisode précédent de cette série:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/optnc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F5458%2F98dc3bfe-45f7-48c6-a182-21944edf46b6.jpg" alt="opt-nc"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F446871%2F3e9ded5c-f368-4906-a277-35e56c9f97a7.png" alt=""&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/optnc/api-marketplaces-innovation-explained-and-showcased-li1" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🛣️ API Marketplaces &amp;amp; innovation, explained and showcased&lt;/h2&gt;
      &lt;h3&gt;adriens for opt-nc ・ Nov 5 '23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#api&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#apigateway&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;avait été présentées &lt;strong&gt;les nombreurses opportunités et bénéfices&lt;/strong&gt; liés à cette technologie, ie. de délivrer du service directement sur le web et manière interopérable... dans le but de &lt;strong&gt;faciliter les intégrations,... en SaaS&lt;/strong&gt; : &lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/cfwEP6Oqjew?si=7AUpC97hU1ZL71hL&amp;amp;t=2893" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffeq05ybg00g3lu1p79ow.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔖 Ressources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/code/optnouvellecaldonie/mobitag-nc-for-dummies" rel="noopener noreferrer"&gt;📲 Mobitag.nc for dummies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mobitag.nc" rel="noopener noreferrer"&gt;http://www.mobitag.nc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://office.opt.nc/fr/nous-connaitre/domaines-d-activites/marques" rel="noopener noreferrer"&gt;Marques - OPT-NC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/optnc/api-marketplaces-innovation-explained-and-showcased-li1"&gt;🛣️ API Marketplaces &amp;amp; innovation, explained and showcased&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>apigateway</category>
      <category>api</category>
      <category>showdev</category>
      <category>saas</category>
    </item>
    <item>
      <title>📢 About job offers, innovation &amp; data strategy 🔭</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Mon, 04 Mar 2024 22:25:21 +0000</pubDate>
      <link>https://forem.com/optnc/about-job-offers-innovation-data-strategy-4c3f</link>
      <guid>https://forem.com/optnc/about-job-offers-innovation-data-strategy-4c3f</guid>
      <description>&lt;h2&gt;
  
  
  💡 &lt;em&gt;Shift-left&lt;/em&gt; thoughts
&lt;/h2&gt;

&lt;p&gt;In IT, we usually think about &lt;em&gt;Shift-left&lt;/em&gt; for our stack:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Shift left is the practice of moving testing, quality, and performance evaluation early in the development process, often before any code is written."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And what if I told you that you need people to write code... &lt;strong&gt;and hence that you also have to shift left to embed recruitment process in your pipeline ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 That's the main idea I recently started to explore...which lead me to create this content, in the hope to increase my holistic  knowledge of the organization, at scale.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Context
&lt;/h2&gt;

&lt;p&gt;I'm currently about to launch an exciting recruitment for my department.&lt;/p&gt;

&lt;p&gt;In this context I decided to use this as an &lt;strong&gt;opportunity to learn more about recruitment process&lt;/strong&gt;, with the ambition to have a &lt;strong&gt;positive impact on its performances and outcomes, at scale.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My goals are to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🚀 Contribute&lt;/strong&gt; to &lt;em&gt;"become accelerator of economic and digital development in New Caledonia."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;👨‍🚀 Help&lt;/strong&gt; &lt;em&gt;"reaching Reach High-level technologies and quality of service, innovation,"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🤩 Help implement&lt;/strong&gt; &lt;em&gt;"new customer-oriented organization,"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🪝 Help &lt;em&gt;"seeking talents"&lt;/em&gt;&lt;/strong&gt; by putting in evidence our data &amp;amp; automation approach&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;👉 This post is all about that ambition and the resulting journey.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔭 "Building tomorrow" &lt;code&gt;aka.  OPT 2025&lt;/code&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The OPT-NC has embarked on a profound transformation to meet the challenges of the strategic plan "Building Tomorrow | OPT 2025" and to fulfill its ambition to become an accelerator of economic and digital development in New Caledonia.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;High-level technologies and quality of service, innovation, new collaborative ways of working and managing, performance management—OPT-NC is reinventing itself through its new strategic directions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In this vein, OPT-NC is proposing a new customer-oriented organization, and it is within this framework that it is seeking talents.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The positions available are specified by department. The description of missions and skills is accessible on the OPT-NC website (&lt;a href="http://www.office.opt.nc"&gt;www.office.opt.nc&lt;/a&gt;).&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://drhfpnc.gouv.nc/emplois-dans-la-fonction-publique-trouver-un-emploi/opt-avis-de-vacances-de-poste"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6ainhlsriv9zua0lqma.png" alt="Image description" width="800" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🤔 About
&lt;/h2&gt;

&lt;p&gt;Working with the right people and the right skills is often seen by the end of the pipeline, I mean : you come to work in a team and everybody's already in place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;☝️ But all this starts with a crucial part : you need to get collaborators to build a team.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Getting collaborators"&lt;/em&gt; is indeed a process, with a start date, an end date, documents, people involved, tools, KPIs (how many candidates, how many skills, ...) and of course all these can be described with data.&lt;/p&gt;

&lt;p&gt;Today, I'll focus on these data, from many points of views:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The recruiter (the customer of this process)&lt;/strong&gt; : &lt;em&gt;the manager who's looking for a new collaborator w/ a specific skillset&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The HR Team&lt;/strong&gt; : &lt;em&gt;the team that manages the whole process that has to respect date and rules&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The candidate&lt;/strong&gt; : &lt;em&gt;"The one who's looking for an appealing job"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;External Third parties&lt;/strong&gt; that may benefit from this data for general purpose (researchers, government, public institutions,...)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🦥 Must watch key points
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Asking&lt;/strong&gt; &lt;a href="https://wow.groq.com/why-groq/"&gt;&lt;code&gt;groq&lt;/code&gt;&lt;/a&gt; why providing &lt;a href="https://youtu.be/HrZ8Txhgtig?si=yIFlirJ71ExTuNid&amp;amp;t=72"&gt;job offers as an API do matter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asking&lt;/strong&gt; &lt;a href="https://wow.groq.com/why-groq/"&gt;&lt;code&gt;groq&lt;/code&gt;&lt;/a&gt; why providing job offers as an &lt;a href="https://youtu.be/HrZ8Txhgtig?si=HZ8U5kh5OmHSLku6&amp;amp;t=314"&gt;Open Source dataset matters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unbox&lt;/strong&gt; &lt;a href="https://youtu.be/HrZ8Txhgtig?si=GbKG4Ql1yP9Lv3pg&amp;amp;t=1791"&gt;Kaggle dataset&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build new customer experience&lt;/strong&gt; with data with a &lt;a href="https://youtu.be/HrZ8Txhgtig?si=21eqZmGdV9j8ooXu&amp;amp;t=2037"&gt;first Kaggle Notebook&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disrupt Job offer browsing&lt;/strong&gt; customer experience w/ &lt;a href="https://youtu.be/HrZ8Txhgtig?si=X2lqOfrR7bonmoG9&amp;amp;t=2292"&gt;unprecedented data visualizations&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://youtu.be/HrZ8Txhgtig?si=RPm1dENNskNV5pC7&amp;amp;t=2501"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0gphct6q64vrzc2gv4iz.png" alt="Image description" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🍿 Demo
&lt;/h2&gt;

&lt;p&gt;At last, the demo:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HrZ8Txhgtig"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🎀 Gift
&lt;/h2&gt;

&lt;p&gt;Finally I added some more data about the &lt;code&gt;Province&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.kaggle.com/code/optnouvellecaldonie/offres-emplois-opt-nc-for-dummies?scriptVersionId=165316197&amp;amp;cellId=15"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F84m4fg838qikt7qeh62q.png" alt="Image description" width="736" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;see how with this 5' video:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/DQOVxyqGYZY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  📑 Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/datasets/optnouvellecaldonie/offres-emplois-opt-nc"&gt;💼 Offres emplois OPT-NC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/code/optnouvellecaldonie/offres-emplois-opt-nc-for-dummies"&gt;👨‍🎓 Offres emplois OPT-NC for dummies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🗣️ Speaking about &lt;em&gt;Tech Hiring in 2024&lt;/em&gt;
&lt;/h2&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/devteam" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SsFI-Xwo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Forganization%252Fprofile_image%252F1%252Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg" alt="The DEV Team" width="150" height="150"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MI9Q0NsN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F3%252F13d3b32a-d381-4549-b95e-ec665768ce8f.png" alt="" width="150" height="150"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/devteam/how-will-tech-hiring-evolve-in-2024-58go" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How Will Tech Hiring Evolve in 2024?&lt;/h2&gt;
      &lt;h3&gt;dev.to staff for The DEV Team ・ Mar 4&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>datascience</category>
      <category>jupyter</category>
      <category>dataengineering</category>
      <category>opendata</category>
    </item>
    <item>
      <title>📍 OPT-NC agencies on Kaggle</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Wed, 21 Feb 2024 20:00:48 +0000</pubDate>
      <link>https://forem.com/optnc/opt-nc-agencies-on-kaggle-4edd</link>
      <guid>https://forem.com/optnc/opt-nc-agencies-on-kaggle-4edd</guid>
      <description>&lt;h2&gt;
  
  
  ❔ About
&lt;/h2&gt;

&lt;p&gt;OPT-NC has &lt;a href="https://www.opt.nc/service/l-opt-pres-de-chez-moi-trouver-une-agence"&gt;many agencies in New-Caledonia&lt;/a&gt;, but getting &lt;code&gt;csv&lt;/code&gt; files was not as easy as that, and if you wanted to use data to build datascience, &lt;strong&gt;you had to achieve manual tasks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 The purpose of this post is to show how we recently upgraded the &lt;a href="https://github.blog/2023-06-08-developer-experience-what-is-it-and-why-should-you-care/"&gt;Developer experience&lt;/a&gt;... and the opportunities it does open.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 What you'll learn
&lt;/h2&gt;

&lt;p&gt;You'll learn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🛍️ The various datasources&lt;/strong&gt; we used to build a consistent &amp;amp; up-to-date dataset&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎁 Available dataformats&lt;/strong&gt; (&lt;code&gt;csv&lt;/code&gt;, &lt;code&gt;duckdb&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎀 How to use&lt;/strong&gt; the dataset with a dedicated Notebook&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🍿 Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Y5PWxaxz1_E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  📑 Related resources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.kaggle.com/code/optnouvellecaldonie/open-data-agences-opt-nc"&gt;⚙️ Notebook builder&lt;/a&gt; (where the data is prepared and aggregated)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/datasets/optnouvellecaldonie/agences-new"&gt;🏤 Agences 📍 Dataset&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/code/optnouvellecaldonie/agences-opt-nc-for-dummies"&gt;👨‍🎓 Agences OPT-NC for dummies&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🤯 Opened perspectives
&lt;/h2&gt;

&lt;p&gt;Delivering data on Kagglle make it possible to play with them with free GPU and...&lt;/p&gt;

&lt;p&gt;Amazing Open Source AI models like &lt;code&gt;Mixtral&lt;/code&gt; (see &lt;a href="https://www.kaggle.com/models/mistral-ai/mixtral"&gt;Kaggle model card&lt;/a&gt;)...&lt;/p&gt;

&lt;p&gt;and more recently &lt;code&gt;google/gemma&lt;/code&gt; (see &lt;a href="https://www.kaggle.com/models/google/gemma"&gt;Kaggle model card&lt;/a&gt;):&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1760289388204900633-672" src="https://platform.twitter.com/embed/Tweet.html?id=1760289388204900633"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1760289388204900633-672');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1760289388204900633&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;... or many other open source LLM models, see :&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/adriens" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nf6W_3Rt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F446871%252F3e9ded5c-f368-4906-a277-35e56c9f97a7.png" alt="adriens"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/adriens/local-open-source-ai-a-kind-ollama-llamaindex-intro-1nnc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🆓 Local &amp;amp; Open Source AI: a kind ollama &amp;amp; LlamaIndex intro&lt;/h2&gt;
      &lt;h3&gt;adriens ・ Jan 17&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;or simply use OpenAI from your notebook and the AI do the job for you so yo can focus on your storytelling:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/adriens" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nf6W_3Rt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F446871%252F3e9ded5c-f368-4906-a277-35e56c9f97a7.png" alt="adriens"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/adriens/put-magic-in-your-notebook-w-jupyter-ai-3co4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🪄 Put magic in your Notebook w/ Jupyter-AI&lt;/h2&gt;
      &lt;h3&gt;adriens ・ Feb 14&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>datascience</category>
      <category>opendata</category>
      <category>python</category>
      <category>showdev</category>
    </item>
    <item>
      <title>🛣️ API Marketplaces &amp; innovation, explained and showcased</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Sun, 05 Nov 2023 20:46:25 +0000</pubDate>
      <link>https://forem.com/optnc/api-marketplaces-innovation-explained-and-showcased-li1</link>
      <guid>https://forem.com/optnc/api-marketplaces-innovation-explained-and-showcased-li1</guid>
      <description>&lt;h2&gt;
  
  
  ❔ Context
&lt;/h2&gt;

&lt;p&gt;Digital Transformation, Data Strategy, monetization, AI &amp;amp; chatBOTs... are all very trending topics.&lt;/p&gt;

&lt;p&gt;Yet,... to achieve these goals: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;we need to get nicely delivered, secured and easy to use APIs.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To achieve these goals, we need to get well suited &lt;em&gt;API Marketplaces&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trends.google.com/trends/explore/TIMESERIES/1697755800?hl=en-US&amp;amp;tz=-660&amp;amp;hl=en-US&amp;amp;q=api+marketplace&amp;amp;sni=3"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj30do4aiwvpjygmk4nws.png" alt="Image description" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤔 Yet, defining what an &lt;em&gt;API Marketplace&lt;/em&gt; is may not be so evident to all us... nor how to implement an efficient one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 With this post and video, &lt;strong&gt;you'll discover a practical approach, from the bottom-up, experience driven.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎙️ Discover
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/cfwEP6Oqjew"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  📑 Bookmarks
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🏛️ Data Strategy
&lt;/h3&gt;

&lt;p&gt;For more about data strategy, see:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/optnc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F5458%2F98dc3bfe-45f7-48c6-a182-21944edf46b6.jpg" alt="opt-nc" width="600" height="600"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F446871%2F3e9ded5c-f368-4906-a277-35e56c9f97a7.png" alt="" width="460" height="460"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/optnc/data-strategy-for-not-so-dummies-1b23" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🎯 Data strategy for (not so) dummies&lt;/h2&gt;
      &lt;h3&gt;adriens for opt-nc ・ Aug 17 '23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#api&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#interview&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#data&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#news&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>api</category>
      <category>apigateway</category>
      <category>beginners</category>
      <category>showdev</category>
    </item>
    <item>
      <title>🎯 Data strategy for (not so) dummies</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Thu, 17 Aug 2023 20:27:19 +0000</pubDate>
      <link>https://forem.com/optnc/data-strategy-for-not-so-dummies-1b23</link>
      <guid>https://forem.com/optnc/data-strategy-for-not-so-dummies-1b23</guid>
      <description>&lt;h2&gt;
  
  
  ❔ About
&lt;/h2&gt;

&lt;p&gt;Sometimes ago, I saw this tweet from &lt;a href="https://twitter.com/Crigref"&gt;&lt;code&gt;Cigref&lt;/code&gt;&lt;/a&gt; in my thread:&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1665988346881908736-921" src="https://platform.twitter.com/embed/Tweet.html?id=1665988346881908736"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1665988346881908736-921');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1665988346881908736&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;... and as they made it available as a &lt;code&gt;pdf&lt;/code&gt; (recently available in English), it was quite comfortable to bring it with me on my e-reader.&lt;/p&gt;

&lt;p&gt;After a few lines, the content was so meaningful that I decided:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To &lt;strong&gt;put things in perspective for myself&lt;/strong&gt; to better understand how my current topics intricate are&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share some key points&lt;/strong&gt; so anyone could benefit of this document... and go further by reading the full version&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This post could hence be seen as a teaser for:&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://www.cigref.fr/data-analytics-governance-and-architecture" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--3lCQdkaV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.cigref.fr/wp/wp-content/uploads/2023/03/Data-Analytics-Governance-and-Architecture.png" height="600" class="m-0" width="800"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://www.cigref.fr/data-analytics-governance-and-architecture" rel="noopener noreferrer" class="c-link"&gt;
          Data &amp;amp; Analytics Governance and Architecture: Developing and implementing a data strategy - Cigref
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Cigref has published a report on the results of its working group on "Governance and data architecture", co-chaired by Alice Guéhennec, Chief Digital
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--qvQs7nAo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.cigref.fr/wp/wp-content/uploads/2017/12/logo_Cigref_rond_bleu_300px-150x150.png" width="150" height="150"&gt;
        cigref.fr
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  🎤 Intro : Live interview
&lt;/h2&gt;

&lt;p&gt;The &lt;em&gt;data strategy&lt;/em&gt;, a tool to achieve enterprise goals like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create&lt;/strong&gt; new services&lt;/li&gt;
&lt;li&gt;Achieve Operational &lt;strong&gt;excellence&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Corporate &lt;strong&gt;social responsibility&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carbon&lt;/strong&gt; footprint reduction&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://www.bfmtv.com/economie/replay-emissions/01-business/elaborer-et-mettre-en-place-la-strategie-data-03-06_VN-202306030319.html" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--5Zvs4HRs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.bfmtv.com/asj6BSusn1xrplgI7tYyubSdhP8%3D/0x0:1280x720/1280x0/images/Elaborer-et-mettre-en-place-la-strategie-data-03-06-1649238.jpg" height="450" class="m-0" width="800"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://www.bfmtv.com/economie/replay-emissions/01-business/elaborer-et-mettre-en-place-la-strategie-data-03-06_VN-202306030319.html" rel="noopener noreferrer" class="c-link"&gt;
          Élaborer et mettre en place la stratégie data - 03/06
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          VIDÉO - Ce samedi 3 juin, Alice Guéhennec, DSI du groupe Saur et Vice-présidente du Cigref, s'est penchée sur l'élaboration et la mise en place de la stratégie data en entreprise, dans l'émission Tech&amp;amp;Co Business présentée par Frédéric Simottel. Tech&amp;amp;Co Business est à voir ou écouter le samedi sur BFM...
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Eby2Tmkq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.bfmtv.com/favicon.ico" width="48" height="48"&gt;
        bfmtv.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;So the big questions are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;How&lt;/strong&gt; do we handle it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What&lt;/strong&gt; for&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🤯 Change, change, change...
&lt;/h2&gt;

&lt;p&gt;First some context about &lt;a href="https://www.gartner.com/en/newsroom/press-releases/2021-03-31-gartner-survey-reveals-over-half-of-cios-plan-to-increase-full-time-employees-in-it-to-accelerate-digital-business-initiatives-in-2021"&gt;Expected 2021 IT FTE Change in IT Activities&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xbgF1VRn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g0it92u38ueogw7xx1gq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xbgF1VRn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g0it92u38ueogw7xx1gq.png" alt="Image description" width="800" height="697"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“While CIOs plan to hire more staff in several areas critical to meeting changed consumer and employee expectations, most &lt;strong&gt;will not be able to meet their planned talent strategy goals without also upskilling or refocusing their existing teams&lt;/strong&gt;,”&lt;/em&gt; said Mr. Charlet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, in my case, I could see the keypoints I invest a lot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🦾 Business workflow &lt;strong&gt;automation&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;Integration&lt;/strong&gt; (eg. APIs)&lt;/li&gt;
&lt;li&gt;☁️ &lt;strong&gt;Cloud&lt;/strong&gt; platforms&lt;/li&gt;
&lt;li&gt;🤯 &lt;em&gt;"&lt;strong&gt;upskilling or refocus&lt;/strong&gt; of existing teams"&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📖 Develop and implement a data strategy
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The data strategy &lt;strong&gt;touches on the very image of the organization&lt;/strong&gt;, its values, its aspirations and projects&lt;br&gt;
for the future: it really is an issue of transforming the business."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"&lt;strong&gt;Data is an asset for the entire organization&lt;/strong&gt;, not just for one department or business unit. This is why** companies and public administrations are transforming themselves** to make better use of this data, investing in building and implementing a data strategy that can serve their overall strategy."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  ☂️ The case of External risk of disruptive innovation
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The &lt;strong&gt;core business is being disrupted by the emergence of new players&lt;/strong&gt; on the periphery with a business model based on using data from the original business. The question for companies is how to react."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"The specificity of this &lt;strong&gt;external or transversal threat&lt;/strong&gt; is that it changes the perception of customers, which &lt;strong&gt;forces the company to adapt to better meet their expectations&lt;/strong&gt;."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;💡 A good way to sensitize about that may be to bring internal - and kind - disruptive innovation as part of the data culture... so we could &lt;strong&gt;make the enterprise adapt earlier thanks to "insiders".&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📜 Develop a data strategy
&lt;/h3&gt;

&lt;p&gt;Below some the high level roadmap : seeing it so clearly explained helps &lt;strong&gt;focus on the key points to help make things possible&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uhtFLa-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eovfq977c8lujxxrn78z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uhtFLa-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eovfq977c8lujxxrn78z.png" alt="Image description" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As collaborators, our mission is to &lt;strong&gt;help achieve the goal fixed by strategy&lt;/strong&gt; with skills and tools.&lt;/p&gt;

&lt;p&gt;For example, in my case a way to &lt;strong&gt;transform this strategy into action plan&lt;/strong&gt; may be to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;🧑‍🤝‍🧑 Help develop employee's data culture&lt;/strong&gt; : by blogging and showing what can be achieved with data and APIs in a way so everyone may understand it&lt;/li&gt;
&lt;li&gt;🎯 Get &lt;strong&gt;Specific Business Objectives&lt;/strong&gt; : starting from our &lt;a href="https://office.opt.nc/fr/strategie/construire-demain-OPT-2025"&gt;Strategic Plan&lt;/a&gt; is a great way to do this&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔬 Identifiy relevant data&lt;/strong&gt; to be used : as &lt;a href="https://dev.to/optnc/our-speech-about-it-holism-at-nodes22-1bpl"&gt;we have an up-to date cartography knwoledgebase&lt;/a&gt;, this is quite easy to achieve&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🏗️ Prepare the architecture and technical bricks&lt;/strong&gt; : this is where innovation comes in as it makes it possible to &lt;strong&gt;learn by doing&lt;/strong&gt; and start deliver services at low risk but still by deliver services (and helps develop employee's data culture)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;☝️ One of the objectives I want to achieve with my team is to :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"translate the data strategy into small steps that each bring value, in other words,quick wins."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, a daily mantra could be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Data strategy is not just a technical issue, it is part of business transformation"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;... hence it's &lt;strong&gt;our job to make it a daily concern&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  📉 Time to market
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NyZJdn85--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pgtmq8lv6fsq5gxux1aq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NyZJdn85--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pgtmq8lv6fsq5gxux1aq.png" alt="Image description" width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🏛️ Data strategy pillars
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Governance&lt;/strong&gt;: Establishing a framework for managing and protecting data, including defining roles and responsibilities, data quality standards, and data privacy and security measures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Architecture&lt;/strong&gt;: Designing the structure and organization of data, including data models, data storage, and data integration methods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Management&lt;/strong&gt;: Implementing processes and procedures for data collection, storage, cleansing, and maintenance to ensure data accuracy, consistency, and accessibility.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Analytics&lt;/strong&gt;: Utilizing data to gain insights and make informed decisions, including data analysis, data visualization, and predictive modeling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Culture&lt;/strong&gt;: Fostering a data-driven mindset and promoting data literacy across the organization, encouraging employees to use data in their decision-making processes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Privacy and Security&lt;/strong&gt;: Ensuring compliance with data protection regulations and implementing measures to safeguard sensitive data from unauthorized access or breaches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These pillars work together to &lt;strong&gt;establish a comprehensive data strategy that enables organizations&lt;/strong&gt; to effectively manage and leverage their data assets.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 Innovation role
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Increasing Market Share&lt;/strong&gt;: Innovation can help companies and public administrations identify new business opportunities and develop new services or products based on data. By leveraging innovative approaches and technologies, organizations can create unique value propositions that attract customers and increase their market share.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Defending Against External Disruption&lt;/strong&gt;: Innovation is essential for organizations to respond to external threats and disruptive innovations. By continuously exploring and adopting new technologies and data-driven approaches, companies can stay ahead of the competition and protect their market position.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better Adjustment of Responses to Customers/Users&lt;/strong&gt;: Innovation enables organizations to better understand their customers or users by analyzing data and identifying patterns or trends. This understanding can lead to the development of personalized and tailored responses, improving customer satisfaction and loyalty.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improving Operational Excellence&lt;/strong&gt;: Innovation can drive operational excellence by optimizing processes, reducing costs, and improving overall efficiency. By leveraging data and analytics, organizations can identify areas for improvement, make data-driven decisions, and implement innovative solutions to enhance their operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In summary, &lt;strong&gt;innovation is a critical component of a data strategy&lt;/strong&gt; as it enables organizations to leverage data effectively, identify new opportunities, respond to external threats, enhance customer experiences, and improve operational efficiency. By embracing innovation, organizations can unlock the full potential of their data and drive sustainable growth and success.&lt;/p&gt;

&lt;h2&gt;
  
  
  ➿ Disruption and Open innovation ?
&lt;/h2&gt;

&lt;p&gt;Disruption and open innovation play a &lt;strong&gt;significant role in shaping the pillars of a data strategy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;According to my understanding, here's how they contribute to different aspects of a data strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🧑‍🤝‍🧑 Data Governance&lt;/strong&gt;: Disruption and open innovation challenge traditional data governance practices by introducing new sources of data and collaboration models. They require organizations to establish flexible governance frameworks that can adapt to changing data landscapes and accommodate external data sources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🕸️ Data Architecture&lt;/strong&gt;: Disruption and open innovation often involve the integration of new technologies and platforms. This requires organizations to design scalable and agile data architectures that can accommodate diverse data sources, handle large volumes of data, and support real-time data processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🏋️ Data Management&lt;/strong&gt;: Disruption and open innovation generate vast amounts of data from various sources. Effective data management practices are essential to ensure data quality, data integration, and data accessibility. Organizations need to implement robust data management processes and technologies to handle the influx of data and derive meaningful insights from it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📊 Data Analytics&lt;/strong&gt;: Disruption and open innovation provide organizations with access to new data sets and analytical techniques. This enables them to uncover valuable insights, identify emerging trends, and make data-driven decisions. Organizations need to invest in advanced analytics capabilities and develop a culture of data-driven decision-making to leverage the potential of disruption and open innovation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;👐 Data Culture&lt;/strong&gt;: Disruption and open innovation foster a culture of experimentation, collaboration, and continuous learning. They encourage organizations to embrace data-driven approaches and empower employees to explore new ideas and solutions. Building a data culture is crucial for organizations to effectively leverage disruption and open innovation in their data strategy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ Data Privacy and Security&lt;/strong&gt;: Disruption and open innovation introduce new challenges in ensuring data privacy and security. With the increased use of external data sources and collaboration with external partners, organizations must prioritize data privacy and security measures. This includes implementing robust data protection measures, complying with relevant regulations, and establishing secure data sharing practices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To summarize, &lt;strong&gt;disruption and open innovation are integral to a data strategy&lt;/strong&gt; as they drive organizations to adapt their data governance, architecture, management, analytics, culture, and privacy and security practices to &lt;strong&gt;leverage the opportunities presented by these trends&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ Risks around open innovation and disrupting case
&lt;/h2&gt;

&lt;p&gt;Open APIs, open innovation, and the** disruption of use cases by third parties** can pose several risks to organizations in terms of their data strategy.&lt;/p&gt;

&lt;p&gt;Below some of the risks associated with these factors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Security and Privacy Risks:&lt;/strong&gt; When organizations &lt;strong&gt;open up their APIs and share data with third parties&lt;/strong&gt;, there is a risk of unauthorized access, data breaches, and misuse of sensitive information. This can lead to reputational damage, legal consequences, and loss of customer trust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intellectual Property Risks&lt;/strong&gt;: Open innovation and the sharing of data with third parties can expose organizations to intellectual property risks. There is a possibility that third parties &lt;strong&gt;may use the organization's data to develop similar or competing products/services&lt;/strong&gt;, potentially infringing on the organization's intellectual property rights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loss of Control&lt;/strong&gt;: Opening up APIs and allowing third parties to access and use data can result in a loss of control over how the data is used, manipulated, and shared. Organizations may find it challenging to enforce data governance policies and ensure compliance with regulations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competitive Disadvantage&lt;/strong&gt;: Third parties leveraging open APIs and open innovation &lt;strong&gt;can disrupt traditional use cases and business models&lt;/strong&gt;. This can lead to a loss of market share, revenue, and competitive advantage for &lt;strong&gt;organizations that are not able to adapt quickly&lt;/strong&gt; to the changing landscape.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality and Accuracy of Data&lt;/strong&gt;: When third parties are involved in using an organization's data, there is a &lt;strong&gt;risk of data quality and accuracy issues&lt;/strong&gt;. Organizations may have limited control over how the data is collected, processed, and validated by third parties, which can impact the reliability and integrity of the data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependency on Third Parties&lt;/strong&gt;: Organizations relying heavily on open APIs and third-party innovation &lt;strong&gt;may become dependent on these external entities&lt;/strong&gt;. If a third-party provider experiences disruptions, discontinues their services, or changes their terms and conditions, it can &lt;strong&gt;significantly impact the organization's operations and data strategy&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛡️ Risk mitigation 🧑‍⚖️
&lt;/h2&gt;

&lt;p&gt;To mitigate these risks, organizations should implement  &lt;em&gt;robust data governance practices&lt;/em&gt;*, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data access controls,&lt;/li&gt;
&lt;li&gt;Encryption,&lt;/li&gt;
&lt;li&gt;Monitoring mechanisms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They should also establish clear &lt;strong&gt;agreements and contracts&lt;/strong&gt; with third parties to ensure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data security,&lt;/li&gt;
&lt;li&gt;Intellectual property protection,&lt;/li&gt;
&lt;li&gt;Compliance with regulations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Regular &lt;strong&gt;audits and assessments of third-party partners&lt;/strong&gt; can help ensure their reliability and &lt;strong&gt;adherence to data governance standards.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Last Words
&lt;/h2&gt;

&lt;p&gt;Disruption and open innovation foster a culture of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧑‍🔬 Experimentation,&lt;/li&gt;
&lt;li&gt;🧑‍🤝‍🧑 Collaboration,&lt;/li&gt;
&lt;li&gt;📚 Continuous learning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They both encourage organizations to &lt;strong&gt;embrace data-driven approaches and empower employees to explore new ideas and solutions.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Building a &lt;strong&gt;data culture is crucial for organizations&lt;/strong&gt; to effectively &lt;strong&gt;leverage disruption and open innovation&lt;/strong&gt; in their data strategy.&lt;/p&gt;

&lt;h2&gt;
  
  
  📑 Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.cigref.fr/data-analytics-governance-and-architecture"&gt;Data &amp;amp; Analytics Governance and Architecture: Developing and implementing a data strategy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gartner.com/en/newsroom/press-releases/2021-03-31-gartner-survey-reveals-over-half-of-cios-plan-to-increase-full-time-employees-in-it-to-accelerate-digital-business-initiatives-in-2021"&gt;Expected 2021 IT FTE Change in IT Activities, Gartner&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, below the way we have mapped our resources as data (used on a daily basis as part of our Digital Transformation Journey):&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/optnc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--akFu7-GX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--0QsNl5GP--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/5458/98dc3bfe-45f7-48c6-a182-21944edf46b6.jpg" alt="opt-nc" width="150" height="150"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uIgDHfBs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--qsqU1oih--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/446871/3e9ded5c-f368-4906-a277-35e56c9f97a7.png" alt="" width="150" height="150"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/optnc/our-speech-about-it-holism-at-nodes22-1bpl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🗣️ Our speech about "IT holism" at #nodes22 💡&lt;/h2&gt;
      &lt;h3&gt;adriens for opt-nc ・ Dec 5 '22&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#neo4j&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#datascience&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#datavisualization&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>api</category>
      <category>interview</category>
      <category>data</category>
      <category>news</category>
    </item>
    <item>
      <title>🦆 Effortless Data Quality w/duckdb on GitHub ♾️</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Tue, 25 Jul 2023 06:33:44 +0000</pubDate>
      <link>https://forem.com/optnc/effortless-data-quality-wduckdb-on-github-2mkb</link>
      <guid>https://forem.com/optnc/effortless-data-quality-wduckdb-on-github-2mkb</guid>
      <description>&lt;h2&gt;
  
  
  🪝 Teaser (for the impatients)
&lt;/h2&gt;

&lt;p&gt;Do you have a repository that relies on &lt;code&gt;csv&lt;/code&gt; files... and want to operate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛡️ &lt;strong&gt;Protect your data&lt;/strong&gt; with quality intergrity checks before to &lt;em&gt;corrupt your data&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;🔬 &lt;strong&gt;Check data quality&lt;/strong&gt; as part of your project lifecycle&lt;/li&gt;
&lt;li&gt;📊 Get operational &lt;strong&gt;KPIs reporting&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;♾️ &lt;strong&gt;Automate release process to explain&lt;/strong&gt; your contributors what has been achieved&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Deliver&lt;/strong&gt; data&lt;/li&gt;
&lt;li&gt;🤯 &lt;strong&gt;Endless&lt;/strong&gt; usages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🫵 Don't look further, this sort post will cover all these aspects with a practical and highly understandable workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  🍿 Demo
&lt;/h2&gt;

&lt;p&gt;Enough talks, let's jump'in:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/90RhOdxWNqo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🦆💻🔁🔧♾️🦆 &lt;code&gt;opt-nc/setup-duckdb-action&lt;/code&gt;
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/opt-nc" rel="noopener noreferrer"&gt;
        opt-nc
      &lt;/a&gt; / &lt;a href="https://github.com/opt-nc/setup-duckdb-action" rel="noopener noreferrer"&gt;
        setup-duckdb-action
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🦆 Blazing Fast and highly customizable Github Action to setup a DuckDb runtime
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://github.com/semantic-release/semantic-release" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/251b82ec02847188c7f2f024d0a6752bb8e0422772baaace42e7a7dc3fd8c88a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2532302532302546302539462539332541362546302539462539412538302d73656d616e7469632d2d72656c656173652d6531303037392e737667" alt="semantic-release"&gt;&lt;/a&gt;
&lt;a href="https://github.com/opt-nc/setup-duckdb-action/actions/workflows/codeql-analysis.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/opt-nc/setup-duckdb-action/actions/workflows/codeql-analysis.yml/badge.svg" alt="🛡️ CodeQL"&gt;&lt;/a&gt;
&lt;a href="https://github.com/opt-nc/setup-duckdb-action/actions/workflows/release.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/opt-nc/setup-duckdb-action/actions/workflows/release.yml/badge.svg" alt="🚀 Release"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;ℹ️ Setup Duckdb Action&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;This action installs &lt;a href="https://github.com/duckdb/duckdb" rel="noopener noreferrer"&gt;&lt;code&gt;duckdb&lt;/code&gt;&lt;/a&gt; with the version provided in input.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📜 Inputs&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;code&gt;version&lt;/code&gt;&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Not Required&lt;/strong&gt; The version you want to install. If no version defined, the latest version will be installed.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Example usage&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-yaml notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-ent"&gt;uses&lt;/span&gt;: &lt;span class="pl-s"&gt;opt-nc/setup-duckdb-action@v1.0.8&lt;/span&gt;
&lt;span class="pl-ent"&gt;with&lt;/span&gt;:
  &lt;span class="pl-ent"&gt;version&lt;/span&gt;: &lt;span class="pl-s"&gt;v1.0.0&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-yaml notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-ent"&gt;uses&lt;/span&gt;: &lt;span class="pl-s"&gt;opt-nc/setup-duckdb-action@v1.0.8&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📑 Related resources&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/optnc/effortless-data-quality-wduckdb-on-github-2mkb" rel="nofollow"&gt;🦆 Effortless Data Quality w/duckdb on GitHub ♾️ &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.manning.com/books/duckdb-in-action" rel="nofollow noopener noreferrer"&gt;📖 DuckDB in Action (MEAP)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/davidgasquez/awesome-duckdb" rel="noopener noreferrer"&gt;😎 Awesome DuckDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=cXzkAHPipNw" rel="nofollow noopener noreferrer"&gt;🛡️ Maintain version at github organization level&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/adriens/duckdb-sql-hack-get-things-sorted-w-constraint-check-46c" rel="nofollow"&gt;🪄 DuckDB sql hack : get things SORTED w/ constraint CHECK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/opt-nc/setup-duckdb-action" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  🔭 Further 🎀
&lt;/h2&gt;

&lt;p&gt;Once &lt;strong&gt;CI (Continuous Integration) has been done&lt;/strong&gt;... you can also think (without a lot of efforts) &lt;strong&gt;to Deliver that data to third party services, as part of your DEVOPS pipeline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A this point I see two easy options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload to &lt;em&gt;minio&lt;/em&gt; &lt;a href="https://duckdb.org/docs/extensions/httpfs.html" rel="noopener noreferrer"&gt;&lt;code&gt;S3 API&lt;/code&gt; w/ &lt;code&gt;HTTPS&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Use &lt;a href="https://motherduck.com/" rel="noopener noreferrer"&gt;MotherDuck&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... which make your data available for new usecases, at no additional effort:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NQgHrszyQWY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>duckdb</category>
      <category>githubactions</category>
      <category>data</category>
      <category>automation</category>
    </item>
    <item>
      <title>🗣️🤖 Ask to your Neo4J knowledge base in NLP &amp; get KPIs</title>
      <dc:creator>adriens</dc:creator>
      <pubDate>Thu, 20 Jul 2023 03:32:29 +0000</pubDate>
      <link>https://forem.com/optnc/ask-to-your-neo4j-knowledge-base-in-nlp-get-kpis-5ebd</link>
      <guid>https://forem.com/optnc/ask-to-your-neo4j-knowledge-base-in-nlp-get-kpis-5ebd</guid>
      <description>&lt;h2&gt;
  
  
  🤔 Food for thought
&lt;/h2&gt;

&lt;p&gt;With this content we'll start to uncover a fascinating subject, which is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;strong&gt;cost/value balance of a question/answer&lt;/strong&gt;... and "the illusion of gratuitousness"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As you will see, &lt;code&gt;AI&lt;/code&gt; (and especially &lt;code&gt;AGI&lt;/code&gt;) throws a lot of worries about &lt;a href="https://www.oecd-ilibrary.org/sites/e39255bb-en/index.html?itemId=/content/component/e39255bb-en" rel="noopener noreferrer"&gt;task encroachment&lt;/a&gt;... but also helps challenging &lt;strong&gt;deep questions about what is the ratio between cost &amp;amp; intelligence&lt;/strong&gt;, the impact it does already have on our collaborations... and most important :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"How we join our intelligence and creativity &lt;strong&gt;into a hybrid Humain/AI taskforce&lt;/strong&gt;?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🗞️ &lt;code&gt;Neo4j&lt;/code&gt;, &lt;code&gt;LLMs&lt;/code&gt; and data
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://neo4j.com/generativeai/" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F14elqw7s1o53t98su5zm.png" alt="Image description" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this context no-code integration has landed on &lt;a href="https://neo4j.com/labs/neodash/" rel="noopener noreferrer"&gt;NeoDash&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1678866394480525314-311" src="https://platform.twitter.com/embed/Tweet.html?id=1678866394480525314"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1678866394480525314-311');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1678866394480525314&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;This post will show up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧐 &lt;strong&gt;Why&lt;/strong&gt; it matters&lt;/li&gt;
&lt;li&gt;🎯 &lt;strong&gt;What&lt;/strong&gt; can be achieved with this new feature (and its potential impact on our organizations &amp;amp; workflows)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚼 How it works
&lt;/h2&gt;

&lt;p&gt;Before going further, we need to understand that all that we are going to do is: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ask a question&lt;/strong&gt; in &lt;a href="https://en.wikipedia.org/wiki/Natural_language_processing" rel="noopener noreferrer"&gt;&lt;code&gt;NLP&lt;/code&gt;&lt;/a&gt; (in english for now)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Call openai's LLM API to query meta graph&lt;/strong&gt; &lt;a href="https://neo4j.com/labs/apoc/" rel="noopener noreferrer"&gt;&lt;code&gt;APOC&lt;/code&gt;&lt;/a&gt; and build the &lt;code&gt;cypher&lt;/code&gt; query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get&lt;/strong&gt; the &lt;code&gt;cypher&lt;/code&gt; (the query)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Locally run&lt;/strong&gt; the cypher against the data&lt;/li&gt;
&lt;li&gt;Customize &lt;strong&gt;reports&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🤔 Questions
&lt;/h2&gt;

&lt;p&gt;On your &lt;strong&gt;daily activities&lt;/strong&gt;, you may be challenged by the following kind of questions that &lt;em&gt;look like (ie. follow the same pattern)&lt;/em&gt; : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How many&lt;/strong&gt; GitHub users do we have ? (as it &lt;strong&gt;involves costs&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who are the people&lt;/strong&gt; managed by &lt;code&gt;Mr X&lt;/code&gt;  ?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How many&lt;/strong&gt; GitHub repositories does &lt;code&gt;Team X&lt;/code&gt; maintain ? (involves &lt;strong&gt;capacity to maintain a set of services&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How many&lt;/strong&gt; virtual machine do we have ? (&lt;strong&gt;involves size of infrastructures and then costs,...&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How much&lt;/strong&gt; do we spend on...&lt;/li&gt;
&lt;li&gt;etc...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Therefore we built an &lt;strong&gt;omniscient knowledge graph that is able to answer a very wide amount of questions about our organization.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below some zoom-in into graph topology, so you (as well as the &lt;code&gt;LLM&lt;/code&gt; we will use later) can &lt;strong&gt;understand how to deal with data&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa46ydaavata3qr48kalj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa46ydaavata3qr48kalj.png" alt="Image description" width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnq5h47fzi9xl5j9qo200.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnq5h47fzi9xl5j9qo200.png" alt="Image description" width="371" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we are able to &lt;strong&gt;transform a question into a dashboard widget:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1679730751934464000-102" src="https://platform.twitter.com/embed/Tweet.html?id=1679730751934464000"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1679730751934464000-102');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1679730751934464000&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  🍿 Demo
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/hq_ZvUTCRWQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚖️ Further on strategies
&lt;/h2&gt;

&lt;p&gt;With that first experimentation started to appear new kind of concerns, in particular the following one:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A big omniscient giant vs. a myriad of little agents equipped of custom tools."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This section is dedicated to &lt;strong&gt;very briefly summarize these questions&lt;/strong&gt; so we can talk about them and optimize the design of our solutions, the way we could manage &amp;amp; answer incoming questions... and &lt;strong&gt;most of our own learning path&lt;/strong&gt; so we can delegate automated tasks to AI and...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;focus on the ones that can't or are not yet automated.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  💰 Benefits
&lt;/h2&gt;

&lt;p&gt;As a matter of fact, pretty shortly you're willing to automate questions answering tasks and re-invest that time.&lt;/p&gt;

&lt;p&gt;In short:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗‍💥 People don't wait answers from your part : &lt;strong&gt;they go faster with more freedom&lt;/strong&gt;, they don't make issues, etc...&lt;/li&gt;
&lt;li&gt;🧑‍🚀 You can focus on higher value added activities : &lt;strong&gt;you go further and faster &amp;amp; gain in expertise&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📊 NO-Code &lt;code&gt;Neodash&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No &lt;strong&gt;skill&lt;/strong&gt; required&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plug &amp;amp; play&lt;/strong&gt; strategy&lt;/li&gt;
&lt;li&gt;Could be quite &lt;strong&gt;expensive during query prototyping&lt;/strong&gt; phasis (but keep in mnd that &lt;a href="https://venturebeat.com/ai/openai-is-reducing-the-price-of-the-gpt-3-api-heres-why-it-matters/" rel="noopener noreferrer"&gt;&lt;code&gt;OpenAI&lt;/code&gt; is regularly reducing the price of its APIs&lt;/a&gt; while improving them)&lt;/li&gt;
&lt;li&gt;Put in evidence that &lt;strong&gt;"&lt;em&gt;Time is money&lt;/em&gt;"&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remove the data guys from a potential bottleneck&lt;/strong&gt; situations where people expect them to produce more knowledge at a faster pace&lt;/li&gt;
&lt;li&gt;Very convenient to &lt;strong&gt;prototype&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Great for high level questions and &lt;strong&gt;technically affordable by non-tech people&lt;/strong&gt; (which sets them free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No need to know the knowledge&lt;/strong&gt; graph design&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;100%&lt;/code&gt; AI driven&lt;/strong&gt; and meta-schema driven&lt;/li&gt;
&lt;li&gt;Prone to make misunderstandings and &lt;code&gt;cypher&lt;/code&gt; error generation &lt;strong&gt;(beware of large contexts, see below)&lt;/strong&gt; and adequate &lt;code&gt;LLM&lt;/code&gt; model setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3hdd3rqq5p9g8gh4wxgq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3hdd3rqq5p9g8gh4wxgq.png" alt="Image description" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🦜🔗 &lt;code&gt;Langchain&lt;/code&gt; &amp;amp; custom tools
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/hwchase17/langchain" rel="noopener noreferrer"&gt;Langchain&lt;/a&gt; and the implementation of &lt;a href="https://python.langchain.com/docs/modules/agents/tools/how_to/custom_tools" rel="noopener noreferrer"&gt;Custom Tools&lt;/a&gt; also is a great (and very efficient) way to &lt;strong&gt;setup a dedicated Q&amp;amp;A (for example for chat purpose) agent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here are some few points to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Skills required&lt;/strong&gt; for implementation&lt;/li&gt;
&lt;li&gt;Requires to &lt;strong&gt;know a preset of questions&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Could fall back to the global approach when the chain is not able to find the answser...  simply throw &lt;em&gt;"I'm sorry, but with my current toolset, I was not able to find a suitable answer."&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all for now, hopefully you'll have found this content useful and made you consider new use cases around AI adoption.&lt;/p&gt;

&lt;h2&gt;
  
  
  📘 Book
&lt;/h2&gt;

&lt;p&gt;Last but not least, reading this book also highly helped considerate new way of thinking the work itself and prepare the &lt;del&gt;future&lt;/del&gt; present:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.goodreads.com/book/show/51300408-a-world-without-work" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhtndir8yr347kt4wqqo6.png" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>neo4j</category>
      <category>datascience</category>
      <category>openai</category>
      <category>nocode</category>
    </item>
  </channel>
</rss>
