<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Douglas Vaghetti</title>
    <link>https://vaghetti.dev/</link>
    <description>Recent content on Douglas Vaghetti</description>
    <image>
      <url>https://vaghetti.dev/apple-touch-icon.png</url>
      <link>https://vaghetti.dev/apple-touch-icon.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Tue, 23 Apr 2024 00:44:00 -0300</lastBuildDate><atom:link href="https://vaghetti.dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Is it ethical to have children if you believe their lives will suck?</title>
      <link>https://vaghetti.dev/posts/children/</link>
      <pubDate>Tue, 23 Apr 2024 00:44:00 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/children/</guid>
      <description>I’m currently 30 years old. A lot of things start happening around this age range: Sex and the city starts being funny, you start to know what mortgages and Minoxidil are, and your friends start having kids — on purpose(!!!).
And just like having kids, talking about the decision of having kids also becomes a common thing. Don’t get me wrong, the demographic implosion is just as real among my friend group as anywhere else.</description>
      <content:encoded><![CDATA[<p>I’m currently 30 years old. A lot of things start happening around this age range: <em>Sex and the city</em> starts being funny, you start to know what mortgages and Minoxidil are, and your friends start having kids — <em>on purpose(!!!).</em></p>
<p>And just like having kids, talking about the decision of having kids also becomes a common thing. Don’t get me wrong, the demographic implosion is just as real among my friend group as anywhere else. Most of them don’t plan on having kids. But now they <em>really thought about it</em> and mostly concluded they don’t want kids, whereas previously they simply didn’t even think about it.</p>
<p>A lot of very compelling reasons are usually presented when justifying this decision, lack of money being the first one, followed by not having a proper house or just not feeling ready, but another frequent and more disturbing reason also shows up somewhat frequently: <strong>They don’t want to have kids because they believe the future is going to suck.</strong></p>
<p>And I get them, most things that make my 30 year old life harder today only seem to be getting worse, at ever accelerating rates — housing crisis, global warming, and other well-known consequences of late capitalism — all of these seem to be here to stay and will probably be much worse by the time these children become adults.</p>
<p>I believe having children is a deeply personal decision, and it is only natural to take what you think the child’s life will look like into account when making this decision. Well, personal decisions are boring, you can’t argue about them on the Internet. And this is an inevitably personal decision because no one knows the future with any meaningful degree of certainty.</p>
<p>Still, it is an interesting question, even if a sad one to ponder about, <em>if we could eliminate the uncertainty of the future factor, if we could know for sure that the future would be horrible, would it be ethical to have children?</em> How bad does the the future have to be for it to be ethically <em>wrong</em> to have children?</p>
<h2 id="is-it-ethical-to-have-children-if-the-future-is-_certainly_-_bad_">Is it ethical to have children if the future is <em>certainly</em> <em>bad</em>?</h2>
<p>Let’s start with a simple thought exercise: If you were cursed by a witch so that any child you bring onto the planet would live an absolutely miserable life, inescapably suffering every single second of its life without experiencing a single joyful or happy moment — an endless, uninterrupted stream of meaningless suffering, pain and sickness followed by a horrible death. Would it be ethical to bring this child into the world?</p>
<p>I think the vast majority of people would answer no to this question. The reasoning usually goes along the lines of “<em>Well, if I could chose between being born to live this life vs not being born at all, I would chose not to be born</em>”. This is quite far from a properly structured logical argument, and any actual philosopher reading this is probably offended at this point but… It <em>feels quite unethical?</em></p>
<p>The point I’m trying to make with this is that there is a point where the expected suffering in a child’s life makes it unethical to give birth to said child. The hard question is <em>where</em> this point is.</p>
<p>So where is it? At what point does it become unethical to have children? I don’t know! I’ve been thinking about this for quite some time and I couldn’t reach any intellectually satisfying answer. Would a single moment of joy make up for an otherwise miserable life like the one from the thought exercise? Probably not if that moment of joy is eating a chocolate bar, but maybe if that moment of joy is finding a universal cure for cancer? Even without the future uncertainty factor, it is still very personal.</p>
<p>All this pondering led me into at least one valuable — albeit personal — insight: <strong>Life could be a whole lot worse and I would still choose to live it</strong>. Sure, global warming and capitalism will make being 30 in 2054 probably worse than being 30 in 2024, but being 30 in 2054 will still probably be better than being 30 in the 1800s or the 1500s, and I would still choose to live these worse lives over not living at all.</p>
<p>Does that mean I’m planning on having children? Nope, can&rsquo;t afford it.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>A better mental model for reasoning about Typescript types</title>
      <link>https://vaghetti.dev/posts/typescript-types/</link>
      <pubDate>Sat, 16 Jul 2022 11:16:29 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/typescript-types/</guid>
      <description>I work in a pretty big Typescript code base on my day job. The one thing I see people struggling the most when learning it is the type system.
Typescript types are rather special in that they exist during compile time but not during runtime. I believe it is a better mental model to think of them as type annotations than proper types like the ones you get in a language like Go or Java.</description>
      <content:encoded><![CDATA[<p>I work in a pretty big Typescript code base on my day job.
The one thing I see people struggling the most when learning it is the type system.</p>
<p>Typescript types are rather special in that <em>they exist during compile time but not during runtime</em>.
I believe it is a better mental model to think of them as type annotations than proper types like the ones you get in a language like Go or Java.</p>
<p>Let me give an example in Go:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#66d9ef">type</span> <span style="color:#a6e22e">MyType</span> <span style="color:#66d9ef">struct</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">A</span> <span style="color:#66d9ef">int</span>
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">B</span> <span style="color:#66d9ef">int</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">func</span> <span style="color:#a6e22e">myFunction</span>(<span style="color:#a6e22e">input</span> <span style="color:#a6e22e">MyType</span>) {
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">bytes</span>, <span style="color:#a6e22e">_</span> <span style="color:#f92672">:=</span> <span style="color:#a6e22e">json</span>.<span style="color:#a6e22e">Marshal</span>(<span style="color:#a6e22e">str</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">fmt</span>.<span style="color:#a6e22e">Println</span>(string(<span style="color:#a6e22e">bytes</span>))
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>In the example above, the Go type system guarantees whatever is passed into your function will have the <code>A</code> and <code>B</code> fields, they&rsquo;ll both be integers and no other field is going to be there. Anything else simply won&rsquo;t compile.</p>
<p>For comparison, take a look at this similar piece Typescript code:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-typescript" data-lang="typescript"><span style="display:flex;"><span><span style="color:#66d9ef">type</span> <span style="color:#a6e22e">MyType</span> <span style="color:#f92672">=</span> {
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">a</span>: <span style="color:#66d9ef">number</span>;
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">b</span>: <span style="color:#66d9ef">number</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">function</span> <span style="color:#a6e22e">myFunction</span>(<span style="color:#a6e22e">input</span>: <span style="color:#66d9ef">MyType</span>){
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#a6e22e">JSON</span>.<span style="color:#a6e22e">stringify</span>(<span style="color:#a6e22e">input</span>))
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>If you&rsquo;re coming into Typescript from a strongly typed language background like me, you might assume these two pieces of code would offer similar guarantees to the <code>myFunction</code> function.
That&rsquo;s not always the case in Typescript.
Let&rsquo;s see some interesting things Typescript will allow you to do with this function:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-typescript" data-lang="typescript"><span style="display:flex;"><span><span style="color:#a6e22e">myFunction</span>({ <span style="color:#a6e22e">a</span>: <span style="color:#66d9ef">1</span>, <span style="color:#a6e22e">b</span>: <span style="color:#66d9ef">2</span> }); <span style="color:#75715e">// works fine as expected, outputs {&#34;a&#34;:1,&#34;b&#34;:2}
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#a6e22e">myFunction</span>({ <span style="color:#a6e22e">a</span>: <span style="color:#66d9ef">1</span>, <span style="color:#a6e22e">b</span>: <span style="color:#66d9ef">2</span>, <span style="color:#a6e22e">c</span>: <span style="color:#66d9ef">3</span> }); <span style="color:#75715e">//  Won&#39;t compile
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#a6e22e">myFunction</span>({ <span style="color:#a6e22e">a</span>: <span style="color:#66d9ef">1</span>, <span style="color:#a6e22e">b</span>: <span style="color:#66d9ef">2</span>, <span style="color:#a6e22e">c</span>: <span style="color:#66d9ef">3</span> } <span style="color:#66d9ef">as</span> <span style="color:#a6e22e">MyType</span>); <span style="color:#75715e">// works fine, outputs {&#34;a&#34;:1,&#34;b&#34;:2,&#34;c&#34;:3}
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#a6e22e">myFunction</span>(<span style="color:#e6db74">&#39;im just a string!&#39;</span> <span style="color:#66d9ef">as</span> <span style="color:#a6e22e">MyType</span>); <span style="color:#75715e">// Won&#39;t compile, thankfully
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#a6e22e">myFunction</span>((<span style="color:#e6db74">&#39;im just a string!&#39;</span> <span style="color:#66d9ef">as</span> <span style="color:#66d9ef">unknown</span>) <span style="color:#66d9ef">as</span> <span style="color:#a6e22e">MyType</span>); <span style="color:#75715e">// Works fine, outputs &#34;im just a string!&#34;, but at this point it is quite obvious we&#39;re doing something wrong
</span></span></span></code></pre></div><p>It really boils down to the behavior of the <code>as</code> keyword &ndash; <code>as</code> is <em>not</em> a cast.
You can&rsquo;t cast anything in Typescript because there are no Typescript types in runtime!
All <code>as</code> is doing is telling the Typescript compiler something like <em>&ldquo;relax, compiler, I know what I&rsquo;m doing.&rdquo;</em>.</p>
<p>Here&rsquo;s what the compiled Javascript code for the functions above looks like:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#a6e22e">myFunction</span>({ <span style="color:#a6e22e">a</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span>, <span style="color:#a6e22e">b</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">2</span> }); <span style="color:#75715e">// works fine as expected, outputs {&#34;a&#34;:1,&#34;b&#34;:2}
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#a6e22e">myFunction</span>({ <span style="color:#a6e22e">a</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span>, <span style="color:#a6e22e">b</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">2</span>, <span style="color:#a6e22e">c</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">3</span> }); <span style="color:#75715e">//  Won&#39;t compile
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#a6e22e">myFunction</span>({ <span style="color:#a6e22e">a</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span>, <span style="color:#a6e22e">b</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">2</span>, <span style="color:#a6e22e">c</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">3</span> }); <span style="color:#75715e">// works fine, outputs {&#34;a&#34;:1,&#34;b&#34;:2,&#34;c&#34;:3}
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#a6e22e">myFunction</span>(<span style="color:#e6db74">&#39;im just a string!&#39;</span>); <span style="color:#75715e">// Won&#39;t compile, thankfully
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#a6e22e">myFunction</span>(<span style="color:#e6db74">&#39;im just a string!&#39;</span>); <span style="color:#75715e">// Works fine, outputs &#34;im just a string!&#34;, but at this point it is quite obvious you&#39;re doing something wrong
</span></span></span></code></pre></div><p>All type annotations are simply removed in runtime.
Typescript is only there until your program is compiled.
After compilation, it is just plain old Javascript again.</p>
<p>Because of this, in Typescript, your type checks are as good as you make them be.
They&rsquo;re not a hard limitation imposed by the compiler like they are in Go.
Typescript types more like hints to the rest of the code.
At any point you can override them or simply use <code>any</code>.
They&rsquo;re there to help you write code that works, but they don&rsquo;t change the program that will be actually executed.</p>
<p>This is something that took me some time to wrap my head around &ndash; <strong>It is a better mental model to think of Typescript as a very advanced linter for Javascript with type syntax than to think of it as a proper typed language that gets compiled into Javascript</strong> &ndash; Most Typescript typing code you write <em>does not</em> get compiled into Javascript, it is just used for compilation checks and then removed. If you want to have real type checks in runtime using Typescript, you have to use <a href="https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards">type guards</a></p>
]]></content:encoded>
    </item>
    
    <item>
      <title>&#34;You Don&#39;t Need to Trust Science Because You Can Test It.&#34; -  but Can You?</title>
      <link>https://vaghetti.dev/posts/science/</link>
      <pubDate>Sun, 10 Apr 2022 11:54:27 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/science/</guid>
      <description>Consider TV weather forecasts &amp;ndash; Every day, someone will show up in your television and give you a prediction of what the weather is going to be like in your area over the next couple of days. Everyone knows weather forecasting is never 100% accurate. Sometimes it says it will rain, and it doesn&amp;rsquo;t. But they&amp;rsquo;ll mostly get it right so people listen to what the weather forecast says because it is useful.</description>
      <content:encoded><![CDATA[<p>Consider TV weather forecasts &ndash; Every day, someone will show up in your television and give you a prediction of what the weather is going to be like in your area over the next couple of days.
Everyone knows weather forecasting is never 100% accurate.
Sometimes it says it will rain, and it doesn&rsquo;t.
But they&rsquo;ll mostly get it right so people listen to what the weather forecast says because it is useful.
If they got it wrong too often, people would just stop listening because it isn&rsquo;t useful.</p>
<p>For everyone except scientists, their relation with science is very similar to that.
They will listen to what scientists say and, over time, they will evaluate if what they say matches their perception of what is true.
If they are perceived as wrong often, trust goes down.</p>
<p><em>&ldquo;But that&rsquo;s wrong!&rdquo;</em> you might think; <em>&ldquo;If you disagree with science you should go test it and prove your point! Science has methodologies, experiments, peer review and so on! You should believe science based on its methods and data, not your biased and limited personal perception!&rdquo;</em> &ndash;
But is that reasonable to ask that?</p>
<p>Almost all of our scientific knowledge is:</p>
<ul>
<li>Written in English</li>
<li>Requires loads of specialized knowledge to even understand</li>
<li>Ranges from impractical all the way to completely impossible to reproduce</li>
</ul>
<p>And that&rsquo;s fine! Scientific papers are meant to be read and reproduced by other scientists, not the average person on the street.
Even scientists themselves have to rely on trust for scientific fields outside their expertise.
People don&rsquo;t have particle accelerators at home, nor deep learning GPUs or 1000s of people in their basement willing to double-blind test new drugs.</p>
<h3 id="believing-science-is-a-matter-of-trust-too-just-like-news">Believing science is a matter of trust too, just like news</h3>
<p>It is clear, then, that believing science is a matter of trusting institutions and not about actually understanding and reproducing science.
The scientific community is, from this perspective, not very different from a TV channel reporting celebrity gossip.</p>
<p>The methods are wildly different, but the way the message makes it to the average person is quite similar.
Compare these two statements:</p>
<ul>
<li><em>&ldquo;Channel X reports that artist Y is having an affair with her lawyer&rdquo;</em></li>
<li><em>&ldquo;University X scientists say pesticide Y increases cancer risk&rdquo;</em></li>
</ul>
<p>In both cases, you can&rsquo;t really verify the truth first hand.
You can&rsquo;t just call Artist Y and ask him if he&rsquo;s having an affair just as much as you can&rsquo;t expose some group of people to some pesticide while giving the other group placebo and observe them for some time to see if they get cancer more often than the placebo group.</p>
<p>Since it is not possible to actually understand and reproduce modern science, people need to pick institutions to trust.</p>
<h3 id="choosing-institutions-to-trust">Choosing institutions to trust</h3>
<p>And how should people pick these institutions?
Unlike the weather forecast, people can&rsquo;t just compare the claims made by scientists to their personal experience to decide who to trust. Their sample data is just too small.</p>
<p>Think about deciding to take a Covid vaccine or not.
People can have very different personal experiences on whether vaccines work or not.
Person A might know lots of different healthy young people who took the vaccine and still got it and died.
Meanwhile, Person B might know several older people who took vaccines and survived an exposure.</p>
<p>These personal experiences don&rsquo;t directly contradict the scientific consensus.
The consensus simply says vaccines increase your odds of surviving, but they don&rsquo;t have a 100% success rate.
Yet, if Person A is a regular reader of alternative alt-science news outlets, her personal experience would be perfectly consistent with her media outlets that say vaccines don&rsquo;t work.
Her friends, family and trusted politicians probably also think the same way.</p>
<p>In big enough numbers, the scientific consensus says it is clear that vaccines do reduce death rates.
But looking at big numbers first-hand is something that only scientists get to do.
For everyone else, it becomes a matter of trusting the institutions measuring and reporting death rates.</p>
<h3 id="if-it-isnt-possible-to-see-what-is-true-to-decide-which-institution-to-trust-what-should-people-do">If it isn&rsquo;t possible to see what is true to decide which institution to trust, what should people do?</h3>
<p>I can&rsquo;t really tell you which institutions to trust, but I hope to have persuaded you to show empathy.
People can have completely different views, yet their views can be entirely consistent with the reality they experience and the news they get from the institutions they trust.
Your climate change denier friend simply in another bubble.
Don&rsquo;t call him stupid.
He&rsquo;s probably still a nice guy.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>We need platform regulation</title>
      <link>https://vaghetti.dev/posts/platform-regulation/</link>
      <pubDate>Thu, 07 Apr 2022 21:30:00 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/platform-regulation/</guid>
      <description>It&amp;rsquo;s an everyday thing at this point. Amazon abused its position as a platform to use third party seller data to compete against them. Apple abuses its position as an application platform to compete with Spotify and other streaming services. YouTube abuses its position as a video platform banning content producers without offering any recourse. The list goes on.
In a more traditional business, such as a factory, you have a set of suppliers that sell you goods you need, like steel and machinery.</description>
      <content:encoded><![CDATA[<p>It&rsquo;s an everyday thing at this point.
<a href="https://arstechnica.com/tech-policy/2020/11/eu-launches-second-amazon-probe-finds-company-distorts-competition/">Amazon abused</a> its position as a platform to use third party seller data to compete against them.
<a href="https://timetoplayfair.com/timeline/">Apple abuses</a> its position as an application platform to compete with Spotify and other streaming services.
<a href="https://arstechnica.com/gadgets/2021/02/terraria-developer-cancels-google-stadia-port-after-youtube-account-ban/">YouTube abuses</a> its position as a video platform banning content producers without offering any recourse. The list goes on.</p>
<p>In a more traditional business, such as a factory, you have a set of suppliers that sell you goods you need, like steel and machinery.
There is a power dynamic between suppliers and purchasers.
If there are few suppliers, they get to charge more because buyers don&rsquo;t have much choice.
If you are running a big factory and purchasing lots of steel, you can negotiate better prices with steel suppliers than if you were running a smaller factory, for example.</p>
<p>For platform businesses, users trying to make money in the platform can be thought of as suppliers.
Those would be Amazon third party sellers, YouTube video producers or companies selling apps the the app store, for example.</p>
<p>A similar power dynamic exists between platform businesses and their supplier-users.
But in this scenario the suppliers are generally so much smaller and replaceable that they have close to no leverage at all.
Some bigger players can get better deals from platform owners, but that is a tiny fraction of the platform suppliers.</p>
<p>For the average app developer out there, if they don&rsquo;t like the app store terms of service, their only alternative is to give up selling their product to almost half of the smartphone market.
There is no negotiation, they are just too small for Apple to care.</p>
<p>Consumers are not directly harmed when suppliers are abused, so they stay on the platform.
In fact, consumers sometimes even benefit from this supplier abuse in the form of lower prices.
Suppliers have no meaningful alternative, so they have to endure it.
As the platform grows bigger, this leverage imbalance increases proportionally.</p>
<p>So what is the problem then?
Consumers are not harmed, sounds like a free market working as expected, doesn&rsquo;t it?
Not quite.</p>
<p>Think of full time content producers in a platform like YouTube:
The platform is frequently their main or even only source of income.
They frequently don&rsquo;t have any other platform to get income from &ndash; YouTube is almost completely dominant in the video space.
Going to another platform could greatly reduce their revenue.</p>
<p>Content producers in a platform are subject to the economics of being a supplier, but in many ways they are also quite similar to <em>employees</em>.
I am not suggesting YouTubers or app store sellers should be treated as employees.
But treating them as suppliers also assumes they&rsquo;re in a position where they have alternatives and negotiation leverage that they don&rsquo;t.</p>
<p>We need regulation to control abuse from platform owners to ensure competition and innovation can continue to happen and thrive inside platforms.</p>
<h2 id="is-regulation-really-the-solution">Is regulation really the solution?</h2>
<p>Regulation should always be treated as a last resort.
It is too easy to get it wrong and end up in a state worse than things were before regulations were enacted.
A free market solution is always ideal, people should just vote with their money.
However, I don&rsquo;t think this is really possible in this case.</p>
<p>A new platform could always come up with some innovation and replace existing platforms.
But platform economics are naturally monopolistic: The bigger a platform is, the more suppliers are attracted to it.
The more suppliers there are, the more attractive the platform becomes to consumers.
It is a self-reinforcing loop that usually converges into one or two big players competing in a given space.</p>
<p>Even if one platform replaces the other, we end up with another big platform with just as much leverage over their suppliers.</p>
<h2 id="defining-what-a-platform-is">Defining what a platform is</h2>
<p>For the sake of this post, I&rsquo;ll define a platform in a rather reductive way, but one that is very easy to test for:</p>
<p><em>A platform is any online service where users can sell goods or services to other users directly or indirectly</em>.</p>
<p>This definition is very broad, but it works well because the regulations I&rsquo;m proposing are rather simple.
It would cover a platform like Uber, where drivers would be suppliers, as well as Amazon and its 3rd party sellers or Facebook and its advertisers.</p>
<h2 id="regulations-i-would-like-to-see">Regulations I would like to see</h2>
<p>My proposals are few and simple<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, which is good in itself.
But I think they would provide tremendous benefit in proportion to the effort they would require to implement.</p>
<h3 id="platforms-cant-deny-access-to-accessfeatures-unless-a-rule-in-the-supplier-contract-was-broken">Platforms can&rsquo;t deny access to access/features unless a rule in the supplier contract was broken.</h3>
<p>What this means is it would be illegal, for example, for YouTube to de-monetize a channel because the owners are doing something shady, but not breaking any specific rules in their user agreement.</p>
<p>Contract clauses that give the platform freedom to cut features/access with no contractual clause being broken would also be illegal.
Platforms would still get to write their own terms of service, but as long as a user didn&rsquo;t break any rules in his user agreement, he can&rsquo;t be denied service.</p>
<p>As a consequence, suppliers can naturally go to court and prove they didn&rsquo;t break any platform rule and get their access restored, should that be the case.</p>
<p>Suppliers need some degree of legal safety.
Letting platforms deny their service with no option for legal recourse as they do now is harmful for the economy and also for our freedom of speech.</p>
<h3 id="platform-owners-should-be-subject-to-the-same-terms-of-service-when-competing">Platform owners should be subject to the same terms of service when competing</h3>
<p>Spotify has to pay 30% of its revenues to the App Store<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> while Apple Music doesn&rsquo;t.
When Google shows ads for the Gmail app on the Play Store, it doesn&rsquo;t have to pay anyone for the privilege.</p>
<p>This is bad.
It allows platform owners to have artificially cheaper products or artificially higher margins just because they own the platform, not because of any characteristic of their product.</p>
<p>I reckon this one is quite tricky to implement.
Who should get the 30% Apple Music fees? Apple can&rsquo;t just pay itself.
Should this money just get taxed? Donated to charity? I don&rsquo;t really have a good answer.</p>
<p>Allowing platform owners to do as they please inside their realm is harmful for competition.
But ensuring they are actually playing by the same rules as everyone else is really hard to enforce.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Platforms are relatively new as a business model, but it is already quite clear they will play an important role for the forseeable future.
They are already important enough that their abuse is causing substantial harm. Because of this, I believe some regulation is needed.</p>
<p>I tried to err on the side of caution.
I discarded more radical ideas such as simply prohibiting platform owners from competing inside their own platforms.
It would be much easier to implement, but I think it would still be a net loss for society.</p>
<p>I&rsquo;m not a lawyer, some things I&rsquo;m proposing here might not even be legal or viable.
My idea here is not to turn these specific proposals into law.
I just want to spark a debate that I think we need to have as a society.</p>
<p>What are your thoughts?
Are the existing laws adequate for platform businesses?
Should the platform market just be left alone and competition will eventually control abuse?
Am I just exaggerating? Perhaps what I refer to as abuse here is just standard business practice and nothing should be done about it?</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Simple to describe doesn&rsquo;t necessarily mean they would be simple. I&rsquo;m just a programmer rambling about broad probably overly simplified ideas, I&rsquo;m not a lawyer!&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Or offer terrible UX for users to pay for their service in some other place.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>Do blogs still matter?</title>
      <link>https://vaghetti.dev/posts/blogs/</link>
      <pubDate>Sun, 27 Mar 2022 20:47:00 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/blogs/</guid>
      <description>I started this personal blog a bit more than a month ago. It has been a really interesting experiment. Some posts even made it to the front page of hacker news. Google analytics tells me this blog had about 46 thousand page views across all posts!
Even with way more views than I was expecting, it&amp;rsquo;s been really hard to convert these viewers into a more regular following for the blog.</description>
      <content:encoded><![CDATA[<p>I started this personal blog a bit more than a month ago.
It has been a really interesting experiment. Some posts even made it to the front page of hacker news.
Google analytics tells me this blog had about 46 thousand page views across all posts!</p>
<p>Even with way more views than I was expecting,
it&rsquo;s been really hard to convert these viewers into a more regular following for the blog.
I believe this problem stems from a lack of a good <em>platform</em> to build this kind of blog upon.
A good blogging platform should provide the ability to <em>follow</em> and <em>discover</em> content.
Hosting a blog on Github pages like I do right now doesn&rsquo;t do either of these things well.</p>
<h2 id="the-blogging-space-in-2022">The blogging space in 2022</h2>
<p>If you&rsquo;re starting a tech blog in 2022 these are the most relevant options:</p>
<ul>
<li>Medium</li>
<li>Substack</li>
<li>GitHub pages or self-hosting (requires technical know-how)</li>
<li>Older platforms like Blogger or WordPress.</li>
</ul>
<p><a href="https://medium.com">Medium</a> is a blog aggregator.
Users submit their blog posts in their pages, which are like YouTube channels.
Instead of having free content with ads like YouTube, you can read a maximum of 3 free articles per month, then you hit a paywall.
You don&rsquo;t pay for individual writers&rsquo; content. You just subscribe to Medium and it splits the subscription money across writers according to their readership.</p>
<p>The Medium model is interesting and bold. But the paywall is a no go for me.
I wanted my friends to be able to read my posts, almost none of them have a paid Medium subscription.
In fact, I&rsquo;ve only ever met one person who subscribes to Medium, so I felt it would limit my reach too much.</p>
<p><a href="https://substack.com">Substack</a> is more centered around the newsletter format.
Users can subscribe to individual blogs and get new posts in their email.
Writers can charge for some or all of their posts through monthly subscriptions.
The experience is all centered around email and subscriptions.
You don&rsquo;t go to Substack to find things to read like medium, you just get new posts in your inbox.</p>
<p><a href="https://pages.github.com">GitHub Pages</a>, self hosting, <a href="https://www.blogger.com">Blogger</a> and <a href="https://wordpress.com">WordPress</a> are pretty equivalent in terms of discovery and subscribing.
They&rsquo;re just tools to get your blog running in some domain, not platforms where people go to consume written content.</p>
<p>Medium and Substack are focused on people who want to make a living out of writing.
It makes sense, <a href="/posts/journalism">journalism is too important to depend exclusively on ads</a>.
Real journalism should definitely have a platform to be published on and make money off it.</p>
<p>But there is still no <em>blogging platform</em> that caters to casual blogs like this one.
I don&rsquo;t wanna make a living out of this blog, I just want to share my thoughts online.
A blog platform would be a great match for my needs, but only Medium is trying to do this and they have a paywall.</p>
<h2 id="content-discovery-for-blogs">Content discovery for blogs</h2>
<p>I have <a href="/posts/nichecasual/">previously discussed</a> how  content discovery has evolved for other media types.
If you&rsquo;re consuming music or movies, Spotify and Netflix will have a personal profile of you with suggestions specifically tailored for you based on your previously consumed content.</p>
<p>Medium does this for blogging, but only behind a paywall.
Other than that, blog content discovery is still stuck on 2000s-era Hacker News or Reddit style popularity ranking websites.</p>
<p>This cross-blog content recommendation experience is something that is only possible with a platform-centric approach.
It is not something that can be achieved using GitHub pages or the individual writer mailing lists from Substack.</p>
<h2 id="blog-subscriptions-have-too-much-friction">Blog subscriptions have too much friction</h2>
<p>Let&rsquo;s say you pull off a Reddit home page with long form text (good luck) and get loads of people to your blog.
Give it a couple days and your traffic will be pretty much back to your baseline.
Even if they like your content, people are not simply going to put a blog in their browser favorites bar and visit it daily to see of there&rsquo;s something new.</p>
<p>A blogging platform can offer the best possible subscription experience: <em>a subscribe button</em>.
In every single post in Medium, there&rsquo;s a <em>Follow</em> button you can click on to subscribe to an author.
Whenever you go to the home page of the platform, you see new stuff from authors you subscribed to.</p>
<p>Blogs have RSS, but it is still too clumsy for non-technical people.
Copying some RSS URL into whatever RSS reader you use is not as user friendly as just clicking &ldquo;subscribe&rdquo; on YouTube.
Most people don&rsquo;t even know what RSS is!</p>
<p>I see a lot of blogs using mailing lists to notify readers about new posts as well.
It kinda works, but it is still worse than a good platform; It adds too much friction.
Handing out an email takes some amount of trust, because of spam and so on.
People usually don&rsquo;t give their email to some random tech blog they found on Reddit.</p>
<p>Compare that to YouTube.
There&rsquo;s a subscribe button right below every single video.
It takes literally one click.
There&rsquo;s no need to worry about spam either.
If the user doesn&rsquo;t like the content it also takes a single click to unsubscribe; no need to worry about spam.</p>
<h2 id="is-the-casual-blog-platform-space-up-for-grabs">Is the casual blog platform space up for grabs?</h2>
<p>Medium offers great content discovery and integrated subscriptions.
But only for people who are actually willing to read long form text AND pay for it.
That&rsquo;s too limiting for many blogs, this one included.</p>
<p>Substack doesn&rsquo;t want to be a central platform where people go to consume text content like YouTube is for video or Medium for text.
It just wants to perform the boring technical tasks necessary to run a paid email newsletter.
It is interesting for those who don&rsquo;t want to depend on a platform like Medium to earn their living (you own the mailing list), but the platform tradeoffs can be well worth it for a more casual blog like this one.</p>
<p>GitHub pages and self-hosting can be fun for technical people,
but they don&rsquo;t offer none of the conveniences a blogging platform provides.</p>
<p>That&rsquo;s it. These are all the options that you really have for starting a blog today.
You&rsquo;re stuck between Medium&rsquo;s paywall and Substack&rsquo;s lack of content discovery.</p>
<h2 id="so-do-blogs-still-matter">So, do blogs still matter?</h2>
<p>Like blogs now, podcasts were in a bit of a limbo some years ago.
At some point, podcasters found out that posting videos of the podcast being recorded on YouTube worked really well.
YouTube&rsquo;s huge user base and content discovery brought in lots of people who did not previously consume podcasts.
The format has been flourishing ever since.</p>
<p>Maybe blogs could have a similar breakthrough?
Whoever figures out a way to tap into a much bigger market for users and content discovery to draw in readers will quickly become a leader in the blogging space.</p>
<p>Platforms will follow the money.
The blogging space today is as boring as I described because there is a lot more money being made in other spaces like video.</p>
<p>Maybe if blogs start to flourish like podcasts did, we&rsquo;ll see new players fighting for the blog platform space.
Spotify was quick to notice the change in the podcasts space and invested heavily in becoming a platform for it. <a href="https://www.forbes.com/sites/johanmoreno/2021/09/23/as-spotify-becomes-the-top-dog-in-podcast-directories-google-lags-behind/?sh=58ca49f4675b">It seems to be working</a>.</p>
<p>If we see some VC-funded unicorn blogging platform pulling the <a href="https://www.forbes.com/sites/masonbissada/2022/02/17/joe-rogans-spotify-deal-allegedly-worth-200-million-doubling-initial-report/?sh=540163b92c39">Joe Rogan move</a> on some major blog, we&rsquo;ll know blogs matter again. Until then, I think I&rsquo;ll probably stick with this Hugo blog on Github Pages.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>Marketers are censoring journalism and everyone is just fine with it</title>
      <link>https://vaghetti.dev/posts/journalism/</link>
      <pubDate>Sat, 19 Mar 2022 10:44:44 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/journalism/</guid>
      <description>The internet can&amp;rsquo;t seem to get tired of complaining about how bad modern journalism is. There are lots of reasons for this perceived loss of quality, but there is one that I find specially worrisome that I don&amp;rsquo;t think is mentioned often enough: Modern journalism is being censored by marketing departments.
How things were before Journalism has always been at least partially funded by advertising. But advertisers didn&amp;rsquo;t have as much power at least until digital advertising became a thing.</description>
      <content:encoded><![CDATA[<p>The internet can&rsquo;t seem to get tired of complaining about how bad modern journalism is.
There are lots of reasons for this perceived loss of quality, but there is one that I find specially worrisome that I don&rsquo;t think is mentioned often enough: <em>Modern journalism is being censored by marketing departments</em>.</p>
<h2 id="how-things-were-before">How things were before</h2>
<p>Journalism has always been at least partially funded by advertising. But advertisers didn&rsquo;t have as much power at least until digital advertising became a thing.</p>
<p>Back when people actually read newspapers, there were usually one to three relevant newspapers with national circulation, plus some other smaller ones on the city level. There were also some magazines if you wanted to target a more specific group. The introduction of television didn&rsquo;t change the math much. You get a few relevant national news channels, plus a few local ones, and cable for more niche content.</p>
<p>One important thing to note here is that both in print media and television, advertisers negotiated ads with the entire newspaper or TV channel, not with individual writers or shows. Advertisers had the ability to chose at which time slot/page their ads would show up, but they didn&rsquo;t have the possibility of denying funding to some specific show/writer they didn&rsquo;t like without tarnishing their relationship with the whole channel/newspaper.</p>
<h2 id="how-this-dynamic-changed-with-the-web">How this dynamic changed with the web</h2>
<p>In contrast, digital advertising allows for much more more granular choices, and thus more power over individual publications. Now advertisers frequently negotiate contracts with an individual podcast or Youtube channel. Even when using Facebook or Google for ad placements, they still get the ability to just blacklist certain outlets or keywords.</p>
<p>Look no further than <a href="https://en.wikipedia.org/wiki/Sleeping_Giants">sleeping giants</a>. They were able to cause real change by pressuring advertisers to cancel funding for certain content. I am not saying the content they helped de-funding was good for society. But deciding which kinds of journalism should get funded is not something that marketing departments should be doing.</p>
<p>A marketing department has one main incentive: to bring in sales. Everything else is secondary. Standing up for what is right is hardly ever part of the equation, no matter what they think is right. If your company sells toothpaste, you just want to stay away from polemic topics and sell toothpaste.</p>
<p>Many ideas we take for granted today were fringe ideas not long ago: women voting, forbidding cigarette use in closed public spaces, ending slavery, etc. All it would take to de-fund publications proposing these kinds of fringe ideas today is a couple hours of twitter rage. Killing ideas can be as simple as de-monetizing a Youtube channel.</p>
<h2 id="is-de-monetising-something-really-censorship">Is de-monetising something really censorship?</h2>
<p>I also frequently see people saying that denying funding is not the same as censorship because the content can stay online. That&rsquo;s ridiculous. We can argue about semantics all day, but if people are trying to de-fund certain content with the explicit goal of having less people see it, then it clearly is being done as a form of censorship.</p>
<p>I&rsquo;m not arguing here that advertisers shouldn&rsquo;t get to chose which publications they associate their brand with. That would also cause some pretty bad side effects too. I&rsquo;m arguing that this model that all journalism has to be free and ad-supported is not sustainable on the long term.</p>
<h2 id="if-not-ads-then-what">If not ads, then what?</h2>
<p>The obvious answer here is to just pay for journalism. As long as there are people who want to consume certain content, the content producer will have the money he needs to keep producing it. But of course, people are just not willing to pay for journalism anymore.</p>
<p>There are other interesting ideas in this space. Some of them even make sensible use of crypto/blockchain. But I haven&rsquo;t seen any of them achieve any meaningful degree of success yet. We&rsquo;re still mostly split between paywalled content for a few publications with very high brand awareness, and free ad supported content for everything else.</p>
<p>I think journalism will still get worse before it gets better. History shows us that from time to time, the majority is wrong, and advertisers will almost inevitably cater to the majority.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>Seeking That Sweet Sweet Vim Joy</title>
      <link>https://vaghetti.dev/posts/vim1/</link>
      <pubDate>Sun, 13 Mar 2022 13:29:36 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/vim1/</guid>
      <description>Text editors are a funny piece of software. They are undeniably important. You can&amp;rsquo;t write any code without them1. Text editors are like the software engineer equivalent of a hammer for a woodworker: not the only tool we use, but one we&amp;rsquo;ll certainly use a lot during our entire careers.
It would make sense, then, to invest as much time as possible trying to be as good as possible with text editors, right?</description>
      <content:encoded><![CDATA[<p>Text editors are a funny piece of software. They are undeniably important. You can&rsquo;t write any code without them<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.
Text editors are like the software engineer equivalent of a hammer for a woodworker: not the only tool we use, but one we&rsquo;ll certainly use a lot during our entire careers.</p>
<p>It would make sense, then, to invest  as much time as possible trying to be as good as possible with text editors, right? It is not that simple. Just like you can&rsquo;t be a great woodworker by just being extremely good with a hammer, you can&rsquo;t be a great software engineer by just being very good with a text editor. In fact, as engineers climb the seniority ladder, they tend to spend less and less time actually writing code, which further diminishes the expected returns of being good at editing text.</p>
<p>There is one important difference, however, between hammering nails and using a text editor: <em>you can get better at hammering nails by just doing it</em>.
A woodworker that has been in the business for decades will hardly ever hit his fingers with a hammer.
An engineer can spend an entire career writing code and still be painfully inept at using his text editor of choice, using the most basic features that any text box on a browser would provide and nothing else.</p>
<h2 id="its-not-about-productivity-its-about-joy">It&rsquo;s not about productivity, it&rsquo;s about joy</h2>
<p>I strongly believe developers should seek to make their work tooling as <a href="/posts/joy">joyful</a> as possible. Pressing and holding backspace until an entire line of text is deleted doesn&rsquo;t bring joy.</p>
<p>Getting better at editing text like having a 4k monitor. It won&rsquo;t allow you to deliver software any better or faster. You can type and read code perfectly fine on, say, a full HD monitor. But looking at text characters on a 4K monitor is just more enjoyable. It&rsquo;s like getting a next generation video game console. When you first play the new-generation games, they don&rsquo;t look that much better. But when you go back and play the old games again they look much worse than you remembered.</p>
<p>Going beyond the basics with a text editor feels the same way. When you first start using multiple cursors to edit several lines at once, it feels nice but you don&rsquo;t make a big deal out of it. It is only much later when you&rsquo;re used to have multi-cursor editing and for some reason you can&rsquo;t use it that you realize how much better it is to have it.</p>
<p>Once you&rsquo;re bitten, there&rsquo;s no way back. You&rsquo;ll start to mildly suffer when watching colleagues editing text inefficiently in zoom calls. I sometimes fail to restrain myself and just start yelling keyboard shortcuts at people I have more intimacy with. I know, I&rsquo;m a terrible person.</p>
<h2 id="seeking-the-joy-of-vim">Seeking the joy of Vim</h2>
<p>If you&rsquo;ve read this far, you&rsquo;re quite probably expecting me to start talking about the virtues of Vim or Emacs now. I&rsquo;m not going to do that. I&rsquo;ve never used any of these for anything other than some occasional file editing on some terminal I SSH&rsquo;d into. I&rsquo;m nothing but an average VSCode/IntelliJ Joe who really appreciates keyboard shortcuts and multi-cursor support at this point.</p>
<p>I&rsquo;m planning to change that. If I&rsquo;m going to annoy my colleagues by telling them about shortcuts that will save them less than 5 minutes over the course of an entire day, I might as well just annoy them by telling them how much better Vim is instead.</p>
<p>I read many times about the benefits of both Emacs and Vim, and tried to actually use them for work a couple times. In my previous attempts, my motivation quickly fizzled out as I struggled with all the new shortcuts and the notoriously poor on-boarding experience of both editors.</p>
<p>This time, however, I&rsquo;m hoping to get past these initial hurdles by making my efforts public. Starting now, this and all future posts in this blog will be written using nvim.</p>
<h2 id="the-rules">The rules</h2>
<ul>
<li><strong>Real nvim, no VSCode addons</strong>: I&rsquo;m going in cold turkey. This entire post was edited with my very basic Vim knowledge in neovim and nothing else.</li>
<li><strong>No distros</strong>: I&rsquo;m not using any neovim distro with pre-installed addons of any sort. Just raw neovim, any addons will have to be added by me.</li>
<li><strong>Hard mode</strong>: I re-mapped my arrow and other navigation keys to <code>Nop</code>. If I&rsquo;m going to use Vim, I&rsquo;m going to use it properly with HJKL.</li>
<li><strong>Blog posts only &ndash; for now</strong>: I&rsquo;m not going to force myself to use vim for work. Not for now at least.</li>
</ul>
<p>That&rsquo;s it. I&rsquo;ll stick to these rules for a couple more posts and write my impressions. Maybe if things go well enough I&rsquo;ll also give it a shot at work too.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Not with an acceptable level of productivity at least.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>To understand what is wrong with the west, think of libraries</title>
      <link>https://vaghetti.dev/posts/libraries/</link>
      <pubDate>Fri, 11 Mar 2022 23:45:10 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/libraries/</guid>
      <description>Here is an interesting thought exercise that I have been seeing around the internet for some time now:
Think about libraries as a concept &amp;ndash; the government builds a huge building, buys loads of books from many different authors and allows everyone to just go there and read the books for free or some small fee. Sometimes you can even take the books to your home! &amp;ndash; Now imagine libraries didn&amp;rsquo;t exist and some politician came around proposing we create libraries exactly as they are.</description>
      <content:encoded><![CDATA[<p>Here is an interesting thought exercise that I have been seeing around the internet for some time now:</p>
<blockquote>
<p>Think about libraries as a concept &ndash; the government builds a huge building, buys loads of books from many different authors and allows everyone to just go there and read the books for free or some small fee. Sometimes you can even take the books to your home! &ndash; Now imagine libraries didn&rsquo;t exist and some politician came around proposing we create libraries exactly as they are. What would you expect to happen?</p>
</blockquote>
<p>I can tell you what I would expect to happen: Nothing at all: <em>What about the authors and publishers? What about the bookstores! People will just steal and/or destroy the books! People don&rsquo;t even read anymore!</em> I am quite confident they would never get built in any major western democracy today.</p>
<p>And yet, with the benefit of actually having libraries, it is pretty clear that they are a net positive for society. Even authors love them. Libraries are such an important institution in western culture that movies frequently make bad guys destroy books or libraries ensure the audience dislikes them.</p>
<p>So what changed between the west of some decades ago that could build libraries and the west of today that can&rsquo;t even seem to build enough houses?</p>
<h2 id="the-underlying-reason-for-most-things-the-west-is-bad-at">The underlying reason for most things the west is bad at</h2>
<p>Think of some of the most pressing issues in western countries: Rising home prices, global warming and getting anti-vaxxers take vaccines. Complete solutions to these problems are not easy, but there are things that are known to work that are simply not happening or not happening fast enough: Building more houses, improving zoning regulations, using public transport and bikes, adopting clean energy sources, reducing meat consumption, taking a free vaccine, etc.</p>
<p>All of these things are not happening or happening too slowly for a similar reason: <em>The status quo provides marginal individual benefit to the person making the decision while also causing marginal harm to society as a whole. Doing the right thing doesn&rsquo;t really provide much tangible short term benefit.</em></p>
<p>When someone commutes everyday by car, they get some additional comfort, at the cost more carbon emissions. If they take the bus, however, the air quality around them does not get any better, but they lose quite a bit of comfort.</p>
<p>When a home owners association blocks the building of new housing projects, they benefit individually from their houses going up in value, but society as whole loses by straining younger generations financially, which in turns causes depression anxiety, less kids being born and so on. Yet, if they allow developments close to their houses, their houses will lose value and new generations will still be generally stressed out and depressed and houses will still be crazy expensive anyway.</p>
<p>When an anti-vaxxer doesn&rsquo;t take a vaccine they individually enjoy some higher social standing with peer group and a higher but still not that big individual risk of death. But society as a whole is harmed because new variants will keep spreading making existing vaccines less effective over time.</p>
<p>Locally good but globally bad decisions are not a new problem, and they were generally dealt with through government action.</p>
<h2 id="western-governments-cant-build-anymore">Western governments can&rsquo;t build anymore</h2>
<p>Think of the last century: A huge chunk of Europe being completely destroyed and rebuilt. Twice. Space programs. Cars. Highways. Public healthcare systems. Trains. Airplanes. Atomic bombs. Computers. Women rights. Drugs. Eradicating Polio. Things were quite hectic, but governments made things happen in the last century, for better or worse. Now it seems that the government ambition that made things happen in the last century is almost completely gone.</p>
<p>Chaos and change go hand in hand. The past century was full of wars and social unrest. Governments had no choice but to make change happen. The crises we face now are quite severe too, but they are longer term problems, so they don&rsquo;t get the same kinds of response as, say, the pandemic. We got vaccines that actually work in two years. That is a massive feat and shouldn&rsquo;t be understated. But it only goes to show that western governments can&rsquo;t create meaningful change without a crisis.</p>
<p>It should also be mentioned that authoritarian governments have an unfair advantage when dealing with these kinds of problems. The chinese government could definitely build libraries if they didn&rsquo;t exist. Their book catalog would probably be lacking but I digress.</p>
<p>I am obviously not arguing that more wars and social unrest are a desirable thing. They are most definitely not. But I think we will only see meaningful action against climate change when some major coastal city in some rich country gets flooded. Maybe some new housing bubble will shake the housing situation by making even more people homeless?</p>
<p>Hopefully, these problems can be solved without war, social unrest or authoritarianism. I don&rsquo;t think they can, but I&rsquo;d love to be wrong.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>I live in the country with the most expensive Apple products on the planet. Here&#39;s what it is like in here</title>
      <link>https://vaghetti.dev/posts/macs/</link>
      <pubDate>Tue, 08 Mar 2022 20:40:05 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/macs/</guid>
      <description>I live in Brazil. Brazil is a developing country. It is definitely not a rich country, but it is definitely not among the poorest either. We are placed on 84th in human development index rankings. You will find Brazil similarly in the middle of other rankings like per-capita income, education or life expectancy.
There is, however, one ranking where Brazil is a solid 1st: Having expensive Macs and other apple products.</description>
      <content:encoded><![CDATA[<p>I live in Brazil. Brazil is a developing country. It is definitely not a rich country, but it is definitely not among the poorest either. We are placed on 84th in human development index <a href="https://en.wikipedia.org/wiki/List_of_countries_by_Human_Development_Index#Countries">rankings</a>. You will find Brazil similarly in the middle of other rankings like per-capita income, education or life expectancy.</p>
<p>There is, however, one ranking where Brazil is a solid 1st: Having expensive <a href="https://themacindex.com">Macs and other apple products</a>. We are not talking about prices relative to local income or anything, if you get local iPhone or Apple Watch prices on the Apple store and convert them to USD, you get the highest in the planet. Of course, it gets worse when average Brazilian income is taken into account.</p>
<h2 id="why-is-apple-stuff-so-expensive-in-here">Why is Apple stuff so expensive in here?</h2>
<p>A lot of reasons are thrown around when discussing why this is the case. Some people will blame taxes, but Macs here are much more expensive than other countries with higher total taxes.</p>
<p>This problem is not particular to Apple. All electronics in Brazil are unusually expensive, but Apple is still consistently among the worst offenders. It is a very complex question with lots of confounding for which I won&rsquo;t be able to provide any interesting new point of view. I do want, however, to talk a bit about the societal consequences of these specially high prices.</p>
<h2 id="iphones-as-a-status-symbol">iPhones as a status symbol</h2>
<p>This is what I get on google shopping when I search for &ldquo;iPhone case&rdquo; in portuguese:</p>
<p><img loading="lazy" src="/macs/cases-br.png" alt="cases-br"  />
</p>
<p>Notice the prominence of the Apple logo? It has to be there even in the non-transparent cases. I am not going to say this is a very consistent trend. It is not even consistent among different shopping websites in Brazil, but it is still a good representation. Some cases go as far as having an actual hole so the apple logo is shown:</p>
<p><img loading="lazy" src="/macs/case-hole.png" alt="cases-hole"  />
</p>
<p>For comparison, here is what I get on amazon UK when searching for &ldquo;iPhone case&rdquo;</p>
<p><img loading="lazy" src="/macs/cases-uk.png" alt="cases-uk"  />
</p>
<p>See the difference? I had to scroll trough 8 pages in Amazon to find a single case with a hole for the Apple logo.</p>
<p>Yes, wealth signalling using apple devices is not <a href="https://www.wsj.com/articles/why-apples-imessage-is-winning-teens-dread-the-green-text-bubble-11641618009">exclusive to Brazil</a>, but things here are taken to the next level. I had friends ask me to take pictures of them using my iPhone because people would notice the higher quality picture on their Tinder profile and assume they had an iPhone.</p>
<p>Even though iPhones are expensive compared to competitor phones, they are still not that expensive in absolute numbers, so iPhones are still a common everyday sight, even if you hardly see people using latest-gen models. Lots of people buy used iPhones too. It is such a big market that there are shops that specialize specifically in buying and selling used iPhones.</p>
<h2 id="macs-as-a-workplace-differentiator">Macs as a workplace differentiator</h2>
<p>This is a real part of an offer I got on LinkedIn:</p>
<blockquote>
<p>&hellip;</p>
<p><em>Additionally, for the month of July, we&rsquo;re giving brand new MacBook Pros to new hires. Just stay with the company for two years, and the MacBook is yours to keep.</em></p>
<p>&hellip;</p>
</blockquote>
<p>Even with comparatively high local developer salaries, buying a Mac here is mostly doable but hardly ever financially sensible. A 13 inch M1 MacBook Pro with 16GB of RAM here will cost you 2-6 entire months of an average developer wage (pre-tax).</p>
<p>Whenever a developer in one of my friend circles says he/she&rsquo;s got a new job, the question of which computer they got inevitably pops up rather soon in the conversation. Saying your employer gave you a Mac for work will usually be received with raised eyebrows and more interested questions.</p>
<h2 id="so-overall-what-is-it-like">So, overall, what is it like?</h2>
<p>&hellip; Not that different? Sure, the percentage of the local population who could never hope to afford buying a Mac or iPhone in their lives is much bigger than it is in a wealthy country. But when asked about it, what you will hear about Apple products from most people in Brazil will be along the lines of:</p>
<blockquote>
<p><em>&ldquo;Yeah, Apple&rsquo;s products are pretty good, probably the best depending on what you need from them, but at the end of the day they are not that different from the cheaper alternatives and not really worth the extra money unless you have a lot to spare&rdquo;</em>.</p>
</blockquote>
<p>Which, it seems to me, is pretty much what you are going to hear from most people about Apple products anywhere in the world. I am obviously talking about the general population here and not software developers, these tend either love or hate apple products with very few having a dispassionate view like the one above.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>How did everyone&#39;s YouTube recommendations get so eerily specific?</title>
      <link>https://vaghetti.dev/posts/nichecasual/</link>
      <pubDate>Sat, 05 Mar 2022 14:34:37 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/nichecasual/</guid>
      <description>Here&amp;rsquo;s a very 2020s experience: You get to a friend&amp;rsquo;s house for dinner. You start chatting about random things. You open a bottle of wine or something. &amp;ldquo;Hey let&amp;rsquo;s orders something for dinner, I&amp;rsquo;m starving&amp;rdquo;. Chaos ensues as everyone argues about what to order for 10-30 minutes. A compromise is reached eventually, food is on the way. Chatting continues. &amp;ldquo;Lets put on some music&amp;rdquo;. Your friend opens YouTube on their Smart TV.</description>
      <content:encoded><![CDATA[<p>Here&rsquo;s a very 2020s experience: You get to a friend&rsquo;s house for dinner. You start chatting about random things. You open a bottle of wine or something. <em>&ldquo;Hey let&rsquo;s orders something for dinner, I&rsquo;m starving&rdquo;</em>. Chaos ensues as everyone argues about what to order for 10-30 minutes. A compromise is reached eventually, food is on the way. Chatting continues. <em>&ldquo;Lets put on some music&rdquo;</em>. Your friend opens YouTube on their Smart TV. <strong>You stare in awe at the television as their YouTube recommendations look like a door into a parallel universe</strong>. Music starts playing. The night goes on as usual.</p>
<p>It wasn&rsquo;t always like this. I can&rsquo;t really pinpoint the exact point in time when YouTube recommendations became so good they became creepy. But I remember not too long ago everyone&rsquo;s YouTube home page looked kinda similar. People would subscribe to different channels, but things would generally fall into a normal distribution where the most people would watch mostly similar stuff.</p>
<p>Don&rsquo;t get me wrong, there&rsquo;s always been very weird corners of YouTube, they just didn&rsquo;t get as much traffic. But as the content recommendation algorithms evolved, they brought to surface a fundamentally different kind of content:  Niche, casually consumed content.</p>
<h2 id="consuming-with-intent-vs-consuming-casually">Consuming with intent vs consuming casually</h2>
<p>You consume with intent when you know you want something. If you&rsquo;re a cyclist, you possibly search for cycling content on YouTube or even join cycling groups on Facebook. Intent means you&rsquo;re consciously interested in a certain topic.</p>
<p>Casual consumption happens the other way around. You turn on your TV and there&rsquo;s a cooking show on it. The recipes look tasty, the presenter is  charismatic, you know you&rsquo;re never gonna cook them, but it is entertaining nonetheless. You end up watching the show. You don&rsquo;t follow the show on Twitter or consider yourself a fan in any way. Sometimes, you&rsquo;re casually introduced to a certain topic, find out you like it, then start consuming it with intent.</p>
<p>Here are some examples of the kinds of content that fit into these categories:
<img loading="lazy" src="/nichecasual/nichecasual1.svg" alt="1st Diagram"  />
</p>
<h2 id="content-discovery">Content discovery</h2>
<p>In the early days of the web, content discovery was pretty hard. You had to discover cool things on the internet <em>outside</em> the internet: Magazines, real people, tv shows, etc. It was awful. Eventually, things converged around three solutions for content discovery. I&rsquo;ll call them search, social and popularity ranking.</p>
<p>When using search, you know what you&rsquo;re looking for, you type it in a text box, you get it. It might sound trivial nowadays, but there were loads of companies competing in this space back in the 90s. Google was the first one to really crack it and it turned out quite well for them. Search requires intent, you have to know you want something so you can search for it.</p>
<p>Popularity ranking, as I&rsquo;m calling it, is websites like Reddit, Hacker News or 9gag. People post new things, other people vote. Whoever got most votes gets more visibility. Usually there&rsquo;s a mechanism to ensure old things slowly go out.  Popularity rankings content is consumed casually, you don&rsquo;t really know what to expect when you go there. You just go to the website to discover content.</p>
<p>Social is just getting recommendations from people you actually know, or at least  decided to follow. Think of things like early Facebook and Instagram. Both of these have mostly evolved into personal recommendations discovery mechanisms nowadays.</p>
<h2 id="personal-recommendations">Personal recommendations</h2>
<p>This is a fourth content discovery mechanism that only started to get really good more recently. The application that best represents it is TikTok. You open the app and you immediately face a stream of videos, depending on your interactions, the app will get better and better at showing you videos you&rsquo;ll like.</p>
<p>The application (YouTube, TikTok, Instagram, etc) has a profile that is exclusive to you, with a history of the content you consumed in the past. This profile is then used to find other kinds of content you might also like. As you consume more content, your recommendations keep getting better.</p>
<p>Personal recommendations allow for a fundamentally different kind of content to be discovered and consumed: Content that users don&rsquo;t search for, because they only consume it casually, but is also too niche so it doesn&rsquo;t perform well on popularity rankings or gets shared on social media. I call it <em>niche casual</em> content.</p>
<p>It looks like this in the diagram:
<img loading="lazy" src="/nichecasual/nichecasual2.svg" alt="2nd Diagram"  />
</p>
<h2 id="too-niche-for-popularity-ranking-and-social-too-casual-for-search">Too niche for popularity ranking and social, too casual for search</h2>
<p>Think about things like <a href="https://www.youtube.com/channel/UCsCNU-ptlze2tqAJSDeVGNQ">this guy</a> making videos unclogging drains. I can&rsquo;t imagine the 500k+ subs in this channel arrived there searching for this kind of content on YouTube or getting recommendations from social media. It also doesn&rsquo;t have enough mass appeal to make it to the home page of Reddit.</p>
<p>Yet, with a robust enough recommendations system, this channel found more than half a million interested subscribers. The most watched video has more than 20M views!</p>
<p>The same is true for other channels like this one for oddly pleasant <a href="https://www.youtube.com/channel/UCMrMVIBtqFW6O0-MWq26gqw">tool restoration videos</a> or the also oddly pleasant <a href="https://www.youtube.com/watch?v=DEobiCzGEvE">videos of clay houses built by hand </a>.</p>
<h2 id="the-future-of-casual-niche-content">The future of casual niche content</h2>
<p>With a massive pool of users and a powerful enough recommendation engine, content creators just need to create content that is compelling for some group of people. The recommendation engine will make sure the content finds interested users.</p>
<p>The incentives for content providers like YouTube and TikTok are quite clear. They want to keep you there consuming content for as long as possible so you see more ads. Improving their recommendation engines must always be a high priority for them.</p>
<p>So how niche can casual content go? It depends mostly on two things: How good the recommendation engine is and how big the user base is. As long as these two things are increasing, content can get ever more niche and still find a big enough user base to be sustainably produced.</p>
<p>I think we&rsquo;re just scratching the surface of casual niche content. This content category seems to be the one with the greatest potential of just being weird in entertaining ways. People can have wildly different tastes and the demand for distraction is always high. I&rsquo;m personally excited and quite curious to see how weird my YouTube recommendations will get.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>Tibia was wild in mostly bad ways. I really miss it.</title>
      <link>https://vaghetti.dev/posts/tibia/</link>
      <pubDate>Wed, 02 Mar 2022 13:29:43 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/tibia/</guid>
      <description>Tibia is a 2D MMORPG released in 1997. It is one of the oldest MMOs still active. You can see their official screenshots page to get a sense of what it looks like. Tibia&amp;rsquo;s graphics improved since the game was released, but not much.
Although the game was pretty solid technologically when it was released, it was quickly surpassed graphically in the following years. Even with dated graphics, Tibia&amp;rsquo;s popularity peaked in 2007.</description>
      <content:encoded><![CDATA[<p>Tibia is a 2D MMORPG released in 1997. It is one of the oldest MMOs still active. You can see their <a href="https://www.tibia.com/abouttibia/?subtopic=screenshots">official screenshots</a> page to get a sense of what it looks like. Tibia&rsquo;s graphics improved since the game was released, but not much.</p>
<p>Although the game was pretty solid technologically when it was released, it was quickly surpassed graphically in the following years. Even with dated graphics, Tibia&rsquo;s popularity peaked in 2007. For comparison, this is what World of Warcraft <a href="https://www.gamingcfg.com/screenshot/World-of-Warcraft-2007-8264">looked like in 2007</a>. So what was going on in 2007?</p>
<p>Trough a mixture of cultural and technological reasons, Tibia was the only viable MMO option for lots of people in Brazil back then. By 2007, any PC could run it. It didn&rsquo;t require a very good internet connection and, most importantly, it 100% free to play. Check out their <a href="https://www.tibia.com/community/?subtopic=worlds">servers list</a>, almost half of the servers are in South America. I was one of these people in Brazil. Being their only option might get people to give the game a chance, but what was it that made them stay?</p>
<h2 id="asking-players-to-do-boring-things-was-ok">Asking players to do boring things was ok</h2>
<p>I&rsquo;m not talking about grinding here. Tibia has plenty of that too. I&rsquo;m talking about spending hours and hours hitting self-cloning slimes with weak weapons to improve your fighting ability. When you made it to higher levels, it could take hours to go up a single skill point, and this skill point would not even make much of a difference in the damage you dealt. We called it <em>training</em>.</p>
<p>Mages were not exempt either, for a long time, Druids in Tibia would spend hours waiting for their mana to recharge to cast a cure spell in a rune so it could be used later in combat at no mana cost. That was it, really. You were supposed to just stand there and wait for your mana to recharge, only to create a rune and do the same thing over and over again.</p>
<h2 id="frustrating-players-was-ok-too">Frustrating players was OK too</h2>
<p>Tibia could also be incredibly punishing. Back then, when you died, you would lose 10% of your character&rsquo;s total experience. In earlier levels, that would mean you lost one level, sometimes not even a whole level. But in higher levels, you&rsquo;d lose multiple levels that took days or even months to recover.</p>
<p>Death could happen anytime. Even if you were just hunting weak monsters or simply travelling from one place to another, players could attack you. There were no level restrictions. Anyone could kill you almost anywhere, anytime.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<p>For example, it was standard practice to kill players who didn&rsquo;t seem to be looking at their screen, and thus just idle. The game actively rewarded you for it. When you killed another player, you could take all the items they were carrying and, with some luck, even some equipment they had on. I still have not-fond-at-all memories of throwing my items in the water to destroy them just so my assassin wouldn&rsquo;t have them out of sheer spite.</p>
<p>Check <a href="https://news.ycombinator.com/item?id=30324846">this</a> hacker news thread for some more old school Tibia reminiscing.</p>
<h2 id="the-ability-to-inflict-psychological-pain">The ability to inflict (psychological) pain</h2>
<p>With PVP anywhere and great punishment for death, higher level players and guilds could cause real pain to each other. That is <strong><em>power</em></strong> in its most raw shape! Strong guilds could rule their worlds through fear!</p>
<p>Things could get wild in bigger servers. Powerful guilds would hunt players: Any member of the guild would kill the hunted player on sight or call for reinforcements. Sometimes guilds would have players guarding over the most sought after dungeons and demand money to use them. Yes, those were virtual gangs, with extortion, infighting, gang wars and all.</p>
<h2 id="why-we-cant-have-old-tibia-anymore">Why we can&rsquo;t have old Tibia anymore</h2>
<p>Times are different now. Players are not willing to deal with frustration like they were back then. Much of what made Tibia special were things that are generally regarded as bad game design nowadays.</p>
<p>The game rewarded you for doing repetitive things with no real challenge. Players were punished to extreme extents due to completely silly things like being AFK or just being in the wrong place at the wrong time. Some high level player could simply decide they didn&rsquo;t like your clothes and <a href="https://tibia.fandom.com/wiki/Rooking">rook you</a>. If there&rsquo;s a word for it, there is a story behind it.</p>
<p>I&rsquo;m not saying these changes are bad. If I was to start playing Tibia today without being influenced by nostalgia, I&rsquo;m sure I would quickly drop it without thinking much of it.</p>
<p>Nonetheless, these game design decisions created a really unique virtual world that provided very meaningful experiences to a lot of people, like me. And I just can&rsquo;t shake off the feeling our lives are a tiny bit worse because that world is gone and it seems like it can&rsquo;t be created again.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>This was only the case in PVP servers, players also had the choice of playing in non-PVP worlds if they chose to.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>Developer tooling must spark joy</title>
      <link>https://vaghetti.dev/posts/joy/</link>
      <pubDate>Sat, 26 Feb 2022 15:46:03 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/joy/</guid>
      <description>Way too often, I see tech companies provide their developers with tooling that can get their job done but doesn&amp;rsquo;t spark joy. I believe that&amp;rsquo;s a big mistake. Developers expect joy from their tools, and they will go to great lengths to get them, either in their current job or elsewhere.
Which tools spark joy? I&amp;rsquo;m not going to get into the topic of which tools spark joy and which don&amp;rsquo;t.</description>
      <content:encoded><![CDATA[<p>Way too often, I see tech companies provide their developers with tooling that can get their job done but doesn&rsquo;t spark <em>joy</em>. I believe that&rsquo;s a big mistake. Developers expect joy from their tools, and they will go to great lengths to get them, either in their current job or elsewhere.</p>
<h2 id="which-tools-spark-joy">Which tools spark joy?</h2>
<p>I&rsquo;m not going to get into the topic of which tools spark joy and which don&rsquo;t. For some people, anything other than a Mac won&rsquo;t do. For others, a desktop running Linux with loads of RAM will be the best option. Some people like noisy mechanical keyboards, others, 4k monitors. There are even people who <em>enjoy</em> working on windows.</p>
<p>I get it. These things I&rsquo;m talking about can be expensive. Not all companies can afford them. I live in Brazil, <a href="https://9to5mac.com/2021/10/19/brazil-has-the-most-expensive-new-macbook-pro-and-airpods-3-in-the-world">computers are very expensive here</a>.</p>
<p>Nonetheless, I see companies that could definitely afford better gear, but hold back on providing it because it doesn&rsquo;t seem rational. I&rsquo;ll give some examples of this happening and go trough why it is a bad decision on the long run.</p>
<h2 id="developing-country-tech-company-starter-pack">Developing country tech company starter pack</h2>
<p>I visit linkedin every so often. Every single time I go there, I&rsquo;ll see someone in my direct or indirect contacts switching jobs and posting a picture of their new work equipment. It almost always looks like this:</p>
<ul>
<li>Some company branded swag: t-shirts, paper notebooks, a coffee mug, the list goes on.</li>
<li>A Dell notebook. Not one of their good ones, but one that can get the job done. Usually with something like a latest gen i5 processor and 16 gbs of ram</li>
<li>A mouse, because the trackpad is awful.</li>
<li>A monitor, usually full hd, but never bigger than 23&quot;.</li>
<li>A generic membrane keyboard.</li>
</ul>
<p>There&rsquo;s nothing inherently wrong here, even with top of the line computers, with a nice trackpad and a 4k screen, most people would still want a separate monitor, a keyboard and a mouse.</p>
<p>What is bad about this setup is that it doesn&rsquo;t spark joy. Developers will try to find ways to get it.</p>
<h2 id="people-will-seek-joy-one-way-or-another">People will seek joy, one way or another</h2>
<p>A friend of mine used to work at a small company. They would also provide their employes with the standard low end Dell + peripherals kit that is uninspiring but gets the job done. What was interesting about this company was it didn&rsquo;t really force employees to work with hardware they provided. Senior leadership would just bring their personal Macbooks to the office, and slowly the developers working from home started buying more powerful desktops with their personal money and working with them.</p>
<p>Everyone who could afford it was avoiding the hardware the company provided! It was completely demoralizing! I wasn&rsquo;t because of hardware alone, but my friend left the company shortly after and they have serious retention problems to this day.</p>
<p>This isn&rsquo;t limited to small companies either. I heard of similar stories in fortune 500 companies in the tech sector. They had stricter controls in place to ensure employees would use the company provided joyless hardware. What ended up happening was politicking. People would make all sorts of excuses to justify why their projects needed macs. Many would complain peers in other countries got better gear working on the exact same project. Some also bought peripherals with their own money, such as noise-canceling headphones and better keyboards.</p>
<p>In this case, the leadership team was smarter about it and just upgraded everyone&rsquo;s hardware.</p>
<h2 id="yet-it-can-be-hard-to-argue-in-favor-of-joy">Yet, it can be hard to argue in favor of joy</h2>
<p>Joy clearly matters. People will waste lots of time and even spend their own money to get it, dragging morale down. A lack of joy might be the straw that breaks the camel&rsquo;s back and leads someone to start looking for new opportunities.</p>
<p>Still, it can be incredibly hard to convince a manager to just pay for better hardware. A manager is part of a chain of people that ultimately need to justify their costs in terms of productivity. It is pretty hard to justify additional hardware costs based on this vague notion of joy.</p>
<p>At the end of the day, a mechanical keyboard or a 4k monitor won&rsquo;t directly allow anyone to deliver features faster. But they will make people happier. Happier people tend to be more pleasant to work with and to stay longer at their jobs. Which in the end, does have an impact on productivity.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>Building meaningful relationships with remote colleagues</title>
      <link>https://vaghetti.dev/posts/remote/</link>
      <pubDate>Thu, 24 Feb 2022 20:23:11 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/remote/</guid>
      <description>I have a diary. I&amp;rsquo;ve been writing on it somewhat regularly since 2014. I find it extremely useful and I think everyone should at least give it a try. I do it for two reasons:
When writing, a diary is a great tool for organizing thoughts and making decisions. The process of writing forces you to articulate thoughts with much greater clarity than you could by just sitting down and thinking.</description>
      <content:encoded><![CDATA[<p>I have a diary. I&rsquo;ve been writing on it somewhat regularly since 2014. I find it extremely useful and I think everyone should at least give it a try. I do it for two reasons:</p>
<p>When writing, a diary is a great tool for organizing thoughts and making decisions. The process of writing forces you to articulate thoughts with much greater clarity than you could by just sitting down and thinking.</p>
<p>The other benefit of having a diary is being able to read it after some time. Our brains have a tendency of distorting our memories in some really nasty ways. A diary is like a brain-tampering-proof series of snapshots of our past thoughts and feelings.</p>
<p>Some weeks ago, I  decided to read some old diary entries. I was specially interested in the period where the pandemic was starting and I began working remotely. I had this feeling on the back of my head for a while that I wasn&rsquo;t evolving professionally as fast now as I was before the pandemic.</p>
<p>As I read my past entries in the diary, it became clear that it was just my brain painting an overly rosy picture of the past. Back in 2020, right before the pandemic started, my past self was already complaining about this very same feeling! It had nothing to do with remote work, it was just my unreasonable expectations once again.</p>
<p>In the process of reading these diary entries, however, something else became very clear: In office work was making me a better person in ways that were not even related to work.</p>
<h2 id="you-are-kind-of-the-average-of-the-people-you-spend-most-time-with">You are (kind of) the average of the people you spend most time with</h2>
<p>As I read these past entries, I began to realize how much I changed due to the influence of work colleagues.</p>
<p>From things like investments and career management, all the way to politics and the ethics of eating meat, work colleagues exposed me to new ways of thinking. In many cases, I did not agree with their opinions, but they broadened my views in very useful ways nonetheless.</p>
<p>After reading all the entries until remote work started, it became clear to me that these people were really making me smarter by osmosis. <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<h2 id="is-this-really-the-role-of-work-colleagues">Is this really the role of work colleagues?</h2>
<p>There&rsquo;s a perfectly reasonable argument to be made that exposing you to new ways of thinking about factory farming or the Boggleheads subreddit is not really the role of work colleagues. I am sure some people will read all of this and say <em>&ldquo;Just get some friends!&rdquo;</em>.</p>
<p>I mostly agree. Work should be about work, and if that&rsquo;s all people want from work, they should definitely be able to get just that, without any sort of negative repercussion.</p>
<p>But these lost relationships were valuable to me, and I&rsquo;m sure they were valuable to other people too. They&rsquo;re mostly gone with remote work.</p>
<h2 id="building-meaningful-remote-relationships">Building meaningful remote relationships</h2>
<p>I&rsquo;m not arguing against remote work. I love remote work. I don&rsquo;t intend on going back to in-office work as long as I reasonably can. But I think we need to figure out ways to allow these relationships to flourish for remote work to really succeed for most people on the long run.</p>
<p>I&rsquo;ve had many meaningful conversations that truly expanded my views over pure text alone. So I don&rsquo;t think it really is a technical limitation. These are just not the kinds of conversations we&rsquo;re having with our remote work colleagues. I feel like we just need to figure out the right culture and processes to allow them to happen. And again, if people don&rsquo;t want to be part of them, that&rsquo;s absolutely fine.</p>
<p>So how can we have these conversations on a remote setting? I don&rsquo;t really have an answer, but I can offer some food for thought.</p>
<h2 id="so-how-does-the-solution-look-like">So how does the solution look like?</h2>
<p>I see some colleagues just chatting about non-work stuff in scheduled meetings after the meeting discussions are finished, and I think that&rsquo;s a good start, but far from a real solution. I also notice some teams have open video chat rooms that people can join at any point to talk about anything, like a virtual watercooler. Again, they don&rsquo;t seem to have much adoption.</p>
<p>I&rsquo;m a bit skeptical about a &ldquo;cultural solution&rdquo;, something that is officially integrated into company processes. You can&rsquo;t just build meaningful relationships by having some scheduled meetings or doing some exercises proposed by someone from HR with your work colleagues. I feel like the solution will come from outside.</p>
<p>Heck, we as a society figured out <em>dating</em> on the internet. Some people have entire romantic relationships with people they&rsquo;ve only known virtually and they&rsquo;re happy. I&rsquo;m sure we can figure out meaningful relationships with work colleagues.</p>
<p>Maybe it will take shape as a Slack alter-ego? A group chat app that is invitation-only. There would be no single official company profile, just some profiles created by employees where they can invite one another. Maybe some smaller private chat rooms? A central place where you can send internal tweets to everyone in the company? Messages that disappear over time? Optional anonymity? Am I just describing Discord? The solution space is quite big.</p>
<p>Chances are, we won&rsquo;t figure this out on the first try. The first dating services looked a lot like facebook, in the end it turned out it was much better to just brute-force it and show people hundreds of pictures of strangers and ask if they look interesting.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>By the same logic, I was making them <em>dumber</em>. I would rather think it wasn&rsquo;t <em>quite</em> like osmosis.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
    <item>
      <title>Wordle is pretty damn smart in many subtle ways</title>
      <link>https://vaghetti.dev/posts/wordle/</link>
      <pubDate>Tue, 22 Feb 2022 18:03:17 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/wordle/</guid>
      <description>I love Wordle. I play it pretty much every single day. I also play the portuguese version immediately afterwards too. It is now part of my morning routine.
Wordle is one of those ideas that just click and immediately have you wishing you were the one to have them. If you don&amp;rsquo;t know what Wordle is, just click here and play it. Give it a try, you&amp;rsquo;ll probably like it. It won&amp;rsquo;t take you more than 10 minutes.</description>
      <content:encoded><![CDATA[<p>I love <a href="https://www.nytimes.com/games/wordle/">Wordle</a>. I play it pretty much every single day.
I also play the <a href="https://term.ooo">portuguese version</a> immediately afterwards too.
It is now part of my morning routine.</p>
<p>Wordle is one of those ideas that just click and immediately have you wishing you were the one to have them.
If you don&rsquo;t know what Wordle is, just click <a href="https://www.nytimes.com/games/wordle/">here</a> and play it.
Give it a try, you&rsquo;ll probably like it. It won&rsquo;t take you more than 10 minutes.</p>
<p>On a superficial level, there&rsquo;s nothing special about Wordle, every day, everyone gets a 5 character word, you have to guess what it is.
As you try, you get some information about what you got wrong that helps you move towards the correct answer. You only get 6 attempts.</p>
<p>It is a very simple core mechanic, any programmer with some frontend knowledge could put together something similar in a few hours.</p>
<p>What makes Wordle special is not the core mechanic itself, but the series of very intelligent decisions that were made around this very simple (but still fun) core mechanic.</p>
<h2 id="no-ads-no-log-in">No ads, no log-in</h2>
<p>When you first open the Wordle website, you&rsquo;re immediately greeted with a simple text tutorial explaining how to play the game.
There are no ads, no login prompt, no attempts to get you to buy skins or donate money.
Compare this with something like <a href="https://www.agar.io/">agar.io</a> or any other <code>.io</code> hyper casual game and you&rsquo;ll see Wordle is truly special in this regard.</p>
<p>I know, people need to make a living. Games are not hosted for free, specially when they&rsquo;re multiplayer games with loads of players.
Wordle was acquired by the New York Times some weeks ago, so I wouldn&rsquo;t expect it to stay this way for too long anyway.</p>
<p>No ads is just icing on the cake, not having them is more a privilege of a game that doesn&rsquo;t need to make money than a true long term differentiator. There are other design decisions that make Wordle truly shine.</p>
<h2 id="one-word-per-day">One word per day</h2>
<p>There&rsquo;s one new word every day. Everyone gets the same word.</p>
<p>You only get to play once, if you try 6 words and fail, Wordle will just give you the answer.
There&rsquo;s no point in opening another browser or cleaning your cache to keep trying.
No need for an account either.
Wordle will ensure you can only try once a day by spoiling you if you fail.
You can&rsquo;t tryhard your way into victory.</p>
<p>It is simple and elegant. Even when you lose, the game ends on a high note.</p>
<p>After you played the day&rsquo;s word, that&rsquo;s it. You want more but you&rsquo;ll have to come back on the next day.</p>
<p>Hoping users will remember your hyper casual game with an average play time of a couple minutes sounds like a sure way to be quickly forgotten, but wordle gets around this just as elegantly.</p>
<h2 id="sharing">Sharing</h2>
<p>After you finish a Wordle match, you get a share button. If you click it, you don&rsquo;t get a list of supported social media websites or some twitter OAuth prompt.
All you get is a message saying <em>&ldquo;Copied results to clipboard&rdquo;</em>. This is what mine for today&rsquo;s puzzle looks like:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-markdown" data-lang="markdown"><span style="display:flex;"><span>Wordle 248 4/6
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>⬜🟨⬜🟨⬜
</span></span><span style="display:flex;"><span>🟨⬜⬜🟨⬜
</span></span><span style="display:flex;"><span>🟨🟨🟨🟨🟨
</span></span><span style="display:flex;"><span>🟩🟩🟩🟩🟩
</span></span></code></pre></div><p>This is, again, smart on multiple levels.</p>
<p>It communicates how your game went in meaningful detail without spoiling the day&rsquo;s word for people who haven&rsquo;t played it yet. At the same time, people who already played today can immediately look at it and know you were struggling in the same ways, which can be pretty fun and engaging.</p>
<p>It also brings players back into the game, but not in an annoying way like Farmville Facebook notifications. Shared Wordle games actively improve your experience by adding a social factor.</p>
<p>You can share it anywhere, it is just some emoji and text. There&rsquo;s not even an image or hyperlink. Anywhere you can type, you can share your Wordle game.</p>
<h2 id="and-repeat">And repeat</h2>
<ul>
<li>You play your first Wordle match, you have some fun, but it is short, you want some more but you have to wait, so you move on with your day and forget about it.</li>
<li>On the next day, you&rsquo;re scrolling Twitter and someone posts their Wordle score. You remember the game exists, you remember you wanted more. You play it again.</li>
<li>If you&rsquo;re so inclined, you share your score as well.</li>
<li>Repeat</li>
</ul>
<p>Do this for a couple of days, and you&rsquo;re hooked. You don&rsquo;t even need Twitter to remind you about Wordle anymore.
Some people in my feed play the new word every day after midnight.</p>
<h2 id="wordle-and-senior-engineers">Wordle and senior engineers</h2>
<p>Some people say the biggest difference between an engineer and a senior engineer is not on the code they write, but on the senior engineer ability to figure out ways to not write code.</p>
<p>Wordle is a great example of how this looks like in practice. It avoids loads of complexity at design time, making many features unnecessary and still delivering a superior experience in the end.</p>
<p>No login, just give users a satisfying end when they fail. No social media integration, some emojis they can paste anywhere clipboard will do. No ads, make something people like first, figure money out later. Add a tight social media reminders + leave users wanting more loop, and you have a hit.</p>
]]></content:encoded>
    </item>
    
    <item>
      <title>Times are great for programmers now. How does it end?</title>
      <link>https://vaghetti.dev/posts/times-are-great/</link>
      <pubDate>Sun, 20 Feb 2022 13:05:41 -0300</pubDate>
      
      <guid>https://vaghetti.dev/posts/times-are-great/</guid>
      <description>It is a good time to be in tech right now: soaring salaries, daily LinkedIn recruiter spam, people bootcamping their way into career switches to tech, remote work allowing you to work for a major tech company making triple digit salaries from the beach. It really feels like every single company is trying to recruit programmers nowadays, and doing whatever they can to get them.
I’m certainly happy with the current state of affairs, but I can’t help but wonder: How does it end?</description>
      <content:encoded><![CDATA[<p>It is a good time to be in tech right now: soaring salaries, daily LinkedIn recruiter spam, people bootcamping their way into career switches to tech, remote work allowing you to work for a major tech company making triple digit salaries from the beach. It really feels like every single company is trying to recruit programmers nowadays, and doing whatever they can to get them.</p>
<p>I’m certainly happy with the current state of affairs, but I can’t help but wonder: How does it end? Things are obviously good for us programmers and we would certainly like for them to stay this way.</p>
<p>Business owners, on the other hand, are not quite happy. You see, no sane CEO is going to issue a press release saying &ldquo;<em>yeah, business is booming, record profits something something, great opportunities for double digit growth in something something Asia, by the way I&rsquo;d be really happy if I could pay less money to my employees</em>&rdquo;. That&rsquo;s just not the kind of thing you <em>say</em>, but everyone <em>kinda knows</em> it is true. The CEO&rsquo;s job is to make as much profit as possible. Higher salaries mean less profit. It&rsquo;s just how the game works.</p>
<p>Salaries are a matter of supply and demand. Lots of companies trying to hire not-that-many programmers means salaries go up, if it was the other way around, they would go down. So how do the good times end? Either demand for tech workers goes down or supply goes up.</p>
<h2 id="supply-goes-up">Supply goes up</h2>
<p>The markets are doing their thing. Everyone sees tech workers making money and just generally having a good time and they think: &ldquo;Hey that sounds like a good career choice&rdquo;. Every year we get more Computer science graduates. Code bootcamps are also booming.</p>
<p>But these are long term changes that are barely making up for the also increasing demand, so I don&rsquo;t see any meaningful change coming from this front at last in the short to medium term.</p>
<h2 id="demand-goes-down">Demand goes down</h2>
<p>This is where I think the most interesting (and faster) changes could happen. Jeff Besos famously said <em>&ldquo;Your margin is my opportunity&rdquo;</em>. Tech worker wages are certainly a massive opportunity right now! There is a lot of money to be made by making products that allow businesses to get things done with less programmers, maybe no programmers at all.</p>
<p>I know it sounds kind of evil putting it like that, but bear with me.</p>
<h3 id="developer-tooling-improvements">Developer tooling improvements</h3>
<p>Developers are expensive. If a new IDE shows up and they can deliver stuff 5% faster, that means you can have 5% less programmers! Of course the IDE has a price, but it is almost certainly cheaper than 5% of a developer.</p>
<p>I haven&rsquo;t seen that much improvement in developer tooling over the last couple of years, but AI is making some really meaningful progress in this field with things like github <a href="https://copilot.github.com">copilot</a>. For now it only delivers some smarter auto complete suggestions, not that far in the future we could see AIs finding bugs in our code, or even generating tests.</p>
<h3 id="no-code--low-code">No code / Low code</h3>
<p>People have been trying this for decades and it never really worked out. I can&rsquo;t think of a single product that was able to get to any meaningful degree of success running on top of some low code platform.</p>
<p>But hey, deep learning was in a similar spot in the 90s and now we have real products that use it and it <em>mostly</em> works. The incentive has never been greater. The more expensive developers get, the more money there is to be made by making them less necessary.</p>
<h3 id="decreased-investment">Decreased investment</h3>
<p>I think this is the most likely scenario. Much of the demand for programmers right now stems more from expectations of future profits than from profits being currently made.</p>
<p>Many companies hiring now are unprofitable companies surviving on investor money with the expectation of future profit. If the economic conditions change and investors decide they don&rsquo;t like tech companies anymore, many of them will inevitably close. Less companies hiring also means less demand.</p>
<h1 id="conclusion">Conclusion</h1>
<p>This post might have sounded gloomish, at least for programmers, but honestly I don&rsquo;t think there&rsquo;s that much to worry about. Even if we enter some new dotcom bubble and a good chunk of our startup ecosystem dies off, demand for tech is spreading across all industries, businesses everywhere are digitizing their operations and these systems will need to be maintained somehow.</p>
<p>Also, salaries are notoriously <a href="https://www.investopedia.com/terms/s/sticky-wage-theory.asp">sticky</a>, so instead of a salary reduction we could see a workforce reduction instead. Maybe it is better to start replying to the linkedin recruiter spam just in case?</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
