<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Paolo Lulli</title>
    <description>The latest articles on DEV Community by Paolo Lulli (@madunixman).</description>
    <link>https://dev.to/madunixman</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F30846%2F3dc86747-3d58-4656-81a2-88672758e327.jpg</url>
      <title>DEV Community: Paolo Lulli</title>
      <link>https://dev.to/madunixman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/madunixman"/>
    <language>en</language>
    <item>
      <title>Code Your Way Out</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Wed, 11 Jan 2023 17:15:46 +0000</pubDate>
      <link>https://dev.to/madunixman/code-your-way-out-f0a</link>
      <guid>https://dev.to/madunixman/code-your-way-out-f0a</guid>
      <description>&lt;p&gt;We are taught that code reuse is good.&lt;/p&gt;

&lt;p&gt;Depending on big famous library X is better than reimplementing the features from scratch.&lt;/p&gt;

&lt;p&gt;As it turns out, sometimes it is true, some other it's not, and you are better off reimplementing your own solution, provided you have a good understanding of the problem you are going to address.&lt;/p&gt;

&lt;p&gt;This is true for common features as it is for Security.&lt;br&gt;
It's true for the 1-user app as it is for scalable systems for 1 billion users.&lt;/p&gt;

&lt;p&gt;Reuse, dependency on features we don't fully understand are bad, and usually come back and bite us badly:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kevwe.se/weekly/202302" rel="noopener noreferrer"&gt;https://kevwe.se/weekly/202302&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Technology Choices</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Mon, 19 Dec 2022 16:51:22 +0000</pubDate>
      <link>https://dev.to/madunixman/technology-choices-305n</link>
      <guid>https://dev.to/madunixman/technology-choices-305n</guid>
      <description>&lt;p&gt;Every choice has consequences, and technology is no exception.&lt;/p&gt;

&lt;p&gt;To influence our future, it is good to have more choices or - arguably - better choices available.&lt;/p&gt;

&lt;p&gt;The technology we choose has the power to influence the future, in terms of depending on some entity rather than some other; or even depending on someone else at all.&lt;/p&gt;

&lt;p&gt;When you want a page to be beautiful and snappy, you have also to ponder whether depending on a CDN is a good thing. You have to ponder cautiously if depending on a full ecosystem of build tools and frameworks is actually something that will keep working years down the line or if it'll keep increasing costs for you.&lt;/p&gt;

&lt;p&gt;Also, are you going to still be around for fixes when dependencies will break your application ?&lt;/p&gt;

&lt;p&gt;Shiny packages might be a luxury you can't really afford, if you calculate the costs in the right way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kevwe.com/weekly/202251" rel="noopener noreferrer"&gt;https://kevwe.com/weekly/202251&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>linux</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Storm</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Tue, 13 Dec 2022 17:28:17 +0000</pubDate>
      <link>https://dev.to/madunixman/the-storm-27e2</link>
      <guid>https://dev.to/madunixman/the-storm-27e2</guid>
      <description>&lt;p&gt;Everything is connected, in life like in technology, connections can be a good thing, an opening for new possibilities.&lt;/p&gt;

&lt;p&gt;But not all connections are good.&lt;/p&gt;

&lt;p&gt;It could be a gateway for issues you would not expect.&lt;/p&gt;

&lt;p&gt;As the world is much bigger and nuanced than you would have expected as a younger version of yourself, the single computer in the basement is now open to the wider ocean and its storms.&lt;/p&gt;

&lt;p&gt;This is not a metaphor, and the storm is coming for real. &lt;/p&gt;

&lt;p&gt;As people grows in age and experience, so our industry must grow past its adolescence and mistakes, before being ready to traverse The Ocean.&lt;/p&gt;

&lt;p&gt;For the weekly links: &lt;a href="https://kevwe.com/weekly/202250" rel="noopener noreferrer"&gt;https://kevwe.com/weekly/202250&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>The Third Way</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Sun, 04 Dec 2022 17:51:31 +0000</pubDate>
      <link>https://dev.to/madunixman/the-third-way-308a</link>
      <guid>https://dev.to/madunixman/the-third-way-308a</guid>
      <description>&lt;p&gt;Between delegating everything to a random Cloud provider and managing your entire physical infrastructure in-house, there is a wide middle ground where you can fine-tune how much control you are willing to give out, and how much is instead needed on your part.&lt;/p&gt;

&lt;p&gt;This kind of tuning is no longer possible if you give up on the competences, in the ability to understand what is going on.&lt;/p&gt;

&lt;p&gt;Giving up on everything means we are headed for new Middle Ages: Digital Middle Ages.&lt;/p&gt;

&lt;p&gt;For the Weekly links: &lt;a href="https://kevwe.com/weekly/202249" rel="noopener noreferrer"&gt;https://kevwe.com/weekly/202249&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>learning</category>
    </item>
    <item>
      <title>On Sustainable Technology</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Tue, 29 Nov 2022 07:18:30 +0000</pubDate>
      <link>https://dev.to/madunixman/on-sustainable-technology-jf8</link>
      <guid>https://dev.to/madunixman/on-sustainable-technology-jf8</guid>
      <description>&lt;p&gt;The software world is peculiar in a number of ways.&lt;/p&gt;

&lt;p&gt;Not so much about user than about who builds software.&lt;/p&gt;

&lt;p&gt;There is plenty of alternatives to build things, and in general this is good, in that you're allowed to pick instruments that better suit you or the final result.&lt;/p&gt;

&lt;p&gt;But sometimes it's not about fair alternatives.&lt;/p&gt;

&lt;p&gt;There is hidden complexity, hidden costs for the adoption and - ultimately - hidden security challenges.&lt;/p&gt;

&lt;p&gt;User fronting technologies are particularly affected by the "cool factor". Everyone want to look good, everyone has great time selling eye candy to the customers, but most of the time it is not entirely understood what that means.&lt;/p&gt;

&lt;p&gt;We seem to care more about the external look of an application than what it really does with our data.&lt;/p&gt;

&lt;p&gt;And the reality is: you want printed quality fonts of arbitrary family, single page application that do not reload the page, seamless experience on any screen size and ratio... you can get it, of course.&lt;br&gt;
Just, this means you're bringing in telemetry from occult CDN 'freeware' providers.&lt;/p&gt;

&lt;p&gt;You are violating user data, to the benefit of unknown third parties with those huge bundles that you force the users to download.&lt;br&gt;
You are forcing a state onto the clients, that gets soon out of hand when things go wrong.&lt;/p&gt;

&lt;p&gt;Good luck ringing a million users asking: "please refresh your local cache", will they really be happier like that?&lt;/p&gt;

&lt;p&gt;It could be this is what you need, but again I think than in a very high percentage of cases all the user really need is a readable font, an accessible layout and websites that do not weigh more than 1M at the first access.&lt;/p&gt;

&lt;p&gt;Everything more than that very quickly becomes just a sustainability issue.&lt;/p&gt;

&lt;p&gt;For the weekly links: &lt;a href="https://kevwe.com/weekly/202248"&gt;https://kevwe.com/weekly/202248&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Db of Mass Destruction</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Fri, 18 Nov 2022 15:35:52 +0000</pubDate>
      <link>https://dev.to/madunixman/db-of-mass-destruction-4doj</link>
      <guid>https://dev.to/madunixman/db-of-mass-destruction-4doj</guid>
      <description>&lt;p&gt;For very long time there has been the illusion that people could just store their important data in social account.&lt;/p&gt;

&lt;p&gt;As it is more and more evident, maybe this is not the smartest choice.&lt;/p&gt;

&lt;p&gt;Most peple is not supposed to know the inner workings of the internet, like most people is not supposed to know how an engine works.&lt;/p&gt;

&lt;p&gt;But while, in order to be able to start a car you should at least have the notion that indeed, it needs a motor, we would not want to hide from people that sometimes a database is a technology that can help.&lt;/p&gt;

&lt;p&gt;And also, that gifting away private data to social networks is not that unlike running into a tree&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kevwe.com/weekly/202247"&gt;https://kevwe.com/weekly/202247&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Share a directory with the Guest System in KVM</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Sun, 13 Nov 2022 19:14:11 +0000</pubDate>
      <link>https://dev.to/madunixman/how-to-share-a-directory-with-the-guest-system-in-kvm-13gf</link>
      <guid>https://dev.to/madunixman/how-to-share-a-directory-with-the-guest-system-in-kvm-13gf</guid>
      <description>&lt;p&gt;&lt;a href="https://kevwe.com/blog/Share-a-directory-with-the-Guest-System"&gt;https://kevwe.com/blog/Share-a-directory-with-the-Guest-System&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>selfhosting</category>
    </item>
    <item>
      <title>Fear of Hypervisors</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Sun, 13 Nov 2022 19:12:51 +0000</pubDate>
      <link>https://dev.to/madunixman/fear-of-hypervisors-4a65</link>
      <guid>https://dev.to/madunixman/fear-of-hypervisors-4a65</guid>
      <description>&lt;p&gt;Not unlike how Lucretius described the Superstition springing out from the fear of&lt;br&gt;
thunder and lightning, the Cloud was born as a religion out of the Fear of Hypervisors.&lt;/p&gt;

&lt;p&gt;We adore the Cloud and the elastic scalability out of ignorance and misunderstanding.&lt;/p&gt;

&lt;p&gt;We can't see, therefore we cannot understand, the magic of KVM and Libvirt.&lt;/p&gt;

&lt;p&gt;We can't see, and therefore do not understand what overcommitted resources actually mean.&lt;br&gt;
(Spoiler: it means you can pay 10x your actual physical resources usage)&lt;/p&gt;

&lt;p&gt;The thunder gods gave us disposable instances, scalable magic and other heavenly clouds.&lt;/p&gt;

&lt;p&gt;Tough, the Original Sin of the &lt;a href="https://aws.amazon.com/compliance/shared-responsibility-model/"&gt;Shared Responsibility Model&lt;/a&gt;&lt;br&gt;
is still there: we won't be saved from someone else alone taking care of our own data.&lt;/p&gt;

&lt;p&gt;We delegate but still are responsible for our customers data.&lt;/p&gt;

&lt;p&gt;We won't be saved by ignorance as, when the thunder gods will decide to unplug humanity,&lt;br&gt;
we will need to re-learn it all again.&lt;/p&gt;

&lt;p&gt;It has happened before, and it will happen again.&lt;/p&gt;

&lt;p&gt;For the weekly links at: &lt;a href="https://kevwe.com/weekly/202246"&gt;https://kevwe.com/weekly/202246&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Get Your Own Cassandra Cluster in 1.618 hours</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Wed, 02 Nov 2022 17:29:44 +0000</pubDate>
      <link>https://dev.to/madunixman/get-your-own-cassandra-cluster-in-1618-hours-21g2</link>
      <guid>https://dev.to/madunixman/get-your-own-cassandra-cluster-in-1618-hours-21g2</guid>
      <description>&lt;p&gt;All you need&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2N+1 linux machines (virtual?), with N&amp;gt;=1
a command line
a sheet of paper
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Install the build system&lt;/p&gt;

&lt;p&gt;Apache Cassandra needs a Java sdk installed. The latest supported version is Java 11. I read that upcoming support for latest Java version will be soon here, but we stick to Java 11 that is supported by now.&lt;/p&gt;

&lt;p&gt;In order to have Apache Cassandra working on Java 11, it needs to be compiled with it, or you will have to run it with Java 8.&lt;/p&gt;

&lt;p&gt;In order to install Java, you might want to do it like this, possibly from a root account:&lt;/p&gt;

&lt;p&gt;mkdir -p /opt/java&lt;br&gt;
curl -LO &lt;a href="https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz"&gt;https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;tar vxzf openjdk-11+28_linux-x64_bin.tar.gz&lt;br&gt;
mv jdk-11 /opt/java&lt;br&gt;
cat&amp;gt; /opt/shared/java/load-jdk-11.sh &lt;/p&gt;

&lt;h1&gt;
  
  
  ! /bin/bash
&lt;/h1&gt;

&lt;p&gt;export JAVA_HOME=/opt/java/jdk-11&lt;br&gt;
export PATH=${JAVA_HOME}/bin:${PATH}&lt;/p&gt;

&lt;p&gt;The full article: &lt;a href="https://kevwe.com/blog/get-your-own-cassandra-cluster"&gt;https://kevwe.com/blog/get-your-own-cassandra-cluster&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Nightmare called YML</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Mon, 24 Oct 2022 14:32:23 +0000</pubDate>
      <link>https://dev.to/madunixman/a-nigthtmare-called-yml-4a7h</link>
      <guid>https://dev.to/madunixman/a-nigthtmare-called-yml-4a7h</guid>
      <description>&lt;p&gt;I started working as a professional developer around year 2000.&lt;/p&gt;

&lt;p&gt;At that time, XML was the last trend, everyone and his cousin was migrating legacy config files and data to use XML.&lt;/p&gt;

&lt;p&gt;People was writing parsers to marshall and un-marshall XML into objects in-memory.&lt;/p&gt;

&lt;p&gt;Java was much slower and verbose at the time, the RAM was very costly, and everyone wanted to migrate databases to a bunch of XML files, because it seemed like a cool thing to do.&lt;/p&gt;

&lt;p&gt;Everyone wanted to query data with XQuery, make the fancy prints with XSLT and maybe validate with XSD for the fun of it.&lt;/p&gt;

&lt;p&gt;Corba was a thing of the past, and now we could finally break our heads on WSDL and the S in SOAP that the legend says it stands for: Simple.&lt;/p&gt;

&lt;p&gt;One hour of implementation and a team for six months performing painful XSD validations: a good standard for the industry.&lt;/p&gt;

&lt;p&gt;If you wanted to look smart in job interviews, you just had to name a lot of things with J in it: EJB, J2EE, JDO, JDBC, JNDI!&lt;/p&gt;

&lt;p&gt;In a few years, the revolution was about to happen, Spring project promised to get rid of all the mess in J2EE and costly application servers. The solution was simple: just type in a bunch of XML files, and you fulfill the enterprise specs without the intended application server.&lt;/p&gt;

&lt;p&gt;Nowadays we're much more loose, a decade of Rest webservices have totally spoiled us: life is finally quite easy, we don't need so much head scratching on the backend: there is the frontend for that.&lt;/p&gt;

&lt;p&gt;Just give them some Json response and let them complicate their lives with the latest coolest vulnerable Node module, and they will get back to you in a month of two.&lt;/p&gt;

&lt;p&gt;Infrastructure as a code: if you ask me, a very good idea. Git is a gift from the gods, even more if you have been using CVS, SVN, PVCS or other monsters from the past. Only hearing the names scares the hell out of me!&lt;/p&gt;

&lt;p&gt;The only problem I witness today is a scary proliferation of products based on YML.&lt;/p&gt;

&lt;p&gt;If you ask me, YML has taken the bad enterprisey parts of XML, and joined them with the casual attitude of nowaday's API designers: code first, explain (maybe) someday. Provide some structure, but not too much.&lt;/p&gt;

&lt;p&gt;And as bad as XML was - and still is - you can actually reformat it like you want. Validation is a pain, but it's not left to your human discernment of spaces vs tabs. You don't have to count the dashes and the spaces on each line to make some sense out of it: we had enough of strange syntaxes editing SGMLS DTDs (see: monsters as above) and just wanted few simple, machine-enforceable rules.&lt;/p&gt;

&lt;p&gt;In a nutshell, the good part of XML is that it was never really meant for humans, while YML is supposed to be "helpful" and "friendly".&lt;/p&gt;

&lt;p&gt;I don't know why, but this looks pretty much like a mistake, and in my mind the proper adjective seems rather: "hostile", and if I can convert it to Json instead, or anything else, I'd rather go for it.&lt;/p&gt;

&lt;p&gt;I see that the line of thinking in YML could be considered similar to Markdown: comfortable to type, structured, easy to read, apart that Markdown structure is sound and mostly makes sense for a human, while still being parsable from code. On the other hand YML structure mostly sucks for a human, while it's quite brittle and fragile for parsers too.&lt;/p&gt;

&lt;p&gt;I have to admit I've never incurred into the Norway problem, because YML files started to bite me so much earlier, and when copy-pasting around, I just assume I must have done something wrong, like adding an invisible space somewhere, then I have to start typing everything from scratch.&lt;/p&gt;

&lt;p&gt;Put in perspective, I think that in a decade or so, and with an ever aging population of technologists, someone will eventually come up with a Manifesto that argues the true agility consists in avoiding stupid keyboard shortcuts and whitespace hacks.&lt;/p&gt;

&lt;p&gt;I expect someone to come up with talks that illustrate to the wider public the Total Cost of Ownership of a code base relying on positional semantics that, given somewhere an extra whitespace, implodes on itself.&lt;/p&gt;

&lt;p&gt;The links for this week:&lt;br&gt;
&lt;a href="https://kevwe.com/weekly/202243"&gt;https://kevwe.com/weekly/202243&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The API Economy</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Tue, 11 Oct 2022 15:55:57 +0000</pubDate>
      <link>https://dev.to/madunixman/the-api-economy-2hg6</link>
      <guid>https://dev.to/madunixman/the-api-economy-2hg6</guid>
      <description>&lt;p&gt;The focus on new languages and new technologies sometimes has left behind the need for data interchange and durability.&lt;/p&gt;

&lt;p&gt;Do not keep reinventing new ways to do do the same things if fewer application are then able to speak to each other:&lt;/p&gt;

&lt;p&gt;the net result is a loss.&lt;/p&gt;

&lt;p&gt;Favor technologies that are contract-based: be explicit about the spec, and loose about the implementation details.&lt;/p&gt;

&lt;p&gt;We want to build APIs that last longer than the languages they're implemented with.&lt;/p&gt;

&lt;p&gt;We want our applications to be an investment, not just a temporary luxury: something that lasts.&lt;/p&gt;

&lt;p&gt;Below The links of the week:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kevwe.com/weekly/202241"&gt;https://kevwe.com/weekly/202241&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Avoiding the Bloat with Microservices</title>
      <dc:creator>Paolo Lulli</dc:creator>
      <pubDate>Sun, 09 Oct 2022 21:37:43 +0000</pubDate>
      <link>https://dev.to/madunixman/avoiding-the-bloat-with-microservices-14nb</link>
      <guid>https://dev.to/madunixman/avoiding-the-bloat-with-microservices-14nb</guid>
      <description>&lt;p&gt;When we implement microservices, the first tought is to reuse what we know well from the Old World.&lt;/p&gt;

&lt;p&gt;In fact, reuse is a good thing.&lt;/p&gt;

&lt;p&gt;But we should not miss the opportunity for smarter pieces to fill in.&lt;/p&gt;

&lt;p&gt;Smarter technologies, niche libraries that help get the job done with less legacy.&lt;/p&gt;

&lt;p&gt;A lot can be achieved with small microservices that get the job done, and done well.&lt;/p&gt;

&lt;p&gt;I am thinking small Go services wherever Java is simply too much:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kevwe.com/weekly/202240"&gt;https://kevwe.com/weekly/202240&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
