« first day (2574 days earlier)      last day (606 days later) » 

12:02 AM
REFRESH!
[rubberduck-vba/Rubberduck] {issues=1, issue_comments=6}
 
12:46 AM
@HackSlash a missing Set keyword for an object of a type without a default member, is compatible with this behavior.
...otherwise I'd need to see the code =)
 
 
1 hour later…
2:09 AM
 
 
11 hours later…
1:14 PM
Wow... so this is what my office looks like...
Mostly a mess because we're consolidating cubes and someone partially moved me...
 
 
2 hours later…
3:28 PM
Thanks @MathieuGuindon! It was the end of the day and I was quite baffled by something that appeared simple and clear. The bloody Set strikes again.
 
3:56 PM
Duck check: Is there a quick way to find where a volatile function is used?
I can Ctrl+F for the names but that leaves out Names (named ranges) and other's I'm probably missing.
 
Using RD, right click the function name and select "Rubberduck > Find all references ..."
Is that what you are looking for?
Or are you talking about Excel named ranges?
 
Apologies. There are code modules as it is a *.xlsx file.
This is strictly dealing with formulas.
Right now its a "mumble mumble wtf?". I'm the only one that is prompted to save changes on closing, when none are made.
 
4:10 PM
Weird. I can't find any reason why it's prompting to save. No volatile functions in cells, nor in any Names.
 
4:23 PM
Maybe a hack, but you could save a copy, then use the Inquire add-in to compare the old file version to the copy and see what changed.
Inquire comes pre-installed with Excel.
 
@IvenBach I've found that Excel prompts to save if all you've done is change the current cell. Heaven help you if you switch worksheets!
 
4:56 PM
Inquire requires Professional Plus. That's above my Standard installation.
 
I agree with FreeMan here. If you click on anything it will prompt to save. Change current cell or look at a different sheet. It remembers your position.
 
Heck, just look at it crosswise and it may prompt you to save...
I guess over prompting is better than not prompting often enough & risking losing things, but it really does make you sit back and say "woah! Did I actually change anything??"
 
Opening the workbook and immediately closing it is prompting for a save. ¿Why? Butterfly cosmic rays is my guess.
 
I often have 5+ workbooks open at once and remembering if I did actually change something in one of them... I often end up clicking "No" on all or "Yes" on all without thinking.
 
@IvenBach there's an Excel MVP that made an enhanced name manager add-in that could (not sure) be useful for that
 
5:10 PM
JKP's name manager?
 
think so yeah
 
That add-in is one I've made much use of.
@MathieuGuindon Oh. Forgot to ask. How's WFH Mr. official developer?
 
5:27 PM
I just read an article called "Object-Oriented Programming is The Biggest Mistake of Computer Science"
and I had a little chuckle to myself as I'm OOPing some VBA. I'll try not to Oops the OOP.
 
@HackSlash Don't worry. In 5-10 years, there'll be an article "Functional Programming is The Biggest Mistake of Computer Science"
but the world will relentlessly move on as it has.
 
lol
 
5:39 PM
@HackSlash link? I think I've seen this recently...
 
It's recommended to avoid _ (underscore) in VBA procedure names, right? Because it can negatively impact implementations of interfaces right?
 
Correct
 
There doesn't appear to be an inspection for that - is it worth it?
 
hmm thought there was. There isn't even an issue?
 
He wonders, looking at cow orker's code full of My_Function_Name
 
6:06 PM
It gets messy with event handlers because they are keywords at that point
e.g. _Click or _Load
 
Yeah, took a sec to realize some of them were event handlers, but there were plenty of underscores in other parts of the proc name.
 
DoSomethingOnLoad is fine but Do_Something_On_Load looks like an event handler
 
That's what happens when you code by default.
Wow VS2022 preview 1 is now available.
he notes, installing vs2019 on his shiny new work laptop
 
2019 already includes some bullshit cloud sharing nonsense that seems to threaten the sanctity of your IDE. I am scared that 2022 will be more "cloud IDE".
 
Of course it will. The more they can get hosted on their servers, the more control they have.
 
6:20 PM
They want to ship all of your code to Microsoft servers so they can do all the Intellisense in the cloud. For your own good
 
yup
 
Not because they are collecting all the code in the world through Github and Visual Studio. Why would they do that? What could they possibly gain?
(All your base are belong to us)
 
Shhh.... don't peek behind the curtain
 
Your team can use this Private github server to hold all your secrets. Trust me.
It should be noted for generations to come that Windows is actually a bunch of stolen code strapped together with duct tape and legal contracts.
Sold to Microsoft by someone who didn't write it
Now they own it
 
You say this as though they hadn't set the precedent with DOS...
 
6:24 PM
That's where the tradition began. That's what I'm saying. Teach the children.
I love listening to Dave Plumber. He saw it first hand
 
oh you're being silly. Has Big Bill ever led us astray with his benevolent and loving guiding hand? He liberated us from those nasty people in Sun and those radical penugin heads.
Maybe you should pay room 101 a visit.
 
Those radical penguin heads weren't around when Uncle Bill started...
 
They were in Berkeley writing UNIX for MA Bell
That's why they were mad when it went closed source. They lost ownership because they were college kids
The History of the Berkeley Software Distribution begins in the 1970s. == 1BSD (PDP-11) == The earliest distributions of Unix from Bell Labs in the 1970s included the source code to the operating system, allowing researchers at universities to modify and extend Unix. The operating system arrived at Berkeley in 1974, at the request of computer science professor Bob Fabry who had been on the program committee for the Symposium on Operating Systems Principles where Unix was first presented. A PDP-11/45 was bought to run the system, but for budgetary reasons, this machine was shared with the ...
 
They were radical BSD heads, not penguin heads...
 
Yeah, and GNU came first
Penguins came from some mix of BSD deamons, GNU yaks, and Linus with his Penguin.
 
7:05 PM
@HackSlash Just googled and read that. I think there are several flaws in their logic. Passing everything by reference doesn't mean that everything becomes a "big blob of global state". The article dismisses encapsulation as worthless, but it's the very means by which state is controlled.
Also, many of the arguments simply don't apply to C# to the same extent as they would to Java. C# has great support for immutables, I make any and every type I can immutable.
Overall the article comes across as FP zealotry IMO
@BigBen I'm assuming its this
 
@mansellan Kindly keep your grubby paws out of my mouth.
3
 
7:36 PM
@mansellan, yeah I think the moral is that you can write spaghetti code in any language using modern frameworks.
I'm sure I could write spaghetti code in F# if you forced me to write something right now
 
Besides, I wouldn't be surprised if the title is that just to generate clicks
 
Spaghetti.Factory.GetPasta
Advertisement.Factory.GetClicks
 
8:31 PM
 
 
1 hour later…
9:40 PM
@feeds Either:
 A) a US map as drawn by a 2021 high school or college graduate, or
 B) a US map drawn by someone who was scrolling around google maps and said, "Wait, there's a Brooklyn, IA???"
BTW, he missed Paris & Moscow, ID...
@HoverText: Except when it is.
 
It's like all these places were named by a small handful of wealthy landowners...
 
Am I missing something? This is a C# lesson on inheritance and it has this picture.
Why doesn't it show Vehicle() being implemented in the two derived classes?
That's the constructor... If I create a new Sedan object, do both Sedan() and Vehicle() execute? If so, in which order?
 
@FreeMan Yes. First Vehicle(), then Sedan().
 
huh... Guess that makes sense. Not inherently obvious based on the picture. (pun only slightly intended...)
So a class hierarchy of: Machine -> Vehicle -> Truck -> Pickup would execute 4 constructors for every new Pickup built. (assuming they all have non-empty constructors)
Got it.
 
10:33 PM
public, private, protected are "access modifiers", right? (i.e. that's the correct term?)
What are abstract, virtual, override called? (i.e. what's the right term for those?)
Are they also access modifiers?
 
Inheritance Modifiers
 
ah, gotcha.
 
The ordering of topics in this particular online training I'm going through strikes me as a bit odd, but it seems to be really sinking in better than the last time I tried to get started. I almost feel like I could open up the Duck's belly and have a clue what I was looking at.
@HackSlash didja link to the VB docs intentionally? I'm working through a C# tutorial...
They're probably basically the same thing, though, I'd imagine
 
10:56 PM
@FreeMan There are two main gotchas regarding the order constructors execute in.
Since the base constructor executes before the derived one, it might not be safe to call a virtual or abstract method in the constructor.
The necessary infrastructure might not be there at that time because the derived constructor has not been executed yet.
The second gotcha is that property initializers execute first. So, you cannot rely on anything having been arranged by any constructor in those.
 
@M.Doerner thank you! I'm copy/pasting that verbatim into my notes.
looking through the C# inheritance page on MSDN, it makes reference to System.IEquatable<T>. I know I haven't gotten there yet in this training, but I've seen lots of references posted here with <something>. What does that angle bracket notation mean on an interface?
 
11:13 PM
That's the Type
It means that the interface can work on multiple types
EXAMPLE: IEnumerable<string> is a list of strings
For System.IEquatable<T> only equatable types can be called out, like IEquatable<int> because int can be checked for equality with another int
T = Type of variable
 
It provides a guarantee for the Type T that the item contains.
AIUI ArrayList is the non generic predecessor to List<T>.
@FreeMan Keep at it. If I can be learned this stuff you can too.
 
11:47 PM
[rubberduck-vba/Rubberduck]: 1363 stars vs. [decalage2/oletools]: 1617 stars
 
So IEquatable<T> is an interface for equating variables of type <T>, where T is simply a place holder for "some type or another". Unless, of course, you've actually defined a class T, which would be somewhat foolish and exceedingly confusing.
cool. thanks for the mini lesson. I'm sure I'll get more into it in the next few days.
 
@FreeMan The example in the docs docs.microsoft.com/en-us/dotnet/api/… may help with comprehension.
 

« first day (2574 days earlier)      last day (606 days later) »