WTF Bites
-
-
It said that something like 34 GB could be freed (~29% of the total space).
There's the ! A 120G drive. (my C: is currently using 163G)
*frowns in SSD*
-
WTF is it doing that takes so long?
In order: Taking ownership, resetting permissions, breaking locks, and then deleting. Individually, for each file.
-
It said that something like 34 GB could be freed (~29% of the total space).
There's the ! A 120G drive. (my C: is currently using 163G)
It's a SSD, and it basically just contains Windows. I've moved pretty much everything else to a spinny second disk.
-
It said that something like 34 GB could be freed (~29% of the total space).
There's the ! A 120G drive. (my C: is currently using 163G)
It's a SSD, and it basically just contains Windows. I've moved pretty much everything else to a spinny second disk.
Same, though I do have this 970 EVO drive I've been meaning to slot in, eventually...
-
@Tsaukpaetra said in WTF Bites:
WTF is it doing that takes so long?
In order: Taking ownership, resetting permissions, breaking locks, and then deleting. Individually, for each file.
So? That's how file deletion works.
delete *.*
deletes files one at a time.The script I use to clean up all the useless crap that iTunes spews all over the place does the same thing (take ownership, set permissions, delete files, remove directories) and it deletes 12,000+ files in about a minute on an SSD.
-
@Zerosquare said in WTF Bites:
@magnusmaster said in WTF Bites:
Fortunately it was easy, most of the libraries either worked right out of the bat or could be downgraded and AsyncBridge took care of all the async stuff.
E_MISSING_WTF
@magnusmaster said in WTF Bites:
Windows XP.
edit:
-
@Tsaukpaetra said in WTF Bites:
WTF is it doing that takes so long?
In order: Taking ownership, resetting permissions, breaking locks, and then deleting. Individually, for each file.
So? That's how file deletion works.
delete *.*
deletes files one at a time.The script I use to clean up all the useless crap that iTunes spews all over the place does the same thing (take ownership, set permissions, delete files, remove directories) and it deletes 12,000+ files in about a minute on an SSD.
No, I forgot a step: individually copy all the to-be-deleted-files list items from one array into a new one (sans the just-deleted one). Then loop.
-
@levicki said in WTF Bites:
@Tsaukpaetra said in WTF Bites:
frowns in SSD
Mine will look like that too. Eventually.
I just abhor turning my PC off, because it's extravagantly difficult to convince the monitor to come back on after such an event.
-
@levicki said in WTF Bites:
One neat little trick Microsoft doesn't want you to know? Tell me about it then.
@levicki said in WTF Bites:
Because I want to use [...] a 32-bit DLL which has functions I need to call and which has no 64-bit equivalent and will never have?
So... write a 32-bit program? You mentioned .NET, which means your program is already run as 32-bit by default.
-
Senator (...) calls out Zoom’s lack of end-to-end crypto
W... wait, what?! There's actually a politician who understands what end-to-end crypto is, and understands it's important to have it?!
Let me read that again carefully...
Senator backing anti-crypto bill calls out Zoom’s lack of end-to-end crypto
Phew! Everything's back to normal. I was worried for a minute.
-
Do you see that? SYSTEMD CAN FAIL TO BOOT IF RANDOM NUMBERS AREN'T SUFFICIENTLY DIFFERENT!
@error_bot dilbert random nine
-
Dilbert said in https://dilbert.com/strip/2001-10-25 :
-
@Tsaukpaetra said in WTF Bites:
For curiosity I decided to figure out the tab order...
And you were doing SO WELL!!!
I don't see any problem.
-
@Tsaukpaetra said in WTF Bites:
*frowns in SSD*
You've got it the other way around.
Filed under: 3.60GB of 232 GB free
C:Ↄ:
-
-
@Rhywden This shall be prominently displayed every next time teachers complain about being paid inadequately
-
@Applied-Mediocrity German teachers (at least the rank-and-file at our highschool-equivalent) indeed can't complain about their pay.
Though it's rather that the principal of a primary school is on the same pay grade as me. And with my upcoming advancement, I'll even be a rung higher.
-
@Applied-Mediocrity said in WTF Bites:
On Win 3.x single process could not allocate more than 16M.
Most of the time with Win3.x, a computer didn't have 16MB to be allocated. You has to be using a really expensive system to have as much as 2MB...
-
@levicki said in WTF Bites:
But… what they should have done is not send credentials to unknown hosts unless they're in a known domain (a check which you can ask the domain server about).
You are forgetting that home Windows PCs don't have a domain controller they could ask anything, because they are () not in the domain.
With no domain, they shouldn't assume that the other party is in the same domain. Duh!
-
@dkf Alright, you got me there. I could walk under the table without bending my knees at the time. Anyway, I thought in protected mode it could swap to disk and also allowed to over-commit?
-
@levicki said in WTF Bites:
And how are they supposed to check to which domain it belongs?
DNS suffix, natch.
@levicki said in WTF Bites:
Also, if not in domain most PCs are in WORKGROUP, which means they are in the same domain called "everyone else not in domain".
And since no external-to-the-lan server will ever have a DNS suffix even close to WORKGROUP, the point is because it's automatically "not in the same domain" by that virtue.
Next?
-
@Applied-Mediocrity said in WTF Bites:
Anyway, I thought in protected mode it could swap to disk and also allowed to over-commit?
A few key points:
- Only more expensive computers could handle protected mode.
- Common memory sizes of the time were around 1–2MB.
- Disks were slow and small. You still wanted to avoid swapping!
Things were improving rapidly, but the Win3.X era was really quite small. I remember being very pleased that I had a 386, 4MB, and hardware that happily tolerated its drivers being put into high memory as that left a lot more space for games (and I could have a music player at the same time; multitasking FTW!). Windows also had significant stability issues, as well as adding a lot of overhead given the small general size of things. Win95 (on the same hardware) was quite a lot better.
-
@levicki said in WTF Bites:
And how are they supposed to check to which domain it belongs?
The OS says “I know I'm not in a real domain so they're obviously not the same domain as me”. It then falls back on exact hostname matching for credential selection from whatever security store is in use, or asking the user if there's nothing from before.
You know, like how other operating systems do it.
-
-
@hungrier Yes, although a 486 was recommended.
-
@dkf TIL Windows 95 could run with 4MB RAM.
-
It said that something like 34 GB could be freed (~29% of the total space).
There's the ! A 120G drive. (my C: is currently using 163G)
It's a SSD, and it basically just contains Windows. I've moved pretty much everything else to a spinny second disk.
That's what my boot disk is too (500). But my 2nd(1000) (and 3rd(2000)!) disks are also SSDs. The spinny disks are on the NAS. (Since I'm going to typically install multiple versions of VS across the life of the machine, space is needed.)
-
@Zerosquare said in WTF Bites:
Senator (...) calls out Zoom’s lack of end-to-end crypto
W... wait, what?! There's actually a politician who understands what end-to-end crypto is, and understands it's important to have it?!
Let me read that again carefully...
Senator backing anti-crypto bill calls out Zoom’s lack of end-to-end crypto
Phew! Everything's back to normal. I was worried for a minute.
"Senator, Zoom was just complying with the bill you're proposing."
-
but the Win3.X era was really quite small. I remember being very pleased that I had a 386, 4MB
I remember upgrading to that... That was nice. If I remember, my HDD was 10M at the time. (Maybe 20?)
-
TIL Windows 95 could run with 4MB RAM.
It depended critically on what hardware you had. If the drivers were both small and amenable, yes, it could work. I had some good fortune there, as I picked that particular system's components to be suitable for early Linux too; hardware that worked well with Linux tended to be good with Windows. (At that time, Linux had far better networking as MS were still trying to not just copy BSD in this area.)
Booting Linux on a 386SX16 with only 1MB of memory and virtually no local disk (i.e., some crappy machines we had in the college's computer area) was far more challenging. And Win3.1 wasn't too great on those machines either.
-
My external mouse and keyboard are doing random shit!
Oh, I just laid my phone down across my laptop trackpad/keyboard.
-
@error I've had a notebook (while taking notes) or a plate (while eating lunch) get into position where it depressed the control key.
-
Anyone spot what is wrong with this?
struct interrupt_control_map { uint source : 5; uint enable : 1; uint : 27; };
It's one bit too long in the padding bits (5 + 1 + 27 == 33) so it goes into the next word and the memory-mapped array of these things doesn't work at all. Several days to find this, because the failure symptom was the hardware going fucking crazy. It should have been:
struct interrupt_control_map { uint source : 5; uint enable : 1; uint : 26; // <<<< This };
I can't even blame anyone else for this.
-
Anyone spot what is wrong with this?
You're working with a architecture that looks like it was specifically made to answer the question of "why does the C standard leave all these things unspecified"?
-
Anyone spot what is wrong with this?
struct interrupt_control_map { uint source : 5; uint enable : 1; uint : 27; };
It's one bit too long in the padding bits (5 + 1 + 27 == 33) so it goes into the next word and the memory-mapped array of these things doesn't work at all. Several days to find this, because the failure symptom was the hardware going fucking crazy. It should have been:
struct interrupt_control_map { uint source : 5; uint enable : 1; uint : 26; // <<<< This };
I can't even blame anyone else for this.
Why make the padding explicit at all?
-
@PleegWat memory-mapped device. The particular bits at the particular address in memory must have particular values or nothing works at all. And the "particulars" were decided 10 years ago when the device was made and you cannot change anything, even more so than usual.
-
So apparently this Cisco webapp is failing to load because it's hosting some of its resources on... Dropbox? Corporate proxy blocks filesharing sites.
WhyTF is it hosting files on Dropbox?
Edit: yes, there's a Dropbox URL in https://botworkflows.webex.com/js/embed.sdk.js
Editedit: OK, it's actually broken because https://botworkflows-auth.webex.com/oauthsdk-embed.js returns 503 Service Temporarily Unavailable. That's also a WTF, but not as bad as hosting CSS on Dropbox. I wonder if they're even aware that made it to production.
-
"why does the C standard leave all these things unspecified"
We get nasal demons so they can support the <1% special hardware.
-
I wonder if they're even aware that made it to production.
No? Because (well, "their", not "my")
-
@levicki said in WTF Bites:
there's the fact that problem is easily solved in other ways such as blocking outbound port 445 traffic on the router without affecting user's ability to use the devices in their private LAN they might not have the money and/or incenitive to replace.
Which is why it's so common in all the consumer routers to include that firewall rule by default.
-
Anyone spot what is wrong with this?
struct interrupt_control_map { uint source : 5; uint enable : 1; uint : 27; };
That's what you get for not following it with a static assert on
sizeof(struct interrupt_control_map) == 4
. And before you say there is no static assert in C, there is:struct static_assert { char dummy[2 * (sizeof(struct interrupt_control_map) == 4) - 1]; };
If the condition is false, the array gets negative length, which is a compile time error. Wrap in a macro before use.
-
@levicki said in WTF Bites:
@Bulb What happens with that assert if his C compiler uses
0xFF
instead of0x01
as a truth value?Then he's using a non-compliant C compiler?
-
@levicki said in WTF Bites:
@Bulb What happens with that assert if his C compiler uses
0xFF
instead of0x01
as a truth value?It can't do that. C, see does actually specify some things. For example that boolean operators return
1
(of typeint
) for true.
-
@levicki said in WTF Bites:
@Tsaukpaetra said in WTF Bites:
Which is why it's so common in all the consumer routers to include that firewall rule by default.
That's actually what's more broken than Windows itself. It should include it by default. There is no legitimate reason to expose 135-139 and 445 to the Internet. Unless you want another
Blaster wormwannacry, because that's how you getBlaster wormswannacry.FTFY ?
-
@dkf TIL Windows 95 could run with 4MB RAM.
Microsoft advertised 4MB as the minimum memory requirement for Win95. But that was only possible due to extensive swapping to disk.
I disabled the swapfile on a computer with 20MB of RAM and it was able to boot Win95, and that was it. Attempting to run any applications resulted in an Out of Memory error.
-
why does the C standard leave all these things unspecified
I don't need to care about that. The relevant platform ABI does leave things specified.
-
@levicki said in WTF Bites:
Serves you well for using 4 bytes of memory for what can fit in a single byte.
Blame whoever made that hardware module for the odd layout; I can't change it at all. (In this case, it's part of a standard ARM VIC so all we really control is where in the memory map it sits. This particular word is used to set whether a particular interrupt handler is turned on and which interrupt it handles.)
-
@levicki said in WTF Bites:
@Bulb What happens with that assert if his C compiler uses
0xFF
instead of0x01
as a truth value?It doesn't.
-
That's what you get for not following it with a static assert on
sizeof(struct interrupt_control_map) == 4
. And before you say there is no static assert in C, there is:struct static_assert { char dummy[2 * (sizeof(struct interrupt_control_map) == 4) - 1]; };
If the condition is false, the array gets negative length, which is a compile time error. Wrap in a macro before use.
Thanks! I've changed that into:
#define ASSERT_WORD_SIZED(type_ident) \ struct _static_word_sized_assert_ ## type_ident { \ char _dummy[2 * (sizeof(type_ident) == sizeof(uint32_t)) - 1]; \ }
as I have lots of structures in the same file that need to be constrained the same way (and I don't mind having to only apply this to typedef'd things).