<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator><link href="https://alainmauri.eu/feed.xml" rel="self" type="application/atom+xml" /><link href="https://alainmauri.eu/" rel="alternate" type="text/html" /><updated>2025-06-05T08:25:56+01:00</updated><id>https://alainmauri.eu/feed.xml</id><title type="html">Alain Mauri</title><subtitle>First draft of my new personal website</subtitle><entry><title type="html">Local ai code assistant</title><link href="https://alainmauri.eu/2025/06/05/local-ai-code-assistant/" rel="alternate" type="text/html" title="Local ai code assistant" /><published>2025-06-05T00:00:00+01:00</published><updated>2025-06-05T00:00:00+01:00</updated><id>https://alainmauri.eu/2025/06/05/local-ai-code-assistant</id><content type="html" xml:base="https://alainmauri.eu/2025/06/05/local-ai-code-assistant/"><![CDATA[<h4 id="disclaimer-because-the-readme-file-of-this-project-is-good-i-decided-to-duplicate-it-here-too">Disclaimer: Because the README file of this project is good, I decided to duplicate it here too.</h4>

<h2 id="build-your-personal-code-assistant">Build your personal code assistant</h2>

<p>This is a personal experiment to explore whether it’s possible to build a local, offline-first code assistant on top of an open-source language model.</p>

<p>The assistant maintains context in a <code class="language-plaintext highlighter-rouge">JSON</code> file, which is updated with each interaction — allowing the model to pick up where it left off.</p>

<h2 id="problem-context">Problem Context</h2>

<p>This started because I didn’t want to rely on commercial products like GitHub Copilot, nor be dependent on an internet connection. I wanted something that works even on a train or plane.
The second constraint is about my development environment. I’m a <a href="https://www.lunarvim.org">Lunarvim</a> user and occasionally use <a href="https://neovim.io">Neovim</a>, so my goal was to first create something pluggable in <code class="language-plaintext highlighter-rouge">Lunarvim</code> and then adapt it for use in plain <code class="language-plaintext highlighter-rouge">Neovim</code>.
The third constraint was focusing on the programming language. I’m mainly <code class="language-plaintext highlighter-rouge">Ruby</code> developer and occasionally <code class="language-plaintext highlighter-rouge">Python</code> so I’ve started by focusing on these two only.</p>

<h2 id="how-it-works-high-level">How it Works (High-level)</h2>

<ul>
  <li>Lua plugin captures code context from the buffer</li>
  <li>Lua calls Python script, passing selected code (or surrounding context)</li>
  <li>Python script prompts the model via Ollama and returns code suggestions</li>
  <li>Suggestions are rendered in a floating window (markdown) or inline (ghost text)</li>
</ul>

<h2 id="draft-implementation">Draft Implementation</h2>

<p>To make the agent run I had to do two things first:</p>

<ul>
  <li>Install <a href="https://github.com/ollama/ollama">Ollama</a> and pull my model of choice <a href="https://huggingface.co/deepseek-ai/deepseek-coder-1.3b-instruct">Deepseek Coder 1.3b</a>. The code is general enough to be used with other models, depending on your machine available resources.</li>
  <li>To keep stuff segregated I created a <code class="language-plaintext highlighter-rouge">Python</code> environment where all the libraries should be installed. It’s not strictly necessary though.</li>
</ul>

<p>The first iteration is the <code class="language-plaintext highlighter-rouge">get_suggestions.py</code> and <code class="language-plaintext highlighter-rouge">ai_assistant.lua</code>. These two work together as follows:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">ai_assistant.lua</code> digests what’s been selected in the current buffer and passed to it. It then calls <code class="language-plaintext highlighter-rouge">get_suggestions.py</code> which returns a markdown formatted suggestion for the selected code and displays everything in a floating window.</li>
  <li>I then added some line to my <code class="language-plaintext highlighter-rouge">Lunarvim</code> configuration file to trigger the process:</li>
</ul>

<div class="language-lua highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">-- Keymap to trigger the AI assistant</span>
<span class="n">lvim</span><span class="p">.</span><span class="n">keys</span><span class="p">.</span><span class="n">visual_mode</span><span class="p">[</span><span class="s2">"&lt;leader&gt;ai"</span><span class="p">]</span> <span class="o">=</span> <span class="s2">":&lt;C-U&gt;lua require('ai.ai_assistant').run_code_assistant()&lt;CR&gt;"</span>
</code></pre></div></div>

<p>The second iteration is more close to what I had in mind and is made up by two other files <code class="language-plaintext highlighter-rouge">inline_suggest.lua</code> and <code class="language-plaintext highlighter-rouge">get_inline_suggestions.py</code>.</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">inline_suggest.lua</code> gets the position of the cursor and the context around it by going back 100 lines and forward 20. It then calls the <code class="language-plaintext highlighter-rouge">get_inline_suggestions.py</code> and displays the results using “virtual text” or “ghost text”.</li>
  <li><code class="language-plaintext highlighter-rouge">get_inline_suggestions.py</code> is much simpler than the previous one and tries to instruct the model by using a prompt  designed to keep the model concise and avoid excessive commentary. What I need is the code only, without comments or other kind of suggestions.</li>
</ul>

<p>To call this last bit I added to my config the following lines</p>

<div class="language-lua highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">vim</span><span class="p">.</span><span class="n">o</span><span class="p">.</span><span class="n">updatetime</span> <span class="o">=</span> <span class="mi">500</span>  <span class="c1">-- 500 ms (you can tweak this)</span>
<span class="n">vim</span><span class="p">.</span><span class="n">api</span><span class="p">.</span><span class="n">nvim_create_autocmd</span><span class="p">(</span><span class="s2">"CursorHold"</span><span class="p">,</span> <span class="p">{</span>
  <span class="n">pattern</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">"*"</span> <span class="p">},</span>
  <span class="n">callback</span> <span class="o">=</span> <span class="k">function</span><span class="p">()</span>
    <span class="nb">require</span><span class="p">(</span><span class="s2">"ai.inline_suggest"</span><span class="p">).</span><span class="n">run</span><span class="p">()</span>
  <span class="k">end</span><span class="p">,</span>
<span class="p">})</span>
</code></pre></div></div>
<p>This creates an auto command that triggers when the cursor is idle for 500ms and interrogates the model.</p>

<p>This is just a basic idea and a work in progress. My hope is to finally have a product that works well enough for my purposes and that can let me use these new technologies without being to0 dependent on the big corporations.</p>

<h2 id="whats-next">What’s Next</h2>
<ul>
  <li>Support for more languages</li>
  <li>Configurable context window size?</li>
  <li>Automatic memory/context trimming?</li>
  <li>Model fine-tuning (eventually?)</li>
</ul>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>

<p>Experimenting with colours:
<br />
<img class="post-image" src="https://pxscdn.com/public/m/_v2/424813098022428933/4f692c7f1-e20d1b/uGQzULFTPkrW/F6CAF7vfAQMVvObfZIc4eNbfogHxTTR6YODmYhn2.jpg" loading="lazy" alt="The image captures a quiet urban scene on a bright day. In the foreground, delicate cherry blossoms frame the view, their pale petals glowing warmly in the light. A white car is parked in an almost empty lot, while a cyclist wearing a helmet rides along a path beside the trees. Behind them, tall buildings rise — a red brick one to the left and a modern glass tower to the right. The sky is striking, a surreal mix of turquoise and violet tones, adding a dreamlike mood. The street is calm, evoking a peaceful, almost cinematic pause in the city." />
<br />
<br />
Experimenting with cinematic style:
<br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/4f692c7f1-e20d1b/8lMIcI8Kc88G/2mYqpFXjqPEPYodAmWVyVJ5OYWfq7q0ZnA05xx2W.jpg" loading="lazy" alt="A young person in dark clothing crosses a quiet city street beneath a pale, overcast sky. To the left, a brick building marked &quot;BBC Radio Sheffield&quot; stands beside a street sign and a tall clock. Straight ahead, a faded beige building is covered in graffiti, with bare trees and empty benches nearby. Traffic lights show green, but only a few people are visible—two figures walking away on the right pavement, and a few distant cars. The scene feels still and contemplative, with muted colors and cinematic black bars above and below, adding a sense of framing and introspective distance." width="1770" height="1080" onerror="this.onerror=null;this.src='/storage/no-preview.png'" class="post-image" />
<br /></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<p>Nintendo Switch 2 is the upgrade of my dreams <a href="https://www.theguardian.com/games/2025/jun/03/nintendo-switch-2-release-mario-kart-world">The Guardian</a></p>

<p>As usual corporate greed is at the base of this race to deploy AI agents:</p>

<blockquote>
  <p>Make no mistake: We’ve talked to scores of CEOs at companies of various sizes and across many industries.
Every single one of them is working furiously to figure out when and how agents or other AI technology can displace human workers at scale.
The second these technologies can operate at a human efficacy level, which could be six months to several years from now, companies will shift from humans to machines.</p>
</blockquote>

<p>Dario Amodei on the future of AI and the job market <a href="https://www.axios.com/2025/05/28/ai-jobs-white-collar-unemployment-anthropic">Behind the Curtain: A white-collar bloodbath</a></p>

<p>20 years ago <a href="https://www.postcrossing.com/20years/meetups">Postcrossing</a> was started. You should get into it, it’s fun!!</p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[Disclaimer: Because the README file of this project is good, I decided to duplicate it here too.]]></summary></entry><entry><title type="html">The Magic World of Browser’s Privacy</title><link href="https://alainmauri.eu/2025/05/30/search-improved-and-specs/" rel="alternate" type="text/html" title="The Magic World of Browser’s Privacy" /><published>2025-05-30T00:00:00+01:00</published><updated>2025-05-30T00:00:00+01:00</updated><id>https://alainmauri.eu/2025/05/30/search-improved-and-specs</id><content type="html" xml:base="https://alainmauri.eu/2025/05/30/search-improved-and-specs/"><![CDATA[<p>While researching for a guide on how to properly write RSpec tests and avoid flaky specs, I once again ran into the growing frustration of modern web searches — cluttered with SEO spam, AI junk, and irrelevant results.
That experience led me to reflect not just on search engines, but also on the browsers we rely on daily. I realized how many of the popular ones are no longer user-friendly — especially when it comes to respecting our privacy and security.
Curious, I dove into the world of alternative browsers. Beyond the better-known options like Brave, DuckDuckGo, and Vivaldi, I discovered lesser-known but powerful tools like the Mullvad Browser — each with its own strengths and trade-offs.<br />
In the link section you will find some of the source I’ve used for this.
Here’s a comparison of these privacy-focused browsers to help you choose the one that fits your needs:</p>

<h4 id="-1-mullvad-browser">🥇 1. Mullvad Browser</h4>
<p>Pros:
Maximal privacy — no telemetry or fingerprinting.
Based on Tor Browser (without the Tor network).
Comes with uBlock Origin preinstalled.
Built for anonymity and security.</p>

<p>Cons:
Not beginner-friendly.
Lacks sync, bookmarks, and convenience features.</p>

<h4 id="-2-brave">🥈 2. Brave</h4>
<p>Pros:
Built-in tracker and ad blocker.
Fingerprinting protection.
Supports Tor in private windows.
Fast and easy to use.</p>

<p>Cons
Controversy on its founder <a href="https://www.spacebar.news/stop-using-brave-browser/">Brendan Eich</a>
Promotes its own crypto features.
Past controversy: affiliate link injections (2019).</p>

<h4 id="-3-firefox">🥉 3. Firefox</h4>
<p>Pros:
Open source and independent.
Strong Enhanced Tracking Protection.
Supports uBlock Origin and privacy extensions.</p>

<p>Cons:
Needs some customization for maximum privacy.
Slightly heavier on system resources.</p>

<h4 id="4-vivaldi">4. Vivaldi</h4>
<p>Pros:
Built-in ad/tracker blocker.
Highly customizable interface.
No telemetry without consent.</p>

<p>Cons:
Not fully open source.
Based on Chromium.</p>

<h4 id="5-safari">5. Safari</h4>
<p>Pros:
Intelligent Tracking Prevention (ITP).
Optimized for battery and performance on Apple devices.
Good privacy defaults.</p>

<p>Cons:
Limited extension ecosystem.
Locked into Apple ecosystem.</p>

<h4 id="6-arc">6. Arc</h4>
<p>Pros:
Innovative UI with useful features.
Ad/tracker blocking supported via extensions.
Clean, distraction-free design.</p>

<p>Cons:
Closed source and cloud-based account required.
Limited transparency on privacy practices.</p>

<h4 id="7-opera">7. Opera</h4>
<p>Pros:
Built-in ad blocker and free VPN (proxy).
Feature-rich and user-friendly.</p>

<p>Cons:
Owned by a Chinese consortium (privacy concerns).
VPN is not truly private.
Previous involvement in shady Android loan apps.</p>

<h4 id="8-microsoft-edge">8. Microsoft Edge</h4>
<p>Pros:
Integration with Windows security features.
Defender SmartScreen protects against phishing/malware.</p>

<p>Cons:
Heavy telemetry and data collection.
Aggressively pushes Microsoft services.
Can override user settings.</p>

<h4 id="9-chromium-vanilla">9. Chromium (Vanilla)</h4>
<p>Pros:
Open source, no proprietary Google code.
More private than Chrome by default.
Customizable for developers.</p>

<p>Cons:
No auto updates or media codecs by default.
Still leaks some data to Google domains (unless patched).</p>

<h4 id="10-google-chrome">10. Google Chrome</h4>
<p>Pros:
Fast, stable, and widely supported.
Excellent extension ecosystem.</p>

<p>Cons:
Heavy telemetry and user tracking.
No built-in tracker or ad blocking.
Designed around Google’s ad business.</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>

<p>A Monochrome picture I’ve taken in Bologna at the Certosa, the monumental cemetery.
<br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/208209554-471e9e/FalbuZnVHjH2/eV059QJNaIZqLcrb5tZZUEwUNA0cqyQsXU36gnoJ.jpg" loading="lazy" alt="The photograph is a black and white image depicting a long, covered colonnade, similar to a hallway with columns on either side.  The colonnade is quite long, extending into the distance where it appears to darken and become less distinct.  The columns are tall and slender, classical in style, with bases and capitals.  Between the columns, there are walls with what appear to be stone or marble plaques or memorials, possibly tombstones, set into them.  Small floral arrangements are visible in some of these niches.  The floor of the colonnade is paved, and the shadows of the columns are cast long and distinctly on the ground, indicating a strong light source from one side.  A small, rectangular object, possibly a drain cover, is visible in the center of the foreground.  A person is visible in the far distance, adding a sense of scale and depth to the image. The overall impression is one of quiet solemnity and architectural grandeur." class="post-image" />
<br />
<br />
The last intact cementation furnace in Britain it’s in <a href="https://en.wikipedia.org/wiki/Cementation_furnace,_Sheffield">Sheffield</a>
<br />
<img data-v-46f39310="" src="https://pxscdn.com/public/m/_v2/424813098022428933/208209554-471e9e/lmrB8K9vBDTo/O5H6e64G6Bv2twAJ4nsxz3nm90y3kfV7uIbbCAN2.jpg" loading="lazy" alt="A large, conical brick tower stands prominently in a sunny urban landscape. The tower, once used for cementation in steel production, is dark reddish-brown with weathered bricks and a faded, patchy surface. A modern white metal structure is mounted at its top. Behind it are several mid-rise buildings with red, grey, and white facades, reflecting contemporary architecture. In the foreground lies a rough, dusty area with rubble, overgrown weeds, and metal fencing. The sky is clear and deep blue, casting strong, sharp shadows. The scene contrasts industrial heritage with urban development." class="post-image" />
<br />
<br />
All the pictures I usually post here are also available in my <a href="https://pixelfed.social/wildeng">Pixelfed Ptofile</a></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<ul>
  <li><a href="https://coveryourtracks.eff.org/">EFF Cover Your Tracks</a></li>
  <li><a href="https://mullvad.net/en/browser">Mullvad Browser – Official Site</a></li>
  <li><a href="https://brave.com/privacy/">Brave Privacy Features</a></li>
  <li><a href="https://support.mozilla.org/en-US/products/firefox/privacy-and-security">Firefox Privacy &amp; Security Help</a></li>
  <li><a href="https://spreadprivacy.com/">DuckDuckGo Tracker Blocking</a></li>
  <li><a href="https://vivaldi.com/privacy/browser/">Vivaldi Browser Privacy</a></li>
  <li><a href="https://www.apple.com/privacy/features/">Safari Features – Apple</a></li>
  <li><a href="https://www.opera.com/privacy">Opera Privacy Policy</a></li>
  <li><a href="https://learn.microsoft.com/en-us/microsoft-edge/privacy-whitepaper/">Microsoft Edge Privacy Whitepaper</a></li>
  <li><a href="https://www.google.com/chrome/privacy/whitepaper.html">Chrome Privacy Whitepaper</a></li>
  <li><a href="https://cyberinsider.com/browser/secure/">RestorePrivacy Browser Comparison</a></li>
  <li><a href="https://www.spacebar.news/stop-using-opera-browser/">Stop Using Opera Browser</a></li>
</ul>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[While researching for a guide on how to properly write RSpec tests and avoid flaky specs, I once again ran into the growing frustration of modern web searches — cluttered with SEO spam, AI junk, and irrelevant results. That experience led me to reflect not just on search engines, but also on the browsers we rely on daily. I realized how many of the popular ones are no longer user-friendly — especially when it comes to respecting our privacy and security. Curious, I dove into the world of alternative browsers. Beyond the better-known options like Brave, DuckDuckGo, and Vivaldi, I discovered lesser-known but powerful tools like the Mullvad Browser — each with its own strengths and trade-offs. In the link section you will find some of the source I’ve used for this. Here’s a comparison of these privacy-focused browsers to help you choose the one that fits your needs:]]></summary></entry><entry><title type="html">Coding as art</title><link href="https://alainmauri.eu/2025/03/17/coding-as-art/" rel="alternate" type="text/html" title="Coding as art" /><published>2025-03-17T00:00:00+00:00</published><updated>2025-03-17T00:00:00+00:00</updated><id>https://alainmauri.eu/2025/03/17/coding-as-art</id><content type="html" xml:base="https://alainmauri.eu/2025/03/17/coding-as-art/"><![CDATA[<p>I graduated in electronic engineering — a practical, structured subject where precision matters and creativity often takes a back seat. But long before that, two things shaped how I see the world: playing the guitar and coding on a C64.</p>

<p>I was 12 when I got my hands on that C64. My first coding projects were practical — I even wrote a program to try to win the <em>Totocalcio</em> (Italy’s football pool). It didn’t work, but the thrill of making the machine do what I wanted stuck with me. I also experimented with sprites and graphics, discovering the creative side of code.</p>

<p>At the same time, I was studying classical guitar while trying to replicate the sounds of Hendrix, Clapton, BB King, and Led Zeppelin by ear. Coding and music seemed like opposites — one technical, the other emotional — but over time, I realized they weren’t so different. Both require structure and creativity, precision and expression.</p>

<p>Around my thirties, I tried to get into film photography — this was around 2003 — but it didn’t click. Maybe I didn’t have the right information or the right mindset. So I stopped. Then about a year ago, I picked up digital photography more seriously, and now I’m back to film too. This time it feels different — partly because I’ve found some great people on Pixelfed who’ve shared the right suggestions at the right time.</p>

<p>That’s why, even now as a software engineer, I feel the need to do something artistic. Creativity and logic aren’t opposites — they feed each other and need each other. That’s why I’m sure many software engineers out there are doing some kind of creative work. It’s not just a balance — it’s part of what makes us good at both.</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>
<p><br />
A picture of the river Don that I’ve taken with my film camera in Kelham Island - Sheffield<br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/549719332-a3f277/AaNJwLe0PGhh/q3TKHXpeg1uv9FoAMbEQdlxMcGyHBBh6JCe4Vcya.jpg" alt="the picture shows the river don in Kelham Island Sheffield. On the right side some old red brick industrial buildings are reflecting in the river's water which has a brownish colour. On the left leafless trees and bushes. In the middle of the picture two tall modern buildings can be seen  on the background while in the foreground there are other red brick old industrial ones, some ducks are floating on the water" class="post-image" />
<br />
<br />
I like this one that I took with my digital camera. A sweet moment during the Chinese New Year festival in Sheffield<br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/758e75a50-ddd61a/ZwroLPxfuxzj/uP9TE7jfRdxxSzugBccrE6FK4LNKw264X6DVlF93.jpg" alt="A man is putting a lion head made of inflated balloons on the head of a toddler. The picture tries to show the happiness of the moment. The shot has been taken during Chinese new year celebrations" class="post-image" />
<br />
<br /></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>
<p>Ruby debugging <a href="https://railsatscale.com/2025-03-14-ruby-debugging-tips-and-recommendations-2025/">tips</a><br />
Stories from US Federal employees <a href="https://www.wethebuilders.org/">We are the builders</a><br />
Wizardzines - Implement DNS in a <a href="https://implement-dns.wizardzines.com/">weekend</a><br />
You will love this: <a href="https://github.com/Jaennaet/pISSStream">pISSStream</a> a menu bar app that shows you how full the urine tank of the ISS is.</p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[I graduated in electronic engineering — a practical, structured subject where precision matters and creativity often takes a back seat. But long before that, two things shaped how I see the world: playing the guitar and coding on a C64.]]></summary></entry><entry><title type="html">Simplify Ruby Blocks</title><link href="https://alainmauri.eu/2024/12/25/simplify-ruby-blocks/" rel="alternate" type="text/html" title="Simplify Ruby Blocks" /><published>2024-12-25T00:00:00+00:00</published><updated>2024-12-25T00:00:00+00:00</updated><id>https://alainmauri.eu/2024/12/25/simplify-ruby-blocks</id><content type="html" xml:base="https://alainmauri.eu/2024/12/25/simplify-ruby-blocks/"><![CDATA[<p>I didn’t plan to write anything on Christmas, and honestly, I haven’t been great at blogging. But here we are, another 25th of December and another Ruby release!<br />
This time, Ruby 3.4 brings an array of fantastic features, including Prism as the default parser, improved performance, reduced memory usage for YJIT, and much more. I highly encourage you to explore all the updates.
What caught my attention the most, though is the introduction of the <code class="language-plaintext highlighter-rouge">it</code> parameter. Back in Ruby 2.7 the shorthand <code class="language-plaintext highlighter-rouge">_1</code> block parameter was introduced allowing developers to write more concise
and elegant blocks. This enhancement made code more readable and intuitive.
The traditional approach is to use the <code class="language-plaintext highlighter-rouge">|</code> symbol in a block, something like:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">].</span><span class="nf">map</span> <span class="p">{</span> <span class="o">|</span><span class="n">n</span><span class="o">|</span> <span class="n">n</span> <span class="o">*</span> <span class="mi">2</span> <span class="p">}</span>
</code></pre></div></div>
<p>the <code class="language-plaintext highlighter-rouge">_1</code> (and <code class="language-plaintext highlighter-rouge">_2, _3</code>) parameters removes the need to explicit the block variable explicitely and so, the above code could be written as:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">].</span><span class="nf">map</span> <span class="p">{</span> <span class="n">_1</span> <span class="o">*</span> <span class="mi">2</span> <span class="p">}</span>  <span class="c1"># _1 refers to each element in the array</span>
</code></pre></div></div>
<p>Let’s take a look at another example:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">[[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]].</span><span class="nf">map</span> <span class="p">{</span> <span class="n">_1</span> <span class="o">+</span> <span class="n">_2</span> <span class="p">}</span>
</code></pre></div></div>
<p>In this case <code class="language-plaintext highlighter-rouge">_1</code> refers to the first element of the array, <code class="language-plaintext highlighter-rouge">_2</code> to the second and so on. Ruby supports an unlimited number of block parameters allowing you to use <code class="language-plaintext highlighter-rouge">_1,_2,_3</code> and so
on, depending on the number of arguments passed to the block.<br />
Ruby <code class="language-plaintext highlighter-rouge">3.4</code>, released today, introduced <code class="language-plaintext highlighter-rouge">it</code> as a reference to a block parameter with no variable name and it’s especially useful in the case of one parameter only or when the block operation is straightforward providing a more readable alternative
to <code class="language-plaintext highlighter-rouge">_1</code> for developers unfamiliar with <code class="language-plaintext highlighter-rouge">_1</code>.</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">].</span><span class="nf">map</span> <span class="p">{</span> <span class="n">it</span> <span class="o">*</span> <span class="mi">2</span> <span class="p">}</span>
</code></pre></div></div>
<p>These approaches are particularly useful in situations where block variables have no semantic meaning, such as simple transformations or operations. However, in complex blocks or scenarios where parameter names add clarity, traditional syntax remains preferable.<br />
In conclusion, these block parameters are a useful tool to write more concise and readable block.</p>

<p>I think is enough writing for Christmas day, happy coding!</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>

<p>I love the colours of this sunrise I caught a week ago from my window.
<br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/9da63c77d-bc90ba/kxkzDdkmcZuY/Bcbk4cuQtHWulxSy9fN3lg5jUdMsp7vLVHORk0JJ.jpg" alt="Sunrise from my window in Sheffield" class="post-image" />
<br /></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<p>A Christmas Cartoon from the <a href="https://www.newyorker.com/cartoons/daily-cartoon/wednesday-december-25th-worth-it?utm_source=nl&amp;utm_brand=tny&amp;utm_mailing=TNY_Humor_122524&amp;utm_campaign=aud-dev&amp;utm_medium=email&amp;bxid=63cda847194f293410074e42&amp;cndid=72627383&amp;esrc=subscribe-page&amp;utm_term=TNY_Humor">New Yorker</a><br />
The 20 most read stories on <a href="https://arstechnica.com/staff/2024/12/the-20-most-read-stories-of-2024-on-ars-technica/">Ars Technica</a><br />
A complete guide for linting <a href="https://freshman.tech/linting-golang/">Go programs</a> <br />
Rails 8 <a href="https://rubyonrails.org/2024/11/7/rails-8-no-paas-required">No PaaS Required</a></p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[I didn’t plan to write anything on Christmas, and honestly, I haven’t been great at blogging. But here we are, another 25th of December and another Ruby release! This time, Ruby 3.4 brings an array of fantastic features, including Prism as the default parser, improved performance, reduced memory usage for YJIT, and much more. I highly encourage you to explore all the updates. What caught my attention the most, though is the introduction of the it parameter. Back in Ruby 2.7 the shorthand _1 block parameter was introduced allowing developers to write more concise and elegant blocks. This enhancement made code more readable and intuitive. The traditional approach is to use the | symbol in a block, something like:]]></summary></entry><entry><title type="html">My generator works</title><link href="https://alainmauri.eu/2024/09/23/my-generator-works/" rel="alternate" type="text/html" title="My generator works" /><published>2024-09-23T00:00:00+01:00</published><updated>2024-09-23T00:00:00+01:00</updated><id>https://alainmauri.eu/2024/09/23/my-generator-works</id><content type="html" xml:base="https://alainmauri.eu/2024/09/23/my-generator-works/"><![CDATA[<p>I’m quite proud of how my blogpost template generator is taking shape. While there are still some edge cases that I haven’t covered, and a few more improvements to be made, it’s coming along nicely.
If you want to take a look, I linked the repository in a previous post. <a href="https://github.com/wildeng/wildeng.github.io/blob/development/_scripts/blogpost.rb">Here’s the permalink to the latest version of the script</a>.<br />
Shifting gears, I’m finally working on something pretty interesting at my day job. It’s simple codewise, but the theory behind it has been engaging. I’ve been focusing on building predictors for young athletes.
 While these predictors aren’t complex from a technical perspective, they are quite powerful in terms of the insights they provide about athletic potential.</p>

<p>I’m finally doing some interesting things at work. Codewise they’re simple but I’m working on some predictors that are for young athletes and the theory behind them is interesting.<br />
One of the most fascinating methods I’ve encountered is the <a href="https://en.wikipedia.org/wiki/Harry_J._Khamis#:~:text=Roche%2C%20Khamis%20developed%20the%20Khamis,to%20methods%20using%20skeletal%20age.">Khamis-Roche</a> method, which estimates a child’s adult height based on their current height, age, 
and their parents’ heights. This method is widely used and doesn’t require invasive procedures like X-rays, which makes it especially practical.</p>

<p>How the Khamis-Roche Method Works:</p>
<ol>
  <li>Inputs: The method takes the child’s current height, weight, age, and the average of the parents’ heights (mid-parental height).</li>
  <li>Mid-parental Height: This is calculated by averaging the father’s and mother’s heights.</li>
  <li>Gender Adjustment: The formula adds 5 inches (about 13 cm) for boys and subtracts the same amount for girls to account for typical growth patterns.</li>
  <li>Growth Data: The method considers the child’s current growth percentiles for a more accurate prediction.</li>
  <li>Accuracy: It’s around 95% accurate, especially for children aged 4 and older.</li>
  <li>Non-Invasive: Unlike other methods that rely on X-rays to estimate bone age, the Khamis-Roche method is completely non-invasive.</li>
  <li>Gender Differences: The formula is slightly adjusted for boys and girls to reflect different growth trajectories.
This method is straightforward and grounded in general growth trends, making it reliable and easy to apply.</li>
</ol>

<p>I’ve also realized that predicting the potential of a young athlete involves much more than just their technical abilities. It’s been eye-opening to see how various predictors, like growth patterns, influence assessments of athletic potential. 
These small discoveries have made my work feel less routine and more meaningful in recent days.</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>
<p>A photo a took this past summer from the top of <a href="https://en.wikipedia.org/wiki/Redipuglia_War_Memorial">Redipuglia War Memorial</a>. I did like the contrast between the white concrete and the blue sky.
<br />
<img src="/images/IMG_5579.jpeg" alt="a picture taken from the top of redipuglia war memorial in italy" class="post-image" />
<br /></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<p>How Telegram became the Underworld’s favourite app <a href="https://www.nytimes.com/2024/09/23/podcasts/the-daily/telegram-terrorism.html?action=click&amp;module=audio-series-bar&amp;region=header&amp;pgtype=Article">The Daily</a><br />
The Real-World cost of AI <a href="https://www.theglobeandmail.com/podcasts/machines-like-us/article-the-real-world-costs-of-ai/">Machines like us podcast</a><br />
Browsing the <a href="https://us20.campaign-archive.com/?e=8d1795a565&amp;u=38bd6154386f64fcd92204a25&amp;id=89d656bce5">Archive</a><br />
Hacker’s Movie <a href="https://cybersecurityventures.com/movies-about-cybersecurity-and-hacking/">Guide</a></p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[I’m quite proud of how my blogpost template generator is taking shape. While there are still some edge cases that I haven’t covered, and a few more improvements to be made, it’s coming along nicely. If you want to take a look, I linked the repository in a previous post. Here’s the permalink to the latest version of the script. Shifting gears, I’m finally working on something pretty interesting at my day job. It’s simple codewise, but the theory behind it has been engaging. I’ve been focusing on building predictors for young athletes. While these predictors aren’t complex from a technical perspective, they are quite powerful in terms of the insights they provide about athletic potential.]]></summary></entry><entry><title type="html">My Own Generator</title><link href="https://alainmauri.eu/2024/09/21/my-own-generator/" rel="alternate" type="text/html" title="My Own Generator" /><published>2024-09-21T00:00:00+01:00</published><updated>2024-09-21T00:00:00+01:00</updated><id>https://alainmauri.eu/2024/09/21/my-own-generator</id><content type="html" xml:base="https://alainmauri.eu/2024/09/21/my-own-generator/"><![CDATA[<p>Many things are recently going on in my mind, but I guess it’s just part of that process called aging. I’m having that feeling that I still have so many things to do and learn (<a href="https://album.link/i/258622449">Kenny G.</a> is playing in the background) but the time left is not enough.
Despite this and the fact that I’m not that fast as a developer as before - never been a 10x though… more a 2x :smile: - I’m still enjoying writing in that bizarre language called “code” and share my small achievements in blog posts, even though I realized
that I have to write when I feel too and not with a predefined routine. This is what I am and I think I’m not going to change much… 
Anyway I enjoy writing with my usual editor (Neovim or Lunarvim) but I don’t enjoy copy pasting things around. More I was in the process of learning how to use the <a href="http://whatisthor.com">Thor</a> gem so I said to myself that probably the best thing to do learn how it works is building something wih it. 
It took me less than one hour to build an alpha version of my personal blogpost generator and you can find the code <a href="https://github.com/wildeng/wildeng.github.io/blob/55bac77ea91252e72c3c45f8b57593d20f3b0454/_scripts/blogpost.rb">here</a>. 
<br />
More, I already have in my mind some improvements:
<br />
Add some validations to the name and date passed as arguments 
<br />
Add the possibility to set up a customisable path for saving the file. I’m just thinking about how to organise posts e.g. by category 
<br />
Maybe add a file path to a template as a /a/ameter. In this way I could potentially change the structure of my posts and make the generator more general.</p>

<p>I probably have many more improvements in my mind but the music is almost over and the beer is finished - It’s a Saturday evening so I can indulge a bit more with drinks!</p>

<p>Cheers!
<br />
By the way, I also added some animation to my career page, check it out!</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>

<p><br /></p>

<p>Look at the difference between the two! The Webb telescope is amazing! The original is <a href="https://www.flickr.com/photos/nasawebbtelescope/53969828422/in/album-72177720313923911">here</a> <br />
<img src="https://live.staticflickr.com/65535/53969828422_e000c6a967_k.jpg" alt="Question Mark Galaxy - Hubble and Webb | by James Webb Space Telescope" class="post-image" />
<br />
<br />
This one is called “Peeking into Perseus”, I love the colours… original <a href="https://www.flickr.com/photos/nasawebbtelescope/53951942710/in/album-72177720313923911">here</a><br />
<img src="https://live.staticflickr.com/65535/53951942710_5f4cef91ce_b.jpg" alt="Webb Finds Early Galaxies Weren't Too Big for Their Britches After All | by James Webb Space Telescope" class="post-image" />
<br />
<br /></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<p>Shady firm are already manipulating <a href="https://futurism.com/shady-firms-manipulating-chatbots">chatbots</a> <br />
Where do music genres come from? <a href="https://www.honest-broker.com/p/where-do-music-genres-come-from">Ted Gioia</a> <br />
Cards against humanity sues Space X <a href="https://arstechnica.com/tech-policy/2024/09/cards-against-humanity-sues-spacex-alleges-invasion-of-land-on-us-mexico-border/">Arstechnica</a><br />
Secret calculator chat brings ChatGPT to TI-84 <a href="https://arstechnica.com/information-technology/2024/09/secret-calculator-hack-brings-chatgpt-to-the-ti-84-enabling-easy-cheating/">Arstechnica</a></p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[Many things are recently going on in my mind, but I guess it’s just part of that process called aging. I’m having that feeling that I still have so many things to do and learn (Kenny G. is playing in the background) but the time left is not enough. Despite this and the fact that I’m not that fast as a developer as before - never been a 10x though… more a 2x :smile: - I’m still enjoying writing in that bizarre language called “code” and share my small achievements in blog posts, even though I realized that I have to write when I feel too and not with a predefined routine. This is what I am and I think I’m not going to change much… Anyway I enjoy writing with my usual editor (Neovim or Lunarvim) but I don’t enjoy copy pasting things around. More I was in the process of learning how to use the Thor gem so I said to myself that probably the best thing to do learn how it works is building something wih it. It took me less than one hour to build an alpha version of my personal blogpost generator and you can find the code here. More, I already have in my mind some improvements: Add some validations to the name and date passed as arguments Add the possibility to set up a customisable path for saving the file. I’m just thinking about how to organise posts e.g. by category Maybe add a file path to a template as a /a/ameter. In this way I could potentially change the structure of my posts and make the generator more general.]]></summary></entry><entry><title type="html">Thoughts in random order</title><link href="https://alainmauri.eu/2024/08/26/random-thoughts/" rel="alternate" type="text/html" title="Thoughts in random order" /><published>2024-08-26T00:00:00+01:00</published><updated>2024-08-26T00:00:00+01:00</updated><id>https://alainmauri.eu/2024/08/26/random-thoughts</id><content type="html" xml:base="https://alainmauri.eu/2024/08/26/random-thoughts/"><![CDATA[<p>AI-generated images are a problem, no more or less than “natural” ones. Can we determine whether an image is authentic or not? If someone claims an image is fake - e.g., Trump regarding a Kamala Harris rally -
can we produce documentation to prove its authenticity? And if so, will others be willing to accept the truth, or will they continue to believe what suits them best?
Italian researcher Walter Quattrociocchi, in an article for the financial newspaper <a href="https://www.ilsole24ore.com/art/armarsi-contro-fake-news-strumenti-il-prebunking-e-debunking-AGTHB8W">Il Sole 24 ore</a>, explains that debunking doesn’t work, mostly because people stick to their mental models
even when confronted with the truth. This is where prebunking becomes useful.
Prebunking, also known as inoculation theory in communication studies, is a proactive approach to combating misinformation.
The goal of prebunking is to equip people with the skills to spot false and misleading information online before they encounter it, thereby preempting manipulation.
This method works by exposing individuals to weakened forms of misinformation and teaching them how to identify and counter deceptive tactics.</p>

<p>Key aspects of prebunking include:</p>

<ol>
  <li>Education: Teaching critical thinking skills and common manipulation techniques used in misinformation.</li>
  <li>Exposure: Presenting mild doses of misinformation along with explanations of why it’s misleading.</li>
  <li>Practice: Allowing individuals to apply their new knowledge in controlled scenarios.</li>
  <li>Reinforcement: Regularly updating and reinforcing these skills as misinformation tactics evolve.</li>
</ol>

<p>By implementing prebunking strategies, the aim is to make online users more resilient to being misled in the future.
This approach acknowledges that prevention is often more effective than cure when it comes to battling the spread of misinformation in our digital age.</p>

<p>I’ve been back to Italy with the whole family after two years. Many things have changed, and I feel I belong to a different place now.
But still, when I come here, many sweet memories come to my mind, and I start questioning my past choices.
I guess it’s normal, given that I moved to the UK for two main reasons: better job opportunities for a Rubyist and putting some distance between myself and all the pressures my former life was
putting on me. 
Anyway, seeing what my kids have become and the happiness in my wife’s eyes is enough to say that our life has improved a lot,
despite Brexit and all the xenophobic rhetoric that comes from the British far right.</p>

<p>I want to learn how to solve a Rubik’s cube! :smile: I remember when I was a kid, back in the 80s, I had a Rubik’s cube and after scrambling it, I detached all the coloured stickers and
put them back in the right order, pretending I had solved it!</p>

<p>I’m reading “Ruby under a Microscope” again. Sometimes I need to refresh my understanding of the language, and I think that I know more about Ruby than I do about Rails.
This hasn’t always been valued during interviews. What fascinates me is the way the language handles different scenarios, such as <code class="language-plaintext highlighter-rouge">include</code>, <code class="language-plaintext highlighter-rouge">extend</code>, and <code class="language-plaintext highlighter-rouge">prepend</code>,
the algorithms used to parse the code, and generally all the internal mechanisms that make my life as a developer easier.</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>

<p>Some other pictures I recently took:</p>

<p><br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/3781ba7d4-1bb9dc/8S7jdImacpHV/VPQAShFmJHjrIN6kSm5rsgAEpqHGsNxA9IEYmgIf.jpg" alt="a woman smiling while walking the dogs in Brighton" class="post-image" />
<br />
<br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/530d83cd3-f15549/ShUL7h8BaWYq/b5eRHVRH7oE3gvjTsAuXkrwGUOmNmbb2OreasATo.jpg" alt="a photographer with some dancers posing for him in kelham island sheffield" class="post-image" />
<br />
<br /></p>

<p>:heart: I’ve tried many IDEs in my career but I always come back to Lunarvim or Emacs :heart:</p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<p>Prebunking with <a href="https://prebunking.withgoogle.com">Google</a></p>

<p>You need just 19 words to provide <a href="https://www.youtube.com/watch?v=8lfQGSV47Y8">wise feedback</a> from Daniel Pink <code class="language-plaintext highlighter-rouge">Pinkcast</code></p>

<p>Microsoft refuses to patch multiple flaws in Microsoft macOS apps <a href="https://www.theregister.com/2024/08/19/cisco_talos_microsoft_macos/">The Register</a></p>

<p>Who uses LLM <a href="https://www.theregister.com/2024/08/13/who_uses_llm_prompt_injection/">prompt injection?</a></p>

<p>The Obamas’ <a href="https://slate.com/news-and-politics/2024/08/barack-obama-crowd-size-michelle-obama-black-jobs-dnc-speech.html">real superpower</a></p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[AI-generated images are a problem, no more or less than “natural” ones. Can we determine whether an image is authentic or not? If someone claims an image is fake - e.g., Trump regarding a Kamala Harris rally - can we produce documentation to prove its authenticity? And if so, will others be willing to accept the truth, or will they continue to believe what suits them best? Italian researcher Walter Quattrociocchi, in an article for the financial newspaper Il Sole 24 ore, explains that debunking doesn’t work, mostly because people stick to their mental models even when confronted with the truth. This is where prebunking becomes useful. Prebunking, also known as inoculation theory in communication studies, is a proactive approach to combating misinformation. The goal of prebunking is to equip people with the skills to spot false and misleading information online before they encounter it, thereby preempting manipulation. This method works by exposing individuals to weakened forms of misinformation and teaching them how to identify and counter deceptive tactics.]]></summary></entry><entry><title type="html">Busy Bee, balancing work, life and photography</title><link href="https://alainmauri.eu/2024/05/27/what-i-am-doing/" rel="alternate" type="text/html" title="Busy Bee, balancing work, life and photography" /><published>2024-05-27T00:00:00+01:00</published><updated>2024-05-27T00:00:00+01:00</updated><id>https://alainmauri.eu/2024/05/27/what-i-am-doing</id><content type="html" xml:base="https://alainmauri.eu/2024/05/27/what-i-am-doing/"><![CDATA[<p>In these past weeks, I haven’t had as much time to write as I’d like, given that work has been really demanding.
This is something I’m hoping to create more space for in the coming weeks. But even with a busy schedule,
I’ve been able to find moments to move forward with my French and Friulian studies, mostly during the evenings.</p>

<p>I’ve also gotten into the habit of carrying my camera whenever I walk somewhere. 
There’s always something worth capturing, and it’s a great way to experiment and improve my photography skills.
Whether it’s mastering camera settings or post-processing with Procreate,
I’m constantly learning. Speaking of Procreate, it’s been a blast playing around with adding color to black and white photos.
It’s taken me to some unexpected places creatively, like this one I’ve posted on my Pixelfed account:<br />
<br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/7321b8e85-c3df53/HeUeZiWYek2E/VNrIqj84Yh1xAsvQkCLioMehh53ywjH3IZ6o56Im.jpg" alt="some houses in crookes road sheffield black and white picture" class="post-image" />
<br /></p>

<p>On the developer side of things, Brighton Ruby is approaching and I’m lucky enough to have a ticket!<br />
Thanks again to <a href="https://www.linkedin.com/in/salwan-shimoun-43a0b8228">Sawan</a>.
It looks like a fantastic year for the conference, with so many interesting speakers.
I’m particularly looking forward to hearing from Nadia Odunayio, the developer behind The Story Graph (a fantastic alternative to Goodreads!), 
and Chris Oliver, the mind behind Go Rails. I’m also eager to learn more about Ruby Ractors from Daniel Vartanov’s talk. 
Having some experience with Goroutines, I’m curious about the similarities between the two for parallel processing.</p>

<h4 id="my-relation-with-llms">My relation with LLMs</h4>

<p>So far I’ve developed a cautios relationship with LLMs, sometimes I use them but I’ve got in the habit of checking the information provided, given the
frequent hallucinations they have. Still, although they are sometimes useful, I don’t feel that scraping the Internet to feed them without paying anything to
the people that crafted all that content is fair. In my eyes these companies just another wave of capitalists that are trying to make money by literally
stealing someone else’s work. Gary Marcus on <a href="https://x.com/GaryMarcus/status/1744362345403392510">X - Twitter</a> said it well, talking about OpenAI call for
copyright exemption to “save” ChatGPT:</p>

<blockquote>
  <p>Rough Translation: We won’t get fabulously rich if you don’t let us steal, so please don’t make stealing a crime!</p>
</blockquote>

<p>I think that’s the right time to put some regulation in place, we cannot let these people do whatever they want without any kind of rule, they need to be
accountable for any kind of damage their activity can cause.</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>

<p>This time I just want to post some pictures I’m really proud of:</p>

<p><br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/7321b8e85-c3df53/nBzo0vhN1wlg/6NuzDIkzXbxXxXOZ2LqfcFTL2jDh2qEFUobiQIdd.jpg" alt="barkers pool in sheffield, photo taken at dusk with the camera sitting on a marble bench reflecting some images" class="post-image" />
<br />
<br />
<img src="https://pxscdn.com/public/m/_v2/424813098022428933/7321b8e85-c3df53/nssuu91hRBMz/H0sZD3ddVokltUyezlFZ828tijHGQV3pni6R79Wu.jpg" class="post-image" /></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<p>How far Trump <a href="https://time.com/6972021/donald-trump-2024-election-interview/">would go</a></p>

<p>Open AI will use Reddit Post to train ChatGPT <a href="https://arstechnica.com/ai/2024/05/openai-will-use-reddit-posts-to-train-chatgpt-under-new-deal/">Ars Tehcnica</a></p>

<p>An Introduction to ractors in Ruby on <a href="https://blog.appsignal.com/2022/08/24/an-introduction-to-ractors-in-ruby.html">Appsignal</a></p>

<p>Slack users horrified to discover messages used for AI training <a href="https://arstechnica.com/tech-policy/2024/05/slack-defends-default-opt-in-for-ai-training-on-chats-amid-user-outrage/">Ars Technica</a></p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[In these past weeks, I haven’t had as much time to write as I’d like, given that work has been really demanding. This is something I’m hoping to create more space for in the coming weeks. But even with a busy schedule, I’ve been able to find moments to move forward with my French and Friulian studies, mostly during the evenings.]]></summary></entry><entry><title type="html">Rise of the machines, are software engineers next?</title><link href="https://alainmauri.eu/2024/04/09/ai-big-replacement/" rel="alternate" type="text/html" title="Rise of the machines, are software engineers next?" /><published>2024-04-09T00:00:00+01:00</published><updated>2024-04-09T00:00:00+01:00</updated><id>https://alainmauri.eu/2024/04/09/ai-big-replacement</id><content type="html" xml:base="https://alainmauri.eu/2024/04/09/ai-big-replacement/"><![CDATA[<p>Watching the rise of different tools that “can function as a fully autonomous software engineer”(<a href="https://easywithai.com/ai-developer-tools/devin/">Devin Introduction</a>) I’ve started thinking about the future of my job as a software engineer and obviously one big question came into my mind:</p>

<p>Will my job be replaced by LLMs or is this simply a new tool to learn and improve my daily workflow? <br />
I’m honestly worried about this and I started researching a bit around the argument and what I’ve found is not so encouraging at all.<br />
Take a look at what Jensen Huang Nvidia CEO <a href="https://twitter.com/Carnage4Life/status/1761483377365152234">said</a>. Now, should we stop teaching Computer Science because AI will generate all the code we want by using natural language? Honestly, should we take the word of someone with a vested financial interest? I don’t think so, however his words are outlining a common trend that’s well explained in this post by <a href="https://www.baldurbjarnason.com/2024/the-one-about-the-web-developer-job-market/">Baldur Bjarnason</a> which is a long one to summarize but let me put it in plain and simple words:<br />
As software engineers we are well paid and this, in the modern tech - and not only - corporate world is something that needs to be fixed with every means, and honestly this is what management believes: Read this <a href="https://www.reddit.com/r/cscareerquestions/comments/1axlbub/executive_leadership_believes_llms_will_replace/">Reddit</a> thread quoted in Bjarnason’s post, among other things.</p>

<p>The most positive approach I found so far is this by <a href="https://thenewstack.io/code-in-context-how-ai-can-help-improve-our-documentation/">Jon Udell</a> he thinks that LLms will help us understanding existing code rather than writing it, because of their “ability” to recognise patterns and summarise the findings. In his eyes this should improve the quality of the documentation and the overall quality of the code itself, that will for sure still be written by humans.</p>

<p>Now what should I do? Well, before moving to the Uk I was freelancing and I never put my eggs in one basket so I will try to diversify my knowledge again. By diversifying my skills with languages like Rust and Crystal, honing my writing abilities, and pursuing scrum master training - my company required it. What I do hope though is that human expertise in problem-solving and creative thinking will continue to be valuable in this field, despite the push to automate everything.</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>

<p>I honestly love my second hand Canon EOS 100D because I’m finally able to experiment with photography in a proper way, learning what different settings are doing and boosting my creativity. Digital photography for sure helped photographers and not replaced them and this is what tech innovation means to me.<br />
Here are two pictures that I took with it:
<br />
<br />
<img src="/images/burned-car-carcass.jpg" alt="a burned car carcass found in a park in sheffield" class="post-image" />
<br />
<br />
<img src="/images/grass-blades.jpg" alt="grass blades in the wind" class="post-image" />
<br /></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<p>The uncanny music of Slack Huddles on <a href="https://www.wired.com/story/slack-huddle-hold-music-secret-history/">Wired</a><br />
Texas is replacing human graders with AI <a href="https://www.theverge.com/2024/4/10/24126206/texas-staar-exam-graders-ai-automated-scoring-engine">The Verge</a>
Own Your Web <a href="https://buttondown.email/ownyourweb/archive/issue-13/">Issue 13</a></p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[Watching the rise of different tools that “can function as a fully autonomous software engineer”(Devin Introduction) I’ve started thinking about the future of my job as a software engineer and obviously one big question came into my mind:]]></summary></entry><entry><title type="html">Finding balance, The Web and HTML’s Power</title><link href="https://alainmauri.eu/2024/02/18/finding-balance-html-power/" rel="alternate" type="text/html" title="Finding balance, The Web and HTML’s Power" /><published>2024-02-18T00:00:00+00:00</published><updated>2024-02-18T00:00:00+00:00</updated><id>https://alainmauri.eu/2024/02/18/finding-balance-html-power</id><content type="html" xml:base="https://alainmauri.eu/2024/02/18/finding-balance-html-power/"><![CDATA[<p>Despite my best efforts to consistently publish blog posts, I’ve found it challenging to maintain the required level of commitment. Opting for the latter, I’ve decided to write a post whenever inspiration strikes, sharing thoughts that hold personal meaning rather than aiming solely for a wide audience. Writing is an enjoyable endeavor for me, serving as a way to capture discoveries, experiences, and thoughts in a cohesive order.</p>

<p>In my current job, I predominantly work on backend applications with occasional forays into frontend development. Despite the shift, I still find joy in working on simple HTML and CSS projects. Recently, I stumbled upon a fascinating book by <a href="https://htmlandcssbook.com">John Duckett</a> in a charity shop, published in 2011. Despite its age, the book encapsulates fundamental web development knowledge in an aesthetically pleasing format.</p>

<p>Beyond its technical insights, the book has become a valuable visual aid, helping me understand how different elements fit into a webpage. It’s not just about the technicalities; the book has inspired me to appreciate the artistry in web development. Although I often turn to search engines for quick answers, there’s a unique satisfaction in slowing down and leafing through a physical book.</p>

<p>Speaking of which, let me delve into the book’s influence on my work. The way it’s structured has not only enriched my technical understanding but also provided a visual framework for organizing elements on a page. This, coupled with the nostalgia of using a tangible resource, has added a unique layer to my learning experience.</p>

<p>HTML, a language I consider powerful, has granted countless individuals the ability to express themselves on the vast canvas of the internet. Despite the ongoing debate about whether HTML is a programming language, its significance in enabling digital expression cannot be overstated. As I continue my journey in web development, I find solace in the simplicity and potency of HTML, a language that empowers creativity on the worldwide web.</p>

<p>Here are two examples from the book:<br />
<br />
<img src="/images/how-the-web-works.png" alt="an infographic about how the web works with diagram and text" class="post-image" />
<br />
<br />
<img src="/images/pages-structure.png" alt="an image about how to structure a web page" class="post-image" />
<br />
<br /></p>

<p><br /></p>

<p>I just discovered - from an account I follow on Mastodon - that in Japan you can find magazines whose subjects are Yakuza families and it looks like the average Japanese salary man enjoys them quite a lot as a way to escape the day to day life - scroll to find the link to the article.</p>

<hr />

<h4 id="things-i-like---in-random-order">Things I like - in random order</h4>

<p>I love the snow and my backyard looks beautiful with it.<br />
This is a picture I took during the last snowstorm<br />
<br />
<img src="/images/backyard-snow.jpeg" alt="My backyard covered by snow" class="post-image" />
<br /></p>

<hr />

<h4 id="todays-links">Today’s Links</h4>

<p>The strange world of Yakuza fan <a href="https://publishingperspectives.com/2009/10/the-strange-world-of-yakuza-fan-magazines/">magazines</a><br />
<a href="https://www.rorvswild.com/blog/2023/everyday-performance-rules-for-ruby-on-rails-developers">Every day performance</a> for Ruby Developers<br />
mruby 3.3.0 has been released and supports the <a href="https://mruby.org/releases/2024/02/14/mruby-3.3.0-released.html">Nintendo Wii</a> <br />
The Apple Macintosh turned 40 this past January, here is <a href="https://techcrunch.com/2024/01/24/apple-mac-man/">Mr. Macintosh</a> <br />
The writer goes to an annual tech conference and he left with mixed feelings <a href="https://www.rollingstone.com/culture/culture-features/ai-companies-advocates-cult-1234954528/">The Cult of AI</a><br />
The Sega <a href="https://www.smspower.org/SegaAI/Index">AI Computer</a> was released in 1986. The company promised that natural language processing was available through their Prolog interpreter.</p>]]></content><author><name>Wildeng</name></author><summary type="html"><![CDATA[Despite my best efforts to consistently publish blog posts, I’ve found it challenging to maintain the required level of commitment. Opting for the latter, I’ve decided to write a post whenever inspiration strikes, sharing thoughts that hold personal meaning rather than aiming solely for a wide audience. Writing is an enjoyable endeavor for me, serving as a way to capture discoveries, experiences, and thoughts in a cohesive order.]]></summary></entry></feed>