« first day (1533 days earlier)      last day (1647 days later) » 

4:04 PM
Hal: You should optimize your query by doing this thing Dave.
:45 minutes pass:
Dave: I've implemented your suggestions Hal and they made my queries run slower. A lot slower
:silence:
Dave: What are you doing Hal? Are you giving me the silent treatment?
For some reason I think of a reverse 2001 "What are you doing" moment whenever I blindly follow what the computer suggests.
 
I swear I'm going to downvote every answer that suggests creating a public variable until people stop suggesting it or I run out of rep to spend on downvotes.
 
@Comintern I don't think Jon Skeet has enough rep to fix that problem.
 
lol
 
4:21 PM
You and Jon Skeet put together though... Nah, still won't cut it.
 
<sings>Blackhole sun won't you come, and eat away these pubs</sings>
 
@Comintern lol so that was you?
 
Statistically speaking, Jon Skeet + Comintern = Jon Skeet. I'm a floating point imprecision in that equation.
2
@MathieuGuindon Yep. :-)
 
I need to stop linking to SO posts that include answers of mine in here... we'll all end up banned as a voting ring otherwise
 
I seriously can't figure out how you type those answers that fast. Do you have a library of "this is why you're doing it wrong" snippets?
 
4:28 PM
@Comintern It's even more incredible that @MathieuGuindon does it on his phone too.
That's why he's always got a dying battery. "Must answer and correct all these problems!"
 
@IvenBach Jon Skeet could do that on a flip phone using multi-tap.
 
Where do you thing our great and benevolent Mug learned his phone skills from?
 
The alt text is what makes it.
 
I love that one. Should be a poster in my office.
Damn, I need to get my generics under control.
public abstract class MappedInvoiceConverter<TIn, TKey, TVendorKey, TBankKey, TUserKey> : MappedClassConverter<TIn, IInvoice, TKey> where TIn : IConvertableClass<IInvoice>
 
4:35 PM
@Comintern discreetly steps in front of the refactoring PR
 
@Comintern Yeah, when Bill Gates and I hang out, there are a couple of billion dollars represented in the room. Nothing changes when I leave.
 
@Comintern looks fine to me ;-)
 
@Comintern Makes me think of that kool aid pitcher. "boy, am I thristy" OH YEAH! kills some kids due to flying bricks
 
@this It's for work. I'm abstracting a general purpose schema converter using Dapper.
I'm also the only person here that would use it, so... job security.
 
you know it would be funny if some troll came along and the only suggestion he had for stuff is... "Use a global variable" this function doesnt work the first time, but then works the second time. dunno why. Troll, "Use a global"
i wonder how much rep said troll could soak?
 
4:40 PM
You should make a bot and find out.
 
i dont know if i want to be that mean to you
 
@Comintern paging @Duga. @Duga to the white courtesy phone!
 
Coincidentally, I had the idea this morning of writing an error handler than would automatically create an SO user and post it's own source code and call stack on SO...
 
@FreeMan pretty sure @Duga can't make it to the white courtesy phone. She's... CPU-bound.
 
daaang
 
4:41 PM
that's... interesting...
I was just about to ask if she'd fallen asleep again, but I noticed she did tell us about a new star a couple of hours back.
 
Between the troll bots and the self posting error handlers, you could remove all human interaction from SO entirely. You'd eventually get SkyNet.
 
that's how it starts
 
i feel like id get ip banned or something if i tried something like that
well that and i have no idea how to create a troll bot like htat
 
pretty sure I saw some article about bots interacting with bots
 
That's the beauty of putting it in an error handler. Your users would get banned.
 
4:46 PM
@Comintern hmmm.. that's an interesting thought. Instead of logging my errors to a file, I'll just write a new error handler to automatically post it to SO! I like it!!
 
The "Move to folder" functionality hasn't been added to CodeExplorer yet?
 
no, I don't think so.
Thanks for volunteering, @IvenBach !
3
 
not that I recall
 
:cough: I'm pretty sure I already wanted to volunteer.
I actually have a pretty good shot at succeeding now.
 
@Comintern Frankly, Jon Skeet + (population of VBA-Rubberducking) = Jon Skeet is probably close to truth
 
4:51 PM
@Hosch250 I have a question for your regarding CodeExplorer and Issue #4155. 4155 would could should will be a primer to get me comfortable enough with CE to tackle "Move to folder".
 
@FreeMan I think we might just squeak past the delta on that one.
 
Must use affirmative wording to #MakeItSo.
 
@this Are you voluntelling him to do it?
 
@Comintern I did say probably
 
"voluntelling". I'm appropriating that.
 
4:52 PM
Don't worry, I appropriated it too.
It's a joke at work.
 
If you've been in the military, you've been "voluntold"
 
@Hosch250 is it still "voluntelling" if he already volunteered?
 
hmmm... "involunteered" might be more correct.
 
lol
 
> ref. #3332

When right-clicking a folder in the CE and selecting "import", the imported module gets imported under the default folder unless it already has a `@Folder` annotation, in which case it gets added to whatever folder that annotation is specifying... which may or may not make sense in the current project.

Let's make the "import" functionality edit any existing `@Folder` annotation to match the selected CE folder, or add one such annotation when there's none.
 
4:55 PM
Oct 5 '17 at 17:31, by Hosch250
@IvenBach That's on my bucket list for October.
 
LOL.
 
^^^^ RE: "Move to folder"
 
It's ok, he's paid in enthusiasm.
 
@MathieuGuindon as a complete tangent. Rubberduck is the command I taught my dog to formally release her from whatever command she was following. Was looking for something the general public would not guess. — Forward Ed 21 secs ago
 
4:56 PM
gah... I can't type fast enough.
 
hey @DisplayName!
what do you mean with "exploit"?
 
well... use
 
@Hosch250 You available to help me with a few breadcrumbs for CE later on? I'll try and MVCE my question before asking.
@DisplayName welcome to the pond.
 
Hi @DisplayName
 
Sure.
That font size thing is pie
 
4:58 PM
Hi @Comintern
 
TBH, I'd use a slider control for it, though, which might add a bit of complexity :)
Gives the user more control on which font they want than a dropdown.
 
I found out where to edit it statically. I couldn't find success with a combo box with values {10, 12, 14, 16, etc...}
 
Hey, DisplayName.
You need a two-way binding.
 
AFk. #WorkBeckons
 
@DisplayName you can build it from the source code in Visual Studio 2017, or download the installer for the latest pre-release
 
5:00 PM
thanks @Hosch250
 
prepare to be mind-blown
 
I'll go with the download.
 
there are a number of important things to consider though - see the "700 issues?!" heading here
 
is there any recommended folder to install it?
 
5:02 PM
@MathieuGuindon - @DisplayName does bring up a good point with "I guess you were typing another page of your book here". You should write a book.
 
the default should do
@Comintern I've started
"Rubberducking Object-Oriented VBA" is the working title
 
More concise: Dim i&, i_max&JohnyL 1 min ago
 
@Comintern oh ffs
 
That's why downvoting should be allowed on comments.
 
@JohnyL you mispelled "cryptic" — Mathieu Guindon 7 secs ago
 
5:03 PM
Maybe I'll flag it as offensive.
@MathieuGuindon LOL
 
thing is, I'm doing too many things at once, and end up completing none
like that freakin' AC PR
 
@MathieuGuindon you're not the only member in that club.
 
@this lol;
 
@DisplayName don't hesitate to ask any questions you might have about the tool, and/or report issues and/or suggest features and/or star us on GitHub ;-)
 
@JohnyL- If you're code golfing you can save 14 characters by not declaring them and using them as Variants. If not, you should probably make it readable instead. — Comintern 9 secs ago
 
5:17 PM
let's begin with the simpler: how to star RubberDuck on Gitub (my key are shivering only at writing that name)
 
@Comintern I can feel the heat from over here. Stay on the CR side of SE.
 
@DisplayName github.com/rubberduck-vba/Rubberduck top right is where we enjoy getting stars
 
Note: click on the Star, not the number.
number just gets you the list of "stargazers"
 
it also gets Rubberduck into your list of "starred repositories"
which acts as some kind of bookmark
@MathieuGuindon You misspelled "mispelled" :D — JohnyL 21 secs ago
dammit, I did
 
@Duga woot!
 
@MathieuGuindon LOL - Touché, JohnyL.
 
so here's the thing: the project is very active - as you can tell by the number of opened recent pull requests (a number of them are work-in-progress); every time a pull request is merged, the build server generates a new "pre-release" build on the "releases" page
 
I installed RD, closed and reopened Excel and there it was! Now what to do with that? I'll read some documentation in the website.
 
@MathieuGuindon Muphry's law strikes again.
 
5:25 PM
@DisplayName there should be a new commandbar with a button that says "Pending" or "Ready" - click it if it says "Pending"; it'll go through a number of states and eventually go "Ready"
 
@DisplayName Start with the parse button. From there you can check out some of the windows like the inspections or code explorer.
 
the VBE isn't telling us when you make code changes, so whenever you modify code and pause to read, hit that button so Rubberduck gets a refreshed view
 
Hey there, SJR.
 
first issue: tried with Autocad VBA and it showed an error: "Unhandled exception has occurred in a component in your application. If you click Continue the application will ignore this error and attempt to continue. Value cannot be Null."
 
@Hosch250 ^ that is Murphy's Law ;-)
 
5:27 PM
@MathieuGuindon Let me know when it's published. I'm interested already.
 
@IvenBach oh, I probably won't tell anyone if/when it is
</sarcasm>
 
@MathieuGuindon Publish it with Manning.
 
@MathieuGuindon huh? That's Amazon's job....
 
I'll start with a complete manuscript
right now it's a whopping 10 pages
 
@MathieuGuindon wait, you want to get it published by a company?
 
5:29 PM
why not?
 
The process is that you write out a proposal and submit it to them.
Then write the manuscript
 
eh, I'd rather write the thing, structure it, fine-tune it, and submit that
 
Writing a manuscript is fine if you intend to self publish, but getting it to the publisher will be harder if it's not proposed because they will want you to run it through their editor, etc. etc. etc.
 
so you make a proposal and they go "yeah sure ok let's do this", and now you have a deadline to write the thing?
 
At least that's was the case IME
Basically.
Thinking about it - it was also a part of a series. That might be a factor, too.
no, series isn't the right word.
 
5:31 PM
trilogy?
 
branding, probably
 
prequel?
lol
 
no, no, you know how there are ".... For Dummies", "... Bible", "... Cookbook"?
 
oh, yeah
 
in my case it was Wrox Professional something
 
5:32 PM
no, I'm not writing "OOP VBA for Dummies"
 
please don't
I hate For Dummies
But anyway, they will want to categorize it under one of those .... "brand"?
 
pages 1-198: blank
page 199: "dummies don't write OOP VBA code."
7
 
I don't see them do one-off book that frequently. It's always a part of a brand
 
hmm. can you send me some contacts?
 
Yes, I can forward my old contacts from Wiley and Pearson.
 
5:34 PM
awesome :)
I've written 1,038 SO answers, 820 CR answers and 147 CR questions, and yet writing a book sounds daunting and scary
 
well, the difference is that you aren't answering.
as I said before, a book is better in the sense that it's more coherent and cohesive in its presentation of concepts than a bunch of answers randomly stringed together.
 
@DisplayName Can you go to settings in the menu and set the logging to "trace", repeat the error and post it as an issue?
 
@MathieuGuindon heck, you could probably just organize all those answers into chapters and sub-headings and call it good. (Except for that pesky licensing thing...)
 
@Comintern, what menu exactly?
 
The blog would be a better start than SO. Those could be expanded into chapters.
 
5:39 PM
@DisplayName Rubberduck menu within the VBE
 
@DisplayName Rubberduck -> Settings -> Minimum Log Level. Should be right in the middle when it opens.
 
@FreeMan and get yelled at by the editor for not following standards.
 
pshaw! That's what editors are for!!!
 
must be gone in a minute! see you later
 
@FreeMan mwahahahahahaha whimpers
No. They will tell you you did it wrong and that you will fix it.
 
5:44 PM
:chuckle:
they don't... edit?
 
@MathieuGuindon I already contacted Wiley - didn't CC because it's been years and years so I'm half-expecting to bounce. Will loop you in when I get a solid lead from there.
@FreeMan oh they do. It's up to you, the author to apply the edit.
 
@this excellent! That's a book I'd buy!
 
@this thanks a bunch!
awesome presentation btw :)
 
@this humph
 
@FreeMan gonna be patient. Prolly be a year.
YW, @MathieuGuindon !
 
5:46 PM
shhhh... I'm motivating the mug...
 
@MathieuGuindon and something to think about... the book would likely sell better if you cover how to adapt a legacy codebase to the OOP paradigm, rather than just "this is the OOP way!"
 
that's an easier sell with an extract method refactoring :)
but yeah
 
I walked into that one didn't I?
 
hehe right into it
 
need to get that blasted PR done.... sigh
 
5:53 PM
IDK, I find myself doing very little method extracting when I refactor old procedural code. Most of it ends up in the bit bin.
But yes, you need to get that blasted PR done.
 
It might also depend on the codebase, too. I can see refactoring happening for a procedure that's doing 3 things. I don't see it happening with cleaning up a smart-UI anti-pattern, though.
 
@this indeed!
#JNIL that SET STATISTICS IO ON and SET STATISTICS TIME ON are valid for more than the immediately running query and need to have a corresponding ... OFF to disable them
 
A query window is a session; it will keep stuff "alive" as long it's open
meaning, you could enter only CREATE TABLE #tmp (id int);, execute it, delete that line, then do SELECT * FROM #tmp; and it will work
The only thing that don't persist is the variables, for some reason.
 
Internal Service Announcement: I will not be able to work on the UnitTesting PR this weekend. Probably will get some more stuff done on Tuesday, assuming my brain has not melted :)
 
It seems we need an RD-Devs group calendar now?
Enjoy your weekend, @Vogel612, and try not to fly too close to the sun.
 
6:08 PM
@this I frequently forget this and run out of memory.
 
@Vogel612 enjoy!
 
@this - I've created my index:
CREATE NONCLUSTERED INDEX [x]
ON [dbo].[SatSurveyV2018] ([ClinicID],[CollectionDate],[RecommendNPS],[DoNotReport])
I presume there is a significant performance difference between 1 index covering the 4 columns and 4 separate indices each covering 1 column, correct?
 
Yes.
 
difference = better the way I've done it, not the way I questioned...
 
Generally speaking, an index with 4 columns is more likely to cover a query than 4 indices with 1 column each.
 
6:11 PM
Just checking. ;)
 
Even if the query itself only used 2 or 3 columns, it's still a covering index and thus A Good Thingâ„¢.
Remember, the ordering is significant.
 
Is hiding a member that returns a concrete class with a member returning its interface evil?
public new IAccount Converted => base.Converted;
 
yup - I definitely discovered that! I got my query down to about 54ms, I think it was, from a high of 74!
 
base.Converted returns an Account.
 
so if you have have one query that filters on ClientID, then ORDER BY CollectionDate, and another query that filters on ClientID, then ORDER BY CollectionDate DESC, that index no longer covers the 2nd query.
@Comintern don't you want to use interfaces?
I mean, otherwise it wouldn't be testable?
 
6:14 PM
@this ah! I was simply thinking about column ordering, not sort ordering. TYVM
 
@this I can't in this instance - it's part of a converter that happens to be strongly typed.
 
@FreeMan both matters
@Comintern do you still have the option of public object Converted => base.Converted? Or make it generic?
 
@this It's already generic. It goes back a couple steps to a generic that requires a concrete type parameter. ClassConverter<T> : IClassConverter<T> is a base class that converts from one generic concrete class to another.
The type constraint is where TIn : IConvertableClass<IAccount> at the top level, but there are another 3 levels of interfaces and base classes. The lowest level of those strips is where the interface starts getting used, but in order to construct this specific derivative I need to inherit from the strongly typed version, but output the interface. Thus the hiding conversion on the getter.
I think I just ducked myself. That needs to be a comment, and I'm cool with it.
 
6:30 PM
hmm. super wierd. the DAO errors object doesnt ever seem to flush itself
 
No. you have to raise another DAO error. It's been that since forever.
 
ugh
can i manually raise an erorr?
 
i suppose so but why?
 
to clear it
 
but why?
 
6:31 PM
since we werent going to get vbWatchdog
i was trying to make a function that displayed errors nicely so i wouldnt have to go copy paste the error message code
 
@KySoto Just have your whole company contribute to RD.
 
then i was thinking about all of the times i needed to know the stupid DAO information
because the regular error object error was so off point
but that only happens when dealing with DAO errors
-_- i guess i will have to scan the source error
if it has dao in it
display the dao error
 
the only category that matters is ODBC errors
so I normally just check if hte description include ODBC and if so, read off the DAO.Errors instead.
 
yeah but its possible that the description does not contain the word ODBC
for example if a data change happens and then a field is interpreted as a parameter
so it gives the too few parameters error
 
Too few parameter is only one error.
 
6:42 PM
the source is dao. blah blah
 
ODBC is the only category that will generate multiple errors.
At least, AFAIk
 
if the regular err.description has ODBC?
 
yes.
then read off the DAO.Errors
 
ok. i'll go with that hten
 
otherwise, just use Err.Description
that will cover 99% of the use cases.
and seriously, get vbWatchDog. your boss is doign you a big disfavor.
 
6:45 PM
yeah i know that err.Description covers 99% of use cases
im just focusing in on that 1%
in my experience its always been those edge cases that jack everything up
 
Does AV run our tests in parallel or always sequentially?
 
Let's see what happens.
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4279?src=pr&el=h1) Report
> Merging [#4279](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4279?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/055d9110421e53908807d8aac9348209f4af3b55?src=pr&el=desc) will **decrease** coverage by `0.1%`.
> The diff coverage is `27.51%`.


```diff
@@ Coverage Diff @@
## next #4279 +/- ##
============================
 
@M.Doerner I'd be surprised if it wasn't parallel. Haven't we have some concurrency issues before?
 
6:54 PM
We had problems with static dependencies.
 
Ah, that's right.
 
@KySoto and ODBC is the 99% of that 1%
 
One problem was that the RubberduckParserState subscribed to a static event.
Then most tests did not dispose it, which meant that it did not unsubscribe.
Welcome memory leak.
If one of the tests using referenced libraries fails, we know for sure that it is executing them in parallel.
I introduced caching for them. However, each time they are handed out, I have to clear the references.
 
[rubberduck-vba/Rubberduck] build for commit 2d11cb07 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4279?src=pr&el=h1) Report
> Merging [#4279](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4279?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/055d9110421e53908807d8aac9348209f4af3b55?src=pr&el=desc) will **decrease** coverage by `0.1%`.
> The diff coverage is `27.51%`.


```diff
@@ Coverage Diff @@
## next #4279 +/- ##
==========================
[rubberduck-vba/Rubberduck] build for commit 2d11cb07 on unknown branch: 52.21% (target 0%)
 
7:14 PM
@M.Doerner looks like it's not a problem w/ AV. However I don't follow this part - if you are clearing, that defeats the purpose of caching?
 
The problem is that we put the references on the declarations.
When I hand out the same declarations again, they will still have the references from prvious test runs.
 
hm, ok but they shouldn't have changed anyway?
 
The original deserilaized declarations have no references.
Those only get added in the test runs.
 
I see.
 
In production, references get removed for modules that are no longer there.
However, to coordinate that the module to module references are used.
Anyway, with the cached declarations, the tests share the place where the references to library declarations get stored.
 
8:07 PM
:cackle: These 37GB of Excel files won't stop me!
 
8:39 PM
@MathieuGuindon Of course :-) I believe I made a promise. Rubberduck is a fine project. This is the most I can do for it. Don't know how to code in the RD language :-)
 
@MathieuGuindon There's no way Application.GetOpenFilename could be assigning it's return value ByRef is there? I'm at a complete loss with that one.
 
@Comintern I'm at a loss as well. I suspect some of the code OP didn't include is re-assigning vFile or something
 
> I installed RD v 2.2.0.3675 and then tried opening AutoCAD 2014 product version I.18.0.0 VBA IDE with following issues:

- RD splash screen pops out with "Initializing..."

- then it pops out a "Rubberduck Add-In could not be loaded" dialog doc saying: _"Rubberduck's startup sequence threw an unexpected exception. Please check the Rubberduck logs for more information and report an issue if necessary"_ and giving the only "OK" button to click

- upon clicking "OK" button there it opens t
 
> Don't know how to code in the RD language :-)
That didn't and hasn't stopped me from learning along the way.
 
Hmmm... I've always considered Application.FileDialog "safer" because I was hanging onto the object, but that's a serious head scratcher.
 
8:43 PM
that RICVBA is me
 
@SonGokussj4 If those at this pond can help me learn you have a fine chance to contribute.
 
@DisplayName you have two (?) GitHub accounts?
thanks for that issue BTW
 
@MathieuGuindon no, the other one is data droid
 
for the time being I have to uninstall RD in order to go on using AutoCAD VBA IDE
 
aka HackSlash on SE
 
ah, that. No clue
 
@DisplayName very sorry about this. must have borked recently and nobody noticed
was there not someone from AutoCAD in here earlier this week?
 
it's a challenge - the only way to test is to actually run them on different hosts and we don't have all kind of hosts lying around.
 
Aug 14 at 16:12, by randomguy
I work for autodesk\ AutoCAD development, interested in playing with Rubberduck with AutoCAD in-built VBA IDE
 
RD does have 3000+ unit tests but the loading of host -- that's more of integration tests.
 
8:48 PM
aye
 
Some random guy from AutoCAD.
 
@MathieuGuindon, yes I already had a previous account which I forgot of (not very fond of GH...) and today Iopened another one but with a typo in the email address. So while trying to fix it there they informed me the correct email was already used. And then I got back to the old account
 
@Comintern literally "random guy"
 
^^ That's a really odd place for an error though - it's in the SCW dispose.
 
@this But is that really the droid you're looking for?
 
@IvenBach groans
 
@DisplayName Did you get anything in the RD log file?
 
@Comintern looks like it's finalizer being called
 
Yep.
 
8:52 PM
@Comintern, where do I get it?
 
that smells slightly.
 
@DisplayName look for a Rubberduck.config file under %appdata%\Rubberduck
 
@DisplayName /user/appdata/roaming/rubberduck/logs
 
we disable logging by default, so you'd need to enable them first
 
@DisplayName if you didn't set the tracing level (and I don't think you can since you're crashing), you may need to manually edit the config in order to see the logs in the path that Comintern indicated.
 
8:53 PM
Ooops. I Linuxed my path there.
 
(we need to close that open issue about logging on the first startup....)
 
heck, even a hacky hidden setting would suffice
<FirstRunRan>true</FirstRunRan>
#WallyCode
 
no
that would fail in CAD if the first run was in Excel
 
hmm.
 
8:55 PM
what we need is to unconditionally log startup exceptions
 
Isn't that too late?
i mean, sure, we get the exception but we miss out the details leading up to it?
 
they'd be in the stack trace, no?
 
no, that's a part of the exception itself
i'm referring to the log output for previous execution prior to the hitting of the exception
 
I have a "RubberduckLog.txt" in %appdata%\Rubberduck\Logs
 
:woot:
 
8:57 PM
oh nice! anything says "ERROR" in it?
wonders how the log file got there
 
prolly via Excel (I forgot about that detail)
and i just realized - if you're running 2 hosts, what log do you end up with?
 
are we still nuking logs on startup?
 
Yep.
 

« first day (1533 days earlier)      last day (1647 days later) »