« first day (1650 days earlier)      last day (1530 days later) » 

12:00 AM
I should have qualified my question - desktop applications.
 
RELOAD!
 
ah yeah. from what i've seen it's not intrinsically web, think it can be used in a scripting context too. Not sure if there are UI framewroks for it though
 
[rubberduck-vba/Rubberduck] 1 opened issue. 13 issue comments.
 
Monking
 
from what I saw from a quick google, it seems it is possible to create a desktop application with python; just not very common to do that way.
@Phrancis here's a bowl of porridge.
 
12:02 AM
@this That is a correct statement. I've made a very small one for learning. Not a huge fan of tkinter but then again I hate making GUIs
 
actually my uni starts of with Scratch.... #GottaStartSomewhere... that was a dull module!
 
Yeah I can see why.
truth be told, I would much rather write a DLL than an application.
 
Python is used a lot in data science.
 
@M.Doerner yeah that fits - afaict it makes it very easy to work with sets
 
I think that is primarily because some people sat down and wrote some very useful libraries.
 
12:05 AM
Python is relatively popular in Linux development too. A bunch of the Linux Mint utilities are in Python IIR.
 
I am currently learning it.
 
I've been meaning to.
 
That made me realize how much I like my balanced blocks.
 
I will need to when I retake the algos module... bailed when the compsci got serious...
#TooLazy - frameworks abstract all that jazz these days
 
VBA & VB6 consistently show up near the top of any "most dreaded languages" lists. Why is that?
 
12:07 AM
(you probably don't want me working on the hotpath of RD ;-) )
 
Nah
 
@TweetingDuck lol "not enough jQuery"
 
mwahah
I'll be hanging out around here again I think. A friend of mine bought me these as a xmas present:
 
12:24 AM
@Phrancis nice!! If you're ever looking for some nice OSS project to contribute to... don't hesitate!
 
Like this one? :P
@FrancisVeeGee If only there was an add-in for the VBE that added all these awesome features! 😉
 
Just don't let me infect your VS. Then you can't build RD...
 
@IvenBach worrying that we still can't repro that...
 
@Phrancis whistles innocently
 
duck check: if we can get into the debugger and the VM, we can potentially replace the VBE wholesale?
(big if, i know)
there's the forms designer, but that's just an ActiveX component afaict
 
12:37 AM
Pretty sure VBA's VBE is too tightly integrated into the host. VB6 on the other hand... Compiling from the command line is huge.
 
@mansellan I'll let you know if I figure it out on my own.
 
As cool as Rubberduck.MacroRecorder would be, that's a tough hill to climb.
 
@Comintern hmm... might be worth revisting the VBASDK - i know it isn't in Office, but whatever its wrapping will be. It has classes for Recorder.
 
Trust me, I would love to have an Excel macro recorder that output decent code.
 
IIRC the host pretty much tells the VBE what to write
 
12:40 AM
ReplaceActivateAndSelectRefactoring
 
Interesting.
 
> The Recorder object is used to record text into a single macro. Recording text in this manner typically occurs in response to user actions in the host application. While recording, if the Code window for the project item containing the recorded macro is visible, then the user can watch the lines as they are recorded.
 
So if the recorder emitted ActiveSheet.Select, we could intercept that and replace it with With ActiveSheet?
 
:-)
i don't see why not... host-specific ofc
 
12:45 AM
Would definitely be a plugin idea. Rubberduck.MacroUnfuctor
 
Rubberduck.Unselect
 
Rubberduck.Deactivator
 
looks like the recorder knows nothing of the host's OM. It's literally just capturing text.
maybe that explains some of the bloated macrocode - they just took the easiest path when sending text
 
Good thing RD has a parser. Capture the entire recording, parse it, refactor it, and spit it out.
 
~Slaps on winter hat~
 
12:58 AM
They wear those in SoCal?
Is this legit, or am I abusing TestCase?
Assert.AreEqual(updating ? expected.Count : input.Count, actual.Count);
I don't want to hard code a number either, because it makes the test setup too brittle.
 
@Comintern I just got one for #WinterBash.
Plus I always has me hat on. I don't go nowhere's without it.
 
Nice. I tend toward the hat too, in that it keeps a shaved head from sunburning.
Huh. The RD spell checker doesn't recognize literal strings. This... @"C:\Windows\System32\reference.dll" ...is saying "eference" isn't spelled correctly.
 
1:23 AM
It's that time of year again! HATS! Now live on Stack Overflow and all the Stack Exchange network sites: https://winterbash2018.stackexchange.com/
 
1:36 AM
@Comintern FWIW, if we hijack VB6, no reason why we can't hijack VBA; it'd be a matter of self-hosting and lying to the project that we're Excel/Access/whatever.
 
True, although you'd also need to be able to stream the compiled project into the document while the host has a lock on it.
 
@Comintern #EscapeFail
 
@Comintern I was thinking more simply doing it entirely on ourselves. That would suffice for running unit tests headless.
 
@Comintern feasible if we're in-process and wired through the internal storage API, no?
 
1:39 AM
That only took me 2 days to figure out. I kept thinking "that looks right..."
@MathieuGuindon Ahhh... I didn't think of that.
 
@Comintern yeah, right =)
 
hmm. doesn't that imply hooking into the host's implementation of the storage API?
 
@this underneath it's all IStorage
standard API
 
hmm I see.
so yeah, probably can easyhook that.
 
its up to the host to translate that into however it wants to physically store it
(if at all, it doesn't actually have to persist it)
 
1:41 AM
I do hope the hosts don't use weird schemes, though.
 
@this I think ThunderFrame might have code for that on his repo.
 
would these just be standard exports? not sure how all that C stuff works, but perhaps the VBASDK just COM-wraps a set of standard C interfaces?
way out of my zone though
 
I remember him saying there are extra binary stuff that aren't documented in the stream. What I wasn't too sure about is whether host decide to add their own specific encoding
 
so I could be talking gibberish
 
Read: more work to parse
 
1:45 AM
Wait, wut? MS didn't document something?
 
IKR? Scandalous!
 
anyway, need sleep. night all
 
night!
 
AFAICT, they're all standard interfaces.
 
Could that get us in trouble in any way though?
 
1:45 AM
@mansellan 'night
 
@mansellan night!
 
@MathieuGuindon Has that ever stopped us?
 
I think that if we were to get in trouble, we'd be already.
Heck, Wayne'd be in hotter water.
Ditto for that repo that shalt not be named.
 
Reverse engineering isn't "protected" in any way unless you copy something AFAIK.
 
I wonder if seeing us getting anywhere close to succeeding at it, could motivate them to open-source the VBE
#WishfulThinking
 
1:49 AM
#InstantPullRequest
 
@Comintern hmm, I thought it's usually licensed for against
 
Internal operation, sure. External interfaces? Not so much. I can't expose a public interface and say "don't call this".
It's like not needing a search warrant to dig through its trash.
 
shaky analogy but ok
 
IDK, there are some pretty trashy interfaces...
 
But if the garbage bag is on the porch, you need the warrant
 
1:52 AM
Right. Now I'm picturing the VBE with a porch.
You know the porch swing is dangerous to sit on.
 
And the screen door is ripped and the wooden door behind it is open, and you can see a puddle of blood in the kitchen inside
 
lol
 
flies. flies everywhere
flies bugs...
 
@A_Bryant_ @JonahSenzel @Pentadact Scala has implicit conversions They are great fun
I may have replied to that
@trylks @A_Bryant_ @JonahSenzel @Pentadact VBA has them too!
 
2:04 AM
far too many languages has them, if you ask me.
"let's make it easy! Let them add "1" to 1 and it'll just work!"
Yeah, right....
 
OK, I need an opinion on a test.
        [Test]
        [Category("AddRemoveReferences")]
        public void TryAddReference_CallsAddFromFile()
        {
            var reconciler = ArrangeReferenceReconciler(null, out _, out _);
            ArrangeAddRemoveReferencesModel(null, null, out var project);

            var references = project.Object.References.Count;
            reconciler.TryAddReference(project.Object, @"C:\Windows\System32\reference.dll");

            var expected = references + 1;
            Assert.AreEqual(expected, project.Object.References.Count);
The Assert relies completely on mocked behavior of the Mock<IVBProject>. Are we cool with that for testing to see if AddFromFile is called, or should I bust out a mock of References?
 
the tests should be self-contained as much as possible, so if you can't be certain, better to make sure
we woudln't want it going red on some poor sod's random PR, do we?
 
OK, I'll spit the Mock<IReferences> out and use Verify.
And if some poor sod busts the MockProjectBuilder, they still need to fix it.
 
agreed
 
 
2 hours later…
3:52 AM
> The issue is with VBE, not with how we register our libraries. VBE has had exhibited strange behavior in how it choose to display libraries in a list and this has been observed even with Microsoft's own libraries such as shell32.dll.

For that reason, I'm inclined to close this as <kbd>status-bydesign</kbd> with the suggestion that the workaround is to use the upcoming reference explorer.
 
 
2 hours later…
5:56 AM
[rubberduck-vba/Rubberduck] build for commit ecf8307c on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
6:20 AM
@Duga Yup, no clue what up with that. Thanks for the ever so helpful log...
 
 
1 hour later…
7:48 AM
There a rubber ducky secret hat in winter bash!!!
 
@Vogel612 Not yet - I want to, but keep getting sidetracked by RL. :/ I expect to be able to look at it tonight (might not work out due to wedding anniversary) or tomorrow otherwise. I any case: I've not forgotten about it. :)
 
 
2 hours later…
9:29 AM
@MathieuGuindon Hi there Mat. I only operate from ResX Manager so I translate all red field into Czech :-) So if Template.resx was localized, it was because it was in ResX Manager.
 
 
3 hours later…
12:39 PM
> Agreed! I get this feeling many will even forget what the VBE's Project References dialog even looks like in a few weeks... I'd suggest we default the RD libraries to the pinned tab.
[rubberduck-vba/Rubberduck] retailcoder is bored so why not move a project card
 
1:18 PM
[rubberduck-vba/Rubberduck] build for commit ecf8307c on unknown branch: AppVeyor build succeeded
 
@Duga so exactly what went wrong the first time?
 
No idea.
> Command exited with code 1
 
Read: I'm gonna faceplant cos it's fun!
 
@Phrancis Thanks for the tip! I just picked up a "very good" condition used copy for <$7. Once I work my way through that, I guess I'll no excuse to not fix the bugs I find on the duck
And nice to see you'll be back soon
erm.. used copy of Head First C#, to be specific, since there were 3 books in that picture...
 
1:54 PM
Umm... what's the difference between Head First C# and Head First C# A Learner's Guide to Real-World Programming with C#, XAML, and .NET (other than the length of the title)?
Short title: this book covers C# 3.0 and Visual Studio 2008,
long title: Updated for Windows 8.1 and Visual Studio 2013,
both are somewhat out of date... are there enough differences between 2008 & 2013 that the newer one is worth it?
 
yes
C# is currently at 7.2, 8.0 is on the horizon
IIRC C#5 was shipped with VS 2013
that's two major versions moved you'd be missing out on if you took the older one
 
@Vogel612 Are you sure? Don't waiver. Please be decisive! :)
thanks. Order changing...
 
there's an old SO question asking how to enable C#6 in VS 2013. That kinda loudly implies C#5 was working just fine in that
I think .NET Framework also moved a major version in that time..
 
not sure I'd call bump from 4.0 to 4.5 "major"
AIUI, unlike the move from 3.5 to 4, 4.5 was a in-place upgrade of 4.0
 
my timeline was slightly off.
I'd assumed 2008 was on framework 3.5
 
2:04 PM
I seem to remember 2010 having had the 4.0
 
that sounds right, yea
 
To be fair, I don't think there was much of adoption back then, especially not for desktop.
web servers had it easier when it comes to upgrading the .NET framework.
 
@Vogel612 Wrong. C# is at 7.3 :)
Blog about C# 8.0. That ranges stuff is sweet.
Also, I got a half-dozen hats for apparently not being active when the hats were released?
 
read it again and noted that I missed before:
> You can also open, launch and debug WPF and Windows Forms projects in Visual Studio 2019 Preview 1. It is currently possible to open .NET Core 3.0 projects in Visual Studio 2017 15.9, however, it is not a supported scenario (and you need to enable previews).
GTK
 
@Hosch250 ummm...
> We’ve been pretending for the last fifty years of object-oriented programming
OOP has been around for 50 years?
 
2:13 PM
Muahahaha. I'm screwing recaptcha so bad.
I'm training that buildings are busses and busses are buildings.
It actually accepts it too :)
 
@Hosch250 if driverless cars crashes into buses & buildings, we know who to blame.
 
Yep.
 
ooohhh... I likey!
 
@FreeMan weird I don't see that on the page....
 
@Hosch250 congrats, you're an adversarial network
 
2:14 PM
LOL.
 
@FreeMan development on Smalltalk began in 1969, it appeared in 1972, which is 46 years ago
 
@this ^^
@Vogel612 fair enough...
I wasn't really into programming then, so...
 
null itself was invented in 1965 by Tony Hoare
soo ... that's 53 years old
 
2:35 PM
I'm not sure whether that impressed his colleagues or not... "Ohh, look at Tony! He invented 'Nothing'..."
 
3:11 PM
mornin
 
'morning!
 
'sup?
 
getting unusually high traffic on that scientific study twitter survey
I like that "IDE is under-featured" is the clear leader
 
I'm surprised. I would have thought the "isn't real OOP" would be the leader
 
"not enough jQuery" aka "it's old stuff, we want the new toys" would have been a close second.
wait, jQuery is old stuff too isn't it?
I'm old stuff...
weeps
 
3:22 PM
IDK. JS is an anomaly.
 
makes me wonder if that means RD maturing could translate into VBA/VB6 being less dreaded in the future
 
@MathieuGuindon Remember that seventy-something-years-old VBA newbie? You're not old.
 
Consider that with JS codebase, you have much more freedom to change libraries & dependencies willy-nilly.
You can't really do that with a traditional compiled language for a desktop application.
 
but, Python
 
3:25 PM
hmm they do have that package management thingee, don't they?
 
think so
 
again, my exposure is limited but AFAICT, python on desktop is primarily about scripting and getting stuff done rather than building GUI-based applications
 
they do say exactly that about VBA too :)
 
LMAO
the difference being that VBA comes with GUI built-in.
 
@this JS also has package management tacked on
 
3:27 PM
Python, you gonna install some kind of GUI package, etc. etc.
 
python actually loads proper libraries through import
@this not necessarily
 
> RD .4309

This code survives the indenter exactly as formatted:

```VBA
If col > reportSettings.FirstCol + 1 Then
With .Cells(row, col).Interior
If report.Cells(row, col) > report.Cells(row, col - 1) And _
report.Cells(row, col - 1) <> vbNullString Then
````
This version is indented to match the above:
```VBA
If col > reportSettings.FirstCol + 1 Then
With .Cells(row, col).Interior
I
 
@Vogel612 true and there's actually more than one package manager to choose from, and heck you could change the package manager if you wanted and nobody'd notice (not counting the new crop of bugs resulting from the change...)
 
"nobody" being all of the dev team
because of course the package managers are mutually incompatible and have different build processes
though npm is pretty dominant from what I can tell...
gulp and bower seem to have died down
 
@Vogel612 google search last night led me to believe that it wasn't included OOB.
 
3:29 PM
yea, it's not OOB, but that doesn't mean you put it into every project
JS doesn't really have a GUI either, FWIW
people just pretend that HTML is the GUI for JS, which is ... mostly bollocks?
I mean... it's a useful abstraction to think of it that way, but it's really a separate thing
 
hmm i wonder if there's actually a GUI package for node.js....
 
I'm 100% sure someone wrote a native binding for QT
 
ooh, shiny... GH now puts the issue status, name, number, and author in a banner at the top when you scroll it out of view
 
okay so it's not just me. Also happens on PRs
awesome for context :)
 
3:35 PM
@MathieuGuindon I was just about to comment on that.
 
nothing for me. :(
 
I would be nice if it put the labels in there too.
 
@this I'd blame the furry browser :)
@Vogel612 huh, not for PRs here... dafuq
 
> Linking #4342 (both are related to issues in FunctionAlign).
 
ugh... AB testing, apparently
 
3:37 PM
actually. No. no browsers has it.
yeah, probably. I'm the B evidently.
 
wth it's gone now
 
bleh
 
GH must be gaslighting you.
 
@Vogel612 might be per-request
 
:48023390 If you can't say sumpin' nice, don't say nuthin' at all...
 
3:39 PM
Probably saw my comment here and pulled it to implement putting the labels in there too.
 
@MathieuGuindon my furry browser shows it.
 
It's ok, Mat. You can still hate the fox.
 
ha! yeah, stopped here, too.
 
3:41 PM
furry browser was something completely different for a few seconds there ...
 
@Duga hmm... maybe today's should just be closed as a dupe. The fancy-pants "related issues" pop up didn't show 4342
don't go there. don't go there. don't go there.
 
weeeeellll....
 
@this will do!
:D
 
interesting approach:
1
Q: EXCEL check memory used for each calculation

JennyI have a excel that contains about 20 sheets. I have hundreds of calculations among those sheets. Is it possible for me to figure out a way to find how many memory is being used for each calculation? Thanks.

 
3:45 PM
@Vogel612 <gutter-ball.gif>
 
@MathieuGuindon izzat an actual meme?
'cause the first video I found about a gutterball looks like it might have some cringe-meme potential
 
lol
could be, IDK
@Comintern Excel's calc engine does cache stuff.
 
I don't doubt it - it would be silly not to.
 
I wonder how "RAM consumption went up" automatically means "MEMORY LEAK!!"
 
by forgetting that leaks mean it never go down
 
3:54 PM
A memory leak would be if the cached data remained in memory after the worksheet is closed. As long as it's opened, RAM consumption going up means nothing other than Excel allocating more memory for its purposes. — Mathieu Guindon 7 secs ago
 
More likely that the OP is leaking (since the OP is testing a c++).
 
^
 
I took the subtle approach ;-)
 
Always, always, blame the developer first.
 
when in doubt, blame Microsoft eh
 
3:56 PM
My bet would be not freeing tagVARIANT structs pass through the marshaller.
 
@MathieuGuindon except that the developer is closer in the line of blame, so it's to the developer first.
 
You could apply for a position in the Excel product team at Microsoft, attach a debugger and find out. Other than that... — Mathieu Guindon 6 secs ago
 
lol
With Winux or whatever then hell the Windows Linux extensions are called, you could also run Excel in a Valgrind session.
 
OP's question is basically "how do I debug proprietary internal APIs?"
 
That might take weeks though - I bet it would slow Excel to a crawl.
 
4:02 PM
@Comintern WSL
 
That's it.
 
I think I like "Winux" better
 
That might already have been trademarked.
 
4:21 PM
@ticker makes me want to try and search the references list and see if there's anything related to power-pivot... if only I could search that list...
downloads preview build from AV
 
just wondering - does excel have a quick way for not creating extra rows when pasting in a bunch of text that contains line breaks? It messes up what should be a tabular format?
 
if it didn't do that, people would complain that they can't paste tab-delimited "CSV" data into a worksheet
 
Not AFAIK.
It's a trivial macro to write though - just grab the clipboard contents and set it to a cell's value.
 
except it's not consistent and breaks on random columns
crappy PDF....
I think it's tab delimited but the line breaks means that the half of the row get put on the new line at wrong columns. FUN.
 
@this GTG, but quick idea: Replace CRLF with placeholder, paste, re-substitute placeholder?
 
4:33 PM
it comes from PDF
opening the PDF in Word gives a proper table and from there, I can do something about it. but bleh.
 
> I've just had a couple of head scratching hours due to defining a function with a parameter array in an interface.

To prevent compilation errors the class procedure also has to be declared with a paramarray. However the array received by the class procedure is consolidated into a single variant containing an array, rather than an array.

At the interface you have

Paramarray(0)
Paramarray(1)
Paramarray(2)... etc

at the class procedure you get instead

Paramarray(0)(0,0)
Paramarr
 
@Duga Now that's interesting. I knew about the paramarray but didn't think about using that in an interface.
 
I'm not clear on what the triggering code would be. Merely using ParamArray in an interface member signature?
 
> To be clear, are you calling the class procedure from the interface?

If that is the case, then the workaround would be to define the class procedure as taking a `Variant` rather than an `ParamArray`. If the class procedure is public/friend, then both the class procedure and the interface procedure should call an internal procedure that takes a `Variant` rather than `ParamArray`.

Agreed about an inspection but need to think about how it's going to be handled.
 
Option Explicit
Implements Class2

Private Sub Class2_DoSomething(ParamArray foo() As Variant)

End Sub
seems legit
not sure interfaces are related to the issue to begin with
 
4:40 PM
wait, you can As an ParamArray?
I thought that was illegal.
 
wait did I try to compile that
 
I think you can't have an As type on a ParamArray.
 
compiles. happily.
must be variant
 
i thought I remembered documentation saying no As ever.
 
4:42 PM
i.e. the Variant is implicit - making it explicit isn't a problem, and syntactically fine.
 
but wouldn't be first time that a) documentation's wrong or b) my memory's lying again.
yeah, that makes sense.
 
Can't be anything other than a Variant(), so I don't know why it would complain.
What he's describing jives with what I found out about the RPC mechanics for that IsMissing answer.
 
Yes, I've seen that before but that's a case of calling a 2nd function and passing the 1st's args into 2nd's paramarray.
 
seems about right:
 
He seem to think that simply having it on the interface causes the problem. I'm not 100% sure about that, though.
But, I do think an inspection is good to have to warn about that.
(the bit about passing paramarray into another paramarray, I mean)
 
4:47 PM
> Not sure the interface is relevant. That's just a by-product of `ParamArray` being, well, a `Variant` array. A procedure with a `ParamArray` parameter should take steps to validate whether it's getting an array of values, or a single-element array containing an array of values. Any method passing a `ParamArray` argument to another method taking a `ParamArray` parameter, will be passing it as a single-element variant array holding the array of values.

The inspection should be about a `ParamA
 
@this I'm 100% sure the interface is irrelevant
 
This merits some playing around with once I get tests done for the references.
 
yeah, I'm sure - just never thought to try and implement an paramarray in interface before.
 
man.. i have one hell of a monster of a... thing that has been screaming for a refactor for years now
essentially i give it a path to an access database/ sql server DSN and it does a data scrape
 

« first day (1650 days earlier)      last day (1530 days later) »