« first day (263 days earlier)      last day (2917 days later) » 

00:00
RELOAD!
[Cardshifter/Cardshifter] 1 issue comment.
[ckuhn203/VBEX] 2 commits.
[retailcoder/Rubberduck] 12 commits. 2 opened issues. 8 closed issues. 3 issue comments.
[skiwi2/HearthMonitor] 5 commits.
Damn we rock
2
 
2 hours later…
02:05
@RubberDuck you're not going to believe this. it took about 5 seconds to get this:
Get what? Please tell me you have good news.
917 issues
Thank you. I needed good news.
well, I'm going through them now to see how many are false positives...
I can't get a good install. I've been at it for hours.
02:06
but the performance issue seems resolved now :)
hmm the first two give me NullReferenceExceptions
and then VariableNotAssignedInspection seems to think a private type is a variable.
ah, I know what I was trying to do with that
got it wrong though
if a field is of type [UDT], then don't check to see if it's assigned << that's what I meant to implement :(
I just don't get it. It builds, it installs..... all the keys are there.
Add-In won't launch.
oh and non-returning function inspection only accounts for value type assignments - Set [function-name] is ignored.
@RubberDuck did you wipe the registry?
Didn't have to. The installer did a pretty damn good job of cleaning up on un-install.
hmm
mixing up x64/x86 keys?
Idk. Maybe.
LibGit2Sharp relies on different versions of libgit2's binaries.
I might have borked that.
02:12
ah, parameters locally unassigned are popping up use of unassigned variable warnings
oh
idk
I feel like I've tried everything.
did you try a new installer project from scratch?
there's been quite a bit of changes since the last release...
Hmmm...... that might be worth trying.
I have a lot of small bugs to fix before we can release this into the wild
Can't really release it until I get an installer working anyway.
02:15
lol
I'll try building one from scratch tomorrow.
If that doesn't work.... idk. Maybe I'll try Wix.
I keep feeling like it's because InstallShield limited is crap.
what's the default recommended way to deploy a dll?
Using a Windows Installer. (msi, or msi wrapped up in an setup.exe)
lol, I meant, what's the default recommended way to create a .msi?
In 2012 it was Installsheild LE..... but now M$ recommends Wix.
02:18
I'm deploying an app with ClickOnce at work, but that seems a bit weird for our stuff
But Wix.... it's XML. It's code. It's meant for CI.
Which.... at this point. I'm seriously considering anyway.
hey, whatever works! perhaps that one can stay in the solution, too, then?
Hook up CI to build it after every check-in to master, then it's just a matter of going out, grabbing the installer and making sure it still works.
Yeah, Wix could stay in the solution I think.
It's just XML, so I don't see why not.
02:46
smile
0
Q: The duck that shoots code inspections faster than its shadow

Mat's MugRelease 1.1 of Rubberduck only had a handful of implemented code inspections, more as a proof of concept than anything else. For release 1.2, we now have 19 implementations of our IInspection interface - here is what happens when the user clicks the refresh button on the Code Inspections toolwin...

Promising. And entertaining.
27
Q: Replicating Visual Studio COM registration with a WiX Installer

Robert POnce upon a time, a young, naive engineer thought it would be a good idea to separate out some of the functionality for his app into a COM component, written in C#. Visual studio had all the tools to do that, right? .NET was practically made for this, right? HA! He said, this will be easy. I...

I need to document all the false positives.. sorry @RubberDuck, %completion is going to drop!
> Performance issue is solved... but there are LOTS of false positives, and a few more bugs that need to be addressed before releasing.
> This is an *unassigned variable*, according to `VariableNotAssignedInspection`:

Private Type TFoo
Foo As Integer
End Type

It's not. If no variable is declared with that type, then it's an *unused type* - but it's not an *unassigned variable*.
 
2 hours later…
04:39
> All code issues in standard modules can't be navigated to, and show up without a ProjectName and MemberName.

This looks like a regression bug.

@ckuhn203 is it in your build?
> When a parameter is used as the value of an assignment, `ParameterNotUsedInspection` fires false positives:

Public Property Set Repository(ByVal value As IRepository)
Set this.Repository = value
End Property
> VariableNotAssignedInspection is firing false positives when a variable uses an initializer: Private Function NewCategory(Optional ByVal id As Long = 0, Optional ByVal description As String = vbNullString) As SqlResultRow Dim result As SqlResultRow Dim values As New Dictionary values.Add "Id", id values.Add "Description", description Set result = Repository.NewItem(View.Model, values) Set NewCategory = result End Function values is deemed unassigned. It is also deemed unused, but that...
is a separate issue.
05:52
ah, AmbiguousIdentifier picks up way to many things... there's many more objects than what I need in the cache.
 
1 hour later…
07:15
> deferring the variable usage inspections to 1.3
> This isn't about standard or class code modules, it's about some inspections' QualifiedMemberName being wrong.
> Cached IdentifierUsageInspector query results; introduced VBProjectParseResult and changed IInspection.GetInspectionResults signature / updated all implementations to receive a VBProjectParseResult instead of an IEnumerable<VBComponentParseResult>. This greatly enhances code inspection performance, but feels like it needs a cleanup.
> extracted QualifiedMemberName code file, implemented equality/inequality operators on QualifiedContext
> closes #221, moved to version 1.2
> fixed selection bug
2
@Duga no, performance still sucks, big time.
> various inspection fixes
> fixed false positives with VariableNotUsedInspection. I think.
> removed event declaration parameters from parameters identified by IdentifierUsageInspector.
> closes #248
> Merge branch 'master' of github.com/retailcoder/Rubberduck
> It's not picked up anywhere.

Public Sub foo(bar)
Debug.Print bar
End Sub

> Parameter 'bar' is not used
TTGTB
> 95% complete
07:43
^^ we may have to do without these two for 1.2 :(
and VariableNotDeclaredInspection may not be possible at all, at least not with that grammar
I meant not declared and unassigned variable usage
There's nothing wrong with variabletypenotdeclared
 
4 hours later…
11:51
Deployment hell.... hell.
12:48
Well the 917 issues at one point were 1700+. Guess how many with the latest code?
...less than 120!
But I still find it slow; since some of the bugs were in the inspector class, I deleted the CR post (non-working code) ...for now.
13:11
_usages is where I think most of the juice is going. Gonna run a profiler tonight and find out!
14:06
Tried building a new installer this morning. I've no idea what's wrong.
Even tried Fusion logging the assembly bind. Nothing.
14:38
@RubberDuck Do you have a branch for it? I could take a look tonight
I can. Will create it at lunch time
15:05
I think I'll try a HashSet<T> instead of a List<T> for caching variable usages (lots of which are not actual variables) - and hopefully go from O(n) to O(1) lookup cost.
15:36
can't wait to test it!
(and damn, why didn't I think of that earlier!)
 
1 hour later…
17:03
Ahhh this sounds awful familiar.
3
Q: C# - Registering dependency dlls necessary for COM Visible Class?

silverspoonI have a C# library that was developed in-house to provide an interface to our legacy software. Over the time requirements grew and now here I am to add COM visibility to this interface library so that it can be accessed from something like VBA in the MS Office applications. Update 3: Added bit...

Woohoo I managed to crash Excel!
2
@Phrancis first time? ;)
If only!
@Mat'sMug Does this sound good to you?
> Ce contrat est un outil précieux pour vous aider à éviter des frais de réparation imprévus. AVIS IMPORTANT: Tous les produits couverts par le présent contrat nécessitent un entretien selon les spécifications du fabricant. L'absence d'entretien peut entraîner le refus de paiement des revendications au titre de votre contrat.
17:20
boring, but yeah
Thx ;)
17:30
WE HAVE AN INSTALLER
2
@RubberDuck I knew you'd make it happen! What was the problem?
One of the settings didn't get saved last time I built.
so you have access to the Rubberduck code now?
@Mat'sMug What do you mean?
The primary output properties have to look exactly like this.
I need to document it on the wiki or something.
I'm running an old version at this point. I'll need to pull from master and re-build later.
if you have the code in front of you, can you do me a favor and replace the List<T>'s and IList<T>'s in IdentifierUsageInspector, with a HashSet<T> - I'll do it tonight anyway, but if you can run it now, I'm eager to see how much faster it makes the code inspections...
ah
17:34
Hey, you guys interested in committing to Code Understanding? I'd like to see that go to beta: area51.stackexchange.com/proposals/65174/…
Oh. Sorry buddy. Lunch is up..
np
in The 2nd Monitor, 41 mins ago, by rolfl
The only good reason I can see for CU.se, is to throw the trash in that direction and not feel guilty about it... ;-)
Oh yeah. This version makes it seem like VBE just froze when opening CIs.
I'll need to get that new code base later and see how it performs on 14k lines.
I wonder how many LoC's I was testing it against...
(when I got the 917 issues)
expect this one to be migrated over here:
0
Q: How do I replace a For Each loop with something faster?

Mark ShepherdI'm a very inexperienced VBA user, I've just created my first "For Each" loop but it's very slow. I'm happy that it works but eager to know if there is a alternative method that is quicker. Any advice would be appreciated but please bear in mind my inexperience! My routine takes two variables ...

(/help migrate it plz)
17:51
flagged
flagged as well
(do multiple flags stack by post or are they separate notifications??)
no idea, not a mod
but they do check who flags, and how much rep they have on the suggested target site
 
1 hour later…
19:09
SO title of the year!
0
Q: Code Correction Required

PramteshCan you correct me on the below code? The code send a Range to an desired email. However, even if i have used the sent keys i a prompt message. ActiveSheet.Unprotect "pramtesh" ActiveWorkbook.Unprotect "pramtesh" ActiveSheet.Protect "pramtesh" ActiveWorkbook.Protect "pramtesh" Dim AWorksheet A...

19:23
@Mat'sMug I had to kill the ide after a few hours. lol
Going to pull your updates and try it here before my next meeting. What needed swapped out?
2 hours ago, by Mat's Mug
if you have the code in front of you, can you do me a favor and replace the List<T>'s and IList<T>'s in IdentifierUsageInspector, with a HashSet<T> - I'll do it tonight anyway, but if you can run it now, I'm eager to see how much faster it makes the code inspections...
got it.
then something could perhaps be done in the VariableUsageListener (from memory - the one that fetches usages), so that it picks up fewer AmbiguousIdentifierContext instances... but that requires working closely with the grammar file and meticulously filtering context types
but I'm curious about how much faster the HashSet<T> would be, all by itself
@Mat'sMug Such a bad question, surprised it hasn't been downvoted to hell yet. I downvoted and flagged as unclear
is underlooked-at
thanks, I VTC'd as well
19:36
Hey I found this thing I might have to look into, seems interesting
ChucK is a concurrent, strongly timed audio programming language for real-time synthesis, composition, and performance, which runs on Linux, Mac OS X, Microsoft Windows, and iOS. It is designed to favor readability and flexibility for the programmer over other considerations such as raw performance. It natively supports deterministic concurrency and multiple, simultaneous, dynamic control rates. Another key feature is the ability to live code; adding, removing, and modifying code on the fly, while the program is running, without stopping or restarting. It has a highly precise timing/concurrency...
19:58
> good build
> Merge branch 'master' of github.com/retailcoder/Rubberduck.git
> changed what I easily could from List to HashSet
> removed set up project before pushing
@Duga so?
@Mat'sMug idk yet meeting
20:52
@Mat'sMug WTF?
I went ahead and put it in the SO Close room for the hammer.
21:23
Small project processes quickly enough. 14 issues in < 1 sec.
About 10 modules
321 LoC
Let's try something a little bigger.
@ticker poor soul
@Mat'sMug Which poor soul. @Ticker brings a lot of them.
0
Q: Stop excel form debugging

user2746898I made a custom function in VBA, and I have probably called it with bad arguments from a cell. I am not able to edit the cell or save the file because excel is "debugging". If I try to edit excel cells, it gives a "beep", and if I try to save, it shows this dialog. I cannot fix it form VBA window...

pathetic
23 modules, 2447 LoC < 1 sec
Let's try a big one.
oooh nice
how many issues found?
21:29
143
Not really......
lol
I wrote all of that code base...
any false positives?
21:30
Didn't check yet.
(800+ out of yesterday's 917 were)
Ouch.
Okay, here we go. 13.6k LoC...
yeah, lots of things fixed yesterday :)
1143 Issues in 30 secs.
Definitely needs a UI cue.
yeah. how about a progress bar?
21:32
Possibly.
This is weird though.
hmm nope, something's borked
you'll get an exception if you try to navigate to any of those
Yup. And I know what. Issue incoming.
you pulled my changes, right?
because I fixed a very similar bug yesterday, by adding Equals and GetHashCode overrides to QualifiedContext<TContext>
@RubberDuck I like how it now says the name of the problematic member/parameter/variable
I pulled from master. It was in master, right?
21:36
I dig that too. A lot.
Then yes.
oh gosh - todo: verify that ParameterCanBeByValInspection doesn't suggest doing that for arrays & ParamArray parameters...
(I'm sure it does)
@RubberDuck moved it from 1.3 when I saw it was a trivial change ;)
> DLL import calls (WinAPI is the usual use case) cause the Code Inspection to somehow lose the Project & Component names. Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" _
(ByVal HKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _ ByVal samDesired As Long, phkResult As Long) As Long Private Declare Function RegSetValueExStr Lib "advapi32" Alias "RegSetValueExA" _
(ByVal HKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _...
ByVal dwType As Long, ByVal szData As String, ByVal cbData As Long) As Long Results in this: !missing project & component names Oddly enough though, the inspection would be correct IF it wasn't a function import. Being a function import, it's important that these remain ByRef because the call will return a value through the param. I'm thinking we could simply shut this inspection off...
if it finds the Lib token. ![](i.sstatic.net/8K6WC.png)
0
Q: How do I replace a For Each loop with something faster?

Mark ShepherdI'm a very inexperienced VBA user, I've just created my first "For Each" loop but it's very slow. I'm happy that it works but eager to know if there is a alternative method that is quicker. Any advice would be appreciated but please bear in mind my inexperience! My routine takes two variables ...

Aah, I excluded Event declarations but forgot Declare statements... easy fix!
@StackExchange about time!
This one needs another once over too.
6
Q: Quicker way to go through 550 variables with very similar code

msimI'm hoping to figure out a faster way to write this before I resign myself to copying and pasting 500 times. I have code here that needs to do tons of vlookup matches. The only thing that changes are two variables each time. First part is just establishing variables and a count of the rows I n...

21:43
haven't done any VBA in over a month now.... that's a great feeling lads ;)
@MichalKrzych Hi!
a great feeling.. to not write any VBA? lol
> CI suggests passing `ParamArray`s `ByRef`, but doing so causes a compiler error.

Private Sub CreateShortcutMenu(ByVal NAME As String, ParamArray buttonIds() As Variant)

`ByVal` also causes a compiler error. So, basically, `ParamArray` is the same kind of token as those two and RD shouldn't recommend changing this. It's the *only* way to declare a `ParamArray` parameter.
@MichalKrzych Beats writing SQL every day. =)
21:46
heck, I'm back into "programming" an Excel workbook...
I mean, setting up an Excel workbook, with sales-forecasting formulas and fun stuff
> Dim ID As Variant
For Each ID In buttonIds
menu.Controls.Add msoControlButton, ID
Next

If `ID` is never used outside of the loop, RD thinks it's never assigned. We should treat `For Each [variable]` as an assignment statement.
Mug I'll help work these out. Just logging what I see right now.
@Duga I thought that was handled... hmmm
@RubberDuck cool. LOG ALL THE THINGS!!!
The selection issue is killing me lol.
wait, that one is fixed.
21:52
Sometimes.
Maybe I don't have all the updates?
annoying
why am I at work, working?
Idk. Why am I at work not working?
> Feature Request: A way to one off ignore issues.
Something similar to pragma.
'@RD-ignore: [inspection-name]?
scoping them will be interesting
21:55
Maybe.
Does the parser start at the beginning of the file and work down?
No. It would dig into the tree... oh god. I know not what I ask.
0
Q: VBA code is there a better way?

User406160I have a section of code that I've been attempting to clean up and hopefully speed up. The section of code where I pass values in order to generate a key and update a table on a different sheet I think is my biggest problem. However I would like any suggestions/modifications to clean this section...

ugh that title...
I took a stab at the title and made formatted your list as a list. Feel free to further improve the title. — RubberDuck 9 secs ago
WTF? Why is this in my code base? I didn't do that.
Hunts down his co-dev for a good throttling talking to.
22:08
@RubberDuck LOL!!
I'll be back later Mug.
Think I should go ahead and publish the pre-release so it matches up to this installer version?
Pre-releases are supposed to be buggy, right?
nah, let's wait until after tonight - there's a bunch of easy fixes there...
did you check to see if that commit was there?
17 mins ago, by Mat's Mug
see https://github.com/retailcoder/Rubberduck/commit/07e078411ea79330efe25f9ce7ffa1a‌​51e71687f
(probably is)
22:54
I'll have to do a diff after dinner.
And you're right. I want to clean the API up and double check a few things anyway.

« first day (263 days earlier)      last day (2917 days later) »