« first day (2513 days earlier)      last day (55 days later) » 
00:00 - 13:0013:00 - 00:00

1:17 PM
@Hosch250 seriously, nice to have you back, even if you're not able to contribute to RD these days.
@M.Doerner yep, that's why I've now activated my license... no way I was doing that manually 😄
@M.Doerner doesn't work for skipped arguments, which prompted this update in the first place
@SonGokussj4 it's a loop which makes it quite hard to see what "the end" is, but I'll run a profiler and see if there's any bottleneck I can do something about. Notice the top bar changing? It's adjusting its content based on the selection in the editor.
@SonGokussj4 go to settings and uncheck "enable auto-completion features" if it's checked
1 hour later…
2:45 PM
If we were doing it Apple's way, we'd be charging an extra $499 for the Unit Tests feature. And it wouldn't be open-source, only Ducky-Approved fixes would be possible (assuming you'd bought Ducky Care).
^ the epitome of The Apple Way™
@FreeMan now, if we could only get Comintern out of hibernation, we'd have the whole band back together
@mansellan Upgrade to Rubberduck Enterprise Edition today!
3:11 PM
@MathieuGuindon y3ll0wRa1n - the ultimate jailbreak for Rubberduck 2.5.1!
3:29 PM
@feeds "Do I know you?" That's how I've felt for the past year with the stoopid masks.
@Feeds Hey remember when that's what you did? Just show up at peoples houses unannounced? I wouldn't try to find a payphone just so I can call the landline and hope someone picks up. It's easier just to show up and knock on the door.
3:43 PM
ain't that the truth! And the question "where are you?" was meaningless when calling someone.
4:04 PM
@this you around? I'm trying to add a "use legacy workload initial configuration" installer option and I think everything is there... except the actual procedure CopyLegacyWorloadConfig() implementation... however looking here it appears this approach is doomed and it should be under [external] (but then can it be conditional?) ...I think I'm confused
4:19 PM
nvm this should be what I need
@M.Doerner I never noticed that before. ¿A default setting? Another item on my ToDo list...
1 hour later…
5:30 PM
@MathieuGuindon AutoComplete is off. Didn't need the function for now. Too much quirks. :-)
@MathieuGuindon I've just started opened Excel and recorded a new gif. When I'm showing clicking and moving with arrows before parsing and after parsing.
I've waited at the end a bit so it won't reset too soon.
nice, much clearer indeed!
however, expecting pre-parse and post-parse performance to be similar is not fair
or is it
merely updating the commandbar caption is a perf hit
never mind everything involved in putting that caption together
memory profile isn't the same at all pre- and post-
so, I see a small lag, which shouldn't interfere much when working normally
I mean I too wish it were smoother, but memory pressure and general performance has been a known issue for years, and we're very up-front about it
5:49 PM
Just seen Mike Wolfe's (nolongerset) slides from his presentation at Access DevCon today - looks like it would have been a fun talk! I lol'd at the penultimate slide!
yeah pretty good
6:05 PM
Small lag? When I was clicking on those windows, it took around 10 seconds to catch up. And when I halted right arrow, it froze for 5 seconds near the end. That's not exactly "a small lag" there.

Your response gave me an idea. Would it be possible/doable/clever/... to wait a little bit before it runs everything on background? Like... I chaotically click on those two windows for a 5 seconds, finally letting the cursor, waiting, for example, 0.5s (modify-able in settings) and **then** the parser would start?
I think that when I hold an arror to go through the line, the parser starts on every character. Well, it almost seems that way.
I don't kid you that I'm postponing to click on the first Parse as long as I can and often just unload RD or existing Excel and reopen it again to be faster.
how many modules are we looking at?
and referenced libraries?
my benchmark is the battleship project :)
that said the MVVM proof-of-concept is well over 100 modules
yet still workable
Ref libs:
small ones, good
6:12 PM
57 modules? I counted forms too.
Some are really small, some are reaaaally complex
if you maximize a code pane and frantically click everywhere do you get the same kind of lag? I suspect not
there's a lot of very complex things that happen when a new window is activated
many that have to happen on the main / UI thread
It's 5 years of work from "what is a code?" through "I know bash! I know Python! Vba is not so bad" to "I know classes! Databases, MVC dotnet model, I read 100 articles on vba" so...
There are really stupid parts and there are more normal parts.
Stupid I mean Class with 1000 lines of code where the "fill the values" function has 400 lines...
avoiding implicit late binding, using more and smaller specialized modules with fewer responsibilities, avoiding bang operators, and many other little things can really help boost parser/resolver performance
When I start "circling" with the mouse, I'm waiting
everything seems a lot more responsive though
6:19 PM
Yes. This would be totally fine to work with.
But I'm working with many files at one a lot of times. In other editors (vscode) there are tabs so no problem to have maximized code panes. But VBE is horrible with this.
that's AvalonMentions++ :)
I'l record a last thing. Just pressing UP then DOWN 10-times to move the cursor up and down the lines.
the plan was always to end up with exactly this by Rubberduck 3.0
@SonGokussj4 yeah I think both the lag in the other gif and the up/down keys are related; there's a hot execution path there to keep the commandbar updated
I need to profile that and optimize things a bit there, but it's a little bit like switching windows (but very much less intense lol)
the expectation is that you'd click somewhere and then scroll or something
6:28 PM
@MathieuGuindon :-D Ah... I'm coding with my keyboard. Trying to minimize the mouse as much as I can ;-) I have even autohotkeys to move faster in certain ways. And I know, you were talking about Awalon like 2 years ago already :-) Seemed too good to be true :-)
Come to think about it, much of the processing could go to a cancellable background task
If you want, I can send you this project so you have a "Is it possible to work with parsed rubberduck" challenge / benchmark. I would love to use RD but at this time it's really hard :-) I don't frantically click and move as on the videos of course. But there are (very often) times I just need to wait 10-15 seconds because it's frozen hard.
> Adds a new wizard page to the installer with a checkbox to optionally seed %appdata%\Rubberduck\rubberduck.config with a default configuration file that disables a number of features and inspections, documented in a readme.md file.
^ this should help too
6:45 PM
1) Late bindings you mean like CreateObject("....") and not As Scription.Dictionary. Right?
2) more and smaller modules. So if I have 10 000 lines of code in 1 module, it's better to have 10x 1000 lines of code in 10 modules?
3) Bang operators? (after using google) oh, I don't do that. Uff.. :-)
1) not only that, but also any member calls chained to a `Variant` or `Object`, they're only bound at run-time and Rubberduck can't resolve them.
2) that's correct! that way each parse run has fewer tokens to process (the smallest thing Rubberduck parses is a whole module).
3) bang operators (e.g. `rs!FieldName`) fail the faster parser mode, which then re-starts the parsing with a slower but much more accurate mode. and then, they're doubly late-bound calls and Rubberduck will still resolve them (and then offer a quick-fix to expand them to early-bound explicit member calls)
Besides for arrays, I'm trying to not to "As Variant" so the late bindings and bang operators are not the problem. Will try to optimize sizes of my modules.
Will report the results. If it doesn't help, offer to send it to you still stands.
Oh and ad 2): What about comments? If I have 200 lines of commented code, does it do anything? Or it's not but it's increasing parsing time because the module is 200 lines bigger than it needs to be.
[rubberduck-vba/Rubberduck] build for commit 244f6b51 on unknown branch: AppVeyor build failed
@SonGokussj4 comments are pretty quick to parse
the only time rubberduck looks at comments more closely is to check whether there's any annotations in there (and that happens in the parser IINM)
7:01 PM
Ok. So there si no sizable performance degradation because I have 6000 lines of commented code. Is it? :-D
(jverner@Merlin) - (/mnt/c/Users/jverner/Desktop/Matigue/vbaModules) [redoing-forms] $ grep -rin . -e "'" | wc -l
for some values of sizeable
TFW you spend more time writing tests than actual code :-( Still, it's worth it here, this code will be used by my entire team.
I don't think that's going to work correctly, because it also counts \'
Yes I now. So around 5000 lines of comments. That's the point. I have a lot of 'Maybe I can use these 300 lines of codes in the future' places in my modules.
That's... many comments.
7:04 PM
mumble mumble version control mumble
I'm pretty ruthless about deleting rather than commenting
:D Mumble mumble 5-year project - when I started I didn't know what is git, python, c# and for 3 year even a "class". There is a lot of trash code and stuff that shouldn't be there.
Gotta pay the debt sometime. Or at least keep up with the interest payments!
Me too within my normal asp.core / python / bash projects. This vba project is a very, very big exception.
7:18 PM
> Also adjusts some English resources slightly for consistency and because I am a pedantic mathematician.

I am very open to any suggestions to improve the translations.
Taking the time to understand VC and more features of Git is paying dividends.
@SonGokussj4 manning.com/books/learn-git-in-a-month-of-lunches is well worth the time to read. I Highly advocate it.
Wow an online readable book. Thanks, will go through it. I'm using git a few years now. Started at a company I work in, there was no version control of anything...
After I created a command-line bash application that would do something like version control I found out, there are stuff like SVN and GIT... :-D I was inventing a wheel there....
Now we have local Gitea server running in docker and I force anyone who codes to use it and fill readme.md :-) They do everything on master. I'm the only one using branches. But I don't know anything about cherry-picking and more advanced stuff so will read the resource for sure. Thanks again for the recommend. :-)
7:33 PM
@SonGokussj4 git-cherry-pick is simpler than you may think.
I've yet to find anything I've needed to do that I couldn't do with TGit. I'm sure there are things, maybe I don't know what I'm missing.
[rubberduck-vba/Rubberduck] build for commit a142e4c9 on unknown branch: AppVeyor build failed
Cherry picks, rebase, and reset cover most of the "unusual" stuff I need to do though, and they're all well catered for.
Reset is unusual? I'm resetting all the time :-D Those other two I know only by name, not what are used for.
I mean remote reset though - "oops, I shouldn't have pushed that". Can be a very bad idea if you don't know for sure that nobody has pulled it yet.
7:39 PM
@mansellan meh, it's just forcepushing
I see. What I read, that's a big NO NO so I don't ever do that.
it is a no-no unless you know what you're doing
and even then you usually want to avoid it
@Vogel612 Yeah but if people have pulled it, and then push it back... Ungoodness.
forcepushing if it's only you who works on that project. Or there's no way anyone could pull the mistake.
@mansellan you always have that problem when pushing...
7:41 PM
Or your team is small enough that you can just ask.
For me, its usually within seconds of the bad push. The facepalm moment...
yay for git push [remote] [local-commit-ish]:[remote-ref]
That I do not know about.
IIUC, that's one of the advantages of Git over Mecurial. Git lets you rewrite mistakes, Hg is less inclined to let you.
Is Mercurial still a thing? Feels like that war is over...
Mercurial is as much a thing as SVN, I think
Then there's fossil.
@MathieuGuindon Mat, a thought. Is there a "table/stats" to show which modules take the longest to parse for example? Or some parsing profiler that would tell me what's my biggest weight?
there's the logs
7:47 PM
@this fossil?
now that's a pretty nifty idea
~mumbles something about VSS and CVS
ah. those.
@SonGokussj4 I'd see this in the Code Metrics toolwindow
very good idea btw
perhaps not in code metrics
definitely not in code metrics
7:49 PM
@mansellan proudly used by SQLite. Probably only by SQLite. Never saw it anywhere else.
Huh. #TIL.
Why not? Seems like a logical place to me.
There's also Perforce, which has diehard fans. Never tried it, never will (not decentralised).
and it'll be much easier to update the CM TW than to make yet another TW.
7:52 PM
the CM TW is a royal mess and the parsing times are RD-internal stats
Just never, ever. Ever. Go near anything with "Rational" in the name. It will haunt you forever.
seems that SCM have the worst brands around....
@this you do know that the official git website is git-scm.org, right?
I know but I usually think git as the "brand", which is iffy as a brand. Fossil? Mercurial? Perforce? Visual SourceSafe? Teams Foundation Server? As if they are not even trying.
@this Rational Rose. It's not rational. And it doesn't smell good.
7:55 PM
I mean, SouceSafe or SourceVault at least hinted at what it does.
@mansellan I see the problem. It's an IBM product. ;-)
CM TW???
Code Metrics Tool Window
^too fast for me
[rubberduck-vba/Rubberduck] build for commit 86c64541 on unknown branch: AppVeyor build succeeded
8:02 PM
Have you guys considered working RD up to App Insights?
@Hosch250 I tried AppInsights at work many years ago. It killed perf. Might be better now. But OpenTelemetry seems to be eating its lunch?
OTel is just the headers, iirc. It works with OTel just fine.
Ah ok
Out of the loop tbh
We are using it at work, and it's fine.
We're due to look at OTel (and where to store / visualise it) over the next few weeks.
8:10 PM
Anyone else have very slow response from TestExplorer recently?
@IvenBach no worse than normal. It's always a bit slow.
8:27 PM
[rubberduck-vba/Rubberduck] build for commit 70bceb80 on unknown branch: AppVeyor build failed
9:01 PM
[rubberduck-vba/Rubberduck] build for commit 89032480 on unknown branch: AppVeyor build failed
@Duga okay wtf am I doing wrong here
9:58 PM
@MathieuGuindon You're pushing unbuildable code? Duga dislikes that.
She's... kinda strict.
@MathieuGuindon you have an extra ;
  if UseLegacyWorkloadConfig then
    result := true;
    result := false;
  if UseLegacyWorkloadConfig then
    result := true
    result := false;
Pascal. It's freaking awesome!
@this It's... not.
@mansellan Well, obviously you've never eaten a quiche!
Why, for the love of $diety would it want semicolons there?
no, it doesn't.
10:05 PM
look at the 2nd example. It has one ; less.
Mat put in a ; the C# way. Pascal does not like that.
sure. but a semi after the end? why?
because it's.... a compound statement!
I dislike Pascal.
grammar is like: if {single-statement | block-statement } else {single statement | block_statement } end if;
10:08 PM
And yes, Delphi, that includes you. glares
you don't terminate single statement, but you do terminate statements within a block.
Delphi = Pascal, no?
It's really mind-blowing that they were cool with that.
Delphi == Object Pascal, iiuc. (Don't really wanna UC)...
so, Pascal.
Anyone who disagrees is obviously a non-quiche-eater!
Delphi might be a warning from history of what happens when you add OOP to languages that predated it... github.com/WaynePhillipsEA/twinbasic/issues/73
10:18 PM
@this did you see my last comment in tB inheritance? Would appreciate your COM expertise.
VBF are discussing
Hey @Vogel612
@this I've eaten many. My favourite is mushroom, but Quiche Lorraine is OK too. Remember all Pascal coders are quiche-eaters. But not all quiche-eaters are Pascal coders.
Ugh. I don't associate myself with quiche. It's just kinda edible, is all.
10:38 PM
The last Pascal I touched was Turbo and it was for school. I've never needed it since. I do, however, love quiche.
I think many quiche eaters worldwide would be surprised to learn they are qualified to write Pascal.
@HackSlash The Venn diagram heavily overlaps.
Last quiche I bought explained ingredients, allergens, and compound statement scope.
@mansellan will comment when I have time, tied up atm
ok cool
11:16 PM
Knowing how to understand documentation makes a world of difference...
11:46 PM
[rubberduck-vba/Rubberduck]: 1326 stars vs. [decalage2/oletools]: 1520 stars
00:00 - 13:0013:00 - 00:00

« first day (2513 days earlier)      last day (55 days later) »