« first day (1904 days earlier)      last day (220 days later) » 

2:01 PM
@this well, on the bright side it's all presentation concerns :)
> Rename a file when renaming a class
Coming soon to a VS near you :D
awesome! been a R# feature for checks notes ...10 years or so
Just one feature left that I want--initialize a field from all ctors.
write it!
I've been thinking about it, LOL.
It's a more complicated feature, and I've been too busy to even work on RD much.
I swear I don't know how you do it.
2:06 PM
do what
Find time to work on RD.
@MathieuGuindon for this particular snippet.... I don't want to look at the rest of 20 userforms.
This is a WORN code all through
Write-Once Read-Never
2:10 PM
Like a logging system?
so something im doing is legit crashing powershell
lol, no more like it's not made for readability at all
Oh, that's the data, not the code.
@23fc9a62-56de-47fb-97b4-737890 I wish... the SO community ad was never done, I haven't touched block completion since last winter (fall?), my writing is stalled (wiped a whole chapter the other day), I haven't published any articles this month and the month is coming to an end already, ...pushed that hotfix commit at 2AM last night...
yeah logging would be WORN data. The above would be WORN code.
2:13 PM
@this /@23fc9a62-56de-47fb-97b4-737890 aka code written to be executed, not maintained
I'd love to get the doc comment thing and the data-reporting thing done for RD.
OHH i figured it out...
data-reporting, ..you mean the telemetry stuff?
my script does [System.Environment]::Exit($ecode) so that the sql agent can catch it
and thats terminating the powershell instance
herpa mac derpa
2:15 PM
@KySoto LOL.
i was like WTF why am i crashing this out
at one point i had c# error code stack tracey ness popping up too
but i think it had to do with screwing up using sqlclient
2:47 PM
so yesterday i was working with the sql sclient stuff and i broke it so hard... i got cs messages in the powershell console
> We have many features, some more discoverable than others. We have memory pressure and performance issues, and only a vague intuitive idea of what's in our users' VBA projects that's based on our own individual experiences. We do have logging, and it *does* help (a lot) with debugging and diagnosis, but statistically a bug report or log file is nothing but an anecdote.

If Rubberduck had an opt-in setting to enable transparent telemetry (there's no way this is getting implemented without mak
@Duga i wonder if we already opened an issue about that before?
did we?
the word "telemetry" has 1 search result in the repo
probably just me making up stuff.
more likely conflating the prior discussion in chatroom with some non-existent issue
yeah there's been talks about it, but I never went public (not beyond this chat anyway) about telemetry talks for Rubberduck (not until this week in a Twitter reply though)
2:58 PM
@MathieuGuindon You can get a Mongo DB for free.
Low-resource, not too-high performance, but easily more than enough for what we need.
It makes it super easy to have unstructured data.
never worked with that
I have, with Amethyst.
For that matter, if we do it cloud-based, RD doesn't have to send it to the web. It could dump it directly in the DB.
I agree that non-SQL db is probably better for telemetry - we don't want to have to maintain a schema.
That said, mongo + PBI seems weak
there might be more support using Cosmos + PBI
3:07 PM
Cosmos is really expensive.
I don't see a direct connector for mongo in PBI
What's PBI, anyway?
Power BI
Well, we could use something like Highcharts, if you want to show it on the web.
It's possible, but it's slower.
They recommend doing an R layer between.
hence my concerns.
3:09 PM
Heck, my brother is interested in learning R. Maybe I could pull him in...
Yeah, makes sense.
For that matter, though, you could probably download the data to a CSV, save that from Excel, and start from there.
yeah. we could also just use SQL Azure, dump the telemetry as a single blob of XML, then drill down from there
but I feel that is lot of extra work....
I saw that but it's nto clear that it works with PBI
not familiar w/ HighChart. Is it like PBI or is it basically a JS library?
3:13 PM
Well, if (and that's a BIG if) I get around to doing it, I can always start with Mongo, and we can migrate to something else after more discussion :)
@this JS charting library.
So you'd define your charts, query the data, get the results, and that renders it.
You put the data in a table format on the page.
It's pretty nifty.
@IvenBach Yeah, your all's work on Code Explorer is fantastic. I used it even through the lack of sorting thing.
@PeterMTaylor That's was a very interesting read. I don't know what's #Right in terms of programming but learning about new ways of thinking can't be bad. Bad code can be written in any language.
@this What exactly about this code is dreadful?
3:33 PM
@IvenBach um, they didn't bother to name any of their stuff? Just took the default names auto-generated by VBA when they added their userforms & controls?
Keep in mind that is only a snippet. There are ~20 of userforms with several controls all over.
:derp: Missed the forest looking at the tree...
yeah, gonna be plenty fun mapping them all
I honestly don't know why it didn't even bother the original developer
Private Sub CheckBox1_Click()
    Me.CheckBox2.Enabled = Me.CheckBox1.Value
    Me.TextBox6.Enabled = Me.CheckBox1.Value

    If Me.CheckBox1.Value Then
        Me.TextBox6.BackColor = &H80000005
        Me.TextBox6.BackColor = &H80000004
        Me.TextBox6 = vbNullString
        Me.CheckBox2.Value = False
    End If
End Sub
^ :offers-token-help: Maybe this can help ease your pain.
@23fc9a62-56de-47fb-97b4-737890 Is that one of the Coke Koch brothers?
Yeah, the toilet-paper one.
Charlie is the oil one.
No knowledge of either of them out of the fact they have money and upset people when the use it in ways people don't like.
3:48 PM
Meh, I upset people when I use my money in a way they don't like too.
Usually, it's not on that large of a scale, though.
I bet there's many a banker losing sleep at night since I don't have a mortgage loan yet :P
4:37 PM
Yay! The newtwork finally let me DL a prerelease again!
OS: Microsoft Windows NT 10.0.15063.0, x64
Host Product: Microsoft Office 2016 x64
Host Version: 16.0.4873.1000
Host Executable: MSACCESS.EXE
@FreeMan no, that's not a typo
Any ideas why this is getting picked up by the ToDo Explorer?
derp - Ignore...
okey doke.
I added that in the hopes of finding all the @Ignore annotations so it would be easy to pull them as things got fixed...
I'm an idiot
^ I felt left out...
4:52 PM
@FreeMan It got turned into a newt?
But got better again?
@FreeMan Does that make you feel better?
@FreeMan lol
Yeah, pretty much. Wouldn't let me connect to GH's AWS repository to DL the latest builds, but I could see the cute picture of the pointer...
@23fc9a62-56de-47fb-97b4-737890 indeed it does, especially since that got stickied.
carp. I just did this:
$ git checkout SatSummary.frm
Updated 1 path from the index
when I mean to do a git checkout -- SatSummary.frm
What did I do and can I safely undo it?
@FreeMan It checks out just that one file.
that file is no longer showing in the Modified section of a git status. Does that mean I've overwritten whatever changes it saw in that file with whatever was previously committed?
5:01 PM
very comforting.
5:21 PM
Just asked my mom to pick up some cash for me, and found my bank account was $100 too high.
I just remembered the Visa site was down and I couldn't pay my card off on the 15th (I pay twice monthly, when I get my paycheck).
one of those "good news, bad news" kinda situations...
I don't think there'll be a charge, since I pay it off in full every 15 days.
So this'll be about a 20-23 day run.
you'll be fine.
Yep, no worries.
I'd guess they send you a "guess what?? We raised your credit limit! OMG!! Squeeee!!!!" letter about every 6 months.
5:29 PM
Either way, I'll make up for it sooner or later with the points system :D
worst case, you'll be fined
They're trying to give you enough rope to hang yourself.
@FreeMan I'm nowhere near the limit.
I have a 2k limit so I can buy computers every few years.
I usually run up less than 500/month, and most of that is my car insurance.
5:30 PM
They'll keep trying to raise it to draw you into spending more than you can pay off. Interest - it's how they make money
the grace period is normally 21 days, so if your balance is $0 by the 21st day after a purchase, you're good.
Good on ya' for keeping within your budget!
otherwise, $100 won't be a huge amount in interest anyway :)
(or even $2K, for that matter)
What it says: Your credit limit has been increased based on your payment history.
What they mean: You're not letting us screw you over with interest payments.
5:31 PM
For a long time, I ran it at 1k limit, but computers are about 1.5k for a cheap top-of-the-line one.
hmm aside from AMD there hasnt been a good nuff upgrade to parts that's worth the money to buy it
performance increases just arent enough at this point in time
if i got lag or something
that was CPU based, yeah maybe
compared to what I've got sitting on my desk at home? Just about anything on the market these days would be an upgrade.
oh i meant for my system
AMD Athlon X3 <--- oooooooold
im running a 6th gen i7
32 gigs 3.2ghz ram
5:35 PM
got ya' beat by at least a couple of years
oh i wasnt complaining, i was saying i dont see any reason to upgrade
@FreeMan could be worse. Suppose you were running a 286?
ha! that wouldn't be running, that would be walking...
man I remember when we got the first 386 in at work. Just watching how fast the results of Dir would scroll by...
re telemetry: We should be able to to something useful with the data we get, so things like usage-statistics are probably okay, SLL prediction failures aren't really actionable...
always have to look at the brighter side of the life!
5:39 PM
code metrics are irrelevant for us, considering we don't currently check the halstead volume, so the complexity of the parsed code is basically a black box
don't we need to know how much SLL failures we get to justify the extra investment in grammar, though?
CC, Nesting and so on are not relevant for us, except maybe to justify an EM refactoring (which we want to have anyways)
LoC could be useful to put a number to parsing times
that's also the only thing where counting SLL failures would make sense (namely to understand the performance implications)
I consider references and non-usercode member invocations highly invasive
Also I want to submit the idea of associating the telemetry to a GUID generated on installation (and easily resettable by the user)
that would also allow us to guesstimate at the number of people using RD
and yet, AC & SCP are both enabled...
My ideas were just to report counts of each type of inspection result and usage of refactorings.
We could also report counts of annotations used.
5:45 PM
I see nothing in the log indicating any sort of SCP action, should there be?
on that note... if we want telemetry, we'll need an actual privacy policy and legalese stuff around that
@MathieuGuindon ^^
Agreed, but to start I don't plan on anything that we couldn't actually make public without the identifying id.
@Vogel612 Might be able to get that from EFF or from a GPL/MIT/Apache/whatever license
finally let me submit the idea of using a time-series database to store the telemetry information
5:46 PM
We could also report inspection times easily.
Something like { Name, Results, Time }
@FreeMan EFF and possibly FSF
licenses are usually not involved there
We could run an ad inviting lawyers to help :D
yeah, sumpin' like that... not in my wheelhouse
@23fc9a62-56de-47fb-97b4-737890 ummmm......
We could also track settings configurations.
Anyway, BBL.
@23fc9a62-56de-47fb-97b4-737890 FWIW, I think it might be also interesting to track the time of refactor followed by an undo. that might be helpful in indicating that a refactoring (or any action) isn't what user wanted
5:50 PM
@this we'd need to hook into the undo of the VBE then
and remember that rewrite-undoing is two undos
I thought we already did
and yes
it'd have to be naive, though - no sense in trying to track if it's refactor + type something + 3 undos to count.
only refactor immediately followed by 2 undos... similar in idea to Google's .... "bounceback" (?) metric
(the metric where they see that an user pressed the back button after clicking a search result which then lowers the search result on the assumption that it wasn't what the user wanted)
If I was a browser, I'd not report the back-click event. Only malicious sites use it anyway.
To prevent you from leaving. The others all have go-back buttons on the page for things like searches.
I don't think Google uses browser for that
I'm not sure how they do it actually
But they sure do know.
Probably how quickly a page is visited by the IP.
or tracking cookie
which is obviously creepy, but hopefully simply tracking the usage of various features followed by an undo is not as creepy.
6:04 PM
@Vogel612 granted (to an extent), but it wouldn't be collected without an explicit consent.. basically everything would be opt-in. this data could be used for prioritizing work on an eventual TypeScript transpiler, for example; metrics could be used to objectively measure the quality of VBA code - and a time-series could be used to measure whether using Rubberduck actually improves VBA code quality.
What's this red square for in a git diff output?
is that there to indicate that Ive entered a blank line?
a tab was replaced with spaces?
^could be...
spaces were replaces with a tab?
6:05 PM
I am hitting <tab> in the VBE, but I get <space>
actually, <space><space>
that would be it
but it only seems to be on otherwise blank lines.
that red square is definitely 2 spaces wide
makes sense
finally curious enough to ask.
@MathieuGuindon thoughts on the SCP issue above?
22 mins ago, by FreeMan
user image
need more info that a screenshot
6:08 PM
I typed the " and didn't get a closing quote...
I double checked settings - it's enabled.
I disabled and re-enabled, then retyped and still zilch
nothing mentioned in the log...
I'm running latest
^ cause I know how meaningful that is...
well SCP hasn't seen a commit in 4 months
and it had been working quite well.
and no repro
maybe if I close & reopen Access....
might be something wrong with hooking
we had a old bug where SC wasn't working if the code pane was already open when it got enabled which wsa resolved.
6:17 PM
darn hookers...
Yeah, I remember the bad old days of that issue. It was working earlier this week.
7 mins ago, by FreeMan
maybe if I close & reopen Access....
yeah that'd be a good way to determine if it's something to do with the hooker floozing out
when in doubt, blame the hooker
If I need an enum and a Property of that type on 2 of 3 Implementations of an interface, does it make the most sense to put it on the Interface, or individually only on the Implementations that it applies to?
I would think on the Interface then the one (and future ones) that don't need it would just return Null for that property, right?
I like putting the enum in the interface class
(for some VBA value of Null)
6:25 PM
you add an Unknown as an item to the enum?
yeah, with a value of 0
fair enough.
that said, if an implementation of an interface "doesn't need" one or more members of that interface, the abstraction is likely off
Yeah, always make the default value 0.
If there is no default, then you use an unknown.
6:29 PM
but yeah, defining an enum on the interface makes the most sense to me - if there are no implementations, the enum is right there in the module it's used in. When there are implementations, the enum is readily accessible.
@MathieuGuindon I was busy adding the enum and all the appropriate implementations while you were debating that. Glad the answer came out the same! :)
it really bugs me that they have no problem with using enum everywhere but UDT? extra pain
7:02 PM
Is there a difference between an Isolation Framework and a Mocking Framework or are they synonyms?
never heard "isolation framework"
A: Difference between Isolation Framework and Mock Framework

AkimQuite often those two terms used interchangeably, but there is an important difference. In my opinion, there is a similar difference as between stubs and mocks. Stub i.e. Isolation Framework only provides predefined outputs, and thus isolates "test" from external system with complex internal stat...

feh. sounds like more buzzwords
Mocks, Stub, Fake, Isolation, Hurly durly, Jeebies-Heebies, Doodles.... they all are the same.
Sometime I think people make up new words just to be more "buzzy" than others.
"hey, I'm making a recapitulation revolution framework!" "ooo, what's that?" hooked
pretty much
7:50 PM
does anyone know an easy way to determine if a Excel pivottable has any data?
it's a part of Excel automation and we found that if we keep going, it can crash so we need to avoid that
PivotCache.RecordCount looks like a good candidate
8:26 PM
so, apparently, sending an email notification to helpdesk/JIRA from a Windows service for each record that fails to update isn't a good idea
resumes cancelling 47 JIRA tickets
gosh I hate JIRA
I recall there were some ways to do bulk changes to status...
yeah.... can't find it
glad I passed up on JIRA when someone suggested it to me
next step: amend email notifier to cache notifications instead of shooting them immediately.
@this it's like a GitHub issue tracker but with so much Javascript everything takes forever to just freakin' load
JIRA is a dream compared to Helix.
8:34 PM
yeah, the guy who suggested to me wanted it becuase it had everything in one place
Most of IT at my company is trying to get us to switch to JIRA.
but it sure felt too "Enterprise-y" that it scared me off
we used to use FogBugz but we have since moved to monday.com. Loving it
I'm having so much fun watching buttons show up and not react to a click, only to resize and move after a whole 2 seconds
at least the menu does eventually show up
aaand done
and here's to never doing that again:
    public interface INotifierService
        /// <summary>
        /// Enqueues a notification message (does not immediately send email notification).
        /// </summary>
        void Enqueue(string message, string category = null);

        /// <summary>
        /// Sends all queued notifications. No-op if no messages are queued.
        /// </summary>
        /// <returns>Returns true if successful, false otherwise.</returns>
        bool Notify();
8:53 PM
A: Who was president of the USA?

Engineer ToastExcel, 1243 1206 1180 bytes -37 bytes by subtracting from all the dates -26 bytes by by fiddling with the subtraction values =CHOOSE(MATCH(A1-65^4,{39805,119679,159679,239679,319679,399679,439679,519679,559679,559779,599679,639679,650084,679679,719679,759679,799790,839679,919679,959679,960294,9...

An Excel answer to a code golf question.
I question the notion of writing smallest code possible -- Excel might be able to do that but you're talking about installing a gigantic product just to run a small program, in comparison to other languages that can compile to a small executable.
Also, I noticed that there's more answers using some kind of esotoric programming languages.
yeah they ...wrote languages specifically for golfing. go figure.
feels kind of wrong.
it's all kinds of wrong
9:07 PM
the literal antithesis of Code Review
I can see golfing with say, APL
but those weird languages that exists only to make code shorter? hmmmm.
yeah, as if BrainFuck wasn't enough :)
For example, there is Pyth.
Which is literally a shortened Python.
And lots and lots of others.
could be Pythoff though
I notice there's not a C# answer yet.
I should write one.
I need rep there for bounties anyway.
They have some insanely awesome stuff crop up periodically.
9:11 PM
yay, got the answer I needed for mocking the indexed property
A: Sing Happy Birthday to your favourite programming language

Taylor ScottVBA, 58 Bytes Anonymous VBE immediate window function that takes no input and makes VBA sing its own happy birthday song, alone. h="Happy Birthday ":t="to You":?h;t:?h;t:?h"Dear VBA":?h;t

A: Sing Happy Birthday to your favourite programming language

Taylor ScottExcel VBA, 687 686 686 681 Bytes From the problem statement: However, I'm also rewarding other witty submissions with up-votes (and I encourage everybody to do so as well). Therefore although this is a code-golf contest, not-so-short answers are also welcome. Code Full subroutine that ...

Another nice one.
9:13 PM
I reject it on the basis that the author called it "Excel VBA"
No, literally, it's Excel + VBA.
He toggles Excel cells to make Excel say it.
he should have said Excel and VBA. ;-)
it's full of square brackets... Excel is doing all the work
ok this is cool
Q: Make a circle illusion animation

swishYour job is to animate this circle illusion. It looks like the points rotating inside of the circle, but they are actually just moving in straight lines. Criterias The result has to be animated. The way you do the animation is irrelevant, it can generate a .gif, it can draw to a window, some...

9:33 PM
9:54 PM
10:31 PM
When we collect the expressions for which the reolution failed, we are only interested in the first one making the resolution fail, right?
E.g. in foo.NotThere in foo.NotThere.Neither.Hello(15).
11:05 PM
@M.Doerner arguably there's inspectable value in knowing that there's 3 chained member calls
Yes but we wouldn't want 3 results, though.
So many synonyms for unit testing stuff. Why can there not just be one standard -.-
Yeah on second thought I guess we don't need the resolver to know
I am currently completely rewriting how we collect the unresolved contexts, which we require for the MemberNotOnInterfaceInspection.
The current method has sooo many holes.
Given that we can't resolve any further, even if the it's only one intermediate that's invalid, I don't see any point in resolving beyond the first failure, and thereafter treating the remainder as single expression of unknown nature
that is, we'd have a unresolved declaration of NotThere.Neither.Hello(15), rather than just NotThere
Does that make sense to do so?
11:22 PM
I would still just collect the NotThere beacuse that is the thing we don't recognize.
Whatever comes after it is irrelevant for inspections.
That is true. What about status, though? Not sure how it would be represented there
Just because the reolution failed, does not mean that we get a resolver error.
The only reason we collect unresolved contexts at all, atm, is the MemberNotOnInterfaceInspection.
I know but my question is about the status - I don't remember what happens when the user click on the Hello, what will be displayed on the status?
if it shows NotThere, that would look weird.
Oh, you mean the command bar.
yes, sorry
11:27 PM
It shows the module.
There is no reference.
I was thinking it should show the entire unresolved expression so that the user understand that this is an unresolved expression.
if it shows the module, that is not most intuitive, I think.
If it is unresolved, we do not create references, which is what is used to get the selected declaration.
I see.
It always shows the module you are in, when nothing we recognize is selected.
@this what if foo.NotThere.Neither is LHS of an assignment, wouldn't we want to know that the assignment target is Neither and not foo? I can see that causing issues / false positives in some contexts
11:34 PM
Good question. I'll defer to Max.
But that has nothing to do with the selected unresolved contexts.
Those are only collected for the sake of inspections.
Neither will just be a failed resolution, as well.
Actually, it will just forward the one from NotThere.
We never create references for failed resolutions.
So, no assignment can ever point to one.
Ok, here we go. Let's see if I can get over the indexed property hurdle...
