-
21 votes
-
Stylish browser extension snatches your browsing history---the open source Stylus is recommended instead
33 votes -
Favorite data visualization toolset?
I'm primarily a non-programmer these days, but have a fairly extensive background in statistical analysis - seeking recommendations for best/cheapest/easiest-to-learn data visualization tools. I...
I'm primarily a non-programmer these days, but have a fairly extensive background in statistical analysis - seeking recommendations for best/cheapest/easiest-to-learn data visualization tools. I have access to PowerBI and Tableau through work, but any other recommendations are welcome. You can take the SQL-family relational database query skills for granted, but not necessarily noSQL, Hadoop or the other popular big data sources.
9 votes -
Cage the Mastodon -- features for dealing with abuse and harassment
6 votes -
Public access Unix systems, another alternative social environment
I have been writing a paper on the history of a type of online social space called public access Unix systems, and I'm posting a Tildes-tailored summary here in case anyone is interested. If you...
I have been writing a paper on the history of a type of online social space called public access Unix systems, and I'm posting a Tildes-tailored summary here in case anyone is interested. If you enjoy this and want to read more (like 10+ pages more) look at the bottom of this post for a link to the main paper-- it has citations, quotes, and everything, just like a real pseudo-academic paper!
I wrote this because a summary didn't exist and writing it was a way for me to learn about the history. It was not written with the intent of commercial publication, but I'd still love to share it around and get more feedback, especially if that would help me further develop the description of this history and these ideas. If you have any thoughts about this, please let me know.
What are Public Access Unix Systems?
When the general public thinks of the Unix operating system (if it does at all), it probably isn't thinking about a social club. But at its core, Unix has a social architecture, and there is a surprisingly large subculture of people who have been using Unix and Unix-like operating systems this way for a long time.
Public access Unix systems are multi-user systems that provide shell accounts to the general public for free or low cost. The shell account typically provides users with an email account, text-based web browsers, file storage space, a directory for hosting website files, software compilers and interpreters, and a number of tools for socializing with others on the system. The social tools include the well-known IRC (Internet Relay Chat), various flavors of bulletin-board systems, often a number of homegrown communication tools, and a set of classic Unix commands for finding information about or communicating with other system users.
But more than just mere shell providers, public access Unix systems have always had a focus on the social community of users that develops within them. Some current systems have been online for several decades and many users have developed long-standing friendships and even business partnerships through them. i.e. they're a lot of fun and useful too.
Of interest to Tildes members is that public access Unix systems have for the most part been non-commercial. Some take donations or charge membership fees for certain tiers of access (some in the U.S. are registered 501(c)(3) or 501(c)(7) non profits). They almost invariably do not take advertising revenue, do not sell user profile data, and the user bases within them maintain a fairly strong culture of concern about the state of the modern commercial Internet.
This concept of a non-commercial, socially aware, creative space is what really got me interested in the history of these systems. Further, the fact that you have this socially aware, technically competent group of people using and maintaining a medium of electronic communication seems particularly important in the midst of the current corporate takeover of Internet media.
History
Public access Unix systems have been around since the early 1980's, back when most of the general public did not have home computers, before there was a commercial Internet, and long before the World Wide Web. Users of the early systems dialed in directly to a Unix server using a modem, and simultaneous user connections were limited by the number of modems a system had. If a system had just one modem, you might have to dial in repeatedly until the previous user logged off and the line opened up.
These early systems were mostly used for bulletin-board functionality, in which users interacted with each other by leaving and reading text messages on the system. During this same time in the early 80's, other dial-in systems existed that were more definitively labeled "BBSes". Their history has been thoroughly documented in film (The BBS Documentary by Jason Scott) and in a great Wikipedia article. These other systems (pure BBSes) did not run the Unix OS and many advanced computer hobbyists turned up their noses at what they saw as toyish alternatives to the Unix OS.
Access to early dial-in public access Unix systems was mostly constrained by prohibitively expensive long-distance phone charges, so the user bases drew from local calling areas. The consequence was that people might meet each other online, but there was a chance they could end up meeting in person too because they might literally be living just down the street from each other.
The first two public access Unix systems were M-Net (in Ann Arbor, MI) and Chinet (in Chicago, IL), both started in 1982. By the late 1980's, there were more than 70 such systems online. And at their peak in the early 1990's, a list of public access Unix systems shared on Usenet contained well over 100 entries.
Throughout the 1980's, modem speeds and computer power increased rapidly, and so did the functionality and number of users on these systems. But the 1990's were a time of major change for public access Unix systems. In 1991, the Linux operating system was first released, ushering in a new era of hobbyist system admins and programmers. And new commercial services like AOL, Prodigy and CompuServe brought hordes of new people online.
The massive influx of new people online had two big impacts on public access Unix systems. For one, as access became easier, online time became less precious and people were less careful and thoughtful about their behavior online. Many still describe their disappointment with this period and their memory of the time when thoughtful and interesting interactions on public access Unix systems degraded to LOLCAT memes. In Usenet (newsgroups) history, the analogous impact is what is referred to as "The Eternal September".
The second impact of this period was from the massive increase of computer hobbyists online. Within this group were a small but high-impact number of "script kiddies" and blackhat hackers that abused the openness of public access Unix systems for their own purposes (e.g. sending spam, hacking other systems, sharing illegal files). Because of this type of behavior, many public access Unix systems had to lock down previously open services, including outbound network connections and even email in some cases.
For the next decade or so, public access Unix systems continued to evolve with the times, but usership leveled off or even decreased. The few systems that remained seemed to gain a particular sense of self-awareness in response to the growing cacophony and questionable ethics of the commercial World Wide Web. This awareness and sense of identity continues to this day, and I'll describe it more below because I think it is really important, and I expect Tildes members agree.
2014 and Beyond
In 2014, Paul Ford casually initiated a new phase in the history of public access Unix systems. He registered a URL for tilde.club (http://tilde.club) and pointed it at a relatively unmodified Linux server. (Note: if there is any relation between tilde.club and Tildes.net, I don't know about it.) After announcing via Twitter that anyone could sign up for a free shell account, Ford rapidly saw hundreds of new users sign up. Somehow this idea had caught the interest of a new generation. The system became really active and the model of offering a relatively unmodified *NIX server for public use (a public access Unix system under a different name) became a "thing".
Tilde.club inspired many others to open similar systems, including tilde.town, tilde.team* and others which are still active and growing today. The ecosystem of these systems is sometimes called the tilde.verse. These systems maintain the same weariness of the commercial WWW that other public access Unix systems do, but they also have a much more active focus on building a "radically inclusive" and highly interactive community revolving around learning and teaching Unix and programming. These communities are much, much smaller than even small commercial social networks, but that is probably part of their charm. (* full disclosure, I wield sudo on tilde.team.)
These tilde.boxes aren't the only public access Unix systems online today though. Many others have started up in the past several years, and others have carried on from older roots. One of the most well known systems alive today is the Super Dimension Fortress (SDF.org) that has been going strong for over three decades. Grex.org and Nyx.net have been online for nearly as long too. And Devio.us is another great system, with a community focused around the Unix OS, particularly OpenBSD. Not all these systems label themselves as "public access Unix systems", but they all share the same fundamental spirit.
One system that I find particularly interesting is Hashbang (aka #!, https://hashbang.sh). Hashbang is a Debian server run and used by a number of IT professionals who are dedicated to the concept of an online hackerspace and training ground for sysadmins. The system itself is undergoing continual development, managed in a git repository, and users can interact to learn everything from basic shell scripting to devops automation tooling.
Why is Hashbang so cool? Because it is community oriented system in which users can learn proficiency in the infrastructural skills that can keep electronic communications in the hands of the people. When you use Facebook, you don't learn how to run a Facebook. But when you use Hashbang (and by "use", I mean pour blood, sweat and tears into learning through doing), you can learn the skills to run your own system.
Societal role
If you've read other things I've written, or if you've interacted with me online, then you know that I feel corporate control of media is a huge, huge concern (like Herman and Chomsky type concern). It's one of the reasons I think Tildes.net is so special. Public access Unix systems are valuable here too because they are focused on person-to-person connections that are not mediated by a corporate-owned infrastructure, and they are typically non-profit organizations that do not track and sell user data.
You're no doubt aware of the recent repeal of Net Neutrality laws in the U.S., and you're probably aware of what The Economist magazine calls "BAADD" tech companies (big, anti-competitive, addictive and destructive to democracy). One of the most important concerns underlying all of this is that corporations are increasingly in control of our news media and other means of communication. They have little incentive to provide us with important and unbiased information. Instead, they have incentive to dazzle us with vapid clickbait so that we can be corralled past advertisements.
Public access Unix systems are not the solution to this problem, but they can be part of a broader solution. These systems are populated by independently minded users who are skeptical of the corporate mainstream media, and importantly, they teach about and control the medium of communication and social interaction itself.
Unix as a social medium
So what is it that makes public access Unix systems different? This seems like a particularly interesting question relative to Tildes (so interesting that I even wrote another Tildes post about it). My argument is partly that Unix itself is a social and communication medium and that the structure of this medium filters out low-effort participation. In addition to this, public access Unix systems tend to have user bases with a common sense of purpose (Unix and programming), so users can expect to find others with shared interests.
In contrast to modern social media sites like Facebook or Twitter, you have to put in some effort to use Unix. You have to learn to connect, typically over ssh; you have to learn to navigate a command line shell; and you have to learn the commands and options to run various utilities. And to really use Unix, you have to learn a bit of programming. It's not incredibly hard in the end, but it takes significantly more effort than registering for a Facebook or Twitter account and permitting them to scan your email address book. Once you get over the learning curve, it is powerful and fun.
This effortful medium does two things. For one, it weeds out people who aren't willing to put in effort. And for two, it provides learned users with a diverse palette of tools and utilities for building and sharing creative output.
Public access Unix systems are all about active creation of content to be enjoyed and shared with others, and not about passive media consumption. They are about the community that develops around this purpose and not around the profit that can be squeezed out of users' attention.
Future of public access Unix systems
Public access Unix systems have been around for nearly four decades now. They have seen ups and downs in popularity, and they have been humming along in the background as computing has gone from the ARPANET to the spectacle of the commercial World Wide Web. Early public access Unix systems were largely about the novelty of socializing with other hobbyists through a computer, and that interest has evolved into the learning, doing and teaching model of an online hackerspace today.
These systems are not huge, they are not coasting on advertising revenue, and they get by purely on the contributions, volunteer effort, and enthusiastic participation of their users. But as a contrast to commercial social network sites, they are an example of what online socializing can be when individuals put effort, thought, and compassion into their interactions with others. And just as importantly, they pass on the very skills that can independently maintain this social and communication medium for future generations of users.
--
As promised in the intro, if you're interested in reading a much more in-depth version of this article, here's the longer copy:
https://cmccabe.sdf.org/files/pubax_unix_v01.pdf73 votes -
The 128 Language Quine Relay
15 votes -
NetBSD 8.0 Release Candidate 2
7 votes -
Programming Challenge: Markov Chain Text Generator
Markov Chains are a stochastic model describing a sequence of possible events in which the probability of each event depends only on the state attained in the previous event. By analyzing a...
Markov Chains are a stochastic model describing a sequence of possible events in which the probability of each event depends only on the state attained in the previous event. By analyzing a document in some way and producing a model it’s possible to use this model to generate sentences.
For example, let’s consider this quote:
Be who you are and say what you feel, because those who mind don't matter, and those who matter don't mind.
Let’s start with a seed of
be
, which there is only one of in this text and it’s following word iswho
. Thus, a 100% chance of the next state beingwho
. Fromwho
, there are several next states:you
,mind
, andmatter
. Since there are 3 options to choose from, the next state has a 1/3 probability of each. It’s important that if there were for example two instances ofwho you
thenyou
would have a 2/4 probability of next state. Generate a random number and choose the next state, perhapsmind
and continue until reaching a full stop. The string of states we reached is then printed and we have a complete sentence (albeit almost certainly gibberish).Note: if we were in the state
mind
, our next two options would be.
ordon’t
, in which if we hit.
we would end the generation. (or not, up to you how you handle this!)To take it a step further, you could also consider choosing the number of words to consider a state. For example, two words instead of one:
those who
has two possible next states:who matter
orwho mind
. By using much longer strings of words for our states we can get more natural text but will need much more volume to get unique sentences.This programming challenge is for you to create a Markov Chain and Text Generator in your language of choice. The input being a source document of anything you like (fun things include your favourite book, a famous person’s tweets, datasets of reddit / tildes comments), and possibly a seed. The output being a sentence generated using the Markov Chain.
Bonus points for:
- Try it a bunch of times on different sources and tell us the best generated sentences
- Using longer strings of words for the state, or even having it be variable based on input
- Not requiring a seed as an input, instead implementing that into your Markov Chain (careful as infinite loops can occur without considering the seed)
- Implement saving the Markov Chain itself, as it can take very long to generate with huge documents
- Particularly Fast, efficient, short or unique methods
Good luck!
P.S A great place to find many large plain text documents for you to play with is Project Gutenberg.
17 votes -
Gentoo GitHub Organization hacked
16 votes -
Playing SNES games on unmodified NES via Raspberry Pi
11 votes -
The Ante programming language
23 votes -
Keras or PyTorch as your first deep learning framework
8 votes -
Elixir community's Google Summer of Code 2018 projects
6 votes -
WPA3 is here. What does everyone think?
18 votes -
Which domain registrar has the best pricing / services?
What domain registrar do you suggest? I have several domains with GoDaddy. I have them there because one of them is a .it domain, and several other registrars didn't offer them at the time. So I...
What domain registrar do you suggest? I have several domains with GoDaddy. I have them there because one of them is a .it domain, and several other registrars didn't offer them at the time. So I kept everything at GD to have it all in one place. And for the longest time, they were giving me great deals, but not so much anymore.
They send me a lot of coupons and try to sell me on the domain club here and there. They sent me a coupon for 20% off renewals. I thought great, but when I checked my control panel the prices of renewing had doubled. GD is really overcharging at this point. I plan to let several domains just lapse and keep the ones worth money and the ones I use personally. Which makes this even more of an ideal time to switch.
I was hoping Name Silo finally offered .it, but they don't. At this point I have been waiting several years for them to offer .it support, and they keep saying check back in 6 months. So I'll just bite the bullet and leave my .it and .me at GD and move everything else out if they end up being the best deal. I'd like the keep them together because I use those two for email, and I'd like them in one place for management ease.
Thanks
12 votes -
Python 3.7 has been officially released!
25 votes -
Hack.Summit() and Block-Chain
Website: https://hacksummit.org Honestly I'm not following this block-chain thing that much closely (apart from knowing the theory of how it works on a basic level) and I'm curious to see if this...
Website: https://hacksummit.org
Honestly I'm not following this block-chain thing that much closely (apart from knowing the theory of how it works on a basic level) and I'm curious to see if this event can help me get what it is all about :)
Anyone interested in a free pass can send a PM to me (do not reply here please) and it would be interesting if we use this topic to talk about your previous experience with the event or block-chain in general.
2 votes -
Running Fully Modern Linux on a 486
6 votes -
What are the positive aspects of Microsoft's acquisition of GitHub, if any?
As someone who is relatively removed from the programming world (I do basic Python scripting and not much else), I'm curious to see an argument opposing what I perceive as the majority viewpoint....
As someone who is relatively removed from the programming world (I do basic Python scripting and not much else), I'm curious to see an argument opposing what I perceive as the majority viewpoint. Those against the acquisition have cited examples of Microsoft "ruining" services such as Skype and Minecraft.
21 votes -
Slack outage: All workspaces affected
13 votes -
OpenAI Five
6 votes -
What's in a git repo?
Okay, I know the obvious answer is the history of the files. But how can I, from the command line, really understand what is hiding inside that .git directory? Today I was doing one of my periodic...
Okay, I know the obvious answer is the history of the files. But how can I, from the command line, really understand what is hiding inside that .git directory?
Today I was doing one of my periodic disk space audits, trying to figure out where my usage goes. This comes from having a 64GB drive mounted as /home on my Linux laptop. I found some 15G of old video files to delete today, so I'm no longer as pressed for space. But my interest was piqued by one thing I have downloaded from Github that is ~120 megs for a very simple program. Poking around further I find that most of that usage is a single file:
$ ls -lh withExEditorHost/.git/objects/pack/pack-df07816cd15fb091439112029c28ebc366501652.pack -r--r--r-- 1 elijah elijah 102M Mar 14 23:28 withExEditorHost/.git/objects/pack/pack-df07816cd15fb091439112029c28ebc366501652.pack $ file withExEditorHost/.git/objects/pack/pack-df07816cd15fb091439112029c28ebc366501652.pack withExEditorHost/.git/objects/pack/pack-df07816cd15fb091439112029c28ebc366501652.pack: Git pack, version 2, 299 objects $
Is there a
unzip
ortar xzf
equivalent for Git pack files? Naive usage ofgit unpack-file
is only generating errors for me.17 votes -
Our Vision for Rust and WebAssembly
5 votes -
Linux Genuine Advantage
9 votes -
Supercharging the Git Commit Graph
6 votes -
It Turns Out RISC-V Hardware So Far Isn't Entirely Open-Source (no better than ARM; worse than POWER)
5 votes -
What are you working on this weekend?
This is a thread to discuss what projects you're working on this weekend. (I've basically stolen this idea from Lobste.rs.)
15 votes -
Programming Challenge: Given a triangle of numbers, find the path from the top to the bottom of the triangle with the largest sum.
This problem is based on the Project Euler problem here. Goal: Given some input describing a triangle of numbers, find the path starting from the top-most row of the triangle and ending at the...
This problem is based on the Project Euler problem here.
Goal: Given some input describing a triangle of numbers, find the path starting from the top-most row of the triangle and ending at the bottom-most row of the triangle that contains the largest sum of all of the numbers along the path. You may only move downward and you must select an adjacent position to move to. Efficiency is not a requirement for completion.
Constraints:
- The first line of input for a triangle will be a single integer telling you how many rows the triangle will have.
- Each following line of input will be the next row of the number triangle, starting at the first row.
- For each line describing the number triangle, the individual numbers will be separated by a single space.
Note: The constraints above are to keep hard-coded triangles out of submitted solutions while also ensuring that all languages can equally handle this problem without annoying workarounds for lower-level languages. The consistency also makes it easier for beginners to review and understand someone else's code, and makes it easier to receive help if you get stuck. They're not necessarily required, but are highly encouraged.
Example input:
4 1 3 2 4 5 6 7 8 9 10
Corresponding triangle:
1 3 2 4 5 6 7 8 9 10
Expected result:
19
(1 + 2 + 6 + 10)Extra Credit: As noted on the Project Euler page, you can solve this using a brute force method, but it's incredibly inefficient. Specifically, a brute force solution would be O(2n) time (exponential). There exists a solution that can be solved in O(n2) time (quadratic). Find this solution.
13 votes -
Ways to think about machine learning
6 votes -
So, what have you been working on?
My github is full of sad unfinished projects e: mostly aimed towards hobbiests but anyone is welcome!
27 votes -
Announcing Rust 1.27
19 votes -
Angular with PureScript
I have to do an assignment for university soon-ish, and it requires Angular. I'm not very fond of that framework specifically, but I would be interested in making it more interesting as a learning...
I have to do an assignment for university soon-ish, and it requires Angular. I'm not very fond of that framework specifically, but I would be interested in making it more interesting as a learning project. I've also recently discovered PureScript, which I have no experience with right now.
Searching online, I've purescript-angular, which hasn't been updated in years. I also couldn't find much else. Of course, I may be missing something simple (for instance, it's actually supported by default in Angular these days), so I wanted to ask if any of you know if this is possible, and if so, how?
6 votes -
How an Engineering Company Chose to Migrate to D
2 votes -
Searching entry-level linux laptop recommendation
Hey there! I'm planning on going full linux again (last time was 5-6 years ago). The only problem is: i've lost track of the community and especially what hardware is currently best to run,...
Hey there!
I'm planning on going full linux again (last time was 5-6 years ago). The only problem is: i've lost track of the community and especially what hardware is currently best to run, especially tech that was really giving me headaches back then (GPU - remember the omega drivers?).
But searching for linux compatible laptops without purchasing a machine from some dedicated vendor is quite hard.
Any recommendations?
17 votes -
AMD’s Epyc Return To The Datacenter Ring
5 votes -
MySQL High Availability at GitHub
3 votes -
Linux distro of choice?
Topic.
28 votes -
I Discovered a Browser Bug: Accessing cross-origin resources with Service Worker and WAV headers
7 votes -
YouTube blocks Blender's (and MIT's) videos, pressures Blender into a contract forcing monetization or no service, Blender switches to PeerTube
38 votes -
Reducing memory allocations from 7.5GB to 32KB
29 votes -
Components involved for flashing a custom Android ROM. Am I understanding things correctly?
I'm going to be flashing a custom ROM on my Nexus 5X device, and I was just curious if I'm understanding all the components involved. I currently have CopperheadOS on my device, but that ROM may...
I'm going to be flashing a custom ROM on my Nexus 5X device, and I was just curious if I'm understanding all the components involved. I currently have CopperheadOS on my device, but that ROM may be dead based on current events. I'm not switching because of this news, but mainly because I just want to try something else for the hell of it. I think I'm going to make the switch to Lineage, but there are way more options involved versus flashing CopperheadOS.
It seems the main components to consider when flashing are the following:
- The ROM itself (CopperheadOS, Lineage, PureNexus, etc.)
- The custom recovery (TWRP, etc.)
- The kernel (ElementalX, Franco, etc.)
- root (magisk, etc.)
- Play Services (OpenGApps, etc.)
CopperheadOS was kind of it's own package, so I didn't have to consider all of these other options.
My understanding is the minimum decisions I need to make if I want a custom ROM, is picking the ROM itself, and a custom recovery. In my case I'm going for LineageOS and TWRP.
Choosing a custom kernel seems to be optional. I think I might go with Franco on this one based on the little research I've done. But to flash a custom kernel, I think I need root, right? So now I'll need to get root access which requires another tool. I was going to go with Magisk based on not much. Just seems to be common. So that's 4 main things there. The ROM (LineageOS), the recovery (TWRP), the kernel (Franco), and root (Magisk). I personally don't want any Google services on my device, so I'm fine with skipping that part. I currently don't have any installed, and I'm doing fine without them.
So does my view on this seem correct? Are all the things I mentioned necessary for what I want to do? If I want LineageOS then I need a custom recovery right? If I want a custom kernel, then I need root which requires a separate tool, right? Just making sure I'm not doing more than I need to if I decided to go through with this. As a side convo, please recommend whatever ROMs, kernels, or root tools that you want. I have a Nexus 5X, and I'm hoping it doesn't bootloop after I'm done doing all this flashing =)
9 votes -
FireEye Blog: Bring Your Own Land
2 votes -
The Cathedral and the Bazaar
7 votes -
Bitcoin Phishing Attack
Got this phishing SMSmessage today. I spun up a VM and investigated the domain provided in the message. Found the provider and reported it to them. The phishing page is a replica Coinbase login...
Got this phishing SMSmessage today. I spun up a VM and investigated the domain provided in the message. Found the provider and reported it to them.
The phishing page is a replica Coinbase login page.
10 votes -
Airgeddon - Wireless auditing made easy
3 votes -
Perl 6 weekly - 2018.25 A Quick One From Salt Lake City
4 votes -
Why doesn't Common Lisp see more usage?
Hey all, I've been studying Common Lisp recently, and as far as I can see, this is a pretty capable, mature language. Moreover, Lisp has been around since the 60s and it doesn't see much usage (as...
Hey all,
I've been studying Common Lisp recently, and as far as I can see, this is a pretty capable, mature language. Moreover, Lisp has been around since the 60s and it doesn't see much usage (as far as I'm aware) outside of Emacs Lisp and AutoLISP. What gives?17 votes -
Anyone else here involved/interested in Formal Verification?
5 votes -
What should replace Electron as a WORA framework?
2 votes -
My Sunday evening project: Geocoding with Folium and OpenCage
9 votes