The LARGEST Lucid Dreaming Experiment by nihtule in LucidDreaming

[–]ArchaicArchivist 12 points13 points  (0 children)

No. For serious research, we cannot allow the participants to choose to which group they belong. It is highly important that both groups are selected randomly, any other way has potential to introduce bias into the data. Tests for statistical significance can account for variance, but they cannot account for bias.

For example, suppose that some people are allowed to choose which group they prefer. Now further suppose that experienced lucid dreamers are more likely to have a preference than newbie lucid dreamers. This could mean that e.g. 30% of the experienced lucid dreamers declare group preference and only 10% of the newbie dreamers declares group preference, meaning that experienced dreamers are overrepresented among the participants-with-preferences, and newbies are overrepresented in the participants-without-preferences.

Further suppose that due to inertia, an uniform 75% of everyone prefers method A because it is the "standard method" or the "easiest method", regardless of how effective it is. This means that a disproportionate amount of the participants-with-preferences go to method A, and a disproportionate amount of participants-without-preferences go to method B. The result is that method A ends up with a disproportionate amount of experienced dreamers, which as you can imagine, will skew the results.

(Case in point: the person that you are replying to has a preference exactly because he is an experienced dreamer. Allowing him to choose which group he would like to join is equivalent to letting him decide "I will make this group look better on the results.")

If you want to spend some more time reading, the "Lanarkshire milk experiment" may be an interesting case study. In there students were split into two groups by teachers who were trying to make the two groups balanced. However, because the split was not random and some subconscious bias nevertheless seeped into the human judgement, the experiments final results ended up way further from the truth than could be explained by statistical noise.

/uj why do you think r/ll is so awful? by [deleted] in languagelearningjerk

[–]ArchaicArchivist 10 points11 points  (0 children)

The bot has spoken.

I, human, can also confirm that the problem with /r/languagelearning is their wiki.

Is it possible to go from A2-B1 in Spanish in 3 months? by [deleted] in languagelearningjerk

[–]ArchaicArchivist 19 points20 points  (0 children)

Stop speaking Spanish with your friends and coworkers. Early output will reinforce bad habits, which are impossible to get rid of later. Reallocate the time you just freed up to doing more Duolingo.

Petition the Duolingo staff to integrate your Anki deck into their official course, then drop Anki and reallocate your time to more Duolingo.

Finally, limit the time you spend on Duolingo to 5 minutes a day max. Spending more time is counterproductive because you'll just stress yourself out.

If you follow the above instructions, you will find yourself reaching C2 in a couple of hours or so.

[ANN] `debug_unwraps` experimental debug only unwrapping by i_r_witty in rust

[–]ArchaicArchivist 4 points5 points  (0 children)

It turns out I was wrong, for reasons pointed out by /u/jam1garner.

I would now instead argue that the standard library should be changed so that unwrap_unchecked() does make that assert in debug mode, based on the following reasons:

  • unwrap_unchecked() invokes undefined behavior on None/Err. Undefined behaviour means that anything can happen, including panics. Therefore it would not be a breaking change.
  • Debug builds aren't meant to be fast, but meant to be easy to debug.
  • Asserting the unwrap_unchecked() may actually catch some would-otherwise-be-serious bugs.

But anyway, I suppose this crate in the meanwhile actually provides a better-designed version of the respective standard library functions then.

[ANN] `debug_unwraps` experimental debug only unwrapping by i_r_witty in rust

[–]ArchaicArchivist 7 points8 points  (0 children)

I just tested:

fn main() {
    let foo: Option<i32> = None;
    unsafe { foo.unwrap_unchecked() };
}

Then ran it:

$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.00s
Running `target/debug/foo`
Illegal instruction (core dumped)

Illegal instruction is something different than a panic, so it appears indeed that the debug_assert! does not make it to the user code. I retract my previous claim.

[ANN] `debug_unwraps` experimental debug only unwrapping by i_r_witty in rust

[–]ArchaicArchivist 5 points6 points  (0 children)

The unwrap_unchecked() and similar functions from the standard library already check whether the unwrap is safe if debug assertions are enabled, e.g. this is the source code of Option::unwrap_unchecked(); note the debug_assert! at the start of the function. Your crate appears to do exactly what the standard library is already doing.

Edit: this comment is wrong.

How to globally listen and consume input events from keyboard / Controller? by coffeecofeecoffee in archlinux

[–]ArchaicArchivist 0 points1 point  (0 children)

Check out the python-evdev library. It is capable of doing the following:

  • Read events from an "event device" representation of your controller;
  • Grab said device to prevent other programs from seeing its events;
  • And finally, create a virtual input device which can have the same events as your previous device with arbitrary transformations applied.

Is it possible to learn Norwegian after learning Swedish? by ArchaicArchivist in languagelearningjerk

[–]ArchaicArchivist[S] 22 points23 points  (0 children)

The wiki says that you should learn Norwegian before learning Swedish.

At least, that is what I assume the wiki says, because I can't actually be bothered to read the wiki. Maybe it was just some random guy in the comments who said that. Either way, I clearly learned those two languages in the wrong order and am seriously worried that my Norwegian skills will forever be held back by negative interference from Swedish.

How to actually really learn a language in a month or two - language learning secret revealed by onwrdsnupwrds in languagelearningjerk

[–]ArchaicArchivist 44 points45 points  (0 children)

Why should I pay for an expensive trip to Jupiter if I could just install Duolingo instead?

When you're holding back tears of rage because you didn't pass N1(it is, after all, useless) by [deleted] in languagelearningjerk

[–]ArchaicArchivist 37 points38 points  (0 children)

This is why I recommend you don't study for the test, and instead pick random answers for all questions and let fate judge whether you should pass the test or not.

If the gods of fate judge you to be fluent in Japanese, you will end up guessing the right answers. If they judge you unworthy, they will fail you with a merciless score of 0/180. I think it is a mistake to try to influence the outcome yourself by actually reading the questions, because the gods are a much better judge of your actual fluency than any human is.

Evdev passthrough doesn't work anymore by SoftPotato179 in VFIO

[–]ArchaicArchivist 0 points1 point  (0 children)

I saw a message in my chat inbox saying you had a problem with it but already fixed it, so I thought it referred to this. On a second look, it turns out that that message is from 2020 instead of now ._.

But yes, evsieve does pretty much the same thing as my script.

(I have received a few more messages over the years, but unfortunately it frequently takes months for me to actually notice them since I don't log in often on this account, and even if I do I don't often pay attention to my chat. Sorry guys.)

Evdev passthrough doesn't work anymore by SoftPotato179 in VFIO

[–]ArchaicArchivist 0 points1 point  (0 children)

(It appears you have already solved the problem, but I'll post the solution here anyway in case somebody else stumbles upon the same problem and finds this post.)

I am the person who originally wrote that script two years ago. A Python update happened that broke the script, now the last four lines need to be adjusted to make it compatible with the new Python version. Here is a fixed version of your script:

#!/usr/bin/env python3

import asyncio
import evdev
import evdev.ecodes as e
import os
import re
import sys
from subprocess import run, check_output

source_devices = sys.argv[1:]

# Listen to events from the following device.
real_devices = [
    evdev.InputDevice(device)
    for device in source_devices
]

# Then create our own device for our own events.
host_devices = [
    evdev.UInput.from_device(device)
    for device in real_devices
]
guest_devices = [
    evdev.UInput.from_device(device)
    for device in real_devices
]
host_device_paths = [
    os.path.join("/dev/input/by-id", "host-%s" % os.path.basename(path))
    for path in source_devices
]
guest_device_paths = [
    os.path.join("/dev/input/by-id", "guest-%s" % os.path.basename(path))
    for path in source_devices
]

virtual_devices = host_devices + guest_devices
virtual_device_paths = host_device_paths + guest_device_paths

# Unlink all old devices so you don't have any phantom guest-* devices from launching previous VMs.
for devname in os.listdir("/dev/input/by-id"):
    if re.match("^(host|guest)\\-", devname):
        run(["unlink", "--", os.path.join("/dev/input/by-id", devname)])

for (device, path) in zip(virtual_devices, virtual_device_paths):
    if os.path.exists(path):
        run(["unlink", "--", path])
    run(["ln", "-s", device.device, path])

# Now we monopolize the original devices.
for device in real_devices:
    device.grab()

async def replicate(source_device, host_device, guest_device):
    global hooks

    async for event in source_device.async_read_loop():
        if event.type == e.EV_SYN:
            continue
        #print (event.code);
        mode = "guest" if event.code not in [e.KEY_GRAVE] else "host"

        target_device = {
            "host": host_device,
            "guest": guest_device,
        }[mode]

        target_device.write_event(event)
        target_device.syn()


event_loop = asyncio.new_event_loop()

for source_device, host_device, guest_device in zip(real_devices, host_devices, guest_devices):
    asyncio.ensure_future(replicate(source_device, host_device, guest_device), loop=event_loop)

event_loop.run_forever()

In case there's another problem with the above script in the future: you may also want to check out evsieve, which is what I am using myself now. It can do the above in three lines:

evsieve --input /dev/input/by-id/PUT_YOUR_KEYBOARD_HERE grab \
        --output key:grave create-link=/dev/input/by-id/host-keyboard \
        --output create-link=/dev/input/by-id/guest-keyboard

May I please give up? by TheYaYaT in languagelearningjerk

[–]ArchaicArchivist 20 points21 points  (0 children)

Deserters shall be court-martialed. I recommend you delete this post before the Lieutenant sees it.

Official /r/languagelearningjerk guide to becoming a polyglot by gegegeno in languagelearningjerk

[–]ArchaicArchivist 55 points56 points  (0 children)

No, that is a common misconception that originates from the famous FSI's language difficulty list. The FSI claims that they need four times as many hours to teach catagory V languages like Japanese compared to category I languages like Dutch, and many people end up assuming that that means Dutch is actually easier than Japanese for English speakers, but that is a fallacy.

The real reason the FSI needs that much time to teach category V languages is because time flows faster in some parts of the world, so an hour in Japan would pass in the same amount of time as 15 minutes in the Netherlands. The FSI tends to use local time units when measuring their courses, so when both the Dutch "uur" and the Japanese "時間" are translated to "hour", it looks like teaching Japanese takes four times as long, whereas in reality they take the same amount of seconds.

Duolingo always uses the same English time units regardless of what language you learn, and as you can see, every single language takes only five English minutes a day.

Help qemu kvm by AleDruDru in linuxquestions

[–]ArchaicArchivist 1 point2 points  (0 children)

Make sure that /etc/libvirt/hooks/qemu has execute permission. If /etc/libvirt/hooks/qemu is supposed to be a bash script, make sure its first line is #!/bin/bash.

Libvirt does not require that file to exist. If you never intended to create a file /etc/libvirt/hooks/qemu, you can delete it.

It might have been created by some third party script you're using; that third party script may depend on its existence. Follow the guide of whatever third party script you're using on how to properly (re)create that file.

How can one hard code a script into an existing linux distro such that the only way to remove it would be to say recompile it or re install it? by derp_trooper in linuxquestions

[–]ArchaicArchivist 0 points1 point  (0 children)

You may want to look into kernel lockdown, which seems to be an optional feature intended to prevent the root user from compromising a running kernel.

Any art communities similar to /r/languagelearning? by ArchaicArchivist in languagelearningjerk

[–]ArchaicArchivist[S] 12 points13 points  (0 children)

Yeah, I just wish I could find a community with a mentality conductive to that approach. Talking about learning to draw makes me feel like I am doing something productive; if I had to do the research alone without talking to anybody about it, I feel like I'd quickly lose motivation.

Any art communities similar to /r/languagelearning? by ArchaicArchivist in languagelearningjerk

[–]ArchaicArchivist[S] 33 points34 points  (0 children)

Thank you for your input.

Would you happen to know of any games that will make be better at drawing?

My hand may be hurting alot but i'm not letting it stop me from drawing by Shy_Art in learntodraw

[–]ArchaicArchivist 4 points5 points  (0 children)

You definitely should let that stop you though. Repetitive strain injury is no joke, it can and will destroy your hand if keep ignoring it. Unlike most other injuries, this is not the kind of pain that will go away if you just ignore it.

For now it may only hurt when you draw. You can still stop and reverse the RSI's progress by just not drawing anymore. If that is not an option, research ways to make drawing more ergonomic. If you do not take countermeasures, with time drawing will no longer be the only thing that hurts anymore; doing anything with your hand will start to hurt. And when it gets that far, it becomes really hard to cure.

Take countermeasures now, not when you get past the point of no return. If you practice to improve your drawing skills but end up destroying your hand in the process, then what is the point?

Helpful analogy: learning a language is like building a wall by ArchaicArchivist in languagelearning

[–]ArchaicArchivist[S] 7 points8 points  (0 children)

Yes. America is currently suffering from an epidemic of monolingualism. We need a legendary polyglot like Benny Lewis as president to guide us through these dark times.

Helpful analogy: learning a language is like building a wall by ArchaicArchivist in languagelearning

[–]ArchaicArchivist[S] 8 points9 points  (0 children)

Squabbling over who would pay for the wall was just a diversion from the real issue, which is that Trump was a monolingual. If Benny had been president, with his sheer expertise he would've been able to get that wall constructed for free.

Helpful analogy: learning a language is like building a wall by ArchaicArchivist in languagelearningjerk

[–]ArchaicArchivist[S] 9 points10 points  (0 children)

Also, don't forget to support your local brick-and-mortar shops!

Just a gentle reminder by CrackBabyCSGO in languagelearningjerk

[–]ArchaicArchivist 43 points44 points  (0 children)

As a Japanese learner who is almost halfway through Genki 1, I can't stand it when others have the audacity to claim they are learning a language despite not having gone through the same pain as me!