« first day (1322 days earlier)      last day (1858 days later) » 

12:01 AM
RELOAD!
[retailcoder/Rubberduck] 13 commits. 3617 additions. 1699 deletions.
[rubberduck-vba/Rubberduck] 18 commits. 1 opened issue. 5 issue comments. 3757 additions. 1723 deletions.
 
 
2 hours later…
2:30 AM
@ThunderFrame I am thinking you might be right about the word object model. Today, I found out that macro recorder lies completely about what is being done on the UI. I knew macro recorder was crapatastic with its reliance on ActiveAnything and Selection and implicit references but I never thought it'd come up with random code that doesn't even correspond to what I did via UI.
 
0
A: Group lines of code in vba

Tony DThe short answer is no, not out of the box. You can install 3rd party tools to do this, like this open source tool http://rubberduckvba.com/ If you have a lengthy procedure you may what to ask yourself if it does more than one thing. Generally a procedure should only do one thing as a rule. Then...

Apparently RD has code folding!
@this I think it's because lots of stuff still uses WordBasic function calls behind the scenes, and the Macro Recorder doesn't "see" those steps.
 
@ThunderFrame now that others are recommending RD for stuff it doesn’t yet have there might be some fly bys
Your princess is in another castle, for the time being.
 
@IvenBach Your princess is frolicking in another IDE.
 
@ThunderFrame Hmm. Interesting. FWIW, that was the first time I saw recorder lie so blatantly to me. Is that even the case with basic stuff? In my case, I was simply doing a ApplyListTemplate -- recorder says I should take one from the gallery but in actuality all I needed was ApplyDefaultNumbering . Netiher feel like a leftover from WordBasic.
 
3:06 AM
@this IIRC, a lot of the dialogue are launched by WordBasic. Office 2007 macro recording was a lie....
 
> This PR refactors the functions within ParserRuleContextHelper.cs (PRCHelpr) to ParserRuleContextExtensions.cs (PRCExtensions). The PR is a follow-on to the suggestion made in comment(s) for #3684 where I had made use of PRCHelper. In addition to porting the functions, I am proposing some modifications and renaming. 1. In the existing PRCExtensions, there were several overloaded versions of GetProcedureSelection(...). These overloaded functions may have been solving a problem that no...
longer exists. None of the functions are referenced by the code base (except one that is referenced by a test). I have removed these un-used functions as part of this PR. I am also proposing some new method names. The terms "Parent" and "Child" are used in a few methods names where "Ancestor" and "Descendent" would be more precise/descriptive given the method's current behavior. 1. The overloaded methods HasParent are changed to IsDescendentOf(...). 2. Method FindChildren did not stop...
at the context's "children" list but rather walked the entire parse tree. I have changed this method name to GetDescendents(...). 3. Method GetParent - which would imply (to me) a function that simply returns context.Parent, returned the the context itself (if it is the correct Type), or the first ancestor of the correct Type. I've modified this function to only return the first qualifying Ancestor (IOW, a context cannot be it's own Ancestor/Parent). I have changed the name of this...
method to GetAncestor. The DeclarationFinder referenced HasParent and GetParent. It has been updated to use equivalent logic: e.g., context is T || context.IsDescendentOf<T>()
[rubberduck-vba/Rubberduck] build for commit 189f1c95 on unknown branch: AppVeyor build succeeded
 
 
1 hour later…
4:30 AM
[retailcoder/Rubberduck] WaynePhillipsEA pushed commit 9e772a02 to ProjectRefs: rewrote ComWrapperEnumerator to allow control over underlying IEnumVARIANT RCW
[retailcoder/Rubberduck] WaynePhillipsEA pushed commit 372064ba to ProjectRefs: Simplified null handling in uses of ComWrapperEnumeration
[retailcoder/Rubberduck] WaynePhillipsEA pushed commit 99b319b2 to ProjectRefs: changed exceptions to throw with Marshal.GetExceptionForHR
[retailcoder/Rubberduck] WaynePhillipsEA pushed commit 34135db0 to ProjectRefs: added ComImport() attributes
[retailcoder/Rubberduck] WaynePhillipsEA pushed commit 4043e68a to ProjectRefs: comment clarity
Merge pull request #3708 from WaynePhillipsEA/rewite-comwrapperenumeration

Rewite of ComWrapperEnumeration, to take control of when IEnumVariant RCW's get released.
[retailcoder/Rubberduck] retailcoder pushed commit 2e6a6fa3 to ProjectRefs: Merge branch 'next' of github.com/rubberduck-vba/Rubberduck into ProjectRefs
[retailcoder/Rubberduck] retailcoder pushed commit db4b793d to ProjectRefs: references dialog gets typelib info from service
 
 
1 hour later…
5:59 AM
#contribute #oss #csharp https://twitter.com/lenadroid/status/951982166946201601
 
I'm all nostalgic for VBA's Variant. I was hoping to make a properties collection in .NET, where I could retrieve the value as a String, Number, Boolean or Object. How do I go about that in C#?
 
6:34 AM
well, you could just use object
but why, exactly?
Also, The closest equivalent of VBA.Collection in .NET ArrayList. But still why, @ThunderFrame ?
 
6:48 AM
Oh boy! need to remember that DAX means DAta Anaylsis Expression. Feels like a mouthful. I’m leaning power pivot which I need now and reading from power pivot / power bi ebook to get my head around it.
 
@this well, for built-in controls, I know the property names and types, so I can create explicit properties for their concrete implementations, but for 3rd party controls, I can't know the property types/names, so ideally I'd add them to a properties collection. Then any IControl can refer to a property by index, just like MSForms....
 
I see where you're going with this
ArrayList might meet the need for now.
 
@this I see what you did this there
@PeterMTaylor there was an IndieGoGo campaign a while back... Including DAX stickers
 
@ThunderFrame can't be helped. It's in my nature to be self-referential.
 
7:24 AM
To me, DAX will always be Deutscher Aktien Index.
 
 
1 hour later…
8:42 AM
1
Q: Code deletes unique entity that reports data later than 4 quarters, runs too slow

BenI have a worksheet which is filled with data from Column A to G. Each row is a unique entity and Column G contains a value that shows how many quarters each data is reported late by from today. If the returned value is more 4 (that means the reported date was more than 4 quarters from today), the...

 
 
3 hours later…
11:44 AM
0
Q: Ensuring array of worksheets are present

QHarrI have a sub which should only continue running if 4 specific worksheets are present. From online reading, such as @Tim Williams's comment in Test or check if sheet exists, I know that using an error thrown, to determine a course of action, can be frowned upon, but I found similar usage to mine i...

 
@Duga You know, maybe the only way to get rid of that Schrödinger's resx file is to actually hunker down and actually rename RetailCoder.VBE to Rudderduck.VBE
 
12:29 PM
@this I'm all for it
 
1:18 PM
@Mat'sMug , does RD have any sort of UI element that would be suitable for dumping large text, e.g. scrollable textbox or similar?
I'm working on the groundwork for the ITypeLib exposure, and I've got most of it done now, but need a way to dump text output just for debug purposes.
 
1:30 PM
@WaynePhillipsEA FWIW - there is a Serialize button on the Rubberduck which writes out to a folder in %appdata%\Rubberduck, creating a folder for declarations. Maybe you can borrow that code to serialize the IType*** info in similar manner.
(that button is only shown in development builds)
 
Yeah, I've added a similar button in debug only, but really wanted it to be output to a dialog. If not, it doesn't matter, and that will suffice
 
BTW just remembered - there is a control suitable for displaying code, based on Avalon Code view.
BindableTextEditor is the control
 
Thanks, I'll take a look.
Was hoping for a re-usable dialog form or similar for simplicity, so I might just output to a file in the end anyway, and maybe launch notepad to view it.
 
FWIW x2 I use notepad++. That way i don't have to reload it. It detects it was changed and prompts me to reload.
 
oh yes, that's a good idea, thanks.
 
 
3 hours later…
4:15 PM
@ThunderFrame would you agree that the macro recorder has became much less useful since they introduced ribbon, at least for Word? Because I'm sure thinking that.
 
4:26 PM
I'm fighting Spotify.
I found it creates 4-5 processes, plus a web helper process.
Also, it only needs 2 of them to play.
So if I nuke enough of them, maybe it'll stop spamming me with ads.
OK, that didn't work.
 
I've put the figurative fire out. Maybe I'll be able to get back to contributing to RD while I wait on calcs to run.
 
4:42 PM
@IvenBach Fix up the tests so we can merge your inspection.
 
Sure. Last bit of updates and tidying before I get some test runs going and switch to RD.
 
Coming to a rubberduck near you soon... live ITypeLib support from the VBE, including reading and writing the conditional compilation arguments plus determine the types of objects (workbook/worksheet/form/report etc), and controls.
8
^ the first ITypeLib listed is the immediate window 'project', so you can largely ignore that
 
@WaynePhillipsEA I look forward to eventually understanding the implications of that.
 
Wow, that's great, @WaynePhillipsEA.
I've done just a little bit of work on that, and what we had was incredibly slow.
Like, iterate through all the properties on the component to see if they were in the same order as the type....
 
hey @IvenBach, I'm sure you will once you see some of the things that will be fixed/improved due to this
 
4:51 PM
I still have lots to learn about coding. I can only learn so fast since my brain is still on dialup.
2
 
Are you one of the original authors of the VBE, or something?
 
@Hosch250, yeah it's not instant, but it will be much faster than a parse
ha, nope, just been around the block a few too many times
 
@Hosch250 after all, he's the guy who added the try-catch pattern to VBA...
 
@this I know nothing about that, but I figured he might have been involved at some point seeing what he's done with it.
 
unfortunately the VBE team chose not to implement ITypeInfo::CreateInstance, so we can't execute code from the type lib
 
4:53 PM
In other words, if Wayne wanted, he could take down most Windows computers through the Office installation.
 
... but there are a few other ways of executing VBA code that I know of, so I just need to work out what I am willing to divulge ;)
 
@WaynePhillipsEA most surely for security, unfortunately.
Which also implies that if we work around it, we have a duty to secure the access even via RD itself
 
@WaynePhillipsEA that's looking gorgeous
 
maybe... though most hosts do offer Application.Run anyway, so I'm not sure I'd be that bothered by that.
not quite the same of course
 
@WaynePhillipsEA that's massively cool!!! does it include project-wide args?
 
4:56 PM
@WaynePhillipsEA Write a project for us in x86. We won't be able to read it anyway.
I'll help fund buying it. What's your fee?
 
@Hosch250 lol
@Mat'sMug do you mean per-module defined constants? nope, sorry
 
@Mat'sMug - Conditional Compilation Arguments: MyConstant = 123 : MyConstant2 = -123 Does that answer your question?
 
^ it gets you the global constants yeah
and you can set them too, which might be cool to have a big 'DEBUG' toggle button or something ;)
 
wow
 
We already can get the module constants via parse. It's the conditional compilation arguments that we can't get via VBIDE API.
 
4:59 PM
I think @this does something like that in code
 
and it's read+write... just... wow
 
hacky + semi-manuatuomically, yeah
(i have a procedure that automatically adds or removes references being used for early-binding) then I manually change the flag
 
per-module constants we parse and process anyway - the problem was always that the project-level constants were ignored :)
all we need to do is tell the preprocessor where the project-level constants are
 
sure, we got them. not the few implicit ones though (like WIN64 etc), as they are not exposed
 
the preprocessor already makes some assumptions about those.
 
5:00 PM
but they are determinable via the running process anyway
 
^
I am also intrigued that the immediate window implements a ITypeInfo. I sure didn't expect that. Does that imply we can manage that?
 
Yeah the immediate window is essentially a separate project
that's how vbWatchdog reports it as well
 
does that means in theory we can now send commands to immediate window to run things?
 
@WaynePhillipsEA What is all that? Is it possible to give a caveman explanation so I can understand?
 
As we can't execute code, I don't think so
 
5:03 PM
OK.
@IvenBach let us turn to page 103,954 of "Basic COM"....
:p
seriously - COM objects can optionally implement interfaces ITypeLib and ITypeInfo which provides you with metadata about the objects.
 
The ITypeInfo::AddressOf member is implemented though, for static members, but what it returns is not a valid function pointer. I need to look at that.
 
When you use something like an object browser, it is basically using ITypeInfo to tell you about various classes and what methods they can do.
 
@this That's the kind of caveman explanation I can understand.
 
So, when ever you create a custom VBA module/class
 
It returns something... but I'm not sure what it is just yet
 
5:05 PM
VBIDE behind the scene creates a ITypeInfo to describe that
Which is needed because after all, VBIDE needs to know how to run it
so what Wayne did is get us the access to those type informations that VBIDE would not expose to us via its API.
HTH, @IvenBach
 
@this HTH?
 
Hope that helps
 
Oh.
The only thing I could think of was "How The H***".
 
Sure that works, too. :p
 
i am hoping to get a WIP PR out tomorrow for this initial work.
 
5:13 PM
Awesome. look forward to it!
 
 
2 hours later…
7:07 PM
@WaynePhillipsEA You probably already thought of it but just in case - it might help to run a AddressOf on such member and send it to the C++ function you define. That might give clue as to whether the something is a pointer offset, a handle or maybe just simple obfuscation of the pointer.
 
hey @this, sure. don't worry, I would spot exe code a mile off :) I'll re visit that perhaps tomorrow, but I'll certainly work out what it is and whether we can make use of it.
 
8:12 PM
Finally back after an intense debugging session.
Our deploy tonight has planned downtime, and as such, we've got to deploy at 8PM instead of 4:30PM.
Which means it'll be a late night for me.
 
8:39 PM
I love the first line of this question: stackoverflow.com/questions/48329699/…
 
@BrandonBarney -1. Not enough reference to Rubberduck.
:P
 
Lol, I should've, but I literally want him to not write VBA (not sure if I made that clear enough).
 
> And please, until you cant reasonably solve the problem with Excel, avoid VBA.
@BrandonBarney ^ Put a smile on my face.
 
> Removed the ghost file "Retailcoder.VBE/UI/RubberduckUI.resx" using Git on my local repo. Seems to have done the right thing. Since the file deletion shows up in the diff here, I would think it means the ghost file is still in the master GitHub repository. Maybe this PR when merged, will remove it.
 
@BZngr How the heck did you do it?
It didn't even show up in my directory...
 
used the --cached version
It wasn't in my directory either
 
[rubberduck-vba/Rubberduck] build for commit 1af0bcd3 on unknown branch: AppVeyor build succeeded
 
9:06 PM
It's because Windows uses case insensitive filesystem while *nix uses case sensitive filesystem
Git normally does the correct thing as it has a setting to handle that situation
but in this case, somehow we got git (at least the *nix side) to accept two "different" files due to lettercase differences.
 
Cool.
 
Therefore, when Windows pulls, it presumably applies operations twice to same file
Ergo, conflict galore
 
@this Thanks for the explanation. I was wondering how this situation exists.
 
Yeah. it's fun. TBH, I'm not sure how git decides which file it applies to from Windows. Randomly? Whatever sorts the first? IDK. But I think it wasn't consistent every time so it keeps coming back with new conflicts.
Schrödinger would be so proud. :p
2
 
:)
 
9:13 PM
5 hours until we deploy, and at least one hour after that before we are finished. I'm so tired.
Also, as of two days ago, I've had enough time to just not work a day and still have all my hours in for the month :P
 
I'm told that in Japan they provide employees with a tube to sleep in
maybe you should ask for one.
 
LOL, no.
I wouldn't mind if I didn't have to support the push so late. I'd catch up on the weekend.
But I don't know how I'm going to manage on Friday deliberately burning the candle down today.
 
@this I'll have to ask some people from Japan that are helping me learn Japanese.
 
@IvenBach nice!
 
Mat is gunning for a Japanese translation :P
 
9:19 PM
I have way to much going on in my life right now. Don't ask me why I started with learning Japanese...
2
@Mat'sMug You do you do it Sensei mug... Teach me your ways for I must learn to code better, play the Ukulele better, speak Japanese, ride the unicycle with grace, achieve a 7 ball cascade and 5 ball back-cross. All while not dropping from fatigue. What is your secret?
 
@IvenBach You'll need a lot of hands for that.
 
@IvenBach wax on, wax off, wax on, wax off.
 
@Leonardo Welcome to the pond.
 
Also, you guys are crazy. I learned to code better, and left my social graces to hang.
 
<joke>What are social graces?</joke>
 
9:25 PM
I actually got that one.
Took me a sec, but I got it right before you edited.
 
seriously. ... what are social graces???
 
I'm akin to sandpaper. Abrasive and gets to what's hiding underneath. Very useful when used correctly.
 
@Vogel612 it's stuff like curtesying, saying "please" and "thanks", and extending your pinky as you sip (not drink!) your glass of wine.
 
That ^
 
oh ... fluff?
 
9:30 PM
In some contexts.
 
if you wanna to be one of those wig-wearing highbrows....
 
I got the wrong impression then. Nobody I know does that.
 
Other contexts, including the one I was using it in, use it to refer to generally not being uncouth.
 
@IvenBach I introduce you to new concept: hyperbole.
@Hosch250's usage is more generally what is meant.
 
A hyper-bowl? Is that some kind of super bowl movement?
 
9:31 PM
well....
 
So, a guttersnipe would not have any social graces.
 
Ok but would it be better than a ragamuffin?
 
Probably not.
 
and I have yet to meet a street urchin.
 
Go to a 3rd world country, there's plenty of them.
 
9:32 PM
guttersnipe basically is a street urchin.
 
Just go to any major urban city for that matter.
 
Why call them by different names if there were no differences?
 
Color.
OK, so our QA guy started doing stage tests in prod.
At least it was our company's site.
 
@IvenBach there's no secret. something takes a beating. there's a reason I feel like shit when I see a ton of PRs from all of you, while I struggle to find the time to push a single commit to my own fork! And when I was more productive, daywork would suffer, or family, or something else. Haven't touched my guitar in months...
 
@Mat'sMug Don't worry. I've started feeling guilty too.
 
9:43 PM
all?
 
I'm not alone then.
 
look, all my last PRs are literally hacked together in the browser because I needed to do something with at least remotely clear requirements
I'm even struggling to keep up with all the stuff that's happening...
and I haven't been writing CR answers in months
 
I'm so happy this project has all of you to keep it alive and thriving
@Vogel612 me too
 
RD is being completed by failures. I've found my home.
3
 
^^
 
9:48 PM
へえ、@IvenBach は日本語がちょっとできますか。
 
Don't tell me you speak Japanese.
You just used Google Translate.
が = ka and か = ga. Those are the only 2 I remember.
Lunch time.
 
ケルンの日本文化会館で日本語のクラスに行っていますから、ちょっとできます。
 
urayamashii-su
 
@IvenBach I am learning it at the center for Japanese culture, or whatever the proper name is in English, here in Cologne.
 
TBH I find it impressive that one can commit so many different characters to memory. I'm not exactly sure how one'd manage to select the correct character, much less type it on only 100-odd keyboard.
 
10:03 PM
They have 46 syllables.
When you type, you use a kind of autocompletion to convert it into kanji (the Chinese characters).
 
it's called "IME" most often
 
Ok, I get that part at least. What I still don't understand is how do they know the right character based on the 46 syallables?
 
It is kind of funny that some of the Japanese teachers no longer know the proper stroke order for some kanji.
 
うらやましいす。じかんわ みつかれません
@this there's some rules for how you combine certain radicals
so, most proficient readers can often guess the meaning of a character by separating it into it's radicals
 
@IvenBach BTW, the two characters are the other way around.
 
10:27 PM
@M.Doerner I never claimed I knew it, just that I was learning :wink:
@M.Doerner Nothing coherent. I only know a couple words from Settlers of Catan what I played with Japanese speakers on Monday.
Found out that sheep and coffin vary by a gi/ji. #MuricanMistake
 
huh?
hitsuji vs hitsugi ...
interesting ...
better than mixing up hitsuji and shitsuji, though..
 
IOW, a butler is a sheep who ends up in a coffin.
 
shitsuji = butler?
 
10:43 PM
yeap
 
mugi = wheat, renga = brick, sheep = hitsuji, kouseiki = ore, wood = ki. I can't remember the other stuff I wrote down.
 
It's a start.
 
ichi, ni, san, shi, go, roku, ?, hachi, queue (i used phonetics on that one), ju, juichi, juni, ... up to 19 I can do. 2D6 don't ever let me make it to 20.
#GottaStartSomewhere
 
11:02 PM
@IvenBach roku, shichi/nana, hachi, kyu, jyu
and 20 is just nijyu
hmm ... juu is the canonical romanization it seems
 
I'm only going by what I was told. I haven't yet started with numbers.
 
actually counting in japanese is easier than most european languages
 
Still drowning with Hiragana and Katakana.
 
German, English and French AFAIK have different words for the teens
and french has weird AF stuff with their "four twenties"
 
Are you also a linguist too?
 
11:07 PM
nah. just had english, french and latin in school
 
Yep 'Murican schools fail pretty hard compared to other states.
 
and I'm a japanese-enthousiast. not that I ever found the time to learn hira-/katakana
@IvenBach that's a nonstandard curriculum here as well...
 
ffffsss.... You know more than me.
 
usually latin is not a language you can learn at schools
neither is ancient greek, which would've been the alternative to french
 
~.~ you lied about being a linguist.
 
11:08 PM
LOL.
 
I actually had someone in my year that decided "This isn't enough dead and weird languages, wasn't there a course in hebrew, too?"
And he was the club leader for the Go-Club
 
The coolest thing I can claim to fame is juggling, and that get's associated with clowns...
 
Which Hebrew? Ancient, or modern?
 
#FunFact: you aren't nerdy enough if you don't speak Klingon.
 
@Hosch250 dunno
 
11:10 PM
I'm so looking forward to my 'Cancer the Clown' costume this coming Halloween.
@this Does Elvish count? Cause I heard that's a thing too y'know.
 
but to the last of my knowledge, he's gone on to study theology, so he probably preferred ancient, if available
 
@IvenBach a crab dressed up in a clown costume?
Yeah, elvish counts, I guess. After all someone put in a lot of effort to make them up.
Though whether one is more nerdy than other is debatable. :p
 
@this Nope. Going to get a clown costume but make all my jokes be double entente (whatever that french word is) full of sexual innuendo.
They'll never think about clowns the same, evar.
 
double entendre
 
um.
 
11:12 PM
"hear twice"
 
entendre gives me red squigglies...
 
or "double take" in Engleesh
 
I should have gone with my gut.
It seems @this is also a linguist...
 
strictly hobbyist armchair type
 
I fail hard at English alone...
 
11:14 PM
Well, you are not the only one. I hardly write it nuff enough. I always forget my articles and subject/verb agreement.
 
As I only realized last week because a non-native speaker told me, beyond ten counting in german is kind of backwards.
Btw, counting things in Japanese properly is rather hard because you have to remember which counting particle to use.
Night!
 
11:46 PM
@M.Doerner isn't it the difference between counting and enumerating that's weird there?
like... ichi, ni, san, ... vs. hitotsu, futatsu, mitsu, ...
where you confusingly can also go hitotsu, hitotsu, hitotsu as well if you damn well please...
 
@Vogel612 Versus 1, 2, 3 and Next, Next, Last in English?
 
curious - would those terms be used for ordinal ranking, too? (e.g. 1st, 2nd, 3rd)
 
@Hosch250 AFAIK, yes
@this AFAICT, yes. Ask on Japanese Language if in doubt...
don't pin me down on it, because I have no clue.
never formally studied japanese
 
Typical software dev, LOL. We just do it with no clue.
 
my GF is regularly amazed at with how little information I can make do
 
11:50 PM
Well.... There are two types of people.... one who can extrapolate from missing/incomplete.
 
@this Make that three.
Ones who can extrapolate, ones who work with what they have, and ones who can't even process what they have.
 
ya, the last one is particularly weird.
 
The first two have their place in various circumstances. The last is, well...
 
depending on my tiredness and caffeine level I'm in the last category sometimes...
 
I'll be in that last category before I'm done tonight, probably.
No show-stopper bugs found since this morning.
A few tweaks need to be made, but only on systems that we either can't or aren't using currently.
The changes made it so we can use a few long-running edge-cases in our system without making our servers unresponsive because we can now run them out of process.
 
11:56 PM
why do you need to go out-of-process for that?
couldn't you spawn a low-level worker thread in the background?
or even a low-priority daemon thread in your appdomain?
 
We went to message queues.
 

« first day (1322 days earlier)      last day (1858 days later) »