• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. What social responsibilities do fiction authors have (if any)?

      In 1977, Stephen King published a novel about a school shooting called Rage. It is somewhat infamous, as it has been connected to instances of real-life school shootings. King, in response,...

      In 1977, Stephen King published a novel about a school shooting called Rage. It is somewhat infamous, as it has been connected to instances of real-life school shootings. King, in response, allowed the story to fall out of print and has never reissued it. The novel has a lot in common with other YA stories and tropes: a disaffected protagonist, meddling/out of touch adults, and newfound social connection with peers. While the main character is undoubtedly disturbed, the novel feels somewhat uncritical (or potentially even supportive) of his actions.

      Certainly fiction is a space where authors are free to explore any point of view or theme they wish. The beauty of fiction is that it is limitless and consequence-free. No people are harmed in Rage because there are no people in it. Its characters are merely names and ideas--they are a fiction.

      Nevertheless, Rage addresses a real-world phenomenon, and the beauty of fiction is that it doesn't live as a lie. As Ursula K. Le Guin writes,

      "In reading a novel, any novel, we have to know perfectly well that the whole thing is nonsense, and then, while reading, believe every word of it. Finally, when we're done with it, we may find - if it's a good novel - that we're a bit different from what we were before we read it, that we have changed a little..."

      We like fiction because it resonates with us, exposing us to themes that can affirm, shape, or challenge our mindsets.

      With this dichotomy in mind, I'm torn between whether authors should be free to explore anything they wish from the safety of make-believe, or whether they have a social responsibility because their words carry messages and ideas that directly impact lives. I'm not sure what to think, and I can come up with great arguments for both sides. What's your take? What social responsibilities do fiction authors have (if any)?

      19 votes
    2. Programming Challenge - It's raining!

      Hi everyone, it's been 12 days since last programming challenge. So here's another one. The task is to make an algorithm that'll count how long would it take to fill system of lakes with water....

      Hi everyone, it's been 12 days since last programming challenge. So here's another one. The task is to make an algorithm that'll count how long would it take to fill system of lakes with water.

      It's raining in the forest. The forest is full of lakes, which are close to each other. Every lake is below the previous one (so 1st lake is higher than 2nd lake, which is higher than 3rd lake). Lakes are empty at the beginning, and they're filling at rate of 1l/h. Once a lake is full, all water that'd normally fall into the lake will flow to the next lake.

      For example, you have lakes A, B, and C. Lake A can hold 1 l of water, lake B can hold 3 l of water and lake C can hold 5 l of water. How long would it take to fill all the lakes?
      After one hour, the lakes would be: A (1/1), B (1/3), C(1/5). After two hours, the lakes would be: A(1/1), B(3/3), C(2/5) (because this hour, B received 2l/h - 1l/h from the rain and 1l/h from lake A). After three hours, the lakes would be: A(1/1), B(3/3), C(5/5). So the answer is 3. Please note, that the answer can be any rational number. For example if lake C could hold only 4l instead of 5, the answer would be 2.66666....

      Hour 0:

      
      \            /
        ----(A)----
                             \                /
                              \              /
                               \            /
                                ----(B)----
                                                   \           /
                                                    \         /
                                                     \       /
                                                     |       |
                                                     |       |
                                                      --(C)--
      

      Hour 1:

      
      \============/
        ----(A)----
                             \                /
                              \              /
                               \============/
                                ----(B)----
                                                   \           /
                                                    \         /
                                                     \       /
                                                     |       |
                                                     |=======|
                                                      --(C)--
      

      Hour 2:

                  ==============
      \============/           |
        ----(A)----            |
                             \================/
                              \==============/
                               \============/
                                ----(B)----
                                                   \           /
                                                    \         /
                                                     \       /
                                                     |=======|
                                                     |=======|
                                                      --(C)--
      

      Hour 3:

                  ==============
      \============/           |
        ----(A)----            |             ========
                             \================/       |
                              \==============/        |
                               \============/         |
                                ----(B)----           |
                                                   \===========/
                                                    \=========/
                                                     \=======/
                                                     |=======|
                                                     |=======|
                                                      --(C)--
      

      Good luck everyone! Tell me if you need clarification or a hint. I already have a solution, but it sometimes doesn't work, so I'm really interested in seeing yours :-)

      21 votes
    3. A layperson's introduction to the nature of light and matter, part 1

      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 the dual nature of light and matter, the wave-particle duality. It is a central concept in quantum mechanics that - as is tradition - violates common sense. I will first discuss the duality for light and then, in the next post, for matter.

      The dual nature of light

      In what terms can we think of light so that its behaviour becomes understandable to us? As waves? Or as particles? There are arguments to be made for both. Let's look at what phenomena we can explain if we treat light as a wave.

      The wave nature of light

      Let's start with an analogy. Drop two stones in a pond, imagine what happens to the ripples in the pond when they meet each other. They will interact, when two troughs meet they amplify each other, forming a deeper trough. When two crests meet they do the same. When a crest and a trough meet they cancel out.

      Now if we shine light through two small openings and observe the resulting pattern, we see it's just like ripples in a pond, forming an interference pattern. When looking at the pattern formed on a screen placed at some distance from the openings, we see a striped pattern Light can be described as an electromagnetic wave, with crests and troughs. It sure seems like light is wavey! The wave nature of light allows us to describe phenomena like refraction and diffraction.

      The particle nature of light

      When we shine light on some metals, they will start tossing out electrons. This is called the photoelectric effect. How can we understand this process? Well we know light is a wave, so we imagine that the wave crashes into the electron that is chilling out near the surface of the metal. Once the electron has absorbed enough of the light's energy it will be able to overcome the attractive forces between itself and the positively charged atom core (remember, an electron has negative charge and so is attracted to the atom cores). So a higher intensity of light should make the electron absorb the required amount of energy more quickly. Easy, done!

      However, there's something very peculiar going on with the photoelectric effect. If we shine low frequency light on said metal, no matter how intense the light, not a single electron will emerge. Meanwhile if we shine very little high frequency light on the metal, no matter how low the intensity, the electron will emerge. But how can this be? A higher intensity of light should mean the electron is receiving more energy. Why does frequency enter into this?

      It seems that the electron needs a single solid punch in order to escape the metal. In other words, it seems it needs to be hit by something like a microscopic billiard ball that will punch it out of the metal in one go. The way physicists understand this is by saying light is made up out of particles called photons, and that the energy a photon carries is linked to its frequency. So, now we can understand the photoelectric effect! When the frequency is high enough, the photons in the light beam all individually carry enough energy to convince an electron to leave the metal. When the frequency is too low, none of the photons individually can knock an electron out of the metal. So even if we fire a single photon, with high enough frequency, at the metal we will see one electron emerging. If we shine low frequency light with a super high intensity at the metal, not a single photon will emerge.

      So there you have it! Light is made out of particles. Wait, what? You just told us it's made out of electromagnetic waves!

      The wave-particle duality of light

      So, maybe light is just particles and the wave are some sort of emerging behaviour? This was a popular idea, one that Einstein held for some time. Remember the experiment where we shone light through two small openings and saw interference (commonly known as the double slit experiment)? Let's just take a single photon and shoot it at the openings! Because light is particles we'll see the photon just goes through either opening - like a particle would. Then all the non-believers will have to admit light is made out of particles! However, when we do the experiment we see the photon interfere with itself, like it was a wave. Remember this picture which we said was due to wave interference of light? When a single photon goes through the openings, it will land somewhere on the screen, but it can only ever land in an area where the light waves wouldn't cancel out. If we shoot a bunch of photons through the openings one at a time, we will see that the photons create the same pattern as the one we said is due to wave interference!

      Implications

      So it would seem light acts like a particle in some cases, but it acts like a wave in some others. Let's take a step back and question these results. Why are we trying to fit light into either description? Just because it's convenient for us to think about things like waves and particles - we understand them intuitively. But really, there is no reason nature needs to behave in ways we find easy to understand. Why can't a photon be a bit wavey and a bit particley at the same time? Is it really that weird, or is it just our intuition being confused by this world we have no intuitive experience with? I would love to hear your opinions in the comments!

      Observing photons

      To add one final helping of crazy to this story; if we measure the photon's location right after it emerges from the slit we find that it doesn't interfere with itself and that it just went through a single slit. This links back to my previous post where I described superpositions in quantum mechanics. By observing the photon at the slits, we collapsed its superposition and it will behave as if it's really located at one spot, instead of being somehow spread out like a wave and interacting with itself. The self interaction is a result of its wavefunction interacting with itself, a concept that I will explain in the next post.

      Conclusion

      We learned that light cannot be described fully by treating it simply as a wave or simply as a bunch of particles. It seems to be a bit of both - but neither - at the same time. This forces us to abandon our intuition and accept that the quantum world is just fundamentally different from our every day life.

      Next time

      Next time we will talk about the dual nature of matter and try to unify the wave and particle descriptions through a concept known as the wavefunction.

      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!

      Addendum

      The photoelectric effect is actually what gave Einstein his Nobel prize! Although he is famous for his work on relativity theory he was very influential in the development of quantum mechanics too.

      21 votes
    4. Meta Discussion: Is there interest in topics concerning code quality?

      I've posted a few lengthy topics here outside of programming challenges, and I've noticed that the ones that seem to have spurred the most interest and generated some discussion were ones that...

      I've posted a few lengthy topics here outside of programming challenges, and I've noticed that the ones that seem to have spurred the most interest and generated some discussion were ones that were directly related to code quality. To avoid falling for confirmation bias, though, I thought I would ask directly.

      Is there generally a greater interest in code quality discussions? If so, then what kind of things are you interested in seeing in those discussions? What do you prefer not to see? If not, then what kinds of programming-related discussions would you prefer to see more of? What about non-programming discussions?

      Also, is there any interest in an informal series of topics much like the programming challenges or the a layperson's introduction to... series (i.e. decentralized and available for anyone to participate whenever)? Personally, I'd be interested in seeing more on the subject from others!

      17 votes
    5. Minimalism and/or zero waste life

      Hi there. It seems that minimalist and zero waste movements have picked up some steam recently in many first world countries as a reaction to the consumerist, greed-based lifestyles promoted and...

      Hi there. It seems that minimalist and zero waste movements have picked up some steam recently in many first world countries as a reaction to the consumerist, greed-based lifestyles promoted and upon realisation of our impact on the world. As an aspiring zero waste minimalist and general conversationalist, I am interested in your opinions, so I'll bombard you with some questions.


      Do any of you lead a minimalist or zero waste life, or are you aspiring to or making the transition right now?

      What is your opinion of the movements?

      Are you opposed to the lifestyles?

      Why are you/do you want to be minimalist or create zero waste?

      What is minimalism to you?

      Are you a minimalist in some or all parts of your life?

      What challenges did you run into when making the changes, and how did you overcome them?

      Is there anything you recommend to those who are still just aspiring?

      Does minimalism imply frugality?

      Do you have anything else to add?

      28 votes
    6. Tech Talk: What's the make & model of your current phone? What do you like about it? Dislike? What phones have you owned in the past?

      Following on from the Tildes 0.5 year survey in which 72% of users stated they used an Android device, and 24% used an iOS device, I thought it'd be fun to ask people in a longform manner to talk...

      Following on from the Tildes 0.5 year survey in which 72% of users stated they used an Android device, and 24% used an iOS device, I thought it'd be fun to ask people in a longform manner to talk about their current phone, and their dislikes & likes about it. What has your upgrade history been like?

      I'm currently utilising an iPhone XS (no "Max") in 256GB. This is my first phone upgrade where I've felt like the changes are a step sideways rather than forwards from what I've previously experienced. The minimal bezels are very nice, and once you understand how the iOS experience fits into the overall vision for Apple's phone lineup, the notch becomes an immediately obvious choice—a design compromise for the time being until we can place the sensor array under the display.

      Face ID is acceptable. It fails a bit more often than Touch ID ever did, but it fails in different situations, and also works better in others. For a first generation iteration it's acceptable; if it can get more diverse with time and work better in extreme sunlight and at wider angles, it'll become definitively better than a fingerprint scanner.

      I talked a bit about the OLED display in the XS in this comment here, where I can distinguish the pentile crosshatching pattern, and again, I feel that the OLED is a case of better in some situations, worse in others. The inky blacks are fantastic, but the dark ghosting is a compromise I'm less happy with. Apple's IPS LCD panels are so good, they had a high bar to meet here.

      The camera is again truly fantastic; not enough to ever make me consider selling my Sony mirrorless, but the computational photography aspects makes taking challenging photos more of a breeze than ever before.

      Finally, after living with a plus-sized phone for the past 4 years, a step back to a smaller form factor with a similar sized screen is a breath of fresh air—I can finally tie my shoelaces up with my phone in my jean pockets again.

      The watch & AirPods & continuity integrations will keep me happy in the Apple ecosystem for a while yet, but I'd need to see a very compelling new feature of aspect to a future phone to upgrade in the next 2 years at this point. Phones are lasting longer than ever before, as they should, and Apple knows this.

      Previously I've owned

      • iPhone 7 Plus, Jet Black 256GB. The Jet Black finish coupled with the weightier frame & thicker body definitely resulted in this feeling like the most polished iPhone 6-style design to date. Runner up for my favourite phone. Further more the P3-gamut display significantly improved image quality. I wasn't happy enough with the iPhone X to consider an upgrade.

      • iPhone 6 Plus, Silver 128GB. Might be my least favourite phone of all time? Too thin, slippery, suffered from bendgate; and had display issues which gave it a bad rap. Touch ID was cool; however.

      • iPhone 4, Black. Might be my favourite phone of all time, purely from a design standpoint? Utilising the steel frame around the edge of the phone as an antenna was completely unheard of back then and truly a fantastic design innovation. The sandwiched glass profile was both a fingerprint magnet and truly gorgeous; and the Retina display was breathtaking. I'd love to see a return to this design profile.

      • iPhone 3G. My first phone. I distinctly remember jailbreaking this device to change the cellular provider name in the top left corner & enable some extremely low quality video recording; this was also the good old days of fantastic games like Tap Tap Revenge.

      How about you?

      35 votes
    7. nil

      I'm rather sleepy, generally very reserved when it comes to sharing my work, and not a native user of English, but I have a couple poems in English, and I though I'd share one here and see what...

      I'm rather sleepy, generally very reserved when it comes to sharing my work, and not a native user of English, but I have a couple poems in English, and I though I'd share one here and see what the folks think of it. I love the challenge of writing stuff in languages other than my native tongue.

      a bird with no wings
      a song no one sings
      a sorrow when time brings
               nil.
      ex nihilo nihil fit
      et words have no wit
      mouth knows only to spit
               nil.
      time is scarse and gods wobble
      in vain hurry naive men hobble
      ignoring they will only nobble
               nil.
      
      12 votes
    8. A layperson's introduction to LEDs

      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 will be light emitting diodes, better known as LEDs. As the name suggests, we'll have to discuss light and diodes. We will find out why LEDs can only emit a single colour and why they don't get hot like other sources of light. Let's start by discussing diodes, in case you are already familiar with diodes note that I will limit the discussion to semiconductor (p-n with a direct bandgap) diodes as that's the type that's used in LEDs.

      What's a diode?

      A diode is an electronic component that, ideally, only lets electric current through in one direction. In other words it's a good resistor when the current flows in one direction and a really good conductor when the current flows in the other direction. Let's look a bit closer at how diodes function.

      Semiconductors

      Diodes are made out of two different semiconducting materials. In everyday life we tend to classify materials as either conducting (metals being the prime example) or non-conducting (wood, plastics, rubber). Conductance is the flow of electrons through a material, a conducting material has a lot of electrons that can move freely through a material while an insulator has none. Semiconducting materials fall in between these two categories. They do conduct but not a lot, so in other words they have a few electrons that can move freely.

      N-type semiconductors

      We are able to change a semiconductor's conductivity by adding tiny amounts of other materials, this is called doping. As an example, we can take silicon (the stuff that the device you're reading this on is made out of) which is the most well-known semiconductor. Pure silicon will form a crystal structure where each silicon atom has 4 neighbours, and each atom will share 1 electron with each neighbour. Now we add a little bit of a material that can share 5 electrons with its neighbours (how generous!). What will happen? Four of its shareable electrons are busy being shared with neighbours and won't leave the vicinity of the atom, but the fifth can't be shared and is now free to move around the material! So this means we added more freely flowing electron and that the conductivity of the semiconductor increases. An illustration of this process is provided here, Si is chemistry-talk for silicon and P is chemistry-talk for phosphorus, a material with 5 shareable electrons. This kind of doping is called n-type doping because we added more electrons, which have a negative charge, that can freely move.

      P-type semiconductors

      We can do the same thing by adding a material that's a bit stingy and is only willing to share 3 electrons, for example boron. Think for a moment what will happen in this case. One of the silicon atoms neighbouring a boron atom will want to share an electron, but the boron atom is already sharing all of its atoms. This attracts other electrons that are nearby, one of them will move in to allow the boron atom to share a fourth electron. However, this will create the same problem elsewhere in our material. Which will also get compensated, but this just creates the same problem once more in yet another location. So what we now have is a hole, a place where an electron should be but isn't, that is moving around the crystal. So in effect we created a freely moving positive charged hole. We call this type of doping p-type. Here's an illustration with B the boron atoms.

      Creating a diode

      So what would happen if we took a n-type semiconductor and a p-type semiconductor and pushed them against one another? Suddenly the extra free-flowing electrons of the n-type semiconductor have a purpose; to fill the holes in the p-type. So these electrons rush over and fill the holes nearest to the junction between the two semiconductors. However, as they do this a charge imbalance is created. Suddenly the region of p-type semiconductor that is near the junction has an abundance of electrons relative to the positive charges of the atom cores. A net negative charge is created in the p-type semiconductor. Similarly, the swift exit of the electrons from the n-type semiconductor means the charge of the cores there isn't compensated, so the region of the n-type semiconductor near the junction is now positively charged. This creates a barrier, the remaining free electrons of the n-type cannot reach the far-away holes of the p-type because they have to get through the big net negative charge of the p-type near the junction. Illustration here. We have now created a diode!

      How diodes work

      Think for a moment what will happen if we send current* (which is just a bunch of electrons moving) from the p-type towards the n-type. The incoming electrons will face the negative charge barrier of the p-type and be unable to continue. This means there is no current. In other words the diode has a high resistance. Now let's flip things around and send electrons through the other way. Now they will come across the positive charge barrier of the n-type semiconductor and be attracted to the barrier instead. The electrons' negative charge compensates the net positive charge of the barrier on the n-type and it will vanish. This destroys the equilibrium situation of the barrier. The p-type holes are no longer repelled by the positive barrier of the n-type (as it no longer exists) and move closer to the junction, this means the entire barrier will fade and current can move through. We now have a conductor.

      OK, but I don't see what this has to do with light

      Now let's find out how we can create light using this method. When current is applied to a diode what happens is that one side of the diode is at a higher energy than the other side. This is what motivates the electrons to move, they want to go from high energy to low energy. If the p-type semiconductor is at a higher energy than the n-type the electron will, upon crossing the junction between the two types, go from a high energy level to a lower one. This difference in energy must be compensated because (as @ducks mentioned in his thermodynamics post) energy cannot be destroyed. So where does the energy go? It gets turned into light!

      The energy difference between the p-type and n-type is fixed, meaning a fixed amount of energy is released each time an electron crosses the junction. This means the light is of a single colour (colour is how we perceive the wavelength of light, which is determined by the energy of the light wave). Furthermore, none of the energy is lost so there is no energy being turned into heat, in other words the LED does not get warm.

      Conclusion

      So now we know why the LED is so power-efficient; it does not turn any energy into heat, it all goes into light. We now also know why they only emit a single colour, because the energy released when an electron crosses the junction is fixed.

      Next time

      I think next time I will try to tackle the concept of wave functions in quantum mechanics.

      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!

      Addendum

      *) Yes, current flow is defined to be opposite to the flow of the electrons, but I don't want to confuse readers with annoying definitions.

      34 votes
    9. Programming Challenge: Shape detection.

      The programming challenges have kind of come to a grinding halt recently. I think it's time to get another challenge started! Given a grid of symbols, representing a simple binary state of...

      The programming challenges have kind of come to a grinding halt recently. I think it's time to get another challenge started!

      Given a grid of symbols, representing a simple binary state of "filled" or "unfilled", determine whether or not a square is present on the grid. Squares must be 2x2 in size or larger, must be completely solid (i.e. all symbols in the NxN space are "filled"), and must not be directly adjacent to any other filled spaces.

      Example, where 0 is "empty" and 1 is "filled":

      000000
      011100
      011100
      011100
      000010
      
      // Returns true.
      
      000000
      011100
      011100
      011110
      000000
      
      // Returns false.
      
      000000
      011100
      010100
      011100
      000000
      
      // Returns false.
      

      For those who want a greater challenge, try any of the following:

      1. Get a count of all squares.
      2. Detect squares that are touching (but not as a rectangle).
      3. Detect other specific shapes like triangles or circles (you will need to be creative).
      4. If doing (1) and (3), count shapes separately based on type.
      5. Detect shapes within unfilled space as well (a checkerboard pattern is a great use case).
      13 votes
    10. Triple the apparatuses, triple the weirdness: a layperson's introduction to quantisation and spin, part 2

      EDIT: With the help of @ducks the post now has illustrations to clear up the experimental set-up. Introduction I want to give an introduction on several physics topics at a level understandable to...

      EDIT: With the help of @ducks the post now has illustrations to clear up the experimental set-up.

      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

      Spintronics
      Quantum Oscillations
      Quantisation and spin, part 1

      Today's topic

      Today's topic will be a continuation of the topics discussed in my last post. So if you haven't, please read part 1 first (see link above). We will be sending particles through two Stern-Gerlach apparatuses and then we'll put the particles through three of them. We will discuss our observations and draw some very interesting conclusions from it on the quantum nature of our universe. Not bad for a single experiment that can be performed easily!

      Rotating the Stern-Gerlach apparatus

      We will start simple and rotate the set-up of the last post 90 degrees so that the magnets face left and right instead of up and down. Now let's think for a moment what we expect would happen if we sent silver atoms through this setup. Logically, there should not be in any difference in outcome if we rotate our experiment 90 degrees (neglecting gravity, whose strength is very low compared to the strength of the magnets). This is a core concept of physics, there are no "privileged" frames of reference in which the results would be more correct. So it is reasonable to assume that the atoms would split left and right in the same way they split up and down last time. This is indeed what happens when we perform the experiment. Great!

      Two Stern-Gerlach apparatuses

      Let's continue our discussion by chaining two Stern-Gerlach apparatuses together. The first apparatus will be oriented up-down, the second one left-right. We will be sending silver atoms with unknown spin through the first apparatus. As we learned in the previous post, this will cause them to separate into spin-up and spin-down states. Now we take only the spin-up silver atoms and send them into the second apparatus, which is rotated 90 degrees compared to the first one. Let's think for a moment what we expect would happen. It would be reasonable to assume that spin-left and spin-right would both appear 50% of the time, even if the silver atoms all have spin-up too. We don't really have a reason to assume a particle cannot both have spin up and spin right, or spin up and spin left. And indeed, once again we find a 50% split between spin-left and spin-right at the end of our second apparatus. Illustration here.

      Three Stern-Gerlach apparatuses and a massive violation of common sense

      So it would seem silver atoms have spin up or down as a property, and spin left or spin right as another property. Makes sense to me. To be sure, we take all the silver atoms that went up at the end of the first apparatus and right at the end of the second apparatus and send them through a third apparatus which is oriented up-down (so the same way as the first). Surely, all these atoms are spin-up so they will all come out up top again. We test this and find... a 50-50 split between up and down. Wait, what?

      Remember that in the previous post I briefly mentioned that if you take two apparatuses who are both up-down oriented and send only the spin-up atoms through the second one they all come out up top again. So why now suddenly do they decide to split 50-50 again? We have to conclude that being forced to choose spin-left or spin-right causes the atoms to forget if they were spin-up or spin-down.

      This result forces us to fundamentally reconsider how we describe the universe. We have to introduce the concepts of superposition and wave function collapse to be able to explain these results.

      Superpositions, collapse and the meaning of observing in quantum physics

      The way physicists make sense of the kind of behaviour described above is by saying the particles start out in a superposition; before the first experiment they are 50% in the up-state and 50% in the down-state at the same time. We can write this as 50%[spin up]+50%[spin down], and we call this a wave function. Once we send the particles through the first Stern-Gerlach apparatus each one will be forced to choose to exhibit spin-up or spin-down behaviour. At this point they are said to undergo (wave function) collapse; they are now in either the 100%[spin up] or 100%[spin down] state. This is the meaning of observing in quantum mechanics, once we interact with a property of an atom (or any particle, or even a cat) that is in a superposition this superposition is forced to collapse into a single definite state, in this case the property spin is in a superposition and upon observing is forced to collapse to spin up or spin down.

      However, once we send our particles through the second apparatus, they are forced to collapse into 100%[spin left] or 100%[spin right]. As we saw above, this somehow also makes them go back into the 50%[spin up]+50%[spin down] state. The particles cannot collapse into both a definite [spin up] or [spin down] state and a definite [spin left] or [spin right] state. Knowing one precludes knowing the other. An illustration can be seen here.

      This has far reaching consequences for how knowable our universe it. Even if we can perfectly describe the universe and everything in it, we still cannot know such simple things as whether a silver atom will go left or right in a magnetic field - if we know it would go up or down. It's not just that we aren't good enough at measuring, it's fundamentally unknowable. Our universe is inherently random.

      Conclusion

      In these two posts we have broken the laws of classical physics and were forced to create a whole new theory to describe how our universe works. We found out our universe is unknowable and inherently random. Even if we could know all the information of the state our universe is in right now, we still would not be able to track perfectly how our universe would evolve, due to the inherent chance that is baked into it.

      Next time

      Well that was quite mind-blowing. Next time I might discuss fermions vs bosons, two types of particles that classify all (normal) matter in the universe and that have wildly different properties. But first @ducks will take over this series for a few posts and talk about classical physics and engineering.

      Feedback

      As always, please feel free to ask for clarification and give me feedback on which parts of the post could me made clearer. Feel free to discuss the implications for humanity to exist in a universe that is inherently random and unknowable.

      Addendum

      Observant readers might argue that in this particular case we could just as well have described spin as a simple property that will align itself to the magnets. However, we find the same type of behaviour happens with angles other than 90 degrees. Say the second apparatus is at an angle phi to the first apparatus, then the chance of the particles deflecting one way is cos^2(phi/2)[up] and sin^2(phi/2)[down]. So even if there's only a 1 degree difference between the two apparatuses, there's still a chance that the spin will come out 89 degrees rotated rather than 1 degree rotated.

      32 votes
    11. Today's the first day of NaNoWriMo (National Novel Writing Month), is anyone else participating?

      For those that don't know, NaNoWriMo (National Novel Writing Month) is an annual challenge to write a 50,000 word novel over the course of the month of November. That translates to roughly 1,600...

      For those that don't know, NaNoWriMo (National Novel Writing Month) is an annual challenge to write a 50,000 word novel over the course of the month of November. That translates to roughly 1,600 words a day. More info on NaNoWriMo here.

      I first tried it two years ago though I fizzled out at around 10,000 words and moved on to another WIP. Last year I didn't formally participate though I made an effort to write something every day. Not sure about my word count.

      This year I'm doing a series of short stories in a shared setting since I've been doing more short form writing as of late and I've been mulling over the idea for a few weeks now. It's a nice way to experiment with different settings and themes within a "singular" work. I've made some notes on plot hooks, settings, characters, and ideas I wanted to explore, so it's only a matter of writing the stories now. Maybe I'll even share excerpts as I go along.

      So has anyone else made plans to do it this year?

      19 votes
    12. A layperson's introduction to quantisation and spin, part 1

      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

      Spintronics
      Quantum Oscillations

      Today's topic

      Today's topic will be quantisation, explained through the results of the Stern-Gerlach experiment which was first performed in 1922. This topic treats a much more fundamental concept of quantum physics than my previous topics.

      What is the Stern-Gerlach experiment?

      In 1922 physicists Stern and Gerlach set up an experiment where they shot silver atoms through a magnetic field, the results of this experiment gave conclusive support for the concept of quantisation. I will now first explain the experiment and then, using the results, explain what quantisation is. If you would rather watch a video on the experiment, wikipedia provided one here, it can be watched without sound. Note that I will dive a bit deeper into the results than this video does.

      The experiment consists of two magnets, put on top of each other with a gap in the middle. The top magnet has its north pole facing the gap, the bottom magnet has its south pole facing the gap. See this illustration. Now we can shoot things through the gap. What do we expect would happen? Let's first shoot through simple bar magnets. Depending on how its poles are oriented, it will either bend downwards, upwards or not at all. If the bar magnet's north pole is facing the top magnet, it will be pushed downwards (because then north is facing north). If the bar magnet's south pole is facing the top magnet, it will instead be pushed upwards. If the bar magnet's poles are at a 90 degree angle to the two magnets it will fly straight through, without bending. Lastly, if the bar magnet's poles are at any other angle, say 45 degrees, it will still bend but less so. If we send through a lot of magnets, all with a random orientation, and measure how much they got deflected at the other side of the set-up we expect to see a line, see 4 in the illustration.

      Now we'll send through atoms, Stern and Gerlach chose silver atoms because they were easy to generate back in 1922 and because they have so-called spin, which we will get back to shortly. We send these silver atoms through in the same way we sent through the bar magnets; lots of them and all of them with a random orientation. Now what will happen? As it turns out all the atoms will either end up being deflected all the way up or all the way down, with nothing in between. 50% will be bent upwards, 50% downwards. So silver atoms seem to respond as if they were bar magnets that either bend maximally up or maximally down. In the illustration this is labeled 5.

      If we were to take only the silver atoms that bent upwards and sent them through the experiment again, all of them would bend upwards again. They seem to remember if they previously went up or down rather than just deciding on the spot each time if they go up or down. What model can we think of that would explain this behaviour? The silver atoms must have some property that will make them decide to bend up or down. Let's call this property spin, and say that if the silver atoms chose to bend up they have spin up, if they chose to bend down they have spin down. It seems that these are the only two values spin can have, because we see them bend either maximally up or maximally down. So we can say the spin is quantised; it has two discrete values, up or down, and nothing in between.

      Conclusion

      We have found a property of atoms (and indeed other particles like electrons have spin too) that is quantised. This goes against classical physics where properties are continuous. This shows one of the ways in which physics at the smallest scales is fundamentally different from the physics of everyday life.

      Next time

      Next time we will investigate what happens when we rotate the angle of the magnets used in the experiment. This will lead us to discover other fundamental aspects of physics and nature, quantum superpositions and the inherent randomness of nature.

      EDIT: part 2 is now up here.

      Feedback

      As discussed in the last post, I am trying something different for this post. Talking about more fundamental quantum physics that was discovered 100 years ago rather than modern physics. Did you like it? Let me know in the comments!

      30 votes
    13. Programming Challenge: Build an Interpreter

      Hello everyone! It has been a while since last programming challenge, it's time for another one! This week's goal would be to build your own interpreter. Interpreter is program that receives input...

      Hello everyone! It has been a while since last programming challenge, it's time for another one!

      This week's goal would be to build your own interpreter.

      Interpreter is program that receives input and executes it. For example Python is interpreted language, meaning you are actually writing instructions for the interpreter, which does the magic.

      Probably the easiest interpereter to write is Brainfuck interpreter. If someone here doesn't know, Brainfuck is programming language, which contains following instructions: ,.<>[]-+. Other characters are ignored. It has memory in form of array of integers. At the start, pointer that points to one specific memory cell points to cell 0. We can use < to move pointer to left (decrement) and > to move pointer to right (increment). . can be used to print value of cell the pointer is currently pointing to (ascii). , can be used to read one character from stdin and write it to memory. [ is beggining of loop and ] is end of loop. Loops can be nested. Loop is terminated when we reach ] character and current value in memory is equal to 0. - can be used to decrement value in memory by 1 and + can be used to increment value in memory by 1. Here's Hello World:

      ++++++++++[>+++++++>++++++++++>+++>+<<<<
      -]>++.>+.+++++++..+++.>++.<<++++++++++++
      +++.>.+++.------.--------.>+.>.
      

      People with nothing to do today can attemp to make an interpreter for the Taxi programming language.

      You can even make your own language! There are no limits for this challenge.

      23 votes
    14. A layperson's introduction to quantum oscillations

      Introduction and motivation In an effort to get more content on Tildes, I want to try and give an introduction on several 'hot topics' in condensed matter physics at a level understandable to...

      Introduction and motivation

      In an effort to get more content on Tildes, I want to try and give an introduction on several 'hot topics' in condensed matter physics 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

      Spintronics

      Why has it been 100 days since the last post?

      I had a different topic planned as a second post, however it turned out I had to explain a lot more concepts that I anticipated so that it would no longer fit this format. Then I got busy. Now I finally found a topic I think I can do justice in this format.

      Today's topic

      Today's topic will be quantum oscillations.

      What are quantum oscillations?

      Quantum oscillations are periodic fluctuations in some materials' properties when it is exposed to a strong magnet. As the name suggests, this effect arises from quantum physics. Nevertheless, I think it's relatively easy to give a feel on how it works. In the rest of this post I will focus on one kind of quantum oscillation, the oscillation of a material's resistance (with the very fancy name Shubnikov-de Haas oscillations), because electrical resistance is a concept most people are familiar with. However, there are many other material properties that fluctuate similarly.

      What do quantum oscillations look like?

      Let's start from the basics, electrical resistance. Electrical resistance tells you how hard it is for an electrical current to flow through a material. Related to this is conductance, which instead tells you how easy it is for a current to flow through a material (so it is the inverse of the resistance). Now, something funny happens to some metals' conductance when you expose them to a strong magnet.

      Let's think for a moment on what we expect would happen. Would the conductivity be affected by the magnet? Perhaps a stronger magnet would increase the conductivity, or reduce it. What we most certainly wouldn't expect to happen is for the conductivity to go up and down as we increase the strength of the magnet we aimed at the material. Yet, this is exactly what happens. In this picture we see the conductivity (expressed on the vertical axis) plotted against the magnetic field (expressed on the horizontal axis). The conductivity is going up and down like crazy!

      Why is this happening?

      One of quantum physics core principle is quantisation (who'd have thought). And as it turns out, this quantisation is at the core of this behaviour. For the purpose of this post, quantisation can be thought of as energies at which the electrons are allowed to have.

      Normally, when electrons are in a metal, there are no real restrictions on what energy they are allowed to have. Some electrons will not have a lot of energy and won't move, other electrons will have a lot of energy and be able to move freely around the metal.

      However, when metals are put in a strong magnetic field the energies of the low energy electrons are allowed to have changes drastically. The electrons are only allowed to be at certain energies, with a wide gaps in between these energies. Crucially, the exact values of these energies change with the strength of the magnet.

      This means that at some magnet strengths, the allowed low-energy energies will nicely line up with the energies the free-flowing electrons have. This means some of those electrons will interfere with the free flowing electrons, making it harder for them to flow freely*. This interference in electron flow means less conductance! Then, when we change the magnetic field so that the energies are no longer aligned, the free flowing electrons no longer get caught and will be able to move freely, so that the conductivity goes up again. This pattern becomes more pronounced as the magnetic field strength increases.

      What is it good for?

      These oscillations were first noticed in bismuth by Shubnikov and de Haas in the year 1930. It was direct evidence for the quantum mechanics underlying nature. These days quantum oscillations are a popular method to extract information on a metals, alloys and semimetals' properties. These techniques have been used to, for example, further our understanding of high temperature superconductivity.

      Sources

      D Shoenberg - Magnetic Oscillations in Metals (1984)

      *more technically: the probability of scattering is proportional to the number of states into which the electron can be scattered, which is given by the number of available states near the energy surface of the material.

      32 votes
    15. Breaking all the rules

      In most of my programming, I try and remain professional, and do things in a readable, maintainable way, that doesn't involve pushing the language to breaking point. But, occasionally, I give...

      In most of my programming, I try and remain professional, and do things in a readable, maintainable way, that doesn't involve pushing the language to breaking point.

      But, occasionally, I give myself free reign. What if you didn't care about the programmer who came after you? What if you didn't care about what a programmer should do in a certain circumstance?

      For myself, over the years I've written and rewritten a C library, I like to call CNoEvil. Here's a little taste of what you could do:

      #define EVIL_IO
      #define EVIL_COROUTINE
      #include "evil.h"
      
      proc(example, int)
        static int i = 0;
        coroutine();
        While 1 then
          co_return(++i);
        end
        co_end();
        return i;
      end
      
      Main then
        displayln(example());
        displayln(example());
      end
      

      (And yes, that compiles. Without warnings. Even with -Wpedantic.)

      So... Here's the challenge:

      Ignoring the rules, and best practices... How can you take your favourite programming language... And make it completely unrecogniseable?

      (Might be best to choose a language with macros, like Nim, Rust, any of the Lisps. Though, you can still do some impressively awful things in Java or Python, thanks to overloading inbuilt classes.)

      Challenge Ideas:

      • Make Python look like C
      • Make Java look like Python
      • Make anything look like BrainFuck

      I don’t know how to really explain my fascination with programming, but I’ll try. To somebody who does it, it’s the most interesting thing in the world. It’s a game much more involved than chess, a game where you can make up your own rules and where the end result is whatever you can make of it. - Linus Torvalds

      21 votes
    16. XML Data Munging Problem

      Here’s a problem I had to solve at work this week that I enjoyed solving. I think it’s a good programming challenge that will test if you really grok XML. Your input is some XML such as this:...

      Here’s a problem I had to solve at work this week that I enjoyed solving. I think it’s a good programming challenge that will test if you really grok XML.

      Your input is some XML such as this:

      <DOC>
      <TEXT PARTNO="000">
      <TAG ID="3">This</TAG> is <TAG ID="0">some *JUNK* data</TAG> .
      </TEXT>
      <TEXT PARTNO="001">
      *FOO* Sometimes <TAG ID="1">tags in <TAG ID="0">the data</TAG> are nested</TAG> .
      </TEXT>
      <TEXT PARTNO="002">
      In addition to <TAG ID="1">nested tags</TAG> , sometimes there is also <TAG ID="2">junk</TAG> we need to ignore .
      </TEXT>
      <TEXT PARTNO="003">*BAR*-1
      <TAG ID="2">Junk</TAG> is marked by uppercase characters between asterisks and can also optionally be followed by a dash and then one or more digits . *JUNK*-123
      </TEXT>
      <TEXT PARTNO="004">
      Note that <TAG ID="4">*this*</TAG> is just emphasized . It's not <TAG ID="2">junk</TAG> !
      </TEXT>
      </DOC>
      

      The above XML has so-called in-line textual annotations because the XML <TAG> elements are embedded within the document text itself.

      Your goal is to convert the in-line XML annotations to so-called stand-off annotations where the text is separated from the annotations and the annotations refer to the text via slicing into the text as a character array with starting and ending character offsets. While in-line annotations are more human-readable, stand-off annotations are equally machine-readable, and stand-off annotations can be modified without changing the document content itself (the text is immutable).

      The challenge, then, is to convert to a stand-off JSON format that includes the plain-text of the document and the XML tag annotations grouped by their tag element IDs. In order to preserve the annotation information from the original XML, you must keep track of each <TAG>’s starting and ending character offset within the plain-text of the document. The plain-text is defined as the character data in the XML document ignoring any junk. We’ll define junk as one or more uppercase ASCII characters [A-Z]+ between two *, and optionally a trailing dash - followed by any number of digits [0-9]+.

      Here is the desired JSON output for the above example to test your solution:

      {
        "data": "\nThis is some data .\n\n\nSometimes tags in the data are nested .\n\n\nIn addition to nested tags , sometimes there is also junk we need to ignore .\n\nJunk is marked by uppercase characters between asterisks and can also optionally be followed by a dash and then one or more digits . \n\nNote that *this* is just emphasized . It's not junk !\n\n",
        "entities": [
          {
            "id": 0,
            "mentions": [
              {
                "start": 9,
                "end": 18,
                "id": 0,
                "text": "some data"
              },
              {
                "start": 41,
                "end": 49,
                "id": 0,
                "text": "the data"
              }
            ]
          },
          {
            "id": 1,
            "mentions": [
              {
                "start": 33,
                "end": 60,
                "id": 1,
                "text": "tags in the data are nested"
              },
              {
                "start": 80,
                "end": 91,
                "id": 1,
                "text": "nested tags"
              }
            ]
          },
          {
            "id": 2,
            "mentions": [
              {
                "start": 118,
                "end": 122,
                "id": 2,
                "text": "junk"
              },
              {
                "start": 144,
                "end": 148,
                "id": 2,
                "text": "Junk"
              },
              {
                "start": 326,
                "end": 330,
                "id": 2,
                "text": "junk"
              }
            ]
          },
          {
            "id": 3,
            "mentions": [
              {
                "start": 1,
                "end": 5,
                "id": 3,
                "text": "This"
              }
            ]
          },
          {
            "id": 4,
            "mentions": [
              {
                "start": 289,
                "end": 295,
                "id": 4,
                "text": "*this*"
              }
            ]
          }
        ]
      }
      

      Python 3 solution here.

      If you need a hint, see if you can find an event-based XML parser (or if you’re feeling really motivated, write your own).

      4 votes
    17. What are some of your favorite tools that have given individual games a new life?

      I grew up playing DOOM, but if I were to boot up the original game I would find it frustrating to play by modern standards (e.g. mouse movement?!). Thankfully, there are a ton of source ports that...

      I grew up playing DOOM, but if I were to boot up the original game I would find it frustrating to play by modern standards (e.g. mouse movement?!). Thankfully, there are a ton of source ports that modernize the engine and make the game more accessible to current gaming sensibilities (e.g. WASD-movement). They're basically community remasters of the game.

      It got me wondering about what other games have strongly benefited from tools that exist outside of the game itself.

      Examples of what I mean:

      1. Source ports (e.g. DOOM)
      2. Community bugfixes (e.g. Vampire: The Masquerade - Bloodlines)
      3. Restored/extended content (e.g. Star Wars: Knights of the Old Republic II)
      4. Significant mods (e.g. Frostfall for Skyrim)
      5. Rulesets/challenges (e.g. Nuzlocke Challenge for Pokémon)
      6. Anything else that doesn't fit the above categories
      15 votes
    18. Programming Challenge: Polygon analysis.

      It's time for another programming challenge! Given a list of coordinate pairs on a 2D plane that describe the vertices of a polygon, determine whether the polygon is concave or convex. Since a...

      It's time for another programming challenge!

      Given a list of coordinate pairs on a 2D plane that describe the vertices of a polygon, determine whether the polygon is concave or convex.

      Since a polygon could potentially be any shape if we don't specify which vertices connect to which, we'll assume that the coordinates are given in strict order such that adjacent coordinates in the list are connected. Specifically, if we call the list V[1, n] and say that V[i] <-> V[j] means "vertex i and vertex j are connected", then for each arbitrary V[i] we have V[i-1] <-> V[i] <-> V[i+1]. Moreover, since V[1] and V[n] are at the ends of the list, V[1] <-> V[n] holds (i.e. the list "wraps around").

      Finally, for simplicity we can assume that all coordinates are unique, that all polygon descriptions generate valid polygons with 3 or more non-overlapping sides, and that, yes, we're working with coordinates that exist in the set of real numbers only. Don't over-complicate it :)

      For those who want an even greater challenge, extend this out to work with 3D space!

      8 votes
    19. Programming Challenge: Counting isolated regions.

      Another week, another challenge! This time, assume you're given a grid where each . represents an empty space and each # represents a "wall". We'll call any contiguous space of .s a "region". You...

      Another week, another challenge!

      This time, assume you're given a grid where each . represents an empty space and each # represents a "wall". We'll call any contiguous space of .s a "region". You can also think of a grid with no walls the "base" region. The walls may subdivide the base region into any number of isolated sub-regions of any shape or size.

      Write a program that will, given a grid description, compute the total number of isolated regions.

      For example, the following grid has 5 isolated regions:

      ....#....#
      ....#.###.
      ....#.#.#.
      #...#..#..
      .#..#...#.
      
      16 votes
    20. Fucked Up - Dose Your Dreams (2018)

      Apple Music BandCamp Spotify Canadian hardcore punk outfit Fucked Up is back with their first new full length since 2014. The group has been known for their art rock output as of late, concept EPs...

      Apple Music
      BandCamp
      Spotify

      Canadian hardcore punk outfit Fucked Up is back with their first new full length since 2014. The group has been known for their art rock output as of late, concept EPs they put out years following the Chinese Zodiac. The band is known for disliking each other, sometimes to the point of physical altercations. It is likely a side effect from both the front man and one of the guitarists being songwriters and lyricists, resulting in butting heads. But the result is hard to argue with, Fucked Up has been adored by critics since they came on the scene.

      This album sees one of those two songwriters, lead vocalist Damian Abraham, take a back seat. His vocals don't even appear in ever song on this album. Instead, the whole group does leads at various points throughout the record. It's much more experimental and broad in its genre, employing a lot of pop influences. This results in an album that some how continues the art rock sound they had been cultivating and challenging the listener, while at the same time being very poppy. With a mammoth 18 tracks, the album gives the band plenty of room to explore this new space they find themselves in.

      Like the past couple Fucked Up albums, it's also concept. It has a story and follows a main character in rock opera-like fashion. Their anti-capitalist message comes through in the magical reality of the story of a factory worker that is shown the drudgery of modern life by a sorceress.

      It's ambitious, fun and at the end of day, still very much punk. Super enjoyable, in my opinion. A good introduction to the band if you've never heard them, though you may find their past work a little more one dimensional.

      4 votes
    21. Queer representation in middle grade and young adult books

      I'm a teacher, and two years ago I had a student come out to me as trans. He recommended the book The Other Boy by M.G. Hennessey to me, saying that it was the first book he'd read that was about...

      I'm a teacher, and two years ago I had a student come out to me as trans. He recommended the book The Other Boy by M.G. Hennessey to me, saying that it was the first book he'd read that was about someone like himself. The same goes for another student with John Green & David Levithan's Will Grayson, Will Grayson. Another student this year shared a similar sentiment about Ivy Aberdeen's Letter to the World by Ashley Herring Blake.

      I don't know how well-known this is outside of educators, but there has been a recent explosion of books for middle grade and young adult audiences that have openly queer characters and themes. When I was growing up we pretty much had only Annie on My Mind, and even then there was a good chance it wasn't stocked in the library. Now there are hundreds of books published each year and available in school libraries across the country.

      This is great for two reasons:

      1. I've had many students who have been able to read about characters that they can directly identify with.

      2. I've had many students who do not identify as queer (to the best of my knowledge) read and empathize with these characters.

      I can't say whether it's because of the books or if the books are simply an indicator of changing social norms, but I've watched acceptance of queer individuals of all types increase over my years in the profession.

      Last week was Banned Books Week, and our librarian gave a small presentation to the students about why books get challenged or banned and gave some prominent examples. When she brought up Drama by Raina Telgemeier and mentioned that one of the reasons it was challenged was for "including LGBT characters," my class's response was audible shock. Ten years ago, the response would have been laughter or derision.

      Students self-select books from the library for free reading, and I'm always checking in with them to see what they've picked. Right now, I have a student reading Alex Gino's George, one reading the aforementioned The Other Boy, and another reading The 57 Bus by Dashka Slater. I have no idea how these students identify, but honestly, it doesn't matter. The fact that they were able to check those books out and read them is pretty powerful to me. The fact that they chose them on their own is also pretty awesome. Nobody is making students read books about queer characters. They're choosing to!

      In fact, one of my favorite things to hear from students about books like those is that they were "boring." Why? Well, because that's pretty much the default adolescent response to any book these days (let's be honest: it's hard for reading to compete with Fortnite), but mostly because it means the student is reading the story free from any prejudice. The book is not seen as inflammatory or controversial or even brave. It's just a story about any regular person--the kind that many kids often find, in this day and age, boring.

      And, for someone who's spent a lot of his life having his identity made by others to be A Significant Issue, it turns out boring is a pretty cool thing to be.

      22 votes
    22. Programming Challenge: Compute the shortest path to visit all target spots on a grid.

      Let's do something a little more challenging this time. Given an MxN grid of arbitrary size, and given a random starting place on that grid and a list of points to visit, find the shortest path...

      Let's do something a little more challenging this time.

      Given an MxN grid of arbitrary size, and given a random starting place on that grid and a list of points to visit, find the shortest path such that you visit all of them. Path lengths will be computed using taxicab distances rather than strict coordinate distance calculations.

      There are no restrictions on expected input this time. Output should be the total distance traveled between points.


      Example

      Assume that we use the character # to denote a spot on the grid, the character @ to denote your starting point, and the character * to denote a place on the grid that you're required to visit. One such grid may look something like this:

      ######
      ######
      **####
      #*####
      #*#*##
      #@####
      ######
      

      In this case, let's say that the bottom-left point on the grid is point (0, 0) and we're starting on point (1, 1). One valid solution would be to move to point (3, 2), then (1, 2), then (1, 3), then (1, 4), and finally (0, 4). The shortest path available is thus 8. Note that it's not enough just to visit the next nearest point on the grid!

      15 votes
    23. Syntax highlighting for the coders, invites for everyone

      Another open-source contribution has now been implemented - @Soptik wrote the code to add support for syntax highlighting, which should be great for topics like the programming challenges in...

      Another open-source contribution has now been implemented - @Soptik wrote the code to add support for syntax highlighting, which should be great for topics like the programming challenges in ~comp.

      I'll update the formatting documentation to include info about it shortly, but it's straightforward to use. You have to use a "fenced code block", which usually means that you put 3 backticks above and below the code, and include the name of the language after the 3 backticks above it. So for example, markdown like this:

      ```python
      def word_count(string: str) -> int:
          """Count the number of words in the string."""
          return len(WORD_REGEX.findall(string))
      ```
      

      will render as:

      def word_count(string: str) -> int:
          """Count the number of words in the string."""
          return len(WORD_REGEX.findall(string))
      

      This is being done by the "Pygments" library, which supports a lot of languages: http://pygments.org/docs/lexers/

      And completely unrelated to that, it's been a while since I gave everyone some invite codes, so I've topped everyone back up to 5 (and as always, feel free to let me know if you need more). You can access them on this page: https://tildes.net/invite

      That's all for now, thanks everyone (and @Soptik in particular). There should also be more changes coming before too long, I've been working on some major updates to the comment-tagging system and hopefully should be able to implement those soon.

      78 votes
    24. Programming Mini-Challenge: KnightBot

      Another programming mini-challenge for you. It's been a month since the first one and that seemed to be rather successful. (I appreciate that there are other challenges on here but trying to sync...

      Another programming mini-challenge for you. It's been a month since the first one and that seemed to be rather successful. (I appreciate that there are other challenges on here but trying to sync with them seems tricky!)

      A reminder:
      I'm certain that many of you might find these pretty straight forward, but I still think there's merit in sharing different approaches to simple problems, including weird-and-wonderful ones.


      KnightBot


      Info

      You will be writing a small part of a Chess program, specifically focusing on the Knight, on an 8 x 8 board.


      Input

      The top-left square of the board will have index 0, and the bottom-right square will have index 63.

      • The first input is the starting square of the knight.
      • The second input is the requested finishing square of the knight.
      • The third input is the number of maximum moves allowed.

      Output

      The expected outcome is either True or False, determined by whether or not the Knight can reach the requested finishing square within the number of allowed moves when stating on the starting square.

      e.g. The expected output for the input 16, 21, 4 is True since the Knight can move 16->33->27->21, which is 3 moves.
      

      Extensions

      Some additional ideas for extending this challenge...

      1. Instead of an 8x8, what if the board was nxn?
      2. Instead of "within x moves", what if it was "with exactly x moves?"
      3. Instead of a traditional Knight's move (2 long, 1 short), what if it was n long and m short?
      4. What if the board was infinite?
      5. What if the board looped back around when crossing the edges? (e.g. the square to the right of 7 is 0)
      17 votes
    25. Nintendo Direct 9.13.2018 - Recap

      Host: Shinya Takahashi 3DS Announcements: Kirby's Extra Epic Yarn - Available 2019 The 2010 Wii game comes to Nintendo 3DS. Includes all stages from the Wii version plus additional abilities, new...

      Host: Shinya Takahashi

      3DS Announcements:

      • Kirby's Extra Epic Yarn - Available 2019
        The 2010 Wii game comes to Nintendo 3DS. Includes all stages from the Wii version plus additional abilities, new Devilish Mode (a time attack mode), and new minigames

      • Mario and Luigi: Bowser's Inside Story + Bowser Jr.'s Journey - Available January 11, 2019
        Added Bowser Jr. story

      • Luigi's Mansion - Available October 12
        The original Luigi's Mansion is coming to the Nintendo 3DS with a new 2 player co-op mode. If both players ows the game one will play as a green blob version of Luigi. If only one own the game the second player will be able to use Download Play and challenge bosses.
        4 Amiibo are compatible with the game.

      • Yo-Kai Watch Blasters - Available now
        Free content coming later on Spetember 27. Adds Moon Rabbit Crew to the title screen, with bonuses for linking save datas, new missions, new areas, new Yo-Kai to befriend, and new boss.

      Switch Announcements

      • Luigi's Mansion 3 (working title) - 2019
        A new game in the Luigi's Mansion series

      • Splatoon 2 update, Ver.4

      • Mega Man 11 - Available October 2
        8 bosses.
        New double gear system, you can slow down time or powerup your attacks.
        The two Mega Men Amiibos are compatible.

      • Mario Tennis Aces update - Available September 19
        New characters: Birdo (all around), Shy Guy (Technical), Koopa Paratroopa (Technical) and Petey Piranha(Powerful). Can be acquired by playing online
        New updates coming until next June
        New mode: online only Co-op Challenge, available for limited periods of time. Will unlock in-game rewards such as new outfits, different color schemes and more.

      • Capcom Beat'em Up Bundle - Available September 18
        Includes Final Fight, The King of Dragons, Captain Commando, Knight of the Round, Warriors of Fate and two first-time console releases: Armored Warriors and Battle Circuit.
        4 player local and online co-op
        Pre-order available now

      • New Super Mario Bros. U Deluxe - Available January 11, 2019
        New characters: other than Mario, Luigi and Toad now you can play as Nabbit and Toadette.
        Nabbit doesn't take damage from enemies
        If Toadette powers up with a super crown she transforms into Peachette who can double jump, float slowly during free falls and get a boost back up when she falls into a pit.
        Includes New Super Luigi U. 164 courses between both games
        Single player Joy-Con, up to 4 player co-op.

      • Katamai Damacy Reroll - Available Winter 2018
        Gyro controls, Hd Rubles, Joy-Con controller sharing

      • Pokèmon Go Let's Go Pikachu and Let's Go Eevee - Available November 16
        Secret tecniques replace HM moves. Only your Pikachu and your Eevee can use them. They can also learn certain powerful moves. Only them.
        In handheld mode you can use touch screen to pet your Pokèmon and change its hairstyle depending on how you've petted it.
        2 new bundle that will include a Nintendo Switch system with specially designed dock, Pikachu and Eevee style Joy-Cons, one digital copy of the game and the Pokèball Plus accessory.

      • Diablo 3: Eternal Collection - Available November 2
        All Dlcs are included. Up to 3 players local and online co-op.
        Nintendo Switch exclusive: Ganondorf's armor.
        All Amiibos figures are compatible

      • Super Mario Party - Available October 5
        New 4 player co-op mode River Survival
        You can connect two Nintendo Switch in the Toads Rec Room mode.
        Characters' specific dice block with alternate numbering.
        80 minigames.
        Single player modes: Challenge Road (play thtough a series of minigames and complete specific tasks)
        Online Mariothon minigame mode (challenge other players around the world with 80 minigames to choose from)

      • Town (Working Title) - Availabe 2019
        Game Freak presents a brand new RPG set in one single village. Looks like story will be a major part in this incoming game

      • Citis Skylines Nintendo Switch Edition - Available today
        Includes two DLCs: After Dark and Snowfall

      • Daemon Ex Machina - Available 2019*
        Mech Game.
        You can change weapons on the fly and you'll keep them for the whole game if you manage to return them to your base. Long range and melee weapons.
        You can exit your mech to explore the field on foot. You can make enhancements to you human character and your mecha abilities will be augmented as well
        Up to 4 player online co-op

      • Yoshi's Crafter World - Available Spring 2019
        New Yoshi game.
        Local Joy-Con Co-op

      • Asmodee Digital tabletop games
        NOT A BUNDLE
        Full adaptation of best-selling tabletop games made by Asmodee Digital. They are the following:

      • Carcassonne - Available December 2018
        3D maps, solo mode, 4 player local multiplayer mode. Game's famous expansions available as paid DLC

      • The Lord of the Rings: Living Card Game - Available April 2019
        Play alone or alongside a second player.
        Story driven quests

      • Pandemic - Available March 2019*
        solo mode, 4 player local multiplayer mode
        Individually priced DLCs based on popular expansions.
        More is on the way: Catan and Munchkin

      • Sid Meier's Civilization VI - Available November 16
        4 player local multiplayer

      • Starlink: Battle for Atlas - Available October 16
        Exclusive missions for the Nintendo Switch with Star Fox, Peppy, Falco and Slippy from the Star Fox universe.

      • The World Ends with You Final Remix - Available October 12
        Square Enix RPG

      • Xenoblade Chronicles 2: Torna - The Golden Country - Available September 21
        Go back in time with this Xenoblade Chronicles 2 DLC
        Owner of the Season Pass can already download this new content

      • Warframe - Available November 20*
        Free to play co-op space ninja shooter game. Needs connections all time to play.

      • Just Dance 2019 - Available October 23*

      • Fifa 19 - Available September 28
        Available for pre-purchase tomorrow (9.14.2018)

      • Team Sonic Racing - Available this winter

      • NBA 2K19 - Available now

      • NBA 2K Playground 2 - Available this fall
        NBA arcade game

      • LEGO DC Super-Villains - Available october 16*

      • Final Fantasy Crystal Chronicle Remaster Edition - Available 2019
        GCo-op action RPG, with new online multiplayer mode.
        New areas added in dungeons.

      • Final Fantasy XV Poket Edition HD - Available today

      • Worlds of Final Fantsy Maxima - Available November 6
        New feature added: Avatar Change. It allows yo to transform into legendary characters from across the series storied history.

      • Chocobo's Mystery Dungeon Every Buddy! - Available this winter
        2007's Final Fantasy Fable Chocoboc Dungeon returns
        You can now befriend all the monsters
        Joy-Con local co-op multiplayer

      • Final Fantasy XII The Zodiac Age - Available 2019
        Comes to a Nintendo system for the first time
        New Speed Mode

      • Final Fantasy VII, Final Fantasy IX and Final Fantasy X and X-2 HD Remaster - Coming to Nintendo Switch in 2019 separately

      • Super Smash Bros Ultimate - Available November 2
        Isabelle (Animal Crossing) joins the fight!
        Hardware Bundle that includes a Nintendo Switch system with specially designed dock, a pair of Joy-Cons with the Smash Bros Symbol on them and a digital copy of the game.

      • Animal Crossing - Nintendo Switch - 2019
        A new game in the Animal Crossing series

      • GameCube controller adapter and GameCube controller Super Smash Bros. Ultimate Edition - Available November 2 while supplies last

      Nintendo Switch Online membership

      Begins on September 18 with the following prices:
      1 month 3.99 USD;
      3 months 7.99USD;
      12 months 19.99 USD;
      12 month Family Membership up to 7 people 34.99USD.
      Includes 5 features:

      • Online play, a variety of games is supported
      • 20 Nintendo Entertainment System (NES) games. You can find the complete list here. New title coming up. Includes local and online co-op.
      • Save Data Cloud
      • Smartphone App. Incluses: voice chat in certain games, additional infos in certain games (e.g. Splatoon 2)
      • Special Offers. No details, more to announce in the future.

      NES controllers for Switch - Available for pre-purchase starting September 18 on Nintendo.com
      59.99USD
      Nintendo Switch Online membership and Nintendo Account are required for the purchase.
      Left and right wireless controllers that you can use to play NES games with on the Switch. Recharge the same way as normal Joy-Cons.
      Contrllers do not include Joy-Con functionality.
      Orders are expeced to ship starting this December.

      17 votes
    26. [writing challenge]: say nothing.

      hey everyone! i was sitting down to write some today, and i kept coming up with lines and lyrics that were great, but for absolute vapid-type songs (gucci gang type stuff hahaha). i thought it...

      hey everyone!

      i was sitting down to write some today, and i kept coming up with lines and lyrics that were great, but for absolute vapid-type songs (gucci gang type stuff hahaha).

      i thought it would make for a fun challenge. whether you want to write a short story, a poem, maybe a little stageplay script - what's the largest amount of words you can use to express absolutely nothing?

      whether it be something like the lyrics for lil pump's "D Rose" or something like the internet-famous article "The Rumor Come Out: Does Bruno Mars is Gay?"

      how long of a piece of writing can you make, whilst saying absolutely nothing?

      6 votes
    27. Programming Challenge: Reverse Polish Notation Calculator

      It's been nearly a week, so it's time for another programming challenge! This time, let's create a calculator that accepts reverse Polish notation (RPN), also known as postfix notation. For a bit...

      It's been nearly a week, so it's time for another programming challenge!

      This time, let's create a calculator that accepts reverse Polish notation (RPN), also known as postfix notation.

      For a bit of background, RPN is where you take your two operands in an expression and place the operator after them. For example, the expression 3 + 5 would be written as 3 5 +. A more complicated expression like (5 - 3) x 8 would be written as 5 3 - 8 x, or 8 5 3 - x.

      All your program has to do is accept a valid RPN string and apply the operations in the correct order to produce the expected result.

      18 votes
    28. Programming Challenge: Merge an arbitrary number of arrays in sorted order.

      It looks like it's been over a week and a half since our last coding challenge, so let's get one going. This challenge is a relatively simple one, but it's complex enough that you can take a...

      It looks like it's been over a week and a half since our last coding challenge, so let's get one going. This challenge is a relatively simple one, but it's complex enough that you can take a variety of different approaches to it.

      As the title suggests, write a program that accepts an arbitrary number of arrays, in whatever form or manner you see fit (if you want to e.g. parse a potentially massive CSV file, then go nuts!), and returns a single array containing all of the elements of the other arrays in sorted order. That's it!

      Bonus points for creative, efficient, or generalized solutions!

      24 votes
    29. Genderqueer/gender bender/genderfuck fashion

      I was wondering if there were any fellow Waves that enjoyed dressing in a way that might confuse others on your gender, and if anybody had tips for others on how to blend masculine and feminine...

      I was wondering if there were any fellow Waves that enjoyed dressing in a way that might confuse others on your gender, and if anybody had tips for others on how to blend masculine and feminine styles/presentation.

      Definitions and sources on Genderfuck:

      Genderfuck
      Some nonbinary people may choose or need to present a 'clashing' combination of gender cues that are incongruous, challenging or shocking to those who expect others to fit the gender binary. For example, combining a beard with makeup and a padded bra. This practice of transgressively breaking the rules of gender presentation is known as genderfuck, genderfucking or sometimes genderpunk.
      https://nonbinary.miraheze.org/wiki/Nonbinary#Genderfuck

      Gender bender (also known as genderf*ck) is an informal term used to refer to a person who actively transgresses, or "bends," expected gender roles and presentation. This is usually achieved by combining masculine and feminine attributes in unexpected ways.
      http://gender.wikia.com/wiki/Gender_Bender

      19 votes
    30. Programming Challenge: Make a game in 1 hour!

      Background There's been some talk on ~ before, and it seems like there are quite a few people who are either interested in, learning, or working in game development, so I thought this could be a...

      Background

      There's been some talk on ~ before, and it seems like there are quite a few people who are either interested in, learning, or working in game development, so I thought this could be a fun programming challenge.

      This one is fairly open-ended: make a game in 1 hour. Any game, any engine, don't worry about art or sound or anything.

      Doing is the best way to learn. Most people's first project is something overly ambitious, and when they find that it's more difficult than they thought, they can get discouraged, or even give up entirely. This is why the 1 hour limit is important: it forces you to finish something, even if it's small. When you're done, you can come out of it saying you made a game, and you learned from it.

      Chances are the game might not be fun, look bad, be buggy, etc. But don't worry about that, everyone's game will have problems, and if you do create something really fun or innovative, congratulations, you have a prototype that you can expand on later!

      "Rules"

      Like I said before, these "rules" are pretty simple: make a game in (approximately) 1 hour. You can use any tools you want. If you use external assets (art, sound), it's probably best you use something you have the rights to (see resources). If you're completely new to game development/programming, your goal could even be to finish a tutorial.

      If you're the kind of person who tends to get carried away with these things, you might want to post a comment saying you're starting, then another one once you've finished your game.

      Please share your finished game, I'm sure everyone would love to try them! If your game is web-based, it can be hosted for free on Github Pages or Itch.io. If downloadable, it can be hosted for free on Google Drive, Mega, Dropbox, Itch.io, etc.

      Resources

      Engines

      If you're a beginner, a good engine to start with is LÖVE. It's very simple, and uses Lua, which is very easy to learn.

      If you're familiar with another language, you could use a library to make it in that language. Some examples:

      C++: SFML, SDL, Allegro

      Javascript: kontra, Phaser, pixi.js

      Python: pygame

      Rust: Piston, ggez, Amethyst

      If you want something more complex, consider Godot, Unity, or Unreal.

      You can also try something visual like Construct, Clickteam Fusion, or GDevelop

      Art

      For such a short time constraint, I'd suggest you use your own "programmer art": just use some basic shapes. Your primary focus should be gameplay.

      If you think you have time to find something, try looking on OpenGameArt.

      Sound

      You can make simple sound effects very quickly with sfxr (or in this case, a web port of sfxr called jsfxr).

      27 votes
    31. 100‐Word Writing Challenge № 2: “I can see [them], but [they] cannot see me.”

      We now have the opportunity to continue our 100-word writing prompt fun :) @Kat, the initiator of this writing club, nominated me as her successor as this round's topic keeper (or if we allow some...

      We now have the opportunity to continue our 100-word writing prompt fun :)

      @Kat, the initiator of this writing club, nominated me as her successor as this round's topic keeper (or if we allow some fantasy, the "queen of stories", as in the Decameron). I'm very happy, honoured, nervous ... and so eager to read your contributions!

      As a reminder of the rules, let us make the written piece exactly 100 words. Next weekend, I'll pass the garland to one of the writers, and they'll become the monarch of stories, bring to us a new topic.

      This week's prompt is in the title:

      I can see [them], but [they] cannot see me.

      Here the pronoun they, in the brackets, is a generic one. It can be anyone, anything, or ... let us know :)

      11 votes
    32. Programming Mini-Challenge: TicTacToeBot

      I've seen the programming challenges on ~comp as well as quite a few users who are interested in getting started with programming. I thought it would be interesting to post some 'mini-challenges'...

      I've seen the programming challenges on ~comp as well as quite a few users who are interested in getting started with programming. I thought it would be interesting to post some 'mini-challenges' that all could have a go at. I'm certain that many of you might find these pretty straight forward, but I still think there's merit in sharing different approaches to simple problems, including weird-and-wonderful ones.

      This is my first post and I'm a maths-guy who dabbles in programming, so I'm not promising anything mind-blowing. If these gain any sort of traction I'll post some more.

      Starting of with...


      TicTacToeBot


      Info

      You will be writing code for a programme that will check to see if a player has won a game of tic-tac-toe.


      Input

      The input will be 9 characters that denote the situation of each square on the grid.

      • 'X' represents the X-player has moved on that square.
      • 'O' represents the O-player has moved on that square.
      • '#' represents that this square is empty.

      Example:

      |O| |X|
      |X|X|O|    The input for this grid will be O#XXXOO##
      |O| | |
      

      Output

      The expected output is the character representing the winning player, or "#" if the game is not won.

      (e.g. The expected output for the example above is '#' since no player has won)


      29 votes
    33. Moderators of Reddit, tell us about your experiences in fostering quality discussion and content (or failures to do so)

      Since the moderator community here is quite large, I figure we would have quite alot of interesting perspectives over here in Tildes. Feel free to chip in even if you're not a moderator, or god...

      Since the moderator community here is quite large, I figure we would have quite alot of interesting perspectives over here in Tildes. Feel free to chip in even if you're not a moderator, or god forbid, moderate such subs as T_D. Having a range of perspectives is, as always, the most valuable aspect of any discussion.

      Here are some baseline questions to get you started:-

      • Did your subreddit take strict measures to maintain quality ala r/AskHistorians, or was it a karmic free-for-all like r/aww?

      • Do you think the model was an appropriate fit for your sub? Was it successful?

      • What were the challenges faced in trying to maintain a certain quality standard (or not maintaining one at all)?

      • Will any of the lessons learnt on Reddit be applicable here in Tildes?

      29 votes
    34. A general introduction to Tildes

      Lots of new folks seem to be coming in these past days, so I wanted to make a post that compiles some useful things to know, commonly asked questions, and a general idea of tildes history (short...

      Lots of new folks seem to be coming in these past days, so I wanted to make a post that compiles some useful things to know, commonly asked questions, and a general idea of tildes history (short though it may be). Please keep in mind that tildes is still in Alpha, and many features that are usually present such as repost detection haven't been implemented yet.

      Settings

      First of all, check out the settings page if you haven't yet. It's located in your user profile, on the right sidebar. There are different themes available, the account default is the 'white' theme, which you can change. I recommend setting up account recovery in case you forget your password, and toggle marking new comments to highlight new comments in a thread. There are more features available but you should go look in the settings yourself.

      Posting

      You can post a topic by navigating to a group and clicking on the button in the right sidebar. Tildes uses markdown, if you are not familiar with it check the text formatting doc page. Please tag your post so it is easier for other people to find, and check out the topic tagging guidelines. Some posts have a topic log in the sidebar that shows what changes were done to the post since it was posted. You can see an example here. Some people have the ability to add tags to posts, edit titles, and move posts to different groups. They were given the ability by Deimos, see this post.

      Topic Tags

      You can find all posts with the same tag by clicking on a tag on a post, which will take you to an url like https://tildes.net/?tag=ask, where ask is the tag you clicked on. Replace ask with whatever tag you want to search for. You can also filter tags within a group like this: https://tildes.net/~tildes?tag=discussion, and it will only show you posts within that group. Clicking on a tag while you are in a group achieves the same effect.

      You can also filter out posts with specific tags by going to your settings and defining topic tag filters.

      Comment Tags

      Comment tags are a feature that was present in the early days of tildes, but was removed because of abuse. There were five tags you can tag on someone else's comment: joke, noise, offtopic, troll, flame. The tags have no effect on sorting or other systematic features; they were only used to inform the user on the nature of a comment. The tags would show up along with the number of people who applied them, like this: [Troll] x3, [Noise] x5

      People used these tags as a downvote against comments they disliked, and because the tags appeared at the top of a comment in bright colors, they often would bias the user before they read the comment. The abuse culminated in the first person banned on the website, and the comment tags were disabled for tweaking.

      As of September 07, 2018, the comment tags have been re-enabled and are experimented with. Any account over a week old will have access to this ability. The tagging button is located on the centre bottom of a comment. You cannot tag your own comment. Here are the comment tagging guidelines from the docs.

      Currently, the tags are: exemplary, joke, offtopic, noise, malice. The exemplary tag can only be applied once every 8 hours, and requires you to write an anonymous message to the author thanking them for their comment. Similarly, applying the malice tag requires a message explaining why the comment is malicious. The tags have different effects on the comments, which you can read about here, and here.

      Search

      The search function is fairly primitive right now. It only includes the title and text of posts and their topic tags.

      Default sorting

      The current default sorting is activity, last 3 days in the main page, activity, all time in individual groups. Activity sort bumps a post up whenever someone replies to it. 'Last 3 days' mean that only posts posted in the past 3 days will be shown. You can change your default sort by choosing a different sort method and/or time period, and clicking the 'set as default' button that will appear on the right.

      Bookmarks

      You can bookmark posts and comments. The "bookmark" button is on the bottom of posts and comments. Your bookmarked posts can be viewed through the bookmark page in your user profile sidebar. Note: to unbookmark a post, you have to refresh first.

      Extensions

      @Emerald_Knight has compiled a list of user created extensions and CSS themes here: https://gitlab.com/Emerald_Knight/awesome-tildes

      In particular, I found the browser extension Tildes Extended by @crius and @Bauke very useful. It has nifty features like jumping to new comments, markdown preview and user tagging.

      Tildes Development

      Tildes is open source and if you want to contribute to tildes development, this is what you should read: https://gitlab.com/tildes/tildes/blob/master/CONTRIBUTING.md

      For those who can't code, you might still be interested in the issue boards on Gitlab. It contains known issues, features being worked on, and plans for the future. If you have a feature in mind that you want to suggest, try looking there first to see if others have thought of it already, or are working on it.


      Tildes' Design and Mechanics

      In other words, how is it going to be different from reddit? Below are some summaries of future mechanics and inspiration for tildes' design. Note: most of the mechanics have not been implemented and are subject to change and debate.

      1. Tildes will not have conventional moderators. Instead, the moderation duties will be spread to thousands of users by the trust system. [Trust people, but punish abusers]. More info on how it works and why it is designed that way:

      2. Instead of subreddits, there are groups, a homage to Usenet. Groups will be organized hierarchically, the first and only subgroup right now is ~tildes.official. Groups will never be created by a single user, instead, they will be created based on group interest [citation needed]. For example, if a major portion of ~games consists of DnD posts and they are drowning out all the other topics, a ~games.dnd subgroup would be created - either by petition, algorithm, or both[citation needed] - to contain the posts, and those who don't like DnD can unsubscribe from ~games.dnd. There is currently no way to filter out a subgroup from the main group.

      3. Tildes is very privacy oriented. See: Haunted by data


      Tildes History/Commonly answered questions

      I recommend you check out this past introduction post by @Amarok before anything else, it's a bit outdated but contains many interesting discussions and notable events that have happened on tildes. @Bauke also tracks noteworthy events each month on his website https://til.bauke.xyz/. Also see the FAQ in the docs. Other than that, the best way for you to get an idea of how tildes changed over time is to go to ~tildes.official and look at all the past daily discussions.

      Below are some scattered links that I found interesting, informative, or important:


      If anyone thinks of a link that should be included here, post a comment with the link and I'll edit it in.

      Markdown source for this post: https://pastebin.com/Kbbh7pYU (outdated, and probably will not be updated unless someone explicitly asks for it)

      To the rest: have fun!

      57 votes
    35. What little-known online co-op games do you enjoy and why?

      I'm a huge fan of co-op games and have played over 100 by now, sometimes I stumble on a little co-op game I had never heard of and give it a go, I'm curious to hear about them. I'm going to throw...

      I'm a huge fan of co-op games and have played over 100 by now, sometimes I stumble on a little co-op game I had never heard of and give it a go, I'm curious to hear about them.

      I'm going to throw in Clandestine, which is an asymmetric infiltration game where one player is a field operative in a 3rd person stealth shooter, and the other player is a hacker that has to control a little avatar on the network, manage CCTV cameras so the field operative isn't spotted, crack door key codes, direct the field operative to mission objectives, disable guards by overloading power and water utilities, and even call in for body cleanup and ammo/health drops.

      I love the asymmetric cooperative nature of the game and Hacktag appears to be similar, though I've never tried it. I'm played through the whole campaign as a field operative and now I'm going through as the hacker and finding myself enjoying a whole new way to play the game, which has been challenging.

      20 votes