Foot shooting
-
@anonymous234 said in Foot shooting:
Anyway, having to keep a list of files to compile is obviously bad because it's redundant information. Don't repeat yourself and all that.
As I said somewhere, we recently started using angular. They let you specify patterns with the usual
include
andexclude
directives. One interesting thing that this enables, that I hadn't seen before is having your tests living right next to your source (they get a.spec.ts
suffix instead of just.ts
).At first I wasn't fond of that but I'm starting to like having them right next to each other. If nothing else, it's a little more difficult to ignore the tests ( )
-
@mott555 said in Foot shooting:
We have projects that include files by source name because there are different configurations that use slightly different lists of source files to compile, mostly to support other operating systems or slightly different customer scenarios. If that changed to just wildcard include all source files, it would break horribly.
Things would only break horribly because they've not been designed to work with that sort of build system. Which is fine; you gotta pick a definite system rather than waiting forever for the perfect ideal of a build system to spring fully formed from the head of Zeus. But experience from Maven (a very “Build All The Things” system by design) is that high customization can be done nonetheless; you just do it in a different way (e.g., by different target subprojects or by multiple profiles, to name two possibilities off the top of my head).
-
@levicki said in Foot shooting:
30 years ago the value of stupid people's opinions was nowhere near equal to the value of smart people's knowledge
30 years ago, stupid people weren't allowed on the Internet. Eternal September was still several years away.
-
@dkf said in Foot shooting:
30 years ago, stupid people weren't allowed on the Internet.
Then how did it end up with an infrastructure that was vulnerable to the Morris Worm?
-
@Mason_Wheeler said in Foot shooting:
@dkf said in Foot shooting:
30 years ago, stupid people weren't allowed on the Internet.
Then how did it end up with an infrastructure that was vulnerable to the Morris Worm?
Smart people can still groupthink.
-
@Mason_Wheeler said in Foot shooting:
@dkf said in Foot shooting:
30 years ago, stupid people weren't allowed on the Internet.
Then how did it end up with an infrastructure that was vulnerable to the Morris Worm?
The IQ of a mob is equal to the IQ of it's smartest member, divided by the number of members.
-
@dkf said in Foot shooting:
@Mason_Wheeler said in Foot shooting:
@dkf said in Foot shooting:
30 years ago, stupid people weren't allowed on the Internet.
Then how did it end up with an infrastructure that was vulnerable to the Morris Worm?
Smart people
can still groupthink.are still stupidCTFY
-
@PleegWat So when does a group of people, working together, stop being a synergistic "team" and become an anti-synergistic "mob"?
-
@PleegWat said in Foot shooting:
@Mason_Wheeler said in Foot shooting:
@dkf said in Foot shooting:
30 years ago, stupid people weren't allowed on the Internet.
Then how did it end up with an infrastructure that was vulnerable to the Morris Worm?
The IQ of a mob is equal to the IQ of it's
smartestdumbest member, divided by the number of members.
-
@dcon said in Foot shooting:
@PleegWat said in Foot shooting:
@Mason_Wheeler said in Foot shooting:
@dkf said in Foot shooting:
30 years ago, stupid people weren't allowed on the Internet.
Then how did it end up with an infrastructure that was vulnerable to the Morris Worm?
The IQ of a mob is equal to the IQ of it's
smartestdumbest member, divided by the number of members.I know that's the original quote, but I thought before writing, and liked the opposition in my version.
-
@Mason_Wheeler said in Foot shooting:
@PleegWat So when does a group of people, working together, stop being a synergistic "team" and become an anti-synergistic "mob"?
That's a Democratic rally, isn't it?
-
@dcon garage is
-
@PleegWat said in Foot shooting:
@dcon said in Foot shooting:
@PleegWat said in Foot shooting:
@Mason_Wheeler said in Foot shooting:
@dkf said in Foot shooting:
30 years ago, stupid people weren't allowed on the Internet.
Then how did it end up with an infrastructure that was vulnerable to the Morris Worm?
The IQ of a mob is equal to the IQ of it's
smartestdumbest member, divided by the number of members.I know that's the original quote, but I thought before writing, and liked the opposition in my version.
It is? I actually thought yours was the original!
-
@Mason_Wheeler Dunno. You have worse problems anyway: there's at least one person using the word "synergy".
-
@cvi I'm actually using it in the correct sense, though: the phenomenon where multiple parts, working together, produce a greater effect than the simple sum of their individual contributions.
-
@hungrier said in Foot shooting:
@remi said in Foot shooting:
@error_bot xkcd cryptonerd dream
Actually, what you want is
@error_bot xkcd personal villainsAh, yes, silly me. It should have been obvious that I needed to use words that don't appear anywhere in the comic, title or alt-text.
-
@remi We've been over this before: the ExplainXKCD search prefers article texts over the titles.
-
@JBert said in Foot shooting:
@remi We've been over this before
When has that ever prevented ranting?
(or, in a formulation more suited to the sub-thread that started this: am I allowed to whine about software that behaves in a moronic way?)
-
@levicki said in Foot shooting:
A hostile actor might have physical access to your computer but still not be able to do much without master password for your Keepass database, and without your Yubikey token (and without raising suspicion).
These are pretty minor speed bumps if the hostile actor has physical access, depending on the depths of the hostile actors pockets.
-
@Mason_Wheeler said in Foot shooting:
@PleegWat So when does a group of people, working together, stop being a synergistic "team" and become an anti-synergistic "mob"?
When you add a third person.
-
@Zecc said in Foot shooting:
the new .csproj format doesn't list any source files, but instead by default considers all .cs files in the directory to be part of the codebase (which is sensible).
It isn't that reasonable, and your story is good example of why.
There is also the whole thing about needing to scan directories to detect changes.
@JBert said in Foot shooting:
Build tools like Maven have been doing it for years
Maven is a dumpster fire, so the fact it does something does not imply it is a good idea.
@JBert said in Foot shooting:
everything in
src/main/java
gets built, no exceptionsAlso, it works better for Java than for C#, because Java insists that the file name matches the class name and the path matches the package, so only the files referenced somewhere can actually contain code that gets used. In C# there is no relation between file names and class names, so there is more potential for trouble by automatically building everything.
@JBert said in Foot shooting:
It's a PITA when you're frequently merging branches which all add new files - at least for project files like Visual Studio's where XML tags can get misaligned by naïve merge tools.
The usual solution to that is to keep the entries sorted, and one per line. Visual Studio can't do that, because it's crap. That's what should be fixed.
Also when merging changes that add files there is quite high potential for semantic conflicts anyway. The textual conflict in the build file is relatively trivial.
@Tsaukpaetra said in Foot shooting:
@Steve_The_Cynic said in Foot shooting:
not the ones that happen to be lying around.
See Also: PHP
PHP only loads files that are referenced by their name. Not from a build script, because there ain't one, but referenced from somewhere nevertheless.
@masterX244179 said in Foot shooting:
Mergetools might sometimes whack off a closing tag or mix up the balancing so the XML is syntactically broken.
Not if the whole entry is on one line. That's how everybody else does it.
@masterX244179 said in Foot shooting:
Also have fun when you get a mergeconflictmarker inside the csproj file.
Yeah, Visual Studio projects, and especially solutions, always required a lot of hand editing for various reasons anyway. It is Visual Studio being crap, not anything fundamental to listing files in project.
@remi said in Foot shooting:
I mean, I kind of agree with you that it has some drawbacks, but experience shows that the other way also had very clear drawbacks.
For C and C++ (and your mentioning headers suggests you are talking about those) just picking everything rarely works, because it is common to have conditionally added files and such. Also, headers don't need to be listed in the project, but sources do, and other problems.
I'd say in languages where the filename inherently matches the thing it is defining (e.g. Python) or is required to match (e.g. Java) it works well. Because they have the convention throughout, so it can be relied on.
@dkf said in Foot shooting:
The issue is (partially) that the expectation has changed.
Also MSBuild, on which the Visual Studio project files are built, always supported including files by pattern. So they could have started using it for new projects, but kept the old projects expanded—except I suppose that would need some different representations in the UI and they don't have that.
@anonymous234 said in Foot shooting:
Convention over configuration is a shitty pattern. Or at least the Microsoft implementations are shitty.
Mainly the later.
If a tool defines it looks for things here and there, from the start, and documents it, it greatly helps as people move from project to project, because the layout is everywhere the same and there is less opportunity for unwarranted creativity.
But Microsoft is transplanting it over older system, which ends up breaking all kinds of stuff that did contain the (often unwarranted, but present nevertheless) creativity. They are also not applying it completely, since the file names can still be arbitrary, unlike in Java.
-
@remi said in Foot shooting:
Of course, you're going to retort that they are crap developers that shouldn't be let near a computer and your usual elitist shtick.
If they are incapable of learning how to use the tools properly (all the examples you cited are examples of that), then they are, indeed, crap developers who probably fall into the category "Oxygen Thief".
-
@Steve_The_Cynic Genocide tends to be frowned upon nowadays.
-
@remi Idioticide is not a genocide, though it would still qualify as murder.
-
@Bulb said in Foot shooting:
@remi Idioticide is not a genocide, though it would still qualify as murder.
No, idioticide is more akin to omnicide. My estimate is that idiots make up the dominant super-majority of all people. But I may be cynical.
-
@Benjamin-Hall Eugenocide is the word you're searching for.
-
@Rhywden said in Foot shooting:
@Benjamin-Hall Eugenocide is the word you're searching for.
That works as well.
-
Give
the devilWTDWTF a little foot shooting, they'll start eugenocide.
-
@Bulb said in Foot shooting:
It isn't that reasonable, and your story is good example of why.
And yet if "gotta compile 'em all" had been the behaviour from the start then my story wouldn't have happened, because I'd have been forced out of earlier and wouldn't have kept the garbage file around.
Having said that, I pretty much agree with the rest of your post.
-
@Rhywden said in Foot shooting:
@Benjamin-Hall Eugenocide is the word you're searching for.
Oh come on, people named Eugene can't be blamed for their parents' poor taste in names!
-
I know I'm late to the party and he doesn't see my replies anyway but...
@levicki said in Foot shooting:
I remember the world 30 years ago -- it wasn't this bad
30 years ago PCs didn't have any security at all.
-
Rust's build tool, Cargo, has found an interesting middle ground wrt. which files to compile.
You only define your project's main file in project file. If you don't, it defaults to
src/main.rs
for programs andsrc/lib.rs
for libraries, relative to project file. In that file, when you declare a submodule, saymodule foo
, you either define it inline, or it must be defined either infoo.rs
orfoo/mod.rs
, relative to declaring file - the latter allows nested submodules to be defined in thefoo
directory. No other source files are read.
-
@Gąska it isn't that special. It is basically the same thing most dynamic languages do, just in a statically compiled one.
-
@Bulb I mean, of course a language that doesn't compile won't have a tool that compiles all files. Although I wonder how well it works for packagers. Does the packager run all the source files to see which others files are being imported and which aren't, or does static analysis to extract this info, or just gives up and packages everything?
-
@Gąska Well, Python packages all files (by pattern), because they can potentially be directly referenced by the dependent packages. I am not sure any can tell which files can't be directly referenced this way and discards them.
… I don't really know much about it, but Cabal (the Haskell build system) might be actually doing the same thing as Cargo.
-
@Gąska said in Foot shooting:
I know I'm late to the party and he doesn't see my replies anyway but...
@levicki said in Foot shooting:
I remember the world 30 years ago -- it wasn't this bad
30 years ago PCs didn't have any security at all.
Dunno about that. 30 years ago was 1990. OS/2 was a thing, but regardless, I used XENIX (er, Microsoft UNIX) in 1987, and it had UNIX-y security. On a PC.
-
@levicki said in Foot shooting:
30 years ago you couldn't meet so many stupid people in real life every day.
False. 30 years ago I met a lot more people in real life than I do today, and I don't think the level of stupidity has changed. Of course, I encounter many more online today.
-
@levicki said in Foot shooting:
and you will publish it without noticing because the file is not listed in the solution tree
Except it will be added to the solution tree. Because adding it to the folder added it to the solution, and therefore the tree.
Please try learning a modicum of what you're complaining about before going off on these rants.
-
@Bulb said in Foot shooting:
@remi Idioticide is not a genocide, though it would still qualify as murder.
-
@Bulb said in Foot shooting:
@Gąska Well, Python packages all files (by pattern), because they can potentially be directly referenced by the dependent packages. I am not sure any can tell which files can't be directly referenced this way and discards them.
Thought so. Rust wins.
@Bulb said in Foot shooting:
… I don't really know much about it, but Cabal (the Haskell build system) might be actually doing the same thing as Cargo.
Probably because Haskell is compiled.
-
@boomzilla you can just have tests in with your other code in c# now as well, though it doesn't seem to work well on the executable assembly.
-
@Magus said in Foot shooting:
@boomzilla you can just have tests in with your other code in c# now as well, though it doesn't seem to work well on the executable assembly.
In the same file? Or in a file in the same directory? What doesn't work well about it?
-
@boomzilla same file would work, if you have two classes in the same file. Same project works for sure.
The issue with doing it to the executable assembly is that it detects multiple entry points.
-
@Magus said in Foot shooting:
@boomzilla same file would work, if you have two classes in the same file. Same project works for sure.
The issue with doing it to the executable assembly is that it detects multiple entry points.
Oh, because the tests get included in the assembly. Angular excludes
*.spec.ts
files from the deployed build by default. By which I mean, that's how it configures itself if you use angular-cli to create and maintain your angular stuff.
-
@boomzilla still, it gets people to stop unloading the test project.
-
@Magus said in Foot shooting:
@boomzilla still, it gets people to stop unloading the test project.
I have no idea what that means.
-
@boomzilla people can tell visual studio to not load a project, and if nothing depends on it, it won't try to compile or complain if anything is broken over there.
This is useful in some cases, like when you have too much code in your solution. Some people use it to make those pesky tests go away.
-
@Magus so "Solutions" are projects that are made up of multiple "Projects?"
Sorry...I don't Visual Studio.
-
@boomzilla essentially. It's the stuff you're planning to build all at once. Since in visual studio, a project is typically a single assembly.
-
@Magus said in Foot shooting:
@boomzilla essentially. It's the stuff you're planning to build all at once. Since in visual studio, a project is typically a single assembly.
And an assembly is actually a dll or an exe?