« first day (645 days earlier)      last day (2535 days later) » 

00:00
Distributing XLSM workbooks is a way to provide add-ins to users that don't have rights to install exe's or register COM addins. But, the problem with "Selling/Distributing" XLSM workbooks is that protections are weak, and users can easily steal your source code.
RELOAD!
[retailcoder/Rubberduck] 4 commits. 45 additions. 1479 deletions.
[rubberduck-vba/Rubberduck] 3 opened issues. 3 issue comments.
[Vogel612/TranslationHelper\‌​] 6 commits. 104 additions. 79 deletions.
but if users have these workbooks installed, Rubberduck is currently choking on them.
00:20
@ThunderFrame Classic! Sorry, my TZ is UTC+12. I was out playing with the kids.
And, no it isn't on GitHub ATM.
However, I am interested in collaboration. If you're interested in participating, let me know. In the end the project may be open-sourced.
00:46
I'll write refactorings for you, maybe.
Rubberduck and VSD are higher on my priority list for now.
@Rossco I'm GMT+10, across the ditch.
01:40
1.4.3 downloads = 2320.
02:26
> Products like [Unviewable+](http://www.spreadsheet1.com/unviewable-vba-project-app-for-excel.html) are marketed at VBA Developers that want to distribute/sell Excel Workbooks and protect the VBA <u>in a way that keeps the module content *unviewable*, even if the project is unprotected using other techniques.</u>. Depending upon the implementation and settings, the modules are viewable in Project Explorer, but the modules don't display properly in VBE.

The "unviewable" status is achieved, *I
02:50
> That's unfortunate. Can you confirm that such modules would have *invalid names*?

Can such projects be properly protected by the users?
03:08
> There are some sample projects on that page I linked. Direct download link here
> Just to be clear, Rubberduck should not try to circumvent the psudo-protection, but nor should such projects break the parser....
> MVP's are using these protections on their commercial products, and ideally they'll find a use for RubberDuck too. So fixing this issue is important because it gets RubberDuck working for MVP's.
@Rossco ^ maybe your code can determine what is "invalidating" the project, and making the VBA unviewable?
04:01
@ThunderFrame to make it fun, why don't you send me a workbook that has been 'protected'? That way, I can't cheat!
rossknudsen at
gmail
 
1 hour later…
05:32
@Rossco issue #1185 (link above) has the download link to a bunch of them. I think there are a number of different "protections" that they offer, each offering various "features" (and, no doubt, various prices), so I guess each sample workbook has an example of each type.
 
4 hours later…
09:24
0
Q: Two similar tests on different variables

Yassin HajajI've had a doubt about something. Let's say I have 4 variables, A1, A2, B1, B2. If A1 > 0 or B1 > 0, I have to check if A2/B2 is also > 0. What I have is the following but I'm finding it a bit redundant. IF A1 > 0 THEN IF A2 <= 0 THEN DISPLAY ERROR END IF END IF IF B1 > 0 THE...

 
2 hours later…
11:26
@Mat'sMug is your code without multithreading on github somewhere?
 
5 hours later…
16:30
@awgaya I couldn't do it yesterday :-( ...it would be in my fork in the TypeInfo branch otherwise
17:10
had a few ideas about the design of the parser in general if you don't mind
why exactly are we trying to run the parsing in multiple threads? is it because of performance or so that the UI doesn't lock up?
17:25
how about we split up the rubberduck parser into separate classes, make everything synchronous and create a new interface that represents the entry point into the parsing/compilation functionality? that entry point could provide async facilities, but for the entire parsing
here's an ugly, incomplete diagram of some of those ideas, gliffy.com/go/publish/10221475
we could make the parser state immutable, create one state per module then aggregate it into one project wide state that is also immutable
testing would be easier as soon as that stuff is split up plus we might even introduce an in memory event bus for communication so that the parsing stuff is further decoupled from the GUI
just some thoughts :p
17:48
I like it. I won't be able to work on my fork until much later tonight. When I get the MT stuff out (and the tests working again) I'll merge into next so we get the COM reflection stuff, and then next will be ready to accept a new parsing strategy
@awgaya ^^
sounds good!
18:46
[retailcoder/Rubberduck] retailcoder pushed commit 5fe87117 to TypeInfo: reverted MT stuff; tests pass but there's still a Debug.Assert call that fails in parser state.
[retailcoder/Rubberduck] retailcoder pushed commit dad51b42 to TypeInfo: call stack issues are causing the post-resolve "Ready" state to be overridden by the "Parsed" state that triggers the resolver.
At least now I understand what's going on and why
@awgaya I managed to spare a few minutes to get it to "work" (mark the quotes), do you think I should PR like this?
The whole thing relies on multicast delegates (aka events), and the call stack basically gets a beating
a beating lol
where's the beating part in code? is it in the ReferencedDeclarationsCollector class?
also, do the tests still pass?
it can't be that bad if pitterling's 20 or so modules still parse correctly
ah they don't check the declarations anyway
19:06
Yeah the tests pass.. but the parsed state triggers the resolving; that call doesn't return until state is set to ready, but then state goes back to parsed despite actual state being ready
Anyway gtg now
ok, cya. I'll be gone next week btw.
Just ran your typeinfo branch code and it seems fine/fast even though it's all synchronous. Fine by me for a PR, altough some middle man running the whole thing asynchronous so the UI doesn't block at all might be a good thing to add...
I wouldn't make everything multi threaded like before, that seems to be too much for what we need...
 
4 hours later…
23:11
> The Ribbon XML allows developers to name their own callback functions, so there's no way to know, from the VBE, which procedures might be called by a Ribbon CustomUI control.

In order to identify the callback names, we'll have to inspect the CustomUI XML, and while that can't be inspected from the object model, it can be found by unzipping the host document, finding the path of the CustomUI files, and then parsing the XML.

I suspect that the best approach is going to be using the OpenXML
monking @Mat'sMug
Hello!
^ thoughts on using OpenXML SDK to inspect the Ribbon callback names?
Sounds like fun... not for 2.0 though
I'm afk / not home btw
> It seems that Unviewable+ offers configurable levels/features of protection. Presumably most instances would include the use of a Protected Project (so Rubberduck *should* handle those without any trouble), so the only problematic projects are those that *aren't* protected projects, but *do* have *unviewable* module "protection".

We should be maybe treat those special case projects as a known issue for now.
23:52
> Rubberduck's intended behavior when *any* module can't be parsed, is to skip identifier reference resolution and report a parsing error; this leaves refactorings and inspections disabled, by design.

I think we should be able to tell an *actual* parsing error from a `COMException` thrown accessing a module's code, and pretty much ignore the throwing project.

« first day (645 days earlier)      last day (2535 days later) »