<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title></title>
    <description>Writing, thoughts, experiences and perspectives of Abhas Abhinav.</description>
    <link>https://abhas.io</link>
    <atom:link href="https://abhas.io/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Launching the Libre Tech Shop!</title>
        <description>&lt;p&gt;&lt;img src=&quot;/images/2021/lts-card.png&quot; alt=&quot;Libre Tech Shop&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;why&quot;&gt;Why?&lt;/h1&gt;

&lt;p&gt;Lets assume that you’ve been a GNU+Linux and Free Software user for a
very long time. Maybe 15 years. Maybe even more.&lt;/p&gt;

&lt;p&gt;What is the first thing that occurs to you when you encounter a problem?
Or something breaks down? You search, you discuss on mailing lists, you
read source code. Basically, you use all the resources you have the
liberty to use. What you don’t do is accept the problem or dynfunction
or break-down as a norm and build your life around it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/lts-orig.png&quot; alt=&quot;The Original Libre Tech Shop (placeholder) Website&quot; /&gt;&lt;/p&gt;

&lt;p&gt;However, there are also those things that we use on a daily basis and
which don’t provide us this respectful liberty to learn or fix or extend
things. These “things” could be hardware or software or services or
systems. Often, given our constraints of time or patience and so on, we
just cover up these things with a “SEP Field” and go on with our lives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“SEP Fields”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now the “SEP Field” is a fantastic device to use. It enables us to
create blindspots where we would otherwise see problems. By eliminating
the awareness of the problems, we also do away with the itch to solve
them.&lt;/p&gt;

&lt;p&gt;What’s an SEP Field? It was invented by &lt;a href=&quot;https://en.wikipedia.org/wiki/Somebody_else's_problem&quot;&gt;Douglas
Adams&lt;/a&gt; in the book
&lt;em&gt;Life, the Universe and Everything&lt;/em&gt; as a sort of “cloaking device”:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;An SEP is something we can’t see, or don’t see, or our brain doesn’t let us
see, because we think that it’s somebody else’s problem. That’s what SEP
means. Somebody Else’s Problem. The brain just edits it out, it’s like a
blind spot.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;More details on the &lt;a href=&quot;https://hitchhikers.fandom.com/wiki/Somebody_Else%27s_Problem_Field&quot;&gt;H2GT2G Fandom Page&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;what-if&quot;&gt;What if?&lt;/h1&gt;

&lt;p&gt;But what if we did not have to compromise in this manner? What if we
could access products that respected our liberty to hack by default?
What if “someone else” could take away the risk and expense &lt;em&gt;(time +
money + patience)&lt;/em&gt; involved with experimenting and arriving at the
required answers?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/lts-convenience.png&quot; alt=&quot;LTS Delivers Ethical and Hackable Convenience&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Its not that we don’t wish we didn’t have to compromise. Its just that
all the resources (time + opportunity + patience + funds) do not line up
together at the same time.&lt;/p&gt;

&lt;p&gt;That is reasoning I’ve had behind building the “Libre Tech Shop”. A shop
for technology products that are free in the sense of their license
and also free in terms of the opportunity the provide to learn, hack and
do things on our own terms.&lt;/p&gt;

&lt;p&gt;Such products would ship with free software, would not track you and
would not force non-self-hostable and non-free/libre software backend
ecosystems on you. Most importantly, in the spirit of the community,
they would ship with documentation that aims at equiping users to
repair, extend and fix things on their own.&lt;/p&gt;

&lt;h1 id=&quot;so---what-does-it-take&quot;&gt;So - what does it take?&lt;/h1&gt;

&lt;h2 id=&quot;1-the-mostly-harmless-website&quot;&gt;1. The Mostly Harmless website&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/mh.png&quot; alt=&quot;The Mostly Harmless Website&quot; /&gt;&lt;/p&gt;

&lt;p&gt;How do I launch a shop without a product website describing the products
and the work and company behind them?&lt;/p&gt;

&lt;p&gt;I spent about 9 months building the
&lt;a href=&quot;https://mostlyharmless.io&quot;&gt;mostlyharmless.io&lt;/a&gt; website. This time I
chose to write HTML using jekyll instead of using wordpress. And was
very happy with the control and exactness I was able to deliver!&lt;/p&gt;

&lt;h2 id=&quot;2-the-libre-tech-shop&quot;&gt;2. The Libre Tech Shop&lt;/h2&gt;

&lt;p&gt;The center piece - &lt;a href=&quot;https://libretech.shop&quot;&gt;https://libretech.shop&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/lts.png&quot; alt=&quot;The Libre Tech Shop Website&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are many things I’ve tried to achieve with this website:&lt;/p&gt;

&lt;h3 id=&quot;100-librejs-compliance&quot;&gt;100% &lt;a href=&quot;https://www.gnu.org/software/librejs/free-your-javascript.html&quot;&gt;LibreJS Compliance&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/librejs.png&quot; alt=&quot;LibreJS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Additionally - the functionality works fine with Javascript disabled
(and in &lt;a href=&quot;https://www.gnu.org/software/gnuzilla/&quot;&gt;IceCat!&lt;/a&gt;) Doesn’t work
with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;lynx&lt;/code&gt; yet… but it just might, one day.&lt;/p&gt;

&lt;p&gt;While I do have a payment gateway that I can trivially connect to
Woocommerce and put into action, I have deliberately not enabled it
since it requires proprietary Javascript to work. Instead, for now, I’ll
manually send out payment links to customers who want to use a payment
for payments. Otherwise, direct bank transfers are a good and respectful option
by default.&lt;/p&gt;

&lt;h3 id=&quot;prominent-product-properties&quot;&gt;Prominent product properties:&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;product details&lt;/li&gt;
  &lt;li&gt;source code&lt;/li&gt;
  &lt;li&gt;documentation&lt;/li&gt;
  &lt;li&gt;discussion &amp;amp; help&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/lts-properties.png&quot; alt=&quot;Product Properties&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;and-finally---the-freedom-quotient&quot;&gt;And finally - the “Freedom Quotient”&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/fq.png&quot; alt=&quot;The Freedom Quotient&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;3-documentation-for-libre-products&quot;&gt;3. Documentation for Libre Products&lt;/h2&gt;

&lt;p&gt;What’s the point of offering Libre Products without sufficient
documentation? Documentation is the significant half of the ecosystem of
Libre products since it helps create true ownership by way of access to
tools, knowledge and details. It is also a good mark of how repairable a
product is.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.libretech.shop/&quot;&gt;https://docs.libretech.shop/&lt;/a&gt; is where you will find instructions and
documentation for products sold on the Libre Tech Shop.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/docs.png&quot; alt=&quot;Libre Tech Shop Documentation&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;4-source-code-hosting&quot;&gt;4. Source code hosting&lt;/h2&gt;

&lt;p&gt;Source code is hosted using &lt;strong&gt;Gitea&lt;/strong&gt; customised to look prettier.
&lt;a href=&quot;https://sovran.dev/&quot;&gt;https://sovran.dev/&lt;/a&gt; is now the new source code host for all Mostly
Harmless and personal projects.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/source.png&quot; alt=&quot;Source Code&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;5-discussions-and-support&quot;&gt;5. Discussions and Support&lt;/h2&gt;

&lt;p&gt;How does a community of libre product owners connect? Where do they go
to ask questions before making purchasing discussions? How do I address
problems and make the solutions self-documenting?&lt;/p&gt;

&lt;p&gt;I settled on using Discourse for this. I was able to customise Discourse
extensively.&lt;/p&gt;

&lt;p&gt;Check out the result at: &lt;a href=&quot;https://ask.libre.support/&quot;&gt;https://ask.libre.support/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/support.png&quot; alt=&quot;Ask for Libre Support&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ask.libre.support&lt;/code&gt; is a pun. People often used to ask &lt;strong&gt;“if the software
is &lt;em&gt;free&lt;/em&gt; (ie. gratis), why do you charge for support?!”&lt;/strong&gt; Well, lets not
say “free support” anymore. Let say “Libre Support” - ie. Support for
Libre Products offered in the spirit of the free software movement - to
enable you to acquire greater competency and deeper ownership over the
products you “own”.&lt;/p&gt;

&lt;h2 id=&quot;6-the-matrix-channel&quot;&gt;6. The Matrix Channel&lt;/h2&gt;

&lt;p&gt;Finally, I setup Synapse for mostlyharmless.io to build a secure and 
self-hosted group chat room.&lt;/p&gt;

&lt;p&gt;You can join in to ask quick questions (and more) via text chat:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://matrix.to/#/#guide:mostlyharmless.io&quot;&gt;https://matrix.to/#/#guide:mostlyharmless.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/matrix.png&quot; alt=&quot;Matrix Chatroom&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;7-the-request-tracker&quot;&gt;7. The Request Tracker&lt;/h2&gt;

&lt;p&gt;After more than 10 years, I learnt to use &lt;a href=&quot;https://bestpractical.com/request-tracker&quot;&gt;RT (Request
Tracker)&lt;/a&gt; once again. It is
very nice to come back to Perl once again!&lt;/p&gt;

&lt;p&gt;RT tracks emails sent to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;guide@mostlyharmless.io&lt;/code&gt;, emails generated by
form submissions on the websites and orders generated via Woocommerce.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2021/rt.png&quot; alt=&quot;Request Tracker&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now I won’t misplace incoming emails and I will answer them promptly. ;)&lt;/p&gt;

&lt;h1 id=&quot;challenges-and-mishaps&quot;&gt;Challenges… and mishaps.&lt;/h1&gt;

&lt;p&gt;I feel that if what I’m seeking to achieve here is awareness, it would
be grossly incomplete without a listing of the failures. It took me close
to 3 years to actually launch the Libre Tech Shop. These were some of my
challenges:&lt;/p&gt;

&lt;h2 id=&quot;1-lack-of-precedent&quot;&gt;1. Lack of precedent&lt;/h2&gt;

&lt;p&gt;The lazy me will always search for a precedent so that I don’t have to
do all the thinking and all the “doing”. There is a certain comfort in
being a consumer rather a creator.&lt;/p&gt;

&lt;p&gt;When I was searching for a LibreJS compliant shopping website, I found a
few implementations but no guide on how to achieve it. Of course
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;shop.fsf.org&lt;/code&gt; is a great example of Drupal-based e-commerce that is both
elegant and ethical. But - alas! - they’ve not released that piece of
code… (I wonder why?!)&lt;/p&gt;

&lt;p&gt;I did realise (repeatedly) that I will finally have to put in the hard
work. But many times, the scale of the work involved is such a daunting
task in itself. When is there an easy way out?&lt;/p&gt;

&lt;h2 id=&quot;2-elegance&quot;&gt;2. Elegance&lt;/h2&gt;

&lt;p&gt;There are so many e-commerce tools that are free/libre software. Some
are complex, some are ugly, some are simple, some are too tied to hosted
and proprietary backends, some have licensing issues, some are aimed at
large teams and some just require too much work!&lt;/p&gt;

&lt;p&gt;How does one choose? Why does one experiment so much? When I knew that
Wordpress + Woocommerce is “good enough” why was I searching for an
answer with other platforms? Yes - its fun to explore and understand.
But its also frustrating and a non-starter.&lt;/p&gt;

&lt;p&gt;When I look back now, Wordpress + Woocommerce was “just right”. I
could’ve saved so much anguish if I’d understood and appreciated its
strengths early on - instead of taking such a expensive trip to realise
it finally.&lt;/p&gt;

&lt;h2 id=&quot;3-working-alone--staying-motivated&quot;&gt;3. Working alone &amp;amp; staying motivated&lt;/h2&gt;

&lt;p&gt;Mostly Harmless is an OPC (one-person company) - legally and literally.
One of my biggest flaws is that I don’t know how to delegate or work too
well with others. Often working with others is more frustrating and so I
work alone.&lt;/p&gt;

&lt;p&gt;But when you’ve got no one to hold you accountable and there is no
(apparent) cost for delays or for doing / not-doing something, its tough
to remain motivated.&lt;/p&gt;

&lt;p&gt;Will anyone care that the shopping website can work with LibreJS enable
and even with Javascript disabled? What’s the point of putting in so
much effort anyway? What if no one visits or buys a product?&lt;/p&gt;

&lt;p&gt;As I keep telling myself – even if its not worth it, lets just do it
and get it out of the way.&lt;/p&gt;

&lt;p&gt;Otherwise what would be there to show for so much &lt;em&gt;wasted time&lt;/em&gt;?&lt;/p&gt;

&lt;h2 id=&quot;4-building-an-ecosystem---not-just-a-shopping-site&quot;&gt;4. Building an ecosystem - not just a shopping site&lt;/h2&gt;

&lt;p&gt;By the time the libretech.shop website was ready, I realised that I
needed a forum, a email tracker and a group chat… not to mention
self-hosted source code and of course, documentation. Each of these (as
evident above) was a mini project in itself.&lt;/p&gt;

&lt;p&gt;I realise now that that a shopping site without such an ecosystem would
be worthless - since it wouldn’t live up to its purpose of offering
“ethical and hackable products with convenience”.&lt;/p&gt;

&lt;p&gt;The more one wants to offer, the more that one has to do. Trying to
deliver elegance and delight is tough!&lt;/p&gt;

&lt;h2 id=&quot;5-mishaps-and-server-failures&quot;&gt;5. Mishaps and server failures…&lt;/h2&gt;

&lt;p&gt;Finally - what do you do, when a careless server issue wipes your all
your work and “production” source code? And you didn’t have backups?
&lt;em&gt;(Backups are for novices, anyway. And “real” developers code in
production!)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Well - you start again from scratch. One more time. With &lt;em&gt;“worn-out
tools”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I’m glad I didn’t give up. I’m still worried I will.&lt;/p&gt;

&lt;h1 id=&quot;credits&quot;&gt;Credits&lt;/h1&gt;

&lt;p&gt;I’m thankful to a lot of people who have contributed in multiple ways to
help launch all of these websites:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Navdeep Singh&lt;/strong&gt; - who built the first LibreJS compliant prototype for
wordpress + woocommerce and then also learnt enough Ruby to build a
Rails + Solidus prototype! His research and contribution was
invaluable.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Amit, Nishant, Prayas, Nandan and Rohit&lt;/strong&gt; - for supporting the
effort since its inception, for regular testing and constructive
feedback.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;dedication&quot;&gt;Dedication&lt;/h1&gt;

&lt;p&gt;I am sure &lt;a href=&quot;https://rajeevkarwal.blogspot.com/&quot;&gt;Rajeev Karwal&lt;/a&gt; sir
would’ve been proud to see all of this launched finally. I miss his
honest counsel, encouragement and wisdom at this juncture. This effort
is dedicated to his memory.&lt;/p&gt;
</description>
        <pubDate>Sat, 12 Jun 2021 00:00:00 +0530</pubDate>
        <link>https://abhas.io//libretechshop/</link>
        <guid isPermaLink="true">https://abhas.io//libretechshop/</guid>
      </item>
    
      <item>
        <title>IndieWeb - A Primer</title>
        <description>&lt;p&gt;&lt;img src=&quot;/images/indieweb.png&quot; alt=&quot;IndieWeb.org&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“We should all own the content we’re creating, rather than just posting to
third-party content silos. Publish on your own domain, and syndicate out to
silos. This is the basis of the “Indie Web” movement.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I chanced upon the world of IndieWeb and microformats while trying to search
for a system to publish short notes (neuron is something I discovered in this
process). Here is a summary of the research:&lt;/p&gt;

&lt;h2 id=&quot;what-is-the-indieweb&quot;&gt;What is the IndieWeb?&lt;/h2&gt;

&lt;p&gt;The &lt;a href=&quot;https://indieweb.org/&quot;&gt;IndieWeb website and wiki&lt;/a&gt; is very thorough and
detailed. Though a bit difficult to read at first &lt;em&gt;(its full of outbound links
and so requires patience to really get a feel of the while field)&lt;/em&gt;, it is a
great resource.&lt;/p&gt;

&lt;h3 id=&quot;steps-to-get-started-borrowed-from-the-indieweb-wiki&quot;&gt;Steps to get started: &lt;em&gt;(Borrowed from the IndieWeb wiki)&lt;/em&gt;&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.org/Getting_Started#Get_a_personal_domain&quot;&gt;Get a personal
domain&lt;/a&gt;: Builds
identity, makes it easy to search for you.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.org/Getting_Started#Get_a_place_for_your_content&quot;&gt;Find a place to host your
content&lt;/a&gt;:
You can host on a git repo (eg. github, gitlab etc), on a virtual server, a
single-board computer or anywhere else.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.org/Getting_Started#Set_up_your_home_page&quot;&gt;Set up your home
page&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;Mainly: &lt;a href=&quot;https://indieweb.org/How_to_set_up_web_sign-in_on_your_own_domain&quot;&gt;Set up web sign-in on your own domain&lt;/a&gt;
… so that you can use your own identity on the IndieWeb&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.org/Getting_Started#Add_info_about_yourself&quot;&gt;Add info about yourself&lt;/a&gt;: You
can use microformats to add information about yourself so that when someone
mentions you, they get it all in a structured / standard manner.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.org/Getting_Started#Add_links_to_existing_social_media&quot;&gt;Add links to existing social media&lt;/a&gt;:
So that you can cross-post, hyperlink your posts and most importantly, own and
self-host your content and not hold it captive to a 3rd party silo.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.org/Getting_Started#Add_microformats_to_your_content&quot;&gt;Publish content on your domain and add microformats to your
content&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.org/Getting_Started#Syndicate_Elsewhere&quot;&gt;Syndicate your
content&lt;/a&gt;: You can now
post only to your own domain and have that content reach your existing social
media accounts.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;microformats&quot;&gt;&lt;a href=&quot;https://microformats.io/&quot;&gt;Microformats&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;Microformats are a simple way to add more meaning to your HTML.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;http://microformats.org/wiki/Main_Page&quot;&gt;http://microformats.org/wiki/Main_Page&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;tools&quot;&gt;Tools&lt;/h2&gt;

&lt;p&gt;Implementing these steps is a lot of very tough work. Using tools that do these
things makes it simpler.&lt;/p&gt;

&lt;h3 id=&quot;transformative&quot;&gt;&lt;a href=&quot;https://github.com/barryf/transformative&quot;&gt;Transformative&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;IndieWeb personal website software&lt;/li&gt;
  &lt;li&gt;written in Ruby&lt;/li&gt;
  &lt;li&gt;Supports “notes, articles, bookmarks, photos and more”&lt;/li&gt;
  &lt;li&gt;Developed by &lt;a href=&quot;https://barryfrost.com&quot;&gt;Barry Frost&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is one of the best tools I found. You can see it live on the developer’s
website. It handles most things for you so you can focus on the content.&lt;/p&gt;

&lt;h3 id=&quot;microblog&quot;&gt;&lt;a href=&quot;https://micro.blog/&quot;&gt;Micro.blog&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Micro.Blog is unique service that enables you to post to the IndieWeb.
MicroBlogs can be mirrored to our own domains and they provide an interface to
do the posting.&lt;/p&gt;

&lt;p&gt;As an additional feature, &lt;a href=&quot;https://help.micro.blog/2018/activitypub/&quot;&gt;MicroBlog supports
ActivityPub&lt;/a&gt; as well. So while you
post using microformats, you can also federate your content via ActivityPub and
have people follow you from Mastodon, for example.&lt;/p&gt;

&lt;p&gt;They are also writing a &lt;a href=&quot;https://book.micro.blog/&quot;&gt;book about “microblogging”&lt;/a&gt;.
Read &lt;a href=&quot;https://github.com/microdotblog/indie-microblogging&quot;&gt;the drafts here&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Source code: &lt;a href=&quot;https://github.com/microdotblog&quot;&gt;https://github.com/microdotblog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;microblgpub&quot;&gt;&lt;a href=&quot;https://docs.microblog.pub/&quot;&gt;Microblg.pub&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Microblog.pub is unique: It serves ActivityPub primarily but supports the
IndieWeb equally. It is designed as single-user tool and does not use
javascript &lt;strong&gt;ANYWHERE&lt;/strong&gt; (very very unique).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://a4.io/&quot;&gt;https://a4.io/&lt;/a&gt;: The developers’ own MicroBlog.pub instance&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;httpsmicropubrocks&quot;&gt;&lt;a href=&quot;https://micropub.rocks/&quot;&gt;https://micropub.rocks/&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;This website gives you a comparitive report about the status of micropub
implementation status on servers and clients. Good way to discover servers &amp;amp;
clients that you could use!&lt;/p&gt;

&lt;h3 id=&quot;sitewriter&quot;&gt;&lt;a href=&quot;http://sitewriter.net/&quot;&gt;Sitewriter&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Sitewriter is a tool that helps you add IndieWeb services to your static
webite. Check out the documentation, &lt;a href=&quot;http://sitewriter.net/&quot;&gt;service&lt;/a&gt; and
&lt;a href=&quot;https://github.com/gerwitz/sitewriter&quot;&gt;source code&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;bridgy&quot;&gt;&lt;a href=&quot;https://brid.gy/&quot;&gt;Bridgy&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Bridgy is a service (and software) that helps you connect your website to your
social media accounts.&lt;/p&gt;

&lt;h3 id=&quot;quill&quot;&gt;&lt;a href=&quot;https://quill.p3k.io/&quot;&gt;Quill&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Quill is a simple tool that support IndiaAuth and then lets you compose and
make posts to your website.&lt;/p&gt;

&lt;h3 id=&quot;wordpress-with-indieweb&quot;&gt;&lt;a href=&quot;https://wordpress.org/plugins/indieweb/&quot;&gt;Wordpress with IndieWeb&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Wordpress is said to have one of the best and most mature IndieWeb
implementations. If you use Wordpress, check it out.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/indieweb/wordpress-indieweb&quot;&gt;Source Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;indiewebify&quot;&gt;&lt;a href=&quot;https://indiewebify.me/&quot;&gt;IndieWebify&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;This website and tool walks you through the process of IndieWeb-enabling your
website. Its a great way to not just understand the steps involed but also test
out if you have implemented them correctly on your website.&lt;/p&gt;

&lt;h2 id=&quot;lets-try-this-out-together&quot;&gt;Lets try this out together…&lt;/h2&gt;

&lt;p&gt;I am yet to try this out myself… but, at least, now I have some clarity on
what to do and why and what to expect out of that process. So lets try this out
together…&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Screenshot above is from the IndieWeb.org webpage.&lt;/p&gt;
</description>
        <pubDate>Fri, 07 Aug 2020 00:00:00 +0530</pubDate>
        <link>https://abhas.io//indieweb-primer/</link>
        <guid isPermaLink="true">https://abhas.io//indieweb-primer/</guid>
      </item>
    
      <item>
        <title>Why I am a sysadmin</title>
        <description>&lt;p&gt;&lt;img src=&quot;/images/sysadmin.png&quot; alt=&quot;Why I am a Sysadmin&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Foremost - I consider myself to be a sysadmin. More than a “job
description”, its an attitude and value system. And today, on SysAdmin Day, as
a tribute to sysadmins and hackers everywhere, I thought I must share my
perspective about why I am a sysadmin.&lt;/p&gt;

&lt;h2 id=&quot;sysadmin-first-programmer-next&quot;&gt;Sysadmin first, Programmer next&lt;/h2&gt;

&lt;p&gt;Why do you program? To solve a problem. Who defines the problem to you?&lt;/p&gt;

&lt;p&gt;Being a sysadmin is a process of discovering new problems in new
situations. Sometimes, you can solve those problems with quick hacks and
creativity. When you can’t, you write a program.&lt;/p&gt;

&lt;p&gt;Thinking like (and as) a sysadmin enables me to always first assess
existing tools, methods and options. Then when you write code it is to
fill in a gap or extend or fix an existing system.&lt;/p&gt;

&lt;p&gt;For me, thinking as a sysadmin is a way of generating long-term
programming projects. It also enables me to choose more complex
programming projects that depend on servers or services or
infrastructure being in a specific state.&lt;/p&gt;

&lt;h2 id=&quot;an-opportunity-to-know-things&quot;&gt;An opportunity to know things&lt;/h2&gt;

&lt;p&gt;Often focussing just on programming does not give us sufficient exposure
to how things work “under the hood”. A program can also often depend on
a variety of services and understanding how those services work and how
they interact with each other can be integral to how the program is
developed.&lt;/p&gt;

&lt;p&gt;But most importantly, intricate knowledge of how things happen at the
operating system, network, hardware or service is a very important
skill. These insights can help in designing more efficient systems and
programs.&lt;/p&gt;

&lt;h2 id=&quot;laziness-is-a-virtue&quot;&gt;Laziness is a virtue!&lt;/h2&gt;

&lt;p&gt;As a sysadmin (and a programmer) I am lazy. If I set something up and
its working, I rarely want to make changes to it. The same holds true
for a program as well.&lt;/p&gt;

&lt;p&gt;However, the reason such laziness is a virtue is that if you know that
you are going to be lazy in future, you can do two things pro-actively:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;You can build a process that is not costly (in terms of effort) and
which encourages rapid change&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You can foresee issues that might come up and compensate for them
in advance&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;being-a-sysadmin-has-taught-me-a-lot-about-responsibility-accountability-and-collaboration&quot;&gt;Being a sysadmin has taught me a lot about responsibility, accountability and collaboration&lt;/h2&gt;

&lt;p&gt;When I build and operate and maintain services that others use, there
is a lot of responsibility that lies on me. I need to my work
responsibly (can’t do a bad job that doesn’t offer the value a user is
looking for), carefully (ie. I can’t be careless) and quickly (who wants to
wait an inordinate amount of time waiting for a fix).&lt;/p&gt;

&lt;p&gt;I should also hold myself accountable if (or when) I make a mistake that
affects users. I should also build things in a manner that they are easy
to monitor and maintain by others should I be unavailable.&lt;/p&gt;

&lt;p&gt;These are all things I repeatedly learn as I perform my sysadmin roles
at home, at my workplace and for our customers alike. I don’t think
there is a better way to learn these values and practice them on a daily
basis.&lt;/p&gt;

&lt;h2 id=&quot;being-there-takes-a-new-meaning&quot;&gt;“Being There” takes a new meaning&lt;/h2&gt;

&lt;p&gt;Its often said that being a sysadmin is a thankless job. People are
quick to point out when you mess up and don’t want to leave you alone
till you’ve solved their problem.&lt;/p&gt;

&lt;p&gt;Hence, “being there” and available takes a new meaning. There will
always be situations where I might need to do things when there are
other conflicting priorities to deal with.&lt;/p&gt;

&lt;h2 id=&quot;the-delight-of-a-job-well-done&quot;&gt;The delight of a job well done!&lt;/h2&gt;

&lt;p&gt;What is the experience of discovering a system that’s been running for 4
years without requiring a reboot, login or maintenance? … which you
didn’t even know was still online and working and providing a service to
its users?&lt;/p&gt;

&lt;p&gt;The sheer delight of making a discovery of this sort is beyond compare.
It makes the whole process of administering systems so worth it&lt;/p&gt;

&lt;h2 id=&quot;learning-taking-risks-and-building-confidence&quot;&gt;Learning, taking risks and building confidence&lt;/h2&gt;

&lt;p&gt;Doing things, getting my hands “dirty” and seeing them work out is great
learning. Doing such thing repeatedly builds confidence and that gives
me the ability to take risks, make quick decisions and build bold
cross-connections.&lt;/p&gt;

&lt;p&gt;All these things are integral to choosing to be a good sysadmin.&lt;/p&gt;

&lt;h2 id=&quot;i-can-type-fast-&quot;&gt;I can type fast! :)&lt;/h2&gt;

&lt;p&gt;It would be painful to have a command in your head and then be limited
by your ability to only type so fast to see what would come out of
executing it.&lt;/p&gt;

&lt;p&gt;I learnt to touch-type because I took up typing in school. And much
later on, it only helped me become very productive as a sysadmin. More
so with hackable mechanical keyboards.&lt;/p&gt;

&lt;h2 id=&quot;hardware-development-as-a-sysadmin&quot;&gt;Hardware development as a sysadmin&lt;/h2&gt;

&lt;p&gt;I like to think that it is possible to visualise any problem in a
“sysadmin manner”. I imagine hardware development that way. Knowledge of
how to connect systems together can help build hardware that works and
connects in creative ways.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(How about running a web-server on a micro-controller so that Prometheus
can scrape its sensors’ values and show them to you on a Grafana
dashboard?)&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;thinking-in-pipes&quot;&gt;Thinking in pipes&lt;/h2&gt;

&lt;p&gt;I often think in “pipes”. Pipes are an excellent way to do quick hacks
on the command-line. And if you can extend that value system a bit
further, you can connect things in disparate ways without having to
over-engineer them or re-invent the wheel.&lt;/p&gt;

&lt;h2 id=&quot;getting-the-computer-to-work-for-you&quot;&gt;Getting the computer to work for you…&lt;/h2&gt;

&lt;p&gt;… as compared to us doing something ourselves. Often, our methods of
choosing to do things are not optimized for using the power of a
computer to our advantage. We do too much manual labour because
automating something on a computer is tedious job.&lt;/p&gt;

&lt;p&gt;One thing being a sysadmin has taught me is about the power of
automation. If I can get the computer to do something and do it again
and again, it definitely isn’t going to get fed-up or tired. On the
other hand, unless I did that I would be using my own time in the most
sub-optimal manner.&lt;/p&gt;

&lt;p&gt;Understanding an operating system or a network or a system well enough
to use all of its power in our favour is an excellent sysadmin skill.
And I am fortunate to have had the opportunity to examine this value the
hard way – by making mistakes. Very tedious ones at times!&lt;/p&gt;

&lt;h2 id=&quot;my-powerpack-gnu--debian--vim--ssh--bash--ansible--docker&quot;&gt;My powerpack: GNU + Debian + vim + SSH + Bash + Ansible + Docker&lt;/h2&gt;

&lt;p&gt;I don’t like monolithic systems because they go against the “unix”
philosophy of one little tool doing one thing well. (I’m talking about
systemd here, of course!)&lt;/p&gt;

&lt;p&gt;A combination of GNU utilities, Debian, vim, ssh and bash form the most
important tools that I can ever need to get work done. And now ansible
and docker complete the power-pack to provide the elements I’d been
missing. I believe that knowing just these tools well is sufficient to
handle any sysadmin task effectively. Just these.&lt;/p&gt;

&lt;h2 id=&quot;its-a-practice---it-needs-practice&quot;&gt;Its a practice - it needs practice&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://the-sysadmin-book.com/&quot;&gt;“The Practice of System and Network Administration”&lt;/a&gt; is an iconic book
that I discovered quite some time back. When I discovered it and read
it, I realised that it contained every bit of information and set of
practices that a sysadmin would ever need. Not just technical skills,
but the book could also teach us so many non-technical skills that are
essential in our sysadmin lives.&lt;/p&gt;

&lt;p&gt;Among most bits of advice that stood out, three things stood out for me:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;the authors chose to look at sysadmin work as a practice - like what
a doctor would do!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;their advice on fixing each problem just once is my personal ethic
for building automation and productising sysadmin work&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;their chapter on time-management was a gem - being to “get things
done” and remaining productive are essential traits and
time-management plays no small part in that&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Like with all other practices (badminton or medicine, for example), the
practice of being a sysadmin also needs practice. Its not a designation
one earns solely out of getting hired or promoted or delegated. Being a
practicioner is what matters - without practical, actionable skills and
knowledge, I couldn’t have been a sysadmin at all.&lt;/p&gt;

&lt;h2 id=&quot;with-the-detachment-of-a-doctor-and-the-empathy-of-a-nurse&quot;&gt;With the detachment of a doctor and the empathy of a nurse…&lt;/h2&gt;

&lt;p&gt;Finally, I feel, being a sysadmin has helped me develop greater empathy
for users of any system I build. Excelling at building systems that
people like to use and which solve their problems is great fun. However,
at the same time one can not sacrifice stoic objectivity and pragmatism.&lt;/p&gt;

&lt;p&gt;Being a sysadmin is a healthy mix of both.&lt;/p&gt;

&lt;h2 id=&quot;strength-of-a-community-and-aspiring-to-contribute-back&quot;&gt;Strength of a community and aspiring to contribute back…&lt;/h2&gt;

&lt;p&gt;I can not do justice to a subject as critical as system administration
without talking about what it means to be a part of a community. I am
glad that sysadmins love to share what they build. And when sysadmins
write software to solve problems, its fascinating to learn about how to
build little bits that do a significant job.&lt;/p&gt;

&lt;p&gt;Unless everyone could share and collaborate and help each other, it
would be impossible to learn. I learn not just from forum posts where
someone might have got a solution for exactly the same error I’m facing.
When sysadmins write documentation or books, create automation tools,
package software or get it to inter-operate, there are many more ways to
learn from.&lt;/p&gt;

</description>
        <pubDate>Fri, 31 Jul 2020 00:00:00 +0530</pubDate>
        <link>https://abhas.io//sysadmin/</link>
        <guid isPermaLink="true">https://abhas.io//sysadmin/</guid>
      </item>
    
      <item>
        <title>Building smart hardware that respects users' freedom</title>
        <description>&lt;p&gt;&lt;img src=&quot;/images/2019/02/at-the-iot-show.jpg&quot; alt=&quot;at-the-iot-show&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;talk-slides&quot;&gt;Talk Slides&lt;/h1&gt;

&lt;p&gt;The PDF slides that I used for my talk are &lt;a href=&quot;https://cloud.abhas.io/s/JQr4EEaEMRoAb7t/download&quot;&gt;available for
download&lt;/a&gt;. Or
you can &lt;a href=&quot;https://cloud.abhas.io/s/JQr4EEaEMRoAb7t#pdfviewer&quot;&gt;preview them online as
well&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Or you can also view these as a &lt;a href=&quot;https://cloud.abhas.io/apps/gallery/s/r5jKPbLFnJ3ZxCx#&quot;&gt;JPEG slideshow of
images&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;tutorial-slides&quot;&gt;Tutorial Slides&lt;/h1&gt;

&lt;p&gt;I also presented a tutorial and live demo of a how to build an IoT
solution without using proprietary software. You can either &lt;a href=&quot;ttps://cloud.abhas.io/s/fNqdMGsb5ZXFEcQ/download&quot;&gt;download the
slides&lt;/a&gt; or &lt;a href=&quot;https://cloud.abhas.io/s/fNqdMGsb5ZXFEcQ&quot;&gt;view them in your
browser&lt;/a&gt; itself.&lt;/p&gt;

&lt;p&gt;Or, you can view them as a &lt;a href=&quot;https://cloud.abhas.io/apps/gallery/s/j92Y9JX7nQtEi4X#&quot;&gt;JPEG slideshow of
images&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;more-to-come&quot;&gt;More to come!&lt;/h1&gt;

&lt;p&gt;I will add some more commentry on this topic in a few days time. Please
do visit again.&lt;/p&gt;
</description>
        <pubDate>Wed, 27 Feb 2019 00:00:00 +0530</pubDate>
        <link>https://abhas.io//iotshow-talk-slides/</link>
        <guid isPermaLink="true">https://abhas.io//iotshow-talk-slides/</guid>
      </item>
    
      <item>
        <title>What should you do after attending a talk by RMS?</title>
        <description>&lt;p&gt;&lt;img src=&quot;/images/2019/01/after-rms-talk.png&quot; alt=&quot;after-rms-talk&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my personal opinion, it is meaningless if we attend an inspiring talk
by Dr Richard Stallman today and are not able to reflect on his message
and act on it.&lt;/p&gt;

&lt;p&gt;Here is a small set of things that you &lt;strong&gt;can&lt;/strong&gt; do. There is no timeline.
But please see which of them are relevant to you.&lt;/p&gt;

&lt;p&gt;A few months back, I wrote about how we can &lt;a href=&quot;/free-software-involvement/&quot;&gt;personalise and deepen our
involvement with free software&lt;/a&gt;. Consider
those points in addition to what I’ve outlined below.&lt;/p&gt;

&lt;h2 id=&quot;write-about-it&quot;&gt;Write about it&lt;/h2&gt;

&lt;p&gt;The first thing to do would be write about the experience, what you
learnt, what you agree with or disagree with (and why) and so on.&lt;/p&gt;

&lt;p&gt;Writing about this will enable you to record your opinions and also
share them with others. Later, if your perspectives change, you can
revisit this writing and reflect on what has changed and why.&lt;/p&gt;

&lt;h2 id=&quot;ask-questions--seek-help&quot;&gt;Ask questions &amp;amp; Seek help&lt;/h2&gt;

&lt;p&gt;If you did not ask questions after the talk or didn’t get a chance to,
then you can still ask questions. There are multiple forums where you
can ask these questions.&lt;/p&gt;

&lt;p&gt;Similarly, if there is a conceptual, philosophical, technical or social
issue that you feel you need to seek help about, then do reach out.&lt;/p&gt;

&lt;h2 id=&quot;audit-and-review-your-own-software-usage&quot;&gt;Audit and review your own software usage&lt;/h2&gt;

&lt;p&gt;An easy thing to act upon and do is to audit and review your software
and technology usage and then change it based on learning that you’ve
drawn from Dr Stallman’s talk.&lt;/p&gt;

&lt;h3 id=&quot;desktop-and-laptop&quot;&gt;Desktop and Laptop&lt;/h3&gt;

&lt;p&gt;The quickest and most impactful thing you can do is use Free Software
and GNU/Linux on your desktop or laptop computer. A good way to do that
would be to install &lt;a href=&quot;https://debian.org&quot;&gt;Debian GNU/Linux&lt;/a&gt; or
&lt;a href=&quot;https://pureos.net&quot;&gt;PureOS&lt;/a&gt; on your computer.&lt;/p&gt;

&lt;h3 id=&quot;servers&quot;&gt;Servers&lt;/h3&gt;

&lt;p&gt;Do you know about what software you run on your servers? What if the
operating system and software you ran on your servers was GNU/Linux?
What if you could power the services that you run on your server with
Free Software?&lt;/p&gt;

&lt;h3 id=&quot;services&quot;&gt;Services&lt;/h3&gt;

&lt;p&gt;All the software that affects our lives does not run on computers within our
control. Much of it runs on other people’s computers (often termed as
“cloud”) while some of it is only accessible as a service.&lt;/p&gt;

&lt;p&gt;Service offered as a Software Substitute (SaSS) is a way for proprietary
software developers to offer the value of the software but not the
software itself. This is just another form of proprietary software that
robs you of your essential freedom to use, study, change and
redistribute the software.&lt;/p&gt;

&lt;p&gt;Review your use of such services and see how you can substitute them
with self-hosted and free software services.&lt;/p&gt;

&lt;h3 id=&quot;mobile-devices&quot;&gt;Mobile Devices&lt;/h3&gt;

&lt;p&gt;Operating systems on mobile devices are another form of proprietary
software. As are the applications which run on these operating systems.&lt;/p&gt;

&lt;p&gt;These proprietary software applications are more invasive since the
mobile phones are with us all the time and they have multiple types of
sensors that can track our location among other things.&lt;/p&gt;

&lt;p&gt;Using free software on mobile devices is not only a way to have your
freedom but also protect your privacy.&lt;/p&gt;

&lt;h3 id=&quot;proprietary-software-on-gnulinux&quot;&gt;Proprietary Software on GNU/Linux&lt;/h3&gt;

&lt;p&gt;It is possible to run proprietary software on GNU/Linux as well. Many
times we don’t even realise that we are using proprietary software on
GNU/Linux.&lt;/p&gt;

&lt;p&gt;Check if there are any such cases in your daily software usage and then
replace them so that you can have more consistency between your beliefs
and your actual technology usage.&lt;/p&gt;

&lt;h2 id=&quot;tell-at-least-3-others-about-it&quot;&gt;Tell at least 3 others about it&lt;/h2&gt;

&lt;p&gt;If you learnt something useful and valuable in the talk, why not tell at
least 3 others about it? And then point them to other resources where
they can learn a lot more?&lt;/p&gt;

&lt;h2 id=&quot;you-can-contribute-further&quot;&gt;You can contribute further!&lt;/h2&gt;

&lt;h3 id=&quot;release-software&quot;&gt;Release software&lt;/h3&gt;

&lt;p&gt;Are you a programmer? Do you build software?&lt;/p&gt;

&lt;p&gt;Consider releasing it under a free software license - preferably a
strong copyleft license like the GPLv3.&lt;/p&gt;

&lt;h3 id=&quot;participate&quot;&gt;Participate&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Help others discover, adopt and appreciate free software&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Write or translate documentation&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Write tutorials about something you’ve done or figured out&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Give talks&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Build a local community and free software user’s group&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;support--donate&quot;&gt;Support &amp;amp; Donate&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Many volunteer free software projects accept donations today. See if
  the free software project you love accepts donations. Then donate
  to the project or to individual developers who contribute to it.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Donate to the Free Software Foundation - your contributions are
  the most important manner in which FSF finances its operations,
  pays staff salaries and continues to advocate for software
  freedom.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Donate to other non-profit organisations such as the Software
  Freedom Conservancy as a way of indirectly supporting some of the
  biggest free software projects they help and contribute to.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;reach-out&quot;&gt;Reach out&lt;/h2&gt;

&lt;p&gt;I would personally be glad to help you in your journey to use, promote,
release and support free software. Please feel free to &lt;a href=&quot;mailto:abhas@deeproot.in&quot;&gt;get in
touch&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;small&gt; Photo credit: Prof Renuka Prasad B from RV College of
Engineering.&lt;/small&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 18 Jan 2019 00:00:00 +0530</pubDate>
        <link>https://abhas.io//after-rms-talk/</link>
        <guid isPermaLink="true">https://abhas.io//after-rms-talk/</guid>
      </item>
    
      <item>
        <title>Student Projects - January 2019</title>
        <description>&lt;h2 id=&quot;overview&quot;&gt;Overview&lt;/h2&gt;

&lt;p&gt;Here are some free software projects that students can work on. I expect
that multiple students will work on the same project but with different
approaches.&lt;/p&gt;

&lt;p&gt;Some of these project are research and documentation projects (tagged:
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;research&lt;/code&gt;) while others are development and documentation projects
(tagged: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;development&lt;/code&gt;).&lt;/p&gt;

&lt;h2 id=&quot;modalities&quot;&gt;Modalities&lt;/h2&gt;

&lt;p&gt;These projects are only meaningful if we do them in the &lt;em&gt;right way&lt;/em&gt;.
Here are some modalities for these projects if you choose to work on
them with me:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The projects should only be done on a GNU/Linux operating system and
  without the use any proprietary software&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;All projects will require regular reporting so that we can review
  work on time and ensure that you are progressing in the right
  direction.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You should be ready to learn a lot - I will help you define the
  learning goals and the research, documentation, note-taking and
  outlining techniques that could be useful.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The version control system we will use is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git&lt;/code&gt;. This will be backed
  by a private and self-hosted project management system, bug
  tracking system, CI system and wiki.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Documentation would need to be written using markdown and will also
  use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git&lt;/code&gt; as a storage and collaboration backend.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You can chat with me via
  &lt;a href=&quot;https://matrix.org&quot;&gt;Matrix&lt;/a&gt;/&lt;a href=&quot;https://riot.im&quot;&gt;Riot.im&lt;/a&gt; in case
  you need to use instant messaging. Otherwise, email and the
  project management system should be sufficient for discussions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Any mobile applications that we develop for Free-Android will not
  depend on any proprietary software or service and will also be
  licensed as free software. Study the requirements for publishing
  software in the &lt;a href=&quot;https://f-droid.org&quot;&gt;F-Droid&lt;/a&gt; repository and use
  that while building your software.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;web-applications&quot;&gt;Web Applications&lt;/h2&gt;

&lt;h3 id=&quot;themes-for-starli&quot;&gt;Themes for Starli&lt;/h3&gt;

&lt;h4 id=&quot;about&quot;&gt;About&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/shaarli/Shaarli&quot;&gt;Shaarli&lt;/a&gt; is a self-hosted
bookmarking tool. It helps you store your bookmarks on your own server
and annotate and share them publicly (if you wish).&lt;/p&gt;

&lt;h4 id=&quot;why&quot;&gt;Why?&lt;/h4&gt;

&lt;p&gt;The default and available themes by the Shaarli community are not
&lt;em&gt;minimal&lt;/em&gt; enough!&lt;/p&gt;

&lt;h4 id=&quot;what--how&quot;&gt;What? &amp;amp; How?&lt;/h4&gt;

&lt;p&gt;We need to build two sorts of CSS themes for Shaarli:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;A &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;minimal&lt;/code&gt; theme - similar to the way emails are listed in a mail
  client&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dark&lt;/code&gt; theme - which uses white text on a dark background - again
  listing the links in a manner similar to how mails are listed in a
  mail client&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;simple-ci-system-for-gitea&quot;&gt;Simple CI system for gitea&lt;/h3&gt;

&lt;h4 id=&quot;about-1&quot;&gt;About&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://gitea.io/&quot;&gt;Gitea&lt;/a&gt; is a web-based git version control system.&lt;/p&gt;

&lt;h4 id=&quot;why-1&quot;&gt;Why?&lt;/h4&gt;

&lt;p&gt;Unlike &lt;em&gt;full-blown&lt;/em&gt; version control systems like Gitlab, Gitea does not
have an integrated Continuous Integration (CI) system. It however has
support for other third-party systems such as Drone CI and others.&lt;/p&gt;

&lt;h4 id=&quot;what&quot;&gt;What?&lt;/h4&gt;

&lt;p&gt;Here is what we will do as a part of this project:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Understand how webhooks work with Gitea&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Integrate a CI system with Gitea that will run a CI pipeline on
  every git push&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Document how to integrate a CI system with Gitea&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Package and release a set of Docker containers that can be deployed
  and shared easily&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;patch-for-gitea-to-customise-front-page&quot;&gt;Patch for gitea to customise front page&lt;/h3&gt;

&lt;h4 id=&quot;what-1&quot;&gt;What?&lt;/h4&gt;

&lt;p&gt;Gitea has a default front page that explains its features.&lt;/p&gt;

&lt;p&gt;As a part of this project, we will develop a patch for Gitea that will
enable a Gitea admin to replace this front-page with a statically
generated website pointed to by a configuration line.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;static-site-hosting-for-gitea&quot;&gt;Static site hosting for gitea&lt;/h3&gt;

&lt;h4 id=&quot;what-2&quot;&gt;What?&lt;/h4&gt;

&lt;p&gt;Make it possible to use Gitea along with a CI system to deploy static
websites on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git push&lt;/code&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;wordpress-libre-development&quot;&gt;Wordpress-libre development&lt;/h3&gt;

&lt;h4 id=&quot;about-2&quot;&gt;About&lt;/h4&gt;

&lt;p&gt;Wordpress is a very popular content management system (CMS) and blogging
engine.&lt;/p&gt;

&lt;h4 id=&quot;why-2&quot;&gt;Why?&lt;/h4&gt;

&lt;p&gt;There are multiple problems with Wordpress and its plugin ecosystem
today. Primary among them is the way Javasript code is loaded and used
across a website.&lt;/p&gt;

&lt;h4 id=&quot;what-3&quot;&gt;What?&lt;/h4&gt;

&lt;p&gt;We will modify the Wordpress source code and that of major and useful
plugins to achieve the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;All javascript and CSS should be loaded locally and not from a CDN.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;All &lt;em&gt;non-trivial&lt;/em&gt; javascript should be
&lt;a href=&quot;https://www.gnu.org/software/librejs/&quot;&gt;LibreJs&lt;/a&gt; compliant.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;It should be possible to take stock of the licensing of all the
components that affect a single Wordpress instance.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;jekyll---rails-shopping-cart-integration&quot;&gt;Jekyll - Rails shopping cart integration&lt;/h3&gt;

&lt;h4 id=&quot;about-3&quot;&gt;About&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; is a static site generator written in
Ruby.&lt;/p&gt;

&lt;h4 id=&quot;what-4&quot;&gt;What?&lt;/h4&gt;

&lt;p&gt;Make it possible to integrate a static Jekyll website with a (Ruby on)
Rails shopping cart engine. Specifically, we are looking at integrating
the &lt;a href=&quot;https://github.com/solidusio/solidus&quot;&gt;Solidus&lt;/a&gt; shopping cart with
Jekyll.&lt;/p&gt;

&lt;h4 id=&quot;how&quot;&gt;How?&lt;/h4&gt;

&lt;p&gt;The final result should enable a developer (or user) to put in some
simple Liquid tags onto any jekyll page to connect and embed a shopping
cart with it.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;jekyll-podcast-framework&quot;&gt;Jekyll podcast framework&lt;/h3&gt;

&lt;p&gt;It should be trivial to use Jekyll to publish a podcast, make sure the
podcast website can be viewed without using javascript, to customise the
looks of the website and finally, to publish it RSS feed.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;osem-conference-management-system&quot;&gt;OSEM conference management system&lt;/h3&gt;

&lt;p&gt;Package and document the &lt;a href=&quot;https://osem.io&quot;&gt;OSEM conference management
system&lt;/a&gt; so that it is easy to use and effective for
running the cPf for a conference related to free software.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;self-hosted-audio-conferencing-recording-and-interview-system&quot;&gt;Self-hosted audio conferencing, recording and interview system&lt;/h3&gt;

&lt;p&gt;How does one use self-hosted free software to interview someone over the
Internet and also record the conversation? What if there are multiple
people in an audio conference?&lt;/p&gt;

&lt;p&gt;Setup, document and package an effective way of doing this.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;extensible-and-customisable-email-signup-form&quot;&gt;Extensible and customisable email signup form&lt;/h3&gt;

&lt;p&gt;Build a framework to build an embeddable email sign-up form that can
work standalone or with a static website. It should be possible to code
the form using a simple text based definition language and without
having to write custom HTML or configure or customize a database.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;markdown-newsletter-submission-system&quot;&gt;Markdown newsletter submission system&lt;/h3&gt;

&lt;p&gt;Build a Jekyll-based newsletter submission system that can be used to
send a newsletter to an email list by just writing and publishing a new
jekyll post.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;coreboot&quot;&gt;Coreboot&lt;/h2&gt;

&lt;h3 id=&quot;skulls-derived-coreboot-distribution-for-x220-and-x200&quot;&gt;Skulls-derived Coreboot distribution for X220 and X200&lt;/h3&gt;

&lt;p&gt;Build, test, package, document and release a
&lt;a href=&quot;http://github.com/merge/skulls&quot;&gt;Skulls&lt;/a&gt;-based or like Coreboot
distribution for the X220, X200 and X201 Thinkpad laptops.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;custom-logo-integration-into-coreboot&quot;&gt;Custom logo integration into coreboot&lt;/h3&gt;

&lt;p&gt;Build, test, package, document and release a set of scripts (+ docker
container) to embed a custom image or graphic for use with Coreboot
during the boot phase of the computer.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;x200t-libreboot-flashing-success&quot;&gt;X200T Libreboot flashing success&lt;/h3&gt;

&lt;p&gt;The X200T uses a very different type of BIOS chip which makes it very
challenging to flash coreboot onto it. Document and package the process
of running Libreboot and Coreboot on the X200T laptop.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;heads-integration-validation-and-documentation-with-x230&quot;&gt;Heads integration, validation and documentation with X230&lt;/h3&gt;

&lt;p&gt;While Heads works well on the X230, documentation and packaging are
required so that users can use it easily and effectively.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;chromebook-coreboot-distribution&quot;&gt;Chromebook Coreboot distribution&lt;/h3&gt;

&lt;p&gt;Many Intel-based chromebooks (our development efforts will revolve
around &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;falco&lt;/code&gt;) can run Coreboot by default. Build, package, document
and release a Coreboot distribution for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;falco&lt;/code&gt; chromebook.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;hardware-boards-and-iot&quot;&gt;Hardware Boards and IoT&lt;/h2&gt;

&lt;h3 id=&quot;documentation-for-bus-pirate-v2-and-v3&quot;&gt;Documentation for Bus Pirate v2 and v3&lt;/h3&gt;

&lt;h4 id=&quot;about-4&quot;&gt;About&lt;/h4&gt;

&lt;p&gt;The &lt;a href=&quot;http://dangerousprototypes.com/docs/Bus_Pirate&quot;&gt;Bus Pirate&lt;/a&gt; is a
mult-tool that talks to electronic stuff. One great use for the Bus
Pirate is to flash BIOS chips on a motherboard over the SPI bus.&lt;/p&gt;

&lt;h4 id=&quot;what-5&quot;&gt;What?&lt;/h4&gt;

&lt;p&gt;We need to test and release documentation that will enable anyone to use
the Bus Pirate to (at least) flash BIOS chips with Coreboot.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;testing-and-documentation-for-numato-opsis&quot;&gt;Testing and documentation for Numato Opsis&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;https://hdmi2usb.tv/numato-opsis/&quot;&gt;Numato Opsis&lt;/a&gt; is a HDMI2USB
board that can be used to mix, capture and stream video from multiple
sources.&lt;/p&gt;

&lt;p&gt;We need to test and document simple, yet reliable ways of using the
Numato Opsis to (primarily) record and stream free software events and
conferences. This will take the guesswork and complexity out of using
the Opsis board and it will become a default way to do such recording
and streaming.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;rock64-u-boot-network-boot&quot;&gt;Rock64 u-boot network boot&lt;/h3&gt;

&lt;p&gt;The Rock64 SBC from Pine64 has a SPI flash which runs u-boot. This is a
unique feature of this board and because of this we can get it run in a
diskless manner and boot off the network.&lt;/p&gt;

&lt;p&gt;Test, package, document and release a reliable method to boot the rock64
off the network.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;vim-arduino-ide&quot;&gt;vim-arduino IDE&lt;/h3&gt;

&lt;p&gt;Build a vim plugin to enable vim to act as an Arduino IDE to program
microcontrollers.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;vim-micropython-ide&quot;&gt;vim-micropython IDE&lt;/h3&gt;

&lt;p&gt;Build a vim plugin to enable vim to act as a micropython IDE for rapid
development.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;documentation-for-padi&quot;&gt;Documentation for PADI&lt;/h3&gt;

&lt;p&gt;PADI is an inexpensive wireless microcontroller from Pine64. It can run
FreeRTOS among other firmware.&lt;/p&gt;

&lt;p&gt;Write documentation and examples on how to use PADI for common tasks in
place of other wireless microcontrollers.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;padi-with-relay--rgb-led--mqtt-client-support&quot;&gt;PADI with relay + RGB LED + MQTT client support&lt;/h3&gt;

&lt;p&gt;Use the PADI microcontroller to build a wifi power switch.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;freertos--micropython-packaging&quot;&gt;FreeRTOS + micropython packaging&lt;/h3&gt;

&lt;p&gt;Package a custom distribution of FreeRTOS with micropython for various
microcontrollers.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;freertos--esp32&quot;&gt;FreeRTOS + esp32&lt;/h3&gt;

&lt;p&gt;Package a toolchain and development environment to run FreeRTOS on the
ESP32 microcontroller.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;document-proprietary-software-in-each-sbc-os-distribution&quot;&gt;Document proprietary software in each SBC OS distribution&lt;/h3&gt;

&lt;p&gt;The operating system images of almost all single-board computers contain
proprietary software. Study the OS images of the Raspberry Pi, Orange
Pi, Odroid, Rock64 and Nano Pi boards to document which parts of these
images are proprietary software.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;application-software--solutions&quot;&gt;Application Software &amp;amp; Solutions&lt;/h2&gt;

&lt;h3 id=&quot;webinar-demo-and-documentation-using-openmeetings&quot;&gt;Webinar demo and documentation using openmeetings&lt;/h3&gt;

&lt;p&gt;Evaluate if it is possible to use Apache OpenMeetings for Webinars. This
will ensure that people don’t have to use proprietary software for
running their webinars.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;self-hosted-video-streaming&quot;&gt;Self-hosted video streaming&lt;/h3&gt;

&lt;p&gt;How do we stream a talk or lecture to the Internet using commodity
hardware? Build, document and package a self-hosted solution for doing
that.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;jitsi-meet-with-login-and-no-public-registration&quot;&gt;Jitsi Meet with login and no public registration&lt;/h3&gt;

&lt;p&gt;Jitsi Meet is a very useful free software tool for video conferencing
and desktop sharing. However, the default way it is packaged is a “demo”
and it allows anyone to use it publicly.&lt;/p&gt;

&lt;p&gt;We need to build a wrapper application around Jitsi Meet so that it can
be self-hosted easily and used for video conferencing and desktop
sharing securely and privately.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;telecom--voip&quot;&gt;Telecom &amp;amp; VoIP&lt;/h2&gt;

&lt;h3 id=&quot;container-distribution-for-compiling-freepbx-dependencies&quot;&gt;Container distribution for compiling FreePBX dependencies&lt;/h3&gt;

&lt;p&gt;Compiling and getting FreePBX to run can be very frustrating because it
not only does it have complex (and many times, undocumented)
dependencies but also multiple steps that have to be executed carefully.&lt;/p&gt;

&lt;p&gt;By building a container distribution for FreePBX, we can compile
wanpipe, freetdm, dahdi and freepbx in a simple and reproducible manner.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;desktop-applications&quot;&gt;Desktop Applications&lt;/h2&gt;

&lt;h3 id=&quot;basic-web-browser-using-gecko--quantum&quot;&gt;Basic web-browser using Gecko / Quantum&lt;/h3&gt;

&lt;p&gt;It should be possible to use the Firefox engine to build mini
web-browsers. This project will explain, document and automate this
process of build Gecko / Quantum based web-browsers.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;electron-like-desktop-apps-using-gecko--quantum&quot;&gt;Electron-like desktop apps using Gecko / Quantum&lt;/h3&gt;

&lt;p&gt;Similarly, desktop applications which are browser-based should NOT only be
powered by Webkit or chromium. We should be able to build such
frameworks and application using Gecko and Quantum as well.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;mobile-applications&quot;&gt;Mobile Applications&lt;/h2&gt;

&lt;h3 id=&quot;mobile-application-for-openwrt&quot;&gt;Mobile application for OpenWRT&lt;/h3&gt;

&lt;p&gt;Build a free software mobile application for Free-Android that can be
used to control an OpenWRT device over RPC.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;mobile-application-for-openhab--home-assistant&quot;&gt;Mobile application for OpenHAB &amp;amp; home-assistant&lt;/h3&gt;

&lt;p&gt;While both OpenHAB and Home Assistant have very easy-to-use and free
software mobile applications, it would be good to build a custom
application which exposes a limited set of features and makes these
systems more usable.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;mobile-application-for-mqtt-native&quot;&gt;Mobile application for MQTT native&lt;/h3&gt;

&lt;p&gt;Build a mobile application that can natively talk to a MQTT server for
managing a self-hosted IoT installation.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;system-software&quot;&gt;System Software&lt;/h2&gt;

&lt;h3 id=&quot;dnssec-with-tinydns&quot;&gt;DNSSEC with tinydns&lt;/h3&gt;

&lt;p&gt;Build documentation and package software to get tinydns to work with
DNSSEC.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;git-push-based-tinydns-management&quot;&gt;Git Push-based tinydns management&lt;/h3&gt;

&lt;p&gt;Build a text-based database format to version control DNS records over
git and publish them via tinydns.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;extend-tinydnsin-management-app-to-latest-rails-and-rest-api&quot;&gt;Extend tinydns.in management app to latest Rails and REST API&lt;/h3&gt;

&lt;p&gt;We have a rather old Rails application to manage DNS records for
tinydns. It should be re-written using the latest release of Rails and
so that it also exposes a REST API&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;test-out-package-and-document-dovecot-full-text-search-fts&quot;&gt;Test out, package and document dovecot full text search (fts)&lt;/h3&gt;

&lt;p&gt;Dovecot is an IMAP server that can also act as a deliver agent among
other things. In conjugation with a search engine, it can index a
mailbox and enable full text search for it.&lt;/p&gt;

&lt;p&gt;Build, document and package the full text search capabilities of
Dovecot.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;integrate-document-and-package-kerberos-with-openldap&quot;&gt;Integrate, document and package Kerberos with OpenLDAP&lt;/h3&gt;

&lt;p&gt;Integrate, document and package Kerberos so that it can be used along
with Append for single sign-on in a GNU/Linux network.&lt;/p&gt;
</description>
        <pubDate>Wed, 16 Jan 2019 00:00:00 +0530</pubDate>
        <link>https://abhas.io//student-projects/</link>
        <guid isPermaLink="true">https://abhas.io//student-projects/</guid>
      </item>
    
      <item>
        <title>OSFY - Open Journey: Software Freedom can lead to self-reliance!</title>
        <description>&lt;p&gt;&lt;img src=&quot;https://abhas.io/images/2019/01/osfy.png&quot; alt=&quot;osfy-photo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I thought, instead of just mentioning about the coverage, if I could
offer some more details and clarification and share the experience,
maybe that might be of greater value.&lt;/p&gt;

&lt;h2 id=&quot;open-source-for-you-osfy---january-2019-issue&quot;&gt;Open Source For You (OSFY) - January 2019 issue&lt;/h2&gt;

&lt;p&gt;Here is a &lt;a href=&quot;http://lfymag.com/currentissue.asp?id=13&quot;&gt;link to the ToC&lt;/a&gt; of
the Jan 2019 issue of the OSFY magazine. I will link to the actual
article once it is posted on the main website - maybe in a month or so.&lt;/p&gt;

&lt;p&gt;Please do purchase the issue if you want to read this article. If you
are not able to find a copy easily, do mail me and I will find a copy
and courier it to you.&lt;/p&gt;

&lt;h2 id=&quot;linux-vs-gnulinux&quot;&gt;Linux v/s GNU/Linux&lt;/h2&gt;

&lt;p&gt;The company is called “DeepRoot Linux” because in the year 2000 when it
was setup, it seemed like an excellent hack. I think it was in 2006 when
RMS asked me for the first time why it wasn’t called “DeepRoot
GNU/Linux” and I explained how changing the company’s name is a very
complex and costly process. I had added that apart from the name of the
company, I generally use GNU/Linux to refer the operating system.&lt;/p&gt;

&lt;p&gt;That excuse seemed sufficient for many years, until a few months back, I
got asked the same question again by RMS:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;tt&gt; Founder &amp;amp; hacker-in-charge, DeepRoot Linux &lt;/tt&gt;&lt;/p&gt;

  &lt;p&gt;Why is the name “DeepRoot Linux”?  That name promotes the name
 “Linux” at the expense of GNU.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then I realised that nothing stops me from calling the company
“DeepRoot GNU/Linux” irrespective of the company’s legal name. And so,
after 18+ years, I &lt;em&gt;updated&lt;/em&gt; the logo to indicate this oversight:&lt;/p&gt;

&lt;figure&gt;
&lt;img class=&quot;centered&quot; src=&quot;/images/2019/01/deeproot-gnu-linux.png&quot; /&gt;
&lt;figcaption&gt; Our logo now includes &quot;GNU&quot; before &quot;Linux&quot;! &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The only reason I’m reciting this story here is because the article
mentions “DeepRoot Linux” and I thought it is important to explain why.&lt;/p&gt;

&lt;h2 id=&quot;foss-vs-free-software-vs-open-source&quot;&gt;FOSS v/s Free Software v/s Open Source&lt;/h2&gt;

&lt;p&gt;If I have to talk about software that provides freedom and is
distributed under licenses that provide + protect such freedoms for
users and developers, I use the term “free software”.&lt;/p&gt;

&lt;p&gt;Many people use the term “Open Source”. Or a compromise term: “Free /
Open Source Software”. Or even “Free / Libre / Open Source Software”.&lt;/p&gt;

&lt;p&gt;I feel that saying “free software” is sufficient and provides us with an
occassion to explain the importance and significance of freedom in
software.&lt;/p&gt;

&lt;p&gt;Most places in the article I use the term “free software” itself. But as
I read it again now, I realise that some place the article also uses
“FOSS”. Right now I am very upset about this negligence on my part and
how I didn’t realise this while reviewing the content on multiple
occassions.&lt;/p&gt;

&lt;p&gt;Being consistent is very important and I am sorry I was not consistent
enough in my usage of my preffered term: &lt;em&gt;“free software”&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;image-credits&quot;&gt;Image Credits&lt;/h2&gt;

&lt;p&gt;The photo used in the article was probably taken by a student at NIT
Durgapur in Feb, 2018 when I was there to an interaction with the
students. Thank you - I am glad to use your photo in most places where I
need to use a photo. I owe you for this!&lt;/p&gt;

&lt;h2 id=&quot;the-importance-of-editing&quot;&gt;The importance of editing&lt;/h2&gt;

&lt;p&gt;After I wrote close to 5000 words for this interview, I realised how
some of the statements were very open-ended and did not serve to make
any point. But I had spent too much time interating over the draft. The
editorial team at EFY helped a lot and their edits were very useful.&lt;/p&gt;

&lt;p&gt;However, I felt that maybe if I re-wrote the first 40% of the content, I
could’ve written it better. At many places, it wasn’t clear enough, it
didn’t have enough facts and it didn’t really make a conclusive point. :(&lt;/p&gt;

&lt;h2 id=&quot;thanks-efy-editorial-team&quot;&gt;Thanks EFY Editorial Team!&lt;/h2&gt;

&lt;p&gt;The editorial team at EFY was very patient and helpful. Thank you Rahul,
Niraj, Shweta and Aashima! An additional thanks to Rahul Chopra
(Editorial Director, EFY Group) for suggesting this and
supporting.&lt;/p&gt;

&lt;h2 id=&quot;links-to-resources-mentioned-in-the-article&quot;&gt;Links to resources mentioned in the article&lt;/h2&gt;

&lt;h3 id=&quot;books&quot;&gt;Books&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Hackers:_Heroes_of_the_Computer_Revolution&quot;&gt;‘Hackers: Heroes of the Computer Revolution’ by Stephen
    Levy&lt;/a&gt; (Wikipedia)&lt;/li&gt;
  &lt;li&gt;Source code, documentation and sytems written and designed by D. J.
  Bernstein - &lt;a href=&quot;https://cr.yp.to&quot;&gt;https://cr.yp.to&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Coders_at_work&quot;&gt;‘Coders at work: Reflections on the Craft of Programming’ by Peter
  Seibel&lt;/a&gt; (Wikipedia)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;essays&quot;&gt;Essays&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gnu.org/gnu/manifesto.en.html&quot;&gt;The GNU Manifesto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/&quot;&gt;The Cathedral and the
  Bazaar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;presentations&quot;&gt;Presentations&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Some pointers on why freedom matters even for students and what it
  means to be a hacker - &lt;a href=&quot;https://abhas.io/students-hackers/&quot;&gt;https://abhas.io/students-hackers/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;For those who have teaching roles in academic institutions
  (especially faculty members in engineering colleges), Abhas offers
  a roadmap on why it is important to choose free software to
  optimise for freedom and learning. &lt;br /&gt;
  &lt;a href=&quot;https://abhas.io/for-teachers&quot;&gt;https://abhas.io/for-teachers&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;For entrepreneurs who want to consider building a business around
  free software &lt;br /&gt; &lt;a href=&quot;https://freesoftware.business&quot;&gt;https://freesoftware.business&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In this presentation (extracted from a talk at Swatantra 2017), I
  explain the problem of ‘black boxes’ and how we can get rid of
  them using free software and self-hosting. -
  &lt;a href=&quot;https://abhas.io/no-black-boxes&quot;&gt;https://abhas.io/no-black-boxes&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 +0530</pubDate>
        <link>https://abhas.io//osfy-open-journey/</link>
        <guid isPermaLink="true">https://abhas.io//osfy-open-journey/</guid>
      </item>
    
      <item>
        <title>Why should we talk even when no one is listening?</title>
        <description>&lt;p&gt;Recently, while having a discussion with a friend on how to handle a
major technical issue in their college, I mentioned some collaboration
opportunities that would have come up if they had chosen to use free
software in the first place. When he said that &lt;em&gt;“no one in the college
will listen”&lt;/em&gt;, that got me thinking.&lt;/p&gt;

&lt;p&gt;Do we only talk about something we consider useful if we feel that
someone is listening to us? What do we loose by talking even when no one
is listening to us? What if they started listening and we were not there
to talk? Then that is our loss as well as theirs’!&lt;/p&gt;

&lt;p&gt;Since we can’t know when (or whether) they are listening to us, one
thing we can do is to keep talking!&lt;/p&gt;

&lt;p&gt;Hence, if we want to talk about free software, it shouldn’t matter to us
if those we are talking to don’t listen to us. I am confident that, over
different points of time, different people will listen. If we can
motivate ourselves to keep talking plainly, it &lt;em&gt;will&lt;/em&gt; matter.&lt;/p&gt;

&lt;p&gt;The next question is - how do we talk in an efficient manner? I believe
recording thoughts in a publishable form is a good way to refer to them
or share them later on. If we can write about whatever we want to talk
about, it becomes “reproducible”. And the next time, we can re-use it to
make a similar point.&lt;/p&gt;

&lt;p&gt;So to summarize - (at least) in the context of free software, don’t stop
talking just because you feel that no one is listening. They &lt;em&gt;will&lt;/em&gt; listen
sooner or later.&lt;/p&gt;
</description>
        <pubDate>Wed, 09 Jan 2019 00:00:00 +0530</pubDate>
        <link>https://abhas.io//talk-when-no-one-listens/</link>
        <guid isPermaLink="true">https://abhas.io//talk-when-no-one-listens/</guid>
      </item>
    
      <item>
        <title>Advice to students for hackathons</title>
        <description>&lt;h2 id=&quot;background&quot;&gt;Background&lt;/h2&gt;

&lt;p&gt;Many students participate in over-night programming events dubbed “hackathons”.
Such events provide a good opportunity for students to try their hand at
solving one problem over a 24 to 36 hour period. However, in a bid to provide a
working solution to the problems they have chosen to work on, students often
resort to using a rather unfair mix of proprietary software, framework and
non-free cloud services. While this does enable them to build something “novel”
very quickly (ie. in the 24 to 36 hour time period reserved for the hackathon),
it does not do much in terms of challenging them or creating deeper learning
opportunities.&lt;/p&gt;

&lt;p&gt;At the same time, the rules and constraints of the hackathons themselves are
very broad and generic. The organisers tend to focus more on the encouraging
students to build “seemingly novel” solutions to the problems they are working
on. Focus on using Free Software or GNU/Linux is completely absent as is any
focus on self-hosting the software and hardware infrastructure required to build
the solution. The absence of such a focus means that a valuable opportunity to
convey the value of software freedom to students is lost.&lt;/p&gt;

&lt;p&gt;In this essay, I try to examine why students make the sort of technology choices
they make and how, by optimising for convenience and ease-of-use, students miss
out on building better capability and appreciating issues related to online
privacy and software freedom.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2018/10/sit-hackathon.png&quot; alt=&quot;A student hackthon in progress at SIT Tumkur&quot; /&gt;
&lt;em&gt;A student hackathon in progress at SIT Tumkur&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-is-a-hackathon&quot;&gt;What is a “hackathon”?&lt;/h2&gt;

&lt;p&gt;I am not sure why such programming and problem-solving contests are called
“&lt;em&gt;hackathons&lt;/em&gt;”, but they are. They are organised by engineering colleges to
encourage students to solve problems and build solutions over a focused 24 to
36 hour time period. Students are required to choose a theme they would be
working on and then provide an abstract of what they are trying to achieve. They
then use the hackathon to actually build a working solution and demonstrate it.&lt;/p&gt;

&lt;h2 id=&quot;the-problem-with-hackathons&quot;&gt;The problem with “hackathons”&lt;/h2&gt;

&lt;p&gt;The focus of various hackathons is usually “vertical” in nature - ie. they focus
on specific technology domains or sectors in which students can pitch their
projects. These verticals, such as IoT, machine-learning, socially relevant
solutions and so on don’t offer any constraints or guidelines about &lt;strong&gt;how&lt;/strong&gt; the
problems must be solved. Hence, students are free to choose the software, the
architecture, the technology stack, the operating system and so on.&lt;/p&gt;

&lt;p&gt;This, I feel, is the loss of a great opportunity. In my view, it is not just
enough to come up with novel and innovative solutions to problems. It is not the
“&lt;strong&gt;what&lt;/strong&gt;” that is as important, as the “&lt;strong&gt;how&lt;/strong&gt;” and “&lt;strong&gt;why&lt;/strong&gt;”. (In other
words, “&lt;strong&gt;what&lt;/strong&gt;” problem a student chooses to solve is not as important to me,
as “&lt;strong&gt;how&lt;/strong&gt;” they choose to solve it and “&lt;strong&gt;why&lt;/strong&gt;”, ie. their reasons for
choosing to solve it.)&lt;/p&gt;

&lt;p&gt;While the “&lt;strong&gt;what&lt;/strong&gt;” part of the problem-solving might focus on selecting which
problem to solve such that it could be a commendable achievement and which could
be attempted in the 24 to 36 hour time slot, the “&lt;strong&gt;how&lt;/strong&gt;” part of the solution
would look at the issues related to the ideology, architecture, licensing,
freedom, privacy and the self-hosted nature of the solution.&lt;/p&gt;

&lt;p&gt;Hence, if I am optimising for freedom, learning and control, the “&lt;strong&gt;how&lt;/strong&gt;” aspect is
more important for me than the “&lt;strong&gt;what&lt;/strong&gt;” aspect. The world is full of extremely
novel and innovative products. But very few of them are built to respect the
freedom of their users.&lt;/p&gt;

&lt;p&gt;What is there to gain by creating more solutions that only add to the body of
proprietary software, hardware and network services that already exist?&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;why-do-students-participate-in-a-hackathon&quot;&gt;Why do students participate in a “hackathon”?&lt;/h2&gt;

&lt;p&gt;My observation is that students participate in hackathons for some or all of
the following reasons:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;They really care about the problems they are proposing to solve and feel
that the environment of a hackathon will actually enable and motivate them
to build the solution they want to build&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;They get credit for participating in such events and it would look good on
their resumes&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;They seek to compete and achieve something in front of their peers&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;They want to test themselves to see if they can build something working in a
sprint and with limited time&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The prize money is something to aim for as well!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dear student, the way I look at it, these goals above don’t provide enough long-term value to
a student. It is &lt;strong&gt;not enough to focus on the outcomes&lt;/strong&gt;, ie. achieving the
goals of the project or showing that you are capable of building such-and-such
thing. A hackathon is one of the best opportunities to learn and challenge
yourself. The 24-hours that you spend with complete focus, all amenities and no
distractions can help you learn a lot.&lt;/p&gt;

&lt;p&gt;Hence, think beyond just building whatever you’ve set out to build. Aim for
finishing the hackathon with a lot more insight, exposure, awareness and
inspiration than what you came in with. I have some tips how can do exactly this
and more.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;advice-for-students-participating-in-hackathons&quot;&gt;Advice for students participating in hackathons&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dear Student&lt;/strong&gt;,&lt;/p&gt;

&lt;p&gt;If you are participating in an upcoming hackathon, please consider
the following points. They might enable you to carve an extremely valuable
learning experience out of the hackathon. Making some (or all) of these choices
will only affect “&lt;strong&gt;how&lt;/strong&gt;” you build your project - not what you set out to
build. As a side-effect, you will have chosen a more ethical means of building a
solution - one that does not force the users of that solution to sacrifice their
freedom, choice, control or privacy.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;hack-verb&quot;&gt;Hack (verb)&lt;/h3&gt;

&lt;p&gt;Hackathon is a word derived from the verb, &lt;em&gt;to hack&lt;/em&gt;. So if you’re participating
in a hackathon, the first choice you could make is &lt;strong&gt;to hack&lt;/strong&gt;. A &lt;strong&gt;hacker&lt;/strong&gt;
hacks. You are participating in a hackathon - imbibe the spirit of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Hacker_ethic&quot;&gt;hacker
ethic&lt;/a&gt; in your work.&lt;/p&gt;

&lt;h4 id=&quot;who-is-a-hacker&quot;&gt;Who is a “&lt;em&gt;hacker&lt;/em&gt;”?&lt;/h4&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Hacker: noun&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;A person who enjoys exploring the details of programmable systems and how to
stretch their capabilities, as opposed to most users, who prefer to
learn only the minimum necessary&lt;/p&gt;

  &lt;p&gt;A person who delights in having an intimate understanding of the internal
workings of a system, computers and computer networks in particular.&lt;/p&gt;

  &lt;p&gt;One who programs enthusiastically (even obsessively) or who enjoys programming
rather than just theorizing about programming.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4 id=&quot;what-is-the-hacker-ethic&quot;&gt;What is the “&lt;em&gt;hacker ethic&lt;/em&gt;”?&lt;/h4&gt;

&lt;p&gt;As &lt;a href=&quot;https://en.wikipedia.org/wiki/Steven_Levy&quot;&gt;Stephen Levy&lt;/a&gt; summarized in his
book &lt;a href=&quot;https://en.wikipedia.org/wiki/Hackers:_Heroes_of_the_Computer_Revolution&quot;&gt;Hackers: Heroes of the Computer
Revolution&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Hackers are doers.&lt;/p&gt;

  &lt;p&gt;They care about doing things.&lt;/p&gt;

  &lt;p&gt;They care about access &amp;amp; freedom of information, and
improvement to quality of life.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you can understand the hacker ethic and how it has influenced the &lt;a href=&quot;https://en.wikipedia.org/wiki/Free_software_movement&quot;&gt;free
software movement&lt;/a&gt;, you
will be able to understand and adopt the same values into your work and life.&lt;/p&gt;

&lt;p&gt;Can you use the hackathon as an opportunity to examine, understand, validate and
adopt the hacker ethic?&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;dont-focus-on-convenience&quot;&gt;Don’t focus on convenience!&lt;/h3&gt;

&lt;p&gt;This advice might seem absurd at first. But let me explain.&lt;/p&gt;

&lt;p&gt;While observing the choices that students make during hackathons, I concluded
that most of the choices are aimed at cutting down on the amount of work that
they need to do. This is a strange choice! Why would you, as a student, want to
save work for yourself? Doesn’t doing something enable you to understand it
better? By eliminating the need to do even very simple and basic things, are you
also not forgoing the opportunity to learn so much?&lt;/p&gt;

&lt;p&gt;For example, at a hackathon I observed that almost 90% of the students chose to
use a cloud-hosted and proprietary database software called “Firebase” for their
database needs! When queried about the reasons, they pointed out how simple it
was to program it from a mobile application or a web application alike. They did
not consider the fact that they were forcing their users’ data to be stored on
“somebody else’s computer” (ie. the cloud) and the software that was being used
to store this data (ie. the firebase database) was proprietary and out of their
control.&lt;/p&gt;

&lt;p&gt;The other 10% of the students used MySQL, Postgres, MongoDB and SQLite for their
database needs and went about setting up and maintaining these databases by
themselves.&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;focus-on-doing-things-yourself&quot;&gt;Focus on “doing things yourself”&lt;/h4&gt;

&lt;p&gt;The problem here is simply that of an excessive focus on “convenience”. Using
firebase, for example, might be extremely simple and maybe you integrate it into
your project quickly. But what is it that you learn by using it? How to consume
an API to use proprietary software to store simple data?&lt;/p&gt;

&lt;p&gt;Think again. Are you participating in the hackathon to have convenience? Are
you going to stay awake for 20 hours (or more) at a stretch just so that you can
take such short-cuts?&lt;/p&gt;

&lt;p&gt;When you do things yourself, you learn so much more and you have so much more in
your control. Plus you don’t impose your choice of using proprietary software
onto your users.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;choose-self-hosting&quot;&gt;Choose self-hosting&lt;/h3&gt;

&lt;p&gt;The corollary to rejecting convenience is to choose self-hosting. You choose
self-hosting when you build and maintain all aspects of your project yourself.
You host these “aspects” on your own hardware - laptops, single-board
computers, micro-controllers, servers, virtual machines etc.&lt;/p&gt;

&lt;p&gt;Choosing to self-host is a &lt;em&gt;required condition&lt;/em&gt; to choosing free software to
power your project. If you can not self-host a tool, how do you know if that
tool is free/open source software?&lt;/p&gt;

&lt;h4 id=&quot;what-can-you-self-host&quot;&gt;What can you self-host?&lt;/h4&gt;

&lt;p&gt;There is always a way to host everything you need yourself. It could be that you
are not aware of such tools or ways of doing things. Can you use the hackathon
to discover ways of self-hosting everything?&lt;/p&gt;

&lt;p&gt;You should be able to be build everything you need and hence, control whatever
you have. This includes databases, network services (DNS, DHCP, email, NTP etc),
file services (object storage, block storage, shared file-systems), application
servers, containers, virtual machines, time-series databases, monitoring
systems, wireless networks and so much more.&lt;/p&gt;

&lt;h3 id=&quot;self-hosting-in-the-context-of-iot&quot;&gt;Self-hosting in the context of IoT&lt;/h3&gt;

&lt;p&gt;Usually, an IoT solution consists of the following “layers”. You should have
complete control on all these aspects of your solution. The reason I single out
IoT here is because I feel that there is not enough information out there about
how one can build 100% of one’s network, cloud-backend and firmware
infrastructure using Free and Open Source Software exclusively.&lt;/p&gt;

&lt;p&gt;Consider the following points:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Your hardware and physical setup&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;This includes your micro-controllers, single-board computers, circuits,
PCBs, serial and network cabling etc.&lt;/p&gt;

    &lt;p&gt;Choose your hardware such that you retain the freedom and flexibility you
require to build your project.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Firmware, programs, source code, network connectivity&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;Any hardware you choose should offer two basic freedoms to you:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;(a) The freedom to program the hardware using GNU/Linux&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;(b) The freedom to compile and execute your programs using a compiler or
  interpreter licensed under a Free/Open Source Software license&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;Choose your networking setup such that:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;(a) you can run the wireless and wired network using your own access
  point to aid control and debugging (extra points for you if you can run
  this access point using a free software operating system such an OpenWRT
  or LibreCMC)&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;(b) you don’t have to blame someone else when your program does not work&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Metrics storage, analysis and alerts&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;Often tutorials or books that talk about IoT introduce and use proprietary
software hosted on the public cloud to storage sensor data and metrics.
Functions related to analysis and alerts, then, are also handled by the same
set of proprietary software running on the cloud.&lt;/p&gt;

    &lt;p&gt;Instead of this, can you choose to use Free Software tools such as InfluxDB,
Prometheus and OpenHAB to store your sensor data? Can you use a simple
instance of Grafana to graph and analyse this data? Can you send out alerts
and detect anomalies using the various features offered by the tools
mentioned above?&lt;/p&gt;

    &lt;p&gt;These are very capable, comprehensive and easy-to-use tools. Don’t choose to
use proprietary software just because that is all that you are aware of. At
any juncture when you have to make a choice of what software to use for a
purpose, search and evaluate how you can do it yourself using free software
tools.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Remote access and control&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;Most IoT solutions that connect to a network (wired or wireless) need the
ability to remotely access and control the device. Often, the simplest way
of doing this is to use protocols such as MQTT. The significant value-add
that is provided by cloud-hosted IoT backends is an effortless way to use
MQTT.&lt;/p&gt;

    &lt;p&gt;However, if you spent some time understanding how MQTT works, you could do
the entire setup yourself. Using tools such as OpenHAB or Home Assistant,
you can get ease-of-use while still being able to use free/open source
software and self-hosting it on a single-board computer (eg. Raspberry Pi)
or your laptop.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;can-you-optimise-for-learning-instead-of-delivery&quot;&gt;Can you optimise for learning, instead of delivery?&lt;/h3&gt;

&lt;p&gt;In my view, the reason students take so many short-cuts during hackathons is
because they are optimising to deliver what they have committed on as the
deliverable for their project. There is nothing wrong in focusing on this -
however, if this focus forces you to take short-cuts and does not create enough
learning opportunities for you, then you are not capturing enough value from the
hackathon!&lt;/p&gt;

&lt;p&gt;Instead, my advice is to focus on learning. Whatever you do as a part of
building your project, evaluate how not doing what something “conventionally”
can provide greater learning opportunities to you. Often this learning will
emerge because you use to self-host a Free Software tool for your project or
because you choose to do something yourself.&lt;/p&gt;

&lt;p&gt;By focusing on learning, there is a good chance that you will be proud of your
achievement at the end of the hackathon. And this still does not change your
ability to actually deliver on your intended goal - it might just change the way
you deliver it.&lt;/p&gt;

&lt;h3 id=&quot;use-a-free-operating-system&quot;&gt;Use a Free Operating System!&lt;/h3&gt;

&lt;p&gt;I would have thought that in 2018 it would be obvious that students (and
developers) would use GNU/Linux. But my observations suggest the contrary.&lt;/p&gt;

&lt;p&gt;When all aspects of your work are actually free software tools, why run them on
a proprietary and non-free operating system? Programming languages such as
Python, Ruby and NodeJS are all licensed under various free software licenses.
Databases that you use, such as MongoDB, SQLite, MariaDB/MySQL and PostgresQL
are also free software tools. Your programming IDEs such as vim, Atom or even
the Arduino IDE are all licensed and available under free software licenses to
you. Arduino libraries and MicroPython (to name a few of the embedded IoT
toolkits) are also free software.&lt;/p&gt;

&lt;p&gt;There is a lot more value to derive from these when you run them on GNU/Linux.
While almost all of them are cross-platform and can run easily on Windows or
macOS, I don’t see how doing that provides your a better learning opportunity or
an opportunity to get better at doing whatever you’re doing.&lt;/p&gt;

&lt;p&gt;So use Debian GNU/Linux or Ubuntu or Fedora on your laptops and run all the
tools that you require seamlessly. No need to use virtual machines to run
GNU/Linux just because you want to use Docker to run something in a container.&lt;/p&gt;

&lt;h3 id=&quot;can-you-choose-to-build-free-software&quot;&gt;Can you choose to build free software?&lt;/h3&gt;

&lt;p&gt;While it might be too early to think about releasing and sharing your software
publicly, I would actively encourage you to do that. Doing this is not only an
ethical choice to make, but also provides unprecedented learning opportunities.&lt;/p&gt;

&lt;p&gt;If you need help to figure out how you can release your project under a Free
Software license and which license you should choose, I would be glad to help
you out.&lt;/p&gt;

&lt;h3 id=&quot;choose-free-software-on-the-cloud-not-software-as-a-service&quot;&gt;Choose free-software on the cloud, not software-as-a-service&lt;/h3&gt;

&lt;p&gt;This is another way of talking about a point I made earlier. Consuming and using
software offered as a service (eg. database as a service, MQTT as a service,
analytics as a service etc.) is a covert way to use proprietary software. Most
of the times the software that is used to power such services is not available
to you to study, setup, modify or self-host. Additionally, your data is stored
on (and locked-in to) such software-as-a-service offerings and once you use them
for some time, it might be difficult or impossible to leave the platform and
choose something else.&lt;/p&gt;

&lt;p&gt;When you &lt;em&gt;have&lt;/em&gt; to use software that does not run on your computer (ie. software
which is hosted on the “cloud”), ensure that it is free software. This will give
you the freedom and choice that you need in future. Don’t choose to use a
software-as-a-service offering just because it is accessible, popular,
free-of-charge or convenient. Making these choices neither offers learning
opportunities to you, nor freedom, privacy and control.&lt;/p&gt;

&lt;p&gt;Don’t make short-term choices that will remain with you in the long run.&lt;/p&gt;

&lt;h3 id=&quot;reject-apis-that-deliver-convenience-at-the-cost-of-control-and-freedom&quot;&gt;Reject APIs that deliver convenience at the cost of control and freedom&lt;/h3&gt;

&lt;p&gt;Using APIs that are backed by proprietary software offered as a service is
another way you compromise on your freedom and learning opportunity. Often an
API is just an easy way to do something that requires no setup and gets you
“productive quickly” and by doing “lesser work”.&lt;/p&gt;

&lt;p&gt;Thing about this: Is it essential to use an API to build whatever you’re
building? Can you do 2% more work and eliminate the API? Can you self-host a
tool and use the API on a network and with software that you have complete
control on?&lt;/p&gt;

&lt;p&gt;How about substituting the API with a protocol?  Eg. A popular way to send an
email is to use a web API offered by a service provider. Instead of using a
proprietary API, can you build a SMTP server on your own to achieve the same
goal? It would be a wonderful excuse to learn how to setup mail services!&lt;/p&gt;

&lt;p&gt;APIs are conveniences that can cost us our freedom if we are not careful and
vigilant. Don’t make these choices now to deliver something quickly which might
limit what you can do in the future.&lt;/p&gt;

&lt;h3 id=&quot;take-the-hard-way&quot;&gt;Take the hard way!&lt;/h3&gt;

&lt;p&gt;Convenience does not facilitate learning, it eliminates it. You should 
optimise for learning. You should welcome problems and challenges because they
present a learning opportunity to you.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“There is no such thing as a problem without a gift for you in its hands.
You seek problems because you need their gifts.”&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Richard Bach, “Illusions”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Take the hard way. Don’t avoid problems because you perceive them to be
difficult and an impediment in achieving whatever you’ve set out to. Problems
that we face when we build something are essential to helping us learn and
become more effective at what we do. All problems - technical, personal,
time-management, collaboration etc - are just indicators of what more we need to
learn.&lt;/p&gt;

&lt;p&gt;When you eliminate the problem, you also eliminate the possible lesson associated
with solving it. Is that why you are participating in a hackathon?&lt;/p&gt;

&lt;p&gt;The “gift” of a problem is the learning and capability that emerges from
attempting to solve it. The problem is not permanent, the learning is.&lt;/p&gt;

&lt;h3 id=&quot;keep-a-work-diary&quot;&gt;Keep a work diary&lt;/h3&gt;

&lt;p&gt;Maintain a simple “work diary” to record what you need to work on, what problems
you faced, solutions you considered when trying to solve the problem and
finally, how you solved it. Use this diary to also note down questions that came
to your mind but which you could not answer conclusively right then. If you take
an inventory of such questions, challenges and problems, you can re-visit them
again after the hackathon and continue your learning and study.&lt;/p&gt;

&lt;p&gt;Maintaining a work diary is also a good way to reflect upon what you did. It is
not always possible to recollect how we did something or why. A diary would be a
good way to record these things while we are doing them and while they are fresh
in our minds.&lt;/p&gt;

&lt;p&gt;Later, you can use this diary to publish an article or a blog-post about “how
you built X”!&lt;/p&gt;

&lt;h2 id=&quot;get-in-touch&quot;&gt;Get in touch!&lt;/h2&gt;

&lt;p&gt;I am always reachable via email: &lt;a href=&quot;mailto:abhas@deeproot.in&quot;&gt;abhas@deeproot.in&lt;/a&gt;.
Please feel free to write to me in case I can add value to your work or help you
become more effective in creating learning opportunities.&lt;/p&gt;

&lt;p&gt;All the best if you’re participating in a hackathon in the near future and I
hope that you find the advice above useful and actionable.&lt;/p&gt;
</description>
        <pubDate>Fri, 02 Nov 2018 00:00:00 +0530</pubDate>
        <link>https://abhas.io//advice-to-students-for-hackathons/</link>
        <guid isPermaLink="true">https://abhas.io//advice-to-students-for-hackathons/</guid>
      </item>
    
      <item>
        <title>Why &quot;Open Source&quot; still misses the point!</title>
        <description>&lt;h2 id=&quot;background&quot;&gt;Background&lt;/h2&gt;

&lt;p&gt;It is disheartening to see well-meaning people using the term “open
source” for just about everything. In my view, the term “open source”
carries no meaning anymore. Not only does it miss the point and essence
of why software freedom matters (and is the real concern) but it creates
so much ambiguity and confusion that very few people really know what
“open source” really means. I wish we could all stop using it unless we
could use it to mean what it should.&lt;/p&gt;

&lt;p&gt;Many years back, FSF published an essay called &lt;a href=&quot;https://www.gnu.org/philosophy/open-source-misses-the-point.html&quot;&gt;“Why Open Source misses
the point of Free
Software”&lt;/a&gt;.
It is an extremely detailed explanation of what’s wrong. I intend to
illustrate how that discussion is even more relevant now, than ever.&lt;/p&gt;

&lt;h2 id=&quot;what-does-open-source-really-mean&quot;&gt;What does “Open Source” really mean?&lt;/h2&gt;

&lt;p&gt;Here is what I found when I searched the website of
&lt;a href=&quot;https://ted.com&quot;&gt;TED&lt;/a&gt; for the term “open source”:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://abhas.io/images/2018/10/ted-open-source.png&quot; alt=&quot;ted-open-source&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Multiple types of topics and content are tagged as “open-source” even
when it has no relevance to that concept. What I’m trying to illustrate
with this simple example is that people tend to use the term “open
source” to refer to “sharing information”, “access to education”,
“collaboration”, “personalised biology”, “access to information”,
“governance”, “collaborative security” and more.&lt;/p&gt;

&lt;p&gt;The term “Open Source” as defined by the &lt;a href=&quot;https://opensource.org/&quot;&gt;Open Source
Initiative&lt;/a&gt; has a specific meaning and is
qualified by the terms of the &lt;a href=&quot;https://opensource.org/osd&quot;&gt;Open Source
Definition&lt;/a&gt;. These terms are very clear and
they provide a framework that can tell us if something is “open source”
or not. If everyone used the term “open source” to imply what the OSD
spells out, there wouldn’t be too many “transmission losses”. But the
unfortunate truth is that the “marketing effort for Free Software” has
grown into a complete misappropiation of the very values, goals and
intents of both the Free Software and Open Source Software movements.&lt;/p&gt;

&lt;h2 id=&quot;how-open-source-was-born-and-where-it-got-us&quot;&gt;How “&lt;em&gt;Open Source&lt;/em&gt;” was born and where it got us!&lt;/h2&gt;

&lt;p&gt;Over the past 20 years of the Open Source Initiative, they have
succeeded massively in popularising the term “open source”. Initially it
was probably used in the same context as the Open Source Definition. But
over time, it came to mean many other things. And maybe, this happenned
because people thought that the term “open source” was a loose
approximation of whatever they were trying to convery.&lt;/p&gt;

&lt;h3 id=&quot;motivation-behind-open-source-&quot;&gt;Motivation behind “open source” …&lt;/h3&gt;

&lt;p&gt;The motivation behind coming up with the term “open source” was that the
&lt;em&gt;de facto&lt;/em&gt; and accepted term, “free software”, was &lt;a href=&quot;http://www.catb.org/~esr/open-source.html&quot;&gt;considered ambiguous and
unacceptable to “corporate
types”&lt;/a&gt;. In 1998, this
“marketing effort” was a clever &lt;em&gt;ploy&lt;/em&gt; to get a greater diversity of
people to consider the option of free software.&lt;/p&gt;

&lt;p&gt;However, over the next few years after it was released, the term “open
source” came be to be known for its “development and collaboration
model” than for software freedom. What gained precedence was the “open”
nature of things - an “open community”, “open / public discussions and
communication”, “open documentation”, “over-the-internet and open
collaboration” etc. Amidst all this noise, the essence of software
freedom got further diluted as “&lt;em&gt;over-zealous pragmatism&lt;/em&gt;” took over. (I
call it “over-zealous pragmatism” because it was considered okay to
compromise on the value that free software offered if it made it easier
to &lt;em&gt;sell&lt;/em&gt; someone the concept of “open source”.)&lt;/p&gt;

&lt;h3 id=&quot;-and-where-it-got-us&quot;&gt;… and where it got us!&lt;/h3&gt;

&lt;p&gt;In hindsight, I feel this has only proved to be counter-productive. As
other communities and initiaves have picked up this word play on the
word “open”, the term “open source” has lost complete connection to its
roots. This is why I said that the term “open source” doesn’t really
mean anything specific anymore. Not only does it mean different things
to different people, but it doesn’t even mean anything specific to
the one who’s using that term. Each person who uses the term “open
source” to describe something other than what is defined in the Open
Source Definition, is doing so because somehow this loose approximation
suits their purpose and lets them imply “something”.&lt;/p&gt;

&lt;p&gt;Finally, it only results in &lt;a href=&quot;http://hitchhikers.wikia.com/wiki/Whole_Sort_of_General_Mish_Mash&quot;&gt;“a whole sort of general
mish-mash”&lt;/a&gt;.
Imagine a world where no word has any specific meaning, or where the
meaning of many words have lost their literal and technical meaning.
Isn’t this what Orwell cautioned us about when he described &lt;a href=&quot;https://en.wikipedia.org/wiki/Newspeak&quot;&gt;Newspeak in
&lt;em&gt;1984&lt;/em&gt;&lt;/a&gt;?&lt;/p&gt;

&lt;h2 id=&quot;we-should-stop-using-the-term-open-source-altogether&quot;&gt;We should stop using the term “Open Source” altogether!&lt;/h2&gt;

&lt;p&gt;It would have been okay if those who choose to use the term “open
source” used it in a manner defined by the Open Source Definition and to
refer to free/open source software in particular. The problem arises
when there are unintended and damaging consequences to how people use
it.&lt;/p&gt;

&lt;p&gt;At the same time, if you understand the wide-ranging and damaging
side-effects of using the word “open source” when referring to “free
software”, then why not use the term “free software” and use the
opportunity you have to explain the value and essence of software
freedom too.&lt;/p&gt;

&lt;h3 id=&quot;open-source-innovation&quot;&gt;“Open Source Innovation”?&lt;/h3&gt;

&lt;p&gt;Consider what the phrase “open source innovation” might mean. Does it
refer to “innovation” who’s output is work licensed under the terms of
the Open Source Definition? Or does it refer to a “collaborative method
of problem solving” which might or might not yield a truly “open source
artifact” (software, hardware, writing, music etc.). If that were the
intention, then why not use a more accurate phrase itself? Why borrow a
well-defined and narrow term for an unrelated usage? Either the
understanding about what “open source” really means is flawed. Or the
intentional misuse is a trick.&lt;/p&gt;

&lt;h3 id=&quot;open-source-ideas&quot;&gt;“Open Source Ideas”?&lt;/h3&gt;

&lt;p&gt;Similarly, consider the phrase “open source ideas”. It is a complete
misnomer. The very basis of the Open Source Definition (and of the free
software definition) is the Copyright Law. Copyrights cover “expression
of ideas” - software, music, writing etc are all considered expressions
and hence, are covered by copyrights. Patents, on the other hand,
protect inventions. (In most jurisdictions, even India, it is not
possible to patent software because software is equated to mathematics
and not considered an “invention”.)&lt;/p&gt;

&lt;p&gt;But ideas are neither concrete expressions nor are they inventions.
Hence, if neither the copyright or patent law is applicable to an idea,
what does the term “open source idea” really mean? Does it mean that if
you have an idea, you share it widely and openly within a community
while retaining the right to be identified as its originator? If that is
the intention, then I am sure it is possible to come up with an alternate
name. Just sharing &lt;em&gt;something&lt;/em&gt; “openly” does not make it “open source”.&lt;/p&gt;

&lt;h3 id=&quot;open-source-is-a-damaging-term&quot;&gt;“Open Source” is a damaging term&lt;/h3&gt;

&lt;p&gt;The usage illustrated above not just dilutes the term “open source”, but
also extends its scope and purpose - all without the permission of the
Open Source Initiative which actually owns a trademark on the term “open
source”. In that sense, it is very damaging to the “open source
movement” and the people involved in it.&lt;/p&gt;

&lt;p&gt;It is also damaging because it dilutes and eliminates all discussion
about software freedom - without which it is difficult to imagine how or
why the free/open source software movement would be relevant.&lt;/p&gt;

&lt;h3 id=&quot;free-libre-open-source-software-floss-is-a-good-compromise-term&quot;&gt;Free, Libre, Open Source Software (FLOSS) is a good compromise term&lt;/h3&gt;

&lt;p&gt;I would definitely recommend that we avoid using the term “open source”
for completely unrelated topics. Instead, it will benefit us to find
better and more accurate terms and maybe, in the long run, “open source”
can regain its value and actually mean &lt;em&gt;something&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;A good compromise term is FLOSS which stands for Free / Libre / Open
Source Source Software and tries to bring the conversation and focus
back to freedom. You might then ask a more basic question - why is it
important to care about or focus on software freedom at all? I attempt
to answer that next.&lt;/p&gt;

&lt;p&gt;At the same time, since the “open source” is so misused and
misunderstood, should we even it in places where its meaning might
actually be clear?&lt;/p&gt;

&lt;h2 id=&quot;you-should-say-what-you-mean&quot;&gt;“You should say what you mean!”&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://abhas.io/images/2018/10/mad-tea-party-highlighted.jpg&quot; alt=&quot;mad-tea-party&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt; March Hare: &lt;em&gt;you should say what you mean...&lt;/em&gt; &lt;br /&gt; 
  From &lt;em&gt; Through the Looking Glass &lt;/em&gt; by Lewis Carroll
  &lt;/p&gt;

&lt;p&gt;Let me conclude by quoting a passage from “Through the Looking Glass” by
Lewis Carroll. March Hare has a bit of wise advice for us. If we are
capable of being accurate about what we are trying to say, then why
wouldn’t we say what we mean? Why be ambiguous when it is so easy to be
accurate?&lt;/p&gt;

</description>
        <pubDate>Sun, 07 Oct 2018 00:00:00 +0530</pubDate>
        <link>https://abhas.io//open-source-still-misses-the-point/</link>
        <guid isPermaLink="true">https://abhas.io//open-source-still-misses-the-point/</guid>
      </item>
    
      <item>
        <title>Personalising your involvement with Free Software</title>
        <description>&lt;h2 id=&quot;background&quot;&gt;Background&lt;/h2&gt;

&lt;p&gt;Dr Richard Stallman (RMS), founder of the GNU Project and the Free 
Software Foundation, would be visiting India in January 2019. How do we 
make his visit to India more meaningful? How do we take this opportunity to
generate activity around concepts of Software Freedom? What can you do as an
individual or school or college or company? How could culminate into a
deliverable three months hence? How could whatever effort you you put 
in help you a life-long user, developer and supporter of Free Software?&lt;/p&gt;

&lt;p&gt;Or if you already care about software freedom, how could you create a 
track of vibrant activity that could evolve into a long term festival of 
free software? How could you get everyone around you to appreciate free 
software or contribute to the movement in a meaningful manner?&lt;/p&gt;

&lt;h2 id=&quot;the-problem&quot;&gt;The Problem&lt;/h2&gt;

&lt;p&gt;While there is a lot of general awareness about technology and the “open source
nature” of Free Software, awareness about software freedom, the ideology and
philosophy of the free software movement is not common place. If one considers
the major problems that rob us of our essential freedoms in technology, the
challenge (in terms of developing ethical and useful technology) is actually
very high.&lt;/p&gt;

&lt;h2 id=&quot;how-can-we-create-greater-sensitivity-about-software-freedom-issues&quot;&gt;How can we create greater sensitivity about software freedom issues?&lt;/h2&gt;

&lt;p&gt;We can enable more people to appreciate the problem of free software (and have
greater sensitivity to software freedom issues) by explaining and illustrating
what happens when we don’t choose or build hardware or software by mindfully
considering its impact on our freedom. A very good way to do so is assimilating
these values into our own dealings so that not only can we help others but
others can look up to us for help and guidance.&lt;/p&gt;

&lt;p&gt;Once a person can understand this impact, they can also find ways of
making different choices. Buying and owning this problem is a
sustainable way to solving it in the long run.&lt;/p&gt;

&lt;h2 id=&quot;how-can-we-get-started&quot;&gt;How can we get started?&lt;/h2&gt;

&lt;p&gt;Let us start by reviewing and auditing our own software usage and
reflecting on how we can choose Free Software in places where we don’t.
Let’s start by being a user.&lt;/p&gt;

&lt;h3 id=&quot;as-users-review-and-audit-software-usage&quot;&gt;As Users: Review and audit software usage&lt;/h3&gt;

&lt;p&gt;To start with, you could review and audit all the software and technology that
you use (personally, in the labs, in teaching, in our communities, in the
institute, at work etc.) and then check which of them provide (and
preserve) software freedom and which don’t. Also rate each of these
things that we use on whether apart from being proprietary software,
they also make us participants in the “social media / tracking”
ecosystem.&lt;/p&gt;

&lt;h3 id=&quot;as-users-defective-by-design---drm-encrypted-content&quot;&gt;As Users: Defective by Design - DRM-encrypted content&lt;/h3&gt;

&lt;p&gt;Review your use of DRM-encrypted content - books, videos, music, games etc.
To understand the dangers of DRM, the following website is an exhaustive resource:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.defectivebydesign.org/&quot;&gt;https://www.defectivebydesign.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make a plan by which you can minimize or eliminate DRM-encrypted content
from your life.&lt;/p&gt;

&lt;h3 id=&quot;as-users-use--review-free-software-operating-system-practices&quot;&gt;As Users: Use / review free software operating system practices&lt;/h3&gt;

&lt;p&gt;Use a truly free operating system - eliminate proprietary software and
proprietary binary drivers from your GNU/Linux operating system. Its not
an easy thing to do especially when it means that we need to change the
hardware we use.&lt;/p&gt;

&lt;p&gt;The thing to understand is that our laptop or desktop computer could
have hardware components that can not be used without non-free drivers
or binary-only (proprietary) firmware. If you list out such instances,
then it would be possible to figure out how they could be eliminated.&lt;/p&gt;

&lt;p&gt;Using FSF-endorsed GNU/Linux distributions like PureOS is a good way to
determine if you have have been using proprietary software unconsciously
on your computer.&lt;/p&gt;

&lt;h3 id=&quot;as-users-use--promote-privacy-respecting-hardware&quot;&gt;As Users: Use / promote privacy respecting hardware&lt;/h3&gt;

&lt;p&gt;The X200 laptop is one of the most affordable and truly free laptops -
it run a free software BIOS (LibreBoot), it run Debian Main (no non-free
software or drivers) and it can use an Atheros wireless-card which works
without proprietary firmware. FSF endorses this computing platform as a
RYF (respects your freedom) hardware:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.fsf.org/resources/hw/endorsement/respects-your-freedom&quot;&gt;https://www.fsf.org/resources/hw/endorsement/respects-your-freedom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The idea behind such a certification is not to promote the use of old,
outdated or limiting hardware. The idea is to provide a reference for
how to build hardware that can respect your freedom. Using such hardware
can give us some insight into some aspects of how to support free
software.&lt;/p&gt;

&lt;h3 id=&quot;as-technical-people-propose-free-software-replacements&quot;&gt;As Technical People: Propose Free Software replacements&lt;/h3&gt;

&lt;p&gt;Make a list of free software, self-hosted and federated replacements for
every piece of software that you use. Today there is more hardware with
software in it. For example, if you are able to switch on a light using
your mobile phone, then the “smart plug” also has software in it and if
we can’t access its source code or re-compile or modify or share it,
then it is not free software.&lt;/p&gt;

&lt;p&gt;Hence, when you make a list of what proprietary software we might be
using, we should also include such things and then seek free software
replacements for the same. Its alright even if we can’t come up with
competent free software replacements - in that case it becomes an
important and challenging project to undertake and work on in the next
few years.&lt;/p&gt;

&lt;h3 id=&quot;as-technical-people-create-resources-to-support-adoption&quot;&gt;As Technical People: Create resources to support adoption&lt;/h3&gt;

&lt;p&gt;Build documentation and training videos on how to use these common and
already available free sofware solutions. Offer support to others who
might be ready to start using these tools right away.&lt;/p&gt;

&lt;h3 id=&quot;as-developers-the-javascript-trap&quot;&gt;As Developers: The JavaScript Trap&lt;/h3&gt;

&lt;p&gt;Read the following web-pages:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.gnu.org/philosophy/javascript-trap.html&quot;&gt;https://www.gnu.org/philosophy/javascript-trap.html&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.gnu.org/software/librejs/&quot;&gt;https://www.gnu.org/software/librejs/&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first link above is an essay that outlines how we run proprietary
software on our computers (often unknowingly and without our consent)
when we agree to let a websites or web-application run complex javascript
in the web-browser.&lt;/p&gt;

&lt;p&gt;Next, here is what we can do:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Review how using the librejs plugin changes your Internet usage
experience. This will give us an example of how much proprietary
javascript we might be running on our computers.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If you are web-developer, consider your usage of complex javascript,
how you’re packaging it and how you might be forcing your users to
use proprietary software. To fix this problem, read the LibreJS
manual and follow its guidelines for compliance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Aim for LibreJS compliance in whichever software or websites you
develop. That will ensure that as more and more people choose to
eliminate proprietary javascript from their Internet experience,
they will welcome and appreciate your work and efforts.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;as-developers-contribute-to-fsf-high-priority-projects&quot;&gt;As Developers: Contribute to FSF high-priority Projects&lt;/h3&gt;

&lt;p&gt;Review the following list of high priority free sofware projects
published by the FSF:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.fsf.org/campaigns/priority-projects/&quot;&gt;https://www.fsf.org/campaigns/priority-projects/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Understand the importance of these projects and why they are
high-priority and long term projects and worth working on. Next, choose
one (or two or as many) of these projects and suggest what you want to
do to contribute to them. Then build a plan and get started.&lt;/p&gt;

&lt;h3 id=&quot;as-developers-volunteer-vacanies-in-gnu-projects&quot;&gt;As Developers: Volunteer Vacanies in GNU Projects&lt;/h3&gt;

&lt;p&gt;Check this list of volunteer vacancies with various GNU projects:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://savannah.gnu.org/people/?type_id=1&quot;&gt;https://savannah.gnu.org/people/?type_id=1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It might be a good idea to volunteer to one of them.&lt;/p&gt;

&lt;h3 id=&quot;as-writers-translations&quot;&gt;As Writers: Translations&lt;/h3&gt;

&lt;p&gt;An important aspect of spreading the message of free software is also to
do it in other languages. Knowledge of English need not be essential to
participating in a free software project or for choosing software
freedom.&lt;/p&gt;

&lt;p&gt;Consider this posting:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://savannah.gnu.org/people/viewjob.php?group_id=1533&amp;amp;job_id=655&quot;&gt;https://savannah.gnu.org/people/viewjob.php?group_id=1533&amp;amp;job_id=655&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It says:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In spite of Hindi being one of our priority languages, we have never
   had a single page translated in that language.&lt;/p&gt;

  &lt;p&gt;In order to do this job, you need a perfect understanding of the
   philosophy behind the GNU project, a good command of Hindi and a
   decent knowledge of English.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This posting has been open since 2015. There may be many such ones on
the gnu.org website and elsewhere. I think a part of the gnu.org and
fsf.org websites are translated into Hindi but that effort is not
complete. We could translate the gnu.org website into Hindi, Bengali,
Kannada and other languages.&lt;/p&gt;

&lt;h3 id=&quot;as-writers-free-software-free-society---essays-by-rms&quot;&gt;As Writers: Free Software, Free Society - Essays by RMS&lt;/h3&gt;

&lt;p&gt;This is a set of essays by RMS called “Free Software, Free Society”:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Printed copy: &lt;a href=&quot;https://shop.fsf.org/books-docs/free-software-free-society-selected-essays-richard-m-stallman-3rd-edition&quot;&gt;https://shop.fsf.org/books-docs/free-software-free-society-selected-essays-richard-m-stallman-3rd-edition&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Digital copy: &lt;a href=&quot;https://www.gnu.org/philosophy/fsfs/rms-essays.pdf&quot;&gt;https://www.gnu.org/philosophy/fsfs/rms-essays.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It might be a great idea to translate these into various Indian
languages and launch it during an event with RMS.&lt;/p&gt;

&lt;p&gt;There could many such localisation opportunities that we can pursue.&lt;/p&gt;

&lt;h2 id=&quot;a-three-month-long-hackathon&quot;&gt;A three-month long hackathon!&lt;/h2&gt;

&lt;p&gt;Pursuing one or some of these exercises would be a great idea for a
three-month long hackathon. It would be valuable to write about our
experience so that it can serve as a guide for others.&lt;/p&gt;

</description>
        <pubDate>Sat, 29 Sep 2018 00:00:00 +0530</pubDate>
        <link>https://abhas.io//free-software-involvement/</link>
        <guid isPermaLink="true">https://abhas.io//free-software-involvement/</guid>
      </item>
    
      <item>
        <title>What do you do when things are going well?</title>
        <description>&lt;p&gt;&lt;img src=&quot;https://abhas.io/wp-content/uploads/2018/05/spider.jpg&quot; alt=&quot;header-image-spider&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;background&quot;&gt;Background&lt;/h2&gt;

&lt;p&gt;Here is what I have been thinking about a lot recently: There is a huge 
gap between our thought process when things are going well versus when 
things are bad. My observation is that we don’t put in enough effort to 
build skills or acquire tools when things are going well… and when 
things are &lt;em&gt;bad&lt;/em&gt;, we desperately crave for these same tools that 
we didn’t spend time acquiring. Let me explain…&lt;/p&gt;

&lt;p&gt;Over the past two months, I have seen repeated examples of crises that 
have stemmed from, what I now regard as, a neglect to &lt;em&gt;being 
prepared.&lt;/em&gt; I have also observed that we usually don’t spend enough 
effort building our competency and polishing our tools during &lt;em&gt;times 
of peace&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;what-questions-do-you-ask-when-you-are-unprepared-to-handle-a-situation&quot;&gt;What questions do you ask when you are unprepared to handle a situation?&lt;/h2&gt;

&lt;p&gt;When faced with a dire situation where I feel I am unable to cope or 
figure out a solution, a question I ask myself is: &lt;em&gt;“What skills, 
knowledge, tools or awareness do I wish I had that would’ve helped me 
cope with the current situation better”?&lt;/em&gt; The problem is, even when 
I arrive at an answer to the above question, I am not in a position to 
use that answer right away. It takes time and peace and patience and 
practise to learn something and to acquire new tools and when I’m in the 
middle of a tough situation, that is hardly the time to put in effort to 
prepare.&lt;/p&gt;

&lt;p&gt;If now now, then, when is the next best time to invest energy into 
learning? The next moment you have some peace - no matter how temporary. 
I really can’t stress how important this is. I feel very sad when I 
observe people struggle with coping up and figuring out what to do, but 
who won’t put in the effort to bring about &lt;em&gt;some&lt;/em&gt; change in the 
way they view or do thing or feel about them. There are no instant 
solutions and most learning takes time and effort and that can’t be put 
in overnight.&lt;/p&gt;

&lt;p&gt;Hence, if we are &lt;strong&gt;only&lt;/strong&gt; motivated to put effort into 
learning, or expanding our thoughts and horizons when things go bad, 
then we will never be prepared! We will always struggle to cope. We will 
not learn new lessons. We will not make new mistakes. We will not be 
able to avoid repeating past mistakes.&lt;/p&gt;

&lt;p&gt;Whether its your website that got cracked or server which went down or 
friend who let you down or customer who did something unfair… there is 
still something we can do about each of these situations. While the 
situation (and the outcome) itself might not be of our choosing or in 
our control, how we treat it, learn from it, handle it or feel about it 
is completely our choice.&lt;/p&gt;

&lt;p&gt;And so the tools and skills that I’m talking about are not just those 
specific things that we can do to pre-empt situations and avoid 
failures. I am also talking about learning that enables us to handle 
unforeseen and undesirable outcomes in a graceful manner that might 
enable us to have more tranquillity in our lives.&lt;/p&gt;

&lt;h2 id=&quot;the-next-time-you-have-peace-in-your-life&quot;&gt;The next time you have peace in your life…&lt;/h2&gt;

&lt;p&gt;So the next time, you have a some peace in your life when you are 
&lt;strong&gt;not&lt;/strong&gt; fire fighting or handling a failure or a challenge, 
think about the last 3 difficult situations where you wish you had the 
ability and &lt;em&gt;tools&lt;/em&gt; to handle it better (based on your own 
assessment of “better”  - no one else’s). And then do whatever it takes 
to build those skills, acquire those tools and absorb the learning.&lt;/p&gt;

&lt;h2 id=&quot;how&quot;&gt;How?&lt;/h2&gt;

&lt;p&gt;Discover / read essays and books, listen to &lt;em&gt;podcasts&lt;/em&gt; and talk 
shows, expose yourself to contrasting views that provoke you to think 
and make decisions and judgements for yourself. None of these will 
require you to take permission from anyone else. None of these are 
expensive or require you to be somewhere you can’t be. Most of these 
options don’t involve depending on others. Hence, they are simple to get 
started with.&lt;/p&gt;

&lt;p&gt;There are no right ways to doing anything. There is no universal 
prescription or formula that I or anyone else can give you that will 
work in every situation. The sad thing will be if we are not able to / 
ready to invest into our own well-being and take charge of how we feel 
about something or deal with something.&lt;/p&gt;

&lt;p&gt;Conversely, it would be wonderful to have a feeling of greater control. 
It would be wonderful to feel equipped to handle seemingly tough 
situations with poise. It would be quite an achievement if we can 
realise how we can invest into our own personal, technical and spiritual 
growth all the time.&lt;/p&gt;

</description>
        <pubDate>Sun, 20 May 2018 00:00:00 +0530</pubDate>
        <link>https://abhas.io//2018/05/what-do-you-do-when-things-are-going-well/</link>
        <guid isPermaLink="true">https://abhas.io//2018/05/what-do-you-do-when-things-are-going-well/</guid>
      </item>
    
      <item>
        <title>Self-Hosted Email Newsletters</title>
        <description>&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/05/newsletter-header.png&quot; alt=&quot;Newsletter Header&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: left;&quot;&gt;Recently, at &lt;a href=&quot;https://deeproot.in&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;DeepRoot Linux&lt;/a&gt;, we started a &lt;a href=&quot;https://engage.deeproot.in/newsletter/01/index.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;newsletter&lt;/a&gt; that we send to our past 
and present customers, ie. a select group of people we have worked with 
and who have contributed to our business. Listed here are the choices 
that I made to design and send this newsletter and steps that you can 
follow to do so yourself.&lt;/p&gt;
&lt;p&gt;There are many ways of doing this right and of ensuring that an email 
you send will reach users’ mailboxes. However, I wanted to ensure that 
we don’t use a hosted service and that every component of the newsletter 
delivery process is setup using Free Software and is controlled by us. 
This an excellent way to demonstrate that self-hosted services are not 
just possible, but also preferrable. And that we shouldn’t choose a 
hosted service by default.&lt;/p&gt;

&lt;!--more--&gt;
&lt;h2 id=&quot;the-email-newsletter-problem&quot;&gt;The “email newsletter” problem&lt;/h2&gt;

&lt;p&gt;Anyone faced with the &lt;em&gt;problem&lt;/em&gt; of sending out an email 
newsletter is faced with the following challenges:&lt;/p&gt;

&lt;h3 id=&quot;a-subscriber-management&quot;&gt;A: Subscriber management&lt;/h3&gt;

&lt;p&gt;Any email newsletter activity starts with this import decision of whom 
to address the emails to. Think about the following questions:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;How and where does one store the list of recipients?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;What attributes does one store for each subscriber?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;How does one allow recipients of the email list to unsubscribe 
themselves?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;How does one use a subscriber’s attribute to limit who to send 
emails to?&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;b-building-content&quot;&gt;B: Building content&lt;/h3&gt;

&lt;p&gt;Once the audience has been identified, the next major decision is, of 
course, the content of the emails. We need to ask ourselves the 
following questions while building content:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Should the email content be formatted as HTML or plain text? Or 
both?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If HTML is used, should the images be linked to the email from a 
remote server? Or should they be attached?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;What should be the ideal size of the mailer?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Should we use a visual tool to create the email content and layout? 
Or should we build it using plain HTML?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;How do we test what the content will look like on various email 
services, mail clients and devices? How do we ensure that the email 
is responsive?&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these are very important questions to answer. Unless the content 
is easy to read and follow and looks good and is clear, it might not 
create the intended outcome.&lt;/p&gt;

&lt;h3 id=&quot;c-send-emails--ensuring-deliverability&quot;&gt;C: Send emails &amp;amp; Ensuring Deliverability&lt;/h3&gt;

&lt;p&gt;The next big question is how to send the emails out:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Should we use our regular mail server? Or a separate email service?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If we use our regular mail server and the newsletter / mailer volume 
is high, will it affect the speed and deliverability of regular 
emails? What if the regular mail server limits how many emails we 
can send out in a day?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;How do we predict that, once sent out, the emails will reach the 
users’ Inbox?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;How much are we willing to spend to ensure the deliverability of 
these emails?&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;d-tracking-and-analytics&quot;&gt;D: Tracking and Analytics&lt;/h3&gt;

&lt;p&gt;Is it possible to know when (or if) people see your emails? Or click the 
links inside it? Getting details of whether emails were delivered (or 
bounced), how many recipients opened them and which links (if any) they 
clicked on is important to guage the success of the email campaign.&lt;/p&gt;

&lt;h2 id=&quot;how-do-people-usually-solve-this-problem&quot;&gt;How do people usually solve this “problem”?&lt;/h2&gt;

&lt;p&gt;The most common and popular method of solving the &lt;em&gt;problems&lt;/em&gt; 
above is use a hosted email service to send out the newsletter. A hosted 
service solves all the problems listed above without bothering you with 
how they are solved. Choosing a hosted service, is hence, a very &lt;em&gt;low 
hanging fruit&lt;/em&gt; which helps one to get started quickly. Specifically, 
a hosted service provides the following:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;A way to manage the recipient subscriber database&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A method to embed a subscription box on your blog or webpage&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Free (and paid) email templates that you can use to write your 
content&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Email delivery infrastructure that does its best to ensure delivery 
of emails to recipients&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Extensive reporting and analytics features that enable you to guage 
the reach and success of your email campaign&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;why-self-hosting&quot;&gt;Why self-hosting?&lt;/h2&gt;

&lt;p&gt;As with using any hosted service, there are, however, some downsides of 
hosted services as well:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;You need to share your email database with a third-party&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You don’t have control over your own email subscriber database&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The service (&lt;em&gt;most probably&lt;/em&gt;) uses proprietary software to 
help you compose and deliver emails to the users’ mailboxes&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The email bounces go to the service provider (and not to your email 
address)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Since it is a hosted (and paid) service, there is an automatic 
lock-in - since you use their software and infrastructure to build 
and store your email subscriber databse, you have to keep using 
their service unless you are ready to &lt;em&gt;export&lt;/em&gt; it out for use 
elsewhere.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The open and click tracking information also goes to the hosted 
service provider and usually such reports are difficult &lt;em&gt;(even 
impossible)&lt;/em&gt; to export when you shift service providers.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From my perspective, the single thing that pricks the most is the fact 
that I would be forced to use proprietary software to handle all aspects 
of the workflow. Having built mail servers for more than 18 years now, 
its somewhat of an embarassment to use a hosted service to send out our 
company’s email newsletter!&lt;/p&gt;

&lt;p&gt;Hence, a self-hosted newsletter delivery process is what I chose. Making 
this choice also enables me to write about it and help others to adopt a 
similar workflow as well.&lt;/p&gt;

&lt;h2 id=&quot;the-solution-and-the-process&quot;&gt;The “solution” and the process&lt;/h2&gt;

&lt;p&gt;Here are the components that I deployed to build and send the email 
newsletter.&lt;/p&gt;

&lt;h3 id=&quot;a-mail-server-that-does-its-best-to-deliver-emails&quot;&gt;A mail server that does its best to deliver emails&lt;/h3&gt;

&lt;p&gt;Of course, we already had a mail server. And it worked real well. For a 
few years now, we have had to use one of our colocated cloud servers to 
relay our emails out since most of the IP addresses that broadband ISPs 
give us don’t have &lt;em&gt;good reputations&lt;/em&gt;. Plus, just having a nice, 
clean and well-behaved IP address is not enough these days to ensure 
that your email will reach its recipient’s Inbox. One needs to do a 
variety of exercises to encourage large email providers to accept the 
email. These include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Having a proper reverse-DNS (PTR) record for the outgoing IP of the 
mail server. (And if the reverse-DNS record matches the 
forward-lookup, nothing like it!)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Publishing SPF (Sender Policy Framework) records via DNS that 
declare the conclusive and exhaustive list of IPs and sources from 
where you intend to send emails&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Digitally signing&lt;sup id=&quot;fnref:dkim&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:dkim&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; emails using a technique called DKIM 
(DomainKeys Identified Mail).&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While not exhaustive and conclusive in themselves, these three 
techniques build up the reputation of the IP and domain sending emails 
and that, over time, improves the delivery of emails.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/05/newsletter-dns-records.png&quot; alt=&quot;SPF, DKIM and DMARC records for deeproot.in&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We use a combination of qmail and Haraka to send out, receive and 
deliver emails. The &lt;a href=&quot;https://haraka.github.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Haraka SMTP&lt;/a&gt; server takes care of adding DKIM 
signatures to outgoing emails apart from scanning incoming emails for 
spam and virus. Our instance of Haraka is hosted on a VM at the Digital 
Ocean data center in Bangalore.&lt;/p&gt;

&lt;h3 id=&quot;a-subscriber-management-system&quot;&gt;A subscriber management system&lt;/h3&gt;

&lt;p&gt;The subscriber management system is the user-interface for all 
newsletter-related activities. We use &lt;a href=&quot;http://mailtrain.org&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Mailtrain&lt;/a&gt; to manage the email 
recipient database and send out the mailers. We import our email 
contacts via CSV files into separate “email lists” in Mailtrain.&lt;/p&gt;

&lt;p&gt;Using Mailtrain required us to do two things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Setup and secure a server on which Mailtrain would be hosted, and&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Configure and run the Mailtrain service on this server&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is an inevitable part of self-hosting. Making the choice to 
self-host also implies putting in effort to setup, configure and 
maintain the corresponding services (Haraka and Mailtrain, in our case 
here). I don’t consider this an overhead - Once you setup the services 
properly, they will just run.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/05/newsletter-email-list.png&quot; alt=&quot;Mailtrain's Email List feature&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Mailtrain also has many advanced features wherein it can handle bounces, 
filter email lists for non-existant email IDs (via domain verification), 
send out email campaigns based on certain triggers (like a blog post 
being published) and much more.&lt;/p&gt;

&lt;h3 id=&quot;an-email-template-and-content&quot;&gt;An email template and Content&lt;/h3&gt;

&lt;p&gt;Another thing that Mailtrain excels at is the ability to build email 
templates with ease. It includes a three different visual HTML builders: 
Mosaico, GrapeJS and Summernote. Apart from these, you can also upload 
your custom HTML code or text.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/05/newsletter-mosaico-template.png&quot; alt=&quot;Editing a template using Mosaico&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I started to use the visual editors to build the email template. Mosaico 
is good and has a lot of components and blocks that be inserted. 
However, after much experimentation with all the email template 
builders, I decided to instead build the email template using simple 
HTML.&lt;/p&gt;

&lt;p&gt;To do this, I used a &lt;a href=&quot;https://github.com/InterNations/antwort/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;HTML template&lt;/a&gt; that was licensed under 
a Free Software license. This template looked good and had clean HTML 
that I was able to modify easily. The template also included default CSS 
code to provide a consistent and responsive layout across devices and 
mail clients.&lt;/p&gt;

&lt;p&gt;The newsletter included a text part as well. The intention was that 
those who choose to read the text version of emails or use a text-only 
mail client should still be able to read and appreciate the content of 
the newsletter. Once the HTML template was designed and the content was 
ready, I opened the HTML file with &lt;code&gt;lynx&lt;/code&gt; (a command-line 
browser) and saved the output as a text file. I then cleaned this up 
added it in the text part of Mailtrain’s template.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/05/newsletter-html-and-text.png&quot; alt=&quot;The HTML template (below) with the corresponding text format (above)&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;handling-images&quot;&gt;Handling Images&lt;/h3&gt;

&lt;p&gt;The most common way of linking images from an email newsletter is to 
load them off a remote server. The advantage of doing this is that it 
lowers the size of an email while still enabling it to look good. 
However, it imposes a further constraint on the recipeint, namely: the 
recipient’s mail client should be configured to load images from the 
Internet.&lt;/p&gt;

&lt;p&gt;As a protection against spam emails and email tracking, most mail 
clients and service providers don’t look images from a remote server by 
default. They will generally show you a warning to this effect - so that 
you are aware of the fact that the mail client noticed that the email 
had images linked from a remote server, and as per the mail client’s 
security policy it was not displaying the image.&lt;/p&gt;

&lt;p&gt;So now, the problem is this: how do you make your email newsletter look 
good without loading images off a remote server? The answer is: attach 
the images! This can greatly increase the size of an email and hence, 
multiple precautions need to be taken to keep the sizes low.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/05/newsletter-base64-image.png&quot; alt=&quot;The base64-encoded image embedded within HTML&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The only image I wanted to include and display in the newsletter was our 
logo. And so I came up with a hack: Instead of attaching the image, I 
encoded it using the base64 algorithm and embedded this base64-encoded 
file into the HTML source itself. This technique ensured that the logo 
would show up even in cases where a mail client was not configured to 
load images off the Internet.&lt;/p&gt;

&lt;h3 id=&quot;sending-emails&quot;&gt;Sending Emails&lt;/h3&gt;

&lt;p&gt;Finally, the emails were sent out using the “Campaigns” feature of 
Mailtrain. Mailtrain has a feature by which it can embed custom, 
personalised text and URLs into each email it sends out. These can be 
used to greet a recipient personally and include a custom and direct 
unsubscribe link. When you create a campaign, you specify the “email 
list” and “email template”. Running the campaign just sends the email 
template (after variable substitution) to the email recipients 
one-by-one.&lt;/p&gt;

&lt;p&gt;Mailtrain tries to throttle its email sending. It tries to make sure 
that it does not send too many emails to too many people in a very short 
period of time. If it did so, it might look like an act of a spammer!&lt;/p&gt;

&lt;h3 id=&quot;tracking-opens-and-clicks&quot;&gt;Tracking opens and clicks&lt;/h3&gt;

&lt;p&gt;Lastly, Mailtrain tracks email opens and clicks using a simple technique:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Email email is embedded with a unique 1-pixel image. Whenever 
someone who reads the email loads this image, an “open” is 
recorded.  (Of course, for this to work, the recipient’s mail client 
has to support loading images off the Internet.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Each link in the email is uniquely encoded to first go to Mailtrain 
and then get redirected to the actual link.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This way, it is possible to know how many people opened your email and 
which links they clicked on.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/05/newsletter-tracking.png&quot; alt=&quot;Some details of the newsletter's performance&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;

&lt;p&gt;As you can see, it is not difficult to setup a toolchain and process to 
send out email newsletters. It is also possible to do so without using 
proprietary software and hosted services.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:dkim&quot; role=&quot;doc-endnote&quot;&gt;

      &lt;p&gt;When your outgoing mail server signs an email 
this way, it computes a hash using specific parts of the email body + 
headers and then signs the hash using the private key corresponding to 
the sending domain.&lt;/p&gt;

      &lt;p&gt;The recipient’s server extracts this information from the headers, 
queries the domain’s public key as published via DNS and then tries 
to cryptographically verify if the two match. Apart from being used 
to calculate the sender’s reputation, this method is also used to 
confirm that the message has not been modified in transit. &lt;a href=&quot;#fnref:dkim&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</description>
        <pubDate>Thu, 03 May 2018 09:12:15 +0530</pubDate>
        <link>https://abhas.io//2018/05/self-hosted-email-newsletters/</link>
        <guid isPermaLink="true">https://abhas.io//2018/05/self-hosted-email-newsletters/</guid>
      </item>
    
      <item>
        <title>Public DNS servers and Privacy</title>
        <description>&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/dns-tcpdump.png&quot; alt=&quot;tcpdump&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Recently, CloudFare launched a &lt;a href=&quot;https://1.1.1.1/&quot;&gt;public DNS
service&lt;/a&gt; that they position as a “privacy-first Consumer DNS
service”. And that got me thinking about how much information and data we
are leaking through DNS queries and what that does to our privacy.&lt;/p&gt;

&lt;h2 id=&quot;what-are-dns-resolvers&quot;&gt;What are DNS resolvers?&lt;/h2&gt;

&lt;p&gt;DNS resolvers are network services that convert domain names into IP addresses.
When you visit a website or send an email, all these applications need to map
the name you use to its corresponding IP address. The operating system hands
over this job to a DNS resolver which in turn uses other DNS servers to help do
this mapping as quickly as possible.&lt;/p&gt;

&lt;p&gt;In most home network settings, the DNS resolver is usually provided by the
Internet Service Provider. Your phone or laptop or any other network device at
home will use this  ISP DNS resolver to map names to IP addresses. Most
organisational networks have local resolvers that then contact ISP or public
DNS servers on the Internet.&lt;/p&gt;

&lt;p&gt;In all cases, another function that DNS resolvers perform is that of caching
the DNS name to IP mapping. By doing this, it can respond to DNS queries faster
the next time the same resolution is requested by a machine on the network.&lt;/p&gt;

&lt;h2 id=&quot;self-hosted-dns-resolvers&quot;&gt;Self-hosted DNS Resolvers&lt;/h2&gt;

&lt;p&gt;One of the earliest things I did (as did many other people) was to host the DNS
resolver locally on a network. In fact, for many years, I used to run a DNS
resolver on my own laptop and used it to resolve (and cache) names to IP
mappings locally. I also always ran a DNS resolver on the network (in our
office, for example) for use by other network clients.&lt;/p&gt;

&lt;p&gt;The primary reason for doing this was to control the process of DNS resolution
and also place this resolver very close to the user to provide the best
possible DNS resolution and caching performance. Another reason was that ISP
DNS servers were not always reliable and could also perform badly under load.
Additionally, if there were a lot of machines on the local network, then
sending all this traffic over to the ISP would actually add a delay to the DNS
resolution process (and hence to the users’ Internet usage experience).&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://cr.yp.to/djbdns/run-cache.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;DNS resolver that we used to setup&lt;/a&gt; (and still do in so many
cases) is called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dnscache&lt;/code&gt;. Written by &lt;a href=&quot;https://cr.yp.to/djb.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Dan Bernstein&lt;/a&gt;, it is extremely secure,
simple, lightweight yet powerful toolset that do almost everything related to
DNS serving and resolution.&lt;/p&gt;

&lt;h2 id=&quot;using-google-dns&quot;&gt;Using Google DNS&lt;/h2&gt;

&lt;p&gt;Sometime in 2009, Google launched a public DNS service called &lt;a href=&quot;https://en.wikipedia.org/wiki/Google_Public_DNS&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Google Public DNS&lt;/a&gt;. Their idea was to offer a fast, reliable
and secure DNS service that all sorts of consumers could use for DNS
resolution. Hence, if users chose to use Google Public DNS, then they wouldn’t
have to setup a local DNS or use their ISP’s. All DNS requests would go to
Google’s servers and Google would route the requests from the user to a
resolver/cache closest to the user.&lt;/p&gt;

&lt;p&gt;According to Wikipedia, Google Public DNS is one of the most widely used and
popular DNS server on the Internet handling billions of requests each day from
all over the world.&lt;/p&gt;

&lt;p&gt;The reason people started to use Google DNS (in my opinion) is that it was an
easy to remember IP address (&lt;code&gt;8.8.8.8&lt;/code&gt;), it worked reliably from all
ISPs and most importantly, they no longer needed to setup and maintain an DNS
server of their own anymore. In other words, it delivered a &lt;em&gt;significant
convenience&lt;/em&gt; over existing methods of running or configuring a DNS
resolver. Since Google setup their DNS servers all over the world, as a part of
their “Google Edge Network” (essentially a Content Delivery Network - CDN),
these servers responded really fast and there was not much loss of
latency from using a DNS resolver/cache on the local network.&lt;/p&gt;

&lt;p&gt;Today the use of Google Public DNS has really proliferated. So much so that
most people are not even mindful of the possibility of running their own local
DNS resolver &amp;amp; cache! Most young system admins today (as well as ISP
technicians who come and setup your new broadband connection) even configure
Google DNS by default in their routers and hence, that is what users
in a home or small office (or even large office) scenario end up using. And
this usage is not out of deliberate choice or careful decision making - but
simply because &lt;em&gt;this is something that works well, is known to work well and
hence, there is no need to consider other alternatives&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This is how we have ended up loosing control over DNS. Let us now explore the
dark side of using Google DNS.&lt;/p&gt;

&lt;h2 id=&quot;problems-with-using-google-dns&quot;&gt;Problems with using Google DNS&lt;/h2&gt;

&lt;p&gt;You might question the need for all this discussion. After all, there is a
little bit of Google in everyone’s life! What difference is a simple DNS
resolver going to make? Lets examine this.&lt;/p&gt;

&lt;p&gt;Google is essentially a company which offers to organise the world’s
information in a manner that is&lt;em&gt; usable and useful&lt;/em&gt; to you. It does so
by indexing websites and content of all sorts and then wrapping this index with
a search engine so that you can locate &lt;em&gt;relevant&lt;/em&gt; information quickly.
How does Google know something is relevant or useful or popular? It tracks what
people click on (in search results) or watch (on Youtube, for example). It
rates content based on a variety of parameters (not just content) and then
presents it to you in a way it thinks would be most relevant to you.&lt;/p&gt;

&lt;h2 id=&quot;how-does-google-make-its-search-results-more-relevant-to-us&quot;&gt;How does Google make its search results more relevant to us?&lt;/h2&gt;

&lt;p&gt;When you’re searching for the phone number for a coffee shop in your city or
locality, it won’t return the details of a similarly named coffee shop in
another city or country…. and it can do this because it knows where you are
(based on your IP address or the wireless network you’re connected to or your
GPS location), what type of device you are using to make this query (mobile v/s
desktop) and how you might want to use this information (to make a phone call
or to visit a website or see a rating and so on).&lt;/p&gt;

&lt;p&gt;In a way, Google is &lt;em&gt;manipulating&lt;/em&gt; the information it feels is most
useful to you and usually, that works just fine for most of us.&lt;/p&gt;

&lt;p&gt;The key to all this &lt;em&gt;help&lt;/em&gt; that Google offers us is, however, its
ability (and need) to track what we do on the Internet. This tracking includes
its ability to record your search queries (and tie them in to your name, email
address, gender, employer, location, operating system etc) and your internet
visits (which websites you visit, how often, in which sequence etc).  Which
each application / website you use on the Internet might use its own log and
tracker, Google is pervasive enough to know at least some details.&lt;/p&gt;

&lt;h2 id=&quot;google-dns-tracking-and-ad-serving&quot;&gt;Google DNS, tracking and Ad serving&lt;/h2&gt;

&lt;p&gt;Hence, if you use Google DNS at home or at work, Google can capture details
about which domain names are popular, which domains send out (or receive) most
email, which domain names are more frequently visited (or queried) from a
certain location (or city, or country) and so on. By offering this
free-of-charge and extremely convenient service, Google can now track the
world’s Internet usage and further use this information to organise, classify
and present content to you using its search engine.&lt;/p&gt;

&lt;p&gt;This is not problematic in itself, of course. Why wouldn’t we expect Google to
do such a thing (given that they are essentially a company who’s business model
is that of serving ads)? How is it Google’s use of this information different
from another ISPs? Is this an established way of life now - where we trade
privacy for some convenience?&lt;/p&gt;

&lt;h2 id=&quot;google-dns-and-email&quot;&gt;Google DNS and Email&lt;/h2&gt;

&lt;p&gt;Think of another aspect. Lets say a computer is infected with a virus and is
trying to access a bunch of websites on the Internet. In such cases, two types
of information can be captured by Google DNS – the source of the virus (at
least the network or ISP or location) and the details of the DNS queries that
the virus is trying to make. These details can then go into the Google
Gmail product for further strengthening their anti-virus and anti-spam system
– enabling them to deliver a cleaner mailbox to you.&lt;/p&gt;

&lt;p&gt;While this might be a positive outcome of the fact that Google runs the mail
service, the DNS service and the search service, it also offers them the
ability to do such spam classification based on IP addresses and domain names
at an unprecedented level! Who else can match the extent of information that
they can track and record?&lt;/p&gt;

&lt;h2 id=&quot;googles-dns-privacy-policy&quot;&gt;Google’s DNS Privacy Policy&lt;/h2&gt;

&lt;p&gt;No matter what your perspective might be, the truth is that some details about
you are definitely going to be permanently stored with Google for, at least,
some time whenever you use Google DNS to resolve a name. Check out their &lt;a href=&quot;https://developers.google.com/speed/public-dns/privacy#what_we_log&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Public DNS privacy policy&lt;/a&gt; on this aspect for
more details. Here is a summary of the relevant parts:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/google-dns-privacy-policy.png&quot; alt=&quot;google-privacy-policy&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt;Are we really ready to trade our privacy for saving the 300 seconds that it
might take for us to setup a local, private and self-hosted DNS
server?&lt;/p&gt;

&lt;p&gt;This is something that we must think about and decide for ourselves. Do you
want our Internet usage to provide inputs to Google in its all too-important
mission to organise, index and serve the world’s information?&lt;/p&gt;

&lt;h2 id=&quot;enter-cloudfares-dns-serviceh3&quot;&gt;Enter CloudFare’s DNS Service&amp;lt;/h3&amp;gt;&lt;/h2&gt;

&lt;p&gt;A lot of these thoughts were triggered by Cloudfare’s launch of what they call
their “privacy-focussed public DNS” service. They questioned the status quo and
launched an equally convenient service that seeks to offer more privacy and
improved performance as well. (Cloudfare is, after all, a CDN as well! Rolling
out such a service globally would be easier for them.) They say that they
don’t log any user IP addresses, that they anonymise any information that they
might store (for telemetry and performance measurements, for example) and they
don’t share this information by any third parties (apart from APNIC - who
they’ve partnered with to launch this service).&lt;/p&gt;

&lt;p&gt;The difference between Cloudfare and Google DNS would that be that even if
Google did not share its DNS related tracking information with third parties,
it &lt;em&gt;could&lt;/em&gt; (would?) share it with its own search engine. The search
engine is no third party for Google.&lt;/p&gt;

&lt;p&gt;So should we all shift to use &lt;code&gt;1.1.1.1&lt;/code&gt; as our default DNS servers
now? Is the Cloudfare approach the best thing to have? Can we trust Cloudfare
to live up to its &lt;em&gt;“social contract”&lt;/em&gt; forever in future? I really don’t
know. But if you are now more aware of these concerns, I have a pair of
suggestions to offer.&lt;/p&gt;

&lt;h2 id=&quot;what-is-the-best-solution&quot;&gt;What is the best solution?&lt;/h2&gt;

&lt;p&gt;The absolute best thing to do would be to &lt;strong&gt;self-host your own DNS
resolver&lt;/strong&gt;. These are extremely simple services to deploy, host and
secure. They don’t need power servers either. A simple Rs 800 (US$ 11) wireless
router is powerful enough to do this job for a small network. Or you could even
use a desktop computer or a Raspberry Pi or server.&lt;/p&gt;

&lt;p&gt;There are a variety of Free Software tools that enable you to do this.
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dnscache&lt;/code&gt; is one of them. Another one is called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dnsmasq&lt;/code&gt; and it is extremely
simple to configure and deploy. A more heavy weight solution is to use
&lt;code&gt;named&lt;/code&gt; (BIND). Almost all GNU/Linux distributions ship with these
tools by default.&lt;/p&gt;

&lt;p&gt;If you can not deploy an additional device to serve local DNS for your network,
then the next best option might be to use a public DNS system that promises
some privacy. Cloudfare’s offering might be one of the options available. I
 am sure there are many more that you can find and use.&lt;/p&gt;

&lt;h2 id=&quot;should-we-all-stop-using-google-dns-then&quot;&gt;Should we all stop using Google DNS then?&lt;/h2&gt;

&lt;p&gt;Sure. If you can do that, that’s a good first step to opt-out of being tracked.
It is not a very complex choice to make. If you are responsible for making such
choices, please do that. If you know someone who is authorized to make these
choices, encourage them to understand these issues and then make a smart
choice.&lt;/p&gt;

&lt;h2 id=&quot;on-what-basis-do-i-make-these-claims&quot;&gt;On what basis do I make these claims?&lt;/h2&gt;

&lt;p&gt;The claims and explanations above are based completely on my inference and not
on facts that I am personally aware of. The conclusions that I arrive at above
should be true given the premises and assumptions that I have based them upon.
But then again, I do not possess factual information about this.&lt;/p&gt;

&lt;p&gt;However, it is definitely &lt;strong&gt;not&lt;/strong&gt; going to hurt you to self-host
your DNS resolver and cache.&lt;/p&gt;

</description>
        <pubDate>Tue, 17 Apr 2018 10:30:05 +0530</pubDate>
        <link>https://abhas.io//2018/04/public-dns-servers-and-privacy/</link>
        <guid isPermaLink="true">https://abhas.io//2018/04/public-dns-servers-and-privacy/</guid>
      </item>
    
      <item>
        <title>Choosing Freedom &amp; Privacy on your Android phone</title>
        <description>&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/android-header.png&quot; alt=&quot;Free Software Apps&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;background&quot;&gt;Background&lt;/h2&gt;

&lt;p&gt;I have been using an Android phone for about 6 years now. I have been 
using GNU/Linux exclusively since 1998. Hence, the desire to have a 
phone that provided me with the same freedom and flexibility has been 
very strong.&lt;/p&gt;

&lt;p&gt;Unfortunately, a few months back I realised how I had accepted a life 
where I could have complete freedom and privacy on my computer but was 
content with having almost none on my phone. I was surprised at how I 
was ready to tolerate proprietary software (and evil practices) on my 
phone when I would never install or use such software on my computer.&lt;/p&gt;

&lt;p&gt;This is an account of that introspection and my reasons to take various 
steps to have more freedom and privacy while still using Android on my 
phone.&lt;/p&gt;

&lt;h2 id=&quot;the-realisation&quot;&gt;The Realisation&lt;/h2&gt;

&lt;p&gt;For about 9 months now, one thing that was nagging me repeatedly was how 
easy it was for proprietary software to make its way into my life - 
getting past my most stringent checks and standards. I would download 
applications from the Google Play store, I would even pay to use some of 
them so that I could get rid of ads or get additional functionality and 
I would get blinded by how easy these apps made my life sometimes. 
Somehow, I found it okay to accept the proprietary nature of 
these software applications. For some reason, I did not subject them to 
the same standards that I subjected software on my laptop and servers.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/proprietary.png&quot; alt=&quot;A whole bunch of proprietary 
  software&quot; /&gt; 
  &lt;br /&gt; Proprietary software on my old Android phone&lt;/p&gt;

&lt;p&gt;And then I realised that this was purely a convenience! I was blinded by 
this convenience and was sacrificing my privacy (and more). I was using 
proprietary software to make utility bill payments, to store notes and 
memos, to listen to music, to talk to acquaintances, to send pictures to 
family members and friends and so much more. Even though I was aware of 
free software replacements of these tools, at times, I would still not 
choose it because they, seemingly, weren’t good enough!&lt;/p&gt;

&lt;p&gt;Would I take similar decisions had it been my laptop? Or a server? I 
don’t think so. Then why was I allowing myself to be sold? What was the 
reason for this apparent contradiction? How could I consider my value 
system to be consistent, if I made both these choices and accepted both 
of them? Or then, these must not be choices based on a common value 
system? I was, supposedly, holding myself to different standards in 
different situations!&lt;/p&gt;

&lt;h2 id=&quot;the-technology&quot;&gt;The Technology&lt;/h2&gt;

&lt;p&gt;So what was it so unique about Android that it made it possible for me 
to do things that I really wouldn’t have wanted to do? How is that 
Android made it so simple to access and run proprietary software? Why 
was it so easy to forsake a mindful choice of using free software for 
the convenience that had other costs (loss of freedom and privacy) 
associated with it? To understand this, let me try to explain how 
Android phones are built.&lt;/p&gt;

&lt;h3 id=&quot;what-is-android-really&quot;&gt;What is Android &lt;em&gt;really&lt;/em&gt;?&lt;/h3&gt;

&lt;p&gt;Android, essentially, runs the Linux kernel. It is not the standard, 
mainstream kernel, however. The Android system forks and independently 
maintains this forks of the Linux kernel so that it is suitable to run 
on handsets, tablets and so on. The Android Open Source Project (AOSP) 
is the parent project where all the development happens. AOSP includes a 
framework into which a device manufacturer can plug-in their 
device-specific code so that Android can work well with the features, 
limitations and hardware facilities available in the device.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/android-architecture-300x278.jpg&quot; alt=&quot;Android Architecture&quot; /&gt; 
  &lt;br /&gt; Android Architecture&lt;/p&gt;

&lt;p&gt;There are certain parts of Android that are (almost) always implemented 
using proprietary software by device manufacturers. These parts include 
“the baseband” (a software system that controls all the communication 
components of a phone - the wireless, mobile radio, bluetooth, gps and 
so on), “some Linux kernel modules / drivers” (the AOSP-derived kernel 
with device-specific proprietary extensions) and “application software” 
(the launcher, the Google Play framework and services, location 
services, “useful” application software and so on).&lt;/p&gt;

&lt;h3 id=&quot;how-do-you-put-android-on-a-phone&quot;&gt;How do you put Android on a phone?&lt;/h3&gt;

&lt;p&gt;When you buy an Android-powered phone, you receive a well-integrated 
software package that is aware of and customised / tuned for the 
hardware it is running on. The device manufacturer then provides you 
updates for this software. Since, we purchase the phone as a 
special-purpose device (who’s function is to make calls, provide 
Internet access, run application software etc.), we don’t treat it as a 
combination of hardware and software.&lt;/p&gt;

&lt;p&gt;When we purchase or use a computer, we are very aware of this separation 
and distinction. On a computer, we know where our hardware ends and 
where the operating system (such as Debian GNU/Linux) starts. We are 
also, generally, aware of the fact that we can get the operating system 
to work in a similar manner on most other computers irrespective of the 
underlying hardware differences.&lt;/p&gt;

&lt;p&gt;Android is also the same thing - its just our perception that is 
different. A phone manufacturer takes the AOSP (Android Open Source 
Project) source code (Google publishes it publicly whenever they make a 
new Android release), adds their device specific drivers and software 
and then put on a &lt;em&gt;skin&lt;/em&gt; to make it look different or unique - an 
attempt to entice users with its “coolness” factor and functionality. 
This promotes the notion that the hardware and software are uniquely 
combined and welded together. And that to get the software 
functionality, you need to purchase the hardware as well. But that is 
not true at all.&lt;/p&gt;

&lt;h2 id=&quot;your-own-custom-android-os&quot;&gt;Your own, custom Android OS?&lt;/h2&gt;

&lt;p&gt;It is possible to take the AOSP source code and recompile it 
yourself by adding the proprietary components from the device 
manufacturer. This would give you a “standard” or “vanilla” Android 
feel. Google’s devices usually have this feel since they are built 
directly from the corresponding standard AOSP source code. As long as 
the device you own allows you to install your own Android compilation 
(ie. it can be &lt;em&gt;unlocked&lt;/em&gt;), you can completely remove all 
software that is provided to you by the device manufacturer and instead 
run your own custom-compiled Android version.&lt;/p&gt;

&lt;p&gt;Once you are able to do that, you can realise how clear the separation 
between the hardware and software on a phone is. You will also 
understand that hardware itself is only half the story – the hardware 
is useless unless it is driven by the right software. (So if there is no 
free software component available to drive a particular hardware on the 
phone - perhaps a dual-camera or a sensor - you will not be able to use 
it in your custom-compiled Android unless you also use the device 
manufacturer’s supplied proprietary software.)&lt;/p&gt;

&lt;p&gt;There are many projects that seek to do exactly this. They take 
the AOSP source code and the proprietary device-specific code for a 
specific phone and pre-compile and package it so that you can install 
and use it, if you choose to. The &lt;a href=&quot;http://lineageos.org/&quot;&gt;LineageOS project&lt;/a&gt; is the most prominent 
and comprehensive project that aims to support a wide variety 
of devices. Most other projects such &lt;a href=&quot;http://www.aokp.co/&quot;&gt;AOKP&lt;/a&gt;, &lt;a href=&quot;http://www.resurrectionremix.com/&quot;&gt;Resurrection Remix&lt;/a&gt;, &lt;a href=&quot;http://get.aospa.co/&quot;&gt;Paranoid Android&lt;/a&gt; etc either use 
LineageOS as a base or AOSP directly. All of these provide you with 
pre-compiled, easy-to-install and immediately usable Android images that 
you can flash on a variety of devices. They also publish the 
corresponding source code on Github or elsewhere so that you can rebuild 
the same Android image yourself.&lt;/p&gt;

&lt;h2 id=&quot;how-does-a-custom-rom-like-lineageos-help&quot;&gt;How does a custom ROM like LineageOS help?&lt;/h2&gt;

&lt;p&gt;By using LineageOS (and other such distributions) on your phone, you 
achieve consistency in the user experience across devices. If you 
install LineageOS on three different devices, the end result will be 
similar - you will get the same AOSP-based user interface with a mix of 
add-on apps developed by the LineageOS team to make the end-result more 
usable.&lt;/p&gt;

&lt;p&gt;Just like installing Debian across computers of different hardware 
configuration and architectures provides the same consistent user 
experience, so does LineageOS (and other such distributions). You no 
longer need to put up with bloatware and user interface skins provided 
by your device manufacturer. If you device is supported by LineageOS, 
you can simply install Lineage on it and feel comfortable with its user 
experience. No matter which device you use, you will find the same set 
of settings options and the same default apps.&lt;/p&gt;

&lt;p&gt;After that, if you want, you can still install and use Google services 
and make your phone function like a phone that is a part of the 
“standard” and “default” Android ecosystem.&lt;/p&gt;

&lt;h2 id=&quot;what-had-i-been-doing-wrong-all-these-years&quot;&gt;What had I been doing wrong all these years?&lt;/h2&gt;

&lt;p&gt;Ever since I owned a Google Nexus 4 device some 5 years back, I had been 
using LineageOS (then called Cyanogenmod) on my phone. I would choose my 
phone based on its ability to run an unofficial, community developed and 
packaged Android distribution. I would then proceed to remove the 
default Android OS and install this “unofficial” distribution to make my 
phone usable.&lt;/p&gt;

&lt;p&gt;The mistake I was making for all these years was to then install a 
special GApps package to get the functionality of the Google ecosystem 
on my phone. (LineageOS can not ship with this proprietary Google Play 
functionality because of licensing restrictions. It has to be downloaded 
and installed separately.) This gave my phone the ability to use Google 
Play services and install software from the Google Play store. And that 
is where the road to proprietary software and tracking starts!&lt;/p&gt;

&lt;h2 id=&quot;the-problem-with-using-android-and-the-google-play-ecosystem&quot;&gt;The problem with using Android and the Google Play ecosystem&lt;/h2&gt;

&lt;p&gt;While there are quite a few applications in the Google application 
catalog that are free software, a bulk of the applications are not. 
Chances are that almost everything that you use regularly is 
proprietary. In other words,&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It does not ship with source code,&lt;/li&gt;

  &lt;li&gt;The developer is the only one who knows how it works or what it 
  does,&lt;/li&gt;

  &lt;li&gt;It probably relies on Google Play services to send notifications 
  or integrate with other apps,&lt;/li&gt;

  &lt;li&gt;It possibly uploads your data to the developer's (or a third 
  party's) server for backup / analytics / data-mining / sending alerts 
  etc, and&lt;/li&gt;
  
 	&lt;li&gt;it might use file formats that might be proprietary in nature.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So if you use the application a lot and use it to manage a lot of data, 
you will probably need to continue using it to access your data. If you 
delete the app from your phone, that does not automatically scrub your 
data from their servers. If you re-install the app, you can access your 
data again. Effectively, you become &lt;em&gt;locked-in&lt;/em&gt; to the app and 
its functionality. What might have begun as a convenience, is now a 
compulsion.&lt;/p&gt;

&lt;p&gt;What if you have real money stored inside the app? Or your coffee shop 
rewards points? Or your favourite taxi operator’s routes? They are all 
accessible only if you use that app. You would completely loose access 
to them if you stopped using the app.&lt;/p&gt;

&lt;p&gt;And this is the problem with the Google Play ecosystem. It pushes 
proprietary software to you, it enables application developers to lock 
you in by using proprietary data storage and access techniques, it 
tracks what you do on your phone (so that it can offer &lt;em&gt;better&lt;/em&gt; 
suggestions / advice / notifications to you) and its cripples your 
ability to be in control of the technology you use for managing your 
day-to-day life.&lt;/p&gt;

&lt;p&gt;While I was aware of all these issues, I ignored these dangers. While I 
would passionately talk about the value of choosing software freedom 
everywhere, somehow, I was okay with how this mobile operating system 
was snatching away what I valued most – my freedom and privacy.&lt;/p&gt;

&lt;h2 id=&quot;the-action&quot;&gt;The Action&lt;/h2&gt;

&lt;p&gt;This January, I purchased a new phone that could be unlocked and on 
which I could run Lineage OS without issues. I decided to choose a phone 
that had official LineageOS support so that I could continue to get 
updates. I also wanted to make sure that the source code for the device 
I was going to choose was available and updated. Hence, I chose the 
Samsung Galaxy S7 phone. It was good enough for my needs and for what I 
was planning to experiment with.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/herolte.png&quot; alt=&quot;Galaxy S7&quot; /&gt; 
&lt;br /&gt; Samsung Galaxy S7 page on the LineageOS Wiki&lt;/p&gt;

&lt;h2 id=&quot;step-1-choosing-the-software-ecosystem&quot;&gt;Step 1: Choosing the software ecosystem&lt;/h2&gt;

&lt;p&gt;I then unlocked the phone and installed LineageOS on it. Of course, this 
time, I had no intention of installing Google Play services or any other 
proprietary tools. Instead, I have chosen to only install software that 
is distributed via the &lt;a href=&quot;https://f-droid.org/en/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;F-Droid repository&lt;/a&gt; or independently as a package 
built from published source code.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/fdroid.png&quot; alt=&quot;F-Droid Repository&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt; The F-Droid Application Repository &lt;/p&gt;

&lt;p&gt;This is not a very difficult challenge, actually. Today, there are a lot 
of very high-quality free software applications for Android. You can 
find applications for all your needs on F-Droid. When you install an app 
from the F-Droid repository, it is guaranteed that the application is 
free software in the purest sense of the definition. They specifically 
list and classify applications in case they have any of the following &lt;a href=&quot;https://f-droid.org/wiki/page/AntiFeatures&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;anti-features&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
 	&lt;li&gt;the application contain Ads&lt;/li&gt;

 	&lt;li&gt;the application tracks you (by default)&lt;/li&gt;

 	&lt;li&gt;the application uses or promotes non-free network services&lt;/li&gt;

 	&lt;li&gt;the application has or promotes non-free addons&lt;/li&gt;

 	&lt;li&gt;the application has  non-free dependencies&lt;/li&gt;

  &lt;li&gt;the application is derived from a non-free upstream application 
  and is specifically patched for f-droid compatibility&lt;/li&gt;

 	&lt;li&gt;the application has some known vulnerability,&lt;/li&gt;

 	&lt;li&gt;the application uses a disabled algorithm&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you still choose to use the application, you will do so with the 
awareness that it possesses one or more of these &lt;em&gt;anti-features&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;step-2-choosing-the-degree-of-freedom-and-privacy-you-want&quot;&gt;Step 2: Choosing the degree of freedom and privacy you want&lt;/h2&gt;

&lt;p&gt;In spite of everything I have discussed above, it is still possible to 
install and use proprietary Android apps on your LineageOS phone - 
without even having to install Google play services. But choosing to do 
that defeats the very purpose of this whole exercise. There are three 
things you might need to consider when you’re challenged with a 
proprietary Android app:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Are you  choosing to install a non-free software application on LineageOS
    - ie. is it an application who’s source code is not available and is not
    licensed under a Free / Open Source Software license?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Are you choosing to install a free software application that consumes or
promotes a non-free network service? (Eg. F-Droid has “Telegram” in its
repository and this Telegram client is built using the source code
published by the Telegram team. However, even though the software is free,
it still forces you to use a non-free / non-self-hosted network service.
Another example of this might be a file-sharing or sync system. Or a music
streaming service.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Are you choosing to install a proprietary app which depends on a
proprietary network service? … and you’re choosing to do so because, in
the interim, you can’t leave that “network” overnight. Or avoid using that
service altogether. (Eg. Installing or using WhatsApp is an example of
this. Or using a video streaming service.)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these compromises make dent into your freedom and desire for 
greater privacy. If you are going to make any of these choices, then it 
would be useful to make them mindfully so that you are also aware of 
their side-effects and hence, can take requisite precautions to protect 
yourself from the undesirable ones.&lt;/p&gt;

&lt;h2 id=&quot;step-3-biting-the-bullet&quot;&gt;Step 3: Biting the bullet!&lt;/h2&gt;

&lt;p&gt;Finally - you will just have to decide, one day, that you’re going to do 
this exercise mainstream. I did that after I had carefully installed and 
configured the most useful applications required. I still had my old 
phone which still had proprietary apps but I decided not to use that 
phone or only use it for messaging till I could encourage everyone who 
needed to communicate with me to use alternate channels.&lt;/p&gt;

&lt;p&gt;I did not face any major inconvenience. Surprisingly, it was a great 
learning experience. (&lt;em&gt;Surprisingly&lt;/em&gt; because I thought I knew 
whatever there was to know about LineageOS + Android since I’d been 
using it for many years.) Its only when you do an exercise like this, 
that you realise how many important aspects of your life actually rely 
on non-free and proprietary software.&lt;/p&gt;

&lt;p&gt;But I was happy with the choices I was making. It was refreshing to not 
use proprietary apps on my phone. It was good to be in sync with my 
value system again. I was proud to tell everyone &lt;em&gt;(not that most 
people care, but still…)&lt;/em&gt; that I was not using proprietary 
software on my phone any more.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/apps-1-649x1024.png&quot; alt=&quot;Free Software Android apps on my phone&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt; Free Software Android apps on my phone &lt;/p&gt;

&lt;h2 id=&quot;the-consequences&quot;&gt;The Consequences&lt;/h2&gt;

&lt;p&gt;Let discuss the after-effects of my shift:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Since my preferred method of communication was not 
what most people liked to communicate on, it took some effort to 
encourage others to use free platforms for communication. I prefer 
email, &lt;a href=&quot;https://riot.im/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Riot/Matrix&lt;/a&gt;, SMS and calls (in that order). But I 
can’t impose these choices on others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; I gradually stopped using proprietary and 
tracking-heavy chat platforms such as WhatsApp and Google Hangouts 
completely. Since I never checked messages there, people were forced to 
seek me out using other means and that’s a definite plus. I think I can 
delete my accounts now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt;  As a compromise, I chose to be present on a few 
other communication platforms that at least (a) had free software client 
apps and (b) were known to be privacy respecting systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Since I was already using a personal &lt;a href=&quot;https://nextcloud.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Nextcloud&lt;/a&gt; instance to sync my data and manage other 
aspects of technology (where proprietary cloud apps usually come in), I 
simply continued to use those practices seamlessly on my new phone. I 
did not have any data (files, photos, emails, contacts) on any other 
network service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.&lt;/strong&gt; I further extended my self-hosted tool-set to 
include a &lt;a href=&quot;https://manual.calibre-ebook.com/server.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ebook library&lt;/a&gt;, a &lt;a href=&quot;https://links.solitude.io&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;bookmarking system&lt;/a&gt;, a &lt;a href=&quot;https://www.wallabag.it/en&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;read-it-later system&lt;/a&gt; and a &lt;a href=&quot;https://tt-rss.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;RSS-based news 
reader&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6.&lt;/strong&gt; Since none of the taxi services or banking, payments 
and wallet services are free software, I just stopped using them. I also 
realised that some of them won’t even let me delete my account and so I 
have started bugging their customer support teams to do it for me.&lt;/p&gt;

&lt;p&gt;After using this ecosystem for about 4 months now, I can confidently say 
that I have no regrets and I don’t face any loss of productivity in any 
way. If I feel inconvenienced or limited, I remind myself of how I did 
not give up on GNU/Linux twenty years back.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/osm.png&quot; alt=&quot;Maps with OSMand + OpenStreet Map&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;caption&quot;&gt; Maps with OSMand + OpenStreet Map &lt;/p&gt;

&lt;h2 id=&quot;is-this-for-you&quot;&gt;Is this for you?&lt;/h2&gt;

&lt;p&gt;I expected at least a few people to ask me if they should do this as 
well. But over the past 4 months, no one has asked me this question, 
yet! But let me answer it anyway.&lt;/p&gt;

&lt;p&gt;This is definitely an option for you. At the same time,  you also have 
to understand that you will invite some inconvenience along the way and 
when you do, you should be ready to wade through it and keep going 
forward. There is no difference to make and there is no critical mass to 
reach if we give up easily instead of trying to find alternate 
solutions.&lt;/p&gt;

&lt;p&gt;Making the set of choices I have made can be tough initially. If you 
care enough, you will find it easy to make these decisions and I am here 
to help you out. Finally, making these choices and retaining them boils 
down to how important it is for you to use Free Software on your 
computing and communication devices. If that is not something that you 
want to compromise on, then you’re all set. I am confident that you will 
make these choices and stay on course.&lt;/p&gt;

&lt;p&gt;Here is a further FAQ to guide you.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;a-small-faq&quot;&gt;A Small FAQ&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Have you really stopped using all proprietary apps on your 
phone?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; Yes. My primary phone no longer has any proprietary 
software on it. Any non-free network services that I use are fueled by 
apps released a free software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: So there is no proprietary software at all on your 
phone?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; Its not possible to have a phone made-up of free 
software entirely. Due to the nature of the phone hardware industry, the 
firmware that drives the baseband (ie. the networking components of the 
phone) is implemented as proprietary software. There is also other 
microcode and firmware that is required to use the SoC 
(System-on-a-Chip), to use the GPU (Graphics Processing Unit) and so on.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://puri.sm/shop/librem-5/&quot;&gt;Librem 5 phone&lt;/a&gt; will 
change much of this when it launches. Keep checking their progress to 
see how they’re faring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Are there any other GNU/Linux-based operating systems for 
mobile devices?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; &lt;a href=&quot;https://sailfishos.org/&quot;&gt;SailfishOS&lt;/a&gt; is 
a promising mobile operating system that works and is available for use 
right away. It is possible to use &lt;a href=&quot;https://www.plasma-mobile.org/&quot;&gt;KDE Plasma&lt;/a&gt; on some phones. The 
&lt;a href=&quot;https://ubports.com/&quot;&gt;Ubuntu Touch&lt;/a&gt; project was  aimed at 
build a converged Ubuntu-based mobile operating system.&lt;/p&gt;

&lt;p&gt;For a truly free re-implementation of Android, that is mostly blob-free, 
check out the &lt;a href=&quot;https://www.replicant.us/&quot;&gt;Replicant project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: If you cheat by using App ‘D’, how can you say that your 
choices are consistent with your stated value system&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; This is how I look at it: I have have been able to 
eliminate all aspects of proprietary software that affect my work, 
productivity or life in any way. I don’t store any data on a proprietary 
network or cloud service and I self-host everything that I need. If I am 
using any proprietary software, I have it on my old phone.&lt;/p&gt;

&lt;p&gt;On that phone, I have removed everything other than some entertainment 
apps. Then - are these apps my weakness? Am I going to justify my choice 
of using them by saying that they are just entertainment and not 
connected to my work or life? No - I wouldn’t say that. I, myself, am a 
work in progress. My choices are changing rapidly as well. I have no 
dependency on proprietary software or network services to lead my life. 
Each day, I draw the circle closer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How do you do ‘X’ now? What is the free software replacement 
for ‘Y’?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; That is a very good question. I intend to write a 
follow-up article on all the apps I find useful and how I have replaced 
this “X” and “Y”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/wp-content/uploads/2018/04/android-header.png&quot; alt=&quot;Free Software Apps&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Please feel free to write to me if you made a similar choice or need help in making it.&lt;/p&gt;

</description>
        <pubDate>Tue, 10 Apr 2018 19:29:10 +0530</pubDate>
        <link>https://abhas.io//2018/04/choosing-freedom-privacy-on-your-android-phone/</link>
        <guid isPermaLink="true">https://abhas.io//2018/04/choosing-freedom-privacy-on-your-android-phone/</guid>
      </item>
    
  </channel>
</rss>
