@hungrier said in In other news today...:
That moment when you realize you've brought a cock to a gunfight.
@hungrier said in In other news today...:
That moment when you realize you've brought a cock to a gunfight.
@Gribnit said in In other news today...:
@dkf said in In other news today...:
@Bulb said in In other news today...:
most walls are sufficiently transparent
I live in a building with nearly zero penetration of wifi through walls, as they're all heavy brick and stone. Yes, even the internal dividing walls.
These buildings are called castles. Why do you live in a castle?
From hist posts, he works in on some advanced science stuff.
Mad scientists in UK are required, by law, to use a castle as their base of operations.
law also allows alpine fortress, but I suppose that is quite hard to pull off in UK (also, Brexit).
@Bulb said in Functional programming rah! OOP nah! Or how to know you're a zealot:
Which is the case of Jira too. It has a lot of features to cover everybody's workflow and everybody uses it slightly differently and that makes it too much of a mess.
This, plus extensible configurability...
In my previous job, our Head of Software Development had this story from some "Agile Conferences" he attended (as a speaker): people came up to him and asked
What's the tool you use for tickets? Looks nice, snappy and useful. We have just this <censored> JIRA and it sucks!
It's JIRA, actually.
What?? Our JIRA is different!
As a Head of Software Development, I spend third of my time working on the JIRA configuration so our developers don't have to waste time fighting it. What does your Head of Software Development do?
errr... Sitting on meetings, I guess?
@topspin said in In other news today...:
@DogsB bring the law-suits!
We are aware of a bug in Chrome that is impacting how cookies are cleared on some first-party Google websites.
According to Cambridge dictionary, a bug is:
According to Merriam-Webster, a bug is:
Sounds like the statement is correct, in both major variants of English.
Apparently he was inspired by this clbuttic date calculation code:
public Date getTomorrowDate() {
Thread.sleep(24 * 3600 * 1000L);
return new Date();
}
So, what happens when you run docker build
twice with different sources, when the Dockerfile
files happen to have the same size and timestamp?
Well, the second run will of course use the Dockerfile
cached from the previous run! And the other files too, for a good measure (as long as their sizes and timestamps match).
And if you ask "what is the chance that the timestamp matches" then the answer is "quite high, actually" - it's quite common pattern that the CI/release build server builds several variants with just a slightly different Dockerfile
(usually different version of some crucial library, or some switch changed from true
to false
). And the timestamp is, of course, taken from the commit time of their last change (which is something like "changed maintainer email address").
Bonus points: The github issue marks this marked almost one year ago, but it's not part of any official docker release so far.
Extra bonus points if the difference between variants is actually important for security and you run production with a build that spews debug info to everyone. Luckily, I have dodged that bullet (the build actually failed in my case).
I usually imagine that the "years of experience" does not mean "real time spent working with that", but "amount of funny and wtf stories accumulated".
That's how javascript developers can accumulate centuries worth of experience. At least that's how I feel whenever I write something in javascript...
Yeah, the guys in The Netherlands and Poland conspired to switch my labels around.
To annoy some germans? That actually sounds plausible!
@BernieTheBernie said in Scientific Science:
Now let's continue with Chemistry: forged crystal structures.
I might have just an introductory course to mechanical engineering behind my belt, but I am pretty sure that creating crystal structures is the whole point of forging.
@dkf said in Scientific Science:
@Gribnit said in Scientific Science:
@dkf well there's string theory...
A brave little theory, and actually quite coherent for a system of five or seven dimensions--if only we lived in one.
Academician Prokhor Zakharov, Now We Are Alone
The best quote from TBBT (at least for me):
Sheldon: Why would you do that? You're a string theorist as well.
Barry Kripke: Incorrect. I'm a string pragmatist. I say I'm going to prove something that can not be proved. I apply for grant money and then I spend it on liquor and broads.
@Applied-Mediocrity said in In other news today...:
as OSS fanbois like to remind everyone as if splitting arguments was some Nobel Peace Prize shit
That is offensive to commercial Unix fanbois.
@remi said in Programming Memes Thread:
@PleegWat on a related note, one module I was developing was integrated some years back in one software that we sold to external users. So the support team was in charge of writing some doc about it (which they actually did! It wasn't "great" but it was there, and not entirely shitty either). They also regularly asked me more technical questions about the theory behind it, and I usually answered their emails with as much info as I could (I don't write Wall'O'Text only here!), in the semi-formal tone of speaking to a coworker.
Then at some point the branch selling the software got itself sold, including that module (I had a thread about it). I recently, for , had a look at their website and all the docs they have. And I could see that for this module, they had a bunch of varied "methodology" documents that were... my emails, with at most the greeting/signature lines removed!
Well, that is kinda in-line with the "religious text" concept mentioned in this thread.
Bonus points if your name is Paul.
@remi said in (are (arguments for (using lisp)) (still valid?)):
You can't do that natively in C++. You can emulate it with various workarounds (some of them are described in the Wiki page). But they're not direct features of the language, like it apparently is in C#. Those workarounds are going to be either more (boilerplate or weird) code, or worse performances. Likely both at the same time.
You actually can do it in C++, because it does have function overloading, although only at compile time. The same is true in C#, except that the "compiler part" is available at runtime (intended for scripting languages, which is why the usage is so awkward in C#).
Basically, Stroustrup decided that overriding is something completely different and unrelated to overloading and must never be confused (which is why they have similar names, because the C++ design philosophy is ). Otherwise, he would have to implement CLOS multiple dispatch.
But, back to the C# thing, the part that bothers me is that it is up to the caller to ensure they say "hey, this variable is
dynamic
, don't forget to dispatch based on it" which sounds wrong to me. The workaround (shown in this subthread and in the Wiki page) is to use another wrapper function around it, but that's ugly boilerplate, which makes the feature less attractive.
As said above - this dynamic
part should not be in the language at all, as it is basically just .NET implementation internal thing. IMHO it is exposed only to make C# the "ultimate" .NET language that is superset of every other .NET langauge.
@BernieTheBernie said in WTF Bites:
@error That's a deliberate , not an accidental ♭♯♮.
I call that a "Bear Trap" pattern.
@dkf said in (are (arguments for (using lisp)) (still valid?)):
The one pattern I miss from Java is doing dynamic dispatch by the real types of the arguments (as you can do with CLOS); using reflection to do it is very tricky (unless you're using a sealed type tree) and there isn't anything like the trick you can do in C# to achieve it (which I believe is nasty).
May I ask what is that trick?
You end up having to write a whole load of bloated observer stuff just to work around the lack of a feature. I've written that in the past, but it's ever so nasty.
Yeah... with a little bit of foresight, this can be part of classes used by parameters, but it is a bloat. And what's worse: it's hard to read/understand and I have very hard time explaining what does it do and even why. Some well-established term for the concept would help a lot (and even better, a good explanation from someone who can actually explain stuff).
@DogsB said in In other news today...:
*edit after reading the comments I think we need to coin a law where every discussion about fantasy will eventually steer into complaining about Song of Fire and Ice never going to get an ending.
Without delving into the cesspit myself: did anyone actually that GRRM is actually the original author of Githyanki?
@dkf said in (are (arguments for (using lisp)) (still valid?)):
@Kamil-Podlesak said in (are (arguments for (using lisp)) (still valid?)):
The best illustration is the ultimate Java thing, the worst thing about it and endless source of woe: Design Patterns. The GOF Book has been published in 1994!
They were things that were always rather abused, mostly by people not
bothering understandingthem muchat all.
FTFY
Just to be sure: I mean the whole concept of Design Pattern. The specific ones are kinda meh anyway.
What they should have been: here's a common name for a particular shape of solution in this type of programming language, with common consequences described. What they became for too many: a quest to shove as many buzzwords as possible into the code, whether or not doing so was either correct or made sense, and without regard for the consequences.
Yeah, almost everyone missed the "common name" and considered it a "metaprogramming", which leads to argument that "LISP and C++ don't need that because they have templates"
@Bulb said in (are (arguments for (using lisp)) (still valid?)):
@Kamil-Podlesak said in (are (arguments for (using lisp)) (still valid?)):
I blame Simula and strongly object to the usual "it's a Java fault", when in fact Java just jumped into already established mainstream bandwagon.
Smalltalk and Simula are the real culprints, but are you sure the banwagon was mainstream when Java jumped into it?
Yes, absolutely. Simula was, indeed, always mostly obscure thing outside simulation niche (hence the name), but it clearly served as an inspiration to many.
Notably, Turbo Pascal 5.5 (1989) and of course C with classesC++ (1982!)
In 1996 (release year of Java 1.0), OOP was absolutely the hot shit.
The best illustration is the ultimate Java thing, the worst thing about it and endless source of woe: Design Patterns. The GOF Book has been published in 1994!
@Bulb said in (are (arguments for (using lisp)) (still valid?)):
@dkf said in (are (arguments for (using lisp)) (still valid?)):
I don't know CLOS well enough to comment on what it does.
The thing that makes CLOS different is that it came up with the concept of multimethods, that is it dynamically dispatches on types of all arguments, not only the designated invocant.
While many statically typed languages do that statically, including C++ and Java, the only other language that I know of that does dynamic dispatch on multiple argument types is Julia.
I definitely recommend getting acquainted with CLOS.
It used to be so much fun to pull it out in a discussion with a proponent of the "OOP modeling" cultphilosophy and see how the removal of "method belongs to object" melts his brain.
Ah, good times.
Btw, to make my point clear: I blame Simula and strongly object to the usual "it's a Java fault", when in fact Java just jumped into already established mainstream bandwagon.