« first day (585 days earlier)      last day (2595 days later) » 
00:00 - 18:0018:00 - 00:00

6:00 PM
@RubberDuck where's the Spolsky post about Hungarian notation done right again?
 
So I probably miscommunicated, but all of my code is macros already
 
then why bother with Mx prefixes?
 
What I was trying to say is that by putting M1, M2, etc in front of them, it orders them in the Macro Toolbox
 
Since they are sorted alphabetically
 
6:01 PM
if they have meaningful names, alpha sort makes sense, no?
 
@puzzlepiece87 Please. Don't call me mister, and if you're talking about the add-in, @Mat'sMug and @Hosch250 are mostly responsible.
 
lol
s/responsible/guilty
3
 
For commenting out tests, guilty as charged! lol
 
@RubberDuck oh no, I just have seen several of your answers that I liked on codereview
I'm an infrequent CodeReview visitor, I usually stick to Stackoverflow
 
@puzzlepiece87 over time you'll switch that over we'll convert you
 
6:03 PM
I'm still getting the hang of CodeReview's culture so I'm taking it easy
I already botched my first two or three CR questions woo
 
simply put: make it work, we'll make it shine
 
Yeah, though you guys have different titling conventions and problem statements than what I am used to
(Even after reading CR How to Ask and being a frequent visitor to other SE sites)
 
Zak
@puzzlepiece87 Join the club. They raised the character limit on CR questions in response to my botched first attempt (or so I'm told)
 
I'm slow but I find it tricky
@Zak ha! It's always nice to have a rule/code change named after you
 
Zak
@puzzlepiece87 It's relatively simple. Tell us what your code does/is supposed to do. Give us a brief tour/overview of how it does it. Show us your code and ask for feedback.
 
6:06 PM
it's easy: we want to see your working code, preferably in its full glorious context (i.e. not just a little boiled-down snippet) - and then reviewers are free to comment on any/all aspects of the code
often a reviewee expected an answer that improved performance, and got answers pointing out edge cases and bugs they didn't even know existed
 
I'll try to keep that in mind... It's hard for me to reflect back on what I did wrong because someone cleaned things up. I only see one question and no comments on that question in my CR history even though I am fairly sure there was at least two questions and I know that there were several comments telling me how to improve at least one of my questions.
 
let me check
 
I am fairly sure I had an Excel-vba CR question too, I only see the SQL one. I think the SQL one came second and has cleaned up comments.
 
I see two answers and one question
 
Got it. I am at least certain that someone cleaned up the comments for the question since I looked at the edit history and some of it is in response to the comments I'm remembering.
 
6:12 PM
yup, there are deleted moderator comments about improving the title
 
Cool thanks, and thanks for the feedback on my answer!
 
no problem. BTW have you heard of ?
 
I have not
 
it's our little pet project. we want to make the VBE a better IDE :)
there's a number of known issues with the last release (v1.4.3), lots of which are fixed in the current build - we're just not ready to release 2.0 just yet.. but it's coming -- and it will hit hard
you've always wanted folders to organize your VBA project, didn't you?
 
That's very impressive, just finished the features list
My favorite is the code inspections feature (and smart indent once 2.0 arrives) though the rest is a little too hardcore for me, as is the folders part
 
6:21 PM
:)
 
And this is another reminder that I still have a ways to go before I am ready for the certification
Well, I take that back
The certification is too easy and I am ready for it
But there is still a ton of stuff I'd expect a vba contractor to know that I do not
I assume you all already saw ExlCom?
 
nope
 
I can't link it from work but it's the first google result for ExlCom, it's a reddit post
Someone recreated X-Com Enemy Unknown in Excel using VBA
That's my other chief reminder at the moment of how far I have to go lol
 
check out this code:
12
Q: A reusable ProgressIndicator

Mat's MugThere was a Tweet from @ExcelEasy earlier this week, that linked to this article, to which I replied with a little challenge: @ExcelEasy well done! #Challenge: make a more #OOP one without using the form's default/global instance! #becausewhynot Of course I wouldn't just leave it at that, s...

the Rubberduck project pretty much started with this post:
15
Q: Unit Testing in VBA

RubberDuckUnit testing in VBA is... lacking. (What isn't lacking in VBA though?) Since I've become more interested in unit testing lately, I decided I needed something better than Debug.Assert(), so I started building this framework. Currently there is a ton of functionality missing, but since I'm new to u...

 
Good stuff on the progress indicator, just finished it
Are you and @RubberDuck both vba contractors?
 
Zak
6:31 PM
They're more C#/VB.NET guys
IIRC
I think @RubberDuck currently works for a company working on a legacy VBA codebase.
 
I'm a "BI Specialist", doing SQL Server / SSRS and writing C#. But I stepped into programming with VBA
@Zak I'll do VB.NET at the point of a gun only
 
Zak
aren't C# and VB.NET quite similar?
 
don't you dare...
lol
once compiled, yes
 
Zak
So, what you're saying is I should skip .NET and go straight to C#?
 
.NET is the framework. C# and VB.NET are languages
you don't want to skip .net
if you know the framework, you can use it in all .net languages
 
Zak
6:37 PM
how do you learn a framework?
scratch that, what even is a framework?
 
@Zak @puzzlepiece87 I actually work with a legacy VB.Net/C# codebase now, but I got my start writing enterprise Access apps.
 
@Zak you could see it as a set of std libraries
 
This seems so much farther down the programming rabbithole than I want to go at the moment lol
@Mat'sMug I'm in BI too but definitely more in the business analyst with programming on the side role
 
6:59 PM
I work on Rubberduck to compensate for my dayjob's lack of actual coding
and because I love pulling my hair #GrammarIsFun
 
I work on RD because -- why not?
Also, I don't know VBA (and I'm not learning it!) and I do need practice with C#.
 
because writing code that uses code as data is utterly cool
4
regardless of what language it is
 
@RubberDuck I have more commits, but you have more changed lines.
 
it's just that VBA makes things harder at times - the grammar/lexer/parser struggles with some weird corner cases that VBA compiles without complaining
 
Yeah, I like VSD a lot.
 
7:03 PM
> Copy the node text. Ctrl-C would be good, but I'm always amazed at how many people don't know keyboard shortcuts. So maybe a context menu too?
> True enough. My nested snippet helped me find a parser bug though... Already raised.
 
@Duga it's a known limitation of the grammar definition.. not sure there's a way around it.
 
 
1 hour later…
8:15 PM
I'm a VBA contractor, but I wear many hats. PM,BA,DBA,.NET Developer,Web Developer,Quant,Financial Analyst, keeper of the realm....
 
question #49 posted :)
one more and I get a badge for creating the tag!
hey wait, no, stupid caching -- that is #50!
 
Zak
@ThunderFrame Sounds a lot like where I'm going to be in a years' time.
Dev/Quant/Analyst/General IT guy. Only with VBA right now but trying to move my company into proper databases and such.
 
@zak I know less and less about more and more... The joys of being a generalist.
 
now the big question: is reviewing duck faster than captain obvious?
 
Zak
reviewing duck?
 
8:26 PM
this room's question feed
 
1
Q: Inspector Rubberduck and the abstract inspections

Mat's MugThe Rubberduck code inspections have just seen yet another structural change, hopefully for the better. The IInspectionModel interface was originally named IInspection; it only exposes the bare-bones inspection properties, those needed by the CodeInspectionSetting class: public interface IInspe...

 
ha!
oh, @DuckReview, sorry
right, DuckReview watches posts, ReviewingDuck watches ones
 
@Mat'sMug I have a suggestion on the ProgressIndicator, but can't post easily because phone. I guess I'm best off commenting on the CR question, but maybe I add it as an issue on VBEX?
 
Is it on VBEX?
 
I thought I saw a CR comment saying it would be rolled into VBEX?
 
8:30 PM
I must have missed it - that's entirely possible
but I'm not maintaining that repo
I know it's been "stealing" a bunch of my code though ;-)
ugh, meeting, bbl
 
Anyway, the suggestion is to create an IProgress interface, and have your class implement the interface. Then the interface can be reused by access forms that do the same thing, or by classes that encapsulate the application's status bar progress indicator, or any other class that wants to show progress in ASCII art or whatever.
 
That's not crazy at all
Or IProgressView right?
 
8:48 PM
@Mat'sMug yep, but IProgress is more abstract. Your progress implementation might be a log file, so there's no "View" to speak of.
Added an answer.
http://codereview.stackexchange.com/a/116602/94097
 
9:06 PM
> The VBIDE Object Explorer offers a context menu that exposes the hidden members of objects in Object Explorer and in Intellisense.
In a new session of VBIDE, the default setting is to hide hidden members.
It would be great if RubberDuck could remember a user's preference and show hidden members whenever a new VBIDE opens and the user preference is show.
> I had a look at how the PInvoke VS extension gets function declarations. The extenaion gets the full declaration (in both VB.Net and C#) in an XML SOAP request.

Being a full declaration, it doesn't break the arguments, types and return types down into XML nodes.

But the XML schema could be enhanced to handle that.
 
@ThunderFrame nice, upvoted!
that's really the "next step" :)
@ThunderFrame @RubberDuck @skiwi @EBrown @Zak say, anyone has an idea for a good approach to turn '@Folder Foo.Bar into a nested folder structure?
 
9:26 PM
@Mat'sMug ask me later. Been in the war room all day. Long story. Gonna hurt an intern.
 
Zak
@RubberDuck Does the intern deserve it?
Or is that just your way of letting off steam :p
2
 
@RubberDuck but... this is the war room ;-)
enjoy the cigarette :)
 
@Zak his bug caused us to have to restore a single table from yesterday, and take an application offline until it could be fixed.
I'd say he deserves it.
If I was being fair, I'd say it's our fault and we should have tested better....
 
^ you're all in it together!
 
9:48 PM
@Mat'sMug I'm undecided about whether we should delimit by period or backslash, or either. Period fits better with a namespace paradigm, while backslash works better with a folder paradigm.
I haven't had a chance to look at how the current CodeExplorer implements folders, but scaling from 1 to 2 is work. Scaling from 2 to n should be free.
 
at first I thought I'd make the annotation say '@Namespace, but decided against it because it would be misleading - a namespace implies a scope, and RD annotations do nothing to change how VBA scopes things. so I went with '@Folder instead. Perhaps I could make it work with a configurable delimiter, defaulted to a backslash.
 
Red-black tree perhaps? I think that's how VBA stores objects inside the binary (compound binary format)
 
^^ I'm currently creating a CodeExplorerCustomFolderViewModel for each different CustomFolder annotation
in other words right now this:
'@Folder Foo/Bar
would create a custom folder called "Foo/Bar"
...which is annoying
worse, if another module has '@Folder Foo, it's a separate folder from Foo/Bar
I think CodeExplorerCustomFolderViewModel needs a CustomFolders as well
and then I need to parse the path in a folder annotation and get the depth right
and that's where I hit a wall
maybe the whole entire approach is wrong, too
but having a separate class for each node type somehow feels right for WPF/MVVM
 
Add a property for Path (which gets Foo/Bar) and a property for Depth (which gets 2) and a property for nodeText (which gets Bar). Then populate the tree by ordering your objects by Path?
 
the code inspections treeview was much easier, everything happened in the XAML, and there was only 1 type involved.
I think I need some recursion in CodeExplorerCustomFolderViewModel, and I don't want it to happen in the constructor.
would it be too broad to ask on Stack Overflow and too localized to ask on Programmers?
 
10:28 PM
@Mat'sMug I guess you could frame it as building a tree from a list of paths returned by a file search?
Frame it as [a question on SE] building a tree...
 
yeah. I know "how would I go about X?" questions are generally too broad for SO.... but I have no clue about Programmers' scope (nobody does). I'll give it a shot.
 
10:46 PM
Got something to say about how Rubberduck 2.0 inspections work? Now's your chance! #OSS #CodeReview #CSharp https://twitter.com/StackCodeReview/status/687010932615155712
 
@RubberDuck I think I feel for this intern. I forgot to update a confirmation number and now the company I work for has several data records that potentially violate a government regulation.
 
> Choose VBIDE's Tools..[Project Name] Properties... menu, and you can define multiple Conditional compiler Arguments, separated by semi-colon, eg.

MyProjectArg = 2 : MyOtherArg = 3

You can then use those arguments in Conditional Blocks:

```
#If MyProjectArg = 2 Then
#If MyProjectArg = MyOtherArg Then
Const Name = "Smith"
#Else
Const Name = "Jackson"
#End If
#Else
Const Name = "Jones"
#End If
```

But I don't know a way of determining the Project's Condit
 
11:06 PM
@EBrown it's honestly not his fault. Review/testing should have caught it. We failed as a team.
 
@RubberDuck now you're talking like a team lead duck!
 
@RubberDuck That's what we decided today in our meeting. While it may have been my responsibility to update this value, we all should have checked it to make sure it was correct.
The only problem is going to be explaining that to the government organization that determines whether or not we stay in business.
#Oops
 
That sounds scary.
What you need to do is explain what happened, how you caught it unusually quickly, and what you did to ensure it won't happen again.
And hope they don't decide to close you for political reasons (like the IRS was targeting businesses who had certain political beliefs not long ago).
 
11:22 PM
or close you for huge financial penalty reasons...
 
@Hosch250 I did that. I was searching through logs for something else, found my error, and told my boss about it.
 
I mean, explain that to the gov agent.
 
We then had a chat with our VP ops who doesn't think it's a big deal, but we'll find out next week after we run the report that these numbers are for, and get the response back. (It's a response that the government generates, apparently it takes 3-5 days.)
 
@Mat'sMug What I would do with that tree thing is literally build a tree out of it.
It shouldn't be that hard to parse it and create a tree.
So, what type of regulation did you break?
 
> Access forms are different to VB Forms. Access Forms and Reports have their own set of properties, methods and events. Code Inspector needs to be aware of the "undeclared" members.

```
Private Sub cmdOK_Click()

'cmdOK is a CommandButton on an Access Form
'txtName is a TextBox control on an Access Form
'Firstname and Lastname are fields in the underlying recordset

'These 3 lines are functionally equivalent, and operate on a control on the form
txtName.Value = "Smith"
M
 
11:46 PM
> I won't lie. I've been meaning to do this for a while and have been slacking. Unfortunately, I'm the only Access dev on the project and have been tied up for quite some time.
> This is sticky. We've tackled it before, but the only way I've found to do it is by opening the dialog box. I haven't found a programmatic way to do it. If anyone can figure out a way, I'd love to implement.
 
@Mat'sMug the folder thing. It's really a Trie. Each node can have one parent and many children. I'm not sure how you're building the path, but it almost needs to be built as the project is parsed. Sounds like a job for a custom listener to me. We can attach more than one listener to the parser, can't we?
 
@RubberDuck What's the different between a Trie and a Tree?
@Mat'sMug I built a tree before for my app, if you are interested.
 
On Enter, If @Folder, Split String, for each node, if node !Exists then add node
 
It essentially is a list of a custom type, which each has some relevant information and a list of the same type.
 
@Hosch250 a tree is a tree, a trie is a bit stricter. There can only be one path between each child/parent IIRC.
The windows file system is a Trie.
 
11:55 PM
OK, I think I build a Trie. Reading this: stackoverflow.com/questions/4737904/…
 
Oh. Hey @Duga. I haven't thought about that project in a while.
 
00:00 - 18:0018:00 - 00:00

« first day (585 days earlier)      last day (2595 days later) »