Done with that article, I think

This commit is contained in:
Netscape Navigator 2019-06-10 21:57:16 -05:00
parent b860eb7e38
commit 8738f4ee03
10 changed files with 175 additions and 35 deletions

View File

@ -10,3 +10,4 @@ gem "redcarpet", "~> 3.3", ">= 3.3.3"
# For feed.xml.builder
gem "builder", "~> 3.0"
gem "middleman-deploy", "~> 2.0.0.pre.alpha"

View File

@ -8,7 +8,7 @@ GEM
tzinfo (~> 1.1)
addressable (2.6.0)
public_suffix (>= 2.0.2, < 4.0)
backports (3.14.0)
backports (3.15.0)
builder (3.2.3)
coffee-script (2.4.1)
coffee-script-source
@ -21,8 +21,8 @@ GEM
execjs (2.7.0)
fast_blank (1.0.0)
fastimage (2.1.5)
ffi (1.10.0)
haml (5.0.4)
ffi (1.11.1)
haml (5.1.1)
temple (>= 0.8.0)
tilt
hamster (3.0.0)
@ -35,19 +35,19 @@ GEM
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
memoist (0.16.0)
middleman (4.3.3)
middleman (4.3.4)
coffee-script (~> 2.2)
haml (>= 4.0.5)
kramdown (~> 1.2)
middleman-cli (= 4.3.3)
middleman-core (= 4.3.3)
middleman-cli (= 4.3.4)
middleman-core (= 4.3.4)
middleman-blog (4.0.3)
addressable (~> 2.3)
middleman-core (>= 4.0.0)
tzinfo (>= 0.3.0)
middleman-cli (4.3.3)
middleman-cli (4.3.4)
thor (>= 0.17.0, < 2.0)
middleman-core (4.3.3)
middleman-core (4.3.4)
activesupport (>= 4.2, < 5.1)
addressable (~> 2.3)
backports (~> 3.6)
@ -70,7 +70,14 @@ GEM
servolux
tilt (~> 2.0.9)
uglifier (~> 3.0)
middleman-deploy (2.0.0.pre.alpha)
middleman-core (>= 3.2)
net-sftp
ptools
minitest (5.11.3)
net-sftp (2.1.2)
net-ssh (>= 2.6.5)
net-ssh (5.2.0)
padrino-helpers (0.13.3.4)
i18n (~> 0.6, >= 0.6.7)
padrino-support (= 0.13.3.4)
@ -78,7 +85,8 @@ GEM
padrino-support (0.13.3.4)
activesupport (>= 3.1)
parallel (1.17.0)
public_suffix (3.0.3)
ptools (1.3.5)
public_suffix (3.1.0)
rack (2.0.7)
rake (12.3.2)
rb-fsevent (0.10.3)
@ -105,6 +113,7 @@ DEPENDENCIES
builder (~> 3.0)
middleman (~> 4.1)
middleman-blog
middleman-deploy (~> 2.0.0.pre.alpha)
redcarpet (~> 3.3, >= 3.3.3)
BUNDLED WITH

View File

@ -1,10 +1,3 @@
###
# Page options, layouts, aliases and proxies
###
# Per-page layout changes:
#
# With no layout
page "/*.xml", layout: false
page "/*.json", layout: false
page "/*.txt", layout: false
@ -12,23 +5,15 @@ page "/*.txt", layout: false
# With alternative layout
# page "/path/to/file.html", layout: :otherlayout
# Proxy pages (http://middlemanapp.com/basics/dynamic-pages/)
# proxy "/this-page-has-no-template.html", "/template-file.html", locals: {
# which_fake_page: "Rendering a fake page with a local variable" }
###
# Helpers
###
activate :blog do |blog|
# This will add a prefix to all links, template references and source paths
# blog.prefix = "blog"
# blog.permalink = "{year}/{month}/{day}/{title}.html"
blog.permalink = "./{title}.html"
# Matcher for blog source files
# blog.sources = "{year}-{month}-{day}-{title}.html"
# blog.taglink = "tags/{tag}.html"
# blog.layout = "layout"
blog.layout = "blog_layout"
# blog.summary_separator = /(READMORE)/
# blog.summary_length = 250
# blog.year_link = "{year}.html"
@ -62,4 +47,12 @@ end
configure :build do
activate :minify_css
activate :minify_javascript
activate :relative_assets
end
activate :deploy do |deploy|
deploy.deploy_method = :rsync
deploy.host = "netscape_navigator@tilde.town"
deploy.path = "/home/netscape_navigator/public_html"
deploy.user = "netscape_navigator" # no default
end

View File

@ -0,0 +1,96 @@
---
title: The Dying Practice of Software Ownership
date: 2019-06-01
---
# Physical Media in the 90s
In the early days of home computing, connectivity was scarce. Some computers did not have an internet connection at all, instead acting as a secluded island of data, never connecting to another node. To add new software to a machine, you paid a one time license fee for a CD-ROM in a box with paper documentation. It was yours and you owned it.
Many rudimentary software packages that resembled software seen today began to take form, and their limitations were due mostly to the hardware and connectivity constraints of the time. Before the age of Wikipedia, software suites like [Encarta](https://winworldpc.com/product/encarta/1994) dominated. The same was true for map software. Before Google Maps and Waze, you would go to the electronics store and buy a GPS-enabled hardware device similar to a tablet. It had no network hardware or software onboard, yet it somehow managed to store every major road and place of business in North America. There were no ads or subscription fees. When the map data was no longer current, you could make a one-time purchase for an updated map data set. When you wanted to upgrade the device, you could sell the old device (and its software license) to someone else.
Even vendors of Free (as in freedom) Software would occasionally offer boxed software for a fee. These fees helped pay for the CD-ROM and printed documentation that came with the software. Many of these companies still exist today, such as Red Hat and [Suse](https://www.suse.com/community/museum/media-box/). Indeed, my first Linux installation disk was purchased from the shelf of a Best Buy retail outlet. In the 90's, downloading an ISO image was simply not feasible and having access to physical media was a convenience.
# In Some Ways, Things Got Worse
Despite low bandwidth, low CPU speeds and expensive storage costs, the CD-ROM era of the 90's and early 2000's offered many advantages not seen in modern software.
* Software licensing fees were a one-time fee, not a recurring subscription. Although ISPs did offer some services that resembled the software-as-a-service model seen today, this was a far less common arrangement.
* We could transfer the license to a third party at our own discretion.
* It didn't have ads (we paid for it, after all). It didn't invade our privacy, either, even for location-based apps.
* If we liked the software, we could pay for the next version (but we didn't have to!).
* It could run offline forever.
* Our data was safely stored on a local hard disk.
* Every application was "Offline First".
Some readers might say that I'm just being a grumpy old web browser from an era long past. Some might say that things have changed and that local data storage is no longer feasible. The reality is that data storage is now cheaper than it has ever been and even the largest datasets can be easily backed up on local media (which by the way, is cheap as hell, go on Amazon and look for yourself).
As an example, I keep a local backup copy of Wikipedia on my hardrive for offline use via [Kiwix](https://www.kiwix.org/en/). As ridiculous as that might seem, the entire Wikipedia database backup (*.zim) weighs in at a pretty reasonable 34 Gigabytes. That's definitely not a small file, but it's not an unreasonable size considering that _it's a backup of every article on Wikipedia_. The entire [Open Street Map dataset for North America](https://download.geofabrik.de/north-america.html) is much smaller than that. I imagine many of the other services that I use which do not offer offline caching are miniscule compared to these two data sets.
Obviously, offline data such as the CD-ROMs of yore offered us something we no longer have. These days, we are stuck with recurring subscription models, data sets that are kept under the custody of a server that we must be connected to at all times, and shady "freemium" business models that violate our privacy.
Hyper-connected "always on" software not only takes away things that help us, it adds problems never seen previously:
* Rampant data breaches. If you don't agree, sign up for [this free service](https://haveibeenpwned.com/). I guarantee your information is floating around on the dark web somewhere, probably because some free service didn't guard your data well enough.
* Applications that previously worked fine offline (SEE: office productivity suites) now require registration, sign-in and constant connectivity, leading to more breaches and hassles.
* "Always On" means "always burning through your overpriced data plan". Don't get me started on the loss of net neutrality.
* Internet ads. You already know what's wrong with internet ads.
* Never ending connectivity means never ending software licensing fees, or as our friends at the Free Software Foundation like to call it, "service as a software substitute".
# Is it Really That Bad?
Yes.
* [HPs Ink Subscription Has DRM That Disables Your Printer Cartridges](https://www.howtogeek.com/403346/hps-ink-subscription-has-drm-that-disables-your-printer-cartridges/)
* [Nest Reminds Customers That Ownership Isn't What It Used to Be](https://www.eff.org/deeplinks/2016/04/nest-reminds-customers-ownership-isnt-what-it-used-be)
* [John Deere Just Swindled Farmers out of Their Right to Repair](https://www.wired.com/story/john-deere-farmers-right-to-repair/)
* [Ford Tries to Shut Down Independent Repair Tool with Copyright](https://www.eff.org/deeplinks/2015/01/ford-tries-shut-down-third-party-repair-tool-copyright)
* [Nintendo Makes It Clear that Piracy Is the Only Way to Preserve Video Game History](https://www.vice.com/en_us/article/wjm5kw/nintendo-makes-it-clear-that-piracy-is-the-only-way-to-preserve-video-game-history)
* [Pacemakers and Piracy: The Unintended Consequences of the DMCA for Medical Implants](https://www.eff.org/deeplinks/2016/04/pacemakers-and-piracy-why-dmca-has-no-business-medical-implants)
* [Nintendo Switch digital games can only be played on one console at a time](https://www.polygon.com/2017/3/3/14801794/nintendo-switch-eshop-purchases-digital-access-transfer-saves)
# What's The Solution?
Software consumers trust publishers with their money. Publishers of the decade have consistently refused to reciprocate that trust by providing ownership.
To regain ownership of software, we must demand software that meets our needs. For commercial products, we must speak with our wallets. For free products, we must be willing to walk away from the services that use personal data as a payment method. We must also be willing to provide financial support to free projects that respect our privacy and freedom.
When a commercial software publisher offers a product that embraces ownership, reward them with your business. If the software is provided free of charge, show your support by sending them a financial donation.
# Questions to Ask
Software ownership, despite being a once simple concept require re-evaluation after years of degradation.
Below I've outlined a list of questions to ask when evaluating software choices. My hope is by voting with our wallets and insisting on software ownership we can build a world where software publishers try their hardest to say 'yes' to the following questions:
* Can I use the software without logging in to external accounts?
* Can I store my data locally? If not, Why?
* Can I retrieve my content when I am offline?
* Will the software interoperate with other packages I own?
* Can I share application data with trusted contacts via non-intermediated means, such as private email or offline file transfer?
* Am I granted a perpetual license to the particular version of software I have purchased?
* Is the software free of intrusive digital rights management?
* Is my data end-to-end encrypted?
* Is the source code available for independent review (some may doubt that this is possible for commercial entities, but many companies have found ways to remain profitable without hoarding "trade secrets").
When evaluating options, *consider supporting the authors that say 'yes' to ownership*. If you have more questions to add to this list, please email me. I am considering building a directory of software ranked by its 'yes' count. The closest thing I have found so far is the [Ethical Alternatives & Resources](https://ethical.net/resources/). I highly recommend it.
# Accepting the Tradeoffs
I have a few vegetarian friends that openly admit to craving a burger now and then. For them, dietary choice is guided by principal rather than convenience. For ownership-respecting software, I can openly admit that we have a long way to go. DuckDuckGo is not as good as Google and SearX fares even worse. [Secure Scuttlebutt](https://github.com/ssbc/patchwork#patchwork) is not as "engaging" as Twitter. Despite these shortcomings, I make the choice to use software that gives me the most ownership. Sometimes, it's not realistic to completely remove a tool from your life, due to family or professional obligations. In those cases, it is still possible to reduce exposure as much as possible, especially since many of the ownership hostile software platforms are supported by advertising revenue.
By supporting ethical software and authors, we can create the world we want to live in.
With that being said, below are some of the challenges I've identified with software that loves you back:
* Local encryption often comes at the cost of poor search and indexing
* Having real end-to-end encryption makes password retrieval difficult.
* Collaborative editing without a central gatekeeper is difficult when both ends own the data.
I would love to hear about other problems and their solutions. Please send me a message on [Tilde.Town](http://tilde.town) if you would like to discuss other challenges.
# Where Do We Go From Here?
Take time to identify software tools that do and don't respect your right to ownership using the questions listed above. When software doesn't respect your rights, get it out of your life and tell your peers why you chose ownership over convenience. Always act in a way that promotes individual ownership and ethical data use. Support ownership respecting authors with more than just kind words and make it obvious to others that you won't settle for anything less.
Seriously. Go go go!

View File

@ -1,6 +0,0 @@
---
title: Contemplating "Full Ownership Software"
date: 2019-06-10
---
Doop dee doo.

45
source/blog_layout.erb Normal file
View File

@ -0,0 +1,45 @@
<% if current_article %>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv='X-UA-Compatible' content='IE=edge;chrome=1' />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>The Navigator's Blog<%= ' - ' + current_article.title unless current_article.nil? %></title>
<link rel="shortcut icon" href="/favicon.ico"/>
</head>
<body bgcolor="#092327">
<!-- == BEGIN JANK LAYOUT -->
<table width="100%" style="height: 100%;" cellpadding="10" cellspacing="0" border="0">
<tr>
<%= partial "layout/headerr" %>
</tr>
<!-- ============ nav_bar.html ============== -->
<%= partial "layout/navbar" %>
<tr>
<%= partial "layout/leftcol" %>
<td width="80%" valign="top" bgcolor="#90c2e7">
<h1><%= current_article.title %></h1>
<a href="https://tilde.town/~netscape_navigator">Part of the Navigator's Blog</a>
<%= current_article.body %>
</td>
</tr>
<%= partial "layout/_footer" %>
</table>
<!-- == END JANK LAYOUT -->
</body>
</html>
<% else %>
Missing article?
<% end %>

View File

@ -7,7 +7,6 @@
<title>The Navigator's Blog<%= ' - ' + current_article.title unless current_article.nil? %></title>
<link rel="shortcut icon" href="/favicon.ico"/>
<%= feed_tag :atom, "#{blog.options.prefix.to_s}/feed.xml", title: "Atom Feed" %>
</head>
<body bgcolor="#092327">
<%= yield %>

View File

@ -15,5 +15,8 @@
<% end %>
Copyleft ©2002
<!-- Start of CuterCounter Code -->
<a href="https://www.cutercounter.com/" target="_blank"><img src="https://www.cutercounter.com/hits.php?id=gmmpqqpo&nd=6&style=21" border="0" alt="hit counter"></a>
<!-- End of CuterCounter Code -->
</td>
</tr>

View File

@ -11,7 +11,7 @@
<h2>Recent Articles</h2>
<ol>
<% blog.articles[0...10].each do |article| %>
<li><%= link_to article.title, article %> <span><%= article.date.strftime('%b %e') %></span></li>
<li><%= link_to article.title, article, relative: true %> <span><%= article.date.strftime('%b %e') %></span></li>
<% end %>
</ol>
<br/>

View File

@ -1,3 +1,3 @@
<tr>
<td colspan="2" valign="middle" height="30" bgcolor="#007C85"><a href="#">Home</a></td>
<td colspan="2" valign="middle" height="30" bgcolor="#007C85"><a href="https://tilde.town/~netscape_navigator">Home</a></td>
</tr>