Java finally got its shit right!
-
So, a Java updater popped up for me just now. I'm in good mood today, so I let it install. But something wasn't right... The updater just notified me. Without UAC dialog. How was it possible? Will the installer fail in some stupid way because it has no permissions? But no, there it is! After I clicked the bubble and the updater started, it spawned UAC dialog asking for permission! Yay! They finally fixed that stupid not-a-bug! Progress!
Then, this happened: (spoiler tag)
[spoiler] [/spoiler]
-
I have made some screenshots on my work computer. Hell must have frozen over because the installer did work in my case.
-
The word "uncompression" is gibberish.
You can have "uncompressed" data. But you can't "uncompression" data.
-
But you can't "uncompression" data.
Yes.
The dialog wasn't talking about "uncompression data". It was talking about a failure of "uncompression".
∴ You're both wrong.
(It still isn't a word.)
-
Naming things is hard, OK? Especially for non-natives. We have some variables in our codebase named "placeholder" where the more fitting name would be "storage". And no one fucking cares.
-
Naming things is hard, OK? Especially for non-natives. We have some variables in our codebase named "placeholder" where the more fitting name would be "storage". And no one fucking cares.
They're just placeholders - you can delete them with no ill effects.
For those of us (read: you) that need emoticons to understand sentences:
-
But you can't "uncompression" data.
"Uncompression" is a verb. A poor one, to be sure, but that's what they were going for.
-
Nope, they actually hold vital data our app cannot operate without.
-
Then start caring about their names.
Or rename them to TempDeleteMePlease. See if I care.
-
My whole point is that names are unimportant. If you ROT13'd every single identifier, it would change virtually nothing except make things even more impronuncable (if possible) and piss off @blakeyrat.
-
My whole point is that names are unimportant. If you ROT13'd every single identifier, it would change virtually nothing except make things even more impronuncable (if possible) and piss off @blakeyrat.
I spend a lot of my time reverse engineering executables. Trust me, names matter. Having even somewhat helpful names makes things much easier. Your statement is only true if no one were to ever look at your code again.
-
My whole point is that names are unimportant. If you ROT13'd every single identifier, it would change virtually nothing except make things even more impronuncable (if possible) and piss off @blakeyrat.
Please do try this on your codebase and post reactions and results.
-
Hey, I have a variable named
泡$[x02]娖[x2F]能[U+FFEF]ó
in this code, can you kindly do the needful.
-
Hey, I have a variable named 泡$[x02]娖[x2F]能[U+FFEF]ó in this code, can you kindly do the needful.
Another $(@#*) Go user....
-
Well Actually™, I'm pretty sure they restrict identifiers to printable characters, excluding things like ^B and $.
-
My whole point is that names are unimportant. If you ROT13'd every single identifier, it would change virtually nothing except make things even more impronuncable (if possible) and piss off @blakeyrat.
You're screwing with us?
Pedantically, yes the program would still work. But it would make it a more unmaintainable mess.
-
"Uncompression" is a verb.
"Uncompression" is a noun. "Uncompress" is a verb. Although the Chrome speelchucker doesn't like either; it prefers "decompress" and "decompression."
-
"Uncompression" is a noun.
You're really making it difficult for me here, because you're making me point out verbing. Uncompression is a poorly-chosen verb signifying the act of uncompressing.
It's Oracle. Do you expect them to do a good job?
-
you're making me point out verbing. Uncompression is a poorly-chosen verb signifying the act of uncompressing.
No, rather this is forming a noun from a verb. "Uncompression" is a noun, poorly-chosen or not, signifying the act (or process) of uncompressing. A word signifying an act or process is a noun.It's Oracle. Do you expect them to do a good job?
Certainly not, but that does not change whether "uncompression" is a noun or verb.
-
Preetty sure the word is "decompression" and "decompressing"
-
I found out today that sometime in the last month something decided to uninstall Java 6 automatically for me (probably as a "security" aid). Mind you I had Java 6 because Java is so backwards compatible I had apps require it. The joys of fucking horrible software.
-
I spend a lot of my time reverse engineering executables. Trust me, names matter
Someone doesn't know how to make release build.Pedantically, yes the program would still work. But it would make it a more unmaintainable mess
I like how you assume the current codebase is already an unmaintainable mess. It's somewhat terrifying that you're absolutely correct.
-
-
I was thinking more along the lines of RetroGuard & friends or fucking up non-critical entries in the symbol table.
E.g. ship with symbols that a debugger recognizes, but name all symbols [RTL OVERRIDE][counter].
-
$DEITY damned Hanzo'd!
Where's my emoji code attempt now... bah, CBA to Discosearch
-
If you ROT13'd every single identifier, it would change virtually nothing except make things even more impronuncable (if possible) and piss off @blakeyrat.
If you really want to piss people off, change all of them (that you can) to something derived from a GUID or (random) UUID. It's all semantically equivalent, but anyone looking at it will instantly hate your guts.
-
If you really want to piss people off, change all of them (that you can) to something <abbr title="e.g., strip non-alphanumerics and prefix with “ID” so the identifiers are well-formed">derived</abbr> from a GUID or (random) UUID. It's all semantically equivalent, but anyone looking at it will instantly hate your
gutsGUIDs.
FTFY
-
change all of them (that you can) to something derived from a GUID
We have something not entirely unlike this in some generated code I have to deal with: id0001, id0002, ..., id4978, id4979, ... It doesn't help that there are multiple instances of each module.
-
-
Huh?
Optimized native binaries should be free of debugging symbols, and debugging symbols is the only way to bind functions and variables to names. And if you're reverse-engineering bytecode binaries... it's not much different from just reading the damn source code.
-
Mind you I had Java 6 because Java is so backwards compatible I had apps require it.
If only they could make it as backwards compatible as .NET
Wait... why is there 4 version of .NET installed on my machine ?
-
Wait... why is there 4 version of .NET installed on my machine ?
1.1, 2.0, 4.5 and language pack?
-
Optimized native binaries should be free of debugging symbols, and debugging symbols is the only way to bind functions and variables to names. And if you're reverse-engineering bytecode binaries... it's not much different from just reading the damn source code.
Yes. Here's my point: there are two huge reasons why reverse-engineering non-obfuscated binaries is difficult: the lack of types and the lack of names. If I'm looking at an unstripped binary, it's much much easier than looking at a stripped version of the same one. Similarly, "stripping" source by changing the names of things to meaningless values, it would make it much more difficult.
-
Wait... why is there 4 version of .NET installed on my machine ?
4? There aren't even 4 versions of .NET in existence, as far as I am aware. (Are you counting Mono as one? Maybe?)
-
Wikipedia has seven, not counting the x.y.z revisions and service packs
-
It lists 4. But it counts 1.0, which most people would not.
-
Of .NET or of the CLR? The table has two different numbering schemes
-
Of pictures of your skanky wife's ass.
The numbering scheme is a "skank rating system", but she maxed it out.
-
There aren't even 4 versions of .NET in existence
That's strange, since the newest major .NET Framework version is 4.
-
Of pictures of your skanky wife's ass.
You insensitive clod!
She had to have her ass amputated some years back after a particularly virulent bout of diarrhoea
-
-
Doctor House?
I told you it wasn't lupus
-
It lists 4. But it counts 1.0, which most people would not.
Why not ?
Oh right, every 1.0 version of MS is such crap, you have to pretend it doesn't exist.
-
1.0 of .net was like Apple's OS X 10.0, you're supposed to just kind of ignore it. It's a tech preview with, inexplicably, a production-ready version number.
-
Ok then, count with me :
- .NET Framework 1.1
- .NET Framework 2.0
- .NET Framework 3.0
- .NET Framework 4
And I'm ignoring minor versions like 3.5, 3.5 SP1, etc
-
There is no 3.
-
1.0 of .net was like Apple's OS X 10.0, you're supposed to just kind of ignore it. It's a tech preview with, inexplicably, a production-ready version number.
But 1.1 definately was a thing. There were real apps using it.There is no 3.
If there is no 3, then there is 3.5, because either was a major step forward from 2.0.
-
There is no 3.
https://msdn.microsoft.com/en-us/library/bb822049(v=vs.110).aspx
EDIT:
@blakeyrat said:Look, the original claim is there were 4 versions of .NET installed on someone's machine. That's not true, because the only part that gets installed is the CLR, and the CLR has only had 3 release-ready versions. I also note that Windows 8 apparently no longer ships with 1.1, so. Two versions.
In that case disregard .
-
If there is no 3, then there is 3.5, because either was a major step forward from 2.0.
Correct. There is also no 3.5.
Look, the original claim is there were 4 versions of .NET installed on someone's machine. That's not true, because the only part that gets installed is the CLR, and the CLR has only had 3 release-ready versions. I also note that Windows 8 apparently no longer ships with 1.1, so. Two versions.
-
I have 6 entries in my Programs and Features called Microsoft .NET Framework, but that includes a load of SDKs and other developer-centric stuff, plus two versions of the Compact Framework (including 3.5 FWIW)