« first day (2063 days earlier)      last day (1117 days later) » 
00:00 - 17:0017:00 - 00:00

5:00 PM
not sure which of you reminded me of that the other day, but shift+f3 has been doing wonders for my back-and-forth with the caps lock key for projects
 
In other news... Excel strikes again en.wikipedia.org/wiki/Caesar_cipher
> ... Although the parties had access to far better encryption techniques (Karim himself used PGP for data storage on computer disks), they chose to use their own scheme (implemented in Microsoft Excel), rejecting a more sophisticated code program called Mujhaddin Secrets "because 'kaffirs', or non-believers, know about it, so it must be less secure". ...
Excel is used for everything.
 
Caesar cipher? lol
 
@IvenBach "we shouldn't use SHA256 because infidels know about it, so let's use a cipher made by a pagan instead!"
 
When everyone else is illiterate a shift of 3 would disguise your message.
 
@IvenBach sweat laughing emoji
 
5:03 PM
it's official boys, i finally contributed something lol
6
 
Opened a PR or edited the wiki?
 
@jcrizk Thanks for that :)
 
PR got merged
 
@this sha is hashing, you wouldn't be able to read the messages afterwards...
@jcrizk when's the next one? :)
 
@Vogel612 :facepalm:
 
5:06 PM
I see I'm not the only one craving caffeine right now...
 
Pretend I said "blowfish", not "SHA256"
(or whatever's the latest in encryption algorithm)
 
blowfish is probably okay, but Rijndael (aka AES) is still used, you know?
 
as you see, I'm not particularly up to the date. I use hash much more than I do encryption.
besides, if one is writing code to implement encryption at the application level, there's a high probability that one is doing it wrong.
 
yea, you may want to get rid of SHA-256 as well, then
it's been ... considered broken since quite a while and recently people found a way to not need nation-level actor resources to break it
SHA-512 seems to be okay for now, though
 
gosh.
keep up with security news, this
is SHA-1024 even a thing?
 
5:10 PM
it still costs about 10k$ in AWS resources to fake a single PGP signature, but still
 
LOL:
> No, because even SHA-512 was considered overkill from a security perspective. It has 256-bit collision resistance, which is unbreakable. (The link is about keys but a similar argument applies.)
 
BBIAB, cleaning the kitchen :D
 
looks like I should be watching for SHA3 to become implemented.
 
@Vogel612 I'll start another one after I finish implementing and testing this region in my own project lol I've been putting it off because it's a ton of writing
im like halfway done though as of yesterday
 
@Vogel612 PGP = ???
 
5:18 PM
pretty good privacy
 
Pretty Good Privacy (PGP) is an encryption program that provides cryptographic privacy and authentication for data communication. PGP is used for signing, encrypting, and decrypting texts, e-mails, files, directories, and whole disk partitions and to increase the security of e-mail communications. Phil Zimmermann developed PGP in 1991.PGP and similar software follow the OpenPGP, an open standard of PGP encryption software, standard (RFC 4880) for encrypting and decrypting data. == Design == PGP encryption uses a serial combination of hashing, data compression, symmetric-key cryptography,...
It's only pretty good
 
@this Within that link "So I made a spreadsheet with various costs." Excel strikes again.
We should make a tally as to how short a distance we can go from any article until Excel is mentioned.
 
@IvenBach 6 degrees of Dan Bricklin?
 
I've heard of Kevin Bacon or the mathematician E-something ( I want to say Euler but I don't think that's the one - he died only recently)
 
5:33 PM
The Erdős number (Hungarian: [ˈɛrdøːʃ]) describes the "collaborative distance" between mathematician Paul Erdős and another person, as measured by authorship of mathematical papers. The same principle has been applied in other fields where a particular individual has collaborated with a large and broad number of peers. == Overview == Paul Erdős (1913–1996) was an influential Hungarian mathematician who in the latter part of his life spent a great deal of time writing papers with a large number of colleagues, working on solutions to outstanding mathematical problems. He published more papers during...
 
Yes, Erdos.
 
Euler is long dead.
 
Yes, that's why I was thinking it can't be him.
be kind of hard to make a Euler number nowadays. :)
 
Euler's contributions are astounding. His parenting skills were atrocious.
 
6 degrees of kevin bacon would be the regular game, but figured i'd joke about the relationship to excel (dan bricklin is responsible for developing it back in the 70s or 80s)
 
5:36 PM
> My son. Don't go into mathematics. You'll never be as great as I am and would only dirty my legacy.
 
@Cyril I appreciated the joke :)
@IvenBach another sweat laughing emoji
 
@IvenBach that's hysterical
 
@IvenBach uh.... thanks, dad?
 
@Cyril Depressing IMO.
He's factually correct but even I cringe at a statement like that.
 
it really speaks to how people thought of euler, though... he was pompous and callous; just kind of funny that your quote is so fitting
 
5:38 PM
I'd prefer the source I read that from.
Don't like stating things without pointing to evidence/proof.
 
waitaminute that's an actual quote of his?
 
Not verbatim but paraphrased.
 
oh, okay. I had presumed it was just your Iven-dad-izing him.
 
6:06 PM
the only difference is probably that Euler would've said it in German :D
no wait. ... that was Gauss
 
i thought Euler was french tho
 
6:25 PM
 
@jcrizk swiss. moved to russia
 
6:47 PM
@puzzlepiece87 why are your laughing emoji all sweaty?
@Vogel612 that means he probably spoke French, and that's close enough!
 
Reading about Entity SQL--the SQL variant EF uses and converts into other SQL variants.
It looks really cool.
It's a pity SQL Server doesn't support it directly.
It's like a cross between a normal .NET language and SQL. It's stricter in some areas, but allows collections as well as sets and provides different support for navigation.
 
this is cool:
Ryan Donovan on January 29, 2020

You’ve seen those job listings that are looking for a “JavaScript Rock Star” and likely rolled your eyes. It seems silly to think that whatever skill you have at programming is going to get you featured in Rolling Stone. Besides, code on a screen is not likely to land you the legions of screaming fans that a sick guitar solo will. 

Unless you’re Sam Aaron, that is. He’s the creator of Sonic Pi, a live coding language for making music. It’s an open source project that he built which creates music from code in real time. The world of music is taking notice: Rolling Stone described him as “transcending the present” when he performed at the same festival as Grimes.  …

 
7:14 PM
Hmmm, NVM. eSQL is only query. It doesn't support DML or DDL.
 
@Hosch250 Wasn't particularly clear: I meant that the options built into the concatenated SQL queries are based on drop-down/list box selections. There are actually no text-box-to-SQL-query transitions in the code. You select "Client A" by picking their name from the list, not by typing it in free-form.
and, what this said:
3 hours ago, by this
@Hosch250 I think he meant that to make the textbox use password masking, you set the input mask property, not format property.
 
OK.
 
that which is obvious to me is often quite confusing to others due to errors of omission
 
7:53 PM
back to OASIS weirdosity... sometimes I need to Ctrl-S once to save and then a second time to get OASIS to export updated files. i.e. I only get the "task completed" pop-up after the 2nd ctrl-s
 
yeah, i've seen that and others has.
AIUI, #BlameMicrosoft
RD has kind of similar problem with hotkeys
 
@this yes, yes it does. :/
 
:cough: Ctrl+T gets eaten :cough:
 
VBIDE: My precious!
 
of course, it doesn't help that something on my machine keeps switching window focus. I'm honestly not sure what it is, but I'm betting it's something annoying installed by corporate IT. There's some sort of application checker which is supposed to run on login, but has taken to running at 11am that will continuously steal focus, but it happens at other times of the day, too.
 
8:00 PM
you know if I could magically make a OS, I'd make one where stealing focus is straight up impossible.
You can notify all you want but you should never be able to take focus, especially when it's not yours to start with.
It's one thing for applications to demand focus within its own workflows, but for other applications or even OS(!) to barge in at any moment and shout YOU MUST DEAL WITH THIS RIGHT NOW DROP EVERYTHING AND FOCUS ON ME!.... not cool, man. Not cool.
 
Ehhh...
I'm more irked sometimes when apps don't steal focus.
I've been happily working for 30 minutes before thinking something is installing, but it's waiting for me to click something to approve before it can finish.
It shouldn't hold focus, but stealing focus is fine with me if you only do it when action needs to be taken.
 
if something needs my attention, I'm OK with it. but when I'm typing in the VBIDE and all of a sudden my Outlook window has the focus and I don't have a meeting notification or a new email or anything at all giving any reasonable indication of needing my attention, that is irritating.
 
Yeah, that is annoying. Granted, I've never had Outlook steal my focus even when I do have a new something.
 
See, taht's why a good notification system matters more than actually stealing focus.
 
@Hosch250 btdt
 
8:05 PM
Windows 10 has notifications... sort of. Leaves lot to be deserved, though.
 
They are per-app.
I kind of like the Linux notifications.
 
Windows 10 also still has the travesty that is UAC
 
@this deserves a good swat on the backside - pretty rubbish in my experience.
 
@Vogel612 Granted, that's not a pain if you don't do anything stupid.
 
I really like Mac OS X's
 
8:06 PM
but UAC isn't an actual security feature
 
I keep mine at the tightest level, and I still almost never need to be prompted with the default install settings.
 
it's fairly unobtrusive but hard to miss.
 
it's just ... busywork most of the time
 
Of course, it can be locked down tighter with group policies.
At my old workplace, we couldn't even open the task manager without an admin user (thanks SOC 2!).
 
I can't be sure this thingee is safe to run. Do you want to nod yes and pretend that it's secure?
 
8:07 PM
So, they just quietly gave all the devs an admin account on the side.
 
most people (the ones it was designed to protect) have no idea what to do with it. they'll either hit "OK" for everything because they haven't a clue, or they'll hit "no" for everything because they heard the part about "possibly bad" but not the part about "think about what you just did"
 
UCA? UAC?
 
Of course, me being me, I went into my admin account and put my main account in the admin group :D
@IvenBach User Access Control.
 
Dyslexic me is.
 
@IvenBach the "this thing modifies your system, you okay with that" prompt focus steal modal thingy
 
8:08 PM
:+1: TYVM
 
User Controls Access isn't half-wrong. Of course, it's not half-right...
 
@Vogel612 funny, there has been times where it didn't take focus.
it'd just quietly pop behind some window and just maybe the taskbar'll flash. Maybe.
 
yea, it sometimes messes that up for me as well, but the modal still is in effect
which is ... confusing the first few times it happens, to say the least
 
interesting, I see the 3 rows @IvenBach saw earlier (browser isn't full screen) - the inter-row spacing is variable...
 
that's probably because Phrancis' image isn't loaded for you and the row is not expected to break there
 
8:11 PM
and @Phrancis has managed to get a width*1.5 wide icon
 
because the alt-text is too wide in comparison, so the css layout borks
 
I see that on FreeFlow(?)s icon, too, usually. except I see some sort of graphic and then his name overlaps the next icon, so he is actually width * 1 with overlap
 
isn't borken just CSS' default state?
 
you almost owed me a new keyboard
 
You're welcome!
 
8:13 PM
Apparently there's a company called "Redbrick Health".
 
but I likes my keeboard, it wrks perfecctly!
 
@Hosch250 i f'ing hate redbrick
 
I wonder if their specialty is to "heal" you by hitting you in the head with a red brick.
@Cyril I was closer than I realized?
 
"we'll manage your companies well being" does nothing except provide links and some pre-populated bullshit "you should be exercizing!"
you'd be better using a brick to hit yourself than muddle through that shitshow
 
LOL.
 
8:15 PM
my company used them for a time then dropped it because they added close to no value and were a money pit
 
I'm annoyed by companies that do health challenges.
 
"we can host links for your other health-related sites" did you know it costs $25/mo to have a link on the site?
so 4 links $100/mo.
in addition to them hosting a site for your company
 
I probably eat healthier than most of the people, and likely exercise a good bit more than a significant chunk (except at my current company where they are a bunch of long-distance runners with trainers and all, LOL).
@Cyril Dang.... $25/mo for an anchor tag?
 
they either make bank or have no customers; we extrapolated that value from changes we'd made month to month to customize their site to our needs
 
Anyway, I don't have a fitbit or anything so I couldn't participate in the walking challenges my other company hosted.
 
8:18 PM
went up $25 in september after august only added a single link to the site. that price stayed for october, so we asked what happened and they stated that it was part of their model
 
@IvenBach What's DNA stand for? (joke)
 
@Hosch250 not health-specific related, but i'm not a big fan of mixing work/home... aside from putting my name in a box for the superbowl-squares, i don't think i've participated in much of anything
we tried "get out may" so right at the end of spring it's encouraged to get out of your area and walk around the site (we have some trails and the sort)... but yeah, fitbit tracking to participate
 
I participated just a little in some things.
 
@BigBen Deoxyribo... Oh... Do Not Assist? Commonly requested of the wife when the man's doing car repairs.
 
i did the corporate challenge because i got paid extra to participate; company sponsored practive times? sure, i'm in
 
8:20 PM
@IvenBach National Dyslexic Association.
 
@BigBen elle oh elle
 
Muahahaha.
Each year at Memorial day, we'd do a fundraiser/auction for a charity, usually something veteran related.
I bought a nice little desk globe there.
And bid on some other things I never meant to get (bidding on half of a set being sold as two pieces that someone else wanted).
 
@Hosch250 so you're a shill, eh?
 
:)
Anything to make someone else spend more money.
 
have you met my friend Guido?
 
8:24 PM
Does he have a bridge to sell?
 
no, but if you make me spend more money than necessary, he might have a conversation with you about your kneecaps...
 
need to walk through this ebcause i'm feeling like an idiot... custom class is supposed to act like a variant array; my properties are ranges, which doesn't seem right, since it wouldn't be range(cells(),cell()) but would be a loop through specific references. does that sound in any shape correct?
 
:)
 
@FreeMan i guess he must be globally unique.
 
@FreeMan How nice of him to volunteer to donate his as replacements! How'd he know mine were bad?
 
8:25 PM
unlike the rest of us peons.
 
i'm still trying to figure out how to define what type my class is... but i think i figured out how to get the properties
 
@this lol
 
Finally, Japanese exams are over. Now, I can do something else than learning again.
 
@M.Doerner went well?
 
Today was tough, but I think I will pass.
 
8:32 PM
:+1: good stuff!
 
Nice!
 
Congrats. How'd you end up studying Japanese? You don't work for the German CIA, do you?
(Just kidding on that last remark :P)
 
@Hosch250 that'd be the BND "Bundesnachrichtendienst"
 
I'll just call them the "Bunde Snatchers".
On a more serious note, I think that word is rivaling the longest words in the English dictionary.
 
pneumonoultramicroscopicsilicovolcanoconiosis - we still got it beat but I'm guessing there are longer German words
 
8:45 PM
well, since it's three words, that's just fair game
 
Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft ?
 
@BigBen bless you!
 
@Cyril that's probably fake
 
@FreeMan you mean gesundheit?
 
Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz and the previous are real words: en.wikipedia.org/wiki/Longest_words
the Don...schaft just happens to be like the 2nd longest word
in hindsight, i probably shouldn't have shortened that...
 
8:51 PM
whooops
 
@IvenBach i think it's your lunch time, but if you get a minute, have you attempted to pass an array of cells (not a variant array) to a custom class, so you can utilize sections of the range? wondering if i'm overthinking this...
 
Yes, that was some law in one of the states of Germany.
 
any example would be solid to just deconstruct and try to understand
 
@Cyril Range.Areas?
 
@Cyril What are you trying? Remember I'm just a schlub and don't actually know much.
 
8:56 PM
...in trying to type out what i wanted, just realized that would be two separate classes
 
:+1: for rubberducking.
 
i'm trying, just not doing well in the slightest with classes ='/
 
It took me far to long before they :clicked:.
 
@BigBen yeah, but I couldn't spell it
 
was trying to do something like:

dim blockArea as customClass
blockArea.Source = Range(cells(1,1),cells(2,2))
then use property Source() to break apart into other ranges
so property Description() is always cells(1,1)
then those values are input to a dstWS like
dstWS.Cells(1,1).value = blockArea.Description
then i was thinking that i can't do that because the class for source requires a property which isn't translatable (i think?)
hence my thinking it should be 2 classes
i think i'll just use a procedure rather than creating a class. may work a bit smoother for me, but will require public variables
really trying to find a use for a class so i can be forced to learn it by using it
 
That's not really a word so much as a chemical description without spaces, LOL.
The word itself is just "titin"
 
I know, but if you qualify the Dande...., then you have to qualify that, too.
 
@this they call it "Bob" for short...
 
Didn't say I did qualify that one?
@FreeMan You got the idea right. It's the protein "titin".
 
No, not you personally, but others., Cyril mentioned that word, I think. Bigen mentioned another word that was also a compound word, IINM.
 
9:11 PM
In other news, I ran my taxes last night. I'm going to wait a month to submit them in case more paperwork comes I'm not expecting, but it looks like I'm supposed to get nearly $2k back from the gov.
 
if wiki is to be trusted, Honorificabilitudinitatibus is probably the longest non-compound word in English
 
@this hard to find a non-combination word that is more than 50 char
 
@this heh, didn't Windows 3 have system-modal dialogs? Steal focus and lock out everything else until dealt with...
 
Yep. That word is only a pthy 27 characters long.
@mansellan yep. It's still there in win32 api documentation
 
like antidisestablishmentarianism is pretty long, but could be longer when compounded with other suffixes (ism just happened to work best)
 
9:14 PM
and you could just add more prefixes & suffixes, too. Like that silly 180K word linked above.
(if one can call it a word)
 
@mansellan You can still use them.
Most things don't, but you can.
 
pretty sure it's just simply ignored.
 
@Hosch250 your government thanks you for the interest free loan!
 
@FreeMan I'm getting back at them, though. I hold several bonds.
Actually, so far as that goes, I need to check the maturity date on those. I think I can cache them starting when I hit 30, or something, though.
 
9:37 PM
@MathieuGuindon @Hosch250 Sooooo as I've gone along, I've learned that Linq is expensive and Reflection is a nuclear option. Any concerns about the System.Activator class, which I just learned about?
I'm not suspicious of any new class I learn about, that one just seems like it might be worth asking you two about.
 
it's part of reflection
treat it like CreateObject: no reason to use it unless you actually need to use it
 
@Cyril when you assign the source area do you depend on the ranges ability to update? Or do you intend for the assigned value to be static once assigned?
Sometimes you just gotta Force it
I just boldly memed where no duck had gone before.
 
9:53 PM
@MathieuGuindon Thanks for this feedback! Followup question: so I'm trying to implement Hosch's suggestion to ditch reflection and use a dictionary to manage which fixes are active. So I'm going through the dictionary, and it has a list of active fix names, and I have a datatable where I can match those names to types.... but how can I new up instances of those types without Activator?
Previously, I had this:
 
need more context
 
switch (key)
    case "FixType1 Name":
        ActiveFixes.FixType1 = new FixType1;
But I was trying to scrap having a giant switch statement and use a datatable instead
 
do all branches create a new instance of something that implements a particular interface?
is there a FixType2?
 
Good Grief. After several (and a few more) days I've managed to get my VBA Advent of Code IntComputer to compile and run in Rust (well... rust.ba). And that's using Rust objects!!. My attempt in nim is still lingering .
 
Yup, there's a FixType44, and they all implement IFixReport
 
9:56 PM
so you have 40-some ActiveFixes.FixTypeXx properties???
 
Exactly
 
kill it with fire
 
Uh oh lol
 
every time you feel the need to number anything, stop and think "what data structure would be appropriate for this"?
 
I'm probably taking what you said too literally, but they all have their own names.
Not literally FixType1, FixType2
 
9:57 PM
You want ActiveFixes[1] = new FixType1();
ugh
this is why we don't review pseudo-code ;-)
 
Sorry grimaces
Sorry, to redirect to the question I was trying to ask.
 
build a Dictionary<string, Func<IFixReport>>
 
Yeah, I have a dictionary of my activefixes ready, got it.
That was me implementing Hosch's suggestion.
 
I'll have the exact same suggestion I think
 
Yup, I'm eagerly trying to follow your suggestions.
 
9:59 PM
{ "fix type 1", () => new FixType1() },
{ "fix type 2", () => new FixType2() },
...
 
Before I didn't have a dictionary of activefixes, now I do.
Oh okay, see, so maybe I'm trying to fix something that is already done optimally.
 
that dictionary is now an IFixReport factory
 
I already have a massive, 44 case switch statement just like what you made above
 
no, that's not a switch statement
that's the dictionary initialization
there's no need to switch once you have the dictionary
just get the Func<IFixReport> for the given key, done
O(1) lookup
 
Okay, great, I'm going to do homework based on what you just said. Thank you!
You lost me at that last part but I should understand it, it doesn't seem too hard.
I'll go read.
Thank you again!
 
10:02 PM
var fixReport = _fixReportFactory[key];
 
I'm reading factory classes, Func<>, and O() lookups now.
Just letting you know I saw that last thing you wrote as well.
 
oh. Func<T> is a delegate type
it represents any function that takes no arguments and returns a T
so here, we have Func<IFixReport> taking no arguments and returning an IFixReport
 
Got it, reading up on delegate types. I've only used them once before so far, I made an empty delegate to try to get my UI updating.
        private static readonly Action EmptyDelegate = delegate () { };

        public static void Refresh(this UIElement uIElement)
        {
            uIElement.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);
        }
 
eh, that will only confuse you further
but, yeah it's good to understand everything about delegate
except here it's inlined
 
I'm sure you're right though that was the only thing that I tried that made my UI update so far without ripping everything apart :)
 
10:07 PM
() => new FixType1() is the function
 
So I've been grateful to it for working.
Ah, okay, I think I understand that.
 
() => says "no arguments"
 
Got it.
 
(int foo) => says "takes an int parameter named foo"
 
Understood.
 
10:08 PM
RHS of the => lambda operator is the function body
...with an implicit return
so, () => new FixType1() is shorthand for...
 
return a new FixType1
 
private IFixReport ___anonymous___()
{
    return new FixType1();
}
yeah
 
Yup, makes sense, I am familiar with lambda expressions thankfully. I was actually using them in the massive switch statement I was trying to get rid of.
"Friendly Fix1 Name" => new Fix1;
But I was hoping by just including the fix class names in a DataTable with everything else a maintainer needs to add new fixes (friendly name, description, etc.) would be helpful as a one stop shop.
Rather than "add this to this table, then go over here to this dictionary and add this, " with like 5 steps.
So that's how I got interested in more generic methods of Activation, but it sounds like that's a bad route to go on.
 
ok makes sense
 
And that delegate types will keep things simple enough.
So maybe like 3-4 steps to add a fix rather than 1-2, but still improved over 6-8 or whatever.
 
10:13 PM
a hard-coded dictionary doesn't need a data source... it's hard-coded. now if we're saying there's a data souce somewhere, it's a different problem
 
Since it seems like delegate types still need to be individually set up rather than just typing a class name into a cell of a datatable.
 
#MovingTheGoalposts
 
Sorry nervous laugh
 
if there's a data table, it's a different problem, and a hard-coded dictionary is a bad solution for it
 
I'm describing to the best of my limited terminology over here :)
Okay, that makes sense.
So there's 40+ fixes, and users start the program and activate those they want.
So right now, I followed Hosch's suggestion to make a dictionary of those selections, I have a dictionary, and I'm trying to match those selections against the datatable of all of the fixes in order to make new instances of the selected fixes.
Which is probably dumb design because they're using the datatable to make their selections in the first place, so I think I'm going back and forth unnecessarily.
I'll rethink that.
And the reason I have like the ActiveFixes class is for intellisense reasons.
Since I can't effectively put classes in a dictionary dynamically and then access their properties/methods.
But if I have an ActiveFixes class, where it has every possible fix as a property and they all start as null, then I can create instances only for the active ones and use intellisense from there.
Like ActiveFixes.Fix3.Setup()
After doing a null check.
It's been amateur hour over here but I'm making design improvements as I learn more.
 
10:19 PM
@puzzlepiece87 did he know there was a data table involved?
or all he saw was the switch block :)
@puzzlepiece87 does ActiveFixes ever have more than 1 of the "fixes" set?
something's fishy with the design otherwise
you'd just want a single IFixReport property there, and not sure what the role of ActiveFixes is
 
@MathieuGuindon Yes, as many can be activated as are all compatible with each other. I have a compatibility table. If two fixes touch the same part of the file, they are incompatible.
 
But otherwise it's a free for all.
 
still, that kind of begs for an IFixReport.IsActive property
 
The DataTable idea is new since I talked to Hosch. I was writing up maintenance instructions and decided it was way too complicated to do the most basic maintenance activity, adding a new function.
Sure, that sounds like a good idea as well.
 
10:23 PM
IFixReport wants to know whether it's active or not :)
 
Though then I'd have to have like 40+ variables at the top of the file parsing function?
 
One for each fix, to see if it's active?
If I'm not bundling them?
 
foreach (var fix in fixes.Where(f => f.IsActive))
{
    //...
}
 
Oh got it, so basically just work with Fixes instead of making a separate ActiveFixes bundling class.
Sure, that sounds good I think.
 
10:25 PM
anyway what I mean is, if the data comes from a table, then yeah creating the corresponding instances using Activator is probably a very good idea
 
Ah good. Glad to hear I was maybe on the right path with that.
 
i.e. use reflection to get all the types in the executing assembly, that implement the IFixReport interface
 
Yeah, I'm trying to make the two steps of maintenance be:
1. Create the fix class with its methods
2. Add friendly name, description, class name, etc to this table
3. Done
Nice, that's similar to what I had then, good.
 
and how RD gets all inspections, i.e. how adding a new inspection in RD is basically just "well, implement a new inspection"
(and several other things)
 
            this.FixesReportsTable = fixesReportsTable;

            InstantiateSelectionsAsProperties(selectionsFromFixSelector);

            var properties = this.GetType().GetProperties();

            for (var i = properties.GetLowerBound(0); i <= properties.GetUpperBound(0); i++)
            {
                if (!properties[i].Name.Equals("Count") && !properties[i].Name.Equals("FixesReportsTable"))
                {
                    if (properties[i].GetValue(this) != null)
                    {
Glad I was doing it similar to RD's inspections
 
10:28 PM
uh, what's that doing??
 var fixName = ConversionMethods.GetNameFromIFixReport(properties[i].Name);
why can't that be just fixName = activeFix.Name?
 
uh oh
 
and what is this exactly?
 
this is ActiveFixes
 
that's ....not its job :)
 
@MathieuGuindon oh gosh, I'm dumb lol
Hmm well
Okay, let me get it
 
10:31 PM
I don't think you need an ActiveFixes class that's just a bunch of properties pointing to various IFixReport implementations
instead you can simply have any IEnumerable<IFixReport>
 
    public static string GetNameFromIFixReport(string iFixReportName)
    {
        return (iFixReportName) switch
        {
            "UpdateRefF8ICNs" => "Update Ref*F8 ICNs",
            "ProfClaimDiags" => "Professional Claim Diags",
            "RemoveUnwantedNewLines" => "Remove Unwanted New Lines",
It was getting the friendly name for a given class name
 
shouldn't that be in your table?
 
Yeah, I was working on scrapping this part by adding the class names to the table. You're exactly right.
 
private IFixReport CreateFixReport(DataRow row)
{
    // ...
}
 
Okay cool, that makes sense.
May we please stop there? I don't want to take too much of your time and I have a lot of homework to do already from what you've given me.
 
10:34 PM
np, was going to leave work and hit the road anyway :)
 
Thanks, have a wonderful evening! I really appreciate your occasional points in the right direction.
I'll get really familiar with delegate types and factory classes and work to make this thing better efficiently from a DataTable that maintainers can update at will.
This is going to smell a lot less when simplified.
 
 
1 hour later…
11:44 PM
 
wth is a wannabe Mug?
 
00:00 - 17:0017:00 - 00:00

« first day (2063 days earlier)      last day (1117 days later) »