« first day (1719 days earlier)      last day (1461 days later) » 

12:01 AM
RELOAD!
[rubberduck-vba/Rubberduck] 4 opened issues. 1 closed issue. 13 issue comments.
[skiwi2/MagicParser] 2 commits. 876 additions. 4 deletions.
 
 
3 hours later…
2:32 AM
[rubberduck-vba/Rubberduck] retailcoder pushed 11 commits to next (only showing some of them below)
[rubberduck-vba/Rubberduck] bclothier pushed commit 5fe9af8a to next: Fix the FailedLoadReturnValue
[rubberduck-vba/Rubberduck] bclothier pushed commit c44d6df1 to next: Refactor the XmlPersistanceService to use PersistancePathProvider
[rubberduck-vba/Rubberduck] bclothier pushed commit 4b985401 to next: Refactor the SettingsViewModelBase and its implementations, and dry the settings code a bit more, providing generic implementation.
[rubberduck-vba/Rubberduck] bclothier pushed commit 2efc2a13 to next: Update the startup and the IoC registration
[rubberduck-vba/Rubberduck] bclothier pushed commit bce77cb2 to next: Update the unit tests
[rubberduck-vba/Rubberduck] bclothier pushed commit 6bef6a09 to next: Unbreak the experimental types feature
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck into Fix4694

# Conflicts:
# Rubberduck.Main/Root/RubberduckIoCInstaller.cs
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck into Fix4694

# Conflicts:
# Rubberduck.Core/UI/Settings/InspectionSettingsViewModel.cs
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck into Fix4694

# Conflicts:
# Rubberduck.Main/Root/RubberduckIoCInstaller.cs
Merge pull request #4699 from bclothier/Fix4694

Clean up the persistence services
 
@AlexisDuque FYI the merging of PR#4699 may be causing a conflict in the hard-coded list of languages (the PR includes some changes nearby); you'll want to grab the remote version and re-add the line for Spanish -- sorry for inconveniences
 
2:46 AM
@Comintern FYI #4769 is conflicted :(
 
I think I know what it is.
 
any objections to the merging of the massive tech debt payment of #4777?
 
Nope, I'm good.
That might add some more conflicts, but better to sort them now.
 
I object to not merging 4777 already
 
2:56 AM
lol
 
I object to @this.
 
[rubberduck-vba/Rubberduck] retailcoder pushed 33 commits to next (only showing some of them below)
Stop activating code panes on setting the selection

If that is desired, set the active selection or activate the module separately. All users of the ICodePane.Selection property have been scanned and amended.
Push the IRewritingManager and ISelectionService to RefactorCommandBase

All refactoring commands but the not yet remodeled ExtractMethod command use these two, which are essential for the refactorings. So, I have pushed them to the base class.

This also removes the IVBE from the base class since it is no longer needed by the majority of the refactoring commands.
Merge branch 'next' into RecoverSelectionAfterRewrite

# Conflicts:
# Rubberduck.Resources/RubberduckUI.resx
[rubberduck-vba/Rubberduck] MDoerner pushed commit eb592a17 to next: Also stop activating panes on setting the selection in VB6
Force focus on setting the active code pane

For some reason the VBE dis not consistently move focus to the active code pane when activating a code pane. Accordingly, the selection was not visible to the user. This reintroduces forcing the focus, but on code pane activation instead of setting the selection.
Add recovery on next parse option for code pane open state

This also reworks the the recovery on next parse for selections and the active code pane forcing the execution order to be: open state -> selection -> active pane
Only save and recover selections for open code panes

Accessing a code pane has the side effect of opening it if it is not open already. To avoid opening windows because of selection recovery, the recovery has to be restricted to modules already open.
Fix DeclarationFinder.FindInterface

Previously, this completely ignored the selection passed to it. Now, it only returns interfaces such that the selection is inside an Implements statement for it or contains the Implements statement. If multiple Implements statements are contained, it takes the first it comes across.
Modify comment in MoveCloserToUsageRefactoring

Previously, it sounded too alarming.
Merge pull request #4777 from MDoerner/RecoverSelectionAfterRewrite

Massive and much needed tech debt payment
 
Yup, more conflicts.
 
The 1# rule in conflict resolution: Alwaya have your safety off.
 
3:03 AM
when you work alone and don't get merge conflicts. ever. :P also :D
 
If you work alone and get merge conflicts, you might be doing it wrong.
2
 
<~ BTDT
 
:debates local tests v punting to AV:
:persuades self locals are better:
 
@Comintern i could just have multiple branches tho. But I don't because I'm a one tracked kind of guy
you go add five or six branches, or just one!
 
Well, crap. The auto-merge face-planted on the namespace change.
 
3:14 AM
 
@Duga woot! 747 == 747!
 
great success
 
unexpected factorial
 
3:15 AM
lol
 
[rubberduck-vba/Rubberduck] build for commit c7765445 on next: AppVeyor build succeeded
 
oh yeah i know haha, I'm just referencing the subreddit haha.
747 == 747!
only VBA-Web to go.
 
oh, I'm fully expecting oletools to bounce back :)
 
Build succeeded. Yay!
Have a feeling all the tests broke though.
 
3:18 AM
oletools, python... hmmmm... sounds like my kind of project :P
 
Hssssss....
 
@Comintern you sound surprised. This isn't a often occurrence for you, is it?
 
8th time is the charm.
 
@Dair fighting snakes with. Snakes, I guess
 
It's kinda hard when the error window doesn't pick up jack.
 
3:19 AM
@Comintern amateur
 
@Comintern IKR?
 
"Let's scroll through 30 panes of build output and find the error!"
 
lol I mean I'm mostly doing rust and my job which is (python, html, css, and javascript)
i'm really garbage at html, css and javascript lol
i also spent the whole day drawing for my job.
 
@Comintern a job for Dora the Explorer
 
@this Brings back :ahem: fond :ahem: memories of finding c++ build errors with a command line build.
WTH? All green?
 
3:21 AM
lol template errors
 
@comintern is skeptical. I should do a quick meat-bag.
 
Did you just @ yourself?
 
@Comintern Once I compiled MySQL from source. Danged if I had any idea what it was saying for like 20 minutes.
 
lol wut.
does this actually do anything. Testing @Dair
 
3:23 AM
well, you can quote yourself but you hafta do it manually
 
@this I once compile a complete Linux distro from source. You ever hear of Gentoo?
 
by taking the last number from permalink and putting a colon in front
@Comintern isnt that a debian derivative?
 
Isn't everything?
 
how long did it took?
 
Not that long, all things considered. Maybe 6 hours?
 
3:25 AM
and also why?
 
Granted, that was 10 years ago.
 
@this So he can tell people he compiled a complete linux distro from source. duh
 
in my case, it was to enable some optimizations not normally used.
lol
 
Long story. The short version is that the kernel drivers for the bad-ass caching RAID controller were deprecated everywhere else, and on top of that I was missing an instruction in the CPU because it wasn't 100% 586 compliant.
 
ooooo fun times
 
3:27 AM
The shorter version is don't buy off-brand CPUs.
 
@this I currently have this issue with my USB drivier where it causes my computer to take minutes to start up if I shut it down (askubuntu.com/questions/1085411/…). I thought switching from Arch to Ubuntu would fix it, but it didn't. I need to rebuild my kernel sometime, but I'm too scared to let my computer die so rip.
i'm not sure why I thought Arch -> Ubuntu was a good idea.
 
Eh? You can build a custom kernel for any distro.
 
@Comintern I don't do operating systems lol.
I do math.
 
i would stick to Mac OS X . No compiling needed. More quiche eating.
 
and apparently now I do webpages also for my job.
 
3:29 AM
OK, do the math then. You can put as many kernels as you want in the boot loader, so compile away.
 
@this I went to linux because the MPI packages on Homebrew were broken for some time.
 
Homebrew like beer?
 
@Comintern the main package manager for OSX.
 
MPI = ?
 
Message Passing Interfacing.
 
3:30 AM
Mass Panic Index.
 
bbs. Need to do something quick.
 
Not sure I would call it "main"
never needed homebrew
 
Then you're definitely not talking about the beer.
 
MPI--;
 
I had this roommate about 20 years ago that made a coriander orange ale to die for.
 
3:32 AM
Beer++;
this didnt involve a toilet bowl, right?
 
No. It mainly involved the house smelling like a brewery for about 3 days.
 
Per docs, Application.Hinstance only returns a valid pointer in a 32-bit host. Have you tried Application.HinstancePtr? That said I would have tried Application.Hwnd (the mainwindow handle) first though. — Mathieu Guindon 22 secs ago
@Comintern ^ that one has your name all over it
 
@MathieuGuindon I find it weird that they updated the Hwnd property from Long to LongPtr but would not do that for the Hinstance.
 
[rubberduck-vba/Rubberduck] build for commit 6910972c on unknown branch: AppVeyor build succeeded
 
3:43 AM
@this what is this sorcery
 
@MathieuGuindon I'm pretty sure Office steps on that - I'm trying to remember why I could never get the LL hooks to work correctly.
 
package managers are pretty much a make it or break it thing for me.
 
yeah. IIRC we did use that API at one point, but there's no trace of it in the current code
 
Interesting. I just get a app I need, done. No fuss, no worries.
 
Well, we initially pulled it due to a license conflict, but I think it was a little broken beforehand.
 
3:45 AM
@this How do you manage your libraries without a package manager?
CMake?
 
... I just dont...
 
my lack of programming experience is probably showing.
 
it already has gcc built-in so... it's just there.
 
i honestly cannot imagine working on a webapp without a package manager.
 
I suppose if you are using CMake, then you probably are already a foot in the linux part and for that reason, you do need homebrew.
 
3:48 AM
I mean my workflow is this: Rust and Cargo, Python and Pipenv.
i forgot what I was going to say after this lol.
 
@Dair Does OSX have a CCache port?
 
@Comintern Idk, it has been years since I've used OSX.
 
I'd highly recommend it if you're doing a lot of custom builds.
 
I'll give it a look if I have to do any C or C++ stuff.
which may be in the near future...
 
if you do have a pick, always. ALWAYS. pick C.
 
3:50 AM
@this That is my preference.
 
C++ is basically C done all wrong
#FunFact: There's a language C--
 
#MarketingFail
 
@this I believe Haskell ghc compiler compiles to this...
 
oh, cool
 
Wait, isn't that B?
 
3:53 AM
Isn't C++ just D?
 
Somebody stole it.
 
oh yeah, C++ has auto... I definitely don't like how C doesn't have it.
@this have you seen linus torvald's rant on C++?
 
Does the thread that calls SetWindowsHookEx have an active message loop? That is a requirement for the callback to be called. If you are not sure, you can spawn your own thread to call SetWindowsHookEx and run your own message loop. — Remy Lebeau 1 min ago
 
Yep
 
"spawn your own thread"... in VBA?
 
3:56 AM
@this It is such a great copypasta
 
IKR?
 
I love how C++ has execution policies built into the standard library
 
I know! Shell the message pump to a VBScript.
 
I feel like every time I want to switch to just C i remember all the crazy things C++ has and want to use it instead because I'm lazy and don't want to write everything from scratch...
 
4:00 AM
@Comintern I'd hate to try and switch from VBScript's "thread" to VBA's "thread"
 
@Duga :Looks for more merge conflicts:
@this I'd hate to figure out how to call a library function from VBScript, personally. :-P
 
oh, that's easy, you shell it out to a VBA host
 
lol
I wonder if I could eat VBA-Dictionary's lunch.
 
VBA doesn't have this by default?
 
I think I might be able to write a pure VBA version of Scripting.Dictionary that might perform on par with or faster than a late bound version.
@Dair Not on Mac, and not if scrrun.dll is somehow unavailable.
 
4:04 AM
using direct memory API access?
 
that sucks.
 
Nope. Pure VBA
 
Hmm. Would love to see that. Post on CR?
 
dictionaries are like everything in python
 
I might give it a go.
 
4:05 AM
FWIW, I don't think scrrun.dll exists on Mac OS X.
 
like many things underneath the hood are dictionaries.
 
I'm still unclear how the hell references could possibly work on Mac OS X.
It exists but....
 
Voodoo.
 
this is what I have:
 
4:08 AM
I do notice all of those are Office related and MS.
 
yep. whatever they did to make it work, it's likely MS-only.
 
I bet they hacked up an OSX COM shim to use native RPC calls.
 
and they still use that backward ass path separator of :
 
There was probably some poor intern that had to dump a lot of code.
lol, just underneath the hood run it all in wine or some virtual box.
but don't tell anyone you're doing that.
 
It should be /. Isn't : the old skool HFS separator?
 
4:10 AM
@Comintern ROFLMAO!!!
 
HMFS - Her Majesty's File System.
 
yeah MS never updated VBA to work w/ the Mac OS X's unix root
probably because that would be too Linux! gasp
 
just wine that shit up.
 
The irony is that now there's Winux or whatever the hell they call it.
 
^ lol isn't windows like switching to linux kernel for something?
 
4:13 AM
isn't that ReactOS?
 
No, ReactOS is its own thing.
It might already be XP compatible.
Yay!
 
ok, so I'm lost - Winux accomplishes... what?
A linux that's broken as Windows?
 
The really hard-core OS is MenuetOS.
Written entirely in ASM.
 
@Comintern Have you heard of TempleOS
 
4:16 AM
I have now.
Have you heard of ExcelVBAOS?
 
I have now.
 
> For disk storage, MenuetOS supports the FAT32 file system.
Bleeding edge technology it is.
 
@this That's nothing compared to the great powers of TempleOS
 
@this You try implementing a modern journaling file system in FASM.
 
[rubberduck-vba/Rubberduck] build for commit a28820bb on unknown branch: AppVeyor build succeeded
 
4:18 AM
I've installed it in a VM before. It's crazy fast.
 
@Comintern oh, that's what /dev/null is for.
it's blazing fast, dude.
 
IKR?
The write performance is way better than the read performance though.
 
O(∞)
 
well you can optimize it a bit for the read. Just have it read from a const instead.
 
> A file can have, for example, a spinning 3D model of a tank as a comment in source code.
 
4:21 AM
@Comintern Yeah lol. Emoticons have nothing on TempleOS
 
Issue #4812. Rubberduck needs a spinning 3D tank model.
 
@MathieuGuindon / @Comintern any reason to not merge Iven's PR?
 
none whatsoever, now that the AV build has completed
 
there's few more queued, I think but not on the next, I guess?
 
#4769 should be good now.
 
4:22 AM
not sure / half following -- but that PR is pretty harmless
 
WPF + me = WTF, remember.
 
"T" for "This", duh
 
Windows This Framework?
lol
 
Looks fine to me, although I'm not sure what the left align looks like.
 
4:24 AM
*Foundation
 
Windows this Foundation?
 
Windows This Foundation.... Needs a comma.
 
@IvenBach Can you upload a screenshot of your About dialog build?
 
still sound stupid, though.
 
@Comintern good call
 
4:25 AM
^
 
@this In VBA it would be WPFthis though.
 
@this think that when you call this API you alter the file that handles messages, such that it calls the function you describe everytime it handles message. I think you can point to a data structure outside of VBA. Like I could put this structure somewhere in memory and pass a pointer to it in the function and it would be OK. Maybe i need something like this getmodulehandle function? — learnAsWeGo 19 mins ago
 
someone better save their work
2
 
Even so, I'm not sure that's how it work...
 
It's not a file, you just register a callback proc. If you use a stuct defined outside of VBA, you're going to get an access violation when you try to unhook it or the run-time stops executing. — Comintern 9 secs ago
Just sayin'...
 
4:31 AM
aw, spoiled it
 
Nah, OP didn't have any unhooking code to begin with.
It's still going to crash spectacularly.
 
:D
hard to believe OP hasn't experienced that already though
 
Well, OP hasn't successfully set the hook yet.
 
probably should start with hooking some minnows first before trying to hook the leviathian.
 
It's kind of like Russian roulette though - one of these time they'll get a "valid" handle back from the hinstance call, then :boom:.
 
4:34 AM
@Comintern My work or home build?
 
Doesn't matter - the one with the PR code in it.
 
we just want to see how it looks
 
hard to visualize the change without the accompanying screenshot.
 
Want me to pull from next?
I'm not caught up to chat.
 
4:35 AM
I can speak WPF, but I can't read it.
 
^
@IvenBach ok back up.
 
all we want is a screenshot of your PR's change in the About UI, that's it.
so we can merge your PR
 
Video would be overkill.
 
with the confidence that we did not overlook something.
 
4:37 AM
[rubberduck-vba/Rubberduck] build for commit 9d0fe509 on unknown branch: AppVeyor build succeeded
 
hmm. Interesting. It might be my imagination but it seems that the build time has improved.
 
It's your imagination.
 
Anyway, it means no PRs except for Inavrion's are conflicted.
 
> bclothier committed 13 minutes ago
 
> 19 min 2 sec
 
4:39 AM
see, it used to be > 30 minutes
 
it did improve a bit
 
Huh. Or maybe not. The last one:
> bclothier committed 30 minutes ago
 
....
 
Seems kind of random to me.
 
the variance is usually about 5 minutes give or take
 
4:40 AM
I mean, it can't cache the last object set, right?
 
no
(thought it probably should - AIUI, AV does allow for some caching but they must be configured)
 
It certainly can't be due to parsing identifiers like FindParameterOfNonDefaultMemberFromSimpleArgumentNotPassedByValExplicitly
 
seems pretty consistently hovering around 18-20 minutes, looking at history
 
Oh crap. I completely forgot I already have an answer for a LL hook from Excel.
 
4:55 AM
ok UX question
you type dow, and that expands a Do While...Loop block - but dow also matches a Do...While loop block
so dow -> [dow] (selected) -> TAB -> Do While [condition] ... Loop
I don't know how to iterate the possible matches without it being weird
or, I only ever match one
and then make dowl expand to Do While...Loop
 
^ @Comintern
 
@IvenBach thanks!
 
@MathieuGuindon What about Do blocking to Loop, then space W adding the While.
 
5:01 AM
Merge pull request #4807 from IvenBach/Issue4801

Correct word wrapping on about dialog
 
        private BlockCompletion[] Completions { get; } = {
            new BlockCompletion("Dim", "dim", BlockCompletionDef.DimStmtCompletionDef, "Dim statement", onlyValidInScope:false),
            new BlockCompletion("Private", "priv", BlockCompletionDef.PrivateStmtCompletionDef, "Private declaration statement", onlyValidInScope:false, validInScope:false),
            new BlockCompletion("Public", "pub", BlockCompletionDef.PublicStmtCompletionDef, "Public declaration statement", onlyValidInScope:false, validInScope:false),
^ current blocks
hmm, good idea to include the spaces
 
The bigger issue is picking between Do While...Loop and Do...Loop While.
I'm not sure how you'd do a post conditional loop.
 
anything I can think of has the discoverability level of cold fusion
 
Yeah. do loop w and do loop u? Maybe with tab completion support for the Loop?
That's crazy hard either way.
 
I don't think I can get that working without first implementing AC autocorrect
 
5:05 AM
Yeah, I wouldn't expect that in the near future.
 
I'll sleep on it
 
Does Dim autocomplete to '?
 
    public static string[] DimStmtCompletionDef =>
        "Dim ${1:identifier} As ${2:Variant}$0".Split('\n');
#BecauseWhyNot
 
Damn, I need sleep too. I meant 'Rem'.
 
lol
Rem will autocorrect to ' though... when AC autocorrect is implemented :)
 
5:08 AM
:+1: for that
 
all right, bed time
 
Well, it's either that or Rem ind me why I'm using 1980's syntax?
'night.
TTGTB here too.
 
Seems everyone's gone to bed.
 
5:58 AM
@this RE: Issue 4407 I'm going through How to implement a provider. A provider is just something that caches a value until something (AKA observer) asks for it?
I (observer) want a sandwhich. To get that sandwich I ask a provider (my wife) to pass me one.
Would that be a hyper-simplified hand-wavey example?
 
6:21 AM
Kind of like events and subscribing to them?
 
6:57 AM
 
 
4 hours later…
10:53 AM
> @bclothier Regarding your ping in chat: As mentioned above, I'd like to finish this PR, but I don't know what's needed to do so. I was told there should be an automatic update to app.config during the build process, but there isn't. (So my assumption would be that I'm doing something wrong. On the other hand, everything seems to work fine after building.)

AppVeyor seems to fail due to unrelated (?) unit tests failing.
 
 
1 hour later…
12:19 PM
urg! still having issues with this outer join thing. :(
create table #SurveyValues(
	response nvarchar(50)
	)

insert into #SurveyValues (response)
select distinct OverallExperience
  from SatSurvey
 where OverallExperience is not null

 select *
  from #SurveyValues
Yields:
Dissatisfied
Very Dissatisfied
Very Satisfied
Satisfied
Neither Satisfied nor Dissatisfied
which is exactly what I'd expect. However my LEFT OUTER JOIN is leaving out one of the values:
select OverallExperience, Count(*)
  from #surveyValues SV left outer join SatSurvey SS on SS.OverallExperience = SV.response
 where ss.CollectionDate between '2019/1/1' and '2019/1/3'
group by OverallExperience
Yields:
Dissatisfied	1
Satisfied	4
Very Dissatisfied	1
Very Satisfied	24
What the heck am I doing wrong?
I've tried this syntax:
from {oj #surveyValues SV left outer join SatSurvey SS on SS.OverallExperience = SV.response}
based on MSDN docs, but that doesn't seem to make a lick of difference
NOTE: all that code resides in one SSMS window and is for testing porpoises
 

« first day (1719 days earlier)      last day (1461 days later) »