-
9 votes
-
What makes a Linux Distribution Stable instead of Not-Stable? (full-disclosure: I wrote this for Reddit - /r/ManjaroLinux - but I think I'd love to know what you think about the subject))
Introduction I wanna say that I made several corrections, additions, and improvements just because I love you guys way more than I love the people at Reddit Please note that I'm merely a dedicated...
Introduction
I wanna say that I made several corrections, additions, and improvements just because I love you guys way more than I love the people at Reddit
-
Please note that I'm merely a dedicated Linux user, I'm speaking from that point of view. I'm not a developer and not a programmer. These are just my opinions of 10+ years using Linux
-
These are just some commentaries from a dude who happen to love the concept of STABILITY in general (autism represent) and would like to discuss how it works when it comes to Linux distributions. This is all based on my use-cases and on what I think is common sense. I have no knowledge of how open-source projects really work, and make no claims regarding how they should work.
-
Only distributions that claim to be stable are under my scope. So Arch and Debian Unstable are clearly out the scope, but Slackware, CentOS, Debian Buster, and MX-Linux are clearly under the scope.
-
All considerations are void if the malfunctioning is SOLELY a product of hardware, extremely rare conditions or your own lack of knowledge.
-
Except when otherwise noted, non-compliance means the distribution is deemed not stable.
1 Deal Breakers
After a correct installation by the user on hardware that is expressly supported by the developers, a stable distribution should, in the period of 1 year (counted from the first boot):
- Remains bootable, manageable and fully accessible.
- Work with almost no maintenance or intervention (updates excluded)
- Present no decrease in performance
- Freeze at most once every two weeks
- Have no package issue that cannot be solved by a simple command from its own package manager
2 Major Issues
Because of the complex nature of major issues, I'm not going to establish any criteria about them. Both stable and unstable distributions have critical problems that cannot have a fixed time-frame.
3 Minor Issues/Bugs/Annoyances/etc
Small issues are the ones that do not impede the usage of the machine, but provoke significant annoyances:
Examples:
- Window switching is not working properly
- The mouse stops working for 3 seconds every 15 minutes
- For some reason, the letter "c" is sending "h" on the terminal
- My configurations are not saved after reboot
- My configurations are not being saved at all
- I must change video output manually every time I switch monitors
- I must change audio output manually every time I switch monitors
- Some essential configuration is ridiculously hard to find
- Configurations have no undo button
- Configurations have no reset button
- A certain package cannot be installed
- A certain dependence cannot be installed (dependency hell)
- There's a ridiculously accessible keyboard shortcut that makes your keyboard change layouts all the fucking time
3.1 Places for Research
Such minor issues must be solved within 30 days, as long as the user does their part and seek some of the following resources:
- Official websites
- Official forums
- Official warnings, newsletters, etc
- Semi-official communities
- FAQs
- Manuals
- Github Issues
- Gitlab Issues
- Other Venues to post issues
If the minor issue is not solved in 45+ days, the distribution will be deemed not stable, regardless of the behavior of the user.
4. Conclusion
It is my opinion that, if any of the major and minor requirements are not fulfilled according to their particular rules, the distribution in question should not be deemed not Stable.
4 votes -
-
Zig 0.5 Release Notes
10 votes -
Humble Book Bundle: Linux & UNIX by O'Reilly
8 votes -
Simple Made Easy - Talk by Rich Hickey (creator of Clojure)
4 votes -
TabNine: Code autocompletion with deep learning
12 votes -
Python for Beginners - Microsoft Developer
5 votes -
Firenvim - embed Neovim in to Firefox/Chrome
12 votes -
Programming/software design practice?
So, I've been going through Project Euler and solving problems as a way to brush up on my programming abilities, but it's mostly a math-focused set of problems. Which is cool..they're nice little...
So, I've been going through Project Euler and solving problems as a way to brush up on my programming abilities, but it's mostly a math-focused set of problems. Which is cool..they're nice little puzzles that get the gears turning...
BUT I'm wondering if anyone here has suggestions for a website/course that teaches software design in a piece-wise way. Like... each problem is a nugget of software design that builds off previous problems and eventually you're creating an entire application utilizing different algorithms/design patterns/data structures/etc.
I'd appreciate any resources similar to that idea. Thanks!
7 votes -
Looking back at the Snowden revelations
14 votes -
YouTube's Database "Procella"
5 votes -
Google Claims ‘Quantum Supremacy,’ Marking a Major Milestone in Computing
33 votes -
Introducing Ristretto: A high performance, concurrent, memory-bound Go cache
3 votes -
How do you power your personal site/blog? What should I use?
I currently have a personal "portfolio" site that I haven't updated in close to a year. I'm planning now on revamping it, and I am using this opportunity to reconsider the static site generator I...
I currently have a personal "portfolio" site that I haven't updated in close to a year. I'm planning now on revamping it, and I am using this opportunity to reconsider the static site generator I am using.
I host my site on Github pages, which means that Jekyll was originally very appealing due to its nice integration with Github. However, I have found it difficult to greatly customize the themes I find, and I'm the type of person that likes to get everything "just right". It seems like Hugo might be more extensible in this regard, but I'm not sure if that alone makes it worth the switch from my current setup. Anecdotally, a lot of the blogs I find whose layouts I really like tend to use Hugo.
Pure HTML/CSS is an option but that seems like a big overhead for what I want. I'm no web developer and I don't plan on becoming one.
15 votes -
Linux Distro for an old PC
I found my grandfathers old PC on the attic and want to revive it for him. He really loved that pc. Sadly that potato barely runs Windows xp so I thought about putting a Linux onto it. My Linux...
I found my grandfathers old PC on the attic and want to revive it for him. He really loved that pc. Sadly that potato barely runs Windows xp so I thought about putting a Linux onto it. My Linux experience is limited to Mimt and Debian, both way to heavy for this old laptop. I need recommendations for a very light weight Linux Distro!
Specs:
256 mb DDR1 Ram
Intel Celeron M 320 @ 1.4GhZ
40gb Hard DriveIt's a small, simple gift and nothing where I want to put money into. Also it won't be my granddads daily driver so please don't recommend me a new one (a lot of people did that on other websites so I am rather careful). Thanks in Advance!
14 votes -
Would it be bad to mount a macbook pro upside down on a VESA tray?
I've got a smaller desk with two monitor arms -- one with a monitor (left side, different system) and one with a VESA mounted tray for my macbook pro (late 2013 15".) I'm going to be adding a...
I've got a smaller desk with two monitor arms -- one with a monitor (left side, different system) and one with a VESA mounted tray for my macbook pro (late 2013 15".)
I'm going to be adding a 1440p monitor from the macbook pro, but I'm short on desk space. Instead of having the laptop on the tray normally, if I lay it lid down with the laptop portion up, the laptop base could sit behind the new monitor with the screen coming out the bottom -- perfect for static applications like VSCode, iTerm2, etc.
Here's a mock up. The thicker outline represents the macbook pro screen.
Can anybody foresee any issues with this configuration?
6 votes -
NPM CEO Bryan Bogensberger Resigned
6 votes -
Closing the gap: cross-language LTO between Rust and C/C++
6 votes -
New DDoS vector observed in the wild leveraging WS-Discovery for amplification, attacks hitting 35 Gbps
11 votes -
TinyGo - A Go Compiler For Small Places
9 votes -
Programming Q&A Thread
An experiment I've been thinking about lately: a (recurring?) Q&A thread! Ask any questions about programming, answer other users' questions, or post suggestions for future threads. Don't forget...
An experiment I've been thinking about lately: a (recurring?) Q&A thread! Ask any questions about programming, answer other users' questions, or post suggestions for future threads.
Don't forget to format your code using the triple backticks or tildes:
Here is my schema: ```sql CREATE TABLE article_to_warehouse ( article_id INTEGER , warehouse_id INTEGER ) ; ``` How do I add a `UNIQUE` constraint?
Meta questions:
- Should I turn this into a recurring thread?
- If yes, should it be a weekly or a monthly thing?
- Should DBA and SysAdmin questions be allowed or should someone else make a separate recurring thread for these?
22 votes -
Joel Spolsky and Clive Thompson discuss the past, present, and future of coding
4 votes -
Working in high performance computing? These are the stats you should know
7 votes -
"Hello, world" from scratch on a 6502 - Part 1: setting up the CPU
11 votes -
Tinyproxy - if you need a tiny URL blocker/rewriter
5 votes -
Color Emulation
11 votes -
The Big Stellar Space Drop - Keybase Blog
8 votes -
If you’re not using SSH certificates you’re doing SSH wrong
9 votes -
What's your dream laptop for running *nix?
What's your dream laptop for running *nix? I'm currently using a Lenovo Thinkpad T410s, and it's getting ready to die. I think it's a great machine, but every computer eventually dies. It runs...
What's your dream laptop for running *nix?
I'm currently using a Lenovo Thinkpad T410s, and it's getting ready to die. I think it's a great machine, but every computer eventually dies. It runs Debian 8 (Jessie), but it can't handle 9 (Stretch) without overheating. On top of that, I need to use the proprietary drivers! My computer got dropped on the floor today (not my fault!), and it got me thinking that maybe it's time to start shopping for a new laptop.
What are your ideas about what a good laptop for *nix OS's? Any recommendations? What should I look for? What should I avoid?
I love having a SSD HDD, and playing with different distros, but I'd like to avoid the headache I've had with the propitiatory Intel drivers. I like to have control of my hardware, but still use the latest software. If a Raspberry Pi or BeagleBone could match the performance of a laptop then I'd seriously consider using one.
26 votes -
string length is complicated
13 votes -
Learn Vimscript the Hard Way
6 votes -
Ember.js, Dr. Carvers Shave Butter, and disappearing products
10 votes -
GPT-2 is not as dangerous as OpenAI thought
5 votes -
The journey of building mypy and type-checking 4 million lines of Python at Dropbox
6 votes -
Don't Do This - PostgreSQL Wiki
16 votes -
How reliable is IP ownership information?
I have interactive firewalls like OpenSnitch running on most of my desktop OS's. I like to see what is going on with my machines' network connections to learn about networking, infosec, and to...
I have interactive firewalls like OpenSnitch running on most of my desktop OS's. I like to see what is going on with my machines' network connections to learn about networking, infosec, and to have have some peace of mind.
Example workflow:
- Get a firewall notification of a new incoming connection to some process running on my machine
- If no DNS entry exists and only the IP address is provided, then I google the IP
- I find something like https://ipinfo.io/74.125.20.189
- I make a decision as to whether allow/deny based on the ownership info which I found in step 3.
Aside from trusting the particular site presenting the ownership info, how reliable is this information regarding IP ownership?
For example, if an IP came back as "Google" could it really be a GCP instance running a command and control server?
Another example, I know that large corps own big blocks of IPv4, but they must lease these IP's out to whomever, right? I imagine there is some wild-west market for these with little accountability?
Are either of these scenarios realistic? If so, is my entire workflow for "do I trust this IP" pointless?
edit: btw, I used to catch and deny incoming connections from *.ru to the Windows legacy Skype client all the time. I cannot think of any non-evil reason why that should have been happening. That particular series of events is what really validated me doing this. If you can think of a non-evil reason for any incoming connections to skype from *.ru, please let me know.5 votes -
xv6: A Reimplementation Of Unix Version 6 (PDF)
5 votes -
Unearthed Arcana: `edbrowse`
I recently happened to mention edbrowse in a throwaway comment, and @ainar-g expressed some interest in it. I took my sweet time, but I finally managed to assemble a short(ish) write-up on it, and...
I recently happened to mention
edbrowse
in a throwaway comment, and @ainar-g expressed some interest in it. I took my sweet time, but I finally managed to assemble a short(ish) write-up on it, and my sleep-addled mind is thinking that this topic - niche, weird tools - could just become recurrent.
Terminal brosers, such as
lynx
,w3m
andelinks
, while still used and under more-or-less active development, are very niche tools.edbrowse
fills a niche within that niche, as it's meant for use by non-sighted people, and thus provides an interface even more bare-bones and arcane than the usual TUI/curses apps that share its space.As per the name,
edbrowse
's interface is heavily inspired byed
's, the standard text editor:edbrowse
, in fact, is not just a web browser, but it combines together a browser, a text editor, a mail client, and - for some reason - a database client. All of these functions are mostly controlled via one-letter commands and, as is tradition, only displaying a single?
on error*.edbrowse
is also unique amongst the terminal browsers because of its support for JavaScript and the DOM. The text it spits out is meant for Braille displays and screen readers, so it lacks niceties like color or aligned tables, but if you were to browse toreddit.com
with it, you would see a perhaps ASCII-art Snoo fill the screen†."Browsing reddit? How‽," you might ask. "How am I supposed to get this thing to stop questioning me? All those
?
are filling me with existential dread, I have no idea what to do!"While it's all there in the manual (but not in the manpages, for some reason), reading through 30k words of text can be a bit of a slog. They do provide a cheatsheet, though, even if it's a bit messy.
So, how do you use
edbrowse
? If you already know howed
works, most commands (especially "movement", search and listing commands) will work as expected - it is also an editor, after all - butedbrowse
adds another handful of them.The most important of them is, perhaps,
b
rowse. It will makeedbrowse
put in an HTTP request, grab the response (if any), and then render it. It will print out the length, in bytes, of the response and of the rendered text, and stop there.$ edbrowse edbrowse ready b https://tildes.net 119201 20083
To actually peruse the page you can use any of the
ed
listing commands (p
rint,l
ist, andn
umber), or thez
command.z
works much likep
, but it prints a number of lines (normally 24) while "remembering" your position within the page.0z10 {Tildes} {Log in} <>Sidebar * {Activity} * {Votes} * {Comments} * {New} * {All activity}
Links are indicated by curly brackets, while form elements (both input elements and buttons) are wrapped in angle brackets. You can follow a link by jumping to the line containing it and issuing a
g
o command (usingg2
to follow the second link on that line,g3
for the third,g$
for the last), but, in normal use, you should probably just search for the link text./{Log in}/g 5886 923 0z10 {Tildes} <>Sidebar Log in Username <> Password <> <-> Keep me logged in <Go>Log in
The same thing goes for form elements, but the command to use, here, is
i
(fori
nteract).i
has actually four different subcommands:i[N]=
, to set the value of a text field,ipass[N]
to prompt for the value of a password field,i[N]*
to press a button‡, andi[N]?
to askedbrowse
what that damned element is supposed to be./Username/ i=mftrhu /Password/ ipass hunter12 /<Go>/i* submitting form 124579 20049
You can jump back to the previous page with
^
, and refresh the current page withrf
.Of course,
edbrowse
can do much more - can be configured to do much more, via.ebrc
, as it possessed (very) rudimentary programming facilities. It can edit its own configuration file, and reload it withconfig
, so - rejoice. You won't ever need to leave it.And, after seeing just how aesthetically pleasing its configuration language can be, I'm confident that you won't ever want to leave it.
# Switch to a new editing session e2 no file e ~/.ebrc # Show the last lines of the configuration file $100,113n 100 function+google { 101 b http://www.google.com 102 /<>/ i=~0 103 /</ i1* 104 /^About/+2 105 } 106 function+ddg { 107 b https://duckduckgo.com 108 /<>/ i=~0 109 i2* 110 /<Go secure>/+1 111 /<Go secure>/+2 112 z24 113 }
As I said earlier, while
edbrowse
does possess some programming facilities, they are very rudimentary. Functions are nothing more than sequences ofedbrowse
commands with some flow control constructs: they can do everything an user could do, which means that they are often convoluted and overly terse.The
ddg
function, for example (which is invoked via<ddg [PARAMS]
), firstb
rowses to duckduckgo.com. The DuckDuckGo home page, as rendered byedbrowse
, only contains a link followed by the search form:{About DuckDuckGo Duck it!} <> <S secure> <X>
So the function looks for the (first) empty text field (
/<>/
), fills it in with the parameters passed to it (i~=0
), activates the second form element on that line (i2*
) and, once the results page has loaded, skips the initial boilerplate (/<Go secure>/+1,+2
) and prints the first 24 lines of results (z24
).Sure. It could be replaced by a single line, replacing all the form interaction with a simple
b https://duckduckgo.com/?q=~0
, but where would be the !!FUN!! in that?
* This is not completely true, as
edbrowse
will show more long-form error messages, but it's pretty inconsistent with them.
† Iff you have JS enabled in your current session. It can be toggled on and off with thejs
command.
‡ I had no luck with the Tildes buttons (e.g., sidebar toggle, upvote button), though, at least not with the version ofedbrowse
that Debian bundles up.10 votes -
We Re-Launched The New York Times Paywall and No One Noticed
9 votes -
A very deep dive into iOS Exploit chains found in the wild
4 votes -
Fancy Zones, a tiling window manager from Microsoft
8 votes -
How to do a code review
10 votes -
Green Threads Explained in 200 Lines of Rust
3 votes -
Consequences of using the Copy-Paste method in C++ programming and how to deal with it
4 votes -
Programming Challenge: Convert between units
Hi everyone! It's been a long time since last programming challenge list, and here's a nice one I've encountered. If you search for something like 7km to AU, you'll get your answer. But how is it...
Hi everyone! It's been a long time since last programming challenge list, and here's a nice one I've encountered.
If you search for something like 7km to AU, you'll get your answer. But how is it done? I don't think they hardcoded all 23 units of distance and every conversion factor between them.
If you were programming a conversion system - how would you do it?
First of all, you have input in format that you can specify, for example something like this:
meter kilometer 1000 mile kilometer 1.609344 second minute 60 ...
Then you should be able answer queries. For example
7 mile meter
should convert 7 miles to meters, which is11265.41
.Can you design an algorithm that will convert any unit into any other unit?
Edit: Some conversion rates I extracted from wikipedia:
ångström 0.1nm astronomical unit 149597870700m attometre 0.000000000000000001m barleycorn 8.4m bohr 0.00846 cable length (imperial) 185.3184m cable length 185.2m cable length (US) 219.456m chain (Gunters) 20.11684m cubit 0.5m ell 1.143m fathom 1.8288m femtometre 0.00000000000001m fermi 0.00000000000001m finger 0.022225m finger (cloth) 0.1143m foot (Benoit) 0.304799735m foot (Cape) (H) 0.314858m foot (Clarke's) (H) 0.3047972654m foot (Indian) (H) 0.304799514m foot,metric 0.31622776602m foot,metric (long) 0.3m foot,metric (short) 0.30m foot (International) 0.3048m foot (Sear's) (H) 0.30479947m foot (US Survey) 0.304800610 french 0.0003m furlong 201.168m hand 0.1016m inch 0.0254m league 4828m light-day 25902068371200m light-hour 107925284880m light-minute 17987547480 light-second 299792458m light-year 31557600light-second line 0.002116m link (Gunter's) 0.2011684m link (Ramsden's; Engineer's) 0.3048m metre 1m m 1metre km 1000m mickey 0.000127 micrometre 0.000001 mil; thou 0.0000254 mil 10km mile (geographical) 6082foot (International) quarter 0.2286m rod 5.0292m rope 6.096m shaku 0.303 0303m span (H) 0.2286m stick (H) 0.0508m toise 1.949 0363m twip 1.76310 yard 0.9144m
17 votes -
Go 1.13 Is Released
6 votes -
Lezer (the parser used in CodeMirror 6)
3 votes -
Typesetting Markdown Blog: What Next?
Some of you have read the Typesetting Markdown blog series (https://dave.autonoma.ca/blog/). The plan was to finish the last two parts with Annotated Text (basically markup for Markdown) and...
Some of you have read the Typesetting Markdown blog series (https://dave.autonoma.ca/blog/). The plan was to finish the last two parts with Annotated Text (basically markup for Markdown) and Figure Drawing (MetaPost); however, people have asked for a post on Markdown to EPUB, others have asked for high-quality PDF theme templates using ConTeXt, and some have requested rendering Markdown into HTML.
Within the realm of Markdown, digital documentation, typesetting with ConTeXt, R, externalized interpolated strings, and bash scripting, what would interest you for the next post in the series?
(Please flip through the blog series to see the topics that have been covered.)
3 votes -
How Facebook tracks you on Android
8 votes -
QuickJS: A new JS interpreter/compiler by Fabrice Bellard
11 votes