C when I cast a char * *
to a char * * const
: ok
C when I cast a char * *
to a char * const *
: ok
C when I cast a char * *
to a char const * *
: WTF
C when I cast a char * *
to a char const * const *
: ok
C when I cast a char * *
to a char * * const
: ok
C when I cast a char * *
to a char * const *
: ok
C when I cast a char * *
to a char const * *
: WTF
C when I cast a char * *
to a char const * const *
: ok
Those are pretty nice specs. I would buy one right now if I didn’t have a Deck already, and if it didn’t come with a Windows tax.
Try going to http://000.000.000.000:8080/ in your web browser (replacing the 0’s with your public IP address), on your home connection. If it doesn’t work, it means that your port forwarding is probably not working. If the page loads correctly, it means your port forwarding is working correctly, and the problem is probably your ISP doing port blocking.
In my system, the raid arrays seem to do periodic data scrubbing automatically. Maybe it’s something that’s part of Debian, or maybe it’s just a default kernel setting. I don’t think it helps much with data integrity – I think it helps more just by ensuring the continued functionality of the drives.
When it’s running, you can type cat /proc/mdstat
to see the progress.
That command will also show you if there is a failing drive, so that you can replace it.
Sure. First you set up a RAID5/6 array in mdadm. This is a purely software thing, which is built into the Linux kernel. It doesn’t require any hardware RAID system. If you have 3-4 drives, RAID5 is probably best, and if you have 5+ drives RAID6 is probably best.
If your 3 blank drives are sdb1, sdc1, and sdd1, run this:
mdadm --create --verbose /dev/md0 --level=5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1
This will create a block device called /dev/md0 that you can use as if it were a single large hard drive.
mkfs.btrfs /dev/md0
That will make the filesystem on the block device.
mkdir /mnt/bigraid
mount /dev/md0 /mnt/bigraid
This creates a mount point and mounts the filesystem.
To get it to mount every time you boot, add an entry for this filesystem in /etc/fstab
The man page at https://btrfs.readthedocs.io/en/latest/mkfs.btrfs.html says:
RAID5/6 has known problems and should not be used in production.
So those profiles have unknown, unspecified problems.
But btrfs is safe on top of md-based raid1/5/6. It also has the advantage that you only need to encrypt one volume.
The easiest way to disable unnecessary services is to uninstall them with aptitude, or whichever package manager you like. Try terminating services one by one, and see if anything bad happens. If nothing bad happens, you can probably uninstall it. On the other hand, if the system does get wonky a reboot should fix it. Or, you can research the services by name and decide whether to uninstall them. (avahi-daemon for example is a good idea to uninstall.)
To make the GUI not run, uninstall your display manager (gdm, xdm, nodm, or whatever) and uninstall your xorg server or wayland server. There may be GUI programs remaining after that, but they will only be consuming disk space, not RAM or CPU.
If the battery is old and holds little charge, you may save a few watts by removing it and throwing it away, instead of letting the system keep it topped off.
Get a power meter, such as a Kill-a-watt device. Then, experiment with different settings. If it’s consuming less than 30 watts, you’re probably fine. If you live in the US, one watt-year is about one US dollar (or a little more), so for every watt it consumes, that’s about how much you will pay per year for its electricity.
draw .io is closed source.
I’ve seen “Domain Controller” and “Subscriber” for the sake of plausible deniability.
In the case of SPI, they want to keep intact the names MISO (master in, slave out) and MOSI. So they use things like “Main” and “Sub”.
Actually, I think that’s a really good idea. Just be aware of possible inductance in the long wires from the transformer area going to the camera. Putting a large electrolytic capacitor next to the camera should fix that.
As for your bell, there are dead simple systems that use a battery-powered stick-on button with a transmitter, and a chime/receiver that plugs into a wall. If you want to be fancy, you could find a way to power the transmitter with that 5VDC, in parallel with the camera… or you could just keep it simple and use the battery that comes with the button. They last near forever.
Remember that voltage is measured across a pair of wires, so you can’t power the chime with only a single wire. That’s part of what makes this difficult – these doorbell systems only have the bare minimum of wiring in them. Powering the camera and the chime in series with each other is quite difficult. I think a lot of these things just accept the short circuit, and use a battery to power the camera while the button is being held.
Here is what I was proposing, and I think what ch00f was also proposing. Replace “5VDC power supply” in this diagram with “a full bridge rectifier and a bunch of caps” in their description, and also note that your camera probably requires a well regulated 5VDC supply.
The easy way: take your existing wiring. Put an 18VAC to 5VDC power supply in parallel with the pushbutton. Then, the output of that power supply goes to the 5V USB input of your camera setup.
The downside is that it will reboot the camera every time someone rings the doorbell, because you are shorting across the camera’s power supply.
You can put a resistor in series with the button to fix this. You will need to find a resistance that’s low enough to still cause the chime to ring, but high enough not to disrupt the camera’s power supply. Maybe start around 20 ohms. If you can’t find a working resistor value, you can change the transformer to a 24V or 36V transformer, but make sure to keep that resistor high enough not to burn out the chime, and make sure your 5VDC power supply can handle the increase in input voltage.
Using a VPN (like Tailscale or Netbird) will make setup very easy, but probably a bit slower, because they probably connect through the VPN service’s infrastructure.
My recommended approach would be to use a directly connected VPN, like OpenVPN, that just has two nodes on it – your VPS, and your home server. This will bypass the potentially slow infrastructure of a commercial VPN service. Then, use iptables rules to have the VPS forward the relevant connections (TCP port 80/443 for the web apps, TCP/UDP port 25565 for Minecraft, etc.) to the home server’s OpenVPN IP address.
My second recommended approach would be to use a program like openbsd-inetd on your VPS to forward all relevant connections to your real IP address. Then, open those ports on your home connection, but only for the VPS’s IP address. If some random person tries to portscan you, they will see closed ports.
So are you able to view content, but pay to download? If that’s the case, I could probably write a scraper for the site.
If you have to pay to even see the content, then you may have a bigger problem. Try pooling resources with some of your fellow students, to have one person download all the content, and then make it available to everyone else.
Another option is to expose your instructors. There’s a high probability that they are getting kickbacks, especially if this is at college level. Maybe in the form of 10% of each dollar spent by one of their students. Or, they might be getting free equipment or content from Docsity, in exchange for forcing students to use it, and offloading the costs to students.
When I was in college, one of my instructors used these “clickers” that cost students $40 per semester to rent. They used radio to allow submitting realtime quiz answers during class. Students were scored on how many questions they answered, not whether they were correct. If you didn’t pay the clicker fee, you lost that 10% of your final grade.
I was suspicious, so I looked into it. It wasn’t hard. The clicker manufacturer advertised kickbacks on their own website.
I don’t care what Hamas says or admits. Reliable news sources have repeatedly reported that IDF is killing an unreasonably high number of innocent Palestinian civilians, relative to the number of Hamas soldiers that they kill.
One time I was getting estimates for server software for an embedded device I had made. In a teleconference, I told one company that our prototype server ran on nginx. They emailed us an estimate saying we had to switch our embedded system to Windows 10 IoT Enterprise, and put the server on Microsoft’s cloud, because “Engine X is not an enterprise web server.”