<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Nicola Costantino on Medium]]></title>
        <description><![CDATA[Stories by Nicola Costantino on Medium]]></description>
        <link>https://medium.com/@costantino.dev?source=rss-7eeff80d0823------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*KPmVc45REwnFMZBCBQ4nQA.png</url>
            <title>Stories by Nicola Costantino on Medium</title>
            <link>https://medium.com/@costantino.dev?source=rss-7eeff80d0823------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 10:44:17 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@costantino.dev/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Welcome $HOME]]></title>
            <link>https://medium.com/@costantino.dev/welcome-home-940fccaf9b7c?source=rss-7eeff80d0823------2</link>
            <guid isPermaLink="false">https://medium.com/p/940fccaf9b7c</guid>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[microsoft]]></category>
            <category><![CDATA[wsl]]></category>
            <category><![CDATA[surface-pro]]></category>
            <category><![CDATA[development]]></category>
            <dc:creator><![CDATA[Nicola Costantino]]></dc:creator>
            <pubDate>Thu, 13 Dec 2018 08:44:15 GMT</pubDate>
            <atom:updated>2020-04-28T17:31:47.724Z</atom:updated>
            <content:encoded><![CDATA[<h4>Using my Surface Pro as my trustworthy main machine: how I configured the WSL (Windows Subsystem for Linux) for dealing with my data in the right way</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5pHIIVRuUJGq35xivRArFg.jpeg" /><figcaption>Microsoft ❤️ Linux</figcaption></figure><h4>TL;DR: Jump to the chapter “Prison Break”</h4><h3>The Prequel</h3><p>I have a long past with Linux and Mac OS (I had a MacBook Pro for nearly 8 years), but some months ago I bought a Microsoft Surface Pro as my main personal computer.</p><p>I’ve done it because I really like the new Microsoft era and each one of their tools (hardware and software) for developers and professionals in general.</p><p>And I really like WSL.</p><p>If you are a developer, perhaps you already know something about it: <strong>WSL </strong>(<a href="https://docs.microsoft.com/en-us/windows/wsl/about">Windows Subsystem for Linux</a>, which is a fun name for a system that kind of does the exact opposite) is a compatibility layer that lets the user have a GNU/Linux environment on Windows 10. Basically, it translates on-fly all the system calls made to the Linux kernel in the respective calls of the Windows one and <strong>it lets you execute most of the command-line executables from</strong> the most common <strong>Linux</strong> distributions.</p><h3>The Problem</h3><p>My little Surface Pro (which is not the highest-end model of the family) has some important limitations such as little CPU and passive cooling. I need a *nix environment and WSL should help me with this better than VM and a per-project Docker configuration that generally could be more resource hungry, but I still have to deal with the internal storage.</p><h3>Inception: Matryoshka Storage</h3><blockquote>“All the data I generate using WSL are in a fairly scaring Matryoshka doll-style (little) storage system.”</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*FUcoy9AEGOaBXJ4J3QQsCg.png" /><figcaption><a href="https://www.behance.net/gallery/1500945/Inception-Matryoshka">Image credits</a></figcaption></figure><p>The main problem with WSL — especially on machines with limited storage — is that it stores all its data on the main partition (the one where lies the Operating System); the “Linux distribution” that can be easily downloaded from the Store are also stored on the main partition, and each one of these stores all the data (packages, files, …) in a virtual filesystem that must not be accessed from the outside.</p><p>As a recap, all the data I generate using WSL are in a fairly scaring Matryoshka doll-style (little) storage system. For example, using a default WSL + Ubuntu latest setup, I have (from inside-out):</p><ul><li>the data I create using Ubuntu are stored in that specific “virtual filesystem” accessible only by that specific Ubuntu</li><li>the whole Ubuntu distribution can only lie on the main partition of the Operating System</li><li>the whole Operating System on the internal drive of a machine that has a not replaceable little storage, also inaccessible from the outside.</li></ul><p>If there’s a failure in any one of these points — such as failure in the virtual filesystem, Ubuntu uninstalled, failure on the storage, or the machine — my data are gone for good.</p><h3>Prison Break</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/653/1*xgfFmYwRxbfh8krTUzG4LA.jpeg" /><figcaption>Strategic planning is the key to success — <a href="https://www.imdb.com/title/tt1224479/">Image source</a></figcaption></figure><p>I need to <strong>store my entire workspace outside</strong> the specific Linux distribution I’m using in use, and possibly outside the machine itself.</p><p>The little Surface has a couple of USB 3 ports and a microSD slot.</p><p>After some researches, I found that these can be the main allies for creating a solution to my problem.</p><p>Let’s talk about the plan.</p><h3>Phase I: Setup</h3><ol><li>Setup WSL (you don’t say…): follow the <a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10">official steps from Microsoft</a> or one of the million guides online</li><li>Initialize the distro (again, you don’t say…): (again, <a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10#install-your-linux-distribution-of-choice">from the official guide from Microsoft</a>)</li></ol><h3>Phase II: Escape</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*RRLtqXdLBkDnEOo2jzHAwQ.jpeg" /><figcaption>“Legends have great execution.” Anon. — <a href="https://www.pinterest.it/pin/510103095263478187/?lp=true">Image source</a></figcaption></figure><h4>Step 1</h4><p><strong>Important</strong>: Format the drive/microSD card as <strong>NTFS</strong>! DrvFs (more info in the point 1 of the “Conclusions and evaluations” section, at the end of the article) can read multiple filesystems, but — from my experience — <a href="https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/">it can only perform at best on NTFS</a>. My microSD card was at first formatted as FAT32 and I had a lot of problems with symbolic links and metadata (such as Linux permissions)</p><h4>Step 2</h4><p>Currently, WSL automatically mounts all the NTFS fixed drives, but mine is a removable one. We need to mix WSL and dear old fstab. I just need to tell WSL to automatically load fstab configuration at startup and define all the details about mounting inside the fstab configuration, as it’s commonly done on Linux.</p><h4>Step 3</h4><p>Create or edit the file <em>/etc/wsl.conf</em> inside the distribution; this file can be used for automatically handling some WSL configurations. The only options that are needed are “enabled” and “mountFsTab” under the “automount” sections, but I’ve specified all of them just for completeness. In the end, mine is like this:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/0b305011cc30f921c47a5ab1e35f82d7/href">https://medium.com/media/0b305011cc30f921c47a5ab1e35f82d7/href</a></iframe><p>More info about all the options for this file <a href="https://blogs.msdn.microsoft.com/commandline/2018/02/07/automatically-configuring-wsl/">here</a>.</p><h4>Step 4</h4><p>Create or edit the file <em>/etc/fstab</em>; this is a common system configuration file on *nix systems and it’s used to describe how to initialize and mount all the available data sources (such as disks). Specify here the details of the removable drive with this format:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/0392f44185a24fac356226350d1e4b98/href">https://medium.com/media/0392f44185a24fac356226350d1e4b98/href</a></iframe><p>In my case:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/9f1e2c3675a88dbcd1bf5b3f36ef8c54/href">https://medium.com/media/9f1e2c3675a88dbcd1bf5b3f36ef8c54/href</a></iframe><h4>Step 5</h4><p>Exit from WSL and open it again, then check that the drive is correctly mounted at the specified mount point</p><h3>Phase III: “One more thing…”</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*XhRb7XkmXIDrZv4SqCjG6w.gif" /><figcaption>Sorry, Steve. I mean Jobs.</figcaption></figure><p>I created 2 main <strong>folders </strong>in the external drive called respectively:</p><ul><li><strong><em>Windows</em></strong>: it’s used for external download folder, documents, books, whatever could need an important amount of space</li><li><strong><em>WSL</em></strong>: where I put all the Linux-ish files, generally accessed with the WSL (workspace, configurations, and dotfiles used across the various distributions, …)</li></ul><p>I found that folders are way better than partitions with fixed size: I just need a logical division to keep things organized and using folders they can freely grow as needed without wasting space until the whole external drive is full.</p><h3>Conclusions and evaluations</h3><h4>About the data and the File System</h4><p>All the data on the external drive are easily accessible by any Operating Systems: all the Linux distributions can mount the drive and access them along with Windows, without breaking permissions or corrupting them.</p><p>This is possible because I mounted the external drive using DrvFs, a filesystem created to give a good trade-off between a native Linux-alike experience and interoperability with Windows. While I develop, I need to edit and access the files on the external drive from both sides, so that’s perfect for my use.</p><p>The other option is VolFs which supports most of the features of the Linux VFS (more info about it <a href="https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/">here</a>).</p><h4>The Drive</h4><p>Generally, I prefer microSD to USB solutions: USB drives (especially pen drives) are extremely uncomfortable and dangerous in mobility because they must be attached/removed each time, slowing down the process to take the Surface and put it back in the bag.</p><p>The microSD is tiny, easily accessible and removable, but it’s very well protected and sometimes I simply forget to have it</p><h4>Workflow and moving WSL</h4><p>With this setup, I can easily have <strong>different workspaces</strong> for different purposes: I just have to switch microSD cards and/or USB drives at any time without breaking the WSL because the entire distribution is still on the internal storage.</p><p>Also, <strong>backups </strong>are trivial: I just have to clone the card or simply transfer the content, and I can do it even using Windows and another USB drive</p><p>There are other solutions as <a href="https://github.com/DDoSolitary/LxRunOffline">LxRunOffline</a> which can be used to move the distribution on the external drive; this can save more space, but when the drive is removed the entire Linux system will be unusable.</p><h3>Additional Resources</h3><ul><li><a href="https://aka.ms/learnwsl">Official Microsoft guides and resources for WSL</a></li></ul><h3>Thank you!</h3><p>Please feel free to share and comment if you found useful this article!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=940fccaf9b7c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Excelsior.]]></title>
            <link>https://medium.com/@costantino.dev/excelsior-4444976cfa65?source=rss-7eeff80d0823------2</link>
            <guid isPermaLink="false">https://medium.com/p/4444976cfa65</guid>
            <category><![CDATA[marvel]]></category>
            <category><![CDATA[in-italiano]]></category>
            <category><![CDATA[comics]]></category>
            <category><![CDATA[medium-italia]]></category>
            <dc:creator><![CDATA[Nicola Costantino]]></dc:creator>
            <pubDate>Thu, 15 Nov 2018 15:59:35 GMT</pubDate>
            <atom:updated>2018-11-16T20:23:21.943Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VCB6Uv4P34af2NZq8V8PBA.jpeg" /><figcaption>The Amazing Stan Lee by Nick Saglimbeni</figcaption></figure><p>Ho conosciuto la Marvel e i supereroi di Stan Lee prima attraverso qualche serie animata da bambino e poi negli anni con il Marvel Cinematic Universe e i telefilm.</p><p>La mia esperienza è limitata non essendo un esperto dei classici albi a fumetti, però sto ritrovando negli articoli commemorativi ciò che più mi ha affascinato e ho amato dei suoi personaggi: la complessità, la profondità e la loro dimensione umana.</p><p>Eroi, antieroi e antagonisti sono al limite dell’onnipotenza, ma non sono mai assoluti: ognuno ha le proprie debolezze e i propri trascorsi. Non sono soltanto l’incarnazione di una specifica qualità e di un’etica ben precisa, ma sono “supereroi con super-problemi” che convivono con i propri conflitti e che evolvono. Abitano un mondo come il nostro e hanno problemi simili ai nostri: ognuno di loro è un riferimento in cui chiunque può riconoscersi.</p><p>Attraverso i suoi cameo, però, Stan Lee era l’unico in grado di coesistere fisicamente nel “nostro” e il “loro” universo, come padre dei supereroi nel “nostro” e con il più disparato e umano dei ruoli possibili nel “loro”. Ritrovarlo anche per pochi secondi in ogni pellicola Marvel infondeva sicurezza. Non era solo un sigillo di garanzia per la qualità della trasposizione cinematografica del fumetto di origine, ma era anche un qualcosa di più profondo: in un certo senso, “nonno nerd” accompagnava al cinema i bambini e tutti quelli che tornavano ad esserlo durante il film. Si è creata negli anni una strana tradizione e non so che effetto farà guardare i prossimi.</p><p>Ci ha lasciato dopo “ Avengers: Infinity War”, in un punto di massima crisi nell&#39;universo Marvel e forse anche nella storia contemporanea, quando l’insieme di tutte le armature scintillanti del “bene” non basta e mentre il “male” soffre la rassegnazione arrivando anche piangere per amore.</p><p>La Marvel lo ricorda con una <a href="https://www.marvel.com/remembering_stan_lee">pagina</a> in cui spicca questa versione di una sua citazione:</p><blockquote>“ Mi vergognavo perché io ero soltanto uno scrittore di fumetti mentre altre persone costruivano ponti o avanzavano con la carriera medica. Ma poi ho cominciato a capire: l’intrattenimento è una delle cose più importanti nella vita delle persone. Senza di esso, potrebbero intraprendere una cattiva strada. Credo che se sei in grado di intrattenere, stai facendo una buona azione.”</blockquote><p>Probabilmente questa, tra <a href="https://www.syfy.com/syfywire/stan-lee-reflects-on-his-legacy">le altre</a>, è la sua più grande eredità e ciò che in fondo ha sempre fatto: Stan Lee ha creato un universo immaginario popolato da esseri super, ma ha mostrato che la realtà ha bisogno di ogni persona comune che con il proprio talento — non importa quale — fornisca una guida e porti via gli altri dai loro problemi.</p><p>Ha dimostrato che un’azione sincera, più di ogni altro superpotere, salva il mondo una vita alla volta.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4444976cfa65" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>