Import SSB Articles

This commit is contained in:
Netscape Navigator 2019-11-16 19:36:00 -06:00
parent 118ba19550
commit 47f10403e1
28 changed files with 405 additions and 2 deletions

View File

@ -0,0 +1,11 @@
---
title: SSB Post 17Bk2
date: 2019-06-30 14:06 -0500
tags:
---
I wish there existed a web proxy that cached _all_ web content browsed while online (in a big external hard drive or something), and then transparently _serves_ content when internet connectivity is lost. Or maybe offer some sort of search page of cached offline content. Does that exist? #offgrid #offline #offline-first #offline-friendly

View File

@ -0,0 +1,9 @@
---
title: SSB Post 1JNQt
date: 2019-06-30 14:06 -0500
tags:
---
I'm taking [@VaporSoft](https://scuttlebutt.nz/) down for maintenance. Sorry.

View File

@ -0,0 +1,14 @@
---
title: SSB Post 1fVax
date: 2019-06-30 14:06 -0500
tags:
---
I think I found a way to use Patchwork as a blogging client! Hooray! This is great news because it will make it much easier to insert photos into my static site generator. I can also do mobile posts via the `manyverse` app.
Special thanks to everyone who helped me along the way!
My SSB posts (but _not_ replies and comments) will begin showing up at https://tilde.town/~netscape_navigator/ shortly.

View File

@ -0,0 +1,12 @@
---
title: SSB Post 2Sgr4
date: 2019-06-30 14:06 -0500
tags:
---
Since [@Gaffen](https://scuttlebutt.nz/) is posting #gardening stuff, I will join in. Been growing a Thai Chili under 200 watts of CFL. Flowers started opening up yesterday after three weeks since last harvest. I am also in the process of building a DIY COB lighting system. To start off, I will only build one bulb and see how it does.
![image.png](/img/ssb/BQRlWZWbfOaktspHr45eQLZu6tOBkbXNB2LBm9tYZb8=.png)
![image.png](/img/ssb/_hzVqdCacWciPusnC6QvkRgFp54o7l_Dd-fVeO_CV5w=.png)

View File

@ -0,0 +1,16 @@
---
title: SSB Post 61wzQ
date: 2019-06-30 14:06 -0500
tags:
---
# Part I: The Dying Practice of Software Ownership
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 necessity.

View File

@ -0,0 +1,54 @@
---
title: SSB Post 9vcVJ
date: 2019-06-30 14:06 -0500
tags:
---
# Part II: 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.

View File

@ -0,0 +1,9 @@
---
title: SSB Post B6ImH
date: 2019-06-30 14:06 -0500
tags:
---
When I use #ssb , I feel like I'm on a quieter, more intimate version of what the internet used to be.

View File

@ -0,0 +1,11 @@
---
title: SSB Post GEEiR
date: 2019-06-30 14:06 -0500
tags:
---
First flowers and fruits forming. #gardening
![image.png](/img/ssb/jY8Ax5s-wxbsLeyuVMqVYaUg_-mg8JZxcG4dH4kywxk=.png)

View File

@ -0,0 +1,9 @@
---
title: SSB Post GWIbb
date: 2019-06-30 14:06 -0500
tags:
---
Is there a way to get a JSON list of all local SSB messages where `"type": "post"` and `"author": "me"`? #help

View File

@ -0,0 +1,9 @@
---
title: SSB Post KkrwK
date: 2019-06-30 14:06 -0500
tags:
---
I've been starting to read about the idea of a merkle-tree based SSB feed and also the README for `ssb-ooo`. Is the out-of-order plugin for SSB essentially a delegation of trust to your peers to avoid downloading an entire stranger's (not friend-of-friend) feed? Can anyone recommend good reading material to someone that is curious about `ooo`? #ssb-dev #ssb-ooo #ssb Thanks!

View File

@ -0,0 +1,11 @@
---
title: SSB Post Mb2kM
date: 2019-06-30 14:06 -0500
tags:
---
Has this ever been done before?
A static site generator that just reads your SSB feed and builds a blog.

View File

@ -0,0 +1,9 @@
---
title: SSB Post OobDu
date: 2019-06-30 14:06 -0500
tags:
---
What are some good articles and resources relating to gossip protocols in general? Extra points if it directly relates to SSB or delay tolerant networks.

View File

@ -0,0 +1,10 @@
---
title: SSB Post T8u3j
date: 2019-06-30 14:06 -0500
tags:
---
![image.png](/img/ssb/2U8NPCHFSVBBgo-i6-niArLA00UUw-F9IMVDHYwFylU=.png)

View File

@ -0,0 +1,13 @@
---
title: SSB Post T9FPB
date: 2019-06-30 14:06 -0500
tags:
---
Just found an interesting public project. It was brought to my attention by Tilde Chat user `dokuja` on the channel `\#tildetel`:
http://futel.net/about/
![image.png](/img/ssb/xQzeeOVZkP4UWGkxuZiy3X8zQQwikwW9a_NZIv90rn0=.png)

View File

@ -0,0 +1,12 @@
---
title: SSB Post ZtBAW
date: 2019-06-30 14:06 -0500
tags:
---
#bamboo is such a cool project! I was very excited to find it last night. Great work!
I had a question after reading the `README.md` file: Why does a #bamboo message have a `backlink` and a `lipmaalink` property? Would it be insecure / inconvenient to _only_ provide the `lipmaalink`? Since the `lipmaalink` is deterministic, wouldn't knowing the current message's sequence number (`n`) be enough to perform verification and prevent tampering (eg: `prevSequence = lipmaa_iterative(MY_SEQUENCE_NUMBER)`)?

View File

@ -0,0 +1,9 @@
---
title: SSB Post jvKh9
date: 2019-06-30 14:06 -0500
tags:
---
This is me testing the fancy new ssb-client module :) #test

View File

@ -0,0 +1,15 @@
---
title: SSB Post kJAmQ
date: 2019-06-30 14:06 -0500
tags:
---
I have a question about replication:
* `User A` and `User B` are friends
* `User B` follows `User C`
* `User C` uses LAN discovery exclusively. No mutual friends, no pubs. Just publishes posts for their followers without following back.
Is it possible for `User A` to see `User C`s posts? Would the gossip protocol replicate the "island" that `User C` created?

View File

@ -0,0 +1,11 @@
---
title: SSB Post kSBb4
date: 2019-06-30 14:06 -0500
tags:
---
Do any #ssb-implementations exist yet that are able to host a full SSB node without the use of NodeJS? That is to say, implement all of the functionality of `ssb-server` and at least partially implement `ssb-client`? I see some neat looking Python examples on Github, but they appear to be partial implementations dealing with specific subsystems, such as SHS.
I am curious for the sake of #ssb-learning.

View File

@ -0,0 +1,44 @@
---
title: SSB Post mGm1z
date: 2019-06-30 14:06 -0500
tags:
---
# Part III: Questions to Ask Publishers
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 flashy 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.

View File

@ -0,0 +1,9 @@
---
title: SSB Post mrEWZ
date: 2019-06-30 14:06 -0500
tags:
---
Has anyone in the SSB community created an 88x31px ("micro banner") banner ad for the SSB project? Asking for a friend.

View File

@ -0,0 +1,9 @@
---
title: SSB Post p-Sgq
date: 2019-06-30 14:06 -0500
tags:
---
Hello from PatchFox. What an exciting piece of software this is. Thanks to everyone who made it possible.

View File

@ -0,0 +1,14 @@
---
title: SSB Post vOpay
date: 2019-06-30 14:06 -0500
tags:
---
Some zinnias and lettuce under artificial light. No, I did not plant the lettuce deep enough 😂 #gardening
I had to trim the lower leaves on the zinnias because they were not giving the lettuce any light.
![image.png](/img/ssb/4a2exteUOagm_bJYVxbsgMoKEjDjFohFzunSU7CX1jk=.png)

View File

@ -0,0 +1,11 @@
---
title: SSB Post wqo57
date: 2019-06-30 14:06 -0500
tags:
---
I just noticed there is only one post in #italodisco . Let's fix that.
Current track of the week: https://www.youtube.com/watch?v=4gaymS2MhgU

View File

@ -0,0 +1,16 @@
---
title: SSB Post zu6ue
date: 2019-06-30 14:06 -0500
tags:
---
Spreadsheets and relational databases are some of the greatest technologies seen in software. I'm trying to think of other technology that have:
* Been around > 20 years.
* Not seen much change in that time (due to completeness, rather than neglect).
* Still meet the needs of modern users despite their age.
* Still see wide adoption.
Email, maybe? 🤔

View File

@ -1,4 +1,4 @@
<br>
<% blog.articles[0...5].each do |article| %>
<% blog.articles.each do |article| %>
<%= partial "layout/article", locals: {current_article: article} %>
<% end %>

View File

@ -11,7 +11,7 @@
<center><u><b>.:: ARTICLES ::.</b></u></center>
<ul>
<% blog.articles[0...5].each do |article| %>
<li> <%= link_to article.title, article %> </li>
<li> <%= link_to article.title[0..18], article %> </li>
<% end %>
</ul>
<hr/>

9
ssb_import.erb.markdown Normal file
View File

@ -0,0 +1,9 @@
---
title: SSB Post <%= key[0..4] %>
date: <%= time %>
tags:
---
<%= content %>

47
ssb_import.rb Normal file
View File

@ -0,0 +1,47 @@
require "pry"
require "open-uri"
require "base64"
require "erb"
USER_ID = "@z2M8msI2EUubNHnrEJncglDIy2/SUd+36jCyJnfeiHk=.ed25519"
BLOB_URL = "http://localhost:8989/blobs/get/%s?contentType=%s"
BLOB_PATH = "source/img/ssb/%s.%s"
POST_TEMPLATE = ERB.new(File.read("ssb_import.erb.markdown"))
txt = `ssb-server createHistoryStream --id #{USER_ID} | jq 'select(.value?.content?.type? == "post")' -c -M`
posts = []
txt.each_line do |x|
json = JSON.parse(x, symbolize_names: true)
if json.dig(:value, :content, :reply) == nil
t = Time.at(1556651174818 / 1000)
posts.push({
time: t.strftime("%Y-%M-%d %H:%M %z"),
key: Base64.urlsafe_encode64(Base64.decode64(json.fetch(:key))),
text: (json.dig(:value, :content, :text) || ""),
links: json.dig(:value, :content, :mentions) || [],
})
end
end
posts.map do |post|
key = post.fetch(:key)
content = post[:text]
time = post[:time]
post[:links].map do |link|
hash = link[:link]
case hash[0]
when "@" # Just link usernames to the SSB Site
content.gsub!(hash, "https://scuttlebutt.nz/")
when "&"
b64 = Base64.urlsafe_encode64(Base64.decode64(hash))
type = link[:type]
url = BLOB_URL % [hash, type]
extension = type.split("/").last
path = BLOB_PATH % [b64, extension]
File.write(path, open(url).read) unless File.file?(path)
content.gsub!(hash, path.gsub("source/", "/"))
end
end
File.write("source/blog/ssb-#{key}.html.markdown", POST_TEMPLATE.result(binding))
end