<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>progressiv.dev blog</title>
    <link>https://blog.progressiv.dev/suguru/</link>
    <description></description>
    <pubDate>Tue, 28 Apr 2026 17:58:19 +0000</pubDate>
    <item>
      <title>Fascinating software</title>
      <link>https://blog.progressiv.dev/suguru/fascinating-software</link>
      <description>&lt;![CDATA[If you have been in the world of #freesoftware long enough, you will find that a lot of them are likely to be either one of them:&#xA;&#xA;Copycat of de-facto software (gratis alternative to …) with &#34;pro&#34; and &#34;community (peasant)&#34; separation looking for cash which should be trickling down from broader demand&#xA;&#xA;Boring software looking for actual problems to solve, which lacks substantial demand; whose authors desperately trying to justify their cheap work taking advantage of the notion of &#34;sustainability&#34; for their own interest, although nobody has begged them to create it in the first place&#xA;&#xA;Due to the constant increase of the number of programmers who are trying to make their living on software, along with the constant improve of literacy about software among us all, that trend will not stop for a while.&#xA;&#xA;Tilix: a tiling terminal emulator&#xA;&#xA;Lately I have found this pretty nice terminal emulator named Tilix. It is basically a tiling terminal emulator, which spares you from looking for emulator windows on your desktop environment.&#xA;&#xA;!--more--&#xA;&#xA;Screenshot&#xA;&#xA;(Now, I know some of you would tip me to use tiling windows managers like Sway. I have indeed tried it once, but the learning curve was too steep for me at that time.)&#xA;&#xA;The point is that Tilix actually solved one of the issues which I have wanted to solve for a while; as a lazy GUI user I have a die-hard habit to leave a lot of windows opened in a single workplace, and need to use the mouse to select a terminal emulator window from its windows. It often distracts me from the things I have been working on the emulated CUI environment. Tilix makes it possible to organize with tabs on a single window, staying in the CUI experience.&#xA;&#xA;The other point which I find fascinating is that the project does not order ask you to donate. There is not even a single mention about &#34;sustainability&#34; or some sort of bullshit intended to make you feel guilty about using the software freely, as if doing so would be taking advantage of the work. This indeed has encouraged me to be supportive for the software in the way I can easily, which is writing this post.&#xA;&#xA;In fact, Tilix has reminded me the excitement which I have felt when I bought a RealForce keyboard for the first time; the kind of feeling that you&#39;ve got a game-changer in your hand.&#xA;&#xA;Being humble toward the software you create and generous about it is the virtue which is pretty rare to see in this environment. You have got to make your own living somehow, but blaming other people for the difficulty is not the way how you are supposed to behave. Creating a fascinating game-changer shutting your mouth will always fascinate us. Even if the software might not make your living financially, it makes our lives nicer and happier indeed.&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>If you have been in the world of <a href="/suguru/tag:freesoftware" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">freesoftware</span></a> long enough, you will find that a lot of them are likely to be either one of them:</p>
<ol><li><p>Copycat of de-facto software (<em>gratis alternative to …</em>) with “pro” and “community <del>(peasant)</del>” separation looking for cash which should be trickling down from broader demand</p></li>

<li><p>Boring software looking for actual problems to solve, which lacks substantial demand; whose authors desperately trying to justify their cheap work taking advantage of the notion of “sustainability” for their own interest, although nobody has begged them to create it in the first place</p></li></ol>

<p>Due to the constant increase of the number of programmers who are trying to make their living on software, along with the constant improve of literacy about software among us all, that trend will not stop for a while.</p>

<h2 id="tilix-a-tiling-terminal-emulator">Tilix: a tiling terminal emulator</h2>

<p>Lately I have found this pretty nice terminal emulator named <a href="https://github.com/gnunn1/tilix/" rel="nofollow">Tilix</a>. It is basically a tiling terminal emulator, which spares you from looking for emulator windows on your desktop environment.</p>



<p><img src="https://gnunn1.github.io/tilix-web/assets/images/gallery/tilix-screenshot-1.png" alt="Screenshot"></p>

<p>(Now, I know some of you would tip me to use tiling windows managers like <a href="https://swaywm.org/" rel="nofollow">Sway</a>. I have indeed tried it once, but the learning curve was too steep for me at that time.)</p>

<p>The point is that Tilix actually solved one of the issues which I have wanted to solve for a while; as a lazy GUI user I have a die-hard habit to leave a lot of windows opened in a single workplace, and need to use the mouse to select a terminal emulator window from its windows. It often distracts me from the things I have been working on the emulated CUI environment. Tilix makes it possible to organize with tabs on a single window, staying in the CUI experience.</p>

<p>The other point which I find fascinating is that the project does not <del>order</del> ask you to donate. There is not even a single mention about “sustainability” or some sort of bullshit intended to make you feel guilty about using the software freely, as if doing so would be taking advantage of the work. This indeed has encouraged me to be supportive for the software in the way I can easily, which is writing this post.</p>

<p>In fact, Tilix has reminded me the excitement which I have felt when I bought a RealForce keyboard for the first time; the kind of feeling that you&#39;ve got a game-changer in your hand.</p>

<p>Being humble toward the software you create and generous about it is the virtue which is pretty rare to see in this environment. You have got to make your own living somehow, but blaming other people for the difficulty is not the way how you are supposed to behave. Creating a fascinating game-changer shutting your mouth will always fascinate us. Even if the software might not make your living financially, it makes our lives nicer and happier indeed.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/fascinating-software</guid>
      <pubDate>Sun, 07 Dec 2025 15:50:00 +0000</pubDate>
    </item>
    <item>
      <title>Keyoxide: free software for creating and verifying online identities</title>
      <link>https://blog.progressiv.dev/suguru/keyoxide-free-software-for-creating-and-verifying-online-identities</link>
      <description>&lt;![CDATA[Keyoxide is a privacy-friendly #FOSS to create and verify decentralized online identities.&#xA;&#xA;Since years there have been similar tools like Keybase, but because it is provided as proprietary and centralized one, you are supposed to fully trust that it should work as expected. Keyoxide, on the other hand, is free software, therefore it is possible for anyone to audit, copy, modify the code as you want to, and run it on a server of your choice. (keyoxide.org is maintained and provided by the developers as a public server). The identities you can verify with Keyoxide include: DNS, Forgejo, GitHub, services on ActivityPub, IRC, Liberapay, OpenPGP, Reddit, Twitter, XMPP, etc.&#xA;&#xA;!--more--&#xA;&#xA;I have known the project since a couple of years, but not used it as its concept seemed to difficult for me to understand. On Mastodon I noticed the major update for the mobile app released before FOSDEM this year, and finally gave it a try. The app is fairly easy to use, the UI is straightforward, and I successfully published my profile with it on keyoxide.org by following the instructions on UI. As I like the idea behind Keyoxide, I devoted a couple of days to the apps localization here.&#xA;&#xA;Here is a link to the official profile of the project: https://keyoxide.org/project%40keyoxide.org. It should give you an impression of how Keyoxide works.&#xA;&#xA;If you are going to create your own profile, I would like to recommend you to have a look at documentation first to get yourself familiar with the concept.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://www.keyoxide.org" rel="nofollow">Keyoxide</a> is a privacy-friendly <a href="/suguru/tag:FOSS" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">FOSS</span></a> to create and verify decentralized online identities.</p>

<p>Since years there have been similar tools like <a href="https://keybase.io/" rel="nofollow">Keybase</a>, but because it is provided as proprietary and centralized one, you are supposed to fully trust that it should work as expected. Keyoxide, on the other hand, is free software, therefore it is possible for anyone to audit, copy, modify the code as you want to, and run it on a server of your choice. (keyoxide.org is maintained and provided by the developers as a public server). The identities you can verify with Keyoxide include: DNS, Forgejo, GitHub, services on ActivityPub, IRC, Liberapay, OpenPGP, Reddit, Twitter, XMPP, etc.</p>



<p>I have known the project since a couple of years, but not used it as its concept seemed to difficult for me to understand. On Mastodon I noticed the major update for the mobile <a href="https://keyoxide.org/apps" rel="nofollow">app</a> released before FOSDEM this year, and finally gave it a try. The app is fairly easy to use, the UI is straightforward, and I successfully published my profile with it on keyoxide.org by following the instructions on UI. As I like the idea behind Keyoxide, I devoted a couple of days to the apps localization <a href="https://translate.codeberg.org/projects/keyoxide/" rel="nofollow">here</a>.</p>

<p>Here is a link to the official profile of the project: <a href="https://keyoxide.org/project%40keyoxide.org" rel="nofollow">https://keyoxide.org/project%40keyoxide.org</a>. It should give you an impression of how Keyoxide works.</p>

<p>If you are going to create your own profile, I would like to recommend you to have a look at <a href="https://docs.keyoxide.org/" rel="nofollow">documentation</a> first to get yourself familiar with the concept.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/keyoxide-free-software-for-creating-and-verifying-online-identities</guid>
      <pubDate>Sat, 10 Feb 2024 16:54:54 +0000</pubDate>
    </item>
    <item>
      <title>Personal information and AI in Japan</title>
      <link>https://blog.progressiv.dev/suguru/personal-information-and-ai-in-japan</link>
      <description>&lt;![CDATA[In #Japan, it is possible for a company to use and share personal information for an internal usage among the companies which have the same parent one, as long as you have once got a consent. This is one of the important differences between GDPR and The Japan Act on the Protection of Personal Information, also known as APPI.&#xA;&#xA;So, if you have agreed that your private information to be used to &#34;improve their services&#34;, you have basically given the green light to let them use it for whatever objects which they regard improve them, including to train #ai model by machine learning.&#xA;&#xA;Also, the usage of data for machine learning is not limited by the copyright of the data. See: https://coinpost.jp/?p=465637&#xA;&#xA;That&#39;s why Japan is called as the heaven for machine learning by the private companies, whereas it is privacy hell for the general population, compensated by nothing for letting them use the data for their business.]]&gt;</description>
      <content:encoded><![CDATA[<p>In <a href="/suguru/tag:Japan" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Japan</span></a>, it is possible for a company to use and share personal information for an internal usage among the companies which have the same parent one, as long as you have once got a consent. This is one of the important differences between GDPR and The Japan <a href="https://www.cas.go.jp/jp/seisaku/hourei/data/APPI.pdf" rel="nofollow">Act on the Protection of Personal Information</a>, also known as APPI.</p>

<p>So, if you have agreed that your private information to be used to “improve their services”, you have basically given the green light to let them use it for whatever objects which they regard improve them, including to train <a href="/suguru/tag:ai" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">ai</span></a> model by machine learning.</p>

<p>Also, the usage of data for machine learning is not limited by the copyright of the data. See: <a href="https://coinpost.jp/?p=465637" rel="nofollow">https://coinpost.jp/?p=465637</a></p>

<p>That&#39;s why Japan is called as the heaven for machine learning by the private companies, whereas it is privacy hell for the general population, compensated by nothing for letting them use the data for their business.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/personal-information-and-ai-in-japan</guid>
      <pubDate>Thu, 07 Sep 2023 11:29:31 +0000</pubDate>
    </item>
    <item>
      <title>My CV of FOSS localization projects</title>
      <link>https://blog.progressiv.dev/suguru/my-cv-of-foss-localization-projects</link>
      <description>&lt;![CDATA[One of the projects which I like to do when I have free time is to localize #FOSS projects which I actually use for myself, to collaborate with my colleagues, etc., into my primary language (Japanese). Localization is an enjoyable experience for me and I&#39;m convinced it is one of the meaningful ways to empower users who are not native English speakers.&#xA;&#xA;Below is the list of the projects to which I have contributed or actively localize on mainly voluntarily basis:&#xA;&#xA;CryptPad: 2020 - ongoing&#xA;XWiki: 2022, funded by the team&#xA;Element and matrix-react-sdk: 2021 - 2022 (stopped contributing)&#xA;hostux.network: 2023&#xA;SchildiChat: 2023 - 2024&#xA;PrivateBin: 2023&#xA;Lemmy: 2024&#xA;SelfPrivacy: 2024&#xA;/e/: 2024 &#xA;Duplicati: 2024&#xA;Projects on Weblate.org:&#xA;  FluffyChat: 2022&#xA;  Dino: 2023&#xA;  liberapay: 2023&#xA;  F-Droid: 2024&#xA;  OnionShare: 2024&#xA;Projects on Codeberg:&#xA;  Keyoxide: 2024&#xA;  /kbin: 2024&#xA;  Pineapple Lock Screen: 2024&#xA;&#xA;I&#39;m open to new projects to contribute. Please let me know if you have found interesting and promising ones.]]&gt;</description>
      <content:encoded><![CDATA[<p>One of the projects which I like to do when I have free time is to localize <a href="/suguru/tag:FOSS" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">FOSS</span></a> projects which I actually use for myself, to collaborate with my colleagues, etc., into my primary language (Japanese). Localization is an enjoyable experience for me and I&#39;m convinced it is one of the meaningful ways to empower users who are not native English speakers.</p>

<p>Below is the list of the projects to which I have contributed or actively localize on mainly voluntarily basis:</p>
<ul><li><a href="https://weblate.cryptpad.org/user/shirahara/contributions/" rel="nofollow">CryptPad</a>: 2020 – ongoing</li>
<li><a href="https://l10n.xwiki.org/languages/ja/" rel="nofollow">XWiki</a>: 2022, funded by the team</li>
<li><a href="https://element.io" rel="nofollow">Element</a> and <a href="https://github.com/matrix-org/matrix-react-sdk" rel="nofollow">matrix-react-sdk</a>: 2021 – 2022 (stopped contributing)</li>
<li><a href="https://git.hostux.net/valere/hostux.network" rel="nofollow">hostux.network</a>: 2023</li>
<li><a href="https://weblate.spiritcroc.de/user/luixxiul/contributions/" rel="nofollow">SchildiChat</a>: 2023 – 2024</li>
<li><a href="https://crowdin.com/profile/yinfisc" rel="nofollow">PrivateBin</a>: 2023</li>
<li><a href="https://weblate.join-lemmy.org/user/hecomitz/" rel="nofollow">Lemmy</a>: 2024</li>
<li><a href="https://weblate.selfprivacy.org/user/blackeye/" rel="nofollow">SelfPrivacy</a>: 2024</li>
<li><a href="https://i18n.e.foundation/user/kivk/" rel="nofollow">/e/</a>: 2024</li>
<li><a href="https://app.transifex.com/user/profile/luixxiul01/" rel="nofollow">Duplicati</a>: 2024</li>
<li><a href="https://hosted.weblate.org/user/shirahara/contributions/" rel="nofollow">Projects on Weblate.org</a>:
<ul><li><a href="https://hosted.weblate.org/projects/fluffychat/-/ja/" rel="nofollow">FluffyChat</a>: 2022</li>
<li><a href="https://hosted.weblate.org/projects/dino/-/ja/" rel="nofollow">Dino</a>: 2023</li>
<li><a href="https://hosted.weblate.org/projects/liberapay/-/ja/" rel="nofollow">liberapay</a>: 2023</li>
<li><a href="https://hosted.weblate.org/projects/f-droid/-/ja/" rel="nofollow">F-Droid</a>: 2024</li>
<li><a href="https://hosted.weblate.org/projects/onionshare/-/ja/" rel="nofollow">OnionShare</a>: 2024</li></ul></li>
<li><a href="https://translate.codeberg.org/user/acioustick/contributions/" rel="nofollow">Projects on Codeberg</a>:
<ul><li><a href="https://translate.codeberg.org/projects/keyoxide/-/ja/" rel="nofollow">Keyoxide</a>: 2024</li>
<li><a href="https://translate.codeberg.org/projects/kbin/-/ja/" rel="nofollow">/kbin</a>: 2024</li>
<li><a href="https://translate.codeberg.org/projects/pineapple-lock-screen/-/ja/" rel="nofollow">Pineapple Lock Screen</a>: 2024</li></ul></li></ul>

<p>I&#39;m open to new projects to contribute. Please let me know if you have found interesting and promising ones.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/my-cv-of-foss-localization-projects</guid>
      <pubDate>Sun, 27 Aug 2023 07:28:15 +0000</pubDate>
    </item>
    <item>
      <title>Encrypt data anywhere, decrypt data with your hardware key</title>
      <link>https://blog.progressiv.dev/suguru/encrypt-data-anywhere-decrypt-data-with-your-hardware-key</link>
      <description>&lt;![CDATA[One of the merits of encrypting your data with OpenPGP using a Yubikey is that the private key to decrypt data is stored offline on the hardware and it will not be hacked online.&#xA;&#xA;!--more--&#xA;&#xA;Even if your Yubikey is stolen physically, the data should not be decrypted, since the key is protected with a PIN code and it will be unusable if incorrect PIN is entered more than three times. This case the hardware needs to be reset, which results in the removal of the private key from it. So it is important to change the default PIN and back up the private key somewhere safe.&#xA;&#xA;Also, once you register your public key associated with the private key to a keyserver like https://keys.openpgp.org/, you can download it anywhere you want and encrypt data, keeping the private key on your hand. Private key is required only when you decrypt the data.&#xA;&#xA;OpenPGP + Yubikey -  data encryption unhackable yet&#xA;&#xA;It is unfortunate that the whole #OpenPGP ecosystem is centered on communication tools such as email or chat clients, since those applications are either slowly deprecated or implementing another #encryption protocol. But OpenPGP can be used generally to protect your data from being read by someone.&#xA;&#xA;For example, you can install your public key to a remote server and encrypt data with it online, so that actual server owners cannot read, sell, or hand it over to someone else for whatever reason (technically they may do so but the data is encrypted, so they can do nothing but making an educated guess about its content at best). It is also possible to encrypt data on Android thanks to OpenKeychain. Prepare yourself beforehand in case you lose your phone. Unless encrypted, data is available to someone who gains the physical access to it.&#xA;&#xA;Encrypt your data with your public key and decrypt it when you need to do so, using a physical key such as Yubikey. Only you who have the hardware can decrypt the data. If you do not need an access to the data, destroy the hardware and nobody should be able to decrypt it unless the encryption protocol would be deprecated eventually.&#xA;&#xA;Thanks to the developers community OpenPGP implementation is universally available, and its concept of encryption has not been breached yet. If you are worried about privacy of your data, go ahead and protect data by yourself. You are not forced to trust anyone.&#xA;&#xA;p class=&#34;p--img&#34;span class=&#34;p--img__span&#34;img src=&#34;/img/upload/YubiKey-4-keychain-and-YubiKey-4-Nano.png&#34; alt=&#34;YubiKey 4 keychain and YubiKey 4 Nano&#34; //span/p&#xA;&#xA;p class=&#34;p--detail&#34;a href=&#34;https://commons.wikimedia.org/wiki/File:YubiKey-4-keychain-and-YubiKey-4-Nano.png&#34;Yubico/a, a href=&#34;https://creativecommons.org/licenses/by-sa/4.0&#34;CC BY-SA 4.0/a, via Wikimedia Commons/p]]&gt;</description>
      <content:encoded><![CDATA[<p>One of the merits of encrypting your data with <a href="https://support.yubico.com/hc/en-us/articles/360013790259-Using-Your-YubiKey-with-OpenPGP" rel="nofollow">OpenPGP using a Yubikey</a> is that the private key to decrypt data is stored <strong>offline</strong> on the hardware and it will not be hacked online.</p>



<p>Even if your Yubikey is stolen physically, the data should not be decrypted, since the key is protected with a PIN code and it will be unusable if incorrect PIN is entered more than three times. This case the hardware needs to be reset, which results in the removal of the private key from it. So it is important to change the default PIN and back up the private key somewhere safe.</p>

<p>Also, once you register your public key associated with the private key to a keyserver like <a href="https://keys.openpgp.org/" rel="nofollow">https://keys.openpgp.org/</a>, you can download it anywhere you want and encrypt data, keeping the private key on your hand. Private key is required <em>only</em> when you decrypt the data.</p>

<h2 id="openpgp-yubikey-data-encryption-unhackable-yet">OpenPGP + Yubikey –&gt; data encryption unhackable yet</h2>

<p>It is unfortunate that the whole <a href="/suguru/tag:OpenPGP" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">OpenPGP</span></a> ecosystem is centered on communication tools such as <a href="https://blog.thunderbird.net/2020/09/openpgp-in-thunderbird-78/" rel="nofollow">email</a> or <a href="https://conversations.im/" rel="nofollow">chat</a> clients, since those applications are either slowly deprecated or implementing another <a href="/suguru/tag:encryption" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">encryption</span></a> protocol. But OpenPGP can be used generally to protect your data from being read by someone.</p>

<p>For example, you can install your public key to a remote server and encrypt data with it online, so that actual server owners cannot read, sell, or hand it over to someone else for whatever reason (technically they may do so but the data is encrypted, so they can do nothing but making an educated guess about its content at best). It is also possible to encrypt data on Android thanks to <a href="https://www.openkeychain.org/" rel="nofollow">OpenKeychain</a>. Prepare yourself beforehand in case you lose your phone. Unless encrypted, data is available to someone who gains the physical access to it.</p>

<p>Encrypt your data with your public key and decrypt it when you need to do so, using a physical key such as Yubikey. <strong>Only you who have the hardware can decrypt the data.</strong> If you do not need an access to the data, destroy the hardware and nobody should be able to decrypt it unless the encryption protocol would be deprecated eventually.</p>

<p>Thanks to the developers community OpenPGP implementation is universally available, and its concept of encryption has not been breached <em>yet</em>. If you are worried about privacy of your data, go ahead and protect data by yourself. You are not forced to trust anyone.</p>

<p class="p--img"><span class="p--img__span"><img src="/img/upload/YubiKey-4-keychain-and-YubiKey-4-Nano.png" alt="YubiKey 4 keychain and YubiKey 4 Nano"/></span></p>

<p class="p--detail"><a href="https://commons.wikimedia.org/wiki/File:YubiKey-4-keychain-and-YubiKey-4-Nano.png" rel="nofollow">Yubico</a>, <a href="https://creativecommons.org/licenses/by-sa/4.0" rel="nofollow">CC BY-SA 4.0</a>, via Wikimedia Commons</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/encrypt-data-anywhere-decrypt-data-with-your-hardware-key</guid>
      <pubDate>Tue, 22 Jun 2021 06:33:28 +0000</pubDate>
    </item>
    <item>
      <title>Syncthing: decentralized file sync software</title>
      <link>https://blog.progressiv.dev/suguru/syncthing-decentralized-file-sync-software</link>
      <description>&lt;![CDATA[When it comes to file synchronization, there are several choices based on free software:&#xA;&#xA;Set up Nextcloud or Cryptpad instance by yourself: file synchronization service on-premise.&#xA;Run Syncthing on your devices: continuous file synchronization, which is completely decentralized.&#xA;&#xA;!--more--&#xA;&#xA;I have tried both and I preferred the latter for personal use. Nextcloud is obviously a great way of sharing files with your friends. It enables you to collaborate with them and work on the same project at the same time. However, setting up a service on a central server, which is often physically out of your hand, is a little bit overkill for personal use. As long as you synchronize your files among your own devices you would not need the server, which can be a single point of failure (data can be lost if it fails).&#xA;&#xA;On the other hand, #Syncthing does not require a central server at all. By default it transmits data only among your devices. For example, you can set up Syncthing on your desktop, laptop, and smartphone. If they are connected with LAN data can be synchronized locally, and it is not sent outside of it. You can decide by yourself where to store your data, and there is not a single point of failure.&#xA;&#xA;Syncthing is available on not only Windows, macOS, Android, and iOS but also GNU/Linux distributions and FreeBSD. This level of availability cannot be expected from proprietary software, of course.&#xA;&#xA;Encrypt private data&#xA;&#xA;If you synchronize private data such as recovery passphrase of your online accounts I highly recommend you to encrypt them beforehand to make sure that nobody but you can read the data.&#xA;&#xA;From the perspective of versatility you may use GnuPG for data #encryption. As long as the private key is kept safely, practically there is almost zero chance for other people to read data, even if you lost your device and someone got an access to the encrypted files.&#xA;&#xA;After you create the key pair you can upload the public key to a distribution service such as https://keys.openpgp.org/. Once you have the public key, you can encrypt the file without the private key. It will not be required until you decrypt the file to read it.&#xA;&#xA;In order to keep the private key secure, you can store it on Yubikey, following the official guide available here. Because the private key is stored on the hardware key, it cannot be hacked online.&#xA;&#xA;Create a backup on Storj DCS with rclone&#xA;&#xA;Syncthing provides you a function to store file history, but data loss can happen for whatever reason. You may set it up in a wrong way or there may be a bug on Syncthing. If your devices were broken from a natural disaster like flood, your data would be lost forever, so you should always prepare backup in case.&#xA;&#xA;Following the golden rule of data backup, it should be outside of your Syncthing ecosystem. This means that it should be available online, meaning it comes to full circle: storing data online, outside of the local area network.&#xA;&#xA;The backup itself should also be encrypted and decentralized. For if the backup data was available to someone, what is the point of setting up decentralized file synchronization among your devices in the first place?&#xA;&#xA;For backup solution I would pick up Storj DCS this case as well. #Storj DCS, renamed from #Tardigrade recently, provides an encrypted and decentralized cloud storage. I have covered the service on this site multiple times such as here.&#xA;&#xA;To synchronize local data with cloud storage services, rclone is one of the popular choices. After installing, you can configure it for Storj DCS. &#xA;&#xA;For daily use you can run a .sh script like this:&#xA;&#xA;!/bin/sh&#xA;rclone sync -i --progress /home/local/directory/ remote:bucket/path/to/dir/ --exclude=&#34;.stversions/&#34;&#xA;&#xA;Running that script synchronizes the source to the destination, changing the destination only, deleting any excess files. Folders inside .stversions store versioning files, which Syncthing on each computer saves for itself, so they should only stay local and be excluded from synchronization between Storj DCS.&#xA;&#xA;Since the command can cause data loss, test with --dry-run flag at first to see exactly what would be copied and deleted.&#xA;&#xA;Warning: you are not supposed to upload a huge number of files as the fee is calculated not only how large files are, but also how much files are uploaded! You should read ToS carefully before using the service. &#xA;&#xA;Restore backup&#xA;&#xA;If data loss or conflicts happen locally, you may recover the latest state from backup with this command:&#xA;&#xA;!/bin/sh&#xA;rclone sync -i --progress remote:bucket/path/to/dir/ /home/local/directory/ --exclude=&#34;.stversions/&#34;&#xA;&#xA;It downloads data from Storj DCS, changing the local directories only, deleting any excess files. Test with --dry-run in this case as well.&#xA;&#xA;Copyright (C) 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See https://blog.progressiv.dev/yq31akw3jj for copying conditions.]]&gt;</description>
      <content:encoded><![CDATA[<p>When it comes to file synchronization, there are several choices based on free software:</p>
<ul><li>Set up <a href="https://nextcloud.com/" rel="nofollow">Nextcloud</a> or <a href="https://cryptpad.fr" rel="nofollow">Cryptpad</a> instance by yourself: file synchronization service on-premise.</li>
<li>Run <a href="https://syncthing.net/" rel="nofollow">Syncthing</a> on your devices: continuous file synchronization, which is completely decentralized.</li></ul>



<p>I have tried both and I preferred the latter for personal use. Nextcloud is obviously a great way of sharing files with your friends. It enables you to collaborate with them and work on the same project at the same time. However, setting up a service on a central server, which is often physically out of your hand, is a little bit overkill for personal use. As long as you synchronize your files among your own devices you would not need the server, which can be a single point of failure (data can be lost if it fails).</p>

<p>On the other hand, <a href="/suguru/tag:Syncthing" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Syncthing</span></a> does not require a central server at all. By default it transmits data only among your devices. For example, you can set up Syncthing on your desktop, laptop, and smartphone. If they are connected with LAN data can be synchronized locally, and it is not sent outside of it. You can decide by yourself where to store your data, and there is not a single point of failure.</p>

<p>Syncthing is available on not only Windows, macOS, Android, and iOS but also GNU/Linux distributions and <a href="https://www.freshports.org/net/syncthing" rel="nofollow">FreeBSD</a>. This level of availability cannot be expected from proprietary software, of course.</p>

<h2 id="encrypt-private-data">Encrypt private data</h2>

<p>If you synchronize private data such as recovery passphrase of your online accounts I highly recommend you to encrypt them beforehand to make sure that nobody but you can read the data.</p>

<p>From the perspective of versatility you may use <a href="https://gnupg.org/" rel="nofollow">GnuPG</a> for data <a href="/suguru/tag:encryption" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">encryption</span></a>. As long as the private key is kept safely, practically there is almost zero chance for other people to read data, even if you lost your device and someone got an access to the encrypted files.</p>

<p>After you create the key pair you can upload the public key to a distribution service such as <a href="https://keys.openpgp.org/" rel="nofollow">https://keys.openpgp.org/</a>. Once you have the public key, you can encrypt the file without the private key. It will not be required until you decrypt the file to read it.</p>

<p>In order to keep the private key secure, you can store it on Yubikey, following the official guide available <a href="https://support.yubico.com/hc/en-us/articles/360013790259-Using-Your-YubiKey-with-OpenPGP" rel="nofollow">here</a>. Because the private key is stored on the hardware key, it cannot be hacked online.</p>

<h2 id="create-a-backup-on-storj-dcs-with-rclone">Create a backup on Storj DCS with rclone</h2>

<p>Syncthing provides you a function to store file history, but data loss can happen for whatever reason. You may set it up in a wrong way or there may be a bug on Syncthing. If your devices were broken from a natural disaster like flood, your data would be lost forever, so you should always prepare backup in case.</p>

<p>Following the <a href="https://docs.oracle.com/cd/B10501_01/server.920/a96519/strategy.htm" rel="nofollow">golden rule of data backup</a>, it should be outside of your Syncthing ecosystem. This means that it should be available online, meaning it comes to full circle: storing data online, outside of the local area network.</p>

<p>The backup itself should also be encrypted and decentralized. For if the backup data was available to someone, what is the point of setting up decentralized file synchronization among your devices in the first place?</p>

<p>For backup solution I would pick up <a href="https://www.storj.io/" rel="nofollow">Storj DCS</a> this case as well. <a href="/suguru/tag:Storj" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Storj</span></a> DCS, renamed from <a href="/suguru/tag:Tardigrade" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Tardigrade</span></a> recently, provides an encrypted and decentralized cloud storage. I have covered the service on this site multiple times such as <a href="https://blog.progressiv.dev/suguru/encrypted-and-decentralized-cloud-storage-tardigrade" rel="nofollow">here</a>.</p>

<p>To synchronize local data with cloud storage services, <a href="https://rclone.org/" rel="nofollow">rclone</a> is one of the popular choices. After installing, you can configure it <a href="https://rclone.org/tardigrade/" rel="nofollow">for Storj DCS</a>.</p>

<p>For daily use you can run a .sh script like this:</p>

<pre><code>#!/bin/sh
rclone sync -i --progress /home/local/directory/ remote:bucket/path/to/dir/ --exclude=&#34;.stversions/**&#34;
</code></pre>

<p>Running that script synchronizes the source to the destination, changing the destination only, deleting any excess files. Folders inside <code>.stversions</code> store versioning files, which Syncthing on each computer saves for itself, so they should only stay local and be excluded from synchronization between Storj DCS.</p>

<p>Since the command can cause data loss, test with <code>--dry-run</code> flag at first to see exactly what would be copied and deleted.</p>

<p><strong>Warning: you are not supposed to upload a huge number of files as the fee is calculated not only how large files are, but also how much files are uploaded! You should read ToS carefully before using the service.</strong></p>

<h2 id="restore-backup">Restore backup</h2>

<p>If data loss or conflicts happen locally, you may recover the latest state from backup with this command:</p>

<pre><code>#!/bin/sh
rclone sync -i --progress remote:bucket/path/to/dir/ /home/local/directory/ --exclude=&#34;.stversions/**&#34;
</code></pre>

<p>It downloads data from Storj DCS, changing the local directories only, deleting any excess files. Test with <code>--dry-run</code> in this case as well.</p>

<p>Copyright © 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See <a href="https://blog.progressiv.dev/yq31akw3jj" rel="nofollow">https://blog.progressiv.dev/yq31akw3jj</a> for copying conditions.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/syncthing-decentralized-file-sync-software</guid>
      <pubDate>Sat, 19 Jun 2021 17:16:57 +0000</pubDate>
    </item>
    <item>
      <title>ストールマン『フリーソフトウェアと自由な社会――Richard M. Stallman エッセイ集』第1版の要約</title>
      <link>https://blog.progressiv.dev/suguru/stallman-freesoftware-freesociety-jp</link>
      <description>&lt;![CDATA[リチャード・ストールマン『フリーソフトウェアと自由な社会――Richard M. Stallman エッセイ集』アスキー、2003年の要約です。&#xA;&#xA;Richard Stallman, &#34;Free Software, Free Society: Selected Essays of Richard M.Stallman&#34;, 2002, GNU Press (http://www.gnupress.org/).&#xA;&#xA;!--more--&#xA;&#xA;ソフトウェアについてのコメント&#xA;&#xA;プログラム（ソフトウェア）の本質構造。プログラムのソースコードは、フリーソフトウェアの一つの条件である。br /&#xA;&#xA;  「通常、プログラムはまず、ソースコードという形を取る。この比較的高い水準のコマンドは、CとかJavaといったプログラミング言語で書かれる。ソースコードが書かれると、コンパイラと呼ばれるツールを使って、これをアセンブリ言語というそれよりも低い水準の言語に翻訳する。次に、アセンブラと呼ばれる別のツールを使って、アセンブリ言語のコードをマシン語という最終段階（最低水準）のコンピュータがネーティブに（母語として）理解する言語に変換する。」（11）&#xA;    「上記のマシン語の形式は、バイナリ（2進）というもっとも基本的な表現である。コンピュータのすべてのデータは、0または1の値の連続から構成されているが、人間がそのようなデータを理解するのは非常に難しい。バイナリに簡単な変更を加えるためには、特定のコンピュータがマシン語をどのように解釈するか｜についての詳細な知識をもっていなければならない。上記の例のような小さなプログラムであれば、そのようなことも可能かもしれないが、およそ面白い意味を持つようなプログラムでは、わずかな変更を加えるだけでもとてつもない労力が必要になる。」（12-13）&#xA;&#xA;序文&#xA;&#xA;　フリーソフトウェア運動の目的は、自由社会の法律が開示され変更可能であるのと同様に、出来る限り多くのコードに透明性を保証し、変更可能にすることにある。フリーソフトウェアは、コードが支配する世界を、それ以前の社会の伝統と同じくらい自由にすることを保証するはずである。&#xA;&#xA;※　ストールマンのもう一つの強調点は、市民社会における相互協力の感度（協力精神）を育むということにある（本書の第4章、第18章を参照）。単に変更可能であるということだけでなく、共に力を合わせて助け合い、協力し合うことに改めて意味を認めることができるようになるということが、市民社会においてフリーソフトウェア運動の導く一つの重要な可能性であることをストールマンは論じている。&#xA;&#xA;第1部　GNUプロジェクトとフリーソフトウェア&#xA;&#xA;第1章　GNUプロジェクト&#xA;&#xA;　プロプライエタリ・ソフトウェアは人々を分断し、支援できない状態に置くものであり、反社会的である。しかしプロプライエタリ・ソフトウェア企業は、プロプライエタリ・ソフトウェア以外の可能性がないと思うように導いてきた。br /&#xA;　彼らがこの点に関して言いたいことは、実際には言われていない次の仮定の内にある。br /&#xA;　第一の仮定は、ソフトウェア企業は自然権をもっているというもの、第二の仮定は、ユーザーはどのような社会を望むかについては考えてはいけないというものであり、第三の仮定は、企業がユーザーを支配する権利をもたなければ役立つソフトウェアは作られないというものである。だがユーザーを第一に考える限り、これらの仮定は成立しない。他人を助けることは社会の基礎であるのだから、プログラムを書き換えたり、共有したりする自由をユーザーはもたなければならないのである。この点に関して、自分は、まずは自由なOSを作ることが先決であると考えた。br /&#xA;　フリーソフトウェアという語は誤解されることがある。したがってフリーソフトウェアにおいて本質的な自由とは何かについて示しておこう。フリーソフトウェアとは、以下の四つの自由を満たすソフトウェアのことである。br /&#xA;　０．使用の自由、１．自分のために変更する自由、２．再頒布の自由、３．コミュニティ全体のために改良点を公開する自由。br /&#xA;　注意すべきは、フリーソフトウェアとは価格とは関係がないということである。つまり、フリーソフトウェアは、ソフトウェアを有償で配布したり改良したりすることを除外するものではない。フリーソフトウェアは、ビジネスそのものに反対する訳ではない。フリーソフトウェアの配布、メンテナンス、カスタマイズ、改良によってお金を稼ぐことは、むしろ肯定される。br /&#xA;　パブリックドメインソフトウェアや、変更を加えた私有バージョンを認めるようなソフトウェア（例えばX Window System）は、フリーソフトウェアではない。一方、GNUソフトウェアは、コピーレフトを採用している。コピーレフトという概念の中心の意味は、プログラムを変更し、それを流通させることを認めると同時に、独自の禁止条項の追加を禁止するという点にある。ここでは、書き換えられたプログラムもまたフリーでなければならない。br /&#xA;　GNU/Linuxシステムを含むフリーソフトウェアのユーザー数は成長している。しかしフリーソフトウェアを支える思想の認知度は、そのペースと並行して高まっている訳ではない。人々は、いかにユーザー数を増やすことが出来るかということの方に遥かに熱心になっている。&#xA;&#xA;第2章　GNU宣言&#xA;&#xA;　GNUとは何か？「GNUは、Gnu&#39;s Not Unixの略語で、使えるすべての人々にフリーで提供できるように私が開発しているUnix互換ソフトウェアシステムの名前である。」（55）。GNUに関しては、変更版のプロプライエタリ化は禁止される。br /&#xA;　GNUが完成すると、システムのソースコードが公開され、システムのプログラミングにかかる無駄な労力を減らすことができるようになるほか、自由に変更を加えたり加えてもらったりすることができる。また、システムのソースコードを研究、改良するように勧めることで、学校は、はるかに優れた教育環境を提供できるようになるだろう。br /&#xA;　ここで、いくつかの異論、問いに答えておくことにしよう。br /&#xA;「サポートを提供するためにプログラムは有償でなければならない」という異論に対して。アフターケアは製作元には期待できないのだから、サポートサービスを提供する企業は、そこから収益を挙げられるはずだ。br /&#xA;「報酬を要求してはいけないのか？」という問いに対して。ソフトウェアの制限によって報酬を得ることは、人類全体がプログラムから得る利益を少なくする。全員を貧しくするような仕方で利益を得ることは、ソフトウェアの制作から報酬を得ることを正当化するものではない。br /&#xA;「プログラマが餓えてしまうのではないか？」という問いに対して。プログラミングによって得られる報酬が低くなるだけで、報酬そのものが減るわけではない。br /&#xA;「人間には、自らの創造がどのように使われるかをコントロールする権利があるのではないか？」という問いに対して。（アメリカ合衆国では）知的財産権は、社会全体が利益を得ると認められたライセンスにすぎない。著作権は自然権ではなく、社会において構成され承認された権利にほかならない。br /&#xA;「金が儲かるという動機がなければ、誰もプログラミングしなくなるのではないか？」という問いに対して。これは問いが間違っている。正しい問い方はむしろ「儲けが少なくてもプログラミングをする人間はいるかどうか」とすべきであり、私の経験からすれば、間違いなくいる。br /&#xA;「プログラマは、何らかの方法で生計を立てなくてはならない」という異論に対して。プログラムの使用権を販売することでしか生計を立てられないわけではない。例えば、ハードウェアにOSを移植したり、アフターケアを行ったり、グループが集めた会費をもとにそのグループが必要とするプログラムを作ったりすることなどによっても生計を立てられる。br /&#xA;　長期的には、フリーソフトウェアは、ソフトウェア開発の分野で無駄な労力を省くことによって、生産性を向上させ、楽しい活動に人々が自由に従事することを可能にする世界にむけての一歩になるだろう。&#xA;&#xA;第3章　フリーソフトウェアの定義&#xA;&#xA;　フリーソフトウェアの条件は何か？フリーソフトウェアとは、以下の四つの自由を満たすソフトウェアのことである。０．使用の自由、１．自分のために変更する自由、２．再頒布の自由、３．コミュニティ全体のために改良点を公開する自由。これは「フリービール」という際の自由ではなく、これは「フリースピーチ」という際の自由と同じものである。br /&#xA;　自由1と3は、プログラムのソースコードへのアクセス可能性を根本条件とする。従って、ソースコードの公開は、フリーソフトウェアの必要条件である。フリーソフトウェアは営利・非営利とは関係がない。フリーソフトウェアは営利目的でも利用できるのでなければならない。&#xA;&#xA;第4章　ソフトウェアが所有権者を持ってはならない理由&#xA;&#xA;　著作権制度は、プログラムに所有権者を与え、彼をプログラムをコピーしたり変更したりすることの出来る唯一の人物にしようとする。br /&#xA;　所有権者たちは、法律は疑問の余地のない自然の摂理を示していると思わせようとしている。しかし法律が正邪を決めるわけではない。br /&#xA;　プログラムの作者は、自分とプログラムとの間に、他の誰かよりも重要な特権があると主張しがちである。それは誤っているが、私たちは自然権の主張に対して同情を感じる傾向にある。だが、著作権は公共の福祉に役立たない限り正当化できないものである。br /&#xA;　所有権はソフトウェアの生産を促すという議論には欠陥がある。それは、ソフトウェアが所有権をもつことを社会が望んでいるかどうかということは、ここでは最初から問われていないということである。br /&#xA;　市民は何を求めているのか？　自由に扱える情報である。例えば、単に実行するだけでなく、読んだり修正したりすることのできるプログラムである。プログラムが所有権者をもつならば、ユーザーは自分自身の生活の一部をコントロールする自由を失ってしまう。何より、社会は市民たちの自発的な協力を奨励する必要がある。その協力を海賊行為と呼ぶなら、所有権者たちは社会における市民の協力精神を抑圧しているのである。フリーソフトウェアは自由の問題であるという理由は、この点にあるのだ。&#xA;&#xA;第5章　名前にどういう意味があるのか&#xA;&#xA;第6章　「オープンソース」ではなく「フリーソフトウェア」と呼ぶべき理由&#xA;&#xA;　オープンソースとフリーソフトウェアは、思想的に違うものである。オープンソース運動にとって、ソフトウェアがオープンソースであるべきかどうかは、実践上の問題でしかない。オープンソース運動とフリーソフトウェア運動は敵対してはいない。br /&#xA;　オープンソースソフトウェアの定義は、フリーソフトウェアのそれと比較して、緩いものになっている。br /&#xA;　オープンソースという言葉は、企業にソフトウェアを効率的に販売するために考え出されたものに過ぎない。br /&#xA;　実際的なメリットでフリーソフトウェアに誘われたユーザーは、結局のところ、実際的なメリットがあればプロプライエタリ・ソフトウェアへと戻っていく。自由の価値を学んでいて初めて、ユーザーはプロプライエタリ・ソフトウェアを拒否する理由を手に入れるのだ。br /&#xA;　だが、フリーソフトウェアに関して、自由はそれほど語られていない。その理由は、企業に受け入れられやすくするためだ。私たちは、ソフトウェアの自由についてもっと論じる必要がある。&#xA;&#xA;第7章　大学勤務のプログラマがフリーソフトウェアをリリースする方法&#xA;&#xA;第8章　フリーソフトウェアの販売&#xA;&#xA;第9章　フリーソフトウェアはフリードキュメントを必要とする&#xA;&#xA;第10章　フリーソフトウェアの歌&#xA;&#xA;第2部　コピーライト、コピーレフト、特許&#xA;&#xA;第11章　読む権利&#xA;&#xA;第12章　著作権の誤解――一連の誤り&#xA;&#xA;　電子書籍について。電子書籍は、ユーザーが伝統的に有してきた自由の多くを取り除いてきた。電子書籍が失敗してきたのは、幸運な偶然によるものに過ぎない。&#xA;&#xA;第13章　科学は著作権を離れなければならない&#xA;&#xA;　科学文献の使用規則は、科学的知識の普及を促進するものでなければならない。ウェブで論文や知識を最大限に普及させられるための規則はどのようなものがよいか？「論文は、非私有フォーマットで、誰からもアクセス出来るような形で頒布されるようにすべきである。そして、すべての人が論文の「ミラーリング」、すなわち適切な帰属情報を付加した上で、本文に一切の変更を加えずに再出版する権利を持たなければならない。」（139）&#xA;&#xA;第14章　コピーレフトとは何か&#xA;&#xA;　コピーレフトは、フリーソフトウェアの変更版もまたフリーソフトウェアにする方法である。その具体的な適用がGNU一般公開使用許諾（GNU GPL）、GNU準一般公開使用許諾書（GNU LGPL）である。br /&#xA;　GNU自由公開文書使用許諾書（FDL）は、マニュアルやドキュメント用に作られたコピーレフトの一形態である。&#xA;&#xA;第15章　コピーレフト：プラグマティックな理想主義&#xA;&#xA;　フリーソフトウェアは、自由と協力を達成するという理想主義的な目標を動機としてきた。br /&#xA;　その目標を達成するためには、理想主義では足りず、プラグマティックでなければならない。GNU GPLはその点において貢献してきた。br /&#xA;「フリーソフトウェア運動は、そこに入らない私有ソフトウェア開発者を排除しているのではないか」と言われるかもしれない。しかしそれは誰も排除していない。むしろ彼らがこちらのコミュニティに加わらないことを選択しているのである。&#xA;&#xA;第16章　ソフトウェア特許の危険&#xA;&#xA;第3部　自由、社会、ソフトウェア&#xA;&#xA;第17章　自分のコンピュータを信用できるか&#xA;&#xA;「信託コンピューティング」計画では、コンピュータが企業の指示を受けるように改造することが目指されている。この計画では、コンピューターから汎用性が奪われてしまう。コンピューターは、ユーザーが使っていいプログラムをコントロールし、ユーザーがそれに反してコンピューターを使うことは出来なくなる。br /&#xA;　もしMicorosft Wordがそうした仕組みを取り入れれば、Word以外のソフトウェアではワードファイルを読み出せないようにすることができる（もしそれが出来るようなプログラムが開発されても、デジタルミレニアム著作権法DMCAによって禁止されてしまうだろう）。br /&#xA;「こうしたことを受け入れるはずがない」と思うかもしれない。だが重要なのは、自分が結んだと思った契約が変えられること。そうして一部のソフトウェアは、契約を変更し、初めの契約とは異なることをするアップグレードを自動的にダウンロードするのである。br /&#xA;　GNU/Linuxなどのフリーオペレーティングシステムを使い、プロプライエタリ・ソフトウェアをインストールしないようにすれば、コンピューターのすることに関与することができる。悪意のある機能を取り除いたり、または、プログラマーのコミュニティーによって取り除いてもらったりすることもできる。&#xA;&#xA;第18章　ソフトウェアがフリーであるべき理由&#xA;&#xA;　一般の人々の自由と繁栄のために、ソフトウェアはフリーソフトウェアでなければならない。br /&#xA;　ソフトウェアを有料にすれば、プログラムの作成コスト、頒布コストが上がり、利用時の満足や効率は下がり、社会にとっては大きな出費となる。従ってプログラムの開発は、別の仕方で奨励されるべきである。br /&#xA;　プログラムの頒布と変更に対して制限を加えることは害になるだけである。具体的には、以下の3つの害として現れる。ここには、市民的な態度に関する心理的・社会的な害悪も伴う。br /&#xA;　最初の段階：プログラムに料金を課せば、ユーザーと所有者の間でゼロサム転移が起こり（金が移動するだけ）、プログラムを使わない人間が起こるたびに害を受けることになる。0と負数の合計は必ず負数になるので、社会に対する寄与は全体として下がる。また、ソフトウェアライセンスに署名すれば、隣人を助けることを抑止され、そうすることの重要性を軽視するようになる。公共心はこうして失われる。br /&#xA;　第2の段階：プログラムを修正することが出来ない。プログラムの所有権者だけがプログラムを変更でき、それ以外の他人はソースコードから何かを学ぶことが出来ない。普通のユーザーはここで諦めるしかない。そして、諦めは心理的・社会的な害悪の原因となる。br /&#xA;　第3の段階：既存のプログラムを次の仕事の基礎にすることが出来ない。プログラムを書くときには、一から始めなければならなくなった。これに伴う心理的・社会的な害悪は、科学における協力精神の減退である。br /&#xA;　以上より、社会はプログラムの所有権者をもつべきではない。br /&#xA;　高給でなければ働かないという考えは妥当でない。プログラマーがただ生活できるようになるための資金であれば、簡単に用意できる。br /&#xA;　プログラマーの数が減ることは、社会にとって悪いことではない。フリーソフトウェアは、生産性を向上させるので、プログラマーの数を大幅に減らしつつ、需要を満足させるはずである。br /&#xA;　ソフトウェアの私有化は、個人の利益のために、社会の福祉を軽視しようとする一般的な意思の表れである。他人が自分を助けてくれない経験をするほど、他人を助けることがバカバカしく感じるようになる。こうして反社会的精神が育ってくるのである。&#xA;&#xA;Copyright (C) 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See https://blog.progressiv.dev/yq31akw3jj for copying conditions.]]&gt;</description>
      <content:encoded><![CDATA[<p>リチャード・ストールマン『フリーソフトウェアと自由な社会――Richard M. Stallman エッセイ集』アスキー、2003年の要約です。</p>

<p>Richard Stallman, “Free Software, Free Society: Selected Essays of Richard M.Stallman”, 2002, GNU Press (<a href="http://www.gnupress.org/" rel="nofollow">http://www.gnupress.org/</a>).</p>



<h2 id="ソフトウェアについてのコメント">ソフトウェアについてのコメント</h2>

<p>プログラム（ソフトウェア）の本質構造。プログラムのソースコードは、フリーソフトウェアの一つの条件である。<br/></p>

<blockquote><p> 「通常、プログラムはまず、ソースコードという形を取る。この比較的高い水準のコマンドは、CとかJavaといったプログラミング言語で書かれる。ソースコードが書かれると、コンパイラと呼ばれるツールを使って、これをアセンブリ言語というそれよりも低い水準の言語に翻訳する。次に、アセンブラと呼ばれる別のツールを使って、アセンブリ言語のコードをマシン語という最終段階（最低水準）のコンピュータがネーティブに（母語として）理解する言語に変換する。」（11）</p>

<p> 「上記のマシン語の形式は、バイナリ（2進）というもっとも基本的な表現である。コンピュータのすべてのデータは、0または1の値の連続から構成されているが、人間がそのようなデータを理解するのは非常に難しい。バイナリに簡単な変更を加えるためには、特定のコンピュータがマシン語をどのように解釈するか｜についての詳細な知識をもっていなければならない。上記の例のような小さなプログラムであれば、そのようなことも可能かもしれないが、およそ面白い意味を持つようなプログラムでは、わずかな変更を加えるだけでもとてつもない労力が必要になる。」（12-13）</p></blockquote>

<h2 id="序文">序文</h2>

<p>　フリーソフトウェア運動の目的は、自由社会の法律が開示され変更可能であるのと同様に、出来る限り多くのコードに透明性を保証し、変更可能にすることにある。フリーソフトウェアは、コードが支配する世界を、それ以前の社会の伝統と同じくらい自由にすることを保証するはずである。</p>

<p>※　ストールマンのもう一つの強調点は、市民社会における相互協力の感度（協力精神）を育むということにある（本書の第4章、第18章を参照）。単に変更可能であるということだけでなく、共に力を合わせて助け合い、協力し合うことに改めて意味を認めることができるようになるということが、市民社会においてフリーソフトウェア運動の導く一つの重要な可能性であることをストールマンは論じている。</p>

<h2 id="第1部-gnuプロジェクトとフリーソフトウェア">第1部　GNUプロジェクトとフリーソフトウェア</h2>

<h3 id="第1章-gnuプロジェクト">第1章　GNUプロジェクト</h3>

<p>　プロプライエタリ・ソフトウェアは人々を分断し、支援できない状態に置くものであり、反社会的である。しかしプロプライエタリ・ソフトウェア企業は、プロプライエタリ・ソフトウェア以外の可能性がないと思うように導いてきた。<br/>
　彼らがこの点に関して言いたいことは、実際には言われていない次の仮定の内にある。<br/>
　第一の仮定は、ソフトウェア企業は自然権をもっているというもの、第二の仮定は、ユーザーはどのような社会を望むかについては考えてはいけないというものであり、第三の仮定は、企業がユーザーを支配する権利をもたなければ役立つソフトウェアは作られないというものである。だがユーザーを第一に考える限り、これらの仮定は成立しない。他人を助けることは社会の基礎であるのだから、プログラムを書き換えたり、共有したりする自由をユーザーはもたなければならないのである。この点に関して、自分は、まずは自由なOSを作ることが先決であると考えた。<br/>
　フリーソフトウェアという語は誤解されることがある。したがってフリーソフトウェアにおいて本質的な自由とは何かについて示しておこう。フリーソフトウェアとは、以下の四つの自由を満たすソフトウェアのことである。<br/>
　<strong>０．使用の自由、１．自分のために変更する自由、２．再頒布の自由、３．コミュニティ全体のために改良点を公開する自由。</strong><br/>
　注意すべきは、フリーソフトウェアとは価格とは関係がないということである。つまり、フリーソフトウェアは、ソフトウェアを有償で配布したり改良したりすることを除外するものではない。フリーソフトウェアは、ビジネスそのものに反対する訳ではない。フリーソフトウェアの配布、メンテナンス、カスタマイズ、改良によってお金を稼ぐことは、むしろ肯定される。<br/>
　パブリックドメインソフトウェアや、変更を加えた私有バージョンを認めるようなソフトウェア（例えばX Window System）は、フリーソフトウェアではない。一方、GNUソフトウェアは、コピーレフトを採用している。コピーレフトという概念の中心の意味は、プログラムを変更し、それを流通させることを認めると同時に、独自の禁止条項の追加を禁止するという点にある。ここでは、書き換えられたプログラムもまたフリーでなければならない。<br/>
　GNU/Linuxシステムを含むフリーソフトウェアのユーザー数は成長している。しかしフリーソフトウェアを支える思想の認知度は、そのペースと並行して高まっている訳ではない。人々は、いかにユーザー数を増やすことが出来るかということの方に遥かに熱心になっている。</p>

<h3 id="第2章-gnu宣言">第2章　GNU宣言</h3>

<p>　GNUとは何か？「GNUは、Gnu&#39;s Not Unixの略語で、使えるすべての人々にフリーで提供できるように私が開発しているUnix互換ソフトウェアシステムの名前である。」（55）。GNUに関しては、変更版のプロプライエタリ化は禁止される。<br/>
　GNUが完成すると、システムのソースコードが公開され、システムのプログラミングにかかる無駄な労力を減らすことができるようになるほか、自由に変更を加えたり加えてもらったりすることができる。また、システムのソースコードを研究、改良するように勧めることで、学校は、はるかに優れた教育環境を提供できるようになるだろう。<br/>
　ここで、いくつかの異論、問いに答えておくことにしよう。<br/>
「サポートを提供するためにプログラムは有償でなければならない」という異論に対して。アフターケアは製作元には期待できないのだから、サポートサービスを提供する企業は、そこから収益を挙げられるはずだ。<br/>
「報酬を要求してはいけないのか？」という問いに対して。ソフトウェアの制限によって報酬を得ることは、人類全体がプログラムから得る利益を少なくする。全員を貧しくするような仕方で利益を得ることは、ソフトウェアの制作から報酬を得ることを正当化するものではない。<br/>
「プログラマが餓えてしまうのではないか？」という問いに対して。プログラミングによって得られる報酬が低くなるだけで、報酬そのものが減るわけではない。<br/>
「人間には、自らの創造がどのように使われるかをコントロールする権利があるのではないか？」という問いに対して。（アメリカ合衆国では）知的財産権は、社会全体が利益を得ると認められたライセンスにすぎない。著作権は自然権ではなく、社会において構成され承認された権利にほかならない。<br/>
「金が儲かるという動機がなければ、誰もプログラミングしなくなるのではないか？」という問いに対して。これは問いが間違っている。正しい問い方はむしろ「儲けが少なくてもプログラミングをする人間はいるかどうか」とすべきであり、私の経験からすれば、間違いなくいる。<br/>
「プログラマは、何らかの方法で生計を立てなくてはならない」という異論に対して。プログラムの使用権を販売することでしか生計を立てられないわけではない。例えば、ハードウェアにOSを移植したり、アフターケアを行ったり、グループが集めた会費をもとにそのグループが必要とするプログラムを作ったりすることなどによっても生計を立てられる。<br/>
　長期的には、フリーソフトウェアは、ソフトウェア開発の分野で無駄な労力を省くことによって、生産性を向上させ、楽しい活動に人々が自由に従事することを可能にする世界にむけての一歩になるだろう。</p>

<h3 id="第3章-フリーソフトウェアの定義">第3章　フリーソフトウェアの定義</h3>

<p>　フリーソフトウェアの条件は何か？フリーソフトウェアとは、以下の四つの自由を満たすソフトウェアのことである。０．使用の自由、１．自分のために変更する自由、２．再頒布の自由、３．コミュニティ全体のために改良点を公開する自由。これは「フリービール」という際の自由ではなく、これは「フリースピーチ」という際の自由と同じものである。<br/>
　自由1と3は、プログラムのソースコードへのアクセス可能性を根本条件とする。従って、ソースコードの公開は、フリーソフトウェアの必要条件である。フリーソフトウェアは営利・非営利とは関係がない。フリーソフトウェアは営利目的でも利用できるのでなければならない。</p>

<h3 id="第4章-ソフトウェアが所有権者を持ってはならない理由">第4章　ソフトウェアが所有権者を持ってはならない理由</h3>

<p>　著作権制度は、プログラムに所有権者を与え、彼をプログラムをコピーしたり変更したりすることの出来る唯一の人物にしようとする。<br/>
　所有権者たちは、法律は疑問の余地のない自然の摂理を示していると思わせようとしている。しかし法律が正邪を決めるわけではない。<br/>
　プログラムの作者は、自分とプログラムとの間に、他の誰かよりも重要な特権があると主張しがちである。それは誤っているが、私たちは自然権の主張に対して同情を感じる傾向にある。だが、著作権は公共の福祉に役立たない限り正当化できないものである。<br/>
　所有権はソフトウェアの生産を促すという議論には欠陥がある。それは、ソフトウェアが所有権をもつことを社会が望んでいるかどうかということは、ここでは最初から問われていないということである。<br/>
　市民は何を求めているのか？　自由に扱える情報である。例えば、単に実行するだけでなく、読んだり修正したりすることのできるプログラムである。プログラムが所有権者をもつならば、ユーザーは自分自身の生活の一部をコントロールする自由を失ってしまう。何より、社会は市民たちの自発的な協力を奨励する必要がある。その協力を海賊行為と呼ぶなら、所有権者たちは社会における市民の協力精神を抑圧しているのである。フリーソフトウェアは自由の問題であるという理由は、この点にあるのだ。</p>

<h3 id="第5章-名前にどういう意味があるのか">第5章　名前にどういう意味があるのか</h3>

<h3 id="第6章-オープンソース-ではなく-フリーソフトウェア-と呼ぶべき理由">第6章　「オープンソース」ではなく「フリーソフトウェア」と呼ぶべき理由</h3>

<p>　オープンソースとフリーソフトウェアは、思想的に違うものである。オープンソース運動にとって、ソフトウェアがオープンソースであるべきかどうかは、実践上の問題でしかない。オープンソース運動とフリーソフトウェア運動は敵対してはいない。<br/>
　オープンソースソフトウェアの定義は、フリーソフトウェアのそれと比較して、緩いものになっている。<br/>
　オープンソースという言葉は、企業にソフトウェアを効率的に販売するために考え出されたものに過ぎない。<br/>
　実際的なメリットでフリーソフトウェアに誘われたユーザーは、結局のところ、実際的なメリットがあればプロプライエタリ・ソフトウェアへと戻っていく。自由の価値を学んでいて初めて、ユーザーはプロプライエタリ・ソフトウェアを拒否する理由を手に入れるのだ。<br/>
　だが、フリーソフトウェアに関して、自由はそれほど語られていない。その理由は、企業に受け入れられやすくするためだ。私たちは、ソフトウェアの自由についてもっと論じる必要がある。</p>

<h3 id="第7章-大学勤務のプログラマがフリーソフトウェアをリリースする方法">第7章　大学勤務のプログラマがフリーソフトウェアをリリースする方法</h3>

<h3 id="第8章-フリーソフトウェアの販売">第8章　フリーソフトウェアの販売</h3>

<h3 id="第9章-フリーソフトウェアはフリードキュメントを必要とする">第9章　フリーソフトウェアはフリードキュメントを必要とする</h3>

<h3 id="第10章-フリーソフトウェアの歌">第10章　フリーソフトウェアの歌</h3>

<h2 id="第2部-コピーライト-コピーレフト-特許">第2部　コピーライト、コピーレフト、特許</h2>

<h3 id="第11章-読む権利">第11章　読む権利</h3>

<h3 id="第12章-著作権の誤解-一連の誤り">第12章　著作権の誤解――一連の誤り</h3>

<p>　電子書籍について。電子書籍は、ユーザーが伝統的に有してきた自由の多くを取り除いてきた。電子書籍が失敗してきたのは、幸運な偶然によるものに過ぎない。</p>

<h3 id="第13章-科学は著作権を離れなければならない">第13章　科学は著作権を離れなければならない</h3>

<p>　科学文献の使用規則は、科学的知識の普及を促進するものでなければならない。ウェブで論文や知識を最大限に普及させられるための規則はどのようなものがよいか？「論文は、非私有フォーマットで、誰からもアクセス出来るような形で頒布されるようにすべきである。そして、すべての人が論文の「ミラーリング」、すなわち適切な帰属情報を付加した上で、本文に一切の変更を加えずに再出版する権利を持たなければならない。」（139）</p>

<h3 id="第14章-コピーレフトとは何か">第14章　コピーレフトとは何か</h3>

<p>　コピーレフトは、フリーソフトウェアの変更版もまたフリーソフトウェアにする方法である。その具体的な適用がGNU一般公開使用許諾（GNU GPL）、GNU準一般公開使用許諾書（GNU LGPL）である。<br/>
　GNU自由公開文書使用許諾書（FDL）は、マニュアルやドキュメント用に作られたコピーレフトの一形態である。</p>

<h3 id="第15章-コピーレフト-プラグマティックな理想主義">第15章　コピーレフト：プラグマティックな理想主義</h3>

<p>　フリーソフトウェアは、自由と協力を達成するという理想主義的な目標を動機としてきた。<br/>
　その目標を達成するためには、理想主義では足りず、プラグマティックでなければならない。GNU GPLはその点において貢献してきた。<br/>
「フリーソフトウェア運動は、そこに入らない私有ソフトウェア開発者を排除しているのではないか」と言われるかもしれない。しかしそれは誰も排除していない。むしろ彼らがこちらのコミュニティに加わらないことを選択しているのである。</p>

<h3 id="第16章-ソフトウェア特許の危険">第16章　ソフトウェア特許の危険</h3>

<h2 id="第3部-自由-社会-ソフトウェア">第3部　自由、社会、ソフトウェア</h2>

<h3 id="第17章-自分のコンピュータを信用できるか">第17章　自分のコンピュータを信用できるか</h3>

<p>「信託コンピューティング」計画では、コンピュータが企業の指示を受けるように改造することが目指されている。この計画では、コンピューターから汎用性が奪われてしまう。コンピューターは、ユーザーが使っていいプログラムをコントロールし、ユーザーがそれに反してコンピューターを使うことは出来なくなる。<br/>
　もしMicorosft Wordがそうした仕組みを取り入れれば、Word以外のソフトウェアではワードファイルを読み出せないようにすることができる（もしそれが出来るようなプログラムが開発されても、デジタルミレニアム著作権法DMCAによって禁止されてしまうだろう）。<br/>
「こうしたことを受け入れるはずがない」と思うかもしれない。だが重要なのは、自分が結んだと思った契約が変えられること。そうして一部のソフトウェアは、契約を変更し、初めの契約とは異なることをするアップグレードを自動的にダウンロードするのである。<br/>
　GNU/Linuxなどのフリーオペレーティングシステムを使い、プロプライエタリ・ソフトウェアをインストールしないようにすれば、コンピューターのすることに関与することができる。悪意のある機能を取り除いたり、または、プログラマーのコミュニティーによって取り除いてもらったりすることもできる。</p>

<h3 id="第18章-ソフトウェアがフリーであるべき理由">第18章　ソフトウェアがフリーであるべき理由</h3>

<p>　一般の人々の自由と繁栄のために、ソフトウェアはフリーソフトウェアでなければならない。<br/>
　ソフトウェアを有料にすれば、プログラムの作成コスト、頒布コストが上がり、利用時の満足や効率は下がり、社会にとっては大きな出費となる。従ってプログラムの開発は、別の仕方で奨励されるべきである。<br/>
　プログラムの頒布と変更に対して制限を加えることは害になるだけである。具体的には、以下の3つの害として現れる。ここには、市民的な態度に関する心理的・社会的な害悪も伴う。<br/>
　最初の段階：プログラムに料金を課せば、ユーザーと所有者の間でゼロサム転移が起こり（金が移動するだけ）、プログラムを使わない人間が起こるたびに害を受けることになる。0と負数の合計は必ず負数になるので、社会に対する寄与は全体として下がる。また、ソフトウェアライセンスに署名すれば、隣人を助けることを抑止され、そうすることの重要性を軽視するようになる。公共心はこうして失われる。<br/>
　第2の段階：プログラムを修正することが出来ない。プログラムの所有権者だけがプログラムを変更でき、それ以外の他人はソースコードから何かを学ぶことが出来ない。普通のユーザーはここで諦めるしかない。そして、諦めは心理的・社会的な害悪の原因となる。<br/>
　第3の段階：既存のプログラムを次の仕事の基礎にすることが出来ない。プログラムを書くときには、一から始めなければならなくなった。これに伴う心理的・社会的な害悪は、科学における協力精神の減退である。<br/>
　以上より、社会はプログラムの所有権者をもつべきではない。<br/>
　高給でなければ働かないという考えは妥当でない。プログラマーがただ生活できるようになるための資金であれば、簡単に用意できる。<br/>
　プログラマーの数が減ることは、社会にとって悪いことではない。フリーソフトウェアは、生産性を向上させるので、プログラマーの数を大幅に減らしつつ、需要を満足させるはずである。<br/>
　ソフトウェアの私有化は、個人の利益のために、社会の福祉を軽視しようとする一般的な意思の表れである。他人が自分を助けてくれない経験をするほど、他人を助けることがバカバカしく感じるようになる。こうして反社会的精神が育ってくるのである。</p>

<p>Copyright © 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See <a href="https://blog.progressiv.dev/yq31akw3jj" rel="nofollow">https://blog.progressiv.dev/yq31akw3jj</a> for copying conditions.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/stallman-freesoftware-freesociety-jp</guid>
      <pubDate>Sun, 07 Mar 2021 10:51:17 +0000</pubDate>
    </item>
    <item>
      <title>Setting up a desktop environment and applications on FreeBSD 12</title>
      <link>https://blog.progressiv.dev/suguru/setting-up-a-desktop-environment-and-applications-on-freebsd-12</link>
      <description>&lt;![CDATA[In this article I would like to share resources I referred in order to set up a desktop environment and applications on #FreeBSD 12.&#xA;&#xA;!--more--&#xA;&#xA;Replace a proprietary operating system with a free and open one&#xA;&#xA;Since the last year I have started using FreeBSD, a UNIX-like operating system, on my desktop and laptop. The motive behind it is to remove proprietary operating systems from my life and replace them with free one on which most of proprietary applications even do not run.&#xA;&#xA;To protect yourself from a proprietary software ecosystem in which you often are forced to join by your colleagues, the most effective method would be to use a free and open source operating system by yourself. You should not feel guilty about using a minor operating system, because in the free society, nobody can legitimately direct you to use a certain operating system. So if you ask someone to use a certain operating system, you suppress the person&#39;s right and freedom by not respecting the diversity of the digital environments. As you recognize others&#39; freedom, let them recognize your freedom. That&#39;s the very principle of the modern civil society.&#xA;&#xA;On a free and open source operating system, you can make your own environment and maintain it based on your own will. Nobody is going to take it away from you against it. You cannot expect this kind of freedom on proprietary operating systems where look and feel of the user interface is replaced sorely on the manufacturer&#39;s decision. For example, you simply cannot keep using Windows XP&#39;s environment forever.&#xA;&#xA;As a free operating system, a GNU/Linux distribution such as Trisquel would be a top pick for most people, but if you are looking for something that you can orderly control everything from the ground, BSD operating systems are worth a try.&#xA;&#xA;BSD operating systems are stable, powerful and versatile. They are mainly used for a server, still they also can be used with desktop environments like GNOME, MATE, and XFCE. There are also applications for the desktop environment available such as Firefox, Thunderbird, LibreOffice, GIMP, OBS Studio, and VLC media player, so if you have adopted #FOSS on other operating systems already, you can keep using the same applications in many cases. Even if the build is not available there, there is an emulator often referred as Linuxulator, which makes it possible to run it on FreeBSD if the build is compatible with GNU/Linux (See below about Linuxulator).&#xA;&#xA;Understanding the Concept: Differences between GNU/Linux and BSD&#xA;&#xA;In general BSD operating systems resemble GNU/Linux distributions in many ways, still there are also key differences between them. Understanding the differences first helps you to make a plan how you would take advantage of the BSD operating systems. The article below is one of the well-known essays that illustrates the main differences between BSD and GNU/Linux. Reading it through will let you grasp the basic concepts of the BSD operating systems.&#xA;&#xA;BSD for Linux Users: https://www.over-yonder.net/~fullermd/rants/bsd4linux/01&#xA;&#xA;BSD operating system is similar to the web browser on which you can enhance its functions with add-ons. BSD core system includes minimum packages so you can add applications on your needs. The fact that the core system and applications which enhance it are strictly separated is one of the main differences between BSD and GNU/Linux.&#xA;&#xA;On BSD operating system, anything not related to the core system is not installed by default, let alone the graphical user interface. If you want to set up a desktop environment, you need to install every package required for that. This looks complicated, still the installation process gives you better understanding what you have installed for the operating system and what is in it. Principally there is not a concept of &#34;bloatware&#34; on the BSD operating systems. If you feel your computer does not work smoothly, it is mostly because of what you have installed and how you configured it.&#xA;&#xA;Which BSD operating system do you take?&#xA;&#xA;If you do not have a special preference, either FreeBSD or OpenBSD should be a natural choice. In my case I chose FreeBSD because it arguably maintains more applications for desktop environments than others, with a better IME support. If you are looking for reasons why you would prefer OpenBSD, the article below may help:&#xA;&#xA;Why I use OpenBSD: https://dataswamp.org/~solene/2020-11-16-why-i-use-openbsd.html&#xA;&#xA;The question like &#34;Which one is better, FreeBSD or OpenBSD?&#34; is a nonsense. They have their own merits and advantages over others, so please learn your own needs first to pick which one should work best to satisfy them. Learn yourself to know which BSD operating system you want to use.&#xA;&#xA;Resources&#xA;&#xA;There is a lot of well written articles in Internet which summarize how to install a desktop environment on FreeBSD. I am not sure if I could write better than those, so I would like to just list what I have used as a reference to set up the desktop environment and applications.&#xA;&#xA;Overview&#xA;&#xA;At first, the articles below should help you to understand how to install FreeBSD and set it up to add a desktop environment.&#xA;&#xA;FreeBSD Handbook&#xA;FreeBSD on a Laptop -- A guide to a fully functional installation of FreeBSD on a ThinkPad T530: https://www.c0ffee.net/blog/freebsd-on-a-laptop/&#xA;&#xA;I would like to stress the importance of reading the official documentation for FreeBSD. The documentation of FreeBSD is simply phenomenal. Both quality and quantity is far beyond the level of Windows / macOS. In most cases documentation is available both online and offline. You are expected to consult the official documentation before asking a question on the official forums. Otherwise your questions will simply be ignored, if you create a post with a phrase like &#34;... does not work&#34;.&#xA;&#xA;Reading through the official documentation takes a lot of time and energy, but it will let you understand how the system works and how you can configure it on your needs. It is organized quite well, and helps you to grasp the whole picture of the operating system. &#xA;&#xA;Find a laptop&#xA;&#xA;When it comes to compatibilities, FreeBSD often supports less hardware than Windows, macOS, and GNU/Linux do, as a matter of fact. Rare hardware is sometimes not supported so you should carefully research which machine to use. Do not count on a virtual machine to check compatibility issues.&#xA;&#xA;This page gives you the general impression which manufacture&#39;s computers tend to be supported well.&#xA;&#xA;Laptops -- FreeBSD Wiki: https://wiki.freebsd.org/Laptops&#xA;&#xA;If you want to check the latest trend, I would recommend you to check the page below:&#xA;&#xA;FreeBSD Hardware Database: https://bsd-hardware.info/?d=FreeBSD&#xA;&#xA;Traditionally FreeBSD has worked on IBM / Lenovo&#39;s Thinkpad. The page below helped me to have an rough idea how well Thinkpad series are supported and what kind of stuff tends to be not working there:&#xA;&#xA;FreeBSD on the Lenovo Thinkpad T480: https://www.davidschlachter.com/misc/t480-freebsd&#xA;&#xA;Comparing models on the wiki and the database, I chose Thinkpad X250 for my laptop. Mine has been cleaned and recompiled by IBM, got 8GB RAM and most importantly, a microphone and a webcam. Bluetooth should be also available but I cannot figure out how to enable it on FreeBSD.&#xA;&#xA;https://www.freebsd.org/doc/handbook/network-bluetooth.html&#xA;SteveWills/BTSpeaker - FreeBSD Wiki -- How I managed to use BlueTooth audio with ThinkPad X220: https://wiki.freebsd.org/SteveWills/BTSpeaker&#xA;&#xA;Install FreeBSD core system on an encrypted partition&#xA;&#xA;On FreeBSD it is possible to set up a full-disk encryption of the startup partition, following the procedure described below:&#xA;&#xA;FreeBSD: Full-Disk Encryption + UEFI -- How to install FreeBSD using a GELI-encrypted UFS root partition on UEFI:   https://www.c0ffee.net/blog/freebsd-full-disk-encryption-uefi/&#xA;&#xA;You also can add encrypted partitions later following the manual:&#xA;&#xA;https://www.freebsd.org/doc/enUS.ISO8859-1/books/handbook/disks-encrypting.html&#xA;&#xA;After encrypting the partition you can mount it with a key file with or without password encryption. VeraCrypt is available on FreeBSD too, but generally the natively supported protocol should work better.&#xA;&#xA;Install applications&#xA;&#xA;FreeBSD provides two ways to install applications. The first one is to use pkg to manage precompiled binaries (packages), and the second one is to use Ports Collection to compile binaries from the source code. On FreeBSD a toolchain for that is installed by default, and you can run make to compile an application on a port. &#xA;&#xA;https://docs.freebsd.org/en/books/handbook/pkgng-intro.html&#xA;https://docs.freebsd.org/en/books/handbook/ports-using.html&#xA;&#xA;  The Ports Collection is a set of Makefiles, patches, and description files. Each set of these files is used to compile and install an individual application on FreeBSD, and is called a port.&#xA;&#xA;You can select which one based on your preference. For most cases, pkg should work as expected, but if you want to follow the latest status of the codebase, you should use Ports Collection. It consists of bug fixes since the latest branch-release, which sometimes are critical to run the system. In my case, the bug related to X Window System has prevented me from starting the graphical user interface.&#xA;&#xA;FreeBSD 12.2 intel graphics bug : https://www.gridbugs.org/daily/freebsd-12.2-intel-graphics-bug/&#xA;&#xA;Also please note that you should not use them in conjunction. According to the official page,&#xA;&#xA;  Before installing and using the Ports Collection, please be aware that it is generally ill-advised to use the Ports Collection in conjunction with the binary packages provided via pkg to install software. pkg, by default, tracks quarterly branch-releases of the ports tree and not HEAD. Dependencies could be different for a port in HEAD compared to its counterpart in a quarterly branch release and this could result in conflicts between dependencies installed by pkg and those from the Ports Collection. If the Ports Collection and pkg must be used in conjunction, then be sure that your Ports Collection and pkg are on the same branch release of the ports tree.&#xA;&#xA;To install and upgrade an application on your system, you can use portmaster as well.&#xA;&#xA;FreshPorts -- ports-mgmt/portmaster: Manage your ports without external databases or languages: https://www.freshports.org/ports-mgmt/portmaster/&#xA;&#xA;After installing it $ man portmaster lets you know how to use postmaster properly, and you should read it through to take advantage of the powerful tool.&#xA;&#xA;  This manual contains a lot of valuable information about portmaster, and you should read the entire manual to give you a better idea about how it works and what choices are available to you.  However in the interests of getting you started quickly please see the EXAMPLES section at the end of the manual.&#xA;&#xA;Search applications&#xA;&#xA;As discussed in the article cited above at first, unlike GNU/Linux, FreeBSD has the monolithic codebase which has a strict hierarchy, so basically you cannot download an official source code from another repository to build and install an application because there is not another repository from the start.&#xA;&#xA;Any applications must be imported into the codebase to be supported officially, which is why the set of files for building an application is called a port. Each official application is maintained by ports submitters, maintainers, and committers, most of whose work is voluntary. It is a manual labor and applications do not magically appear in the Ports Collection. &#xA;&#xA;The FreeBSD Project | Ports Management Team: https://www.freebsd.org/portmgr/&#xA;&#xA;You can search these websites for applications in the Ports Collection.&#xA;&#xA;FreshPorts -- The Place For Ports: https://www.freshports.org/&#xA;The FreeBSD Project | About FreeBSD Ports: https://www.freebsd.org/ports/&#xA;&#xA;Install MATE&#xA;&#xA;As a desktop environment I picked MATE, and referred the page below to install it. The article was written for FreeBSD 11, but it worked for FreeBSD 12 as well.&#xA;&#xA;How to Install Mate Desktop Environment in FreeBSD 11: https://linoxide.com/unix/mate-desktop-installation-freebsd-11/&#xA;&#xA;Installation might take some time despite being a straightforward process. After installing it you&#39;ll have to configure the system manually to log in to the desktop environment. The article above picks slim as a display manager, but it is fine to chose another one such as lightdm. To compare display managers, I found this site useful:&#xA;&#xA;15 Best Linux Display Manager as of 2021 -- Slant: https://www.slant.co/topics/2053/~best-linux-display-manager&#xA;&#xA;Firewall&#xA;&#xA;FreeBSD has well maintained firewall applications like pf and ipfw. I chose pf for my computer. Please note it does not have a default setting, so you&#39;ll have to configure it by yourself on your own needs. &#xA;&#xA;https://docs.freebsd.org/en/books/handbook/firewalls/#firewalls-pf&#xA;&#xA;Since my knowledge about the concept of the firewall is also quite poor, I followed the guide below to create the configuration file.&#xA;&#xA;How To Configure Packet Filter (PF) on FreeBSD 12.1 | DigitalOcean: https://www.digitalocean.com/community/tutorials/how-to-configure-packet-filter-pf-on-freebsd-12-1&#xA;&#xA;Please note that if you are the only user on the computer, there is almost no point of filtering packets going outside as you should understand already which applications are running. At first I did not understand that and had a hard time of figuring out how to allow ports used by an application randomly. Limiting ports usually makes sense only if the computer is used as a server which a lot of people interact with.&#xA;&#xA;Wireless network&#xA;&#xA;To set up a connection with a wireless network also needs a manual configuration. Everything you need to know what to configure to establish the connection should be available on the manual.&#xA;&#xA;https://www.freebsd.org/doc/handbook/network-wireless.html&#xA;&#xA;$ sudo ifconfig wlan0 list scan up&#xA;&#xA;After finding your network, copy the SSID, and edit /etc/wpasupplicant.conf&#xA;&#xA;network={&#xA;        ssid=&#34;...&#34;&#xA;        scanssid=0&#xA;        psk=&#34;...&#34;&#xA;        priority=5&#xA;}&#xA;&#xA;Input the SSID to ssid and its password to psk &#xA;&#xA;On my laptop I also needed to specify external nameservers. If $ ping example.com does not return the result, open /etc/resolve.conf to specify other nameservers but localhost (I picked AdGuard DNS).&#xA;&#xA;After setting the nameservers, run $ sudo service netif restart. To check if DNS is working properly, run $ ping example.com again. &#xA;&#xA;How to set up AdGuard DNS: https://adguard.com/en/adguard-dns/overview.html&#xA;&#xA;My desktop works without this configuration so this must be related to my incorrect setting somewhere.&#xA;&#xA;Sound&#xA;&#xA;You need to configure a sound card to enable sound on FreeBSD, if the operating system does not detect it automatically.&#xA;&#xA;https://docs.freebsd.org/en/books/handbook/multimedia/#sound-setup&#xA;&#xA;After loading the driver on /boot/loader.conf, edit /etc/sysctl.conf to choose the default unit of sound with hw.snd.defaultunit setting.&#xA;&#xA;Webcam&#xA;&#xA;On FreeBSD it is possible to join an online video conference with a WebRTC-based FOSS such as Jitsi.&#xA;&#xA;As always, you need to install an additional application and configure the operating system so it loads the webcam&#39;s driver properly. I referred the website below to set up the webcam on my laptop.&#xA;&#xA;https://www.davidschlachter.com/misc/freebsd-webcam-browser&#xA;&#xA;Tip: if you are asked to join a video conference on a proprietary software, you should tell them very clearly that it is not possible to do so because the application is unavailable on FreeBSD. Do not let those who do not respect the principle of the modern civil society, mutual recognition of freedom, take an initiative to decide how the video conference should take place.&#xA;&#xA;GNU/Linux emulator&#xA;&#xA;FreeBSD supports running GNU/Linux applications on the emulator, but not so many applications run successfully on the current stable version of FreeBSD. You can check below to find out how to set up the emulator and which applications have been confirmed to run or not.&#xA;&#xA;Linuxulator -- FreeBSD Wiki: https://wiki.freebsd.org/Linuxulator&#xA;https://wiki.freebsd.org/LinuxApps&#xA;&#xA;On FreeBSD 12, neither Electron-based apps nor AppImage run yet. The latter is being worked on here while the former is not quite. If you cannot find applications which work on FreeBSD, I think it is worth looking for alternatives. There might be another version which you can use with a command line.&#xA;&#xA;Signal:&#xA;  scli: https://github.com/isamert/scli&#xA;  If you set up #Matrix on your server, it is possible to connect it and Signal with this bridge: https://github.com/tulir/mautrix-signal&#xA;Joplin: note taking and to-do application&#xA;  https://joplinapp.org/terminal/&#xA;ProtonVPN: Use OpenVPN client instead&#xA;  https://www.ovpn.com/en/guides/freebsd&#xA;ProtonMail Bridge (for mail client such as Thunderbird)&#xA;  Run the command line client on the GNU/Linux emulator&#xA;&#xA;Run ProtonMail Bridge&#xA;&#xA;It is possible to run ProtonMail Bridge inside the GNU/Linux emulator on the command line. Here are the rough steps with which I configured it.&#xA;&#xA;$ sudo chroot /compat/linux /bin/bash&#xA;On the emulator download the official package for Debian from the webpage below:&#xA;&#xA;https://protonmail.com/bridge/install&#xA;&#xA;Run dpkg -i to install the application. At first installation should fail due to the lack of required packages, so run # apt --fix-broken install to install them and the application itself.&#xA;&#xA;In order to run it, you also need to install pass and run gpg --gen-key create a GPG key without a password. After creating the key, run pass init to configure the password manager.&#xA;&#xA;Protonmail-bridge on linux can&amp;#x27;t detect pass : ProtonMail: https://www.reddit.com/r/ProtonMail/comments/gi64ek/protonmailbridgeonlinuxcantdetectpass/&#xA;&#xA;After that, run # /usr/lib/protonmail/bridge/protonmail-bridge --cli to configure the application. &#xA;&#xA;The command below should start it from the outside of the GNU/Linux emulator.&#xA;&#xA;$ sudo chroot /compat/ubuntu/ /bin/bash -c &#39;/usr/lib/protonmail/bridge/protonmail-bridge --noninteractive&#39;&#xA;&#xA;I have set up cron with sudo to make it run each time the computer reboots.&#xA;&#xA;Bonus: Watch DRM based movies on FreeBSD&#xA;&#xA;On FreeBSD 12 it is not possible to watch movies managed with DRM technology due to a proprietary library to decode them. I took advantage of the shell script provided at the website below to install Brave Browser on GNU/Linux emulator. &#xA;&#xA;mrclksr/linux-browser-installer: Script to install Linux browsers under a Linux jail on FreeBSD: https://github.com/mrclksr/linux-browser-installer&#xA;&#xA;Since the DRM technology is not a FOSS by design, please use it based on your will and responsibility. Respect others&#39; right and freedom, and do not force others to use it. Never presume they are fine with using it.&#xA;&#xA;Closing remark&#xA;&#xA;p class=&#34;p--img&#34;span class=&#34;p--img__span&#34;img src=&#34;/img/upload/freebsd.jpg&#34; alt=&#34;FreeBSD stress ball&#34; //span/p&#xA;&#xA;p class=&#34;p--detail&#34;&#34;a href=&#34;https://www.flickr.com/photos/43301444@N06/8112124178&#34;FreeBSD Stress Ball/a&#34; by a href=&#34;https://www.flickr.com/photos/43301444@N06&#34;FAndrey/a is licensed under a href=&#34;https://creativecommons.org/licenses/by/2.0/&#34;CC BY 2.0/a./p&#xA;&#xA;BSD operating systems generally require you to understand the structure of the system more than other popular proprietary operating systems do. You are expected to read a manual and educate yourself by doing so, which often takes a lot of time.&#xA;&#xA;One of the main advantages of BSD is that you can 100% decide what to install and how to use it. The concept of bloatware does not exist in its ecosystem. You can create and maintain the environment sorely on your own will. This is similar to creating your own garden; nobody forces you what to grow there.&#xA;&#xA;The large ecosystem of FreeBSD has been maintained by a lot of voluntary work. It includes a lot of applications for daily use on desktop environments, and you can not only use them freely but also help the ecosystem to develop by proposing a change, submitting bug fixes, localization, joining users community or starting one, etc.  This is an enjoyable and precious experience for sure which cannot be achieved with proprietary operating systems.&#xA;&#xA;Copyright (C) 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See https://blog.progressiv.dev/yq31akw3jj for copying conditions.]]&gt;</description>
      <content:encoded><![CDATA[<p>In this article I would like to share resources I referred in order to set up a desktop environment and applications on <a href="/suguru/tag:FreeBSD" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">FreeBSD</span></a> 12.</p>



<h2 id="replace-a-proprietary-operating-system-with-a-free-and-open-one">Replace a proprietary operating system with a free and open one</h2>

<p>Since the last year I have started using <a href="https://www.freebsd.org/" rel="nofollow">FreeBSD</a>, a UNIX-like operating system, on my desktop and laptop. The motive behind it is to remove proprietary operating systems from my life and replace them with free one on which most of proprietary applications even do not run.</p>

<p>To protect yourself from a proprietary software ecosystem in which you often are forced to join by your colleagues, the most effective method would be to use a free and open source operating system by yourself. You should not feel guilty about using a minor operating system, because in the free society, nobody can legitimately direct you to use a certain operating system. So if you ask someone to use a certain operating system, you suppress the person&#39;s right and freedom by not respecting the diversity of the digital environments. As you recognize others&#39; freedom, let them recognize your freedom. That&#39;s the very principle of the modern civil society.</p>

<p>On a free and open source operating system, you can make your own environment and maintain it based on your own will. Nobody is going to take it away from you against it. You cannot expect this kind of freedom on proprietary operating systems where look and feel of the user interface is replaced sorely on the manufacturer&#39;s decision. For example, you simply cannot keep using Windows XP&#39;s environment forever.</p>

<p>As a free operating system, a GNU/Linux distribution such as <a href="https://trisquel.info/" rel="nofollow">Trisquel</a> would be a top pick for most people, but if you are looking for something that you can orderly control everything from the ground, BSD operating systems are worth a try.</p>

<p>BSD operating systems are stable, powerful and versatile. They are mainly used for a server, still they also can be used with desktop environments like <a href="https://www.freshports.org/x11/gnome3/" rel="nofollow">GNOME</a>, <a href="https://www.freshports.org/x11/mate/" rel="nofollow">MATE</a>, and <a href="https://www.freshports.org/x11-wm/xfce4/" rel="nofollow">XFCE</a>. There are also applications for the desktop environment available such as <a href="https://www.freshports.org/www/firefox/" rel="nofollow">Firefox</a>, <a href="https://www.freshports.org/mail/thunderbird/" rel="nofollow">Thunderbird</a>, <a href="https://www.freshports.org/editors/libreoffice/" rel="nofollow">LibreOffice</a>, <a href="https://www.freshports.org/graphics/gimp/" rel="nofollow">GIMP</a>, <a href="https://www.freshports.org/multimedia/obs-studio/" rel="nofollow">OBS Studio</a>, and <a href="https://www.freshports.org/multimedia/vlc/" rel="nofollow">VLC media player</a>, so if you have adopted <a href="/suguru/tag:FOSS" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">FOSS</span></a> on other operating systems already, you can keep using the same applications in many cases. Even if the build is not available there, there is an emulator often referred as <a href="https://wiki.freebsd.org/Linuxulator" rel="nofollow">Linuxulator</a>, which makes it possible to run it on FreeBSD if the build is compatible with GNU/Linux (See below about Linuxulator).</p>

<h2 id="understanding-the-concept-differences-between-gnu-linux-and-bsd">Understanding the Concept: Differences between GNU/Linux and BSD</h2>

<p>In general BSD operating systems resemble GNU/Linux distributions in many ways, still there are also key differences between them. Understanding the differences first helps you to make a plan how you would take advantage of the BSD operating systems. The article below is one of the well-known essays that illustrates the main differences between BSD and GNU/Linux. Reading it through will let you grasp the basic concepts of the BSD operating systems.</p>
<ul><li>BSD for Linux Users: <a href="https://www.over-yonder.net/~fullermd/rants/bsd4linux/01" rel="nofollow">https://www.over-yonder.net/~fullermd/rants/bsd4linux/01</a></li></ul>

<p>BSD operating system is similar to the web browser on which you can enhance its functions with add-ons. BSD core system includes minimum packages so you can add applications on your needs. The fact that the core system and applications which enhance it are strictly separated is one of the main differences between BSD and GNU/Linux.</p>

<p><em>On BSD operating system, anything not related to the core system is not installed by default, let alone the graphical user interface.</em> If you want to set up a desktop environment, you need to install every package required for that. This looks complicated, still the installation process gives you better understanding what <em>you</em> have installed for the operating system and what is in it. Principally there is not a concept of “bloatware” on the BSD operating systems. <em>If you feel your computer does not work smoothly, it is mostly because of what you have installed and how you configured it</em>.</p>

<h2 id="which-bsd-operating-system-do-you-take">Which BSD operating system do you take?</h2>

<p>If you do not have a special preference, either FreeBSD or OpenBSD should be a natural choice. In my case I chose FreeBSD because it arguably maintains more applications for desktop environments than others, with a better IME support. If you are looking for reasons why you would prefer OpenBSD, the article below may help:</p>
<ul><li>Why I use OpenBSD: <a href="https://dataswamp.org/~solene/2020-11-16-why-i-use-openbsd.html" rel="nofollow">https://dataswamp.org/~solene/2020-11-16-why-i-use-openbsd.html</a></li></ul>

<p>The question like “Which one is better, FreeBSD or OpenBSD?” is a nonsense. They have their own merits and advantages over others, so please learn your own needs first to pick which one should work best to satisfy them. Learn <em>yourself</em> to know which BSD operating system you want to use.</p>

<h2 id="resources">Resources</h2>

<p>There is a lot of well written articles in Internet which summarize how to install a desktop environment on FreeBSD. I am not sure if I could write better than those, so I would like to just list what I have used as a reference to set up the desktop environment and applications.</p>

<h3 id="overview">Overview</h3>

<p>At first, the articles below should help you to understand how to install FreeBSD and set it up to add a desktop environment.</p>
<ul><li><strong><a href="https://docs.freebsd.org/en_US.ISO8859-1/books/handbook/index.html" rel="nofollow">FreeBSD Handbook</a></strong></li>
<li>FreeBSD on a Laptop — <em>A guide to a fully functional installation of FreeBSD on a ThinkPad T530</em>: <a href="https://www.c0ffee.net/blog/freebsd-on-a-laptop/" rel="nofollow">https://www.c0ffee.net/blog/freebsd-on-a-laptop/</a></li></ul>

<p>I would like to stress the importance of reading the official documentation for FreeBSD. The documentation of FreeBSD is simply phenomenal. Both quality and quantity is far beyond the level of Windows / macOS. In most cases documentation is available both online and offline. You are expected to consult the official documentation before asking a question on the <a href="https://forums.freebsd.org/" rel="nofollow">official forums</a>. Otherwise your questions will simply be ignored, if you create a post with a phrase like “... does not work”.</p>

<p>Reading through the official documentation takes a lot of time and energy, but it will let you understand how the system works and how you can configure it on your needs. It is organized quite well, and helps you to grasp the whole picture of the operating system.</p>

<h3 id="find-a-laptop">Find a laptop</h3>

<p>When it comes to compatibilities, FreeBSD often supports less hardware than Windows, macOS, and GNU/Linux do, as a matter of fact. Rare hardware is sometimes not supported so you should carefully research which machine to use. <em>Do not count on a virtual machine to check compatibility issues.</em></p>

<p>This page gives you the general impression which manufacture&#39;s computers tend to be supported well.</p>
<ul><li>Laptops — FreeBSD Wiki: <a href="https://wiki.freebsd.org/Laptops" rel="nofollow">https://wiki.freebsd.org/Laptops</a></li></ul>

<p>If you want to check the latest trend, I would recommend you to check the page below:</p>
<ul><li>FreeBSD Hardware Database: <a href="https://bsd-hardware.info/?d=FreeBSD" rel="nofollow">https://bsd-hardware.info/?d=FreeBSD</a></li></ul>

<p>Traditionally FreeBSD has worked on IBM / Lenovo&#39;s Thinkpad. The page below helped me to have an rough idea how well Thinkpad series are supported and what kind of stuff tends to be not working there:</p>
<ul><li>FreeBSD on the Lenovo Thinkpad T480: <a href="https://www.davidschlachter.com/misc/t480-freebsd" rel="nofollow">https://www.davidschlachter.com/misc/t480-freebsd</a></li></ul>

<p>Comparing models on the wiki and the database, I chose <a href="https://www.lenovo.com/us/en/laptops/thinkpad/x-series/x250/" rel="nofollow">Thinkpad X250</a> for my laptop. Mine has been cleaned and recompiled by IBM, got 8GB RAM and most importantly, a microphone and a webcam. Bluetooth should be also available but I cannot figure out how to enable it on FreeBSD.</p>
<ul><li><a href="https://www.freebsd.org/doc/handbook/network-bluetooth.html" rel="nofollow">https://www.freebsd.org/doc/handbook/network-bluetooth.html</a></li>
<li>SteveWills/BTSpeaker – FreeBSD Wiki — <em>How I managed to use BlueTooth audio with ThinkPad X220</em>: <a href="https://wiki.freebsd.org/SteveWills/BTSpeaker" rel="nofollow">https://wiki.freebsd.org/SteveWills/BTSpeaker</a></li></ul>

<h3 id="install-freebsd-core-system-on-an-encrypted-partition">Install FreeBSD core system on an encrypted partition</h3>

<p>On FreeBSD it is possible to set up a full-disk encryption of the startup partition, following the procedure described below:</p>
<ul><li>FreeBSD: Full-Disk Encryption + UEFI — <em>How to install FreeBSD using a GELI-encrypted UFS root partition on UEFI</em>:   <a href="https://www.c0ffee.net/blog/freebsd-full-disk-encryption-uefi/" rel="nofollow">https://www.c0ffee.net/blog/freebsd-full-disk-encryption-uefi/</a></li></ul>

<p>You also can add encrypted partitions later following the manual:</p>
<ul><li><a href="https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/disks-encrypting.html" rel="nofollow">https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/disks-encrypting.html</a></li></ul>

<p>After encrypting the partition you can mount it with a key file with or without password encryption. <a href="https://www.veracrypt.fr/en/Downloads.html" rel="nofollow">VeraCrypt</a> is available on FreeBSD too, but generally the natively supported protocol should work better.</p>

<h3 id="install-applications">Install applications</h3>

<p>FreeBSD provides two ways to install applications. The first one is to use <code>pkg</code> to manage precompiled binaries (packages), and the second one is to use <code>Ports Collection</code> to compile binaries from the source code. On FreeBSD a toolchain for that is installed by default, and you can run <code>make</code> to compile an application on a port.</p>
<ul><li><a href="https://docs.freebsd.org/en/books/handbook/pkgng-intro.html" rel="nofollow">https://docs.freebsd.org/en/books/handbook/pkgng-intro.html</a></li>
<li><a href="https://docs.freebsd.org/en/books/handbook/ports-using.html" rel="nofollow">https://docs.freebsd.org/en/books/handbook/ports-using.html</a></li></ul>

<blockquote><p>The Ports Collection is a set of Makefiles, patches, and description files. Each set of these files is used to compile and install an individual application on FreeBSD, and is called a port.</p></blockquote>

<p>You can select which one based on your preference. For most cases, pkg should work as expected, but if you want to follow the latest status of the codebase, you should use Ports Collection. It consists of bug fixes since the latest branch-release, which sometimes are critical to run the system. In my case, the bug related to X Window System has prevented me from starting the graphical user interface.</p>
<ul><li>FreeBSD 12.2 intel graphics bug : <a href="https://www.gridbugs.org/daily/freebsd-12.2-intel-graphics-bug/" rel="nofollow">https://www.gridbugs.org/daily/freebsd-12.2-intel-graphics-bug/</a></li></ul>

<p>Also please note that you should not use them in conjunction. According to the official page,</p>

<blockquote><p>Before installing and using the Ports Collection, please be aware that it is generally ill-advised to use the Ports Collection in conjunction with the binary packages provided via pkg to install software. pkg, by default, tracks quarterly branch-releases of the ports tree and not HEAD. Dependencies could be different for a port in HEAD compared to its counterpart in a quarterly branch release and this could result in conflicts between dependencies installed by pkg and those from the Ports Collection. If the Ports Collection and pkg must be used in conjunction, then be sure that your Ports Collection and pkg are on the same branch release of the ports tree.</p></blockquote>

<p>To install and upgrade an application on your system, you can use <code>portmaster</code> as well.</p>
<ul><li>FreshPorts — ports-mgmt/portmaster: Manage your ports without external databases or languages: <a href="https://www.freshports.org/ports-mgmt/portmaster/" rel="nofollow">https://www.freshports.org/ports-mgmt/portmaster/</a></li></ul>

<p>After installing it <code>$ man portmaster</code> lets you know how to use postmaster properly, and you should read it through to take advantage of the powerful tool.</p>

<blockquote><p>This manual contains a lot of valuable information about portmaster, and you should read the entire manual to give you a better idea about how it works and what choices are available to you.  However in the interests of getting you started quickly please see the EXAMPLES section at the end of the manual.</p></blockquote>

<h3 id="search-applications">Search applications</h3>

<p>As discussed in the article cited above at first, unlike GNU/Linux, FreeBSD has the monolithic codebase which has a strict hierarchy, so basically you cannot download an official source code from another repository to build and install an application because there is not another repository from the start.</p>

<p>Any applications must be im<em>port</em>ed into the codebase to be supported officially, which is why the set of files for building an application is called a <em>port</em>. Each official application is maintained by ports submitters, maintainers, and committers, most of whose work is voluntary. It is a manual labor and applications do not magically appear in the Ports Collection.</p>
<ul><li>The FreeBSD Project | Ports Management Team: <a href="https://www.freebsd.org/portmgr/" rel="nofollow">https://www.freebsd.org/portmgr/</a></li></ul>

<p>You can search these websites for applications in the Ports Collection.</p>
<ul><li>FreshPorts — The Place For Ports: <a href="https://www.freshports.org/" rel="nofollow">https://www.freshports.org/</a></li>
<li>The FreeBSD Project | About FreeBSD Ports: <a href="https://www.freebsd.org/ports/" rel="nofollow">https://www.freebsd.org/ports/</a></li></ul>

<h3 id="install-mate">Install MATE</h3>

<p>As a desktop environment I picked <a href="https://www.freshports.org/x11/mate/" rel="nofollow">MATE</a>, and referred the page below to install it. The article was written for FreeBSD 11, but it worked for FreeBSD 12 as well.</p>
<ul><li>How to Install Mate Desktop Environment in FreeBSD 11: <a href="https://linoxide.com/unix/mate-desktop-installation-freebsd-11/" rel="nofollow">https://linoxide.com/unix/mate-desktop-installation-freebsd-11/</a></li></ul>

<p>Installation might take some time despite being a straightforward process. After installing it you&#39;ll have to configure the system manually to log in to the desktop environment. The article above picks <code>slim</code> as a display manager, but it is fine to chose another one such as <code>lightdm</code>. To compare display managers, I found this site useful:</p>
<ul><li>15 Best Linux Display Manager as of 2021 — Slant: <a href="https://www.slant.co/topics/2053/~best-linux-display-manager" rel="nofollow">https://www.slant.co/topics/2053/~best-linux-display-manager</a></li></ul>

<h3 id="firewall">Firewall</h3>

<p>FreeBSD has well maintained firewall applications like <code>pf</code> and <code>ipfw</code>. I chose <code>pf</code> for my computer. Please note it does not have a default setting, so you&#39;ll have to configure it by yourself on your own needs.</p>
<ul><li><a href="https://docs.freebsd.org/en/books/handbook/firewalls/#firewalls-pf" rel="nofollow">https://docs.freebsd.org/en/books/handbook/firewalls/#firewalls-pf</a></li></ul>

<p>Since my knowledge about the concept of the firewall is also quite poor, I followed the guide below to create the configuration file.</p>
<ul><li>How To Configure Packet Filter (PF) on FreeBSD 12.1 | DigitalOcean: <a href="https://www.digitalocean.com/community/tutorials/how-to-configure-packet-filter-pf-on-freebsd-12-1" rel="nofollow">https://www.digitalocean.com/community/tutorials/how-to-configure-packet-filter-pf-on-freebsd-12-1</a></li></ul>

<p>Please note that if you are the only user on the computer, there is almost no point of filtering packets going outside as you should understand already which applications are running. At first I did not understand that and had a hard time of figuring out how to allow ports used by an application randomly. Limiting ports usually makes sense only if the computer is used as a server which a lot of people interact with.</p>

<h3 id="wireless-network">Wireless network</h3>

<p>To set up a connection with a wireless network also needs a manual configuration. Everything you need to know what to configure to establish the connection should be available on the manual.</p>
<ul><li><a href="https://www.freebsd.org/doc/handbook/network-wireless.html" rel="nofollow">https://www.freebsd.org/doc/handbook/network-wireless.html</a></li></ul>

<pre><code>$ sudo ifconfig wlan0 list scan up
</code></pre>

<p>After finding your network, copy the SSID, and edit <code>/etc/wpa_supplicant.conf</code></p>

<pre><code>network={
        ssid=&#34;...&#34;
        scan_ssid=0
        psk=&#34;...&#34;
        priority=5
}
</code></pre>

<p>Input the SSID to <code>ssid</code> and its password to <code>psk</code></p>

<p>On my laptop I also needed to specify external nameservers. If <code>$ ping example.com</code> does not return the result, open <code>/etc/resolve.conf</code> to specify other nameservers but localhost (I picked AdGuard DNS).</p>

<p>After setting the nameservers, run <code>$ sudo service netif restart</code>. To check if DNS is working properly, run <code>$ ping example.com</code> again.</p>
<ul><li>How to set up AdGuard DNS: <a href="https://adguard.com/en/adguard-dns/overview.html" rel="nofollow">https://adguard.com/en/adguard-dns/overview.html</a></li></ul>

<p>My desktop works without this configuration so this must be related to my incorrect setting somewhere.</p>

<h3 id="sound">Sound</h3>

<p>You need to configure a sound card to enable sound on FreeBSD, if the operating system does not detect it automatically.</p>
<ul><li><a href="https://docs.freebsd.org/en/books/handbook/multimedia/#sound-setup" rel="nofollow">https://docs.freebsd.org/en/books/handbook/multimedia/#sound-setup</a></li></ul>

<p>After loading the driver on <code>/boot/loader.conf</code>, edit <code>/etc/sysctl.conf</code> to choose the default unit of sound with <code>hw.snd.default_unit</code> setting.</p>

<h3 id="webcam">Webcam</h3>

<p>On FreeBSD it is possible to join an online video conference with a WebRTC-based FOSS such as Jitsi.</p>

<p>As always, you need to install an additional application and configure the operating system so it loads the webcam&#39;s driver properly. I referred the website below to set up the webcam on my laptop.</p>
<ul><li><a href="https://www.davidschlachter.com/misc/freebsd-webcam-browser" rel="nofollow">https://www.davidschlachter.com/misc/freebsd-webcam-browser</a></li></ul>

<p>Tip: if you are asked to join a video conference on a proprietary software, you should tell them very clearly that it is not possible to do so because the application is unavailable on FreeBSD. Do not let those who do not respect the principle of the modern civil society, <em>mutual recognition of freedom</em>, take an initiative to decide how the video conference should take place.</p>

<h3 id="gnu-linux-emulator">GNU/Linux emulator</h3>

<p>FreeBSD supports running GNU/Linux applications on the emulator, but not so many applications run successfully on the current stable version of FreeBSD. You can check below to find out how to set up the emulator and which applications have been confirmed to run or not.</p>
<ul><li>Linuxulator — FreeBSD Wiki: <a href="https://wiki.freebsd.org/Linuxulator" rel="nofollow">https://wiki.freebsd.org/Linuxulator</a></li>
<li><a href="https://wiki.freebsd.org/LinuxApps" rel="nofollow">https://wiki.freebsd.org/LinuxApps</a></li></ul>

<p>On FreeBSD 12, neither Electron-based apps nor AppImage run yet. The latter is being worked on <a href="https://github.com/AppImage/AppImageKit/issues/98" rel="nofollow">here</a> while the former is not quite. If you cannot find applications which work on FreeBSD, I think it is worth looking for alternatives. There might be another version which you can use with a command line.</p>
<ul><li><strong>Signal</strong>:
<ul><li>scli: <a href="https://github.com/isamert/scli" rel="nofollow">https://github.com/isamert/scli</a></li>
<li>If you set up <a href="/suguru/tag:Matrix" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Matrix</span></a> on your server, it is possible to connect it and Signal with this bridge: <a href="https://github.com/tulir/mautrix-signal" rel="nofollow">https://github.com/tulir/mautrix-signal</a></li></ul></li>
<li><strong>Joplin</strong>: note taking and to-do application
<ul><li><a href="https://joplinapp.org/terminal/" rel="nofollow">https://joplinapp.org/terminal/</a></li></ul></li>
<li><strong>ProtonVPN</strong>: Use OpenVPN client instead
<ul><li><a href="https://www.ovpn.com/en/guides/freebsd" rel="nofollow">https://www.ovpn.com/en/guides/freebsd</a></li></ul></li>
<li><strong>ProtonMail Bridge</strong> (for mail client such as Thunderbird)
<ul><li>Run the command line client on the GNU/Linux emulator</li></ul></li></ul>

<h4 id="run-protonmail-bridge">Run ProtonMail Bridge</h4>

<p>It is possible to run ProtonMail Bridge inside the GNU/Linux emulator on the command line. Here are the rough steps with which I configured it.</p>

<pre><code>$ sudo chroot /compat/linux /bin/bash
</code></pre>

<p>On the emulator download the official package for Debian from the webpage below:</p>
<ul><li><a href="https://protonmail.com/bridge/install" rel="nofollow">https://protonmail.com/bridge/install</a></li></ul>

<p>Run <code>dpkg -i</code> to install the application. At first installation should fail due to the lack of required packages, so run <code># apt --fix-broken install</code> to install them and the application itself.</p>

<p>In order to run it, you also need to install <code>pass</code> and run <code>gpg --gen-key</code> create a GPG key <strong>without a password</strong>. After creating the key, run <code>pass init</code> to configure the password manager.</p>
<ul><li>Protonmail-bridge on linux can&#39;t detect pass : ProtonMail: <a href="https://www.reddit.com/r/ProtonMail/comments/gi64ek/protonmailbridge_on_linux_cant_detect_pass/" rel="nofollow">https://www.reddit.com/r/ProtonMail/comments/gi64ek/protonmailbridge_on_linux_cant_detect_pass/</a></li></ul>

<p>After that, run <code># /usr/lib/protonmail/bridge/protonmail-bridge --cli</code> to configure the application.</p>

<p>The command below should start it from the outside of the GNU/Linux emulator.</p>

<pre><code>$ sudo chroot /compat/ubuntu/ /bin/bash -c &#39;/usr/lib/protonmail/bridge/protonmail-bridge --noninteractive&#39;
</code></pre>

<p>I have set up <code>cron</code> with <code>sudo</code> to make it run each time the computer reboots.</p>

<h3 id="bonus-watch-drm-based-movies-on-freebsd">Bonus: Watch DRM based movies on FreeBSD</h3>

<p>On FreeBSD 12 it is not possible to watch movies managed with DRM technology due to a proprietary library to decode them. I took advantage of the shell script provided at the website below to install Brave Browser on GNU/Linux emulator.</p>
<ul><li>mrclksr/linux-browser-installer: <em>Script to install Linux browsers under a Linux jail on FreeBSD</em>: <a href="https://github.com/mrclksr/linux-browser-installer" rel="nofollow">https://github.com/mrclksr/linux-browser-installer</a></li></ul>

<p>Since the DRM technology is not a FOSS by design, please use it based on your will and responsibility. Respect others&#39; right and freedom, and do not force others to use it. Never presume they are fine with using it.</p>

<h2 id="closing-remark">Closing remark</h2>

<p class="p--img"><span class="p--img__span"><img src="/img/upload/freebsd.jpg" alt="FreeBSD stress ball"/></span></p>

<p class="p--detail">&#34;<a href="https://www.flickr.com/photos/43301444@N06/8112124178" rel="nofollow">FreeBSD Stress Ball</a>&#34; by <a href="https://www.flickr.com/photos/43301444@N06" rel="nofollow">FAndrey</a> is licensed under <a href="https://creativecommons.org/licenses/by/2.0/" rel="nofollow">CC BY 2.0</a>.</p>

<p>BSD operating systems generally require you to understand the structure of the system more than other popular proprietary operating systems do. You are expected to read a manual and educate yourself by doing so, which often takes a lot of time.</p>

<p>One of the main advantages of BSD is that you can 100% decide what to install and how to use it. The concept of bloatware does not exist in its ecosystem. You can create and maintain the environment sorely on your own will. This is similar to creating your own garden; nobody forces you what to grow there.</p>

<p>The large ecosystem of FreeBSD has been maintained by a lot of voluntary work. It includes a lot of applications for daily use on desktop environments, and you can not only use them freely but also help the ecosystem to develop by proposing a change, submitting bug fixes, localization, joining users community or starting one, etc.  This is an enjoyable and precious experience for sure which cannot be achieved with proprietary operating systems.</p>

<p>Copyright © 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See <a href="https://blog.progressiv.dev/yq31akw3jj" rel="nofollow">https://blog.progressiv.dev/yq31akw3jj</a> for copying conditions.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/setting-up-a-desktop-environment-and-applications-on-freebsd-12</guid>
      <pubDate>Fri, 12 Feb 2021 17:42:20 +0000</pubDate>
    </item>
    <item>
      <title>Pin the stream of thought </title>
      <link>https://blog.progressiv.dev/suguru/pin-the-stream-of-thought</link>
      <description>&lt;![CDATA[When I have started writing a book I often used Twitter to compose my thoughts to write about. Tweeting has helped me to output some sentences despite being fragmented. Still it is also sure that most of them are simply gone and neither reread nor rethought. From writing books I learned that rethinking your thought and rewriting your writing is a critical way of enhancing and organizing the insight to the size of a work. I would say when it comes to developing a thought, leaving raw ideas in sliced notepads leads you nowhere because you will easily forget what you have thought.&#xA;&#xA;!--more--&#xA;&#xA;If you want to tell others your thought, you need to create a work which has a context. In order to create the context, you&#39;ll have to &#34;pin&#34; the stream of your thought as a sizeable chunk of sentences, not leaving them in characters which are as short as toots/tweets. They can serve a scratchpad of your thought, but they are often nothing more than raw and random thoughts which do not create the context. The difficulty of poetry, especially verse, exists on this point, i.e. making a context by following the style strictly.  &#xA;&#xA;The basics of Haiku is that you are expected to express the beauty of the universe in the very limited number of characters. The value of the work is interpreted on the number of the characters which create the rhyme (5-7-5), so you are obliged to follow the style and if you cannot, your work will be regarded as a failure unless it is exceptionally recognized as another style of Haiku such as a case of Santōka Taneda. His free verse cannot be imitated without being a bunch of typical followers.&#xA;&#xA;p class=&#34;p--img&#34;span class=&#34;p--img__span&#34;img src=&#34;/img/upload/s-taneda.jpg&#34; alt=&#34;Santōka Taneda&#34; //span/p&#xA;p class=&#34;p--detail p--detail--center&#34;Santōka Taneda/p&#xA;&#xA;The history of philosophy has started in a way of verse (see Presocratic thinkers; Vorsokratiker). Socrates also famously denounced the value of written words as a shadow of speech, but Plato rejected his teacher&#39;s idea to create works in written sentences on which we can understand Socrates&#39; thought. He also adopted a prose style, not a verse, against the tradition. From the historical viewpoint verse is arguably not the best way of developing an organized thought. &#xA;&#xA;Random thought rarely overflows the limit of a couple of hundreds characters. Writing a lot of toots/tweets is fairly easy because you are not bound to a context. Sticking to the original theme to create the context is a tough task, but without doing so, you cannot make the story. In this regard rethinking your thought is critical because it leads to a concept and helps you to organize concepts into a sequence, which consists of a story. If the sequence of sentences started to appear as if it existed independently without you, the story is getting started to be alive. Your personal appearance in the story is its enemy.&#xA;&#xA;Think to rethink. Write to rewrite. Rethink and rewrite to make a story others can understand. This is the experience which cannot be gotten from current microblogging services.&#xA;&#xA;Copyright (C) 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See https://blog.progressiv.dev/yq31akw3jj for copying conditions.]]&gt;</description>
      <content:encoded><![CDATA[<p>When I have started writing a book I often used Twitter to compose my thoughts to write about. Tweeting has helped me to output some sentences despite being fragmented. Still it is also sure that most of them are simply gone and neither reread nor rethought. From writing books I learned that <em>rethinking</em> your thought and <em>rewriting</em> your writing is a critical way of enhancing and organizing the insight to the size of a work. I would say when it comes to developing a thought, leaving raw ideas in sliced notepads leads you nowhere because you will easily forget what you have thought.</p>



<p>If you want to tell others your thought, you need to create a work which has a context. In order to create the context, you&#39;ll have to “pin” the stream of your thought as a sizeable chunk of sentences, not leaving them in characters which are as short as toots/tweets. They can serve a scratchpad of your thought, but they are often nothing more than raw and random thoughts which do not create the context. The difficulty of poetry, especially verse, exists on this point, i.e. making a context by following the style strictly.</p>

<p>The basics of <em>Haiku</em> is that you are expected to express the beauty of the universe in the very limited number of characters. The value of the work is interpreted on the number of the characters which create the rhyme (5-7-5), so you are obliged to follow the style and if you cannot, your work will be regarded as a failure unless it is exceptionally recognized as another style of <em>Haiku</em> such as a case of <em>Santōka Taneda</em>. His free verse cannot be imitated without being a bunch of typical followers.</p>

<p class="p--img"><span class="p--img__span"><img src="/img/upload/s-taneda.jpg" alt="Santōka Taneda"/></span></p>
<p class="p--detail p--detail--center">Santōka Taneda</p>

<p>The history of philosophy has started in a way of verse (see Presocratic thinkers; <em>Vorsokratiker</em>). Socrates also famously denounced the value of written words as a <em>shadow</em> of speech, but Plato rejected his teacher&#39;s idea to create works in written sentences on which we can understand Socrates&#39; thought. He also adopted a prose style, not a verse, against the tradition. From the historical viewpoint verse is arguably not the best way of developing an organized thought.</p>

<p>Random thought rarely overflows the limit of a couple of hundreds characters. Writing a lot of toots/tweets is fairly easy because you are not bound to a context. Sticking to the original theme to create the context is a tough task, but without doing so, you cannot make the story. In this regard rethinking your thought is critical because it leads to a concept and helps you to organize concepts into a sequence, which consists of a story. If the sequence of sentences started to appear as if it existed independently without you, the story is getting started to be alive. Your personal appearance in the story is its enemy.</p>

<p>Think to rethink. Write to rewrite. Rethink and rewrite to make a story others can understand. This is the experience which cannot be gotten from current microblogging services.</p>

<p>Copyright © 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See <a href="https://blog.progressiv.dev/yq31akw3jj" rel="nofollow">https://blog.progressiv.dev/yq31akw3jj</a> for copying conditions.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/pin-the-stream-of-thought</guid>
      <pubDate>Tue, 09 Feb 2021 13:18:55 +0000</pubDate>
    </item>
    <item>
      <title>Write.as and WriteFreely, documentation and links</title>
      <link>https://blog.progressiv.dev/suguru/links-to-documentation-of-write-as-and-writefreely</link>
      <description>&lt;![CDATA[This article discusses Write.as and WriteFreely. It also shows you links to their guide pages.&#xA;&#xA;!--more--&#xA;&#xA;Write.as&#xA;&#xA;Write.as is a company founded in 2015. It provides platforms to publish contents in Internet, including its flagship product, Write.as, the same name application as the company. You can host your site with either Free or Pro account. The service is powered by its core applications and WriteFreely.&#xA;&#xA;Write.as Guide: https://guides.write.as/&#xA;  Writing Posts&#xA;  Publishing a blog&#xA;  Customizing Write.as&#xA;  Publicizing Posts&#xA;How to use Write.as: https://howto.write.as/&#xA;  Organization&#xA;  Adding Photos&#xA;  Show an Excerpt&#xA;  Creating a Static Page&#xA;  Creating a draft&#xA;  Enable Federation&#xA;&#xA;WriteFreely&#xA;&#xA;WriteFreely is an open source static site generator, developed at GitHub by Write.as company. It is one of the core applications used on Write.as product. It is possible to run WriteFreely on your server. This case you are expected to manage everything by yourself. You can also create your site on public instances listed here.&#xA;&#xA;https://writefreely.org/&#xA;https://writefreely.org/docs/&#xA;https://blog.writefreely.org/ (hosted on Write.as)&#xA;&#xA;Though almost all of the functions are common between Write.as and WriteFreely, one of the main differences between Write.as Pro and WriteFreely is that you have to find places where you upload images by yourself, as WriteFreely does not include an image uploader or an image management application.&#xA;&#xA;https://guides.write.as/writing/#uploading-photos&#xA;&#xA;  Write.as Pro users can upload photos to Snap.as. Unlike free services such as imgur, Snap.as is developed by us and funded by you — which means your photos will have a lasting, ad-free home on the web&#xA;&#xA;This should not be a big problem if you host your WriteFreely on a server as you just can upload images to it. You would have to use a FTP client or scp / rsync via SSH to upload them. Uploading to Amazon S3 or Tardigrade should work too. &#xA;&#xA;There are other differences such as Email subscription, publishing via Email, cross-posting with Twitter, etc. Please check this page to see what you can get on Write.as Pro account and what you cannot on either Write.as Free account or your WriteFreely instance.&#xA;&#xA;Installation guides:&#xA;https://writefreely.org/start&#xA;https://discuss.write.as/t/slightly-less-simple-install-how-to/303&#xA;&#xA;If you are willing to host a WriteFreely instance with SSL support, I would recommend you to have a look at the latter instruction. Some of the commands seem outdated, so please check the latest information.&#xA;&#xA;#fediverse #writeas #writefreely #guide&#xA;&#xA;Copyright (C) 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See https://blog.progressiv.dev/yq31akw3jj for copying conditions.]]&gt;</description>
      <content:encoded><![CDATA[<p>This article discusses <a href="https://write.as/" rel="nofollow">Write.as</a> and <a href="https://writefreely.org/" rel="nofollow">WriteFreely</a>. It also shows you links to their guide pages.</p>



<h2 id="write-as">Write.as</h2>

<p><a href="https://write.as/about" rel="nofollow">Write.as</a> is a company founded in 2015. It provides platforms to publish contents in Internet, including its flagship product, Write.as, the same name application as the company. You can <a href="https://write.as/start" rel="nofollow">host</a> your site with either Free or Pro account. The service is powered by its core applications and WriteFreely.</p>
<ul><li>Write.as Guide: <a href="https://guides.write.as/" rel="nofollow">https://guides.write.as/</a>
<ul><li><a href="https://guides.write.as/writing/" rel="nofollow">Writing Posts</a></li>
<li><a href="https://guides.write.as/blogging/" rel="nofollow">Publishing a blog</a></li>
<li><a href="https://guides.write.as/customizing/" rel="nofollow">Customizing Write.as</a></li>
<li><a href="https://guides.write.as/publicizing/" rel="nofollow">Publicizing Posts</a></li></ul></li>
<li>How to use Write.as: <a href="https://howto.write.as/" rel="nofollow">https://howto.write.as/</a>
<ul><li><a href="https://howto.write.as/organization" rel="nofollow">Organization</a></li>
<li><a href="https://howto.write.as/adding-photos" rel="nofollow">Adding Photos</a></li>
<li><a href="https://howto.write.as/show-an-excerpt" rel="nofollow">Show an Excerpt</a></li>
<li><a href="https://howto.write.as/creating-a-static-page" rel="nofollow">Creating a Static Page</a></li>
<li><a href="https://howto.write.as/creating-a-draft" rel="nofollow">Creating a draft</a></li>
<li><a href="https://howto.write.as/enabling-federation" rel="nofollow">Enable Federation</a></li></ul></li></ul>

<h2 id="writefreely">WriteFreely</h2>

<p><a href="https://writefreely.org/" rel="nofollow">WriteFreely</a> is an open source static site generator, developed at <a href="https://github.com/writeas/writefreely" rel="nofollow">GitHub</a> by Write.as company. It is one of the core <a href="https://write.as/apps" rel="nofollow">applications</a> used on Write.as product. It is possible to run WriteFreely on your server. This case you are expected to manage everything by yourself. You can also create your site on public instances listed <a href="https://writefreely.org/instances" rel="nofollow">here</a>.</p>
<ul><li><a href="https://writefreely.org/" rel="nofollow">https://writefreely.org/</a></li>
<li><a href="https://writefreely.org/docs/" rel="nofollow">https://writefreely.org/docs/</a></li>
<li><a href="https://blog.writefreely.org/" rel="nofollow">https://blog.writefreely.org/</a> (hosted on Write.as)</li></ul>

<p>Though almost all of the functions are common between Write.as and WriteFreely, one of the main differences between <strong>Write.as Pro</strong> and WriteFreely is that you have to find places where you upload images by yourself, as WriteFreely does not include an image uploader or an image management application.</p>

<p><a href="https://guides.write.as/writing/#uploading-photos" rel="nofollow">https://guides.write.as/writing/#uploading-photos</a></p>

<blockquote><p>Write.as Pro users can upload photos to Snap.as. Unlike free services such as imgur, Snap.as is developed by us and funded by you — which means your photos will have a lasting, ad-free home on the web</p></blockquote>

<p>This should not be a big problem if you host your WriteFreely on a server as you just can upload images to it. You would have to use a FTP client or <a href="https://linuxize.com/post/how-to-use-scp-command-to-securely-transfer-files/" rel="nofollow">scp</a> / <a href="https://linuxize.com/post/how-to-transfer-files-with-rsync-over-ssh/" rel="nofollow">rsync</a> via SSH to upload them. Uploading to Amazon S3 or <a href="https://tardigrade.io/" rel="nofollow">Tardigrade</a> should work too.</p>

<p>There are other differences such as <a href="https://howto.write.as/email-subscription" rel="nofollow">Email subscription</a>, <a href="https://howto.write.as/publish-via-email" rel="nofollow">publishing via Email</a>, <a href="https://howto.write.as/cross-posting-with-twitter" rel="nofollow">cross-posting with Twitter</a>, etc. Please check this <a href="https://write.as/start" rel="nofollow">page</a> to see what you can get on Write.as Pro account and what you cannot on either Write.as Free account or your WriteFreely instance.</p>

<h3 id="installation-guides">Installation guides:</h3>
<ul><li><a href="https://writefreely.org/start" rel="nofollow">https://writefreely.org/start</a></li>
<li><a href="https://discuss.write.as/t/slightly-less-simple-install-how-to/303" rel="nofollow">https://discuss.write.as/t/slightly-less-simple-install-how-to/303</a></li></ul>

<p>If you are willing to host a WriteFreely instance with SSL support, I would recommend you to have a look at the latter instruction. Some of the commands seem outdated, so please check the latest information.</p>

<p><a href="/suguru/tag:fediverse" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">fediverse</span></a> <a href="/suguru/tag:writeas" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">writeas</span></a> <a href="/suguru/tag:writefreely" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">writefreely</span></a> <a href="/suguru/tag:guide" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">guide</span></a></p>

<p>Copyright © 2021 Suguru Hirahara. This work is available under GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See <a href="https://blog.progressiv.dev/yq31akw3jj" rel="nofollow">https://blog.progressiv.dev/yq31akw3jj</a> for copying conditions.</p>
]]></content:encoded>
      <guid>https://blog.progressiv.dev/suguru/links-to-documentation-of-write-as-and-writefreely</guid>
      <pubDate>Thu, 28 Jan 2021 06:24:29 +0000</pubDate>
    </item>
  </channel>
</rss>