« first day (1735 days earlier)      last day (1445 days later) » 

5:01 PM
 Select Case TypeName(ctrl)
   Case "bar"
     ctrl.Name = "Foo"
   Case "baz"
     ctrl.Name = "Foo"
     ctrl.Caption = "Foo"
  End Select
Bars don't have captions?
 
Just got an email from Manning.
C# In Depth v4 just came out of MEAP.
 
Hmm, yeah, I don't have a good answer to that.
 
They'll be rolling out the pBook in 4 days.
 
and there are several more ways we can branch on types; not just the TypeName()
Oh well. Was a thought.
 
@this fwiw there's already an inspection+quickfix for boolean assignment in if/else branches
 
5:05 PM
Yeah I think I saw that before
But the scenario I'm dealing with is more about altering a set of properties for an object via branching. Far too much code out there does this in a very wet way
most people seem to tend to just copy'n'paste the branch, then modify the RHS
which isn't that horrible.
What is horrible is when they copy'n'paste and add extra lines of property assignments
and now we have a bunch of branches that will potentially corrupt the state if they are run in different sequences.
 
About the only way to prevent that would be a keyhook on Ctrl-V that pops a dialog like "Are you sure about that? Yes - No".
 
:-D
Unfortunately, that may not help when the code is hand-me-down
 
True, but in that case you have someone else to blame.
 
tbh I'm not convinced static code analysis is the best way to handle this
 
you know that the lunkhead author won't be running RD. And yes the lunkhead will be blamed.
@MathieuGuindon so code path analysis?
 
5:11 PM
Agreed that static analysis isn't the way to go. If it's messed up, write a failing test.
 
it's almost as if the copy-pasted chunk would have to be ... extracted into its own method, parameterized....
 
yeah, blame the lunkhead responsible for writing the extract method, too.
I suppose Extract Method ought to be implemented before one can even dream of a suggestion "Don't you think you should extract this chunk of code?"
 
I don't see a QF for that, really.
 
5:13 PM
Feature Request: Add a smell-o-meter to each procedure
 
Although an inspection that could find duplicate code would be sick.
 
not identical, though
e.g. we probably want to look for duplicate LHS assignments within same procedure... right?
 
Right - semantically identical.
 
yeah
I think that is much more easier to inspect for
with a suggestion "You really need a Extract Method. Too bad we're still waiting on it."
 
Don't forget the error handlers when you're doing it. ;-)
 
5:26 PM
@this make that a code metric and PR it in!
@Comintern step one in auto-ducking macro-recorder code!
 
ranging from green to brown
 
lol
or... ranging from poop emoji to ducky icon
 
lol
 
what's the halfway? poop-covered ducky?
 
5:28 PM
or ducky on the porcelain throne?
 
Or ducky-covered poop?
I'm thinking a bunch of ducklings on a manure mound?
 
None of those are pleasant alternatives...
 
5:45 PM
dang, had flashbacks from CS classes in 2001 answering that
1
Q: (Not 1) evaluates to -2 for some reason

public wirelessWhy does (Not 1) evaluate as -2? I would expect it to evaluate as 0.

 
gasps your CS class covered that?!?
 
no, but I'm always iffy on bitwise stuff
 
LOL, 1's/2's complement is always fun.
 
although, "Programming I" was indeed VB6
 
In my sole interesting CS class, I had to build an adder and some other basic hardware units.
And we covered this stuff.
That class was taught by the department head the year before he left, and he was working on a book to go with Knuth's assembly language.
 
5:50 PM
in one of the math classes we had to do arithmetics on Booleans, Octal, and Hex values
 
He thought I should pursue a PhD after just one class.
Probably the biggest compliment I've ever gotten.
 
We did a bunch of math in different bases in 7th or 8th grade.
 
@MathieuGuindon Was it harder than math with roman numerals?
 
maybe. I remember very little of that .....dark period of my life.
 
6:09 PM
@Comintern The super types for documents are deactivated because on one hand the property access had stability issues and on the other hand and most importantly because it simply did not work.
To find the super type we compared the properties, which had no hope of working because one side had only the properties and the other properties and methods.
 
5 hours ago, by Comintern
@MathieuGuindon That's kind of what I thought. This is rapidly veering toward wiring up the TypeLibs API...
 
Does the TypeLibs API pick up the host interfaces?
 
for the documents, yes.
ditto w/ userforms
 
I'll get back to that once I emerge from my rabbit hole.
 
@M.Doerner I though your rabbit hole included much bier. Or was that Vogel?
 
6:26 PM
@FreeMan That was a week ago today.
I guess he's back now
Also, I think "bier" is something related to dying.
 
uhm, nope -- at least not in German
 
> bier - a movable frame on which a coffin or a corpse is placed before burial or cremation or on which it is carried to the grave.
 
But FreeMan is definitely American.
 
I totally read "bier" with a German accent :)
 
6:28 PM
Don't worry, it's pronounced about the same.
 
It's German for "beer" too.
 
Now things are beginning to make sense.
 
@Hosch250 the "r" sounds closer to French though
 
If you're at a bar and in doubt, just ask.
 
6:29 PM
Germans just drank so much they frequently got carried away on those.
Sometimes in error.
:P
 
I wonder if having a really high BAC makes cremation easier.
I can't imagine it would hurt.
 
and the response to the cremation is to raise a tankard, of course.
 
Bier for the bier.
 
Alas, poor Yurick! We knew him so well! raises & drank tankard worth of beer
 
Another theory. They used to carry the tankards out on those things.
They fell off, blipped a customer on the head and killed him.
So, they just improvised, took the tankards off, put the customer on, and off they went.
 
6:38 PM
@MathieuGuindon Yeah, that... I did a quick Google for a spell check and was confounded by the coffin reference, then I saw "Bier Brewery & Grill" (or something like that) and figured I was on the right track.
 
it's one of the few words I remember from my German I class :)
 
@Comintern Even with a really high BAC, you'd probably notice if the blood was still flowing...
@Hosch250 ha!
 
6:53 PM
@this "Yorik"
 
@FreeMan Ham'n'yolks
That's how good ol' Bill likes them.
Besides, I'm sure it was spelt Yurick in some drafts. Suffice to say that spelling wasn't one of Bill's strong points.
 
7:09 PM
Carnival ends when Lent starts. So, it is over since yesterday.
 
7:56 PM
Am I weird if I prefer host-agnostic code, even if it means reinventing parts of the wheel?
Confession: I've never found a use for Application.InputBox
 
8:18 PM
FWIW, I've implemented MsgBox but using Access form -- it could be done w/ userforms, though.
My driving reason for that was because I wanted custom captions in the buttons. vbYesNoCancel just does not cut it.
 
[Save changes] [Discard]
yeah
 
^ much better UX
The biggest downside, though is that those can't be "stepped over" as easily.
 
and Ctrl+C is a PITA :)
 
it'd be cool if RD had @DebugStepover
 
@this ha
 
8:22 PM
@MathieuGuindon for the msgbox? I provide an explicit copy text button on the custom msgbox for that purpose.
 
@this wait, what do you mean? Shift+F8 doesn't work?
 
no, not like that. If the custom msgbox is displayed, you ctrl + break, you go into the msgbox's code, not to the error handler's code.
so you then have to ctrl + shitf + f8 to get to the error handler that invoked the msgbox
 
meh, big deal.
put a breakpoint at the callsite, hit F5
 
with the built-in msgbox, ctrl + break => the next line after the Msgbox in the error handler.
you could ctrl + L, travel up the call stack, then right-click Run to cursor, too
no need for breakpoint
still, it can get old fast.
 
eh, just stop writing bugs, and problem solved! :P
 
8:25 PM
~sigh~
if bugs were horses, programmers would ride.
hmm does modal UFs respond to ctrl + break?
 
As it is, they get to fly.
It's a little exciting, but you get used to it.
 
@this why wouldn't it? takes you to the .Show call.
 
thought it'd - just simply don't know
@Hosch250 lol
 
@Comintern great ref :-)
 
and i suppose with a custom re-implementation for Application.Inputbox, you can just add a RefEdit control, to get the same functionality, right?
 
8:36 PM
99% of the time, if the user needs to select something, you're doing it wrong.
 
Hmm. Shows how little I know about Excel app's UX.
but if you were writing an Excel add-in, wouldn't it likely legit to have users select a range?
 
Either your data is poorly structured, or you can't be bothered to figure it out yourself.
If I were writing an Excel add-in it wouldn't be an "application", but that's just me I guess.
 
@this I never needed a RefEdit. RefEdit is flaky anyway.
 
You can also just show a modeless form and prompt the user to select something if push comes to shove.
 
Out of curiousity, do you guys have any usage statistics for RubberDuck?
 
8:40 PM
I wish
but no, we don't make RD spy on its users and phone home
 
downloads is a rough metric, I suppose.
 
Only for users who notice bugs.
 
@MathieuGuindon Any reason that you are not?
 
@MathieuGuindon #TIL.
@SimonForsberg we're little brothers.
 
@SimonForsberg ZOMG MAH PRIVACY
 
8:41 PM
Hrrm... yeah okay.
 
Why ask?
 
just look at how well-received Microsoft Windows and Office telemetry is
 
FWIW some basic usage stats about features might be useful, but as it stands, we'd not really benefit that much from it
 
@this No reason
 
it's just not worth the hassle
aside from the privacy concerns
 
8:42 PM
@Vogel612 Depends on how much hassle you make of it
 
Also, if you combine VBA, Office, and internet access, most people think "bitcoin" instead of "IDE".
 
well, what would you define as usage statistics?
 
@Comintern lol!
 
@MathieuGuindon seem to recall reading that w/ the free edition of SQL Server, telemetry is mandatory.
 
@Comintern actually the update check already checks the web
 
8:43 PM
@Comintern WTF
 
@this TBH I couldn't care less
 
@Vogel612 Installs, how many times specific features of RD is used in a day, etc
 
IMO telemetry is an awesome tool
 
@SimonForsberg Office is a very popular vector for ransomeware.
 
@SimonForsberg installs will be about the same as downloads
 
8:44 PM
@Comintern Oh crap
 
it did cause something of a tizzy nonetheless. But since they're giving it away for free....
If privacy is that important, you can just pay for standard edition and disable telemetry.
 
@Vogel612 Where do you see the downloads? GitHub has statistics for that?
 
FWIW that can be plastered on the front page of the repo, too
 
8:45 PM
only adds up / shows the last 50 (?) releases though
 
the github API for releases should have that information, at least that's what I'd assume
 
> Rubberduck.Setup.2.4.0.4488.exe (4.03 MiB) - downloaded 1,110 times. Last updated on 2019-01-28
 
it's a bit sad that GH doesn't expose these by itself
 
and that we lose the download counters for deleted prereleases, buuuut ......
 
8:46 PM
like, right next to the tag version number, "1,110 downloads"
I bet there's a Chrome extension for that
 
I see that it's up to me to bring the jokes about open source calc.exe today
 
@Vogel612 Where do they get it from?
 
Outside of privacy, collecting telemetry data also requires a server of some sort.
 
@SimonForsberg the GH API
 
> Browsing through the PRs:
Completely disable telemetry (rejected...no surprise)
Make this app immune against any exploit (by deleting all the code)
 
8:47 PM
doesn't rubberduckvba.com count as a "server"?
 
@Comintern rubberduckvba.com has plenty of storage space available
and a free (MySQL?!) database that's currently not used
 
hmm I wonder if telemetry DDOS/malinformation is a thing
 
Just count update requests then. That's opt out.
 
8:48 PM
 
the assets within a release expose a download_count
 
@this oh boy, what a can of worms
 
IKR?
 
@this You could hire some boiler-room staff in some South Asian country and find out.
 
i think i can find better way to burn my money.
 
8:50 PM
At times I think my Excel crash reports are probably approaching DOS levels.
 
Btw @MathieuGuindon It may amuse you that my current task is to refactor a query that had been running in our enterprise scheduler... for two days!
 
I'm still working on my 2K-liner script
 
it always baffles me when I hear about people being content to run query that takes hours on sub-perabytes worth of data.
 
@MathieuGuindon you could have an opt in thingy for it
 
@KySoto assuming I want to deal with the worms, yeah
 
8:54 PM
@this I'm not baffled at all. Here, I'll write you the recipe:
 
and we'd have to make sure the telemetry don't cause the ducky to crash
 
true
but if its important...
 
wormsInCan++;
 
having an opt in would be the way to go
 
I suppose. But we'd have to care first.
strains to care. Fails
 
8:55 PM
downloading 2GB of VS2019 on my cell atm. fun :-)
 
hmm
vs 2019 would be fun to try out
 
@mansellan is your cell plan metered?
 
@mansellan I hope you're not intending to install it on your cell.
 
but i dont think the 2017 perpetual licence would work for it
 
> 1. Staff IT department in "cost-saving, efficient" way
2. Task IT department with repetitive babysitting tasks and give them no autonomy so the talented people leave
3. Decide that routine agile stories can be assigned no more than 4 hours of work
4. Make some queries business-critical so there's a high reluctance to touch them
(I get to work on whatever I want for however long I want and have a low regard for sacred cows, especially since other people do all the UAT work for me)
(So I take on projects like these)
 
8:57 PM
mmm steak
 
@KySoto Exactly.
 
bacon
BACON WRAPPED STEAK
 
@KySoto This guy is at KFC during Double Down season
 
lol
my wife makes bomb bacon wrapped chicken
 
@this nope, I think they have a fair-use cap at 1TB :-)
@Comintern lol
 
8:59 PM
so i found out something absolutely stupid yesterday
 

« first day (1735 days earlier)      last day (1445 days later) »