• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. Laptop review of Acer A315-42

      So I bought this laptop mainly for web browsing, document editing, note taking and programming with perhaps light gaming although that's not something I've tried yet. So, really just for school...

      So I bought this laptop mainly for web browsing, document editing, note taking and programming with perhaps light gaming although that's not something I've tried yet. So, really just for school work.

      Specifications

      Laptop Model : Acer Aspire 3 A315-42
      Laptop screen : 1080p IPS (with matte finish?)
      CPU : R5 3500U
      RAM : 8GB DDR4 (6GB available because of iGPU)
      Storage : 256GB SSD NVMe
      Wireless : Qualcomm Atheros QCA9377
      Wired : Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 (According to lspci)
      2x USB 2.0, 1x USB 3.0, 1x HDMI port, Audio jack, 1x RJ45 Ethernet port
      Battery : 36.7Wh

      Linux compatibility

      Everything worked out of the box, gotta modify TLP to not kill the touchpad and webcam. The touchpad seems to have a mind of its own when it comes to being detected, It seems to be a kernel bug, unsure what I'll do about it concretely but rebooting a couple of times makes it work. Nothing to install thanks to AMD's open source mesa drivers. Might need a kernel higher than 5.3 because of general Ryzen 3000 issues but I've not tried, it was already higher than that.

      Operating system tested

      Basically never touched Windows, directly installed Fedora 31 Silverblue.

      My Silverblue configuration is :

      ● ostree://fedora:fedora/31/x86_64/silverblue
                         Version: 31.20191213.0 (2019-12-13T00:42:11Z)
                      BaseCommit: a5829371191d0a3e26d3cced9f075525d2ea73679bd255865fcf320bd2dca22a
                    GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4
             RemovedBasePackages: gnome-terminal-nautilus gnome-terminal 3.34.2-1.fc31
                 LayeredPackages: camorama cheese eog fedora-workstation-repositories gedit gnome-calendar gnome-font-viewer gnome-tweaks hw-probe libratbag-ratbagd lm_sensors nano neofetch
                                  powertop radeontop sysprof systemd-swap tilix tlp
      

      Kernel : 5.3.15
      Gnome : 3.34.1

      Body and Looks

      The screen back has metal, I believe it feels quite sturdy. The rest is reasonable feeling plastic. The material used just loves to imprint grease / fingers which kinda sucks - the keys being the exception thankfully. There was also stickers on the inside which well, are somewhat standard but I thought they were pretty obnoxious so I removed them.

      Typing experience

      It's nothing amazing but it's good enough. I'm not really knowledgeable on keyboards so that's as much as I can say on it, really.

      Performance

      Everything feels quite snappy but I don't game at all on this machine so I'm not pushing it too much other than while I'm compiling or doing other things. The temperature does go up to 75°C and the fans get a little loud but it's not that bad. It's mostly the bottom getting hot so it's not something you notice too much while typing. It also cold boots quite fast, in about 10-20seconds I want to say but I've not benchmarked that. It's my first computer with an SSD so there's that.

      Battery life

      I get about 5hours with tlp installed doing web browsing, some programming occasionally, listening to music on the speakers and chatting. Personally I was kind of expecting more from this considering it's an APU but it seems to be what other people are getting on similar setups so It'll do.

      Conclusion

      Overall, I'm pretty happy with this laptop considering how I bought it for 575$ on sale. I made this review mostly because I wasn't finding much information about this laptop on Linux and well, I don't know, I guess I felt like it. If you have any questions, ask up!

      11 votes
    2. Is there a reason I cannot have a tag people.doing.something

      I usually don't mind my tags getting erased and someone putting a more appropriate tag, but I want to know what is wrong with people.doing.something, or someone doing something, or...

      I usually don't mind my tags getting erased and someone putting a more appropriate tag, but I want to know what is wrong with people.doing.something, or someone doing something, or someone.doing.something. I tried various ways today, and each one got removed, and I would like to know why.

      5 votes
    3. My thoughts and ideas for Tildes

      I have lots of thoughts about Tildes that I end up forgetting. This post is my attempt to put them to good use. Some of those were already stated elsewhere. Introduction Just to make it very...

      I have lots of thoughts about Tildes that I end up forgetting. This post is my attempt to put them to good use. Some of those were already stated elsewhere.

      Introduction

      Just to make it very clear: I am extremely happy with the way things are going on Tildes. If that was not the case, instead of drawing criticism I would simply not be here. So, please, let's be civil and avoid taking things personally ;)

      I'm also a regular user, so please be gentle with my ignorance regarding the technical reasons why some things are either impossible or unpractical.

      1. An Answer To A Common Objection

      Some of these suggestions may encounter the following answer: "this should be an extension, not a core feature". To which I might respond:

      1. Extensions impact performance and it's good practice to keep them at a minimum
      2. Not everyone uses the same browser.
      3. Features implemented by the actual developers will probably be of a better quality

      2. Golden Rule

      Unless explicit or clearly unpractical, all suggestions should be interpreted as to be as optional (and preferably opt-in) as possible for the user. I'll also make frequent use of the imperative mood: please understand that those are still suggestions. The imperative mood is just more practical. Also, notice that this is not my first language.

      3. Suggestions

      3.1 Keyboard Shortcuts

      The majority of Tildes users would probably welcome a good set of keyboard shortcuts. I apologize if such keyboard shortcuts already exist: if they do, there should be a page listing them all.

      3.1.1 Vim-like and Emacs-like keybindings

      There should be Vim-like and Emacs-like (you could choose which one!) keys all around. Even with things like Vimium, not everyone uses them, and a well-thought-out set of keybindings would be extremely beneficial.

      This also applies to text fields.

      4. Open Calls For Moderators

      Right now, I'm not sure what criteria are being used to give someone moderator powers. I think being a developer or contributor is the main criterion, which makes a lot of sense. But other participants might be up to the task, and giving them a chance could be beneficial.

      5. Moderation Action Should Always Present Reason

      This may seem obvious and even unfair, but I think when a moderator is in no condition to dedicate the time to justify their moderation action (such as locking threads, removing contents or banning users), then the moderator should wait until this condition is met in order to take action.

      6. Heated Discussions Should Be Allowed in More Circumstances

      I understand Tildes is, and should always be, a place for politeness, even affectionate discussion, but sometimes heated language, including irony and sarcasm, are necessary to stress a point and take the discussion forward. I understand that's a fine line, and that is usually better err on the side of caution, but I also feel the need to caution my fellow Tilders and Tildes administration against excessive moderation, which could stifle the discussion of sensitive subjects

      7. There Should Be a Page Explaining How to Collaborate

      This page should be short and to the point, with lots of links. I, for instance, wanna collaborate in the documentation, but the information telling how to do so was in a comment I cannot find anymore.

      8. Table of Contents

      Tildes markdown should support the automated creation of a simple table of contents, which would be very useful for longer posts. Preferably, there should be a limited set of options, such as:

      • title of the table of contents ("TOC", "Table of Contents", "Contents" etc)
      • numbered vs unnumbered
      • depth of the numbering

      9. Search own content

      I find very hard to search my own content. Sometimes I must reference something I said earlier, or adapt a previous response to a question I already answered. On these occasions, I have to manually Ctrl+f page after page of my user page, which is tedious and inefficient.

      10. Sort my own content

      I wish I could sort my own content in the same manner I can with other pages. This would help with item 9, and also help answer faster to comments that were recently made.

      11. Notifications

      I wish it was possible to op-in desktop notifications for Tildes to show me whenever I get an answer to a thread, a comment or a private message.

      Correction: I'm not referring to Email notifications, but desktop notifications. The ones that appear occasionally on your browser or screen.

      12. There Should Be Space for Comedy

      I'm not saying Tildes should become a place for lazy memes and endless puns, but comedy is valuable content and I don't like the idea of Tildes being a more conversational version of Stack Overflow. I fully agree with @deimos vision for a website for meaningful interactions with a focus on privacy. I just don't think comedy is necessarily a menace to this and all the other Tildes' stated goals. Right now, we're a very serious bunch of folks. There should be a place for humor in Tildes. How would that work? IDK. I leave this open for discussion.

      13. Link to Excerpt

      It would be awesome being able to link not just to a particular comment, but to a selection of that particular comment. After linking to the excerpt, I would go to the full comment, but the excerpt would be highlighted.

      Conclusion

      This is more of a collection of thoughts than an article, therefore I cannot offer a proper conclusion. But I'd like to kindly ask my fellow Tilders to give some considerations to my ideas. And please understand that they are not complaints. It's just may to contribute to this great community.

      Cheers ;)

      18 votes
    4. Tildes User Script: Drag and drop usernames in order to mention them in your comments

      It is was a tedious task to mention users: copy, type, paste. This script makes it a single step: drag and drop any username on to the comment you're composing, and tada! It's there. Here is the...

      It is was a tedious task to mention users: copy, type, paste. This script makes it a single step: drag and drop any username on to the comment you're composing, and tada! It's there.

      Here is the script:

      // ==UserScript==
      // @name     tildesDragNDropUsernameForMention
      // @version  1
      // @grant    none
      // @namespace   tildes.net
      // ==/UserScript==
      
      var userLinks = document.querySelectorAll('a.link-user');
      
      var dragstartHandler = function (event) {
        var text = event.target.innerText;
        if(!text.startsWith('@')){
          text = "@" + text;
        }
        event.dataTransfer.setData("text", text);
        event.dataTransfer.dropEffect = 'copy';
      }
      
      userLinks.forEach(function (each) {
        each.setAttribute('draggable', true);
        each.ondragstart = dragstartHandler;
      });
      

      Patches welcome!

      Edit: remove useless code

      9 votes
    5. Gay artist devastated by removal of artwork from Llandudno gallery after complaints of homophobia

      News article: Gay artist 'devastated' to have THIS artwork 'censored' by Llandudno gallery after 'homophobia' complaint to police Direct link to the artwork on Paul Yore's Instagram:...

      News article: Gay artist 'devastated' to have THIS artwork 'censored' by Llandudno gallery after 'homophobia' complaint to police

      Direct link to the artwork on Paul Yore's Instagram: https://www.instagram.com/p/Bz2OF2EA4mR/


      Is it homophobic to depict homophobia in art?

      11 votes
    6. The Lab

      This was written for a themed flash fiction contest (the theme was Technological Dystopia) and ended up losing, but I figured it wouldn't hurt to share it here. It's not my proudest work but, as...

      This was written for a themed flash fiction contest (the theme was Technological Dystopia) and ended up losing, but I figured it wouldn't hurt to share it here. It's not my proudest work but, as flash fiction, I think it works well enough. I hope you enjoy!

      She was three floors from the bottom of the sunken tower when the crying first reached her. A quick swipe earned her a pair from the rack nearby and she continued her descent.

      With the aid of technology this process had been streamlined and systematized such that these checks were only needed once a month, but everyone dreaded them. She had drawn the short straw this time and, though it had been years since last she’d ventured to The Lab, she still remembered her last haunting experience. It wasn’t that she was a dissenter or rebelled against that which needed to be done. This was a necessary evil to save their species, but she was still a human being. Seeing them all like that, all tubes and tapes running from frail flesh, was enough to turn any stomach.

      A pair of heavy iron doors sat ominously in her way as she bottomed out. She could see the white, crisp interior of The Lab beyond and pushed forward, swallowing her hesitance as best she could.

      Before her lay a large room with clean white tile, walls and harsh, flourescent light. It smelled and looked like a hospital because that’s exactly what it was. 10 rows and columns of small, clear, plastic boxes stretched between her and the far wall. The muffs were doing their job exceedingly well, but she could still hear the awful racket bouncing around her memory. She took a deep breath, steadied herself, and started working.

      Her primary duty was to make sure the machines were functioning correctly, mostly the arm that glided to and fro above the boxes, administering medicine or changing bags of various fluids as need be. She would also be checking the tubes for clogs that may have been missed by any old or worn out sensors; this was the part she dreaded the most. She flipped the lid on the nearest box and checked the left, then the right, and lastly the tube running into its belly button, and closed the box quickly.

      It couldn’t have taken her more than 5 seconds but that short time was enough for the anguished face to plaster itself onto her mind. Everyone does their part, she reminded herself, from the start to the end. It didn’t serve a purpose to bemoan that which she could not change. She moved on to the next crib, hoping this would go by faster than she expected.

      Halfway through her checks she hit a snag. There was a clog in Crib 54. She could register the fault in the system and it would fix it on its next hourly cycle, as were her orders, but it was such a small clog. The tube simply needed to be changed, and as a nurse she was well-versed in the procedure. In that moment it was decided.

      The tubes themselves were specially designed to be thin and flexible, but rigid enough to fit the shape of a tear duct. Her first task, after finding a pair of gloves, was to gently remove the tube currently in the eye. She hovered over the crib and gently pulled the tube out of the right tear duct. It came slowly, millimeter by millimeter, each bit covered in more goop and mucus than the last. It wound its way up into the sinuses which meant, by the end of it, she had pulled at least five inches of tubing. This she discarded.

      Next she had to insert the new tube (these were kept in abundance in a draw underneath the crib). She grabbed one, snipped it to length with a pair of scissors hanging from the IV stand, and took a moment to recent herself. Inserting the tube while the child was crying would be much more difficult than removing it.

      As gently as she could she reached down and, with her index finger and thumb, pried open the eye of the little one. With one came the other, the muscles young and unwilling to work independently, and she found herself staring into a pair of brilliant green pools. Her heart melted and, for the briefest moment, she thought of taking it. She could smuggle it out. The bed being empty would trip the system but she could clear the error and explain it away somehow. But no, that was silly. This wasn’t a decision for her to make; things were done this way because there was no other choice.

      She pushed the tip of the tube into the tear duct confidently, shoving the traitorous thoughts from her mind as the child’s cries were renewed with pain. She was here to do a job, cold and emotionless. It wasn’t her place to question the way things were done. The tube went in without a hitch and the child’s eyes snapped closed again once she released them. The little bundle of agony before her squirmed and she saw the tears begin to flow anew. With swift, definite movement she closed and latched the lid.

      The rest of her checks went smoothly, but she couldn’t shake the uneasy feeling that now ran rampant in her gut. She hated Lab duty, and she expected that would always be the way. With a heavy heart she signed the documents needed to record her visit, noted the tube change in the work log, and left The Lab through its heavy iron doors. The trip upstairs would be long and tiring, but at least she could try and forget ever having been here.

      12 votes
    7. Code Quality Tip: The importance of understanding correctness vs. accuracy.

      Preface It's not uncommon for a written piece of code to be both brief and functionality correct, yet difficult to reason about. This is especially true of recursive algorithms, which can require...

      Preface

      It's not uncommon for a written piece of code to be both brief and functionality correct, yet difficult to reason about. This is especially true of recursive algorithms, which can require some amount of simulating the algorithm mentally (or on a whiteboard) on smaller problems to try to understand the underlying logic. The more you have to perform these manual simulations, the more difficult it becomes to track what exactly is going on at any stage of computation. It's also not uncommon that these algorithms can be made easier to reason about with relatively small changes, particularly in the way you conceptualize the solution to the problem. Our goal will be to take a brief tour into what these changes might look like and why they are effective at reducing our mental overhead.


      Background

      We will consider the case of the subset sum problem, which is essentially a special case of the knapsack problem where you have a finite number of each item and each item's value is equal to its weight. In short, the problem is summarized as one of the following:

      • Given a set of numbers, is there a subset whose sum is exactly equal to some target value?

      • Given a set of numbers, what is the subset whose sum is the closest to some target value without exceeding it?

      For example, given the set of numbers {1, 3, 3, 5} and a target value of 9, the answer for both of those questions is {1, 3, 5} because the sum of those numbers is 9. For a target value of 10, however, the first question has no solution because no combination of numbers in the set {1, 3, 3, 5} produces a total of 10, but the second question produces a solution of {1, 3, 5} because 9 is the closest value to 10 that those numbers can produce without going over.


      A Greedy Example

      We'll stick to the much simpler case of finding an exact match to our target value so we don't have to track what the highest value found so far is. To make things even simpler, we'll consider the case where all numbers are positive, non-zero integers. This problem can be solved with some naive recursion--simply try all combinations until either a solution is found or all combinations have been exhausted. While more efficient solutions exist, naive recursion is the easiest to conceptualize.

      An initial assessment of the problem seems simple enough. Our solution is defined as the set of array elements whose total is equal to our target value. To achieve this, we loop through each of the elements in the array, try combinations with all of the remaining elements, and keep track of what the current total is so we can compare it to our target. If we find an exact match, we return an array containing the matching elements, otherwise we return nothing. This gives us something like the following:

      function subsetSum($target_sum, $values, $total = 0) {
          // Base case: a total exceeding our target sum is a failure.
          if($total > $target_sum) {
              return null;
          }
      
          // Base case: a total matching our target sum means we've found a match.
          if($total == $target_sum) {
              return array();
          }
      
          foreach($values as $index=>$value) {
              // Recursive case: try combining the current array element with the remaining elements.
              $result = subsetSum($target_sum, array_slice($values, $index + 1), $total + $value);
      
              if(!is_null($result)) {
                  return array_merge(array($value), $result);
              }
          }
      
          return null;
      }
      

      Your Scope is Leaking

      This solution works. It's functionally correct and will produce a valid result every single time. From a purely functional perspective, nothing is wrong with it at all; however, it's not easy to follow what's going on despite how short the code is. If we look closely, we can tell that there are a few major problems:

      • It's not obvious at first glance whether or not the programmer is expected to provide the third argument. While a default value is provided, it's not clear if this value is only a default that should be overridden or if the value should be left untouched. This ambiguity means relying on documentation to explain the intention of the third argument, which may still be ignored by an inattentive developer.

      • The base case where a failure occurs, i.e. when the accumulated total exceeds the target sum, occurs one stack frame further into the recursion than when the total has been incremented. This forces us to consider not only the current iteration of recursion, but one additional iteration deeper in order to track the flow of execution. Ideally an iteration of recursion should be conceptually isolated from any other, limiting our mental scope to only the current iteration.

      • We're propagating an accumulating total that starts from 0 and increments toward our target value, forcing us to to track two different values simultaneously. Ideally we would only track one value if possible. If we can manage that, then the ambiguity of the third argument will be eliminated along with the argument itself.

      Overall, the amount of code that the programmer needs to look at and the amount of branching they need to follow manually is excessive. The function is only 22 lines long, including whitespace and comments, and yet the amount of effort it takes to ensure you're understanding the flow of execution correctly is pretty significant. This is a pretty good indicator that we probably did something wrong. Something so simple and short shouldn't take so much effort to understand.


      Patching the Leak

      Now that we've assessed the problems, we can see that our original solution isn't going to cut it. We have a couple of ways we could approach fixing our function: we can either attempt to translate the abstract problems into tangible solutions or we can modify the way we've conceptualized the solution. With that in mind, let's take a second crack at this problem by trying the latter.

      We've tried taking a look at this problem from a top-down perspective: "given a target value, are there any elements that produce a sum exactly equal to it?" Clearly this perspective failed us. Instead, let's try flipping the equation: "given an array element, can it be summed with others to produce the target value?"

      This fundamentally changes the way we can think about the problem. Previously we were hung up on the idea of keeping track of the current total sum of the elements we've encountered so far, but that approach is incompatible with the way we're thinking of this problem now. Rather than incrementing a total, we now find ourselves having to do something entirely different: if we want to know if a given array element is part of the solution, we need to first subtract the element from the problem and find out if the smaller problem has a solution. That is, to find if the element 3 is part of the solution for the target sum of 8, then we're really asking if 3 + solutionFor(5) is valid.

      The new solution therefore involves looping over our array elements just as before, but this time we check if there is a solution for the target sum minus the current array element:

      function subsetSum($target_sum, $values) {
          // Base case: the solution to the target sum of 0 is the empty set.
          if($target_sum === 0) {
              return array();
          }
      
          foreach($values as $index=>$value) {
              // Base case: any element larger than our target sum cannot be part of the solution.
              if($value > $target_sum) {
                  continue;
              }
      
              // Recursive case: do the remaining elements create a solution for the sub-problem?
              $result = subsetSum($target_sum - $value, array_slice($values, $index + 1));
      
              if(!is_null($result)) {
                  return array_merge(array($value), $result);
              }
          }
      
          return null;
      }
      

      A Brief Review

      With the changes now in place, let's compare our two functions and, more importantly, compare our new function to the problems we assessed with the original. A few brief points:

      • Both functions are the same exact length, being only 22 lines long with the same number of comments and an identical amount of whitespace.

      • Both functions touch the same number of elements and produce the same output given the same input. Apart from a change in execution order of a base case, functionality is nearly identical.

      • The new function no longer requires thinking about the scope of next iteration of recursion to determine whether or not an array element is included in the result set. The base case for exceeding the target sum now occurs prior to recursion, keeping the scope of the value comparison nearest where those values are defined.

      • The new function no longer uses a third accumulator argument, reducing the number of values to be tracked and removing the issue of ambiguity with whether or not to include the third argument in top-level calls.

      • The new function is now defined in terms of finding the solutions to increasingly smaller target sums, making it easier to determine functional correctness.

      Considering all of the above, we can confidently state that the second function is easier to follow, easier to verify functional correctness for, and less confusing for anyone who needs to use it. Although the two functions are nearly identical, the second version is clearly and objectively better than the original. This is because despite both being functionally correct, the first function does a poor job at accurately defining the problem it's solving while the second function is clear and accurate in its definition.

      Correct code isn't necessarily accurate code. Anyone can write code that works, but writing code that accurately defines a problem can mean the difference between understanding what you're looking at, and being completely bewildered at how, or even why, your code works in the first place.


      Final Thoughts

      Accurately defining a problem in code isn't easy. Sometimes you'll get it right, but more often than not you'll get it wrong on the first go, and it's only after you've had some distance from you original solution that you realize that you should've done things differently. Despite that, understanding the difference between functional correctness and accuracy gives you the opportunity to watch for obvious inaccuracies and keep them to a minimum.

      In the end, even functionally correct, inaccurate code is worth more than no code at all. No amount of theory is a replacement for practical experience. The only way to get better is to mess up, assess why you messed up, and make things just a little bit better the next time around. Theory just makes that a little easier.

      17 votes
    8. Has Wine begun to remove the need for linux software?

      I started using wine in about 2013 and I remember back then it was quite patchy and only worked on some programs/games. I used to have a rule that I stuck hard to that I would not buy any games...

      I started using wine in about 2013 and I remember back then it was quite patchy and only worked on some programs/games. I used to have a rule that I stuck hard to that I would not buy any games that did not have a linux version. But now in 2019 I have found that everything I have tried to run in wine has been so seamless and close to flawless that I hardly know its running in wine. I semi regularly buy games that only have windows version because I am mostly sure it will work and can get a refund if it doesn't.

      What does everyone else think about this?

      8 votes
    9. Having issues setting goals and sticking with them? I’m working on a solution

      I am working on an app called Percent Done that is a combination of goal setting, time tracking and habit tracking. I like setting time-based goals for myself every day, such as “write for an...

      I am working on an app called Percent Done that is a combination of goal setting, time tracking and habit tracking.

      I like setting time-based goals for myself every day, such as “write for an hour” or “work on Percent Done for four hours.”

      I also like Seinfeld’s “don’t break the chain” method. For example, Apple Watch shows you how many days you have completed your exercise circle and tells you that you have been keeping at it for x days.

      Percent Done is a marriage of these two concepts. It allows you to set goals and track the time you spend on them, as well as how many days in a row you have consistently completed them. For example, you can add a goal that says “write for an hour every day,” and Percent Done will notify you every day to write for an hour. You will be able to tap on this goal and Percent Done will start counting back from one hour. You will also be able to see how many days in a row you have written for an hour.

      Here is a demo GIF.

      You can also add one-time goals to Percent Done with or without time tracking, so it is a task management tool as well.

      You can play with the design prototype here: Percent Done design prototype

      I would really love to get your feedback on this. If you are interested in being a beta tester, feel free to reply to this topic or e-mail me at "hi at evrim dot io."

      By the way, this is almost completely a self-promotion post. If it is against the rules, I'd be happy to remove this.

      23 votes
    10. Reddit has quarantined /r/The_Donald

      Just happened minutes ago, so not much information yet. I think it's likely that this article from Monday might have finally pushed it over the edge (since it's usually media attention that does...

      Just happened minutes ago, so not much information yet.

      I think it's likely that this article from Monday might have finally pushed it over the edge (since it's usually media attention that does it): You can’t offer to murder cops on Reddit unless you’re on r/TheDonald

      The quarantine message says:

      It is restricted due to significant issues with reporting and addressing violations of the Reddit Content Policy. Most recently the violations have included threats of violence against police and public officials.

      As a visitor or member, you can help moderators maintain the community by reporting and downvoting rule-breaking content.

      Here's the message the admins sent them:

      Dear Mods,

      We want to let you know that your community has been quarantined, as outlined in Reddit’s Content Policy.

      The reason for the quarantine is that over the last few months we have observed repeated rule-breaking behavior in your community and an over-reliance on Reddit admins to manage users and remove posts that violate our content policy, including content that encourages or incites violence. Most recently, we have observed this behavior in the form of encouragement of violence towards police officers and public officials in Oregon. This is not only in violation of our site-wide policies, but also your own community rules (rule #9). You can find violating content that we removed in your mod logs.

      As we have discussed in the past, and as detailed in our content policy and moderator guidelines, we expect you to enforce against rule-breaking content. You’ve made progress over the last year, but we continue to observe and take action on a disproportionate amount of rule-breaking behavior in this community. We recognize that you do remove posts that are reported, but we are troubled that violent content more often goes unreported, and worse, is upvoted.

      User reports and downvotes are an essential way that Reddit functions to moderate content. Limiting or prohibiting them prevents you from moderating your community effectively. Because of this, we are disabling your custom styling in order to restore these essential functions.

      As stated in our Moderator Guidelines, our goal is to keep the platform alive and vibrant, as well as to ensure your community can reach people interested in it. Accordingly, here are the specific terms of the quarantine and the next steps we are asking from you as a mod team to resolve this situation.

      Quarantine terms:

      Visitors to this community will see a warning that requires users to explicitly opt-in to viewing it. This messaging reminds users of the importance of reporting rule-breaking content.

      Custom styling has been disabled to restore the report and downvote buttons.

      We hope both these changes will help improve the signal around rule-breaking content and improve your ability to effectively address it.

      Next steps:

      You unambiguously communicate to your subscribers that violent content is unacceptable.

      You communicate to your users that reporting is a core function of Reddit and is essential to maintaining the health and viability of the community.

      Following that, we will continue to monitor your community, specifically looking at report rate and for patterns of rule-violating content.

      Undertake any other actions you determine to reduce the amount of rule-violating content.

      Following these changes, we will consider an appeal to lift the quarantine, in line with the process outlined here.

      We hope that this process provides a viable way forward to restore the health of the community. However, if this situation continues to escalate, we will explore further actions, including the possible banning of your community.

      Please confirm that you have received and understand this message.

      109 votes
    11. Is it possible to moderate a group chat on Facebook?

      Long story, but I've ended up becoming the admin of a group on Facebook (the previous admin stepped down in a rush, and added me as he left). And the group has an existing group chat associated...

      Long story, but I've ended up becoming the admin of a group on Facebook (the previous admin stepped down in a rush, and added me as he left). And the group has an existing group chat associated with it.

      Is it possible to "moderate" this group chat? Specifically, as an admin of the group, can I remove unsavoury/unwanted messages from the chat associated with the group? It looks like I can't.

      Can even the creator of a group chat do this? If I close the group chat and create a new one, will I (as its creator) be able to remove unsavoury/unwanted messages from that new chat?

      I've done some searching via Google, and I'm not finding anything to indicate that this is possible. If someone posts something unsavoury in a group chat, it looks like the only option is to remove the person from the chat - but the unsavoury messages can't be deleted.

      Please tell me that's wrong!

      6 votes
    12. A layperson's introduction to Spintronics Memory

      Introduction I want to give an introduction on several physics topics at a level understandable to laypeople (high school level physics background). Making physics accessible to laypeople is a...

      Introduction

      I want to give an introduction on several physics topics at a level understandable to laypeople (high school level physics background). Making physics accessible to laypeople is a much discussed topic at universities. It can be very hard to translate the professional terms into a language understandable by people outside the field. So I will take this opportunity to challenge myself to (hopefully) create an understandable introduction to interesting topics in modern physics. To this end, I will take liberties in explaining things, and not always go for full scientific accuracy, while hopefully still getting the core concepts across. If a more in-depth explanation is wanted, please ask in the comments and I will do my best to answer.

      Previous topics

      Bookmarkable meta post with links to all previous topics

      Today's topic

      Today's topic is spintronics storage devices for computers. I will try to explain how we can use an electron's spin to read and write data and why this is more efficient than current technologies.

      What do we need to have a storage device?

      In order to be able to save a bit (a 0 or a 1 in computer science speak), we need to be able to represent both the 0 and the 1 in some physical way. We could for example flip a light switch and say light on is 1, light off is 0. We will also need to be able to read the information we stored, in this case we can simply look at the lamp to see if we're storing a 0 or a 1. We would also like for this information to be stored even when power is cut, so that next time we power the hardware back on, we will still be able to read the data. Lastly, we want to be able to change between 0 and 1 freely; no one wants to go back to the CD days for storage.

      Now for some basic concepts.

      What is spin?

      Spin arises from quantum mechanics. However, for the purpose of explaining spin storage devices we can think of an electron's spin as a bar magnet. Each electron can be thought of as a freely rotating bar magnet that will align itself with the fields from nearby magnets. Think of it as a compass (the electron) aligning itself to a fridge magnet when it's held near the compass.

      Why are some metals magnetic?

      Why can we make permanent magnets out of iron, but not copper? In all metals, we have spins that are free to rotate. This means that we can turn a metal into a magnet by holding it near another magnet, it will "copy" the other magnet's magnetisation - its spins will rotate in the direction of the field. But as soon as we remove the magnet, our metal will stop being magnetic. This is because the spins are freely rotating, the spins will align to the magnet's magnetisation when they feel it, but nothing is holding them in place as soon as it's removed. We call this property paramagnetism.

      However, iron (and some other metals) will retain a nearby magnet's magnetisation even when the magnet is removed. This is because in these materials, called ferromagnets, it costs energy for the spins to rotate away from the material's magnetisation. They are pinned into place.

      What happens if we expose half of our ferromagnet to a magnetisation pointing in one way (let's call it up), and the other half to a magnet whose magnetisation is pointing the other way (which we call down)? The ferromagnet would copy both magnetisation directions and create a boundary region - a so-called domain wall - in the centre. The spins in this domain wall will slowly rotate over the thickness of the wall so that at one end they're pointing up and at the other end they're pointing down.

      How can we use spin to store data?

      What if, instead of a light bulb, we used a bar magnet as our storage medium. We could magnetise our bar magnet in one direction to store a 1 and magnetise it in the other direction to store a 0. To read what we have stored, we simply check the bar magnet's magnetisation.

      Let's work out this idea. We want to be able to efficiently change the magnetisation of a bar magnet and we want to be able to read the bar magnet's magnetisation. We will use a ferromagnet because it will retain our data indefinitely (its magnetisation will not change unless we force it to). We know it costs energy to flip the spins inside a ferromagnet, so we will want to use a very tiny ferromagnet - it will have less spins which means it will cost us less energy to change the magnetisation (i.e. flip the spins).

      Magnetoresistance

      A-ha, now we're getting into the fancy-titled paragraphs. What do you, dear reader, think would happen when we send a current (e.g. a bunch of electrons) through a magnet? What would happen to the current's electrons (also called itinerant electrons, to distinguish them from the non-moving electrons of the metal)? At the boundary of the magnet, where the current enters, only the electrons who (through random chance) have a spin that's aligned to the magnet's magnetisation will pass through. We call this effect magnetoresistance, as in effect part of our current will feel a resistance - they cannot pass through to the magnet. So to rephrase, the current inside the magnet will be "magnetised" - all of the spins of the itinerant electrons are pointing the same way.

      Current induced domain wall motion

      So now we know what happens to a current that's inside a magnet. What happens when this current meets a domain wall - the region where the magnetisation changes direction? The itinerant electrons' spins will start rotating along with the magnetisation, but the static electrons of the ferromagnet will also start rotating in the opposite way due to the magnetisation they feel from the current (more experienced readers will recognise this as conservation of angular momentum). So the spins inside the current will slowly rotate until they are pointing the opposite direction and can continue passage from the up-magnetised part of the ferromagnet into the down-magnetised part. But the spins that belong to the ferromagnet itself will be rotating in the opposite manner, slowly rotating from down to up as the current passes through. This means the boundary region between up and down magnetisation, the domain wall, will move along with the current.

      So in short, by sending a current through a magnet that's magnetised in opposite directions at each end, we can force our preferred magnetisation to expand in the current's direction. By reversing the direction of the current we can then magnetise the other way again.

      So we can say magnetising up (pushing current through (let's say) from left to right) can be our 1 and magnetising down (pushing current through from right to left) can be our 0. This would allow us to store data permanently as even when we remove the current our magnet will remember its magnetisation. If we make a really tiny ferromagnet we will only need a really tiny current to flip it's magnetisation too. So we can scale this process down to get to really good efficiencies. In the lab these types of devices are down to nanometre scale and require extremely little current to be operated.

      Reading the data

      OK, so now we know how to write data. But how do we read it? The key effect here will be magnetoresistance, as explained earlier in the post.

      Let's look at this picture. The red dotted line shows our write currents, the big bar is our ferromagnet. The arrows pointing up and down at the sides are our magnetisation direction, the double-pointed arrow in the centre shows the region where we flip the magnetisation by sending through a current.

      Now we jam a third, permanently magnetised, bit of metal (let's call it the read terminal) on top of the centre of our bar. We send a current from this read connector to one of the ends of the ferromagnet. If the ferromagnet's magnetisation is aligned to that of the read terminal we will experience a low (magneto)resistance, but if the ferromagnet is magnetised in the opposite direction we will experience a high resistance. By measuring the difference in resistance we can determine if we have a 0 or a 1 stored. We just need to be careful not to send too big of a current, else that would influence our ferromagnet's magnetisation. But small currents means better efficiency, so this is not a problem at all.

      Conclusion

      This concludes the post, we have seen how to use spins and magnets to both write and read data and we understand why this is efficient.

      Feedback

      As usual, please let me know where I missed the mark. Also let me know if things are not clear to you, I will try to explain further in the comments!

      27 votes
    13. I believe Google search is restricting what articles I can see in my searches, based on my location. What can I do?

      Whenever I search for information about something - especially about a news event - Google returns me a lot of results from Australian sites. Any foreign sites come further down the list,...

      Whenever I search for information about something - especially about a news event - Google returns me a lot of results from Australian sites. Any foreign sites come further down the list, sometimes even on the second page of results. I've never really paid much attention to this behaviour, beyond some occasional mild frustration at not being able to find local sources.

      However, this came to a head this week when I was searching for a local US-based news article about something I'd read in an Australian news site, so I could post that local US article here on Tildes (I always try to get as close to the source as possible). But, try as I might, I just could not find any good non-Australian articles about this news! It was almost like Google was deliberately blocking my attempts to read non-Australian sites. I mean, it's possible that this news wasn't reported outside Australia, but that's unlikely, seeing as it was Uber's announcement about trialling electric aircraft in Texas and Victoria. That had to get American coverage. But I struggled to find it in my searches.

      I then noticed something I've never noticed before: at the bottom of my Google searches, there's a small line which tells me my current location. It's as specific as my local council area, not just my state or the country.

      Is this location affecting what Google shows me in my searches? If so, how do I remove this restriction?

      For context: I use Chrome, but I only sign in when I'm accessing a Google service (usually the Calendar). After I've finished with the service, I sign out. So Google isn't tracking me as a person, it's just tracking my browser's search activity.

      EDIT: Thank you all. I've already set up DuckDuckGo as my default search engine, and am trying it out.

      16 votes
    14. Voting on suggestions for the name of this group.

      Following this previous thread in which we shared our suggestions for the name of this group, you can now vote for your preferred name(s) on Survey Monkey. Voting is by ranking. You will be...

      Following this previous thread in which we shared our suggestions for the name of this group, you can now vote for your preferred name(s) on Survey Monkey.

      Voting is by ranking. You will be presented with a list of 8 suggested names. You need to drag-and-drop these names into your preferred order, from top to bottom. (After you've dragged one name into place, the list will then number itself and you can manually number each option if you don't like dragging-and-dropping.) Put the name you like best at #1, the name you like second-best at #2, the name you like third-best at #3, and so on to the end of the list.

      If you do not like an name and do not want to vote for it at all, tick the "N/A" box beside it. This will remove it from your submitted vote and give it a zero weighting in the count.

      The names will be displayed in a random order for each person.

      Make sure you click on "DONE". "OK" is only the first step. You must submit your response by clicking
      "DONE" or it won't be counted.

      Vote counting will be done automatically by Survey Monkey. The algorithm allocates a weighted number of votes to each option, based on its order in your list. If you vote for all 8 names by preference, your 1st preferred name will receive a weighting of 8, your 2nd preferred name will receive a weighting of 7, your 3rd preferred name will receive a weighting of 6, and so on to to your 8th preferred name which will receive a weighting of 1. Here is an explanatory video for anyone who's interested.

      The survey prevents multiple responses from the same device. However, I've set it to "anonymous" so that IP addresses are not included in the results (why would that even be an option?).

      Here is the survey: https://www.surveymonkey.com/r/ZKD76FS

      Happy voting!

      25 votes
    15. When is validation good/bad?

      The recent topic about vote counts being removed has sprung up some discussion about the nature of validation. Given that the comments over there seem to address the idea in the context of Tildes...

      The recent topic about vote counts being removed has sprung up some discussion about the nature of validation. Given that the comments over there seem to address the idea in the context of Tildes specifically, I figured I'd create an offshoot thread for a more philosophical discussion of the question at large.

      • When is validation a good or bad thing?
      • Is seeking validation fundamentally a bad thing?
      • Is receiving validation for something great you've done fundamentally a good thing?
      • What is your own relationship like with validation?
      • Should platforms structurally encourage/discourage/balance methods for validation?
      23 votes
    16. What are you most proud of in your life?

      Someone asked me this recently, and I wasn't sure how to answer. Not because I can't self-identify things I've accomplished, but because it can seem boastful to openly express them. For this...

      Someone asked me this recently, and I wasn't sure how to answer. Not because I can't self-identify things I've accomplished, but because it can seem boastful to openly express them.

      For this thread, I want to remove any and all social restrictions on boasting. Talk yourself up! Be loud and proud! Navel-gazing is not only allowed, but encouraged!

      I chose the title based off how the question was phrased to me, but I'm really interested in what you consider to be your most positive achievements and characteristics. As such, consider the following series of questions as a jumping off point:

      • What are you most proud of in your life?
      • What are your biggest accomplishments/successes in life?
      • What are you good at?
      • What are your unique talents and skills?
      • What makes you individually awesome and stand out from others?
      • What significant hardships have you overcome?
      • How you have you changed your life, others' lives, or the world for the better?
      20 votes
    17. Hierarchical tags: How they're used and working toward a community standard [Draft part 1]

      among the things i have been working on for the past day and change is documentation of the novel uses of hierarchical tags on tildes, how they vary by group (or in the cases here, across most or...

      among the things i have been working on for the past day and change is documentation of the novel uses of hierarchical tags on tildes, how they vary by group (or in the cases here, across most or all of the site), and how we might best begin to standardize, introduce, or deprecate them going forward so we're on the same page and end up with tags that aren't a giant, unfriendly, user-unintuitive mess.

      obviously, though, this is something that should probably include community input since the community generally determines the tags used in the first place; therefore, this is your chance to check my work, suggest additions, removals, etc. to this draft and in the end, hopefully help craft a standard of hierarchical tagging that's simpler, more intuitive, and more consistent for everybody on the website to use so we can reduce future meta discussions on this and make tags better overall.

      this will be done in chunks for convenience purposes (your sake and mine). therefore, if you would be so kind as to try and limit your suggestions to the pertinent tags, that would be most helpful.



      Mostly group non-specific tags

      There are also a number of tags which are more general and occur or can occur in several or all groups on the website. Some of the more common conventions of hierarchical tags that are generally not group-specific are:


      economics. and similar tags

      The economics tag can occur in several groups, most often ~science, ~news, and ~misc. While it can take hierarchical tags, standalone economics is usually fine. Nonetheless, with specific branches of economics like microeconomics and macroeconomics, hierarchical tags should probably be used (thus economics.micro, economics.macro, economics.applied, and so on). Examples of this in action (and further specification under this scheme) are:

      • economics.trade (economics and trade)
      • economics.micro.urban (urban microeconomics)
      • economics.policy.employment (economic policy with respect to employment)

      However, when placed in ~science, the standard is always socialsciences.economics over economics. to align with the standards of tagging in that group, thus socialsciences.economics.trade instead of economics.trade. Given that economics. in this case is itself a hierarchical tag, it may be pertinent to break off the last hierarchical tag into its own tag where it would lead to three consecutive hierarchical tags, like so:

      • socialsciences.economics.micro and urban areas
      • socialsciences.economics.policy and employment

      law.

      The law tag takes a very large number of modifiers and can be used in just about every group due to the fact that law generally transcends the current set of groups Tildes has. Historically, topics related to law have been tagged in the [modifier] law format (i.e. medical law, copyright law, us law, and so on); however, this has generally been phased out by the community in favor of using hierarchical tags for the modifiers. Therefore, with respect to pre-existing tags, constructions like medical law should be deprecated in favor of law.medical. In addition, the following tags which do exist should be converted accordingly:

      • medical law (convert to law.medical)
      • international law (convert to law.international)
      • labor law (convert to law.labor)
      • employment law (convert to law.employment)
      • antidiscrimination laws (convert to law.antidiscrimination)
      • copyright law (convert to law.copyright)
      • maritime law (convert to law.maritime)
      • environmental law (convert to law.environmental)
      • gun laws (convert to law.guns)

      All single modifier tags should follow a pattern like this. In other words, if you were going to tag something as "abortion law", you should do law.abortion instead of abortion law. Currently well established tags following this format are: law.citizenship, law.international, law.labor, law.marriage, and law.juvenile.

      The following tags with location tags in them (and similar tags like them) should be converted slightly differently from the above tags. Instead of being rolled directly, the locator tag (or what would be the locator tag) should be broken out from the tag, and the tag that is left should have its modifier turned into a hierarchical tag if possible. Thus:

      • usa federal laws is converted to law.federal and usa. (To elaborate in this case, the usa is separated, leaving federal laws which can be converted into law.federal)
      • us law is similarly converted to law and usa
      • european law is converted to law and european union

      However, this should generally not be done with tags which refer to specific laws. For example religious neutrality law, blue laws and safe haven law are tags which should not be converted to use hierarchical tags because it makes little sense to do so.

      There are also two specific tags which should generally not be rolled, which are martial law and law enforcement. Martial law is mostly used to refer to a specific state of affairs rather than an actual subset of law, so it makes little sense for this to be grouped into the law tag, while law enforcement is not really law in the sense being tagged here and is also covered by other tags like policing; using law.enforcement for this purpose would also be ambiguous, since it more likely would refer to enforcement of legal doctrine.

      The use of the sharia law tag is ambiguous. Since sharia is de jure a form of law, it would make sense to roll it like the other examples so that the tag is law.sharia; however the two uses of it on Tildes are sharia law and there is currently no real consensus on whether or not to roll it in this manner.


      nsfw., trigger., tw., cw. and similar tags

      nsfw., trigger., tw, and cw. are all universal tags that have been used in one form or another to separate out content which might be objectionable and which are still useful for these purposes. Although all four have been used, the community has largely settled on a standard of using trigger. over tw. and cw. with potentially triggering content primarily for reasons of clarity (the trigger. tag also been put forward by Deimos previously as a way of handing potentially triggering and objectionable content). nsfw. is also sometimes used, but this is less frequent and usually carries a different implication than trigger. does.

      As mentioned above, if you are using intending to use a tag of this sort, the preferred option in almost all cases is trigger. over tw. or cw.. For all intents and purposes, tw. and cw. should be considered mothballed and previous uses of them should probably be converted into trigger. at some point (particularly the duplicates tw.death, tw.suicide, and tw.selfharm).

      The main established tags under the trigger. banner are:

      • trigger.death
      • trigger.selfharm
      • trigger.suicide
      • trigger.sexual violence
      • trigger.rape
      • trigger.assault
      • trigger.child abuse
      • trigger.transphobia
      • trigger.homophobia (not used yet, but presumably applicable due to trigger.transphobia's existence)

      These are self explanatory for the most part, and cover most bases; however, if you feel that a particular topic is likely to be triggering for some people, it would be courteous to tag it accordingly in line the above tags. (Do also note that all of these tags can be and often are applied as standalone tags instead of being grouped under trigger. due to the fact that trigger. has waxed and waned in popularity over Tildes's existence.)

      If you are intending to post graphic content, or content which has the potential of exposing people to graphic content (broadly construed) and want to tag it accordingly, nsfw. is generally preferable over trigger.. nsfw. is quite rare, but one example of it in action is the nsfw.racism tag on Ignore The Poway Synagogue Shooter’s Manifesto: Pay Attention To 8chan’s /pol/ Board due to the exceptionally racist content screencapped as a part of the submitted article. nsfw.sex is also seen on Do Police Know How To Handle Abuse Within Kinky Relationships? due to the explicitly sexual nature of the article's subject, but this is more of a courteous measure than a necessary one--a qualified nsfw tag is generally not necessary, and if one is a moderator will most likely add it after the fact.


      hurricanes., cyclones., and typhoons.

      Tropical cyclone news generally fits into several places, most often ~news, ~enviro, or ~science. Generally, the standard for tagging tropical cyclones, whether they are hurricanes, cyclones, typhoons, or other similar storms is to use the applicable term for the storm in question, and then use a hierarchical tag for the storm's name. Actual examples of this are:

      This is relatively straightforward, and covers the nomenclature of all existing basins. However, some basins have not been represented on Tildes thus far, so here are the two cases where standards overlap for reference:

      • the Pacific hurricane basin and the South Atlantic basin would both be represented by the same standard as the Atlantic basin (thus, hurricanes.patricia for the Pacific Hurricane Patricia and hurricanes.catarina for the South Atlantic Hurricane Catarina)
      • the Australian, North Indian, and South Pacific basins would be represented by the South-West Indian basin's standard (thus, cyclones.tracy for Australian Cyclone Tracy, cyclones.fani for North Indian Cyclone Fani, and cyclones.gita for South Pacific Cyclone Gita).

      For convenience purposes, storms which are named but have not hit hurricane status should probably still be referred to with the corresponding cyclonic storm tag for their basin, even though they have not formally reached hurricane, cyclone, or typhoon status.

      If there is no name to refer to (i.e. a name has not been designated for the storm), a hierarchical tag should probably not be applied at all, since that would get messy and likely necessitate updates. With storms that have only nicknames or lack a name under the nomenclature since they predate cyclone naming (for example, the 1938 New England Hurricane) there's really no best way to do things, however, using a truncation of the nickname may be the most preferable option (for example: hurricanes.1938 new england).

      36 votes
    18. Any developers/designers interested in a helping build a proof-of-concept for a new type of data-centric app?

      Wow it was hard to describe this in the title! I should have said "data-centric APP" not UI. Sorry! LOL I have had an idea for 25 years that I keep NOT pursuing because I was convinced that the...

      Wow it was hard to describe this in the title! I should have said "data-centric APP" not UI. Sorry! LOL
      I have had an idea for 25 years that I keep NOT pursuing because I was convinced that the next big version of Linux/Windows/etc would include a more civilized way to manage data. It just seems obvious in my strange mind, I guess that means intuitive. I've discussed the idea and worked on refining the concepts with about 20 people and they all agreed.

      My idea is based on a huge paradigm shift about managing all forms of data by the user. It's about how we manage data, not just file-system stuff or yet-another Windows/File Explorer or any of the numerous current Linux varieties. I'm honestly shocked that in 2019, the most original idea that's come about is to remove all the menus and toolbars (freeman) or add a bunch of tabs and hundreds of buttons (pretty much everything on Windows).

      I am a software engineer and designer with 35 years experience - but with business class apps, not OS stuff. I am semi-retired and have a great deal of time to work on whatever interests me. And please note: Despite my advanced years ;-) LOL I am very current on the technologies I work with daily, which is mainly .net/c#. However, I just finished a year-long project that had a Java client running on a Raspberry Pi (which I love) paired with a WCF service running in IIS, along with an asp.net web client. Now I'm not an expert in any of that, but I'm not too shabby I don't think as I've made a good living and do mostly volunteer work right now.

      I currently manage a massive amount of data, from files/dirs on Windows and Linux file-systems, to MSSQL and mySQL on both Windows and Linux, and of course some cloud data. And it takes several tools as you know, and it's incredibly inefficient and painful. And of course on Windows, Windows/File Explorer is - eh, I can't find a word strong enough. On Linux not much better. And I've spent the past two years searching, researching, testing, and praying.

      My idea is to build an app that allows users - not just developers like me - but mostly aimed at business users - to manage data from various sources/technologies in a single unified and intuitive manner. The physical aspect is divorced from the UI which is divorced from the management engine. And it's grouped the way the user THINKS and WORKS with it. For example, let's say for PROJECT-A (and Client-1) I have various source code locations on 2 local hard drives, but also documents (technical specs, or maybe letters to the client, spreadsheets or timelines), and of course likely a database or two, some web-site links. How many places and how many apps would I have to use today to keep them all close by so I could get to them? Well, there'd be a couple of drive letters probably, maybe a few sub-folder levels deep, maybe documents on a network share, some collaborative docs in the cloud, and some web-site links in whatever-browser-you-use. You get the idea.

      No file manager on any OS can give you much more than "Places" or file-system - drive letters on Windows or some mount points on Linux. Things like MyDocuments, MyMusic, MyInsanity - that stuff makes no sense because it's not how people work. What I want is a "work-space" where I can have any number of what I call "Data Sources" - and it doesn't matter what physical technology is underneath it - local hard drive, local sub-folder, mapped drive, unc mount, cloud, ftp - don't care - don't need to. I create a work-space, add data sources, order them however I want, name them whatever I want, and each "Data Source" has a manager or provider. A filesystem provider would make your data source look like Windows Explorer. But a database provider could look like MS SQL Server Manager or other db admin tool. And you put that workspace in a tab if you want, and have as many others in other tabs - or you put them on a menu, or on a popup that a middle-click brings up - doesn't matter. And everything I've just written, plus it's settings, is represented by Viewer objects. A hierarchical - tree-view or the likes - a flat view - a list-view - a preview pane, or editor pane - navigation tool (path/breadcrumbs) - a command line shell pane - drag/dock wherever in the tab you want. A main menu/toolbar + status-bar would be global and shared. And all THAT is bundled into a PARENT object - which contains the work-spaces, which contains the tabs, which contains the data sources + provider views/panes. And you can have as many of THOSE - parent objects - as you need, easily accessible in the custom titlebar at the top, or bottom, etc..

      The point is - when I am working on PROJECT-A I manage it in a tab that contains ONLY the drive letters, or mount points, that are relevant (and named what I choose, meaning no drive letters forced on me even if that is the underlying reality nor any full paths or full URLs - just logical names I assign). This will NOT be some massive file manager with every folder on the system or 18 drive letters I'll never use. It will have all the web-site bookmarks I need, as well as databases I'm working with. This won't be an ALL-IN-ONE type of thing - you will STILL use your external apps, web browser, IDE or editor, mail app - but it will be a SINGLE place where ALL those data items get represented and where you can manage them in exactly the same way. I can copy/paste an email message to a file on my workstation, or copy a file from a network share to some machine remotely using ftp or http.

      I hope this makes some kinda sense and doesn't just sound like the ramblings of yet-another aging geek who thinks he's got a great new idea. My usage scenarios are literally based on things I do every day, and are the result of observing myself as I work to see what my mind is doing. I do realize that we all work in our own way, and I've taken that into account. But there are basic things we all do concerning data management. And as I have hired, trained, and worked with a huge number of fellow programmers over my 35 years - without exception this was the most common soft point for them all. Keeping track of data. The same applies to all my clients. I've written software for accountants and attorneys, and a wide variety of business types - and without exception - every one of them had trouble with managing their data. One look at their Desktop or MyDocuments - or just watching them trying to find a letter in MS-Word - tells the whole story.

      Ok there's my pitch - I'm looking for anyone who has interest, no matter what your skill level or how much time you can or cannot devote. We need people who can contribute only opinion and advice, as well as hardcore keyboard jocks like me who love to code for 36 hours at a clip ;-) LOL

      12 votes
    19. A personal story about fake news

      I had an interesting conversation with my housemate last night, which opened my eyes to just how easily fake news gets into ordinary people's minds. We were discussing an episode of 'The Orville'...

      I had an interesting conversation with my housemate last night, which opened my eyes to just how easily fake news gets into ordinary people's minds.

      We were discussing an episode of 'The Orville' we had just watched, and conversation shifted topics (as it does), and we ended up talking about free speech and political correctness - and he told me, quite matter-of-factly, that at least one local school had removed all books which referred to "boys" or "girls" from its library, and that other schools wanted to ban children from referring to themselves as "boys" or "girls". This was part of a politically correct drive to remove all references to gender, so that noone is "male" or "female".

      My housemate is not a raving lunatic. He's not a rabid fascist or alt-right person. He's just an ordinary Aussie guy, going about his ordinary life, with no malice to anyone.

      But his extended family watches certain TV channels and reads certain newspapers, and he had picked up this little nugget of knowledge from a TV show one of them was watching.

      We discussed the matter, and I told him that what he had just said is fake news. I explained that I didn't think he was wrong, but that his sources were wrong. He wouldn't believe me - to the point where he demanded that we go to a computer and double-check it.

      It didn't take me long to find both the newspaper articles and television segments spreading this fake news, and the other sources debunking it (because I knew what I was looking for). It turns out that some ivory-tower academics had done a study which showed that making little girls play with "hyper-feminised toys like Barbies" was reinforcing certain sexist stereotypes, and maybe that should be changed. That was it. But certain newspapers (owned by a certain media tycoon) had twisted this into a scare story involving evil teachers who were coming to steal your children's identities by stopping them from being boys and girls and removing everything that said "boys" and "girls" from libraries - and other news outlets had picked up this story and run with it, adding their own touches as it bounced from one outlet to another.

      As soon as I showed him the debunking sources, he accepted them. He got a bit defensive, and deflected blame on to his family and the news - but he believed the truth when I showed it to him. He's not stupid or malicious, just misinformed. I agreed with him that it wasn't his fault. As he said, most normal people aren't like me, reading deep into the news and double-checking what they say. Most people just read the paper or watch the TV and accept what they're told.

      Fake news is so easy to spread. Most people don't question their news sources. If a newspaper or newsreader tells them something, they believe it because it's coming from a supposedly reliable source.

      32 votes
    20. In my opinion, censorship is a bad way to combat hate speech.

      (Let me make this clear before you continue reading, I don't know any good solutions) Recently, all over the internet, I feel like I am seeing more and more companies filtering out content that...

      (Let me make this clear before you continue reading, I don't know any good solutions)

      Recently, all over the internet, I feel like I am seeing more and more companies filtering out content that are considered hate speech. I personally do not like this for two reasons.

      1. I think it is a band-aid solution. People who have their voice taken away from themselves are not suddenly going to change their mind.
      2. In a way, it is a form of removing freedom of speech. Now, I understand that a lot of the companies that are censoring hate speech are doing it primarily for the sake of sponsors, but I mean this in a more broad scope.
      3. It is effectively hiding societal problems.

      I think one argument for the increased censorship is: even if it doesn't combat hate speech, it stops the spreading of hate speech. By spreading, I mean more people believing that hate speech. Though at first this could be a good idea, I think it is the wrong way to go about it. I really don't know what exactly is the right way to deal with this issue. Maybe more inclusion of different communities? Maybe education? Learn how to think critically?

      Here are a couple other things I have been thinking about, but I am not too sure about. I do not know if they are true or not, but if any of you could provide more insight, I would like to know more:

      1. Hate speech is actually lower than ever. The reason why some people feel like it is higher is because the hate speech is entering to people's bubbles through the internet. Before the internet, there was still that kind of talk, it was just in a different medium.
      2. Though not hate speech, but in a way related, with Anti-vax, the people who are most susceptible to converting to an anti-vaxxer, are parents. A lot of times these are the people who didn't grow up with the internet, the way they view the internet is not exactly how younger people view the internet. There is more doubt in what we see online between younger people than older.

      And I have had people say I must be a white upper class person to have these kinds of opinions. No. I am not white. Not upper class. I have dealt with racism in one way or another for all of my childhood, less so as an adult.

      28 votes
    21. Experimenting with a way of avoiding deeply nested comment threads

      One of the difficulties with a nested/tree commenting system is finding a way to deal with threads that get very "deep", when people continue replying back and forth under the same threads. The...

      One of the difficulties with a nested/tree commenting system is finding a way to deal with threads that get very "deep", when people continue replying back and forth under the same threads. The deep threads end up getting indented very far, and this looks bad, can be hard to follow, and wastes a ton of space (especially on smaller screens like phones).

      I'm not a huge fan of any of the ways that I've seen other sites try to handle this, so I've been trying to figure out if there might be any other possibilities that would work well. I've noticed that in most of the cases where a thread gets very deep, a lot of the depth comes from back-and-forth replies, where there's only one comment on each "level". So I'm testing a method that will flatten those sections out and just put a note on each comment that it's a direct reply to the comment above it.

      Specifically, the current method (which is now live), works like this: if a comment is at least 4 levels deep and only has a single reply, don't indent the reply any further. Instead, keep the reply at the same indentation and add a note at the top of it indicating that it's a reply to the above comment.

      I managed to implement this entirely through CSS, by writing what's probably the worst best chunk of CSS (really, SASS) of my life, which I want to show off here. If you don't know CSS and can't read this, trust me, you're better off:

      .comment:not([data-comment-depth="0"]):not([data-comment-depth="1"]):not([data-comment-depth="2"]):not([data-comment-depth="3"]) {
        &[data-comment-replies="1"] {
          & > .comment-tree-replies {
            margin-left: -1px;  // compensate for border
      
            & > .comment-tree-item > .comment > .comment-itself {
              & > .comment-text::before,
              & > header > .is-comment-deleted::before,
              & > header > .is-comment-removed::before {
                content: "(Reply to above comment)";
                font-size: 0.6rem;
                font-style: italic;
                margin-right: 0.2rem;
              }
            }
          }
        }
      }
      

      One of the really interesting things about implementing this entirely in CSS is that we can easily change what level it happens at based on screen size. So I have it set to always start at depth >= 4 right now to help with testing and deciding whether it works well or not, but if we decide to keep it I could easily change the threshold to higher on desktop and keep it lower on smaller screens.

      As an example of how it works, the previous ~tildes.official thread works really well. @Amarok and @cfabbro had a long discussion about music metadata that went very deep. The thread ends up 16 levels deep, but this new change makes it so that it only indents by 5 levels instead of 16. Here's a comparison between how the end of the thread looks on my phone: before this change vs. after this change (yes, something's not quite right with the indentation lines yet).

      Let me know what you think. I'm mostly concerned that this might make it a little harder to follow long threads since the information from the indentation is lost, but I think we need to test it out in real threads for a while to see if that actually ends up being significant or just takes a bit of getting used to.

      76 votes
    22. Mod annotations for removed comments

      I just came across this field of 13 admin-removed comments and frankly it left me feeling rather unsettled. That's a lot of content to just nuke all at once. Contextually, the thread up to that...

      I just came across this field of 13 admin-removed comments and frankly it left me feeling rather unsettled. That's a lot of content to just nuke all at once. Contextually, the thread up to that point was genial and non-controversial, so it seems especially odd that there's just this black hole there. What struck me mostly was how opaque the moderation was. There is no indication of what kind of content was removed, why it was removed, or specifically who did the removal or when it happened.

      Then I scrolled down and at the very bottom I found what I guess is meant to address these concerns, a comment from Deimos:

      Sigh, I saw this thread was active and thought it was going to have an actual on-topic discussion in it. Let's (mostly) start this over.

      It's not always clear online so I want to say that I'm not rage-posting or bellyaching about censorship or any of the usual drama that tends to crop up on sites like Tildes from time to time. I trust Deimos' moderation and give this the benefit of the doubt. What I'm actually doing, I guess, is making a feature request about better annotation for removed comments.

      Would it make sense to show a note (like Deimos' comment) in-thread at the position of the deleted content? Instead of down at the bottom of the page or unattached to anything relevant? In my opinion some kind of "reason" message should always be provided with any moderation activity as a matter of course. Even if it's just boilerplate text chosen from a dropdown menu.

      Also, would a single bulk-annotation for all of the related removals make for better UX than 13 separate ones? I think that would be both easier to read, and easier for Deimos to generate on the backend.

      I feel like we may have had this conversation previously, but I couldn't find it. Apologies if I'm beating a dead horse.

      13 votes