|
Just a bunch of visual basic double-talk
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
|
"All sides are equal" IF "figure is square"
"All sides are equal" IFF (if and only if) "figure is rhombus"
Might be better examples but this is the first one that came to mind.
Mircea
|
|
|
|
|
There are better examples, namely "All sides of a quadrilateral are equal..."
|
|
|
|
|
That's actually what I read initially
Not just VB, but SQL Server too
|
|
|
|
|
They don't need a reason to get in an uproar. The Haters never do.
I tried C once and decided I was not a masochist.
|
|
|
|
|
Brings back memories of algebra 101.
(Just don't confuse it with IIF , which is a different beast entirely.)
VBA also carried over the Imp operator[^] from QBASIC, which is the inverse of "if" in this sense. It got dropped from VB.NET though.
Fortunately, it's easy enough to implement any logical operator with just And , Or , and Not . And for extra credit, you can even drop either And or Or , and just use two operators.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I thought only NAND was required for making logic circuits.
Edit:
"
NAND gates can also be used to produce any other type of logic gate function, and in practice the NAND gate forms the basis of most practical logic circuits.
By connecting them together in various combinations the three basic gate types of AND, OR and NOT function can be formed using only NAND gates, for example.
As well as the three common types above, Exclusive-OR, Exclusive-NOR and standard NOR gates can be formed using just individual NAND gates.
" -- https://www.electronics-tutorials.ws/logic/logic_5.html
modified 18-Feb-21 12:42pm.
|
|
|
|
|
|
What Kenneth said. 👆
You can build OR from NOT +AND , and you can build AND from NOT +OR .
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
A simple way of looking at IFF is that it precludes and OR .
What's wrong with the whole thing is that it is not a word - ti's an abbreviation and that's specifically excluded in Scrabble, along with things like hyphenated words. Scrabble's manufacturer came out with the "Scrabble Dictionary" and that, allowing a number of non-words, screwed the game. If it's the official dictionary, how can you argue that a word's "not in the (real) dictionary" so it doesn't count if they decide to add it?
So, when I play Scrabble, I play IFF it is agreed to limit acceptable words to those found in a real dictionary.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
True, yet "real" dictionaries can't be trusted either.
But, yes, the OWL has some issues.
|
|
|
|
|
Marc Clifton wrote: Huh. Learned something.
Funny you should say that, because reading this post I feel like I just unlearned something... wish I knew what it was
|
|
|
|
|
And here I thought that iff was used in angry discussions in polite company, stifling profanities; usually followed by a pause.
For example,
Wife: IFF ... you FFeel that you need to go FFishing with your FFreinds, that FINE!
Nothing succeeds like a budgie without teeth.
|
|
|
|
|
We learned about immediate if in 8th grade algebra.
|
|
|
|
|
Shows the difference between natural languages and computer languages.
|
|
|
|
|
But you don't want to admit it.
So for them all modern await (which in fact runs operation in separate thread and waits on event together with message processing using MsgWaitForMultipleObjects) are useless for them. And of course, if you can use .Net Synchronizationb Context in Delphi or in C++ (especially with Visual Studio 2005) it would be great. This is the real development world.
I bolded the bit not understanding tasks, which do not necessarily spawn a thread, nor does await necessarily use MsgWaitForMultipleObjects.
This is what support looks like for one of my products we purchased.
Real programmers use butterflies
|
|
|
|
|
I'm not entirely sure what your entire complaint is about; but after seeing that the s involved not only are using Delphi as an excuse, but also ing VS05 I know everything I need to know:
Run away!
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
I would but BTFramework is the only game in town for now. The attitude though? It makes me want to release a competing offering into the public domain just to undercut their bottom line.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: It makes me want to release a competing offering into the public domain
Is my prediction coming true?
|
|
|
|
|
I mean, probably not. I don't have time to research the ridiculous UWP bluetooth interface and tap into it from regular windows, which is apparently the only way to do it short of interfacing with the drivers directly.
Besides, I don't code out of spite. I may threaten to though.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: Besides, I don't code out of spite. I may threaten to though.
I see where I've been wrong.
|
|
|
|
|
For small, well written packages, it's fine.
But the latest horror story is that I installed Quartz against my better judgement, to test it out. Quartz is a general purpose "job runner" and my first warning sign was that it was ported from Java.
Rule #1: Never install any package ported from Java.
The next thing I discovered is that whoever maintains Quartz decided that every single API method should be async, including initialization. Which, because I'm not calling the initialization from an awaitable method, meant I had to wrap the call in a Task(async () => initialize) call. WTF.
What made this worse was that the examples I found online were all written before this atrocity, so I had no idea what I was getting into.
Rule #2: Never trust online documentation, even the documentation provided by the package.
Furthermore, finding anything useful about why I have to do things "the Quartz way" was completely absent. Of course, the main reason for that is because it's a Java port.
Rule #3: If you can't find good examples explaining "why" in the package's online documentation, run.
Ultimately, yes, it worked. Seemed to work quite well. My coworker, who was pushing to use it (he loves packages rather than rolling-your-own) liked some of the features, but neither of us could figure out how to use those features, like error reporting / handling.
Rule #4: If it isn't obvious, it isn't worth it.
In the back of my mind, I kept wondering why I'm adding a package to our already bloated project that consists of thousands and thousands of lines of code, for 99% of features that I won't be using and can't figure out how to use, instead of writing my own KISS CRON job processor in about 200 lines of code, and one that is tailored to what I need in terms of querying what it thinks it should be doing, error handling, testing, etc. I'll post an article, BTW.
Rule #5: The KISS principle should be the first consideration when evaluating a package.
Which gets me to my point.
After making the command decision to ditch it, I uninstalled the package.
Unbeknownst to me, the NuGet package did not cleanly revert. I should have simply rolled back the entire set of commits to the branch. Stupid me. Instead, it left breadcrumbs in a config file that included various .NET framework packages, the most scary of which included a DLL for running unsafe code.
WTF does Quartz need to use unsafe code for?
Anyways, while everything worked fine on our development server, without my realizing what was going on with the config file, on the production server, the app blew up -- wouldn't even start. This was really my bad. I didn't realize (lack of inspecting the change logs) coupled with my own failure to not roll back but instead trust the NuGet uninstall process, that our production build was doing something (still don't know what) that was causing the runtime loader to fail. Possibly flags disallowing anything having to do with unsafe code. Possibly missing framework DLL versions that config was expecting specific version of. .NET did not fix DLL hell.
So between my errors, and NuGet package "management", and Quartz being bloatware, it's what Kirk says about Klingons: "I don't trust them and never will."
|
|
|
|
|
Now you get it!
|
|
|
|
|
Hangfire is an alternative you might want to look at.
|
|
|
|
|