This service tests the validity of an RSS 2.0 feed, checking to see that it follows the rules of the RSS specification. For advice from the RSS Advisory Board on how to implement RSS and handle issues such as enclosures and HTML encoding, read the RSS Best Practices Profile. This checker is also a validator of Atom and RSS 1.0 feeds.
Use this tester regularly to ensure that your RSS feed continues to work well in the wide audience of RSS readers, podcast clients and other software that supports the format.
This is a valid Atom 1.0 feed.
This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<author>
<name>David Sousa-Rodrigues</name>
</author>
<id>https://www.sixhat.net/feed.xml</id>
<title>sixhat.net RSS Feed</title>
<updated>2025-03-30T11:21:39+01:00</updated>
<entry>
<content><h3 id="2023">2023</h3>
<h4 id="december-2023">December 2023</h4>
<ul>
<li><a href="./2023/added-a-rss-feed.md">Added a RSS feed</a></li>
<li><a href="./2023/code-snippet-for-highlightjs-in-markdown-pages.md">Code Snippet for Highlight.js in Markdown Pages</a></li>
<li><a href="css-is-this-the-only-css-youll-ever-need.md">Is this the only CSS you’ll ever need?</a> - simple css for any web.</li>
<li><a href="things-I-am-relearning-in-python-while-playing-aoc.md">Things I’m (re)learning as I play Advent of Code 2023</a> - programming languages, coding challenge, python</li>
<li><a href="./2023/spellcheck-shell-sripts.md">Spell Checker for Shell Scripts</a> - bash productivity, terminal world, utilities</li>
<li><a href="a-simple-PS1-bash-prompt.md">A simple PS1 Bash Prompt</a> - bash productivity</li>
</ul>
<h4 id="november-2023">November 2023</h4>
<ul>
<li><a href="epsteins-levels-for-agent-based-models-performance.md">Axtel and Epstein’s levels for agent based performance</a> - agent-based models</li>
<li><a href="arduino-transistor-test-code.md">Arduino TIP120 demo code for classes</a> - arduino</li>
<li><a href="blogs-without-server-side-rendering.md">Blogs without server side rendering</a> - internet</li>
<li><a href="./2023/data-science-handbook.md">Data Science Handbook</a> - research</li>
<li><a href="grimm-odd.md">Grimm’s ODD standard protocol for describing individual-based and agent based models</a> - agent-based models</li>
<li><a href="models-of-creativity-.md">Models of Creativity</a> - November 10, 2023</li>
<li><a href="ants-are-amazing---what-about-organizations----reading.md">Ants are amazing - what about organizations - reading</a> - November 09, 2023</li>
<li><a href="creating-html-indices-with-tree.md">Creating.md indices with tree</a> - <code>computers</code></li>
</ul>
<h4 id="october-2023">October 2023</h4>
<ul>
<li><a href="m3-m3-pro-and-m3-max.md">M3, M3 Pro and M3 Max</a> - computers</li>
<li><a href="i-have-to-many-rss-feeds-in-my-reader.md">I have to many RSS feeds in my reader</a> - internet</li>
<li><a href="finder-explorer-nautilus-rox--spacedrive.md">Finder, Explorer, Nautilus, Rox, … Spacedrive</a> - computers</li>
</ul>
<h4 id="september-2023">September 2023</h4>
<ul>
<li><a href="marginalia-in-the-modern-digital-world-is-it-possible.md">Marginalia in the modern digital world. Is it possible?</a> — September 28, 2023</li>
<li><a href="computer-related-stuff---how-these-machines-work.md">Computer related stuff—How these machines work</a> — September 28, 2023</li>
<li><a href="disable-macbook-air-autoboot-when-disconnecting-to-power-or-open-lid.md">Disable MacBook Air Autoboot when dis/connecting to power or open lid</a> — September 19, 2023</li>
<li><a href="red-led-at-13-blue-led-at-12---police-lights.md">RED LED at 13, BLUE LED at 12 - Police Lights</a> — September 02, 2023</li>
</ul>
<h4 id="july-2023">July 2023</h4>
<ul>
<li><a href="the-wei-web-environment-integrity-api-proposal-from-google-is-dangerous-and-should-not-go-forward-.md">The WEI (Web Environment Integrity) API proposal from Google is dangerous and should not go forward.</a> — July 26, 2023</li>
<li><a href="my-approach-to-managing-scratch-projects-with-bash-scripts.md">My approach to managing scratch projects with bash scripts</a> — July 25, 2023</li>
<li><a href="avoid-long-urls-extending-past-the-margins-of-text-in-latex-with-xurl.md">Avoid long urls extending past the margins of text in LaTeX with xurl</a> — July 21, 2023</li>
<li><a href="how-we-learn-and-how-to-organise-a-reading-inbox.md">How we learn and how to organise a Reading Inbox</a> — July 04, 2023</li>
<li><a href="im-back-to-social-networks-and-it-is-mastodon.md">I’m back to social networks, and it is Mastodon.</a> — July 04, 2023</li>
</ul>
<h4 id="june-2023">June 2023</h4>
<ul>
<li><a href="organising-stuff-is-hard-until-it-isnt.md">Organising stuff is hard until it isn’t</a> — June 13, 2023</li>
</ul>
<h4 id="may-2023">May 2023</h4>
<ul>
<li><a href="writing-slides-structure-from-the-topics-slide-in-marp.md">Writing slides structure from the Topics slide in marp</a> — May 21, 2023</li>
<li><a href="a-simple-css-trick-por-dithered-images.md">A simple CSS trick 4 dithered images</a> — May 18, 2023</li>
<li><a href="readings-on-strange-programming-art-and-electronics.md">Readings on strange programming, art and electronics</a> — May 17, 2023</li>
</ul>
<h4 id="april-2023">April 2023</h4>
<ul>
<li><a href="gpt4-experiments---sparks-of-agi.md">GPT4 experiments - Sparks of AGI</a> — April 18, 2023</li>
<li><a href="interesting-openstreet-use-for-studing-hospital-accessibility.md">Interesting Openstreet use for studing Hospital Accessibility</a> — April 05, 2023</li>
<li><a href="a-simple-js-range-one-liner.md">A simple JS range one-liner</a> — April 03, 2023</li>
<li><a href="o-fim-das-trotinetes-de-aluguer.md">O fim das trotinetes de aluguer?</a> — April 03, 2023</li>
</ul>
<h4 id="march-2023">March 2023</h4>
<ul>
<li><a href="still-reading-about-ai-and-gpt-and-whats-next-in-this-space.md">Still reading about AI and GPT and what’s next in this space</a> — March 23, 2023</li>
<li><a href="the-ai-races-for-march-22.md">The AI Races for March 22:</a> — March 22, 2023</li>
<li><a href="two-main-developments-in-the-ai-generators-world.md">Two main developments in the AI generators world</a> — March 21, 2023</li>
<li><a href="and-it-goes-dark.md">And it goes dark</a> — March 20, 2023</li>
<li><a href="fuzzy-logic-shell-alias.md">fuzzy logic shell alias</a> — March 20, 2023</li>
<li><a href="svelte-link-dump.md">Svelte link dump.</a> — March 15, 2023</li>
<li><a href="senhor-clemente-que-oportunidade-perdida-para-o-arrependimento.md">Senhor Clemente, que oportunidade perdida para o arrependimento.</a> — March 06, 2023</li>
</ul>
<h4 id="february-2023">February 2023</h4>
<ul>
<li><a href="toggling-light-bulb-problem.md">Toggling Light Bulb Problem</a> — February 28, 2023</li>
<li><a href="no-arrendamento-quem-se-lixa-e-quem-cumpre-e-ja-aluga.md">No arrendamento, quem se lixa é quem cumpre e já aluga</a> — February 27, 2023</li>
<li><a href="in-the-slow-movement-you-find-great-pearls-of-wisdom.md">In the slow movement you find great pearls of wisdom.</a> — February 16, 2023</li>
</ul>
<h4 id="january-2023">January 2023</h4>
<ul>
<li><a href="beja-e-alverca.md">Beja e Alverca</a> — January 28, 2023</li>
<li><a href="websites-que-funcionam-apenas-em-modo-texto.md">Websites que funcionam apenas em modo texto</a> — January 27, 2023</li>
<li><a href="small-is-beautiful.md">Small is beautiful</a> — January 27, 2023</li>
<li><a href="tools-for-modern-research.md">Tools for Modern Research</a> — January 24, 2023</li>
<li><a href="and-we-are-in-2023.md">And we are in 2023</a> — January 24, 2023</li>
</ul>
</content>
<id>https://www.sixhat.net//2023/2023_index.html</id>
<link href="https://www.sixhat.net//2023/2023_index.html"/>
<title>2023</title>
<updated>2024-01-14T17:25:28+00:00</updated>
<dc:date>2024-01-14T17:25:28+00:00</dc:date>
</entry>
<entry>
<content><h2 id="a-simple-css-trick-4-dithered-images">A simple CSS trick 4 dithered images</h2>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">p</span><span class="nc">.img</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span> <span class="n">linear-gradient</span><span class="p">(</span><span class="m">0deg</span><span class="p">,</span> <span class="m">#c91136</span> <span class="m">0%</span><span class="p">,</span> <span class="m">#4343b5</span> <span class="m">35%</span><span class="p">,</span> <span class="m">#eebf18</span> <span class="m">100%</span><span class="p">);</span>
<span class="nl">display</span><span class="p">:</span> <span class="n">inline-flex</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">p</span><span class="nc">.img</span> <span class="o">&gt;</span> <span class="nt">img</span> <span class="p">{</span>
<span class="py">mix-blend-mode</span><span class="p">:</span> <span class="n">hard-light</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<html><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script></html>
</content>
<id>https://www.sixhat.net//2023/a-simple-css-trick-por-dithered-images.html</id>
<link href="https://www.sixhat.net//2023/a-simple-css-trick-por-dithered-images.html"/>
<title>A simple CSS trick 4 dithered images</title>
<updated>2023-12-18T18:24:16+00:00</updated>
<dc:date>2023-12-18T18:24:16+00:00</dc:date>
</entry>
<entry>
<content><h2 id="a-simple-js-range-one-liner">A simple JS range one-liner</h2>
<pre><code>const range=n=&gt;[...Array(n).keys()]
</code></pre>
</content>
<id>https://www.sixhat.net//2023/a-simple-js-range-one-liner.html</id>
<link href="https://www.sixhat.net//2023/a-simple-js-range-one-liner.html"/>
<title>A simple JS range one-liner</title>
<updated>2023-12-18T17:32:57+00:00</updated>
<dc:date>2023-12-18T17:32:57+00:00</dc:date>
</entry>
<entry>
<content><h2 id="a-simple-ps1-bash-prompt-and-one-for-zsh-too">a simple ps1 bash prompt (and one for zsh too)</h2>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">PS1</span><span class="o">=</span><span class="s1">'\n($?, $(cat /proc/loadavg | colrm 5 | xargs), $(du -hs | colrm 8 | xargs), $(ls -1 | wc -l)) \u@\H:\w/\n\$ '</span>
</code></pre></div></div>
<p>this outputs something like</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">(</span>0, 0.85, 6.8g, 13<span class="o">)</span> david@sixhat.net:~/
<span class="err">$</span>
</code></pre></div></div>
<p>where the individual values are (in order):</p>
<ul>
<li>the <strong>last command</strong> exit code <code>$?</code></li>
<li>the <strong>load</strong> on the cpu <code>$(cat /proc/loadavg | colrm 5 | xargs)</code></li>
<li>the <strong>size</strong> of current directory <code>$(du -hs | colrm 8 | xargs)</code></li>
<li>the <strong>number</strong> of files/dirs in current directory <code>$(ls -1 | wc -l)</code></li>
<li>the <strong>user@host:folder</strong> <code>\u@\h:\w/</code></li>
<li>
<table>
<tbody>
<tr>
<td>the <strong>prompt type</strong> (normal $</td>
<td>root #) <code>\$</code></td>
</tr>
</tbody>
</table>
</li>
</ul>
<p>notice that it has no colours. although colours are a nice feature to have, they don’t work in every terminal, but within your <code>.profile</code> you can do conditional prompts based on colour support by the terminal.</p>
<h4 id="what-about-zsh-prompts">what about zsh prompts?</h4>
<p>well, zsh prompts are a little bit different to configure, but a similar one that i use in my macs is this:</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">PS1</span><span class="o">=</span><span class="s1">'
%T %(1d.%B[First Day of Month]%b .)%U(%?,%j)%u %n@%m %F{red}%0~%f
%F{green}%B%(!.%#.;)%b%f '</span>
</code></pre></div></div>
<p>The expansions are different from bash, so you are better off reading the <a href="https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html#Prompt-Expansion">manual about expansions</a>, but the above one can give you a nice start.</p>
</content>
<id>https://www.sixhat.net//2023/a-simple-ps1-bash-prompt.html</id>
<link href="https://www.sixhat.net//2023/a-simple-ps1-bash-prompt.html"/>
<title>a simple ps1 bash prompt (and one for zsh too)</title>
<updated>2024-01-20T10:59:32+00:00</updated>
<dc:date>2024-01-20T10:59:32+00:00</dc:date>
</entry>
<entry>
<content><h2 id="added-an-rss-feed-to-sixhatnet">Added an RSS feed to sixhat.net</h2>
<p>I’m a big fan of serving content via RSS feed.<br />
But <a href="https://rust-lang.github.io/mdBook/">MdBook</a> doesn’t provide RSS. <br />
It is mainly targeting the production of books.</p>
<p>I decided to script my blog’s RSS and with a bit of <a href="https://www.python.org/">python</a> plus a bit of <a href="https://beautiful-soup-4.readthedocs.io/en/latest/">BeautifulSoup</a> I now have a <a href="rss.xml">RSS feed</a>.<br />
It is basically a RSS 2.0 spec and <a href="https://www.rssboard.org/rss-validator/check.cgi?url=https%3A%2F%2Fwww.sixhat.net%2Frss.xml">passes validation</a>.</p>
<p>Some things might brake as the process is still not fully tested and robust.<br />
It doesn’t support enclosures for now (no podcasts or rich media in the pipe).<br />
It doesn’t have advanced features, has basic html in the content (escaped, not that CTDATA stuff).<br />
It is simple, as <a href="https://en.wikipedia.org/wiki/RSS">RSS</a> should be (Real Simple Syndication).</p>
<p>Ah, if you need an <a href="https://github.com/ckampfe/russ">RSS reader</a>, try RUSS.<br />
I’m loving it.</p>
</content>
<id>https://www.sixhat.net//2023/added-a-rss-feed.html</id>
<link href="https://www.sixhat.net//2023/added-a-rss-feed.html"/>
<title>Added an RSS feed to sixhat.net</title>
<updated>2023-12-19T19:13:41+00:00</updated>
<dc:date>2023-12-19T19:13:41+00:00</dc:date>
</entry>
<entry>
<content><h2 id="and-it-goes-dark">And it goes dark</h2>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nd">:root</span><span class="p">{</span><span class="py">color-scheme</span><span class="p">:</span><span class="n">only</span> <span class="n">dark</span><span class="p">}</span>
</code></pre></div></div>
</content>
<id>https://www.sixhat.net//2023/and-it-goes-dark.html</id>
<link href="https://www.sixhat.net//2023/and-it-goes-dark.html"/>
<title>And it goes dark</title>
<updated>2023-12-18T17:33:04+00:00</updated>
<dc:date>2023-12-18T17:33:04+00:00</dc:date>
</entry>
<entry>
<content><h2 id="and-we-are-in-2023">And we are in 2023</h2>
<p>And as usual I change things, this time went with something even<br />
simpler.</p>
<p>The old blog still exists and you can read it <a href="/index_2022.html">here</a>.</p>
<p>2023 has to be the year of simplicity and minimalism. Sorry. No time for<br />
complex stuff. Life is changing quickly and this blog will be more of a<br />
refence point of things that interest me, or that I’ll need in the</p>
</content>
<id>https://www.sixhat.net//2023/and-we-are-in-2023.html</id>
<link href="https://www.sixhat.net//2023/and-we-are-in-2023.html"/>
<title>And we are in 2023</title>
<updated>2023-12-18T17:33:09+00:00</updated>
<dc:date>2023-12-18T17:33:09+00:00</dc:date>
</entry>
<entry>
<content><h2 id="ants-are-amazing---what-about-organizations----reading">Ants are amazing - what about organizations - reading</h2>
<ul>
<li><a href="https://www.kooslooijesteijn.net/blog/organizations-are-ant-colonies">https://www.kooslooijesteijn.net/blog/organizations-are-ant-colonies</a> - Organizations are ant colonies.</li>
</ul>
</content>
<id>https://www.sixhat.net//2023/ants-are-amazing---what-about-organizations----reading.html</id>
<link href="https://www.sixhat.net//2023/ants-are-amazing---what-about-organizations----reading.html"/>
<title>Ants are amazing - what about organizations - reading</title>
<updated>2023-12-18T17:34:23+00:00</updated>
<dc:date>2023-12-18T17:34:23+00:00</dc:date>
</entry>
<entry>
<content><h2 id="arduino-npn-transistor-test-code-and-demo">Arduino NPN Transistor test code and demo</h2>
<p>Online demo : <a href="https://www.tinkercad.com/things/fg3gBCshoEu-tip120-demo">https://www.tinkercad.com/things/fg3gBCshoEu-tip120-demo</a></p>
<p><img src="https://csg.tinkercad.com/things/fg3gBCshoEu/t725.png?rev=1699959868545000000&amp;s=&amp;v=1&amp;type=circuits" alt="Arduino demo NPN Transistor" /></p>
<ul>
<li>Arduino</li>
<li>LED strip or 12V Lamp</li>
<li>Power supply 12V</li>
<li>NPN transistor eg: TIP120 ref: <a href="https://www.onsemi.com/pdf/datasheet/tip120-d.pdf">https://www.onsemi.com/pdf/datasheet/tip120-d.pdf</a></li>
<li>Resistor (10kOhm)</li>
</ul>
<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">setup</span><span class="p">()</span> <span class="p">{</span>
<span class="n">pinMode</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">OUTPUT</span><span class="p">);</span>
<span class="p">}</span>
<span class="kt">void</span> <span class="nf">loop</span><span class="p">()</span> <span class="p">{</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">256</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="n">analogWrite</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">i</span><span class="p">);</span>
<span class="n">delay</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">256</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="n">analogWrite</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">255</span> <span class="o">-</span> <span class="n">i</span><span class="p">);</span>
<span class="n">delay</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">delay</span><span class="p">(</span><span class="mi">500</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="n">digitalWrite</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">HIGH</span><span class="p">);</span>
<span class="n">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">);</span>
<span class="n">digitalWrite</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">LOW</span><span class="p">);</span>
<span class="n">delay</span><span class="p">(</span><span class="mi">200</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">delay</span><span class="p">(</span><span class="mi">500</span><span class="p">);</span><span class="n">digitalWrite</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">HIGH</span><span class="p">);</span>
<span class="n">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<html><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script></html>
</content>
<id>https://www.sixhat.net//2023/arduino-transistor-test-code.html</id>
<link href="https://www.sixhat.net//2023/arduino-transistor-test-code.html"/>
<title>Arduino NPN Transistor test code and demo</title>
<updated>2023-12-19T11:16:19+00:00</updated>
<dc:date>2023-12-19T11:16:19+00:00</dc:date>
</entry>
<entry>
<content><h2 id="avoid-long-urls-extending-past-the-margins-of-text-in-latex-with-xurl">Avoid long urls extending past the margins of text in LaTeX with xurl</h2>
<p>Use package <em>xurl</em> instead of <em>url</em> in LaTeX documents to avoid having long urls going into the margin of the documents. This will break the long url into multiple lines without creating any issues.</p>
<p>Just load <em>xurl</em> with <em>usepackage</em> instead of <em>url</em> and every time <em>url</em> is called <em>xurl</em> will take over.</p>
<p>Don’t know why this one escaped my knowledge for over 15 years, but well, learn something every day.</p>
<p>Tags: latex, typesetting</p>
</content>
<id>https://www.sixhat.net//2023/avoid-long-urls-extending-past-the-margins-of-text-in-latex-with-xurl.html</id>
<link href="https://www.sixhat.net//2023/avoid-long-urls-extending-past-the-margins-of-text-in-latex-with-xurl.html"/>
<title>Avoid long urls extending past the margins of text in LaTeX with xurl</title>
<updated>2023-12-18T17:34:31+00:00</updated>
<dc:date>2023-12-18T17:34:31+00:00</dc:date>
</entry>
<entry>
<content><h2 id="beja-e-alverca">Beja e Alverca</h2>
<p>Se cada um destes locais demorar 6 meses a avaliar, lá vai a comissão de avaliação ter que trabalhar mais um ano. Que chatice dirá a comissão. Já ninguém acredita que haja aeroporto novo de Lisboa, agora se calhar já niguém vai acretidar que a comissão consiga acabar o trabalho.</p>
</content>
<id>https://www.sixhat.net//2023/beja-e-alverca.html</id>
<link href="https://www.sixhat.net//2023/beja-e-alverca.html"/>
<title>Beja e Alverca</title>
<updated>2023-12-18T17:34:34+00:00</updated>
<dc:date>2023-12-18T17:34:34+00:00</dc:date>
</entry>
<entry>
<content><h2 id="blogs-without-server-side-rendering">Blogs without server side rendering</h2>
<p>I love <strong>static websites</strong>, but what about if the <em>static</em> was just markdown files and I let the client render everything via a Javascript library?</p>
<ul>
<li><a href="https://dynalon.github.io/mdwiki/#!index.md">MDWiki</a> - This is used to run this website. Makes it very simple to use. One index.html file and you’re done.</li>
<li><a href="https://chrisdiana.github.io/cms.js/">CMS.js</a> - Interesting, with more configuration/conventions to follow. An alternative in any case.</li>
</ul>
<p>(This website uses <a href="https://rust-lang.github.io/mdBook/">MDBook</a> - This is highly recommended, even for bigger things other than a simple blog like this, although it is pre-rendered)</p>
</content>
<id>https://www.sixhat.net//2023/blogs-without-server-side-rendering.html</id>
<link href="https://www.sixhat.net//2023/blogs-without-server-side-rendering.html"/>
<title>Blogs without server side rendering</title>
<updated>2023-12-18T17:34:37+00:00</updated>
<dc:date>2023-12-18T17:34:37+00:00</dc:date>
</entry>
<entry>
<content><h2 id="code-snippet-for-highlightjs-in-markdown-pages">Code Snippet for Highlight.js in Markdown Pages</h2>
<p>This is just the snippet of code I use on pages that need syntax highlighting. <br />
I don’t add them directly to the template as other pages don’t need to load them.</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;html&gt;&lt;link</span> <span class="na">rel=</span><span class="s">"stylesheet"</span> <span class="na">href=</span><span class="s">"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css"</span><span class="nt">&gt;</span>
<span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"</span><span class="nt">&gt;</span> <span class="nt">&lt;/script&gt;</span>
<span class="nt">&lt;script&gt;</span><span class="nx">hljs</span><span class="p">.</span><span class="nf">highlightAll</span><span class="p">();</span><span class="nt">&lt;/script&gt;&lt;/html&gt;</span>
</code></pre></div></div>
<p>Just copy and paste this at the end of markdown file</p>
<html><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script></html>
</content>
<id>https://www.sixhat.net//2023/code-snippet-for-highlightjs-in-markdown-pages.html</id>
<link href="https://www.sixhat.net//2023/code-snippet-for-highlightjs-in-markdown-pages.html"/>
<title>Code Snippet for Highlight.js in Markdown Pages</title>
<updated>2023-12-18T18:30:09+00:00</updated>
<dc:date>2023-12-18T18:30:09+00:00</dc:date>
</entry>
<entry>
<content><h2 id="computer-related-stuffhow-these-machines-work">Computer related stuff—How these machines work</h2>
<p>I might convert this post into a list of links that are good references about computers if I remember to add more links.</p>
<ul>
<li><a href="https://cpu.land/">https://cpu.land/</a></li>
</ul>
<p>Tags: computer</p>
</content>
<id>https://www.sixhat.net//2023/computer-related-stuff---how-these-machines-work.html</id>
<link href="https://www.sixhat.net//2023/computer-related-stuff---how-these-machines-work.html"/>
<title>Computer related stuff---How these machines work</title>
<updated>2023-12-18T17:34:45+00:00</updated>
<dc:date>2023-12-18T17:34:45+00:00</dc:date>
</entry>
<entry>
<content><h2 id="creating-html-indices-with-tree">Creating html indices with tree</h2>
<p>Many times I need to create an index of certain files in my computer, namely when they are spreaded over many subfolders. Using the utility <strong>tree</strong> generates indices quickly and in a format that makes them very useful.</p>
<p>For example, to find all PDF files:</p>
<pre><code>tree -P '*.pdf' --prune -H . &gt; index.html
</code></pre>
</content>
<id>https://www.sixhat.net//2023/creating-html-indices-with-tree.html</id>
<link href="https://www.sixhat.net//2023/creating-html-indices-with-tree.html"/>
<title>Creating html indices with tree</title>
<updated>2023-12-18T17:34:42+00:00</updated>
<dc:date>2023-12-18T17:34:42+00:00</dc:date>
</entry>
<entry>
<content><h2 id="is-this-this-the-only-css-youll-ever-need">Is this this the only CSS you’ll ever need?</h2>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">body</span> <span class="p">{</span>
<span class="nl">margin</span><span class="p">:</span> <span class="m">40px</span> <span class="nb">auto</span><span class="p">;</span>
<span class="nl">padding</span><span class="p">:</span> <span class="m">0</span> <span class="m">10px</span><span class="p">;</span>
<span class="nl">max-width</span><span class="p">:</span> <span class="m">66ch</span><span class="p">;</span>
<span class="nl">line-height</span><span class="p">:</span> <span class="m">1.6</span><span class="p">;</span>
<span class="nl">font-size</span><span class="p">:</span> <span class="m">18px</span><span class="p">;</span>
<span class="nl">color</span><span class="p">:</span> <span class="m">#ccc</span><span class="p">;</span>
<span class="nl">background</span><span class="p">:</span> <span class="m">#234</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">h1</span><span class="o">,</span>
<span class="nt">h2</span><span class="o">,</span>
<span class="nt">h3</span> <span class="p">{</span>
<span class="nl">line-height</span><span class="p">:</span> <span class="m">1.2</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">a</span> <span class="p">{</span>
<span class="nl">color</span><span class="p">:</span> <span class="m">#abf</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<html><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"> </script>
<script>hljs.highlightAll();</script></html>
</content>
<id>https://www.sixhat.net//2023/css-is-this-the-only-css-youll-ever-need.html</id>
<link href="https://www.sixhat.net//2023/css-is-this-the-only-css-youll-ever-need.html"/>
<title>Is this this the only CSS you'll ever need?</title>
<updated>2023-12-18T18:43:59+00:00</updated>
<dc:date>2023-12-18T18:43:59+00:00</dc:date>
</entry>
<entry>
<content><h2 id="data-science-handbook">Data Science Handbook</h2>
<p>Standford has an online <a href="https://stanforddatascience.github.io/best-practices/">Data Science Handbook</a> aimed at <strong>open, rigorous and reproducible research: A practitioner’s handbook</strong>.</p>
<p>This kind of asset is so valuable in a time when we have students wanting to do open, transparent and reproducible research. Good for any type of research but focused on Data Science.</p>
</content>
<id>https://www.sixhat.net//2023/data-science-handbook.html</id>
<link href="https://www.sixhat.net//2023/data-science-handbook.html"/>
<title>Data Science Handbook</title>
<updated>2023-12-18T17:34:55+00:00</updated>
<dc:date>2023-12-18T17:34:55+00:00</dc:date>
</entry>
<entry>
<content><h2 id="disable-macbook-air-autoboot-when-disconnecting-to-power-or-open-lid">Disable MacBook Air Autoboot when dis/connecting to power or open lid</h2>
<pre><code>// disable
sudo nvram AutoBoot=%00
// re-enable
sudo nvram AutoBoot=%03
</code></pre>
<p>Note: And it doesn’t work in newer M1, M2 apple computers.</p>
<p>Tags: apple</p>
</content>
<id>https://www.sixhat.net//2023/disable-macbook-air-autoboot-when-disconnecting-to-power-or-open-lid.html</id>
<link href="https://www.sixhat.net//2023/disable-macbook-air-autoboot-when-disconnecting-to-power-or-open-lid.html"/>
<title>Disable MacBook Air Autoboot when dis/connecting to power or open lid</title>
<updated>2023-12-18T17:34:58+00:00</updated>
<dc:date>2023-12-18T17:34:58+00:00</dc:date>
</entry>
<entry>
<content><h2 id="robert-axtell-and-joshua-epstein-levels-of-agent-based-models-performance">Robert Axtell and Joshua Epstein levels of agent based models performance</h2>
<p>Axtell and Epstein[1] stated that an agent-based model performance can be characterised a a level, with any further level encompassing the previous:</p>
<p><strong>Level 0</strong>: a <em>caricature</em> of reality, as established through the use of simple graphical devices (allowing the visualisation of agent motion)<br />
<strong>Level 1</strong>: The model is in <em>qualitative agreement with empirical macro-structures</em>, as established by plotting distributions of population properties<br />
<strong>Level 2</strong>: The model is in <em>quantitative agreement with empirical macro-structures</em> as established by plotting on-board statistical estimation routines.<br />
<strong>Level 3</strong>: The model is in quantitative agreement with empirical micro-structures, as determined by cross-sectional and longitudinal analysis of the agent population.</p>
<p>1 - Axtell, R., &amp; Epstein, J. (1994). Agent-based modeling: Understanding our creations. <em>The Bulletin of the Santa Fe Institute</em>, <em>9</em>(4), 28-32.</p>
<p>Related to <a href="grimm-odd.md">grimm’s ODD</a></p>
</content>
<id>https://www.sixhat.net//2023/epsteins-levels-for-agent-based-models-performance.html</id>
<link href="https://www.sixhat.net//2023/epsteins-levels-for-agent-based-models-performance.html"/>
<title>Robert Axtell and Joshua Epstein levels of agent based models performance</title>
<updated>2023-12-18T17:35:03+00:00</updated>
<dc:date>2023-12-18T17:35:03+00:00</dc:date>
</entry>
<entry>
<content><h2 id="finder-explorer-nautilus-rox--spacedrive">Finder, Explorer, Nautilus, Rox, … Spacedrive</h2>
<p>Just came across Spacedrive — a new file explorer that is cross platform and aims to bring the same experience across OSes. It reminds a lot of apple Finder, and at this moment it doesn’t bring anything that would convince me to change to SpaceDrive. For Windows users and eventually Linux users it might provide a better user experience, but until it can offer something that blows Finder away… it has a steep mountain to climb. In any case it is a nice project to follow as the current release is still alpha — <a href="https://www.spacedrive.com/">Spacedrive.com</a> <a href="https://github.com/spacedriveapp/spacedrive">SpaceDrive Github</a></p>
</content>
<id>https://www.sixhat.net//2023/finder-explorer-nautilus-rox--spacedrive.html</id>
<link href="https://www.sixhat.net//2023/finder-explorer-nautilus-rox--spacedrive.html"/>
<title>Finder, Explorer, Nautilus, Rox, ... Spacedrive</title>
<updated>2023-12-18T17:35:07+00:00</updated>
<dc:date>2023-12-18T17:35:07+00:00</dc:date>
</entry>
<entry>
<content><h2 id="fuzzy-logic-shell-alias">fuzzy logic shell alias</h2>
<p>I’ve used <a href="https://github.com/junegunn/fzf">fzf</a> for a long time now. It works great and I’d recommend every power user to use fzf (or any other fuzzy logic search tool)</p>
<p>One of the things I like about using it is to go to the folder of some file I’m working on. For example I use this alias <code>cdf</code> to cd into the file directory.</p>
<p>Just put the following alias in your shell</p>
<pre><code>alias cdf='cd `dirname $(fzf)`'
</code></pre>
<p>Then you can cdf, search, press enter and cd into the file’s directory. (Well, there’s also ALT-C, but who cares)</p>
<p>You migth want to check <a href="https://andrew-quinn.me/fzf/">this blog post</a> about fzf.</p>
</content>
<id>https://www.sixhat.net//2023/fuzzy-logic-shell-alias.html</id>
<link href="https://www.sixhat.net//2023/fuzzy-logic-shell-alias.html"/>
<title>fuzzy logic shell alias</title>
<updated>2023-12-18T17:35:12+00:00</updated>
<dc:date>2023-12-18T17:35:12+00:00</dc:date>
</entry>
<entry>
<content><h2 id="gpt4-experiments---sparks-of-agi">GPT4 experiments - Sparks of AGI</h2>
<p><a href="https://arxiv.org/abs/2303.12712">Sparks of Artificial General Intelligence: Early experiments with GPT-4</a> the paper and this video on <a href="https://www.youtube.com/watch?v=qbIk7-JPB2c">Youtube by Bubeck</a> at the MIT on March 22, 2023 are a must read/watch.</p>
</content>
<id>https://www.sixhat.net//2023/gpt4-experiments---sparks-of-agi.html</id>
<link href="https://www.sixhat.net//2023/gpt4-experiments---sparks-of-agi.html"/>
<title>GPT4 experiments - Sparks of AGI</title>
<updated>2023-12-18T17:35:15+00:00</updated>
<dc:date>2023-12-18T17:35:15+00:00</dc:date>
</entry>
<entry>
<content><h2 id="grimms-odd">Grimm’s ODD</h2>
<p>GRIMM, V., Berger, U., Bastiansen, F., Eliassen, S., Ginot, V., Giske, J., Goss-Custard, J., Grand, T., Heinz, S., Huse, G., Huth, A., Jepsen, J., Jorgensen, C., Mooij, W., Muller, B., Pe’er, G., Piou, C., Railsback, S., Robbins, A., Robbins, M., Rossmanith, E., Ruger, N., Strand, E., Souissi, S., Stillman, R., Vabo, R., Visser, U. &amp; Deangelis, D. (2006). A Standard Protocol for Describing Individual-Based and Agent-Based Models. Ecological Modelling, 198 (1–2): 115–126. <a href="https://www.sciencedirect.com/science/article/abs/pii/S0304380006002043">doi:10.1016/j.ecolmodel.2006.04.023</a></p>
<p>A standard protocol for describing individual-based and agent-based models, the authors describe the ODD protocol that has become the <em>de facto</em> standard to describe agent based models.</p>
<p>In papers these ODD descriptions either appear inline (rare), but mostly appear as a supplementary material (common), and in some cases they also follow the software distribuition.</p>
</content>
<id>https://www.sixhat.net//2023/grimm-odd.html</id>
<link href="https://www.sixhat.net//2023/grimm-odd.html"/>
<title>Grimm's ODD</title>
<updated>2023-12-18T17:35:18+00:00</updated>
<dc:date>2023-12-18T17:35:18+00:00</dc:date>
</entry>
<entry>
<content><h2 id="how-we-learn-and-how-to-organise-a-reading-inbox">How we learn and how to organise a Reading Inbox</h2>
<p>I’m always interested in opportunities to learn new things, but like many, I struggle with information overload, in the digital world <em>entertainment</em> is so prevalent that the drive to learn new things becomes subdued to the joy of rapid exploration.</p>
<p>In any case, I’ve come across a couple of references that I want to revisit in detail.</p>
<ul>
<li><a href="https://giansegato.com/essays/edutainment-is-not-learning">How to learn better in the Digital Age</a> This points in some interesting directions: the biological aspect of learning, the physical effort needed, and the association between retention and physical action is something often forgotten. The need for <em>effort</em> for learning to be successful. Nothing easy is worth much.</li>
<li><a href="https://notes.andymatuschak.org/A_reading_inbox_to_capture_possibly-useful_references">The Reading Inbox</a>This points (in the GTD style?) to the problem of the Reading Inbox — a problem I have (my Reading Inbox is over capacity). Maybe one should implement a Reading Inbox as a circular LinkedList with a fixed capacity. If it grows it starts overwriting older entries. Hm…</li>
</ul>
<p>Tags: learning, gtd, digital-life</p>
</content>
<id>https://www.sixhat.net//2023/how-we-learn-and-how-to-organise-a-reading-inbox.html</id>
<link href="https://www.sixhat.net//2023/how-we-learn-and-how-to-organise-a-reading-inbox.html"/>
<title>How we learn and how to organise a Reading Inbox</title>
<updated>2023-12-18T17:35:21+00:00</updated>
<dc:date>2023-12-18T17:35:21+00:00</dc:date>
</entry>
<entry>
<content><h2 id="i-have-to-many-rss-feeds-in-my-reader">I have to many RSS feeds in my reader</h2>
<p>I’ve been using RSS since its inception, and no, <a href="https://www.google.com/search?q=site%253Asixhat.net++RSS+is+not+dead">RSS is not dead</a>, but my opml has a lot of dead wood in it and that is annoying. I’d like to have an RSS reader that would give me statistics on my feeds, readings, prefered feeds, etc… could it be an enterprise for personalized AI?</p>
<p>By the way, I mostly use newsboat as my reader.</p>
</content>
<id>https://www.sixhat.net//2023/i-have-to-many-rss-feeds-in-my-reader.html</id>
<link href="https://www.sixhat.net//2023/i-have-to-many-rss-feeds-in-my-reader.html"/>
<title>I have to many RSS feeds in my reader</title>
<updated>2023-12-18T17:35:24+00:00</updated>
<dc:date>2023-12-18T17:35:24+00:00</dc:date>
</entry>
<entry>
<content><h2 id="im-back-to-social-networks-and-it-is-mastodon">I’m back to social networks, and it is Mastodon.</h2>
<p>As the blue bird melts down I’ve decided to get back to social networks. I joined Mastodon. If you want to get out of the toxic/dictatorial world that Twitter has become and want to go back to fundamental community sharing in a decentralised way that no one can buy and destroy, give Mastodon a try. You can find me <a href="https://datasci.social/@sixhat">@sixhat@datasci.social</a></p>
<p>The main reason for choosing Mastodon is that it is a federated not owned centrally by one entity. For me, this decentralisation is of primary importance. If you don’t find a community that you like, you can join with your server, build your small community (even if it is only your family) interested in some particular topic, and still take part in a greater public discussion.</p>
<p>To start, <a href="https://joinmastodon.org/servers">choose a server</a> on a topic that you are keen on and start following some people (you can follow people from other servers, you are not in a silo, or have reading limits) and some #hashtags.</p>
</content>
<id>https://www.sixhat.net//2023/im-back-to-social-networks-and-it-is-mastodon.html</id>
<link href="https://www.sixhat.net//2023/im-back-to-social-networks-and-it-is-mastodon.html"/>
<title>I'm back to social networks, and it is Mastodon.</title>
<updated>2023-12-18T17:35:27+00:00</updated>
<dc:date>2023-12-18T17:35:27+00:00</dc:date>
</entry>
<entry>
<content><h2 id="in-the-slow-movement-you-find-great-pearls-of-wisdom">In the slow movement you find great pearls of wisdom.</h2>
<p>I’m really impressed how much love some people put into small works that are really well crafted.<br />
Two websites that have impressed me lately are the <a href="https://solar.lowtechmagazine.com/">Low&lt;–Tech Magazine</a>, a really well thought website with long reads that are inspiring and well written. More, it is powered by solar power! The second website that really impressed me recently is <a href="https://rawtext.club/~sloum/">Sloum’s</a>, mainly because of the little software utilities he has coded and published. If you have time (and you should have time, or get time) take a look at these.</p>
</content>
<id>https://www.sixhat.net//2023/in-the-slow-movement-you-find-great-pearls-of-wisdom.html</id>
<link href="https://www.sixhat.net//2023/in-the-slow-movement-you-find-great-pearls-of-wisdom.html"/>
<title>In the slow movement you find great pearls of wisdom.</title>
<updated>2023-12-18T17:35:31+00:00</updated>
<dc:date>2023-12-18T17:35:31+00:00</dc:date>
</entry>
<entry>
<content><h2 id="interesting-openstreet-use-for-studying-hospital-accessibility">Interesting Openstreet use for studying Hospital Accessibility</h2>
<p><a href="https://wcedmisten.fyi/post/visualizing-hospital-accessibility/">William Edmisten</a> made a great page about how he went on to study Hospital Accessibility based on data from OpenStreet. The read is about 15 min, but the author goes all the details needed to understand the process. Very impressive indeed.</p>
<p>Hm, with all the Hospitals closing in Portugal, should one do something inspired on his work?</p>
</content>
<id>https://www.sixhat.net//2023/interesting-openstreet-use-for-studing-hospital-accessibility.html</id>
<link href="https://www.sixhat.net//2023/interesting-openstreet-use-for-studing-hospital-accessibility.html"/>
<title>Interesting Openstreet use for studying Hospital Accessibility</title>
<updated>2024-01-14T17:26:46+00:00</updated>
<dc:date>2024-01-14T17:26:46+00:00</dc:date>
</entry>
<entry>
<content><h2 id="m3-m3-pro-and-m3-max">M3, M3 Pro and M3 Max</h2>
<p>Isn’t this trio of performance chips similar to what intel has been doing forever with the i3, i5 and i7 chips? What is this trio paranoia?</p>
<p>Tags: apple</p>
</content>
<id>https://www.sixhat.net//2023/m3-m3-pro-and-m3-max.html</id>
<link href="https://www.sixhat.net//2023/m3-m3-pro-and-m3-max.html"/>
<title>M3, M3 Pro and M3 Max</title>
<updated>2023-12-18T17:35:38+00:00</updated>
<dc:date>2023-12-18T17:35:38+00:00</dc:date>
</entry>
<entry>
<content><h2 id="marginalia-in-the-modern-digital-world-is-it-possible">Marginalia in the modern digital world. Is it possible?</h2>
<p>Read a paper on the process of writing Marginalia in books, both in print and digital versions, and how the e-reader versions makes annotating books much more difficult and having a very different nature and perceived value by the readers. The paper is <a href="https://www.sciencedirect.com/science/article/abs/pii/S0740818817300099">“Marginalia in the digital age: Are digital reading devices meeting the needs of today’s readers?” by Melanie Ramdarshan Bold and Kiri L. Wagstaff</a>. They conducted a survey and the users self-reported there views on marginalia. There are many interesting points, namely the print vs digital, the pedagogical value of marginalia, the leisure vs educational marginalia, and one of the most fascinating, the individualistic vs social aspect of writing in the margins of books.</p>
<p class="mar">PS: Should I re-implement a marginalia system for this blog?</p>
<p>Tags: books, reading</p>
</content>
<id>https://www.sixhat.net//2023/marginalia-in-the-modern-digital-world-is-it-possible.html</id>
<link href="https://www.sixhat.net//2023/marginalia-in-the-modern-digital-world-is-it-possible.html"/>
<title>Marginalia in the modern digital world. Is it possible?</title>
<updated>2023-12-18T17:35:43+00:00</updated>
<dc:date>2023-12-18T17:35:43+00:00</dc:date>
</entry>
<entry>
<content><h2 id="models-of-creativity">Models of Creativity</h2>
<p>Are there any models on creativity? Not creativity in a utilitarian way, like innovation, but creativity, just a theory of how creativity exists.</p>
<ul>
<li>Exploring Creativity and Urban Development with Agent-Based Modelling - <a href="https://jasss.soc.surrey.ac.uk/18/2/12.html">https://jasss.soc.surrey.ac.uk/18/2/12.html</a></li>
</ul>
<p>Different factors are studied with ABM (transport, land use, residential segregation) and the authors found that there is a trade-off between economic progress and socioeconomic equity. <strong>Is Creativity elitist?</strong> #FullRead</p>
<ul>
<li>creative urban environments
<ul>
<li>mixed land-use and population density</li>
<li>affordable urban and regional mobility</li>
<li>high levels of societal tolerance.</li>
</ul>
</li>
</ul>
<p>Notes:</p>
<blockquote>
<p>“… the starting point for theory building is establishing relevant stylised facts”</p>
</blockquote>
<p>KALDOR, N. (1957). A Model of Economic Growth. The Economic Journal, 67 (268): 591–624. [doi:10.2307/2227704]</p>
<ul>
<li>“… provides the intellectual platform underlying the … approach…“§</li>
<li>§ 2.1 - “… maximize the benefits of agglomeration by reducing the inefficiencies caused by congestion.”</li>
<li>§ 2.2 - a notion of ‘creativity’ conceptualises the relationship between urban morphology and economic productivity …</li>
<li>§2.4 “doubling the employment density (jobs per unit area) is associated with 2-6 percent rise in productivity”. “high density of interactions is associated with high levels of economic productivity” (potential connection with imperfect information and in-person interactions)</li>
<li>§2.6 Innovation &lt;- in-person interactions. Tension between Centrifugal (causing sprawl) and centripetal (-&gt; density).</li>
<li>§2.8 “observe global phenomena through local-level interactions”</li>
<li>§3.2 “Axtell and Epstein (1994) classify ABMs from “level 0” types that broadly caricature real-world agent behavior to “level 3” where they are in quantitative agreement with both the macro- and “micro-structures” of the target system.”
<ul>
<li>AXTELL, R. &amp; Epstein, J., (1994). Agent-based Modelling: Understanding Our Creations. <em>The Bulletin of the Santa Fe Institute</em>, (Winter): 28–32.</li>
</ul>
</li>
<li>the model <a href="https://www.openabm.org/model/4396/version/1/view">https://www.openabm.org/model/4396/version/1/view</a> is available for download and also includes de <a href="grimm-odd.md">ODD</a> description</li>
<li>§4.1 emergence of creative clusters</li>
</ul>
<p>Like so many other properties of life, measuring creativity needs indicies:</p>
<ul>
<li>Creativity and Prosperity: The Global Creativity Index https://tspace.library.utoronto.ca/handle/1807/80125 by Richard Florida et al; In this one the index (CGI - Global Creativity Index) is based on 3Ts of economic development (Talent, Technology, and Tolerance [What is the opposite of Tolerance?] .)</li>
</ul>
</content>
<id>https://www.sixhat.net//2023/models-of-creativity-.html</id>
<link href="https://www.sixhat.net//2023/models-of-creativity-.html"/>
<title>Models of Creativity</title>
<updated>2023-12-18T17:35:48+00:00</updated>
<dc:date>2023-12-18T17:35:48+00:00</dc:date>
</entry>
<entry>
<content><h2 id="my-approach-to-managing-scratch-projects-with-bash-scripts">My approach to managing scratch projects with bash scripts</h2>
<p>In R if I just want to test an idea I create a scratch project in /tmp . This will removed automatically on the next boot. This makes it easy to setup scratch folders without leaving much clutter behind. The problem is that the next time you open R after a reboot it will complaint about not finding the previous workspace. I also do the same thing with Markdown files and folders. To help me manage this I have a <code>new_project</code> bash script in my bin folder that goes like this (only .r and .md versions shown but can easily be extended for your needs)</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="nb">set</span> <span class="nt">-euo</span> pipefail
<span class="nv">__usage</span><span class="o">=</span><span class="s2">"usage: new_project name &lt;type&gt;
type can be one of md, r, or any other... and accordingly it should open
and setup different folder structures
name will be the folder name where the project exists.
"</span>
make_folder <span class="o">()</span> <span class="o">{</span>
<span class="nb">mkdir</span> <span class="nt">-p</span> <span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span>
<span class="nb">cd</span> <span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span>
<span class="o">}</span>
project_md <span class="o">(){</span>
make_folder <span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span>
<span class="nb">local </span><span class="nv">today_file</span><span class="o">=</span><span class="s2">"</span><span class="si">$(</span><span class="nb">date</span> +%F<span class="si">)</span><span class="s2">.md"</span>
<span class="k">if </span><span class="nb">test</span> <span class="o">!</span> <span class="nt">-f</span> <span class="s2">"</span><span class="nv">$today_file</span><span class="s2">"</span><span class="p">;</span> <span class="k">then
</span><span class="nb">touch</span> <span class="s2">"</span><span class="nv">$today_file</span><span class="s2">"</span>
<span class="k">fi
</span>open <span class="nt">-a</span> <span class="s2">"/Applications/Visual Studio Code.app/"</span> <span class="s2">"</span><span class="nv">$today_file</span><span class="s2">"</span>
<span class="o">}</span>
project_r <span class="o">(){</span>
make_folder <span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span>
<span class="nb">local </span><span class="nv">today_file</span><span class="o">=</span><span class="s2">"</span><span class="si">$(</span><span class="nb">date</span> +%F<span class="si">)</span><span class="s2">.r"</span>
<span class="k">if </span><span class="nb">test</span> <span class="o">!</span> <span class="nt">-f</span> <span class="s2">"</span><span class="nv">$today_file</span><span class="s2">"</span><span class="p">;</span> <span class="k">then
</span><span class="nb">touch</span> <span class="s2">"</span><span class="nv">$today_file</span><span class="s2">"</span>
<span class="k">fi
</span>open <span class="nt">-a</span> <span class="s2">"/Applications/RStudio.app"</span> <span class="s2">"</span><span class="nv">$today_file</span><span class="s2">"</span>
<span class="o">}</span>
<span class="c"># Start logic bellow this line</span>
<span class="k">if</span> <span class="o">[</span> <span class="s2">"$#"</span> <span class="o">!=</span> 2 <span class="o">]</span><span class="p">;</span> <span class="k">then
</span><span class="nb">echo</span> <span class="s2">"</span><span class="nv">$__usage</span><span class="s2">"</span>
<span class="nb">exit </span>1
<span class="k">fi
if</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$2</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"r"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
</span>project_r <span class="nv">$1</span>
<span class="k">fi
if</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$2</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"md"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
</span>project_md <span class="nv">$1</span>
<span class="k">fi</span>
</code></pre></div></div>
<html><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"> </script>
<script>hljs.highlightAll();</script></html>
</content>
<id>https://www.sixhat.net//2023/my-approach-to-managing-scratch-projects-with-bash-scripts.html</id>
<link href="https://www.sixhat.net//2023/my-approach-to-managing-scratch-projects-with-bash-scripts.html"/>
<title>My approach to managing scratch projects with bash scripts</title>
<updated>2024-04-19T10:06:56+01:00</updated>
<dc:date>2024-04-19T10:06:56+01:00</dc:date>
</entry>
<entry>
<content><h2 id="no-arrendamento-quem-se-lixa-é-quem-cumpre-e-já-aluga">No arrendamento, quem se lixa é quem cumpre e já aluga</h2>
<ul>
<li>Quem converter AL em arrendamento tem benefícios e isenções</li>
<li>Off-shores que venderem casas ao estado tem isenções</li>
</ul>
<p>Esta salganhada do arrendamento que o governo se prepara para criar mostra claramente que vai haver quem vai pagar a fatura, e esse alguém parecem ser os actuais senhorios que já alugam as casas. Então agora se um AL se converter em arrendamento do estado fica com isenção de IRS até 2030? Então alguém que está num mercado competitivo vai ficar com uma vantagem comercial de 25%? A lei da concorrência fica completamente desvirtuada. Os que já fazem aquilo que o estado pretende, pelos vistos podem ser sacrificados pelo estado e pagar a fatura. Vamos bem.</p>
</content>
<id>https://www.sixhat.net//2023/no-arrendamento-quem-se-lixa-e-quem-cumpre-e-ja-aluga.html</id>
<link href="https://www.sixhat.net//2023/no-arrendamento-quem-se-lixa-e-quem-cumpre-e-ja-aluga.html"/>
<title>No arrendamento, quem se lixa é quem cumpre e já aluga</title>
<updated>2023-12-18T17:35:56+00:00</updated>
<dc:date>2023-12-18T17:35:56+00:00</dc:date>
</entry>
<entry>
<content><h2 id="o-fim-das-trotinetes-de-aluguer">O fim das trotinetes de aluguer?</h2>
<p>Paris <a href="https://www.france24.com/en/live-news/20230402-paris-votes-on-ban-for-rental-e-scooters">baniu</a> as trotinetes eléctricas de aluguer. Atendendo ao que representa esta medida não me admirava que em breve também Lisboa seguisse o exemplo. O modelo de funcionamento destes negócios representa o abuso completo do espaço público, com total desrespeito pelo espaço pedonal. Se ainda por cima o se tornam inseguras, não há como dar a volta ao texto e as gestões urbanas acabarão por impor restrições ou proibições completas. Sim, a culpa não é das marcas, mas dos utilizadores irresponsáveis. Mentira, também é das marcas que desenham um negócio baseado na apropriação do espaço público, como as esplandas do Covid que nunca mais desapareceram e que comem em muitos sítios mais de metade dos passeios. Mas há licenças. Então terminem-se.</p>
</content>
<id>https://www.sixhat.net//2023/o-fim-das-trotinetes-de-aluguer.html</id>
<link href="https://www.sixhat.net//2023/o-fim-das-trotinetes-de-aluguer.html"/>
<title>O fim das trotinetes de aluguer?</title>
<updated>2023-12-18T17:36:04+00:00</updated>
<dc:date>2023-12-18T17:36:04+00:00</dc:date>
</entry>
<entry>
<content><h2 id="organising-stuff-is-hard-until-it-isnt">Organising stuff is hard until it isn’t</h2>
<p><a href="https://bulletjournal.com/">Bullet Journal</a> - A very flexible analog system on note taking (that can also be used with digital notetaking tools)</p>
<p><a href="https://johnnydecimal.com/">Johnny.Decimal</a> - An interesting way of organising stuff in an hierarchical manner.</p>
</content>
<id>https://www.sixhat.net//2023/organising-stuff-is-hard-until-it-isnt.html</id>
<link href="https://www.sixhat.net//2023/organising-stuff-is-hard-until-it-isnt.html"/>
<title>Organising stuff is hard until it isn't</title>
<updated>2023-12-18T17:36:12+00:00</updated>
<dc:date>2023-12-18T17:36:12+00:00</dc:date>
</entry>
<entry>
<content><h2 id="readings-on-strange-programming-art-and-electronics">Readings on strange programming, art and electronics</h2>
<ul>
<li>Although from 3 years ago, this <a href="https://raganwald.com/2020/05/03/fractran.html">FRACTRAN page</a> by <a href="https://braythwayt.com/">Reg Braithwaite</a> is pure intellectual joy. Dive in at your own peril. (also if you use JQuery check <a href="https://github.com/raganwald/JQuery-Combinators">JQuery-Combinators</a>)</li>
<li>Amy Goodchild has very interesting post about <a href="https://www.amygoodchild.com/blog/computer-art-50s-and-60s">computer art of the 50s and 60s</a>.</li>
<li>An interesting project to create an <a href="https://ultimateelectronicsbook.com/#">Ultimate Electronics Book</a>. Another one? Well they all need 2 things to work, be clear and be interactive. If not I can’t give them to my students.</li>
</ul>
</content>
<id>https://www.sixhat.net//2023/readings-on-strange-programming-art-and-electronics.html</id>
<link href="https://www.sixhat.net//2023/readings-on-strange-programming-art-and-electronics.html"/>
<title>Readings on strange programming, art and electronics</title>
<updated>2023-12-18T17:36:18+00:00</updated>
<dc:date>2023-12-18T17:36:18+00:00</dc:date>
</entry>
<entry>
<content><h2 id="red-led-at-13-blue-led-at-12---police-lights">RED LED at 13, BLUE LED at 12 - Police Lights</h2>
<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
<span class="n">DDRB</span> <span class="o">=</span> <span class="n">B00110000</span><span class="p">;</span>
<span class="n">PINB</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">PINB5</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="nb">true</span><span class="p">)</span> <span class="p">{</span>
<span class="n">PINB</span> <span class="o">=</span> <span class="n">B00110000</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">long</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">500000</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="k">asm</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Tags: Arduino, AVR, ATmega</p>
</content>
<id>https://www.sixhat.net//2023/red-led-at-13-blue-led-at-12---police-lights.html</id>
<link href="https://www.sixhat.net//2023/red-led-at-13-blue-led-at-12---police-lights.html"/>
<title>RED LED at 13, BLUE LED at 12 - Police Lights</title>
<updated>2023-12-18T17:36:23+00:00</updated>
<dc:date>2023-12-18T17:36:23+00:00</dc:date>
</entry>
<entry>
<content><h2 id="senhor-clemente-que-oportunidade-perdida-para-o-arrependimento">Senhor Clemente, que oportunidade perdida para o arrependimento.</h2>
<p>A igreja deixou andar a comissão, e agora fez aquilo que já se esperava de uma organização podre até ao tutano. Matou os resultados de uma assentada. Cuspiu na cara das vítimas e ainda se riu. E o pior é que o fez não por uma razão de fé, ou de crença ou qualquer outra coisa, refugiou-se numa artimanha de um estado de direito que é a “produção de prova”.</p>
<blockquote>
<p>“Se essa lista de nomes for preenchida por factos, tanto nós como as autoridades civis podemos actuar”</p>
</blockquote>
<p>O Sr cardeal-patriarca de Lisboa decidiu matar o processo de investigação aos pedófilos da igreja e argumentando que na justiça civil só o é o que se prova. Criou um artefacto para salvar a pele aos amigos pedófilos e predadores sexuais que a igreja portuguesa acoita.</p>
<p><strong>Sr cardeal-patriarca, por vezes sabem-se coisas que não se podem provar.</strong></p>
<p>Ou isso ou então está com medo de PAGAR. Lembre-se que nos <a href="https://en.wikipedia.org/wiki/Catholic_Church_sex_abuse_cases_in_the_United_States">estados unidos a igreja terá pago mais de 4 mil milhões</a> (uma tapezinha) desde 1980 a cerca de 17000 vítimas. Será que o este “shutdown” procura servir quem? os cofres da igreja portuguesa? Algumas dioceses nos EUA tiveram que pedir falência por causa dos escândalos, será que por cá já se estão a fazer as contas? é o que parece.</p>
<p>As vítimas sabem coisas que não podem provar e lá porque não se podem provar não quer dizer que não tenham acontecido e que os nomes… sim os nomes que o Sr quer esconder não passam de criminosos que a Igreja, abusando da lei do estado, procura esconder. Talvez, tal como noutros países não se consigam provar todos actos a ponto de condenar, mas talvez como noutros países se possam condenar pelo encobrimento os bispos, arcebispos ou cardeais que o praticam. E se não for possível pela justiça laica de que abusam, pelo menos da justiça divina da sua igreja não escaparão.</p>
</content>
<id>https://www.sixhat.net//2023/senhor-clemente-que-oportunidade-perdida-para-o-arrependimento.html</id>
<link href="https://www.sixhat.net//2023/senhor-clemente-que-oportunidade-perdida-para-o-arrependimento.html"/>
<title>Senhor Clemente, que oportunidade perdida para o arrependimento.</title>
<updated>2023-12-18T17:36:29+00:00</updated>
<dc:date>2023-12-18T17:36:29+00:00</dc:date>
</entry>
<entry>
<content><h2 id="small-is-beautiful">Small is beautiful</h2>
<p>I’ve been around for a long time to remember…</p>
<p>– Dave, are you going to write that?</p>
<p>… as I was saying, to remember when all we had was small things. Code compiled<br />
to small sizes, websites were a few kB, computers were slow, but the slownness<br />
didn’t come from size of code, slow was just because of lack of chip power.<br />
These days we are all spoiled by the abundance of <em>processing power</em>.</p>
<p>That is why this <a href="https://benhoyt.com/writings/the-small-web-is-beautiful/">text rings so many rights in a world full of wrongs</a>.</p>
</content>
<id>https://www.sixhat.net//2023/small-is-beautiful.html</id>
<link href="https://www.sixhat.net//2023/small-is-beautiful.html"/>
<title>Small is beautiful</title>
<updated>2023-12-18T17:36:35+00:00</updated>
<dc:date>2023-12-18T17:36:35+00:00</dc:date>
</entry>
<entry>
<content><h2 id="spell-checker-for-shell-scripts">Spell Checker for Shell Scripts</h2>
<p>I’m not a prolific shell programmer (although my <a href="https://www.davidrodrigues.org/research.html">master’s dissertation</a> leveraged bash + gawk and made the <em>programming</em> part easy) but I used them for many small tasks that are repetitive and can be simplified via a script.</p>
<p>Writing those scripts for the shell (bash, or whatever) is hard because of some quirks in the language/system, like <a href="https://www.gnu.org/software/bash/manual/html_node/Shell-Expansions.html">shell expansions</a> and <a href="https://en.wikipedia.org/wiki/Glob_(programming)">file globing </a><br />
Therefore, it is nice to have some sort of syntax checker for most small pickles. <a href="https://www.shellcheck.net/">https://www.shellcheck.net/</a> mitigates the problem by analysing your scripts for some common buggy patterns.</p>
</content>
<id>https://www.sixhat.net//2023/spellcheck-shell-sripts.html</id>
<link href="https://www.sixhat.net//2023/spellcheck-shell-sripts.html"/>
<title>Spell Checker for Shell Scripts</title>
<updated>2023-12-18T17:38:23+00:00</updated>
<dc:date>2023-12-18T17:38:23+00:00</dc:date>
</entry>
<entry>
<content><h2 id="still-reading-about-ai-and-gpt-and-whats-next-in-this-space">Still reading about AI and GPT and what’s next in this space</h2>
<ul>
<li><a href="https://rodneybrooks.com/what-will-transformers-transform/">Let’s cool dow a<br />
bit</a>- A very “food<br />
for thought” essay where the euphoria about transformers technology (read GPTs)<br />
is brought to sane levels, exposing some of its bias, mistakes, and<br />
highlighting the ontological differences between what they are and people’s<br />
expectations of them.</li>
<li><a href="https://aisnakeoil.substack.com/p/openais-policies-hinder-reproducible">Open AI and Reproducible<br />
science</a><br />
Open AI is decommissioning Codex (the one that powers Copilot for example), and<br />
this creates a serious problem: What happens to the science produced with /<br />
based on Codex? How will someone be able to reproduce the scientific results?</li>
<li><a href="https://www.tabnine.com/">Tabnine</a> - This is a code completion / assistant<br />
<em>a la</em> Copilot. Just trying this out now and … well as Copilot, I’m really<br />
amazed how AI will transform programming if you keep a human in the AI loop.<br />
Tabnine and Copilot are not the only ones and are in what might be called gen.<br />
1 AI assistants. I can’t imagine what these space will be in 5 years. But Wow.<br />
I want in.</li>
</ul>
</content>
<id>https://www.sixhat.net//2023/still-reading-about-ai-and-gpt-and-whats-next-in-this-space.html</id>
<link href="https://www.sixhat.net//2023/still-reading-about-ai-and-gpt-and-whats-next-in-this-space.html"/>
<title>Still reading about AI and GPT and what's next in this space</title>
<updated>2023-12-18T17:38:32+00:00</updated>
<dc:date>2023-12-18T17:38:32+00:00</dc:date>
</entry>
<entry>
<content><h2 id="svelte-link-dump">Svelte link dump.</h2>
<ul>
<li><a href="https://svelte.dev/">Svelte</a> - The App Framework</li>
<li><a href="https://kit.svelte.dev/">Sveltekit</a> - The UI Framework (provides routers, etc…)</li>
<li><a href="https://threlte.xyz/">Threlte</a> - The ThreeJS bit that makes this great.</li>
</ul>
</content>
<id>https://www.sixhat.net//2023/svelte-link-dump.html</id>
<link href="https://www.sixhat.net//2023/svelte-link-dump.html"/>
<title>Svelte link dump.</title>
<updated>2023-12-18T17:38:38+00:00</updated>
<dc:date>2023-12-18T17:38:38+00:00</dc:date>
</entry>
<entry>
<content><h2 id="the-ai-races-for-march-22">The AI Races for March 22:</h2>
<ul>
<li>Bill Gates published an extensive article on is blog about how he thinks this is a totally game changer technology. <a href="https://www.gatesnotes.com/The-Age-of-AI-Has-Begun?WT.mc_id=20230321100000_Artificial-Intelligence_BG-TW_&amp;WT.tsrc=BGTW">The Age of AI has begun</a> is a must read for anyone interested in these subjects.</li>
<li><a href="https://blog.mozilla.org/en/mozilla/introducing-mozilla-ai-investing-in-trustworthy-ai/">Mozilla presented</a> the <a href="https://mozilla.ai/">Moz://a.ai</a>, a startup community aiming at building trustworthy and open-source AI. With the rapid advances in the field this will become a must if we don’t want some kind of violent reaction to it.</li>
</ul>
</content>
<id>https://www.sixhat.net//2023/the-ai-races-for-march-22.html</id>
<link href="https://www.sixhat.net//2023/the-ai-races-for-march-22.html"/>
<title>The AI Races for March 22:</title>
<updated>2023-12-18T17:38:42+00:00</updated>
<dc:date>2023-12-18T17:38:42+00:00</dc:date>
</entry>
<entry>
<content><h2 id="the-wei-web-environment-integrity-api-proposal-from-google-is-dangerous-and-should-not-go-forward">the wei (web environment integrity) api proposal from google is dangerous and should not go forward.</h2>
<p>wei will allow the webpage provider to arbitrary block you if you’re not using a certain browser, for example, via what is called an <em>attester</em> that will certify that you (the receiver, consumer of content) are trustworthy.</p>
<p>the idea is that wei will force you, the client, to consume the content in the way they envisioned. this means no adblockers, no text-based browsers, no plugins that change the content you consume in any way. no non-human reading of the website. this basically means you’ll hand control over your computer environment or else you’ll get no service.</p>
<p>in any case google is already pushing code to their development github of chrome meaning that they will push the proposal with, or without, the approval of the w3c (the consortium managing web standards). they will enforce it on top of having 65% market share and probably forcing every google service to go through chrome (this means gmail, ads, youtube, etc…).</p>
<p>if you want to read about this potential danger go here:</p>
<ul>
<li><a href="https://github.com/RupertBenWiser/Web-Environment-Integrity/blob/main/explainer.md#example-use-cases">https://github.com/RupertBenWiser/Web-Environment-Integrity/blob/main/explainer.md#example-use-cases</a></li>
<li><a href="https://vivaldi.com/blog/googles-new-dangerous-web-environment-integrity-spec/">https://vivaldi.com/blog/googles-new-dangerous-web-environment-integrity-spec/</a></li>
<li><a href="https://github.com/mozilla/standards-positions/issues/852">https://github.com/mozilla/standards-positions/issues/852</a></li>
</ul>
<p>in any case my suggestion is to <strong><a href="https://www.mozilla.org/en-GB/firefox/new/">move to firefox</a></strong> and help diminish chrome share. No browser should have such power and as Chrome is becoming the new IE you should give the alternatives a try.</p>
</content>
<id>https://www.sixhat.net//2023/the-wei-web-environment-integrity-api-proposal-from-google-is-dangerous-and-should-not-go-forward-.html</id>
<link href="https://www.sixhat.net//2023/the-wei-web-environment-integrity-api-proposal-from-google-is-dangerous-and-should-not-go-forward-.html"/>
<title>the wei (web environment integrity) api proposal from google is dangerous and should not go forward.</title>
<updated>2024-01-20T11:15:44+00:00</updated>
<dc:date>2024-01-20T11:15:44+00:00</dc:date>
</entry>
<entry>
<content><h2 id="things-im-relearning-as-i-play-advent-of-code-2023">Things I’m (re)learning as I play Advent of Code 2023.</h2>
<p>One of the best coding challenges out there is <a href="https://adventofcode.com/">Advent of Code</a>.<br />
It is a really fun and engaging way to learn a new language or to revisit something that you’ve been away for so long.<br />
In my case it was python.<br />
Python was the language I wrote my PdD in, but at the time I was using version 2.7.<br />
I barely touched python since.<br />
This year I decided to do <strong>AoC</strong> with python 3.11 and wow, what a difference.<br />
I love this language.<br />
It is so pleasurable to work with.</p>
<p>I’m keeping this entry about the things I’m (re)learning[^day].<br />
Thing that either I didn’t use before or were still absent in 2.7 days.<br />
These things emerged as I progressed through the challenges and compare my code with others[^github].</p>
<p>Around day 18—20 of AoC I <em>stopped</em> participating.<br />
Challenges became more specific about using certain advanced algorithm or data structure and became harder.<br />
As a consequence the time devoted to solving increased.<br />
The issue is that I don’t have that time, but in any case I’m still going through solutions.<br />
The objective is to learn and recall the most of python possible.<br />
And in the end it is all time management.</p>
<h3 id="tips-learnt">Tips learnt</h3>
<ul>
<li><code>enumerate</code> is a very useful command.</li>
<li><code>zip</code> is also very useful.</li>
<li>Prepare the input <em>data</em> by chaining everything with appropriate <strong>open</strong>..<strong>read</strong>..<strong>strip</strong>..<strong>split</strong>.<br />
But sometimes <strong>numpy</strong> is easier with a simple <code>loadtxt</code>.</li>
<li><a href="https://jupyter.org/">Jupyter Labs</a> has come a long way.<br />
I never liked it back then. Now either via the browser or in VSCode, interactive python is a breeze.</li>
<li>Many times <strong>list|dict|tuple</strong> comprehensions make the code very clean and easy to read.<br />
I’m thinking twice about the <code>for</code> loops that I’m trying to implement.</li>
<li><a href="https://docs.python.org/3/library/typing.html">Type annotations</a> are very useful, even for small scripts, as they force you to decide on what you want to write.</li>
<li><code>*[]</code> and <code>[::1]</code></li>
<li>Many things are easy if I leverage <code>numpy, re, math</code> and don’t try to reinvent the algorithms.</li>
<li><code>functools.cmp_to_key</code> works but I still find it a bit cumbersome to use.<br />
There should be a cleaner way to sort by user-defined comparators.</li>
<li><code>numpy.where(condition)</code> in 2D matrices gives two arrays with the indicies of the entries.<br />
Better use <code>numpy.argwhere(condition)</code> and <code>.tolist()</code>. The former case needs a lot of massaging to get a tuple of coordinates back[^npargwhere].</li>
<li><code>scipy.spatial.distance</code> has methods for spatial distance calculations that are very useful, namely <code>pdist</code>, <code>cdist</code>, and <code>squareform</code></li>
<li><code>splitlines</code> can shorten the loading of the inputs… something in the line of <code>open(0).read().strip().splitlines()</code> to read from standard in.</li>
</ul>
<h3 id="things-to-explore-in-the-future">Things to explore in the future</h3>
<ul>
<li>The <a href="https://en.wikipedia.org/wiki/Shoelace_formula">Shoelace formula</a>, gets the area of a simple polygon from its coordinates.<br />
I think I’ll need to use this on a urban agent based model I’m running now.<br />
As a follow up to this, the <a href="https://en.wikipedia.org/wiki/Pick%27s_theorem">Pick’s theorem</a> is also important.</li>
<li><code>numba</code> This is exciting.<br />
Never touched it before, so I’m eager to look into it when I have a bit more time.</li>
<li>Go deep with <code>numpy</code>.</li>
<li>Day 12 pointed in the direction of <strong>recursion</strong>.<br />
I struggled with this exercise.<br />
Recursion is something that everybody understands until you really have to apply it to a new problem.<br />
Need to revisit this again. Not submitting any answers as I feel I didn’t solve it.</li>
</ul>
<p>[^day] And we are only at day 20 at the time of writing. I’ll update this as <strong>AoC</strong> progresses. <br />
[^github] My <a href="https://github.com/sixhat/adventofcode.com/"><strong>AoC</strong> repository</a> contains my daily solutions in case you want to check my progress. <br />
[^npargwhere] <a href="https://numpy.org/doc/stable/reference/generated/numpy.argwhere.html">https://numpy.org/doc/stable/reference/generated/numpy.argwhere.html</a></p>
</content>
<id>https://www.sixhat.net//2023/things-i-am-relearning-in-python-while-playing-aoc.html</id>
<link href="https://www.sixhat.net//2023/things-i-am-relearning-in-python-while-playing-aoc.html"/>
<title>Things I'm (re)learning as I play Advent of Code 2023.</title>
<updated>2024-03-31T22:41:55+01:00</updated>
<dc:date>2024-03-31T22:41:55+01:00</dc:date>
</entry>
<entry>
<content><h2 id="toggling-light-bulb-problem">Toggling Light Bulb Problem</h2>
<p>The video published by numberphile a few days ago about the <a href="https://www.youtube.com/watch?v=-UBDRX6bk-A">Toggling Light Bulb Problem</a> is very interesting. Here’s some code to visualize it in the console.</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">lights</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="mi">100</span>
<span class="nf">print</span><span class="p">(</span><span class="sh">""</span><span class="p">.</span><span class="nf">join</span><span class="p">(</span><span class="nf">map</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span><span class="n">lights</span><span class="p">)))</span>
<span class="k">for</span> <span class="n">person</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">101</span><span class="p">):</span>
<span class="n">prt</span> <span class="o">=</span> <span class="p">[</span><span class="nf">chr</span><span class="p">(</span><span class="mi">32</span><span class="p">)]</span><span class="o">*</span><span class="mi">100</span>
<span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">101</span><span class="p">):</span>
<span class="k">if</span> <span class="n">l</span> <span class="o">%</span> <span class="n">person</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">lights</span><span class="p">[</span><span class="n">l</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">=</span><span class="mi">1</span><span class="o">-</span><span class="n">lights</span><span class="p">[</span><span class="n">l</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="k">if</span> <span class="n">lights</span><span class="p">[</span><span class="n">l</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">==</span><span class="mi">1</span><span class="p">:</span>
<span class="n">prt</span><span class="p">[</span><span class="n">l</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nf">chr</span><span class="p">(</span><span class="mi">9608</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="sh">""</span><span class="p">.</span><span class="nf">join</span><span class="p">(</span><span class="n">prt</span><span class="p">))</span>
</code></pre></div></div>
<html><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"> </script>
<script>hljs.highlightAll();</script></html>
</content>
<id>https://www.sixhat.net//2023/toggling-light-bulb-problem.html</id>
<link href="https://www.sixhat.net//2023/toggling-light-bulb-problem.html"/>
<title>Toggling Light Bulb Problem</title>
<updated>2023-12-18T18:47:10+00:00</updated>
<dc:date>2023-12-18T18:47:10+00:00</dc:date>
</entry>
<entry>
<content><h2 id="tools-for-modern-research">Tools for Modern Research</h2>
<p>With all the ChatGPT Buzz out there the truth is that there are many very interesting tools to help us write/do better science. Here’s a short list:</p>
<p><a href="https://elicit.org/">https://elicit.org/</a></p>
<p><a href="https://chat.openai.com/chat">https://chat.openai.com/chat</a></p>
<p><a href="https://typeset.io/">https://typeset.io/</a></p>
<p><a href="https://app.wordtune.com/account/signup?product=read">https://app.wordtune.com/account/signup?product=read</a></p>
<p><a href="https://www.explainpaper.com/">https://www.explainpaper.com/</a></p>
<p><a href="https://www.perplexity.ai/">https://www.perplexity.ai/</a></p>
<p><a href="https://www.copy.ai/">https://www.copy.ai/</a></p>
<p><a href="https://originality.ai/">https://originality.ai/</a></p>
<p><a href="https://openai-openai-detector.hf.space/">https://openai-openai-detector.hf.space/</a></p>
<p><a href="https://gptzero.me/">https://gptzero.me/</a></p>
</content>
<id>https://www.sixhat.net//2023/tools-for-modern-research.html</id>
<link href="https://www.sixhat.net//2023/tools-for-modern-research.html"/>
<title>Tools for Modern Research</title>
<updated>2023-12-18T17:39:03+00:00</updated>
<dc:date>2023-12-18T17:39:03+00:00</dc:date>
</entry>
<entry>
<content><h2 id="two-main-developments-in-the-ai-generators-world">Two main developments in the AI generators world</h2>
<p><a href="https://bard.google.com/">Bard</a> is entering public beta, although not globally. &gt; It sucks big time.</p>
<p>Adobe is entering this crazy world with <a href="https://www.adobe.com/sensei/generative-ai/firefly.html">Firefly</a>. Goodbye Designers, Hello cousin with an internet connection and an Adobe subscription.</p>
</content>
<id>https://www.sixhat.net//2023/two-main-developments-in-the-ai-generators-world.html</id>
<link href="https://www.sixhat.net//2023/two-main-developments-in-the-ai-generators-world.html"/>
<title>Two main developments in the AI generators world</title>
<updated>2023-12-18T17:39:08+00:00</updated>
<dc:date>2023-12-18T17:39:08+00:00</dc:date>
</entry>
<entry>
<content><h2 id="websites-que-funcionam-apenas-em-modo-texto">Websites que funcionam apenas em modo texto</h2>
<p>Já tinha uma <a href="https://www.sixhat.net/article/uncategorized/2022/Ainda-e-possivel-navegar-a-Web-com-o-Javascript-Desligado.html">lista de websites</a> que funcionam com o JavaScript desligado, e portanto muito mais rápidas.</p>
<p>Agora encontrei uma <a href="https://sjmulder.nl/en/textonly.html">lista do Sijmen Mulder</a> que tem ainda mais recursos. Alguns já eram conhecidos mas é interessante explorar as novidades.</p>
</content>
<id>https://www.sixhat.net//2023/websites-que-funcionam-apenas-em-modo-texto.html</id>
<link href="https://www.sixhat.net//2023/websites-que-funcionam-apenas-em-modo-texto.html"/>
<title>Websites que funcionam apenas em modo texto</title>
<updated>2023-12-18T17:39:14+00:00</updated>
<dc:date>2023-12-18T17:39:14+00:00</dc:date>
</entry>
<entry>
<content><h2 id="writing-slides-structure-from-the-topics-slide-in-marp">Writing slides structure from the Topics slide in marp</h2>
<p>I use marp to produce most of my slides and found it very interesting to layout the structure of the presentation in the <em>Agenda</em>/<em>Topics</em> slide. This slide acts as an organizer for the presentation.</p>
<p>I might write something like</p>
<pre><code>## Topics
- Talk about awk
- Explain why Julia rocks
- Show examples
</code></pre>
<p>But then I have to create the slides, and the following snippet of shell code allows me to get the code for the slides in my presentation.<br />
It takes the <code>file.md</code> and parses the lines starting with ‘- ‘ and produces the outline like</p>
<pre><code>---
## Talk about awk
---
## Explain why Julia rocks
---
### Show examples
</code></pre>
<p>This is all accomplished with old faithful <code>awk</code>.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">function </span>mdIndex <span class="o">{</span>
<span class="nb">awk</span> <span class="s1">'/^- / {$1="";print "\n---\n\n##"$0 } / +- /{$1="";print "\n---\n\n###"$0}'</span> <span class="nv">$1</span>
<span class="o">}</span>
</code></pre></div></div>
<p>Just put it in <code>.zprofile</code> and you can run it like this and get the results in the terminal,</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>mdIndex file.md
</code></pre></div></div>
<p>or you can pipe it to <code>pbcopy</code> and then paste the output into your editor of choice.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>mdIndex file.md | pbcopy
</code></pre></div></div>
</content>
<id>https://www.sixhat.net//2023/writing-slides-structure-from-the-topics-slide-in-marp.html</id>
<link href="https://www.sixhat.net//2023/writing-slides-structure-from-the-topics-slide-in-marp.html"/>
<title>Writing slides structure from the Topics slide in marp</title>
<updated>2024-01-21T17:47:48+00:00</updated>
<dc:date>2024-01-21T17:47:48+00:00</dc:date>
</entry>
<entry>
<content><h2 id="im-giving-zed-a-try">I’m giving Zed a try.</h2>
<pre><code>- Whose program is this?
- It's editor, baby.
- Whose editor is this?
- It's VSCode's.
- Who's VSCode?
- VSCode's dead baby, VSCode's dead.
</code></pre>
<p>In this case, the dead one might be VSCode.</p>
<p>I’ve been a <strong>vim/neovim/vscode</strong> user for a couple of yeas now.<br />
In all this time the amount of bloat VSCode has installed as grown to a point that I find myself thinking why I keep dragging this anchor of an editor.</p>
<p>It can’t even delete extensions from the support folder when I uninstall them.</p>
<p>Then there’s all those <code>node_modules</code> folders filled with rogue JS for each plugin I use (that vscode never deletes).</p>
<p>So I decided to try <a href="https://zed.dev/?ref=sixhat.net">Zed</a>.</p>
<p>It comes from the creators of Atom.<br />
After <a href="https://zed.dev/blog/we-have-to-start-over?ref=sixhat.net">repenting</a> they went with <a href="https://www.rust-lang.org/?ref=sixhat.net">rust</a> for Zed.</p>
<p>If the last two facts weren’t enough to get my attention, the <a href="https://github.com/zed-industries/zed-fonts?ref=sixhat.net">Zed mono and Zed sans fonts</a> used in the editor got me 100%.</p>
<p>And for what I use a text editor for, zed is just blazing fast.<br />
What a surprise. Happy times in 2024!</p>
</content>
<id>https://www.sixhat.net//2024/02-im-giving-zed-a-try.html</id>
<link href="https://www.sixhat.net//2024/02-im-giving-zed-a-try.html"/>
<title>I'm giving Zed a try.</title>
<updated>2024-11-02T00:11:46+00:00</updated>
<dc:date>2024-11-02T00:11:46+00:00</dc:date>
</entry>
<entry>
<content><h2 id="new-macs-are-rubish">New macs are rubish</h2>
<p>I just want to say something about new macs. They are rubish. I never had freezes and reboots with old macs.</p>
<p>I’ve been running a M2 air for more than one year and it has frozen and rebooted on me several times. If I push it too hard it panics and reboots.</p>
<p>Early on it was Wifi connection that wasn’t stable and forced me to disable “Continuity” with my iPad, to try to keep it running longer than 5 minutes.</p>
<p>Now with AI trying to run the smallest Ollama models is a challenge. It might just poop on you and reboot. Twice in the last hour. ME NOT HAPPY.</p>
<p>Sorry, just wanted to get this out of my chest</p>
<p>PS - asking the wife for her Dell so I can run the models.</p>
</content>
<id>https://www.sixhat.net//2024/02-new-macs-are-rubish.html</id>
<link href="https://www.sixhat.net//2024/02-new-macs-are-rubish.html"/>
<title>New macs are rubish</title>
<updated>2024-02-20T10:33:48+00:00</updated>
<dc:date>2024-02-20T10:33:48+00:00</dc:date>
</entry>
<entry>
<content><h1 id="im-shamelessly-stealing-from-this-reference">I’m shamelessly stealing from this reference</h1>
<p>while teaching I need sometimes to point students to good studying practices.<br />
I just found a great gem.<br />
I’m going to steel this one. Professor <a href="https://cse.buffalo.edu/~rapaport/howtostudy.html?ref=sixhat.net">Rapaport</a> wrote a long page on how to study efficiently and I agree 100% with the content.<br />
It is really funny, useful and filled with some gems (i’m recursing gems in gem in gem in gem… ok… who cares, my text)<br />
Next time I get a student struggling with getting results because of bad habits, this will at the top of my list of recommendations.</p>
</content>
<id>https://www.sixhat.net//2024/02-shamelessly-stealing-this.html</id>
<link href="https://www.sixhat.net//2024/02-shamelessly-stealing-this.html"/>
<title>I'm shamelessly stealing from this reference</title>
<updated>2024-03-09T16:13:59+00:00</updated>
<dc:date>2024-03-09T16:13:59+00:00</dc:date>
</entry>
<entry>
<content><h1 id="where-has-my-disk-space-gone">where has my disk space gone?</h1>
<p>I can’t really come around in my mind that modern computers are so bloated with stuff (99% unnecessary) that free space just disappears before your eyes at alarming rates.</p>
<p>For many yeas I’ve been using some sort of treemapping app to visualize where has everything gone.</p>
<p>My favorite is <a href="https://www.omnigroup.com/more/?ref=sixhat.net">OmniDiskSweepper</a>. Takes little space, does its thing, allows you to act upon findings. What else would one need?</p>
</content>
<id>https://www.sixhat.net//2024/02-where-has-my-disk-space-gone.html</id>
<link href="https://www.sixhat.net//2024/02-where-has-my-disk-space-gone.html"/>
<title>where has my disk space gone?</title>
<updated>2024-03-09T16:14:17+00:00</updated>
<dc:date>2024-03-09T16:14:17+00:00</dc:date>
</entry>
<entry>
<content><h2 id="after-sora-theres-a-haiper-reality">After Sora theres a Haiper Reality</h2>
<p>Prompt to Vídeo is becoming a fantastic sub-field of all the generative AI world. <br />
The latest entry is <a href="https://haiper.ai/?ref=sixhat.net">Haiper</a>.<br />
This company promises to bring the fight to OpenAI and contrary to <del>Open</del>CloseAI, they allow you to try the generation by yourself—although with some limits (2s, lower res).</p>
</content>
<id>https://www.sixhat.net//2024/03-haiper-after-sora.html</id>
<link href="https://www.sixhat.net//2024/03-haiper-after-sora.html"/>
<title>After Sora theres a Haiper Reality</title>
<updated>2024-03-09T16:15:21+00:00</updated>
<dc:date>2024-03-09T16:15:21+00:00</dc:date>
</entry>
<entry>
<content><h2 id="qualcomm-ai-hub">Qualcomm AI HUB</h2>
<p>Qualcomm just launched an AI Store (<a href="https://aihub.qualcomm.com/?ref=sixhat.net">AI HUB</a>) with pre-trained models for different tasks, including:</p>
<ul>
<li>Segmentation</li>
<li>Stable-diffusion</li>
<li>Whisper-base (Automatic Speech Recognition)</li>
<li>TrOCR (transformer based OCR)</li>
<li>Face Detection</li>
<li>YOLO-Detection (object detection)</li>
<li>Open AI clip</li>
</ul>
</content>
<id>https://www.sixhat.net//2024/03-qualcomm-ai-hub.html</id>
<link href="https://www.sixhat.net//2024/03-qualcomm-ai-hub.html"/>
<title>Qualcomm AI HUB</title>
<updated>2024-06-08T22:36:38+01:00</updated>
<dc:date>2024-06-08T22:36:38+01:00</dc:date>
</entry>
<entry>
<content><h2 id="quem-não-lê-é-menos-livre">“Quem não lê é menos livre”</h2>
<blockquote>
<p>É que quem não lê, não fala e não escreve decentemente, é menos livre, mais facilmente manipulado, menos ecaz em coisa alguma importante, mais fácil de ser mandado e de não mandar nem em si próprio. <br />
—Pacheco Pereira no <a href="https://www.publico.pt/2024/03/09/opiniao/opiniao/ler-conta-liberdade-2083066?ref=sixhat.net">Público</a> em dia de reflexão.</p>
</blockquote>
<p>Ainda bem que há quem seja capaz de chamar as coisas pelos nomes.</p>
<p>E diz ainda</p>
<blockquote>
<p>(…) quem defende esta nova forma de ignorância agressiva e de deslumbramento tecnológico não são os novos ignorantes, mas os antigos ignorantes, a quem as redes sociais dão uma ilusão de igualdade e uma presunção de saber (…)</p>
</blockquote>
<p>o termo <code>ignorância agressiva</code> sintetiza claramente os tempos actuais.</p>
</content>
<id>https://www.sixhat.net//2024/03-quem-nao-le-e-menos-livre.html</id>
<link href="https://www.sixhat.net//2024/03-quem-nao-le-e-menos-livre.html"/>
<title>"Quem não lê é menos livre"</title>
<updated>2024-03-09T17:58:42+00:00</updated>
<dc:date>2024-03-09T17:58:42+00:00</dc:date>
</entry>
<entry>
<content><h2 id="refactoring-old-code-scares-me">Refactoring old code scares me.</h2>
<p>I’ve two legacy projects that I need to tackle soon (meaning 2024).</p>
<p>One is a Python 2.7 based code.<br />
It needs to move to python 3.x and along the way refactor some cumbersome aspects of the implementation. <br />
This is elder of the two legacy code bases (2012).</p>
<p>The other is not much younger (2014), but is in Java and while I’ll need this first, it is very scary to touch.<br />
The code base isn’t nice as in “engineering nice” and has parts that were coded by a 1970s C programmer.</p>
<p>It will really hurt my eyes to go trough this code. <br />
Are there any automated tools that help one do this? <br />
Can copilot help?<br />
I’ll learn the hard way.</p>
</content>
<id>https://www.sixhat.net//2024/03-refactoring-old-code-scares-me.html</id>
<link href="https://www.sixhat.net//2024/03-refactoring-old-code-scares-me.html"/>
<title>Refactoring old code scares me.</title>
<updated>2024-03-14T13:32:19+00:00</updated>
<dc:date>2024-03-14T13:32:19+00:00</dc:date>
</entry>
<entry>
<content><h2 id="making-checklists-and-ai">Making checklists and AI</h2>
<p><em>(a developing thought)</em></p>
<p>I’m reading <a href="https://www.amazon.com/Power-Prediction-Disruptive-Artificial-Intelligence/dp/1647824192">Power and Prediction</a> and at a certain point the authors confront rule based systems with AI as if one is bad/old/démodé and the other is better. You can easily guess which is which. One example provided is the use of checklists. The authors argue that, eventually, AI could replace checklist, but forget that a checklist is made, read and executed by humans, and this process adds value to that person in the form of knowledge about the system. As a process with a required effort, it allows for a reflexive subprocess where the person goes through items and assigns a cognitive load to each task. If AI merely transforms the process in a guidance mechanism that at any given point feeds the user a task to process, then the AI system, although giving the illusion of productivity enhancer is in fact forcing a bigger loss. That loss is the value of persons free will in the decision process. If AI is just a one item checklist generator then AI aim will be to replace the human entirely as soon as the task is accomplished by a companion roboticised system.</p>
</content>
<id>https://www.sixhat.net//2024/04-making-checklists-and-ai.html</id>
<link href="https://www.sixhat.net//2024/04-making-checklists-and-ai.html"/>
<title>Making checklists and AI</title>
<updated>2024-04-06T19:40:02+01:00</updated>
<dc:date>2024-04-06T19:40:02+01:00</dc:date>
</entry>
<entry>
<content><h2 id="teaching-physical-computing-notes">Teaching Physical Computing Notes</h2>
<p>Students mostly find it difficult to understand the electronics of the setups.</p>
<blockquote>
<p>The wiring, we can’t understand the wiring.</p>
</blockquote>
<p>The other thing they usually complain about is the syntax of coding in C.<br />
These are Design students that find mathematics and logic very hard, and have close to zero experience with programming.<br />
Semicolons are a nightmare.<br />
Matching brackets is a mystery.</p>
<p>How can one teach them in a way that eliminate these problems?</p>
<ul>
<li>About the C syntax problem, maybe using <a href="https://circuitpython.org/">CircuitPython</a> could solve this and also the solve the cycle code-compile-debug-repeat. But this would not work with Uno R3 based on ATmega chips.</li>
<li>Use the Firmata / Pyfirmata combo. This doesn’t produce independent devices as they will be tethered to a computer.</li>
<li>On the wiring confusing that are their setups, the only easy way to teach them is to move to a groove modules based teaching. This would simplify the connections avoiding mistakes and some of their shortcomings.</li>
<li>Use XOD (visual programming ala Pd.)</li>
<li>Use Snap4Arduino (a Scratch type language)</li>
</ul>
<p>Do you have any experience with this? Hit me on <a href="https://datasci.social/@sixhat">discord if you do</a>.</p>
</content>
<id>https://www.sixhat.net//2024/04-teching-physical-computing-notes.html</id>
<link href="https://www.sixhat.net//2024/04-teching-physical-computing-notes.html"/>
<title>Teaching Physical Computing Notes</title>
<updated>2024-04-20T09:32:06+01:00</updated>
<dc:date>2024-04-20T09:32:06+01:00</dc:date>
</entry>
<entry>
<content><h1 id="and-google-has-video-too">And Google has video too.</h1>
<p>One day after GPT4o (that I still didn’t manage to try, c’mon OpenAI) Google came with a bunch of its own models:</p>
<p>— Veo is their Text 2 Video AI model, and…. not available outside the US. Many aren’t. I could use a VPN, but why bother.</p>
<p>— And Google is also building on top of Gemini with lighter products, <a href="https://www.theverge.com/2024/5/14/24155382/google-gemini-ai-chrome-nano-io?ref=sixhat.net">Nano</a>? Flash?</p>
<p>— And integrating AI directly in their android gmail. Can we still have anything non-AI?</p>
<p>— Search? Pagerank? Something of a footnote. AI will be the future, <a href="https://www.theverge.com/2024/5/14/24155321/google-search-ai-results-page-gemini-overview?ref=sixhat.net">says big G!</a>.</p>
<p>From this round of announcements it is becoming clear that we are entering an age of diminishing returns on the top models and companies are starting to search for side products to capitalize on.</p>
</content>
<id>https://www.sixhat.net//2024/05-and-google-has-video-too.html</id>
<link href="https://www.sixhat.net//2024/05-and-google-has-video-too.html"/>
<title>And Google has video too.</title>
<updated>2024-05-14T21:43:14+01:00</updated>
<dc:date>2024-05-14T21:43:14+01:00</dc:date>
</entry>
<entry>
<content><h1 id="gpt-4o---what-an-awful-personality">GPT-4o - What an awful personality</h1>
<p>OpenAI just launched GPT-4o, a multimodal model capable of reasoning about text, voice and video in real time.</p>
<p>The demo videos are really impressive about the reasoning, but one has to be be really scared about the personality of the ‘persona’ in the machine.</p>
<p>It is really over-positively-enthusiastic about everything and about drying paint. It is the hyperactive overly eager friend that tries so hard to please that it becomes completely obnoxious. And it is chatty, trying to convey emotion to every answer, to every interaction. What a pain to interact with.</p>
<p>The researchers from Open AI where obviously enamoured with their creation in the videos, but the ‘persona’ they created is nothing more than a Frankenstein striving to much to become human.</p>
<p>Someone had to choose that style for the persona—I don’t want to start thinking that this personality is a byproduct of the training data. The latter would be very unsettling.</p>
</content>
<id>https://www.sixhat.net//2024/05-chatgpt4o.html</id>
<link href="https://www.sixhat.net//2024/05-chatgpt4o.html"/>
<title>GPT-4o - What an awful personality</title>
<updated>2024-05-13T22:02:19+01:00</updated>
<dc:date>2024-05-13T22:02:19+01:00</dc:date>
</entry>
<entry>
<content><h2 id="julian-assange-is-free">Julian Assange is free</h2>
<p>After five years (although is first arrest was in 14 years ago) incarcerated, it seems that this stalemate is no more. Wikileaks released information that Julian Assange was freed and is heading to Australia. He will accept a guilty verdict for espionage and will return home.</p>
<p>– <a href="https://www.theguardian.com/media/article/2024/jun/25/julian-assange-plea-deal-with-us-free-to-return-australia?ref=sixhat.net">The Guardian</a></p>
</content>
<id>https://www.sixhat.net//2024/06-25-assange-is-free.html</id>
<link href="https://www.sixhat.net//2024/06-25-assange-is-free.html"/>
<title>Julian Assange is free</title>
<updated>2024-06-25T07:41:08+01:00</updated>
<dc:date>2024-06-25T07:41:08+01:00</dc:date>
</entry>
<entry>
<content><h3 id="ai-aesthetics">AI aesthetics</h3>
<p>The latest Apple Developer Conference invitation succumbed to the Neon AI Aesthetic. Neon is everywhere, we cannot really get rid of it, and my eyes are hurting. Generative AI so median quality. So average. Yes with lot’s of work into being that, just that, always that. There’s no sense of beauty in what generative AI produces.</p>
</content>
<id>https://www.sixhat.net//2024/06-ai-aesthetics.html</id>
<link href="https://www.sixhat.net//2024/06-ai-aesthetics.html"/>
<title>AI aesthetics</title>
<updated>2024-06-08T23:02:40+01:00</updated>
<dc:date>2024-06-08T23:02:40+01:00</dc:date>
</entry>
<entry>
<content><h2 id="editors-editors">Editors, editors</h2>
<p>This is a simple memory consumption test I made earlier today. These are the results in my machine while opening a small markdown file. Don’t take this in any other direction.</p>
<ul>
<li>ed - 1,281 KB</li>
<li>nano - 2,171 KB</li>
<li>vim - 4,305 KB</li>
<li>joe - 6,449 KB</li>
<li>hx - 8,066 KB</li>
<li>amp - 10 MB</li>
<li>neovim - 17 MB</li>
<li>zed - 179 MB</li>
<li>vscode - 60 MB + 8 Code Helpers at 60 MB each.</li>
</ul>
<p>(It is clear how modern crap is exponentially more hungry for resources, while old stuff still works fine for the same tasks.)</p>
<p>A favorite you ask? All of them.</p>
</content>
<id>https://www.sixhat.net//2024/06-editors-editors.html</id>
<link href="https://www.sixhat.net//2024/06-editors-editors.html"/>
<title>Editors, editors</title>
<updated>2024-06-29T23:41:05+01:00</updated>
<dc:date>2024-06-29T23:41:05+01:00</dc:date>
</entry>
<entry>
<content><h1 id="on-rags---retrieval-augmented-generation">On Rags - Retrieval Augmented Generation</h1>
<p>A few links about Retrieval Augmented Generation:</p>
<p>— <a href="https://arxiv.org/abs/2005.11401?ref=sixhat.net">Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks</a></p>
<p>— <a href="https://r2r-docs.sciphi.ai/introduction?ref=sixhat.net">R2R - Open source RAG engine</a></p>
</content>
<id>https://www.sixhat.net//2024/06-on-rags-retrieval-augmented-generation.html</id>
<link href="https://www.sixhat.net//2024/06-on-rags-retrieval-augmented-generation.html"/>
<title>On Rags - Retrieval Augmented Generation</title>
<updated>2024-06-26T16:13:58+01:00</updated>
<dc:date>2024-06-26T16:13:58+01:00</dc:date>
</entry>
<entry>
<content><h3 id="random-number-generator-anyone">Random number generator, anyone</h3>
<p>Nice trick from <a href="https://codeandbitters.com/main-as-usize/?ref=sixhat.net">codeandbitters</a>:</p>
<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">(){</span>
<span class="k">let</span> <span class="n">rand</span> <span class="o">=</span> <span class="n">main</span> <span class="k">as</span> <span class="nb">usize</span><span class="p">;</span>
<span class="nd">dbg!</span><span class="p">(</span><span class="n">rand</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
</content>
<id>https://www.sixhat.net//2024/06-random-number-generator-anyone.html</id>
<link href="https://www.sixhat.net//2024/06-random-number-generator-anyone.html"/>
<title>Random number generator, anyone</title>
<updated>2024-06-08T23:01:18+01:00</updated>
<dc:date>2024-06-08T23:01:18+01:00</dc:date>
</entry>
<entry>
<content><h3 id="some-games-i-like-to-be-updated">Some games I like (to be updated)</h3>
<p>This can be played on a Go Board - <a href="https://www.puzzle-binairo.com/">Binario</a></p>
<p>This a much more visual sudoku puzzle - <a href="https://www.puzzle-nonograms.com/">Nonograms</a></p>
</content>
<id>https://www.sixhat.net//2024/06-some-games-i-like.html</id>
<link href="https://www.sixhat.net//2024/06-some-games-i-like.html"/>
<title>Some games I like (to be updated)</title>
<updated>2024-06-10T10:05:28+01:00</updated>
<dc:date>2024-06-10T10:05:28+01:00</dc:date>
</entry>
<entry>
<content><h3 id="adding-something-between-the-lines">Adding something between the lines</h3>
<p>I’ve been fascinated with Japanese <a href="https://en.wikipedia.org/wiki/Furigana?ref=sixhat.net">furigana</a>. It is a writing system that runs parallel to other kanjis, whose function is mainly to clarify their pronunciation but, in some cases gives sentences another reading dimension that is not existent in other languages. <br />
I was wondering why western languages don’t have anything similar. <br />
The closest think would be annotations in between the written lines, but nowadays with computers that is even more difficult—with typewriters you could half-step the line feed and write those notes—and so this kind of in between the writing seems restricted to pen and paper. Or is it? Although there’s no modern text editor that allows for it, <span class="furigana">that I’m aware of,</span>in CSS we can simulate it with the following class:</p>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.furigana</span> <span class="p">{</span>
<span class="nl">position</span><span class="p">:</span> <span class="nb">absolute</span><span class="p">;</span>
<span class="nl">font-size</span><span class="p">:</span> <span class="n">small</span><span class="p">;</span>
<span class="nl">transform</span><span class="p">:</span> <span class="n">translate</span><span class="p">(</span><span class="m">-1rem</span> <span class="m">-0.6rem</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<style>
.furigana {
position: absolute;
font-size: small;
transform: translate(-1rem, -0.6rem);
}
</style>
</content>
<id>https://www.sixhat.net//2024/06-something-between-the-lines.html</id>
<link href="https://www.sixhat.net//2024/06-something-between-the-lines.html"/>
<title>Adding something between the lines</title>
<updated>2024-06-12T11:52:37+01:00</updated>
<dc:date>2024-06-12T11:52:37+01:00</dc:date>
</entry>
<entry>
<content><h2 id="darwin-machines-must-read">Darwin Machines [must read]</h2>
<p>Cale Smith writes about <a href="https://vedgie.net/writing/darwin_machines.md?ref=sixhat.net">Darwin Machines</a> and their potential to harbour explanations for intelligence.</p>
<blockquote>
<p>If modern ML explains intelligence with layers, the theory of a Darwin Machine explains evolution with columns.</p>
</blockquote>
</content>
<id>https://www.sixhat.net//2024/07-darwin-machines-brain-intelligence.html</id>
<link href="https://www.sixhat.net//2024/07-darwin-machines-brain-intelligence.html"/>
<title>Darwin Machines [must read]</title>
<updated>2024-07-17T10:05:08+01:00</updated>
<dc:date>2024-07-17T10:05:08+01:00</dc:date>
</entry>
<entry>
<content><h2 id="ex-open-ai-researcher-launches-ai-platform-for-education">ex-Open AI researcher launches AI platform for education</h2>
<p>In the world of education ex-Open AI Andrej Karpathy is launching a new company–Eureka Labs–aimed at providing <em>AI Native</em> education.</p>
<p>Mainly the project aims to create AI assistants that will guide students through a human created curriculum.</p>
<blockquote>
<p>How can we approach an ideal experience for learning something new? For example, in the case of physics one could imagine working through very high quality course materials together with Feynman, who is there to guide you every step of the way. Unfortunately, subject matter experts who are deeply passionate, great at teaching, infinitely patient and fluent in all of the world’s languages are also very scarce and cannot personally tutor all 8 billion of us on demand.</p>
</blockquote>
<p>via <a href="https://arstechnica.com/information-technology/2024/07/former-openai-researchers-new-company-will-teach-you-how-to-build-an-llm/?ref=sixhat.net">arstechnica</a></p>
</content>
<id>https://www.sixhat.net//2024/07-eureka-labs-ai-education.html</id>
<link href="https://www.sixhat.net//2024/07-eureka-labs-ai-education.html"/>
<title>ex-Open AI researcher launches AI platform for education</title>
<updated>2024-07-17T10:04:07+01:00</updated>
<dc:date>2024-07-17T10:04:07+01:00</dc:date>
</entry>
<entry>
<content><h1 id="you-are-not-a-parrot-and-other-ai-stories">You are not a Parrot, and other AI stories</h1>
<p><a href="https://nymag.com/intelligencer/article/ai-artificial-intelligence-chatbots-emily-m-bender.html?ref=sixhat.net">You are not a Parrot, and a chatbot is not a human</a>, is a very interesting in the sense of accounting for the words one says.<br />
AI doesn’t have that because the words for an LLM mean nothing.<br />
They have no referents that will ground them and thus enforce some kind of moral behaviour.</p>
<p><a href="https://werd.io/2024/stripping-the-web-of-its-humanity?ref=sixhat.net">Stripping the web of its humanity</a> is another opinion on how humans are mistreated by AI tools based on LLMs. <br />
AI products are spitting out LLM generated content from user prompts as factual, where most of the time it is not. <br />
In some situations this might be funny, but often it is not. <br />
The lack of attribution (or its demoting to a footer) makes LLMs a potential case of plagiarism, and a bad one at points.</p>
</content>
<id>https://www.sixhat.net//2024/07-you-are-not-a-parrot-and-other-ai-stories.html</id>
<link href="https://www.sixhat.net//2024/07-you-are-not-a-parrot-and-other-ai-stories.html"/>
<title>You are not a Parrot, and other AI stories</title>
<updated>2024-07-05T10:10:50+01:00</updated>
<dc:date>2024-07-05T10:10:50+01:00</dc:date>
</entry>
<entry>
<content><h2 id="reading-texts-on-paper-beats-reading-texts-on-a-computer-screen">Reading texts on paper beats reading texts on a computer screen.</h2>
<blockquote>
<p>The results of this study indicate that reading linear narrative and expository texts on a computer screen leads to poorer reading comprehension than reading the same texts on paper. These results have several pedagogical implications.</p>
</blockquote>
<p>in <a href="http://clikmedia.ca/LMM/sites/default/files/pdf/mangen_2012_lecture_sur_ecran_lecture_papier_comprehension.pdf">Mangen, A., Walgermo, B. R., &amp; Brønnick, K. (2013). Reading linear texts on paper versus computer screen: Effects on reading comprehension. <em>International journal of educational research</em>, <em>58</em>, 61-68.</a></p>
</content>
<id>https://www.sixhat.net//2024/09-reading-text-on-paper-beats-reading-on-computer-screens.html</id>
<link href="https://www.sixhat.net//2024/09-reading-text-on-paper-beats-reading-on-computer-screens.html"/>
<title>Reading texts on paper beats reading texts on a computer screen.</title>
<updated>2024-09-28T10:49:15+01:00</updated>
<dc:date>2024-09-28T10:49:15+01:00</dc:date>
</entry>
<entry>
<content><h1 id="apple-buys-pixelmator">Apple buys Pixelmator</h1>
<p>I was big a fan of Pixelmator when they were just starting out. A simple Photoshop replacement, without being a mammoth of a download. Unfortunately the software never really took off. It worked (almost always, emphasis on ‘almost’). This was to be the photo editor with advanced features without the fat of PS. Never really got there.</p>
<p>Eventually I moved on and went with <a href="https://krita.org/en/">Krita</a>, an open-source bitmap editor that fulfills the same role as Pixelmator (and eventually does it better, some might argue)</p>
<p>This week Apple bought Pixelmator. The question is for what? What is Apple going to do do with it? Absorve the technologies into iCloud Photos? Launch a new bitmap editor of its own that is a rebranded and improved version of Pixelmator. Keep Pixelmator for a couple of years until it gets the axe? I don’t know but my feeling is that Pixelmator is going the end up like Atom when Microsoft bought it to include some of its tech in VSCode and then effectively killed it.</p>
</content>
<id>https://www.sixhat.net//2024/11-apple-buys-pixelmator.html</id>
<link href="https://www.sixhat.net//2024/11-apple-buys-pixelmator.html"/>
<title>Apple buys Pixelmator</title>
<updated>2024-11-02T11:55:52+00:00</updated>
<dc:date>2024-11-02T11:55:52+00:00</dc:date>
</entry>
<entry>
<content><h1 id="autopoietic-networks">Autopoietic Networks</h1>
<ul>
<li><a href="https://gbragafibra.github.io/2024/10/08/autopoietic_nets.html">Autopoietic Networks</a>, to read with a little bit more focused when I have the time. Autopoiesis is a very interesting topic that leads to many research directions, but mainly concerns “how a system can build and maintain itself”. There’s been many models and I’m always fascinated by these toy models as they allow the exploration of the foundations of systems.</li>
</ul>
</content>
<id>https://www.sixhat.net//2024/11-autopoietic-networks.html</id>
<link href="https://www.sixhat.net//2024/11-autopoietic-networks.html"/>
<title>Autopoietic Networks</title>
<updated>2024-11-21T22:57:59+00:00</updated>
<dc:date>2024-11-21T22:57:59+00:00</dc:date>
</entry>
<entry>
<content><h1 id="beamer-slides-with-markdown-and-pandoc">Beamer slides with markdown and pandoc</h1>
<p>When it comes to producing quality prints nothing compares to Latex and I use it extensively throughout my working needs. In recent years I’ve moved from the full Latex syntax to the <strong>quick and dirty</strong> markdown for my source files. At least for my initial drafts. Then I convert either to TEX or directly to the final PDF format with pandoc<sup id="fnref:pandoc"><a href="#fn:pandoc" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>.</p>
<p>Pandoc is a swiss-army knife for the conversion between different document formats. It is capable of handling more formats than those one can imagine (or need). Also, it has very sensible defaults in terms of templates. It gives you full control over them if you need so. There are a ton of advanced features. Usually converting something is just a matter of issuing the command.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pandoc <span class="nt">-o</span> output.html intupt.txt
</code></pre></div></div>
<p>For producing slides I have used marp<sup id="fnref:marp"><a href="#fn:marp" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> for most of my markdown to pdf conversions in the past, but its dependency on node makes it a bit brittle and forces me into repair mode every now and then.</p>
<p>Therefore, I have a pandoc pipeline that produces great slides and usually doesn’t require much maintenance. Also, pandoc allows for extra functionality that you don’t get with marp, like automatic tocs, sectioning and bibliographies.</p>
<p>I usually use something like this command to produce my slides.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pandoc <span class="nt">-t</span> beamer <span class="nt">-f</span> markdown <span class="nt">-o</span> output.pdf <span class="nt">--pdf-engine</span> xelatex <span class="nt">--highlight-style</span> tango input.md
</code></pre></div></div>
<p>Note that I usually use xelatex (or sometimes luatex) mainly to support UTF8 in input files directly.</p>
<p>I usually have this command in a script file that makes it quicker to run on any markdown file I need.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="nb">set</span> <span class="nt">-e</span>
<span class="k">for </span>fich<span class="p">;</span> <span class="k">do</span> :<span class="p">;</span> <span class="k">done
</span><span class="nb">set</span> <span class="nt">-x</span>
pandoc <span class="nt">-t</span> beamer <span class="nt">-f</span> markdown+implicit_figures <span class="nt">-o</span> <span class="s2">"</span><span class="nv">$fich</span><span class="s2">"</span>.pdf <span class="nt">--pdf-engine</span> xelatex <span class="nt">--highlight-style</span> tango <span class="nv">$*</span>
open <span class="s2">"</span><span class="nv">$fich</span><span class="s2">"</span>.pdf
</code></pre></div></div>
<p>Note that this uses a loop to get the last element of a input string into the variable <code>$fich</code> and then passes the list of inputs to the pandoc command with <code>$*</code>. This allows me to pass additional pandoc settings for a particular rendering, for example changing paper size, or styling.</p>
<p>Finally one last thing usually want when editing my slides is to rerun this script everytime I press save. For this I use entr<sup id="fnref:entr"><a href="#fn:entr" class="footnote" rel="footnote" role="doc-noteref">3</a></sup> with the following command (md2beamer.sh is the script name):</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls </span>input.md | entr <span class="nt">-r</span> md2beamer.sh input.md
</code></pre></div></div>
<p>That’s it. Simple MD to Beamer slides without complications. Sytling and colorthemes (among other things like titles, authors and institution) can be controlled by the options in the markdown yaml header.</p>
<h3 id="references">References</h3>
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:pandoc">
<p>Pandoc <a href="https://pandoc.org/">https://pandoc.org/</a> <a href="#fnref:pandoc" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
<li id="fn:marp">
<p>Marp <a href="https://github.com/marp-team/marp-cli">https://github.com/marp-team/marp-cli</a> <a href="#fnref:marp" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
<li id="fn:entr">
<p>Entr <a href="https://github.com/eradman/entr">https://github.com/eradman/entr</a> <a href="#fnref:entr" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
</li>
</ol>
</div>
</content>
<id>https://www.sixhat.net//2024/11-beamer-slides-with-markdown-and-pandoc.html</id>
<link href="https://www.sixhat.net//2024/11-beamer-slides-with-markdown-and-pandoc.html"/>
<title>Beamer slides with markdown and pandoc</title>
<updated>2024-11-12T14:13:00+00:00</updated>
<dc:date>2024-11-12T14:13:00+00:00</dc:date>
</entry>
<entry>
<content><h1 id="htmx-resources-and-ecosystem">HTMX resources and ecosystem</h1>
<ul>
<li><a href="https://htmx.org/">https://htmx.org/</a>, well… the main website for HTMX</li>
<li><a href="https://hypermedia.systems/">https://hypermedia.systems/</a>, The book on “<em>a simpler approach to building web applications on the web and beyond with HTMX and Hyperview</em>”</li>
<li><a href="https://hyperview.org/">https://hyperview.org/</a>, mobile apps? got it.</li>
<li><a href="https://david.guillot.me/en/posts/tech/following-up-mother-of-all-htmx-demos/">Following up “Mother of all htmx demos”</a></li>
<li><a href="https://hyperscript.org/">https://hyperscript.org/</a></li>
</ul>
</content>
<id>https://www.sixhat.net//2024/11-htmx-resources.html</id>
<link href="https://www.sixhat.net//2024/11-htmx-resources.html"/>
<title>HTMX resources and ecosystem</title>
<updated>2024-11-09T18:44:56+00:00</updated>
<dc:date>2024-11-09T18:44:56+00:00</dc:date>
</entry>
<entry>
<content><h1 id="my-spelling-config-in-vimrc">My spelling config in .vimrc</h1>
<p>I jump between English and Portuguese in my writings and it is nice to have a spellchecker working to catch typos. In vim, I just have the following three lines in <strong>.vimrc</strong> mapping F10 (disable), F11 (Portuguese) and F12 (English) for the local buffer. I don’t use a global setting with <code>:set</code> because coding doesn’t need the spelling turned on. My <em>Leader</em> key is <em>Space</em>.</p>
<pre><code>nmap &lt;Leader&gt;&lt;F12&gt; &lt;Esc&gt;:setlocal spell spelllang=en_gb&lt;CR&gt;
nmap &lt;Leader&gt;&lt;F11&gt; &lt;Esc&gt;:setlocal spell spelllang=pt_pt&lt;CR&gt;
nmap &lt;Leader&gt;&lt;F10&gt; &lt;Esc&gt;:setlocal nospell&lt;CR&gt;
</code></pre>
</content>
<id>https://www.sixhat.net//2024/11-my-spelling-config-in-vimrc.html</id>
<link href="https://www.sixhat.net//2024/11-my-spelling-config-in-vimrc.html"/>
<title>My spelling config in .vimrc</title>
<updated>2024-11-19T12:40:51+00:00</updated>
<dc:date>2024-11-19T12:40:51+00:00</dc:date>
</entry>
<entry>
<content><h1 id="working-on-a-blog-generator-in-bash">Working on a blog generator in bash</h1>
<p>I’ve been working on a blog generator in bash. I’ve meant to do it before, but<br />
work has been overwhelming. It is named BLiG, for now.</p>
<p>The main features I want are:</p>
<ul>
<li>simple bash script</li>
<li>simple structure</li>
<li>markdown</li>
<li>separate writing and editing from rendering allowing anyone to integrate<br />
their own generator (just edit the “render” function to suit your needs)</li>
</ul>
<p>The principle is that any folder can be a blog. The only requirement is<br />
that posts are organized in an yearly folder inside a <strong>src</strong> folder (eg<br />
<code>src/2024/some-title.md</code>). The output will depend on the software used for<br />
the static generation. In my case I use<br />
<a href="https://rust-lang.github.io/mdBook/">mdbook</a>, so my render function just has<br />
<code>mdbook build</code> and <code>mdbook serve</code> commands.</p>
<p>It is still very alpha but if you want to try it out please <a href="https://github.com/sixhat/swipe/tree/master/bash/blig">check it out</a></p>
</content>
<id>https://www.sixhat.net//2024/11-working-on-a-blog-generator-in-bash.html</id>
<link href="https://www.sixhat.net//2024/11-working-on-a-blog-generator-in-bash.html"/>
<title>Working on a blog generator in bash</title>
<updated>2024-11-02T11:54:39+00:00</updated>
<dc:date>2024-11-02T11:54:39+00:00</dc:date>
</entry>
<entry>
<content><h1 id="2024-advent-of-code-in-perl">2024 Advent Of Code in Perl</h1>
<p>The title says it all. I’ve never programmed in Perl. I hacked some existing scripts, but never tried this oldie. But as it is a great language for text processing, it was time to start learning it. Maybe it will come handy some time in the future.</p>
<p>My repo is at <a href="https://github.com/sixhat/adventofcode.com/tree/main/2024/">https://github.com/sixhat/adventofcode.com/tree/main/2024/</a></p>
<h2 id="notes-on-using-perl-for-aoc">Notes on using Perl for AoC</h2>
<p>(or… things I’m learning along the way)</p>
<ul>
<li><code>unless</code> is interesting, but I have to get my head around it. But it works.</li>
<li>$@% ? What? I have a lot to learn on the syntax front of Perl.</li>
<li><code>use strict;</code> and <code>use warnings;</code> are your friend</li>
<li>Pass by value and pass by reference are dependent on a lexical variable being created on the subroutine <code>my @local_var = @_</code>.</li>
<li>Regular Expressions are powerful, but they also introduce some complexity and trying to debug them is harder.</li>
<li><code>Use of uninitialized value</code> warnings reveals some <code>undef</code> entries in an array (for example in my <code>@matches</code>). Trick to check them out is to <code>print join(', ', @matches)</code> to double check.</li>
<li><a href="https://perldoc.perl.org/perlop#Smartmatch-Operator">smartmatch</a> is really nice (day 5).</li>
<li>Install a repl - <a href="https://metacpan.org/pod/Reply">Reply</a> - or any other. It makes testing simple things in the language a breeze.</li>
</ul>
</content>
<id>https://www.sixhat.net//2024/12-2024-advent-of-code-in-perl.html</id>
<link href="https://www.sixhat.net//2024/12-2024-advent-of-code-in-perl.html"/>
<title>2024 Advent Of Code in Perl</title>
<updated>2024-12-09T16:19:16+00:00</updated>
<dc:date>2024-12-09T16:19:16+00:00</dc:date>
</entry>
<entry>
<content><h1 id="a-simple-zsh-prompt">A simple ZSH PROMPT</h1>
<p>Just put this in your .zshrc file</p>
<p><code>export PROMPT='%F{red}./%1~%f %# '</code></p>
</content>
<id>https://www.sixhat.net//2024/12-a-simple-zsh-prompt.html</id>
<link href="https://www.sixhat.net//2024/12-a-simple-zsh-prompt.html"/>
<title>A simple ZSH PROMPT</title>
<updated>2024-12-15T16:12:09+00:00</updated>
<dc:date>2024-12-15T16:12:09+00:00</dc:date>
</entry>
<entry>
<content><h1 id="creativity-and-ai-reading-list">Creativity and AI, reading list</h1>
<ul>
<li><a href="https://arxiv.org/abs/2410.17218">Creativity in AI: Progresses and Challenges</a></li>
<li><a href="https://arxiv.org/abs/2010.07126">Explaining Creative Artifacts</a></li>
<li><a href="https://arxiv.org/abs/2008.05959">Creativity in the era of artificial intelligence</a></li>
<li><a href="https://arxiv.org/abs/1904.12194">Towards Automation of Creativity: A Machine Intelligence Approach</a></li>
<li><a href="https://arxiv.org/abs/1410.0281">Modeling Creativity: Case Studies in Python</a></li>
<li><a href="https://arxiv.org/abs/1506.00711">Quantifying Creativity in Art Networks</a></li>
<li><a href="https://arxiv.org/abs/2401.01623">Can AI Be as Creative as Humans?</a></li>
<li><a href="https://arxiv.org/abs/2412.04366">Artificial intelligence and the internal processes of creativity</a></li>
<li><a href="https://arxiv.org/abs/2306.01795">AI and the creative realm: A short review of current and future applications</a></li>
<li><a href="https://arxiv.org/abs/2307.10751">Exploring Perspectives on the Impact of Artificial Intelligence on the Creativity of Knowledge Work: Beyond Mechanised Plagiarism and Stochastic Parrots</a></li>
<li><a href="https://arxiv.org/abs/2411.10448">Goetterfunke: Creativity in Machinae Sapiens. About the Qualitative Shift in Generative AI with a Focus on Text-To-Image</a></li>
<li><a href="https://arxiv.org/abs/2501.04064">Examining Popular Arguments Against AI Existential Risk: A Philosophical Analysis</a></li>
</ul>
</content>
<id>https://www.sixhat.net//2024/12-creativity-and-ai,-reading-list.html</id>
<link href="https://www.sixhat.net//2024/12-creativity-and-ai,-reading-list.html"/>
<title>Creativity and AI, reading list</title>
<updated>2025-01-09T18:29:40+00:00</updated>
<dc:date>2025-01-09T18:29:40+00:00</dc:date>
</entry>
<entry>
<content><h2 id="array-based-languages">array based languages</h2>
<p>recently i came across <a href="https://www.uiua.org/?ref=sixhat.net">uiua</a>, a rust based <em>array-oriented language</em> that i fell in love immediately because of the aesthetics of the code.<br />
see the following online pad:</p>
<html><iframe frameborder="0" width="100%" height="740px" src="https://www.uiua.org/pad?src=0_7_1__IyBTdW0gdGhlIG51bWJlcnMgYmlnZ2VyIHRoYW4gNTAgCiMgaW4gdGhlIHJhbmdlIFswLDEwMCkKLyvDlz41MC7ih6ExMDAK"></iframe></html>
<p>it computes the sum of the numbers in the range <code>[0,100)</code> that are greater than 50.<br />
although at first it looks a bit confusing, the use of unicode symbols makes is very pretty, in my eyes.</p>
<p>this is very different from <a href="https://www.jsoftware.com/?ref=sixhat.net">j</a>, that only uses ascii characters and makes reading the code a bit harder—just my opinion.<br />
this doesn’t take merit from j, which has many features and is more mature, but aesthetics count.</p>
<p>code in <code>uiua</code>` reads left to right (ltr) and operators are to the left of their operands, making it resemble lisp like prefix notation.<br />
but it executes things in right to left (rtl).<br />
the authors even have a <a href="https://www.uiua.org/docs/rtl?ref=sixhat.net">faq entry about rtl</a>.</p>
<p>i’m not an expert in these kinds of languages, but i’m going to look more into them during 2024.<br />
i’m tired of imperative programming languages and want to expand into different territories.</p>
<p>i’m considering being drastic about it.<br />
force myself to write everything i need during 2024 in any of the following:</p>
<ul>
<li>lisp style lang (common lisp, scheme, racket, clojure, …) – yes, i don’t mind the parenthesis.</li>
<li>array based languages (uiua, j, bqn, …)</li>
</ul>
<p>and if something fails me i’ll use my loved python, but only in despair.</p>
</content>
<id>https://www.sixhat.net//2024/array-based-languages.html</id>
<link href="https://www.sixhat.net//2024/array-based-languages.html"/>
<title>array based languages</title>
<updated>2024-03-09T16:15:10+00:00</updated>
<dc:date>2024-03-09T16:15:10+00:00</dc:date>
</entry>
<entry>
<content><h2 id="styles-for-clean-bw-slides-in-marp">styles for clean bw slides in marp</h2>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;style&gt;</span>
<span class="o">*</span> <span class="p">{</span>
<span class="nl">color</span><span class="p">:</span> <span class="no">black</span><span class="cp">!important</span><span class="p">;</span>
<span class="nl">font-family</span><span class="p">:</span> <span class="s1">"ibm plex serif"</span><span class="p">,</span> <span class="nb">serif</span><span class="p">;</span>
<span class="nl">background</span><span class="p">:</span> <span class="no">white</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">pre</span> <span class="p">{</span>
<span class="nl">border</span><span class="p">:</span> <span class="m">2px</span> <span class="nb">solid</span><span class="p">;</span>
<span class="nl">background</span><span class="p">:</span> <span class="no">white</span><span class="p">;</span>
<span class="nl">border-radius</span><span class="p">:</span> <span class="m">0.3rem</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">blockquote</span> <span class="p">{</span>
<span class="nl">border</span><span class="p">:</span> <span class="m">2px</span> <span class="nb">dashed</span><span class="p">;</span>
<span class="nl">margin</span><span class="p">:</span> <span class="m">0</span> <span class="m">3em</span><span class="p">;</span>
<span class="nl">padding</span><span class="p">:</span> <span class="m">0.3em</span> <span class="m">0.6em</span><span class="p">;</span>
<span class="nl">border-radius</span><span class="p">:</span> <span class="m">0.3rem</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">h1</span><span class="o">,</span> <span class="nt">h2</span><span class="o">,</span> <span class="nt">h3</span> <span class="p">{</span>
<span class="nl">margin-top</span><span class="p">:</span> <span class="m">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">section</span> <span class="p">{</span>
<span class="nl">justify-content</span><span class="p">:</span> <span class="n">flex-start</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">code</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span> <span class="no">white</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">ul</span> <span class="p">{</span>
<span class="nl">list-style-type</span><span class="p">:</span> <span class="s2">'⁍ '</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">section</span><span class="nc">.title</span> <span class="p">{</span>
<span class="nl">justify-content</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">section</span><span class="nc">.f-2</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">2em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.f-3</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">3em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.f-4</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">4em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.f-5</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">5em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.f-6</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">6em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.f-8</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">8em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.f-10</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">10em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.f-14</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">14em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.f-20</span> <span class="p">{</span><span class="nl">font-size</span><span class="p">:</span> <span class="m">20em</span><span class="p">;}</span>
<span class="nt">section</span><span class="nc">.center</span> <span class="p">{</span><span class="nl">text-align</span><span class="p">:</span> <span class="nb">center</span><span class="p">;}</span>
<span class="nt">&lt;/style&gt;</span>
</code></pre></div></div>
</content>
<id>https://www.sixhat.net//2024/styles-for-clean-bw-slides-in-marp.html</id>
<link href="https://www.sixhat.net//2024/styles-for-clean-bw-slides-in-marp.html"/>
<title>styles for clean bw slides in marp</title>
<updated>2024-01-20T11:01:15+00:00</updated>
<dc:date>2024-01-20T11:01:15+00:00</dc:date>
</entry>
<entry>
<content><h2 id="exporting-gmail-to-mbox-notes">Exporting gmail to mbox notes</h2>
<svg xmlns="http://www.w3.org/2000/svg" width="696.89" height="359.954"><g stroke-linecap="round"><path d="m8.37 88.328 218.35 4.59-3.35 188.2-215.77 5.15" fill="#ffec99" /><path d="M12.7 94.908c79.5 2.65 156.79-2.18 211.8-2.4m.16-5c-.43 72.72-1.43 140.8-.37 196.81m.01-.48c-54.34.86-111.8 2.24-217.34-.32m.96-1.37c6.56-75.93 6.96-148.28 4.96-189.82" stroke="#1e1e1e" stroke-width="4.5" fill="none" stroke-dasharray="1.5 10" /></g><text x="47.237" y="24.668" font-family="Excalifont, Xiaolai, Segoe UI Emoji" font-size="28" fill="#1e1e1e" text-anchor="middle" style="white-space:pre" dominant-baseline="alphabetic" transform="translate(69.375 170.02)">GMAIL</text><g stroke-linecap="round"><path d="m406.846 95.521 234.84-.75-4.4 185.81-229.7-3.48" fill="#a5d8ff" /><path d="M402.236 97.761c77.89 1.04 160.38 3.05 234.76.46m3.55-3.27c-4.38 71.15-8.18 138.75-4.87 184.38m2.81 2.49c-57.69 1.56-121.76-3.85-236.42-.83m-.45-1.67c-.91-46.69 3.47-91.21.57-180.44" stroke="#1e1e1e" stroke-width="4.5" fill="none" stroke-dasharray="1.5 10" /></g><text x="50.417" y="24.668" font-family="Excalifont, Xiaolai, Segoe UI Emoji" font-size="28" fill="#1e1e1e" text-anchor="middle" style="white-space:pre" dominant-baseline="alphabetic" transform="translate(471.023 153.023)">Offline </text><text x="50.417" y="59.668" font-family="Excalifont, Xiaolai, Segoe UI Emoji" font-size="28" fill="#1e1e1e" text-anchor="middle" style="white-space:pre" dominant-baseline="alphabetic" transform="translate(471.023 153.023)">MBOX</text><g stroke-linecap="round"><path d="M229.906 188.637c65.05.6 129.49 3.58 170.19-.35" stroke="#1e1e1e" stroke-width="4.5" fill="none" stroke-dasharray="1.5 10" /><path d="m401.446 188.567-15.44 5.57 1.37-11.32 13.86 3.91" fill="#1e1e1e" fill-rule="evenodd" /><path d="M399.956 188.897c-5.1 2.89-10.44 6.13-11.71 5.31m-1.03.54c-.79-1.53-1.4-4.82-.53-11.42m-1.62.18c2.89.31 8.88.22 15.83 4.66m-.8.12s0 0 0 0" stroke="#1e1e1e" stroke-width="4.5" fill="none" /></g><path d="M344.826 7.69c128.85-2.45 249.5-3.41 340.8 3.13m3.16-.07c-6.51 130.95-6.65 265.95-1.81 339.24m2.06-.47c-79.62 1.02-157.29.03-339.83 1.14m-4.33.69c-.37-81.76 2.85-159.16 3.68-343.3" stroke="#1e1e1e" stroke-width="4.5" fill="none" stroke-dasharray="1.5 10" stroke-linecap="round" /><text y="24.668" font-family="Excalifont, Xiaolai, Segoe UI Emoji" font-size="28" fill="#1e1e1e" style="white-space:pre" dominant-baseline="alphabetic" transform="translate(468.636 29.11)">Archive</text></svg>
<h3 id="the-task">The task</h3>
<p>clean old emails from gmail and regain some space.</p>
<h3 id="the-solution">The solution</h3>
<ol>
<li>Export mail with Google Takeout</li>
<li>Import mbox file into Mail / mutt / Thunderbird… or just archive it</li>
<li>use gmail <code>before:m/d/y</code> search option, select all, and delete.</li>
<li>Empty bin, trash, spam folders… voilá</li>
</ol>
<h3 id="the-problem">The problem</h3>
<p>Takeout exports all email, including that on spam and trash folders, and doesn’t export the tags/folders your email is sitting on.</p>
<h3 id="the-pre-google-takeout-task-i-need-to-remeber-next-year">The pre-google takeout task I need to remeber next year</h3>
<p>Empty the trash, spam and bin folders before doing the takeout thing (step 1).</p>
<h3 id="the-split-by-tags">The split by tags</h3>
<p>To get email organized into individual mbox files instead of having all in one big mbox file, use <a href="https://github.com/f00b4r0/gmail-mboxsplitter/tree/master">Gmail MBOX splitter</a></p>
</content>
<id>https://www.sixhat.net//2025/01-exporting-gmail-to-mbox-notes.html</id>
<link href="https://www.sixhat.net//2025/01-exporting-gmail-to-mbox-notes.html"/>
<title>Exporting gmail to mbox notes</title>
<updated>2025-01-26T12:47:06+00:00</updated>
<dc:date>2025-01-26T12:47:06+00:00</dc:date>
</entry>
<entry>
<content><h1 id="the-right-to-ai">The Right to AI</h1>
<p>by Rashid Mushkani, Hugo Berard, Allison Cohen, Shin Koeski</p>
<blockquote>
<p>This paper proposes a Right to AI, which asserts that individuals and communities should meaningfully participate in the development and governance of the AI systems that shape their lives. Motivated by the increasing deployment of AI in critical domains and inspired by Henri Lefebvre’s concept of the Right to the City, we reconceptualize AI as a societal infrastructure, rather than merely a product of expert design. In this paper, we critically evaluate how generative agents, large-scale data extraction, and diverse cultural values bring new complexities to AI oversight. The paper proposes that grassroots participatory methodologies can mitigate biased outcomes and enhance social responsiveness. It asserts that data is socially produced and should be managed and owned collectively. Drawing on Sherry Arnstein’s Ladder of Citizen Participation and analyzing nine case studies, the paper develops a four-tier model for the Right to AI that situates the current paradigm and envisions an aspirational future. It proposes recommendations for inclusive data ownership, transparent design processes, and stakeholder-driven oversight. We also discuss market-led and state-centric alternatives and argue that participatory approaches offer a better balance between technical efficiency and democratic legitimacy.</p>
</blockquote>
<p>in <a href="https://arxiv.org/abs/2501.17899">arxiv</a> - #longread</p>
</content>
<id>https://www.sixhat.net//2025/01-the-right-to-ai.html</id>
<link href="https://www.sixhat.net//2025/01-the-right-to-ai.html"/>
<title>The Right to AI</title>
<updated>2025-01-31T18:05:09+00:00</updated>
<dc:date>2025-01-31T18:05:09+00:00</dc:date>
</entry>
<entry>
<content><h1 id="video-utilities-link-dump">Video utilities link dump</h1>
<ul>
<li><a href="https://ffmpegbyexample.com/">ffmpeg by Example</a> a list of ffmpeg commands applied to concrete situations.</li>
</ul>
</content>
<id>https://www.sixhat.net//2025/01-video-utilities-link-dump.html</id>
<link href="https://www.sixhat.net//2025/01-video-utilities-link-dump.html"/>
<title>Video utilities link dump</title>
<updated>2025-01-15T10:39:16+00:00</updated>
<dc:date>2025-01-15T10:39:16+00:00</dc:date>
</entry>
<entry>
<content><h1 id="alan-turing-delilah-secret-voice-encryption">Alan Turing Delilah secret voice encryption</h1>
<blockquote>
<p>The previously unknown cache contains many sheets in Turing’s own handwriting, telling of his top-secret “Delilah” engineering project from 1943 to 1945. Delilah was Turing’s portable voice-encryption system, named after the biblical deceiver of men.</p>
</blockquote>
<p>It is amazing how Alan Turing contributed so much to the modern digital life and how so many years latter we still find documents that expand the work produced by Touring. As he worked for the secret services how many more things will one never know about his achievements?</p>
<p>in <a href="https://spectrum.ieee.org/alan-turings-delilah?ref=sixhat.net">https://spectrum.ieee.org/alan-turings-delilah?ref=sixhat.net</a></p>
</content>
<id>https://www.sixhat.net//2025/02-alan-turing-delilah-secret-voice-encryption.html</id>
<link href="https://www.sixhat.net//2025/02-alan-turing-delilah-secret-voice-encryption.html"/>
<title>Alan Turing Delilah secret voice encryption</title>
<updated>2025-02-04T22:14:52+00:00</updated>
<dc:date>2025-02-04T22:14:52+00:00</dc:date>
</entry>
<entry>
<content><h1 id="bond-brand-up-for-grabs">Bond brand up for grabs</h1>
<blockquote>
<p>“James Bond will not die on our watch,” the businessman challenging the ownership of the rights to 007’s name has said, claiming he is motivated by concerns about the future of the multibillion-pound global spy franchise.</p>
</blockquote>
<blockquote>
<p>– <a href="https://www.theguardian.com/film/2025/feb/18/james-bond-wont-die-on-my-watch-says-austrian-who-wants-ownership-of-007">The Guardian</a></p>
</blockquote>
<p>The reality is that the 007 was a product of cold war, and that’s something we don’t really have anymore. Somethings are better just left alone. (See what happened to other franchises like Star Wars). I imagine that what this Austrian investor really wants is to build a theme park (like Disney) and transform 007 the secret agent into 007 the builder.</p>
<p>It also reveals something about modern society: Everything is up for grabs by people with money and zero incentives for creativity and originality. Every “mogul” just wants to milk existing cows. None want to grow new ones.</p>
</content>
<id>https://www.sixhat.net//2025/02-bond-brand-up-for-grabs.html</id>
<link href="https://www.sixhat.net//2025/02-bond-brand-up-for-grabs.html"/>
<title>Bond brand up for grabs</title>
<updated>2025-02-18T11:16:55+00:00</updated>
<dc:date>2025-02-18T11:16:55+00:00</dc:date>
</entry>
<entry>
<content><h1 id="chat-is-a-bad-ui-pattern-for-development-tools">Chat is a bad UI pattern for development tools</h1>
<blockquote>
<p>Yes, better AI will make better guesses about what you mean. But when you’re building serious software, you don’t want guesses—even smart ones. You want to know exactly what you’re building.</p>
</blockquote>
<p>Mathematics developed over centuries moved from textual description towards symbol manipulation because natural language is nuanced and not always precise. Believing that AI can guess what one wants in textual form and resolving the nuances of your own words is wrong. If you want to build a plane you take an aeronautics degree, you don’t go to a GPT and ask it for something that floats in air. Even if the GPT guesses that you want a plane and roughly outlines what a plane is.</p>
<p>That is why</p>
<blockquote>
<p>People call them “great for prototyping,” which means “don’t use this for anything real.”</p>
</blockquote>
<p>in <a href="https://danieldelaney.net/chat/?ref=sixhat.net">https://danieldelaney.net/chat/?ref=sixhat.net</a></p>
</content>
<id>https://www.sixhat.net//2025/02-chat-is-a-bad-ui-pattern-for-development-tools.html</id>
<link href="https://www.sixhat.net//2025/02-chat-is-a-bad-ui-pattern-for-development-tools.html"/>
<title>Chat is a bad UI pattern for development tools</title>
<updated>2025-02-04T19:34:01+00:00</updated>
<dc:date>2025-02-04T19:34:01+00:00</dc:date>
</entry>
<entry>
<content><h1 id="generative-ai-and-creative-work-narratives-values-and-impacts">Generative AI and Creative Work: Narratives, Values, and Impacts</h1>
<blockquote>
<p>Generative AI has gained a significant foothold in the creative and artistic sectors. In this context, the concept of creative work is influenced by discourses originating from technological stakeholders and mainstream media. The framing of narratives surrounding creativity and artistic production not only reflects a particular vision of culture but also actively contributes to shaping it. In this article, we review online media outlets and analyze the dominant narratives around AI’s impact on creative work that they convey. We found that the discourse promotes creativity freed from its material realisation through human labor. The separation of the idea from its material conditions is achieved by automation, which is the driving force behind productive efficiency assessed as the reduction of time taken to produce. And the withdrawal of the skills typically required in the execution of the creative process is seen as a means for democratising creativity. This discourse tends to correspond to the dominant techno-positivist vision and to assert power over the creative economy and culture.</p>
</blockquote>
<p>by <a href="https://arxiv.org/abs/2502.03940">Baptiste Caramiaux, Kate Crawford, Q. Vera Liao, Gonzalo Ramos, Jenny Williams</a></p>
<p>Of particular importance for artists, designers, and others in the creative arts. AI will change their work, first by collecting the low hanging fruits, and then progressing from there. And it is important to understand the narratives being told around the issue as techno-positivism might lack the depth to account for negative side effects.</p>
<p><strong>#mustread</strong></p>
</content>
<id>https://www.sixhat.net//2025/02-generative-ai-and-creative-work:-narratives,-values,-and-impacts.html</id>
<link href="https://www.sixhat.net//2025/02-generative-ai-and-creative-work:-narratives,-values,-and-impacts.html"/>
<title>Generative AI and Creative Work: Narratives, Values, and Impacts</title>
<updated>2025-02-07T10:03:04+00:00</updated>
<dc:date>2025-02-07T10:03:04+00:00</dc:date>
</entry>
<entry>
<content><h1 id="mais-um-ataque-para-o-fim-da-ciência-em-portugal">Mais um ataque para o fim da ciência em Portugal</h1>
<blockquote>
<p>“Estamos a planear rever o estatuto do bolseiro de investigação, eliminando definitivamente as bolsas pós-doc [ou de pós-doutoramento]”, anunciou Ana Paiva, secretária de Estado da Ciência,… –<em>in</em> <a href="https://www.publico.pt/2025/02/08/ciencia/noticia/governo-quer-eliminar-bolsas-posdoutoramento-2121355?ref=hp&amp;cx=manchete_2_destaques_0">Público</a></p>
</blockquote>
<p>Há governos que não gostam do saber, que não gostam da democracia, que não gostam do contraditório, que não gostam do progresso. <br />
Este é só mais um ataque sob o pretexto de acabar com a precariedade na ciência. <br />
Os que fazem ciência em Portugal não a fazem porque se trata de uma boa carreira em Portugal. <br />
Há 30 anos que não é uma boa carreira com sucessivos cortes, com precariedade, com o transformar de mentes brilhantes em assalariados baratos para as universidades-fábrica falidas que temos. <br />
Acabar com bolsas de pós doutoramento é acabar com uma via de alguns se aguentarem na academia mais um ano, mais seis meses, mais… até que se cai da árvore da ciência (talvez uma figueira ressequida cheia de espinhos).<br />
Vai haver um caminho para se fazer ciência, só um, cada vez mais estreito, onde só um camaleão de mil cores conseguirá subir ao topo da figueira. <br />
E esse caminho será (já é) para filho do primo do amigo que faz parte do júri.</p>
<p>Há governos assim, que gostam deste “Zero-Euro Budgeting” em que se corta tudo.<br />
Onde só se anuncia que não se gasta nem mais um tostão.<br />
Onde o plano “bom” será sempre apresentado depois. <br />
Onde não há sensibilidade para perceber que o coitado do camaleão mais uma vez tem que entrar em stress, mudar de cor, tentar mudar de figueira ou simplesmente deixar-se cair no mar de espinhos que estão lá em baixo.</p>
</content>
<id>https://www.sixhat.net//2025/02-mais-um-ataque-para-o-fim-da-ciencia-em-portugal.html</id>
<link href="https://www.sixhat.net//2025/02-mais-um-ataque-para-o-fim-da-ciencia-em-portugal.html"/>
<title>Mais um ataque para o fim da ciência em Portugal</title>
<updated>2025-02-28T15:08:36+00:00</updated>
<dc:date>2025-02-28T15:08:36+00:00</dc:date>
</entry>
<entry>
<content><h1 id="robust-autonomy-emerges-from-self-play">Robust autonomy emerges from self-play</h1>
<blockquote>
<p>Self-play has powered breakthroughs in two-player and multi-player games. Here we show that self-play is a surprisingly effective strategy in another domain. We show that robust and naturalistic driving emerges entirely from self-play in simulation at unprecedented scale – 1.6~billion~km of driving. This is enabled by Gigaflow, a batched simulator that can synthesize and train on 42 years of subjective driving experience per hour on a single 8-GPU node. The resulting policy achieves state-of-the-art performance on three independent autonomous driving benchmarks. The policy outperforms the prior state of the art when tested on recorded real-world scenarios, amidst human drivers, without ever seeing human data during training. The policy is realistic when assessed against human references and achieves unprecedented robustness, averaging 17.5 years of continuous driving between incidents in simulation.</p>
</blockquote>
<p>by <a href="https://arxiv.org/abs/2502.03349">Marco Cusumano-Towner, David Hafner, Alex Hertzberg, Brody Huval, Aleksei Petrenko, Eugene Vinitsky, Erik Wijmans, Taylor Killian, Stuart Bowers, Ozan Sener, Philipp Krähenbühl, Vladlen Koltun</a></p>
<blockquote>
<p>GIGAFLOW models uncertainty directly through noise on the state S</p>
</blockquote>
<p>What king of noise? uniform? pink? brown? This made me curious because couldn’t uncertainty me modeled by a distribution obtained from real-data observations?</p>
<blockquote>
<p>GIGAFLOW agents observe the positions and speeds of nearby agents but not their acceleration</p>
</blockquote>
<p>Why? Humans perceive (above a minimum threshold time) if another vehicle is accelarating. Couldn’t the agents be constructed in a way for them to construct an estimate of accelaration based on previous N observations other veihcles?</p>
</content>
<id>https://www.sixhat.net//2025/02-robust-autonomy-emerges-from-self-play.html</id>
<link href="https://www.sixhat.net//2025/02-robust-autonomy-emerges-from-self-play.html"/>
<title>Robust autonomy emerges from self-play</title>
<updated>2025-02-07T09:38:11+00:00</updated>
<dc:date>2025-02-07T09:38:11+00:00</dc:date>
</entry>
<entry>
<content><h1 id="the-brits-are-going-to-regret-this">The brits are going to regret this</h1>
<blockquote>
<p>Apple is taking the unprecedented step of removing its highest level data security tool from customers in the UK, after the government demanded access to user data. – from <a href="https://www.bbc.com/news/articles/cgj54eq4vejo">BBC</a></p>
</blockquote>
<p>The removal of security endangers society’s most fragile. It is just a matter of time until other actors will take advantage of the weakness introduced by lowering your security standards. Worse is that removing the advanced data protection from the UK is not a guarantee of anything right now, as the UK requested backdoor access to any account independently of location.</p>
<p>The only real solution is to use the cloud with some kind of double enciphering mechanism, one controlled by the cloud provider (that you can’t trust, and another one controlled by you). A pain in the Axxx but a necessity in modern ages.</p>
<p>Also read this</p>
<blockquote>
<p>Two weeks ago, Apple was ordered to insert an encryption backdoor (more on that in a moment) into iCloud. – <a href="https://blog.thenewoil.org/how-the-uk-is-weakening-safety-worldwide">The new oil</a></p>
</blockquote>
<p>The amount of crap politicians don’t understand would fill an ocean, but the amount of topics on which they think they can legislate is even bigger. We all need to take care and with our privacy. Don’t expect governamental agencies to protect you. They are like HR. They are there to protect the company.</p>
</content>
<id>https://www.sixhat.net//2025/02-the-brits-are-going-to-regret-this.html</id>
<link href="https://www.sixhat.net//2025/02-the-brits-are-going-to-regret-this.html"/>
<title>The brits are going to regret this</title>
<updated>2025-02-24T15:47:42+00:00</updated>
<dc:date>2025-02-24T15:47:42+00:00</dc:date>
</entry>
<entry>
<content><h1 id="vietnamese-graphic-design">Vietnamese graphic design</h1>
<p>Just came across an archive of particular interest: The <a href="https://vietgd.com/">Vietnamese Graphic Design</a> collection is really interesting, spanning many years and styles. I really love some of the 1970s posters calling for action. A beautiful use of time.</p>
</content>
<id>https://www.sixhat.net//2025/02-vietnamese-graphic-design.html</id>
<link href="https://www.sixhat.net//2025/02-vietnamese-graphic-design.html"/>
<title>Vietnamese graphic design</title>
<updated>2025-02-24T12:18:12+00:00</updated>
<dc:date>2025-02-24T12:18:12+00:00</dc:date>
</entry>
<entry>
<content><h1 id="working-with-tree-in-projects">Working with tree in projects</h1>
<p>As a teacher my class folders grow bigger with the pass of time. I keep<br />
adding new files, new images, references, etc. Over time this class<br />
folders tend to grow large.</p>
<p>For this I like to have a index of certain files in the root of the<br />
folder with links for all files of a certain kind. I’m usually<br />
interested in source files (either ‘.key’ or ‘.md’) as I mainly work<br />
with keynote and markdown files. I’m also interested in ‘.pdf’ files as<br />
they are the final product I use.</p>
<p>To build these indices I use the fabulous <code>tree</code> command.</p>
<h2 id="installation-with-homebrew">Installation with homebrew</h2>
<pre><code>brew install tree
</code></pre>
<h2 id="my-usage">My usage</h2>
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code> tree <span class="nt">-H</span> ./ <span class="nt">-P</span> <span class="s1">'*.pdf'</span> <span class="nt">--prune</span> <span class="o">&gt;</span> pdf.html
tree <span class="nt">-H</span> ./ <span class="nt">-P</span> <span class="s1">'*.md'</span> <span class="nt">--prune</span> <span class="o">&gt;</span> md.html
tree <span class="nt">-H</span> ./ <span class="nt">-P</span> <span class="s1">'*.key'</span> <span class="nt">--prune</span> <span class="o">&gt;</span> key.html
</code></pre></div></div>
<p>This just creates the 3 html files with links for what I need. The <code>-H
./</code> makes HTML output, the <code>-P ...</code> is the pattern and <code>--prune</code> just<br />
avoids printing folders without files in the pattern.</p>
</content>
<id>https://www.sixhat.net//2025/02-working-with-tree-in-projects.html</id>
<link href="https://www.sixhat.net//2025/02-working-with-tree-in-projects.html"/>
<title>Working with tree in projects</title>
<updated>2025-02-03T13:16:20+00:00</updated>
<dc:date>2025-02-03T13:16:20+00:00</dc:date>
</entry>
<entry>
<content><h2 id="cloudflare-is-turning-ai-against-ai">Cloudflare is turning AI against AI?</h2>
<blockquote>
<p>On Wednesday, web infrastructure provider Cloudflare announced a new feature called “AI Labyrinth” that aims to combat unauthorized AI data scraping by serving fake AI-generated content to bots. – <a href="https://arstechnica.com/ai/2025/03/cloudflare-turns-ai-against-itself-with-endless-maze-of-irrelevant-facts/">Arstechnica</a></p>
</blockquote>
<p>There’s something poetic about using AI to feed AI bots AI generated rubbish facts, but knowing that AI needs so much energy and resources, isn’t this AI vs AI vs AI vs AI something of a mistake? A kind of arms race to the exhaustion of energy?</p>
</content>
<id>https://www.sixhat.net//2025/03-ai-vs-ai.html</id>
<link href="https://www.sixhat.net//2025/03-ai-vs-ai.html"/>
<title>Cloudflare is turning AI against AI?</title>
<updated>2025-03-26T16:46:20+00:00</updated>
<dc:date>2025-03-26T16:46:20+00:00</dc:date>
</entry>
<entry>
<content><h1 id="boycott-tariffs---buy-300">Boycott Tariffs - Buy 300+</h1>
<p style="font-size:100px; text-align:center; font-weight:900; font-family:sans-serif; margin:0;">BUY 300+</p>
<p>The US Mafia boss is going ahead with <a href="https://www.theguardian.com/business/live/2025/mar/12/trump-tariffs-steel-aluminium-aluminum-global-europe-business-live">Tariffs on everything</a> and everybody, to protect his boyfriend’s slumping business, and already a counter movement is emerging to <a href="https://www.lemonde.fr/en/international/article/2025/03/03/calls-for-boycotting-us-products-spread-to-northern-europe_6738745_4.html">boycott US products</a>. <a href="https://www.euronews.com/next/2025/02/24/new-buy-canadian-apps-released-as-boycott-of-us-goods-in-response-to-proposed-tariffs-grow">Apps are being made</a> to read products barcodes and tell consumers <strong>to buy/not to buy</strong> a product based on its origin.</p>
<aside>You also should avoid 460-469 products if you want to boycott Russia too</aside>
<p>We don’t really need a bar scanner for that. Humans are equipped with a better app. Use your eyes. <a href="https://en.wikipedia.org/wiki/List_of_GS1_country_codes">Bar codes</a> have the corresponding number bellow and if they start with numbers bellow 300 then they are <em>out of date</em> (except for some intermissions that are Canadian).</p>
<p>300 and above is where you want your barcodes to start. Closing in on home, 300-379 range is French/Monaco, 840–849 are Spain and Andorra and <strong>Portuguese goods start with 560</strong>.</p>
<p>Next time you need to buy something, think different, <strong>buy 300+</strong>.</p>
<p>In the end, the US has becoming the land of <a href="https://www.curbed.com/2021/01/trump-infrastructure-plan-border-wall.html">Bob the Builder</a> morphed into <a href="https://www.npr.org/2025/03/11/nx-s1-5325306/trump-elon-musk-tesla">roadside Car Salesman</a> under the cloak of a Darth Vader and the greed of Corleone.</p>
<p>Wish us luck, because they are already doomed.</p>
</content>
<id>https://www.sixhat.net//2025/03-boycott-tariffs.html</id>
<link href="https://www.sixhat.net//2025/03-boycott-tariffs.html"/>
<title>Boycott Tariffs - Buy 300+</title>
<updated>2025-03-12T10:36:24+00:00</updated>
<dc:date>2025-03-12T10:36:24+00:00</dc:date>
</entry>
<entry>
<content><h1 id="differentiable-logic-cellular-automata">Differentiable Logic Cellular Automata</h1>
<blockquote>
<p>From Game of Life to pattern generation with learned recurrent circuits</p>
</blockquote>
<p>by Pietro Miotti, Eyvind Niklasson, Ettore Randazzo, <a href="https://znah.net/">Alexander Mordvintsev</a></p>
<blockquote>
<p>Imagine trying to reverse-engineer the complex, often unexpected patterns and behaviors that emerge from simple rules. (…) What if we could create systems that, given some complex desired pattern, can, in a fully differentiable fashion, learn the local rules that generate it, while preserving the inherent discrete nature of cellular automata?</p>
</blockquote>
<p>This is really a nice work from the team at Google working on Paradigms of Intelligence. Mordvintsev was the inventor of DeepDream, that produced psychedelic images back in 2015.</p>
<blockquote>
<p>What if we could directly learn these local rules, and create models that combine binary logic, the flexibility of neural networks, and the local processing of cellular automata?</p>
</blockquote>
<p>What a nice question to have! I sense that this combination will in part afford explainability that today’s neural networks lack.</p>
<p>You recognize when something is going to be big when the authors explain it in such terms that you can follow their process even if you don’t understand the machinery behind their research. After reading this, I’m inclined to think this will have a powerful impact not only on image related tasks, but it will affect much broader fields.</p>
<p>Their work also points to robust computing, something that is of primary importance in a world of complex systems where modern complicated machines need to be resilient and robust. Think remote exploration (space, undersea, desert, whatever) where simple failures should not critical and result in full shutdown.</p>
<p>And a question, can something like DiffLogic CA, be used to learn the rules of a problem, but then be able to expand and improve? The effect observed of the diagonal construction of the checkerboard is a nice side effect. What would a DiffLogic CA capable of training on a dynamic problem do if it got that as input? These are completely speculative and in some sense absurd, or naive, but in any case I’ll be following this in the future.</p>
<p>read it in full at <a href="https://google-research.github.io/self-organising-systems/difflogic-ca/">https://google-research.github.io/self-organising-systems/difflogic-ca/</a></p>
</content>
<id>https://www.sixhat.net//2025/03-differentiable-logic-cellular-automata.html</id>
<link href="https://www.sixhat.net//2025/03-differentiable-logic-cellular-automata.html"/>
<title>Differentiable Logic Cellular Automata</title>
<updated>2025-03-09T15:26:29+00:00</updated>
<dc:date>2025-03-09T15:26:29+00:00</dc:date>
</entry>
<entry>
<content><h2 id="european-alternatives-do-exist">European Alternatives do Exist</h2>
<p>Following the <a href="https://www.sixhat.net/2025/03-boycott-tariffs.html">Boycot Tariffs</a> post finding alternatives in the tech domain is kind of the next obvious step. The <a href="https://european-alternatives.eu/">European Alternatives</a> website is a good point so start searching for alternatives to popular tech products, like browsers, cloud providers, hosting, email services, search engines, ….</p>
<p>Changing everything at once isn’t easy, but every minor thing that you can change is a minor thing that doesn’t need to cross the Ocean. And many small drops make a big Ocean (or can dry it up).</p>
</content>
<id>https://www.sixhat.net//2025/03-european-alternatives-exist.html</id>
<link href="https://www.sixhat.net//2025/03-european-alternatives-exist.html"/>
<title>European Alternatives do Exist</title>
<updated>2025-03-24T20:17:17+00:00</updated>
<dc:date>2025-03-24T20:17:17+00:00</dc:date>
</entry>
<entry>
<content><h1 id="i-cannot-user-uber-because-i-violated-their-terms-of-use-without-ever-being-a-uber-client">I cannot user Uber because I violated their Terms of Use without ever being a uber client.</h1>
<blockquote>
<p>TL;DR - I quit. Uber keeps blocking my account and I never used the service.</p>
</blockquote>
<p>This is my experience with Uber, or lack of:</p>
<p>I’ve never used Uber before, always used traditional taxis. But one day I decided to give Uber a try. Downloaded the App onto my phone and proceeded to register. I entered my phone number and received my PIN to activate the account. Then, when entering my email, a message said the account was disabled. It said that I had to contact support on a z.uber…. url. I did that, and to my surprise this is the message they sent back:</p>
<blockquote>
<p>We’re sorry to hear about what happened to your account, David.</p>
<p>We’ve looked into your account and it has been suspended for activity that violates our Terms of use. Please know that it will be unavailable until further notice.</p>
<p>We appreciate your understanding regarding this matter.</p>
</blockquote>
<p>What? How is it possible that during the registration I violated the Terms of Use? I replied with:</p>
<blockquote>
<p>How can I have violated the Terms of Use if it was my first time downloading the App? I’ve never used Uber before. This makes no sense.</p>
</blockquote>
<p>To this, a diligent (AI?) agent? responded:</p>
<blockquote>
<p>We’re sorry to hear about the confusion this may have caused, David.</p>
<p>We’ve reviewed your account, and we won’t be lifting the suspension at this time.</p>
<p>Please see our Terms of Use for more information.</p>
<p>Your patience is appreciated.</p>
</blockquote>
<p>At this point it is clear that there’s a mistake somewhere. My take is that someone misspelled an email and entered my email instead. When I tried to register with my email it flagged me. But this is stupid. At this point I’m out of Uber without ever using it.</p>
<p>I just replied in frustration:</p>
<blockquote>
<p>Well, not today or ever then. Shortest client you ever had.</p>
</blockquote>
<p>Curiously, if you talk with your feet and walk away they come back to you. A few minutes latter they replied:</p>
<blockquote>
<p>We’re sorry for the inconvenience this may have caused you, David.</p>
<p>We have made an adjustment to your profile and removed the restriction.<br />
We also suggest performing basic troubleshooting before using the Uber app. This ensures you’re using the latest version available and resolves any known issues. You can follow the steps below for basic troubleshooting:</p>
<p>-Uninstall the app</p>
<p>-Restart your phone</p>
<p>-Re-download the Uber app</p>
<p>If this problem continues, please let us know and we will assist you further.</p>
<p>We appreciate you for taking the time to contact us.</p>
</blockquote>
<p>By now I had already deleted the app. But I am a good boy and did the remaining steps. This time the app let me register. I immediately added 2FA and proceeded to create a new password. Not a good start but Let’s give them the benefit of doubt.</p>
<h2 id="update-2-days-latter">UPDATE: 2 days latter</h2>
<p>My account is again disabled (or deleted, or whatever).</p>
<p>I received an email from Uber support asking information about the issue &lt;sic?&gt;. Thought it was resolved, but no, apparently Uber f88ked up again. I tried to open the app and again it was taking me to the setup page. When entering my phone number it gave me the “your account is disabled, contact support” sh*t. Pressing “search for my account” gave “there’s no account associated with this phone number”.</p>
<p>Yes. Uber great service (SARCASM). Now, another talk to an AI bot just for fun. At this moment <strong>I can’t trust this company</strong> service anymore and will not return.</p>
</content>
<id>https://www.sixhat.net//2025/03-i-cannot-user-uber-because-of-violating-the-terms-of-use-without-ever-being-a-uber-rider.html</id>
<link href="https://www.sixhat.net//2025/03-i-cannot-user-uber-because-of-violating-the-terms-of-use-without-ever-being-a-uber-rider.html"/>
<title>I cannot user Uber because I violated their Terms of Use without ever being a uber client.</title>
<updated>2025-03-06T09:14:02+00:00</updated>
<dc:date>2025-03-06T09:14:02+00:00</dc:date>
</entry>
<entry>
<content><h2 id="is-ai-sexist">is AI sexist?</h2>
<blockquote>
<p>WIRED tested the popular AI video generator from OpenAI and found that it amplifies sexist stereotypes and ableist tropes, perpetuating the same biases already present in AI image tools. – <a href="https://archive.is/scbk4">OpenAI’s Sora Is Plagued by Sexist, Racist, and Ableist Biases</a></p>
</blockquote>
<p>The raging bull that is modern AI naturally has to reflect the men that built it. WIRED found out that OpenAI’s Sora is plagued with sexist and racist bias. Really? Is anyone surprised by this? Expecting that by having machines trained in the median content produced by humans, one would suddenly get master pieces of art, video or writing, is being naif or a fool. These machines can do many things, but one thing they can’t is to reason out of the prejudices in which they were trained in.</p>
<p>Ah, and some companies seem to <a href="https://www.theatlantic.com/technology/archive/2025/03/libgen-meta-openai/682093/">believe that by stealing quality content</a> their AI’s will be better.</p>
<p>How do you teach your kid to be a responsible citizen when you lead by the wrong examples?</p>
<p>AI is a mirror for our median society. If we wan’t to fix what we see in the mirror, we need to move up society’s median first, by cultivating excellence in education, fine arts, science, music and social behavior. Unfortunately many countries (both rich and poor) seem to be doing exactly the opposite for reasons only a hand full of despots/oligarchs can explain.</p>
</content>
<id>https://www.sixhat.net//2025/03-is-ai-sexist.html</id>
<link href="https://www.sixhat.net//2025/03-is-ai-sexist.html"/>
<title>is AI sexist?</title>
<updated>2025-03-23T15:03:34+00:00</updated>
<dc:date>2025-03-23T15:03:34+00:00</dc:date>
</entry>
<entry>
<content><h2 id="simple-things-are-the-best-wrote-a-ruby-blogging-software">Simple things are the best. Wrote a ruby blogging software.</h2>
<p>The title says it all. Probably out of boredom yesterday me and copilot–Well, mostly copilot–decided to write a static blog generator in ruby.</p>
<p>I first thought of python but I already know a lot of python and always wanted to see more ruby. I didn’t want to use any templates. Wanted everything in a single file. And wanted something that I could easily understand and modify.</p>
<p>And in a couple of hours, while sitting in front of the TV, with my laptop sitting in my lap I managed to get 99% of it working. Check <a href="https://github.com/sixhat/swipe/blob/master/ruby/blog.rb">blog.rb</a> out at github. 160 loc and I have a very functional static blogging platform. It works by passing it a source folder and an output folder:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">ruby</span> <span class="n">blog</span><span class="p">.</span><span class="nf">rb</span> <span class="n">src</span> <span class="n">blog</span>
</code></pre></div></div>
<p>Every markdown file in the root of <code>src</code> is going to become a page with links in the header. All other markdown files become blog entries. It even generates an RSS.</p>
<p>if you want to use it just change the two lines with global parameters: The first is the blog title while the second is the script for tracking page views. You can make it an empty string or use your tracking script.</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="vg">$titulo</span> <span class="o">=</span> <span class="o">...</span>
<span class="vg">$umami</span> <span class="o">=</span> <span class="o">...</span>
</code></pre></div></div>
<p>The script also copies everything else that you have in your <code>src</code> folder to your <code>blog</code> folder making it easy to manage your assets, styles, scripts, whatever. Well, adapt it at will.</p>
</content>
<id>https://www.sixhat.net//2025/03-simple-things-are-the-best-new-blogging-software.html</id>
<link href="https://www.sixhat.net//2025/03-simple-things-are-the-best-new-blogging-software.html"/>
<title>Simple things are the best. Wrote a ruby blogging software.</title>
<updated>2025-03-23T14:32:46+00:00</updated>
<dc:date>2025-03-23T14:32:46+00:00</dc:date>
</entry>
<entry>
<content><h2 id="the-landscape-of-lisp">The Landscape of Lisp</h2>
<aside>My favorite(s), if anyone hasn't noticed yet, are Scheme and Racket,</aside>
<p>A very interesting collection of resources on 4 different flavours of LISP (Scheme, CL, Clojure and Racket).</p>
<p><a href="https://churchofturing.github.io/landscapeoflisp.html">https://churchofturing.github.io/landscapeoflisp.html</a></p>
</content>
<id>https://www.sixhat.net//2025/03-the-landscape-of-lisp.html</id>
<link href="https://www.sixhat.net//2025/03-the-landscape-of-lisp.html"/>
<title>The Landscape of Lisp</title>
<updated>2025-03-23T19:34:38+00:00</updated>
<dc:date>2025-03-23T19:34:38+00:00</dc:date>
</entry>
<entry>
<content><h2 id="about-this-notebook">About this notebook</h2>
<p>Hi, I’m David. You’ve stumbled upon my personal online notebook. The notes you find here are my working notes about things that interest me in some manner. Think of them as my public bookmarks, sometimes with extra comments.</p>
<p>These notes are mostly written for myself. This website is a notebook where I take notes, draft ideas and try a few things. It is not a full publication website –– My <a href="https://www.davidrodrigues.org/">academic Website sits here</a> – and don’t expect it to be highly edited or even correct most of the time. It is just my personal journal to take notes for my future reference. These are evergreen notes, that will evolve over time or be forgotten forever in these pages.</p>
<p>There is a main <a href="/">index</a> but it might not include all notes available in the website as some will just live under hierarchies of ideas. I’m very fond of Zettlekastens but usually lack the rigorous mind to keep them organised.</p>
</content>
<id>https://www.sixhat.net//about.html</id>
<link href="https://www.sixhat.net//about.html"/>
<title>About this notebook</title>
<updated>2025-03-23T10:54:37+00:00</updated>
<dc:date>2025-03-23T10:54:37+00:00</dc:date>
</entry>
<entry>
<content><h2 id="ai-river">AI River</h2>
<ul>
<li><a href="https://www.cnn.com/2025/03/27/tech/apple-ai-artificial-intelligence/index.html">Apple’s AI isn’t a letdown. AI is the letdown</a></li>
<li><a href="https://github.com/lookr-fyi/job-application-bot-by-ollama-ai">Show HN: Job Application Bot by Ollama AI</a></li>
<li><a href="https://www.abc.net.au/news/science/2023-11-15/jeremy-howard-taught-ai-to-the-world-and-helped-invent-chatgpt/103092474">Jeremy Howard taught AI and helped invent ChatGPT. He fears he’s failed</a></li>
<li><a href="https://freeoutput.org/">Free Output – AI output copyright status checker</a></li>
<li><a href="https://www.washingtonpost.com/technology/2025/03/28/chatgpt-ghibli-ai-images-copyright/">AI generated Ghibli images go viral as OpenAI loosens its rules</a></li>
<li><a href="https://slashdot.org/story/25/03/29/101206/first-trial-of-generative-ai-therapy-shows-it-might-help-with-depression?utm_source=rss1.0mainlinkanon&amp;utm_medium=feed">First Trial of Generative AI Therapy Shows It Might Help With Depression</a></li>
<li><a href="https://www.engadget.com/home/kitchen-tech/samsungs-2025-bespoke-appliances-are-going-all-in-on-ai-020018377.html?src=rss">Samsung’s 2025 Bespoke appliances are going all in on AI</a></li>
<li><a href="https://www.techradar.com/pro/megawatt-class-ai-server-racks-may-well-become-the-norm-before-2030-as-nvidia-displays-600kw-kyber-rack-design">Megawatt-class AI server racks may well become the norm before 2030 as Nvidia displays 600kW Kyber rack design</a></li>
<li><a href="https://www.nytimes.com/2025/03/30/opinion/grief-tech-ai-optimized.html">Can a Chatbot Help You Get Over Your Grief?</a></li>
<li><a href="https://finance.yahoo.com/news/nano-x-imaging-nnox-presents-231853212.html">Nano-X Imaging (NNOX) Presents AI Bone Health Data at Top Conferences</a></li>
<li><a href="https://finance.yahoo.com/news/alibaba-baba-sets-ai-benchmark-231256494.html">Alibaba (BABA) Sets New AI Benchmark with Qwen2.5-Omni-7B Multimodal Model!</a></li>
<li><a href="https://finance.yahoo.com/news/lattice-semiconductor-corporation-lscc-best-231206047.html">Is Lattice Semiconductor Corporation (LSCC) the Best Mid Cap AI Stock to Buy Now?</a></li>
<li><a href="https://finance.yahoo.com/news/uipath-inc-path-best-mid-231057368.html">Is UiPath Inc. (PATH) the Best Mid Cap AI Stock to Buy Now?</a></li>
<li><a href="https://finance.yahoo.com/news/upstart-holdings-inc-upst-best-225826914.html">Is Upstart Holdings, Inc. (UPST) the Best Mid Cap AI Stock to Buy Now?</a></li>
<li><a href="https://finance.yahoo.com/news/insight-enterprises-inc-nsit-best-224655004.html">Is Insight Enterprises, Inc. (NSIT) the Best Mid Cap AI Stock to Buy Now?</a></li>
<li><a href="https://finance.yahoo.com/news/epam-systems-inc-epam-best-224330416.html">Is EPAM Systems, Inc. (EPAM) the Best Mid Cap AI Stock to Buy Now?</a></li>
<li><a href="https://finance.yahoo.com/news/zoominfo-technologies-inc-zi-best-224013520.html">Is ZoomInfo Technologies Inc. (ZI) the Best Mid Cap AI Stock to Buy Now?</a></li>
<li><a href="https://finance.yahoo.com/news/sentinelone-inc-best-mid-cap-223804850.html">Is SentinelOne, Inc. (S) the Best Mid Cap AI Stock to Buy Now?</a></li>
<li><a href="https://www.cnbc.com/2025/03/29/foley-artists-movies-hollywood.html">This old-school filmmaking technique is still kicking even as AI takes on a bigger role in movies</a></li>
<li><a href="https://www.pcgamer.com/games/sim/after-16-years-the-dark-mod-finally-has-guards-as-perceptive-as-in-thief-the-days-of-seeing-knocked-out-ai-in-the-middle-of-a-bright-spotlight-get-ignored-are-over/">After 16 years, The Dark Mod finally has guards as perceptive as in Thief: ‘The days of seeing knocked-out AI in the middle of a bright spotlight get ignored are over’</a></li>
<li><a href="/category/artificial-intelligence/">AI</a></li>
<li><a href="/category/artificial-intelligence/">AI</a></li>
<li><a href="/category/robotics/">Robotics</a></li>
<li><a href="https://techcrunch.com/tag/generative-ai/">generative AI</a></li>
<li><a href="https://techcrunch.com/category/artificial-intelligence/">AI</a></li>
<li><a href="https://techcrunch.com/category/artificial-intelligence/">AI</a></li>
<li><a href="https://techcrunch.com/category/artificial-intelligence/">AI</a></li>
<li><a href="https://techcrunch.com/category/artificial-intelligence/">AI</a></li>
<li><a href="https://techcrunch.com/2025/03/27/open-source-devs-are-fighting-ai-crawlers-with-cleverness-and-vengeance/">Open source devs are fighting AI crawlers with cleverness and vengeance</a></li>
</ul>
</content>
<id>https://www.sixhat.net//ai.html</id>
<link href="https://www.sixhat.net//ai.html"/>
<title>AI River</title>
<updated>2025-03-30T11:21:35+01:00</updated>
<dc:date>2025-03-30T11:21:35+01:00</dc:date>
</entry>
<entry>
<content>
<h1 id="bonsai">Bonsai</h1>
<h3 id="2024-julho">2024 Julho</h3>
<p><img src="assets/bonsai-240711.jpeg" alt="" /></p>
<h3 id="2024-april">2024 April</h3>
<p><img src="assets/bonsai-240428.png" alt="" /></p>
<p><img src="assets/bonsai-240427.png" alt="" /></p>
<h3 id="2019-april">2019 April</h3>
<p><img src="assets/bonsai-190406.png" alt="" /></p>
<style>
img {
max-width: 100%;
max-height: 80svh;
margin: auto;
display: block;
}
</style>
</content>
<id>https://www.sixhat.net//bonsai.html</id>
<link href="https://www.sixhat.net//bonsai.html"/>
<title>Bonsai</title>
<updated>2024-07-11T13:34:29+01:00</updated>
<dc:date>2024-07-11T13:34:29+01:00</dc:date>
</entry>
<entry>
<content><h2 id="my-puzzles-in-pt">My Puzzles (in pt).</h2>
<ul>
<li><a href="puzzles/2025-petiz.html">29 Março 2025 - Petiz</a></li>
<li><a href="puzzles/marco-21-2025.html">21 Março 2025 - sem tema</a></li>
<li><a href="puzzles/roubos-julgados.html">Roubos Julgados</a></li>
<li><a href="puzzles/lhes.html">Lhes</a></li>
<li><a href="puzzles/serras-e-montanhas-de-portugal.html">Serras e Montanhas de Portugal</a></li>
<li><a href="puzzles/rios-de-portugal.html">Rios de Portugal</a></li>
</ul>
</content>
<id>https://www.sixhat.net//puzzles.html</id>
<link href="https://www.sixhat.net//puzzles.html"/>
<title>My Puzzles (in pt).</title>
<updated>2025-03-30T11:21:32+01:00</updated>
<dc:date>2025-03-30T11:21:32+01:00</dc:date>
</entry>
<entry>
<content><h2 id="worth-reading-take-your-time">Worth reading, take your time.</h2>
<ul>
<li><a href="https://www.bitsofwonder.co/?ref=sixhat.net">Bits of Wonder</a> - deepdives into science, philosophy, and how to be a human</li>
<li><a href="https://arne.me/?ref=sixhat.net">Arne Bahlo</a></li>
<li><a href="https://stpeter.im/journal/?ref=sixhat.net">One Small Voice</a> by Peter Saint-Andre</li>
<li><a href="https://timothygartonash.substack.com/?ref=sixhat.net">History of the Present</a> by Timothy Garton Ash</li>
<li><a href="https://manlius.substack.com/?ref=sixhat.net">Complexity Thoughts</a> by Manlio De Domenico</li>
<li><a href="https://benhoyt.com/writings/?ref=sixhat.net">Ben Hoyt</a></li>
<li><a href="https://studio.ribbonfarm.com/?ref=sixhat.net">Ribonfarm Studio</a> by Venkatesh Rao</li>
<li><a href="https://sive.rs/?ref=sixhat.net">Derek Sivers</a></li>
<li><a href="https://stephango.com/?ref=sixhat.net">Steph Ango</a> CEO of Obsidian, full of great ideas worth thinking about.</li>
<li><a href="https://www.computerenhance.com/?ref=sixhat.net">Computer, Enhance!</a> - More quality information on low level stuff than I might have time to learn, but very cool work.</li>
<li><a href="https://aethermug.com/?ref=sixhat.net">Aethermug</a> and <a href="https://planktonvalhalla.com/?ref=sixhat.net">Plankton Valhalla</a> - good writing always trumps, by Marco Giancotti.</li>
</ul>
</content>
<id>https://www.sixhat.net//river.html</id>
<link href="https://www.sixhat.net//river.html"/>
<title>Worth reading, take your time.</title>
<updated>2024-06-10T09:39:55+01:00</updated>
<dc:date>2024-06-10T09:39:55+01:00</dc:date>
</entry>
<dc:date>2025-03-30T11:21:39+01:00</dc:date>
</feed>
If you would like to create a banner that links to this page (i.e. this validation result), do the following:
Download the "valid Atom 1.0" banner.
Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)
Add this HTML to your page (change the image src
attribute if necessary):
If you would like to create a text link instead, here is the URL you can use:
http://www.rssboard.org/rss-validator/check.cgi?url=https%3A//www.sixhat.net/rss.xml