<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on Duma's website</title><link>https://dumaron.github.io/</link><description>Recent content in Home on Duma's website</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 12 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://dumaron.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Monthly reports</title><link>https://dumaron.github.io/posts/2026-09-12-monthly-reports/</link><pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/2026-09-12-monthly-reports/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/2026-09-12-monthly-reports/monthly-report-preview-image_hu_f918e25771771cb1.jpg" &#10; alt="" &#10; /&gt;&#10; &#10;&lt;/figure&gt;&#10;&lt;h2 id="opportunities"&gt;Opportunities&lt;/h2&gt;&#10;&lt;p&gt;I am a happy &#10;&#10;&lt;a href="https://en.wikipedia.org/wiki/Zero-based_budgeting" rel="noopener" target="_blank"&gt;zero-based budgeting&lt;/a&gt; adopter, mostly through the &#10;&#10;&lt;a href="https://www.ynab.com/" rel="noopener" target="_blank"&gt;YNAB&lt;/a&gt; app. Through their APIs, Martin integrates with YNAB to store a duplicate of all transactions in its database, complete with category and description. I believe this is a potentially useful set of data, one that is not usually available to oneself, and I wondered if there was an opportunity behind that.&lt;/p&gt;&#10;&lt;p&gt;What can I build with it?&lt;/p&gt;&#10;&lt;p&gt;I think any more knowledge about my financial status makes me feel more relaxed. Some examples of how this benefit can be triggered:&lt;/p&gt;</description></item><item><title>Alienation and acceleration - book review</title><link>https://dumaron.github.io/posts/2026-05-01-alienation-and-acceleration/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/2026-05-01-alienation-and-acceleration/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/2026-05-01-alienation-and-acceleration/alienazione-e-accelerazione-cover-wood_hu_ec9ecb3271b0db21.jpg" &#10; alt="" &#10; /&gt;&#10; &#10;&lt;/figure&gt;&#10;&lt;p&gt;The world of time management books is vastly dominated by what I call the &amp;ldquo;USA-style&amp;rdquo; narrative. &amp;ldquo;&lt;em&gt;Do these 5 things every day and your life will dramatically improve&lt;/em&gt;&amp;rdquo;, or &amp;ldquo;&lt;em&gt;the hidden secret behind your secret weapon against&amp;hellip;&lt;/em&gt;&amp;rdquo;. Books made to sell, with &lt;em&gt;some&lt;/em&gt; scientific evidence, concrete suggestions, big claims. Even through this superficial description, I am pretty sure everyone interested in the topic knows what I mean.&lt;/p&gt;&#10;&lt;p&gt;Among the common traits these books share is that they propose an individualistic point of view of the problem. Everything is under the control of the individual. The problem, whatever root it has, is treated with changes in daily lifestyle. The widest groups of people they might focus upon are support groups, which serve the sole scope of sharing experiences about your individualities.&lt;/p&gt;</description></item><item><title>On starting too many projects</title><link>https://dumaron.github.io/posts/2026-02-26_on_starting_too_many_projects/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/2026-02-26_on_starting_too_many_projects/</guid><description>&lt;p&gt;One criticism that can be made to how I usually manage my life is that I start too many projects and finish too few of them. This has two effects on my productivity:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;continuously starting new projects scatters my energy across too many directions, reducing the number of completed projects per unit of time,&lt;/li&gt;&#10;&lt;li&gt;many projects require me to leave things in a half-finished state (half-mounted furniture, half-cleaned keyboard, etc), massively increasing the confusion around me&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;From these two objective facts, many negative feelings develop:&lt;/p&gt;</description></item><item><title>&lt;code&gt;inputMode&lt;/code&gt; HTML attribute</title><link>https://dumaron.github.io/notes/tils/2026-02-13_inputmode_attribute/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/notes/tils/2026-02-13_inputmode_attribute/</guid><description>&lt;p&gt;While working on a form with numeric inputs, I noticed Claude putting this attribute on them: &lt;code&gt;inputMode=&amp;quot;numeric&amp;quot;&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;Intrigued, I looked at the &#10;&#10;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/inputmode" rel="noopener" target="_blank"&gt;MDN page&lt;/a&gt; and it turns out the attribute exists to support different input styles, mostly related to what a smartphone will show in the keyboard tray. It can take values like &lt;code&gt;tel&lt;/code&gt;, &lt;code&gt;email&lt;/code&gt;, &lt;code&gt;numeric&lt;/code&gt; and so on.&lt;/p&gt;&#10;&lt;p&gt;The attribute&amp;rsquo;s effect is limited to the keyboard, and it relies on the specific vendor to act on it. Nevertheless, I find it pretty useful to be able to change the keyboard between &lt;code&gt;numeric&lt;/code&gt; and &lt;code&gt;decimal&lt;/code&gt; depending on the value that needs to be entered in a form field.&lt;/p&gt;</description></item><item><title>&lt;code&gt;datalist&lt;/code&gt; for range inputs</title><link>https://dumaron.github.io/notes/tils/2024-08-27_datalist_for_range_inputs/</link><pubDate>Tue, 27 Aug 2024 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/notes/tils/2024-08-27_datalist_for_range_inputs/</guid><description>&lt;p&gt;The &lt;code&gt;datalist&lt;/code&gt; tag has surprised me at least a couple time already. While I still consider native HTML inputs as inadequate and too rigid, I admit that thanks to the &lt;code&gt;datalist&lt;/code&gt; tag the UX can improve a bit.&lt;/p&gt;&#10;&lt;p&gt;Today I was how far the native range inputs are from for &#10;&#10;&lt;a href="https://eui.elastic.co/#/forms/range-sliders" rel="noopener" target="_blank"&gt;ElasticUI range inputs&lt;/a&gt;, the one I currently use. I stumbled upon the MDN Web docs page and particularly &#10;&#10;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#list" rel="noopener" target="_blank"&gt;on the &lt;code&gt;list&lt;/code&gt; attribute&lt;/a&gt;: it can contain the &lt;code&gt;id&lt;/code&gt; of a &lt;code&gt;datalist&lt;/code&gt; component and to enhance the user experience of the input. It seems the only three ways these two tags can interact are:&lt;/p&gt;</description></item><item><title>Mutable &lt;code&gt;shared static&lt;/code&gt; attributes in Javascript</title><link>https://dumaron.github.io/notes/tils/2024-02-23_mutable_shared_static_attributes/</link><pubDate>Mon, 11 Mar 2024 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/notes/tils/2024-02-23_mutable_shared_static_attributes/</guid><description>&lt;p&gt;My understanding of the &lt;code&gt;static&lt;/code&gt; keyword in JS classes has always been that it determined immutable attributes/methods that are available before not on a class instance but on the class constructor itself. Like with the &lt;code&gt;Object&lt;/code&gt; class constrctor: it is possible to instantiate it, but some methods are available on the constructor too, like &lt;code&gt;.fromEntries()&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s see a working example:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#b4b4b4;background-color:#121212;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#b14242"&gt;class&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;MyClass&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#b14242"&gt;static&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;attr1&lt;/span&gt; &lt;span style="color:#d87c4a"&gt;=&lt;/span&gt; &lt;span style="color:#df6464"&gt;&amp;#39;attr1&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#d5d5d5"&gt;attr2&lt;/span&gt; &lt;span style="color:#d87c4a"&gt;=&lt;/span&gt; &lt;span style="color:#df6464"&gt;&amp;#39;attr2&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#b14242"&gt;static&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;method1&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;()&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;{&lt;/span&gt; &lt;span style="color:#b14242"&gt;return&lt;/span&gt; &lt;span style="color:#df6464"&gt;&amp;#39;method1&amp;#39;&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#d5d5d5"&gt;method2&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;()&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;{&lt;/span&gt; &lt;span style="color:#b14242"&gt;return&lt;/span&gt; &lt;span style="color:#df6464"&gt;&amp;#39;method2&amp;#39;&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;group&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#df6464"&gt;&amp;#39;Constructor&amp;#39;&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;log&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;MyClass&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;attr1&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;log&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;MyClass&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;attr2&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;)&lt;/span&gt; &lt;span style="color:#737373;font-style:italic"&gt;// &amp;lt;- doesn&amp;#39;t throw, but undefined&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;log&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;MyClass&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;method1&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;())&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;log&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;MyClass&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;method2&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;())&lt;/span&gt; &lt;span style="color:#737373;font-style:italic"&gt;// &amp;lt;- throws&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;groupEnd&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;()&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#b14242"&gt;const&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;instance&lt;/span&gt; &lt;span style="color:#d87c4a"&gt;=&lt;/span&gt; &lt;span style="color:#b14242"&gt;new&lt;/span&gt; &lt;span style="color:#d5d5d5"&gt;MyClass&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;()&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;group&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#df6464"&gt;&amp;#39;Instance&amp;#39;&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;log&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;instance&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;attr1&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;)&lt;/span&gt; &lt;span style="color:#737373;font-style:italic"&gt;// &amp;lt;- doesn&amp;#39;t throw, but undefined&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;log&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;instance&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;attr2&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;log&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;instance&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;method1&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;())&lt;/span&gt; &lt;span style="color:#737373;font-style:italic"&gt;// &amp;lt;- throws&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;log&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;(&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;instance&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;method2&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;())&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d5d5d5"&gt;console&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;.&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;groupEnd&lt;/span&gt;&lt;span style="color:#d5d5d5"&gt;()&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;As you can see, static method are available on the constructor only, while &amp;ldquo;normal&amp;rdquo; method only on instances. So far so good.&lt;/p&gt;</description></item><item><title>&lt;code&gt;:has()&lt;/code&gt; pseudo-selector and current node parent</title><link>https://dumaron.github.io/notes/tils/2024-02-02_has_selector_and_node_parent/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/notes/tils/2024-02-02_has_selector_and_node_parent/</guid><description>&lt;p&gt;Today I was finally able to use the &lt;code&gt;:has()&lt;/code&gt; pseudo-selector. I&amp;rsquo;ve heard about that in a superficial way through articles and comments, but I&amp;rsquo;ve never it in person.&lt;/p&gt;&#10;&lt;p&gt;Today at work I needed to implement a workaround, which consisted in &lt;strong&gt;setting some CSS rules to the parent of the current node&lt;/strong&gt;. I&amp;rsquo;ve always thought it was impossible to achieve, but good folks updated &#10;&#10;&lt;a href="https://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector" rel="noopener" target="_blank"&gt;this old question on StackOverflow&lt;/a&gt;, explaining how &lt;code&gt;:has()&lt;/code&gt; could have helped.&lt;/p&gt;</description></item><item><title>Better viewport units for responsive design</title><link>https://dumaron.github.io/notes/tils/2024-02-01_better_viewport_units_for_responsive_design/</link><pubDate>Thu, 01 Feb 2024 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/notes/tils/2024-02-01_better_viewport_units_for_responsive_design/</guid><description>&lt;p&gt;&lt;strong&gt;The issue is&lt;/strong&gt;: using &lt;code&gt;100vh&lt;/code&gt; as a rule to measure the whole viewport height is just faulty on mobile. Ona side note, I belive most of the times this is a bad idea, and people actually want something different, but let&amp;rsquo;s avoid this topic.&lt;/p&gt;&#10;&lt;p&gt;I encountered this issue again today, where one of the web apps I work on has &lt;code&gt;100vh&lt;/code&gt; but now has also the need to be more mobile-friendly.&lt;/p&gt;</description></item><item><title>Web Components innerHTML and loading time</title><link>https://dumaron.github.io/notes/tils/2024-01-30_webc_innerhtml_and_loading_time/</link><pubDate>Tue, 30 Jan 2024 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/notes/tils/2024-01-30_webc_innerhtml_and_loading_time/</guid><description>&lt;p&gt;While approaching the first lessons of &#10;&#10;&lt;a href="https://www.bluespire.com/p/web-component-engineering" rel="noopener" target="_blank"&gt;Rob Eisenberg&amp;rsquo;s Web Components course&lt;/a&gt;, I stumpled upon a browser error that prevented every instance&#10;of a web component to run:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;Failed to construct &amp;#39;CustomElement&amp;#39;: The result must not have children&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;After many trials and errors, it turned out that adding the &lt;code&gt;type=&amp;quot;module&amp;quot;&lt;/code&gt; attribute fixed the issue. But why?&#10;I asked Rob directly &#10;&#10;&lt;a href="https://twitter.com/Duma_ron/status/1752283582368731598" rel="noopener" target="_blank"&gt;in this tweet&lt;/a&gt;, and here&amp;rsquo;s his answer:&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;Technically, one shouldn&amp;rsquo;t alter the host attributes or children in the constructor (there&amp;rsquo;s a note on attributes but not children in the lesson; I&amp;rsquo;ll add more on that). Though, it will work in certain scenarios. Setting innerHTML in the constructor is an example of where it will work, depending on the timing.&lt;/p&gt;</description></item><item><title>Child rule does not mean child element</title><link>https://dumaron.github.io/notes/tils/2024-01-15_child_rule_does_not_mean_child_element/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/notes/tils/2024-01-15_child_rule_does_not_mean_child_element/</guid><description>&lt;p&gt;I always tought that, either in SASS or in native CSS nested selector, it was possible only to refine a selector by appending attributes of child nodes. It turns out it isn&amp;rsquo;t so.&lt;/p&gt;&#10;&lt;p&gt;In other words, whenever the &lt;code&gt;&amp;amp;&lt;/code&gt; is used in selectors it&amp;rsquo;s possible to write &lt;code&gt;body &amp;amp;&lt;/code&gt; and it&amp;rsquo;ll create a legit selector. I expected that only refinements like &lt;code&gt;&amp;amp; .some-children-class&lt;/code&gt; would work.&lt;/p&gt;&#10;&lt;p&gt;This is a partial example to show the mechanism: the haiku is green, while I would have expected it to be blue.&lt;/p&gt;</description></item><item><title>New trends in Javascript ecosystem</title><link>https://dumaron.github.io/posts/new_winds_in_javascript/</link><pubDate>Mon, 18 Sep 2023 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/new_winds_in_javascript/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/new_winds_in_javascript/funeraloftheanarchistgalli_hu_85cbdbb9c583067a.jpg" &#10; alt="Funeral of the anarchist Galli by Carlo Carrà" &#10; /&gt;&#10; &lt;figcaption&gt;&lt;a target="_blank" rel="noopener" href="https://en.wikipedia.org/wiki/The_Funeral_of_the_Anarchist_Galli"&gt;Funeral of the anarchist Galli by Carlo Carrà&lt;/a&gt;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;One of the benefits of being many years in the same field is to see things evolve. You get to know how things started, the reason that required them to change, and you see the process repeating over and over. You understand &lt;em&gt;why&lt;/em&gt; things are the way they are right now. You get able to spot trends and patterns.&lt;/p&gt;</description></item><item><title>On losing faith in UX</title><link>https://dumaron.github.io/posts/mark_hurst_losing_faith_ux/</link><pubDate>Thu, 11 Feb 2021 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/mark_hurst_losing_faith_ux/</guid><description>On January 28 Mark Hurst published the article &amp;ldquo;Why I’m losing faith in UX&amp;rdquo;, which received a lot of attention in the following days. The author describes a progressive decline in how UX is used: started as a way to create user-friendly tools, today it’s employed mostly for User eXploitation.</description></item><item><title>Stimulusjs and new hopes for backend frameworks</title><link>https://dumaron.github.io/posts/stimulus_and_backend_frameworks/</link><pubDate>Sat, 02 Jan 2021 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/stimulus_and_backend_frameworks/</guid><description>Stimulusjs is a “modest Javascript framework for the HTML you already have”. It has a kind of MVC architecture and focuses on enhancing server-side generated HTML, allowing to gracefully inject Javascript behaviors via custom HTML attributes. Its unobtrusiveness and simplicity seem to have made it a good match for backend frameworks that want to extend their control client-side.</description></item><item><title>Command line interface guidelines</title><link>https://dumaron.github.io/posts/command_line_interface_guidelines/</link><pubDate>Wed, 26 Feb 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/command_line_interface_guidelines/</guid><description>Programs with command line as interface are unjustly stereotyped on two opposite fronts. On one side, non-technical users instantly feel awed and judge themselves as unable to use them. On the opponent side, some developers fall into spirals of fetishism where the less a software is easy to use, the more it is valuable and powerful.</description></item><item><title>UI frameworks and accessibility</title><link>https://dumaron.github.io/posts/ui_frameworks_and_accessibility/</link><pubDate>Sun, 02 Feb 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/ui_frameworks_and_accessibility/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/ui_frameworks_and_accessibility/stairs_hu_4ed71e5f821b42e4.jpg" &#10; alt="Concrete stais photo in black and white" &#10; /&gt;&#10; &lt;figcaption&gt;Photo by &lt;a target="_blank" rel="noopener" href="https://unsplash.com/@artisanalphoto?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;ArtisanalPhoto&lt;/a&gt; on &lt;a target="_blank" rel="noopener" href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;I&amp;rsquo;ve been a frontend developer for years but, honestly, I know nothing about web accessibility. That&amp;rsquo;s because of my past jobs: to spend time and money to make our product more accessible has never been an option, so I&amp;rsquo;ve never learned about it. To be honest, it wasn&amp;rsquo;t my employers/client&amp;rsquo;s fault too: often accessibility is considered a luxury more than an expression of civilization.&lt;/p&gt;</description></item><item><title>Programming under consumerism</title><link>https://dumaron.github.io/posts/programming_under_consumerism/</link><pubDate>Sat, 17 Oct 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/programming_under_consumerism/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/programming_under_consumerism/workers_hu_3c6182df6b0454a6.jpg" &#10; alt="Old photo of an assembly line" &#10; /&gt;&#10; &lt;figcaption&gt;Photo by &lt;a target="_blank" href="https://unsplash.com/@museumsvictoria?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Museums Victoria&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/assembly-line?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;Recently I&amp;rsquo;ve thought a lot about consumerism and how we produce software today. I&amp;rsquo;ve tried many times bring order to my thoughts, but doubts and not enough free time are preventing me to find a position that I&amp;rsquo;m satisfied with. I have decided to release this text prematurely to use it as a foundation for discussion, in the hope that my ideas get sorted.&lt;/p&gt;</description></item><item><title>"I no longer build software"</title><link>https://dumaron.github.io/posts/i_no_longer_build_software/</link><pubDate>Mon, 21 Sep 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/i_no_longer_build_software/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/i_no_longer_build_software/eric_diven_hu_7548ba6aed2b7565.jpeg" &#10; alt="detail of a wood furniture made by Eric Diven" &#10; /&gt;&#10; &#10;&lt;/figure&gt;&#10;&lt;p&gt;Today &#10;&#10;&lt;a href="https://news.ycombinator.com/item?id=24541964" rel="noopener" target="_blank"&gt;an interesting discussion appeared on HackerNews&lt;/a&gt;. Everything stared from &#10;&#10;&lt;a href="https://github.com/docker/cli/issues/267#issuecomment-695149477" rel="noopener" target="_blank"&gt;a message on Github&lt;/a&gt; about an ex developer, &#10;&#10;&lt;a href="https://www.longwalkwoodworking.com/" rel="noopener" target="_blank"&gt;Eric Diven&lt;/a&gt;, who left his job to become a carpenter. As he said, &amp;ldquo;The hours are long, the pay sucks, and there&amp;rsquo;s always the opportunity to remove my finger with a table saw, but nobody asks me if I can add an RSS feed to a DBMS, so there&amp;rsquo;s that :-)&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Alvar Aalto's church in Riola</title><link>https://dumaron.github.io/posts/aalto_riola/</link><pubDate>Thu, 20 Aug 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/aalto_riola/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/aalto_riola/riola_hu_eb901a562c860737.jpg" &#10; alt="internal photo of Aalto&amp;#39;s church in Riola" &#10; /&gt;&#10; &#10;&lt;/figure&gt;&#10;&lt;p&gt;During my vacation trip, I had the opportunity to see the only building made by &#10;&#10;&lt;a href="https://en.wikipedia.org/wiki/Alvar_Aalto" rel="noopener" target="_blank"&gt;Alvar Aalto&lt;/a&gt; in Italy: the &#10;&#10;&lt;a href="https://en.wikipedia.org/wiki/Santa_Maria_Assunta,_Riola_di_Vergato" rel="noopener" target="_blank"&gt;church of Santa Maria Assunta&lt;/a&gt; in Riola.&lt;/p&gt;&#10;&lt;p&gt;It was a pleasing encounter on my path of learning about modernism. The church is bright and it emanates order and simplicity. I think it uses some techniques employed in factories to create a more soft and uniform light diffusion, avoiding direct light.&lt;/p&gt;</description></item><item><title>Rams</title><link>https://dumaron.github.io/posts/rams/</link><pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/rams/</guid><description>&lt;a href="https://www.hustwit.com/rams" target="_blank"&gt;&#10;&#10;&#10;&#10;&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/rams/dieter_rams_hu_1350f8a683725aaf.jpg" &#10; alt="Dieter Rams in is office" &#10; /&gt;&#10; &#10;&lt;/figure&gt;&#10;&lt;/a&gt;&#10;&#10;&lt;p&gt;&#10;Rams is a documentary about &lt;a href="https://it.wikipedia.org/wiki/Dieter_Rams" target="_blank"&gt;Dieter Rams&lt;/a&gt;, one of the most influential designers of the 20th century.&#10;The documentary was made by &lt;a href="https://twitter.com/gary_hustwit" target="_blank"&gt;Gary Hustwit&lt;/a&gt; in 2018.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10;I won't say much about Rams: the film is very good and insightful, so my advice is to find some time&#10;to watch it.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10;Probably Rams is so famous today because his critiques to consumerism and industrial production have never been so actual. A call to produce "less but better" finds its space in a world where every person involved in the production, from design to selling, is asked to&#10;compromise quality to produce more.&#10;&lt;/p&gt;</description></item><item><title>The Rails Doctrine</title><link>https://dumaron.github.io/posts/rails_doctrine/</link><pubDate>Tue, 30 Jun 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/rails_doctrine/</guid><description>&lt;a href="https://rubyonrails.org/doctrine/" target="_blank"&gt;&#10;&#10;&#10;&#10;&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/rails_doctrine/doctrine_hu_ae13e67c41c13509.jpg" &#10; alt="Well, this is hard.. it&amp;#39;s a sort of sparkling parchment with a big R on it" &#10; /&gt;&#10; &#10;&lt;/figure&gt;&#10;&lt;/a&gt;&#10;&#10;&lt;p&gt;&#10; I found &lt;a href="https://rubyonrails.org/doctrine/" target="_blank"&gt;the Rails Doctrine page&lt;/a&gt; while watching &#10; &lt;a href="https://www.youtube.com/watch?v=QiR9viVIJgo" target="_blank"&gt;this video from Sam Selikoff&lt;/a&gt;. &#10; The video itself is very interesting, give it a look if you're struggling daily with react - like me.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; Back to the RoR Doctrine page: it's superb.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; I already knew many of the concepts expressed in it. The conceptual battle between frameworks "a la Rails" &#10; and unopinionated frameworks (or even libraries) is not new to everyone who has been in web development in the last 10 years.&#10; But this text resumes all the things that I want to say about the tools I'm using during my job. &#10;&lt;/p&gt;</description></item><item><title>Cleaning up form UI</title><link>https://dumaron.github.io/posts/cleaning_up_form_ui/</link><pubDate>Sun, 21 Jun 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/cleaning_up_form_ui/</guid><description>&lt;a href="https://tonsky.me/blog/form-cleanup/" target="_blank"&gt;&#10; &#10; &#10; &#10; &lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/cleaning_up_form_ui/clean_form_ui_hu_e48f4acf2f6a378a.jpg" &#10; alt="Image of a form UI polished by tonsky with an overlay grid" &#10; /&gt;&#10; &#10; &lt;/figure&gt;&#10;&lt;/a&gt;&#10;&lt;p&gt;&#10; This is an article written by &lt;a href="https://twitter.com/nikitonsky" target="_blank"&gt;Tonsky&lt;/a&gt; about polishing UIs.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; He starts from an (honestly already good) UI taken from &lt;a href="https://www.jetbrains.com/idea/" target="_blank"&gt;IntelliJ IDEA&lt;/a&gt; &#10; and with some simple techniques he makes it even better. The most prominent technique is overlapping the UI with a grid to &#10; show the little imperfections present.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; This simple technique can spot imbalances in many interfaces and doesn't require much effort. While not all the&#10; adjustments he made are wise if used in a web/responsive context, most of them are.&#10;&lt;/p&gt;</description></item><item><title>Helvetica movie</title><link>https://dumaron.github.io/posts/helvetica_movie/</link><pubDate>Sun, 14 Jun 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/helvetica_movie/</guid><description>&lt;a href="https://www.hustwit.com/helvetica" target="_blank"&gt;&#10; &#10; &#10; &#10; &lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/helvetica_movie/helvetica-poster_hu_2a4b6c3028ed624a.jpg" &#10; alt="Helvetica movie banner" &#10; /&gt;&#10; &#10; &lt;/figure&gt;&#10;&lt;/a&gt;&#10;&lt;p&gt;&#10; Directed by &lt;a href="https://twitter.com/gary_hustwit" target="_blank"&gt;Gary Hustwit&lt;/a&gt;, released in 2007, watched by me last week.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; The documentary is pleasant and includes a lot of interviews that are useful ever for who is just superficially interested in typography - like me.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; The most interesting part, in my opinion, is where the different phases of typography's evolution are abstracted into specific &#10; categories - modernism, "grunge typography", neo modernism... and so on. I've never thought about it in this way but, once these terms &#10; are described by the interviews, they help us to navigate in the sea of different fonts and styles around us.&#10;&lt;/p&gt;</description></item><item><title>Powerhouse Company website</title><link>https://dumaron.github.io/posts/powerhouse_company/</link><pubDate>Wed, 10 Jun 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/powerhouse_company/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/powerhouse_company/powerhouse_hu_132694da9a1dd1ea.jpg" &#10; alt="Screenshot of the Powerhouse Company website" &#10; /&gt;&#10; &#10;&lt;/figure&gt;&#10;&lt;p&gt;&#10; Usually, I don't like sites promoted by &lt;a href="https://www.awwwards.com/" target="_blank"&gt;Awwwards&lt;/a&gt;.&lt;br /&gt;&#10; I often expect to be mesmerized by the beautiful effects and the non-ordinary interactivity and I end up finding&#10; them slow and counterintuitive.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; &lt;a href="https://www.powerhouse-company.com/" target="_blank"&gt;Powerhouse company&lt;/a&gt; is an exception.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; &lt;a href="https://www.awwwards.com/powerhouse-company-wins-site-of-the-month-april-2020.html"&#10; target="_blank"&gt;Awwwards "Site of the month" in April 2020&lt;/a&gt;,&#10; it expresses a rare balance between graphic effects and intuitiveness.&#10;&lt;/p&gt;&#10;&lt;p&gt;&#10; The Awwwards article says many things, I'll add here only a few points:&#10; &lt;ul&gt;&#10; &lt;li&gt;the effects' parameters must be well-tuned, resulting in a smooth experience, fluid and not&#10; cumbersome;&lt;/li&gt;&#10; &lt;li&gt;its system of navigation is unorthodox but intuitive, &lt;strong&gt;making the site exploration funny&lt;/strong&gt;;&#10; &lt;/li&gt;&#10; &lt;li&gt;the site is built around &lt;strong&gt;content&lt;/strong&gt;, instead of focusing on graphic effects.&#10; &lt;/li&gt;&#10; &lt;/ul&gt;&#10;&lt;/p&gt;</description></item><item><title>Maybe it's not technology</title><link>https://dumaron.github.io/posts/maybe_its_not_technology/</link><pubDate>Tue, 02 Jun 2020 00:00:00 +0000</pubDate><guid>https://dumaron.github.io/posts/maybe_its_not_technology/</guid><description>&lt;figure&gt;&#10; &lt;img &#10; src="https://dumaron.github.io/posts/maybe_its_not_technology/carelman_hu_6ce10b73421cff5d.jpg" &#10; alt="An illustration by Jacques Carelman" &#10; /&gt;&#10; &#10;&lt;/figure&gt;&#10;&lt;h2 id="wrong-direction"&gt;Wrong direction&lt;/h2&gt;&#10;&lt;p&gt;I had the opportunity to work for many small and medium companies.&lt;/p&gt;&#10;&lt;p&gt;Most of them weren&amp;rsquo;t software house. Most of them weren&amp;rsquo;t up to date with all the technologies of javascript&amp;rsquo;s world. Typescript, Angular, and React were like echoes of distant mermaids: attractive yet too far to make the boat change direction.&lt;/p&gt;&#10;&lt;p&gt;I think that, startups excluded, most companies still fall under this description today. Their softwares are &amp;ldquo;old&amp;rdquo; web application written in javascript v5, jQuery and, God forbid, Bootstrap 3.&lt;/p&gt;</description></item></channel></rss>