« first day (1158 days earlier)      last day (2022 days later) » 
00:00 - 19:0019:00 - 00:00

19:28
@IvenBach it's one, single form/window. the right-hand panel contains user controls.
much like our settings dialog
19:44
Odd question: Anyone have a collection of resources to use when teaching someone VBA from scratch? I started them off with CodeAcademy (learning Python purely for learning basic syntax of programming, as well as variables, loops, etc), and I often refer people to WiseOwl for beginner tutorials, but thats about where my resources end.
Ideally, resources that allow them to practice and play around with stuff beyond just making the same charts or tables repeatedly.
@BrandonBarney I wrote my own :P
But yours sound better
I tried that...but something about the MFA in me makes my documentation...a little bit more verbose than it needs to be.
I was like 4 or 5 pages in for variable types...
I also realized that a new user has absolutely no clue why a Long and an Integer should be separate things anyways.
My philosophy for mine was, don't use any programming terminology if possible and assume the reader will be bored in one page or less.
19:47
@Mat'sMug What's it called? The part of General Settings, Todo Settings, ... that lets the lefthand part display the window for what's selected? Just Form/Window?
If I could summarize a new-user doc in one page or less I would be selling it lol.
I'm a terrible coding instructor though. I had to make a simple example for a new hire and I ended up using a Dictionary and some arrays and something else as well. He was completely lost and somewhat terrified.
Oh gosh haha
You have to set creative limits on yourself
He literally told my boss "I would be happy to do almost all of that. I just dont think I can do what Brandon can do. I'll try though."
Poor guy.
I got carried away lol.
19:50
To get them introduced to VBA have them record a macro and have just type something in.
I may get quack for suggesting such but it's a way to expose several things to new VBA users.
I do generally start with that, but I need something to have them do. It can also be difficult for them to see why to improve that.
If all else fails they can just take my wonderful tour through VBA. Lesson One : Interfaces, Classes, and Error Handling.
3
Once they have something set up what involves ton of foo.select with Selection.Bar you can refactor the .select and Selection out for them and show them how to do it without the middleman.
@BrandonBarney That's way beyond lesson 1
@IvenBach The important part is getting them to understanding why. And also seeing the value in being able to automate stuff. The stuff I know is literally months (if not a year) beyond Don't use Select but I dont have months of patience to get them there lol.
@IvenBach It was a joke lol.
@IvenBach I'm not even sure I could write the first part of that lesson yet anyways. I am almost there, but not quite.
You can get someone up to speed in vba pretty quick. As long as they can follow logical step by step instructions most people can do the same for VBA.
Long ago I had to introduce co-workers to VBA and I had them to a basic level of writing code to do things in about a week.
I guess we will see. At least I can help them avoid the mistakes I made. I remember needing an i, j, k, and m for loops. shudder
If she learns at that rate I will be impressed.
19:57
The best thing that worked for me was having someone do something manually. Once they were done and proud of it I brutally erased it.
I repeated that process about 3 times and then told them to do it in VBA.
You sound mean lol.
Jk :p
That made the idea of automating click for them. Each time they rewrote it in vba, by hand, they would make it a tiny bit shorter.
@BrandonBarney FizzBuzz.
Number guessing games.
Super Mario
^ haha
@Hosch250 Thats a good idea. I could make them build that game mastermind. That'd actually be kind of fun.
19:59
Those are actually my favorite tool for learning a language.
You get input, output, conditionals, loops...
I did make my own stupid pointless game where a list of names is inputted and then a die is rolled for each player where they can get between x and y for a score, and there's a Z% chance of them not getting a turn. It was kind of fun to see the results.
And you even get WET/DRY practice at my level because I know to look for the right way to do things.
That's exactly what I need. Something to help them play in VBA, learn some essential concepts, and get going in the language.
@IvenBach I like "panel"
20:00
Tag me if you think of anything else. GTG for the day.
I wouldn't force that on a beginner on their first try, but definitely on their second.
Friend of mine is buying a new car now.
The friend that happened to write that 690-line monster.
@puzzlepiece87 There has been things done in Excel that should never have been attempted, let alone accomplished.
20:11
^ E-mail attachment size limit workaround, without having to be on the same network or use a questionable file host.
@BrandonBarney Code it once and click a button vs DO-IT-AGAIN!
The format argument can have any of the following settings:
Constant	Value	Description
TristateUseDefault	2	Opens the file using the system default.
TristateTrue	1	Opens the file as Unicode.
TristateFalse	  0	Opens the file as ASCII.
I always did it with a smile though.
damn this is dumb
Please, for your own sake, that of people trying to help on this site, and that of whoever will inherit that code, learn how to indent. Or use a tool that does it for you. — Mat's Mug 35 secs ago
@BrandonBarney youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5 any use to you for your co-worker training?
20:19
I really should start my C# training classes.
I can test them on my coworkers at our lunch-and-learns.
@Hosch250 I'm still waiting to be your guinnea pig.
I think you already were.
I don't know that you need anything but a lot of practice and code reviews now.
Actually, did you read my blogposts yet?
Not yet.
I don't know that you've covered OOP and SOLID well enough yet.
I cover SOLID; I should do one on OOP.
And one on FP.
Meh, work first, then college, then puppy, then RD doesn't leave much for blogging.
@Hosch250 I'll make time today to read your solid entry.
20:41
@ticker nothing turns me off more than reading "I have a code" on a SO/CR question.
@Mat'sMug I have a code... 42-37-abo-83-qkes9z but nothing happens.
I heard there's this site, uh, gugle, wait no, goo-goal - no wait I got it - it's GOOGLE - awesome little thing, you type "scripting dictionary" and it gets you everything you ever dreamed to know about 'em. — Mat's Mug 6 secs ago
I'm so deleting that comment
man, I didn't even get a chance to upvote it!
> Where might I look for more info on scripting dictionaries?
@Mat'sMug I got some codez.
20:46
like, seriously
Yup.
@Hosch250 at least "codez" attempts to be funny. "a code" just messes with me
And I fixed the tests in the wrong branch and tried to merge them into main.
@Mat'sMug I'd rather have a code than codez.
At least I might get a discount or something at Amazon with a code.
I'm allergic to "a code". you didn't write "a code". you wrote "some code", you wrote "code", or you wrote "this code", but NOT "A CODE" FFS
Must code always be plural? Maybe I wrote a singular code.
(Wait, I didn't originally mean to write that pun, but I'll leave it.)
20:50
@Hosch250 checkersweblog.wordpress.com/2017/01/15/writing-solid-code finally helped me understand Open/Closed in SOLID.
@IvenBach Helped me too.
I'm slow on the uptake sometimes but once things click I usually do well after that.
You'll get better. Train your brain to learn, and it will get adjusted.
That's what Q-tips are for. They help drain out all the bad fluid and let the programming stuff in.
Salt is great for that.
It draws it right out of your skin through osmosis.
Great for bacteria pimples and the like.
21:10
@Hosch250 Duh Check: Interface Segregation Principle is the layman's way of telling someone not to bring in everything possible, only what's needed?
sort of
Notice how simple IEnumerable and IComparable are?
@IvenBach That's another my friend needs to learn.
Their interfaces expose everything and its brother. Way more than even needs to be exposed.
@Hosch250 Your simple interfaces for the XmlProcessor & JsonProcessor made it click.
@IvenBach Really, those could probably be merged into an IDataProcessor, but...
I forget the details of the post. Maybe not.
@Mat'sMug AFAICT One single thing that they implement.
21:16
Some people take it to a bit of an extreme and think an interface should only expose one member.
well a 1-member interface doesn't get any more segregated
problem with multi-member interfaces is that, well, where does it stop, and why?
Well, I think 5 is a good number to stop at.
#ItDepends
BTW, we should take a look at some of the parser interfaces.
Is it helpful for me to post the details of an error like this somewhere? I'm running the last stable build.
21:19
2.0.13?
Yes
Duh check: If you were to figure out that an exposed interface could be decomposed into 2+ separate interfaces how would you manage that?
not 100% certain, but pretty sure 2.1.x can't repro
Split the interface apart?
You can have multiple interfaces on a class...
@IvenBach curl into a ball, hide under your desk, cry.
21:21
@Mat'sMug Hey, Mat. I noticed your Swag link. SUPER AWESOME! But.. I don't have a Google account. Is there any other way to fill the ecessarry info?
Would you keep the IOriginal : IFoo, IBar, IDuk?
@Mat'sMug Definitely, for some I've seen in various places, lol.
@IvenBach Nope. Kill the IOriginal.
@Kapol hmm, it only takes a @gmail email address??
@Hosch250 Even if it's consumed by an outside entity you have no control over?
@Mat'sMug So you don't want it? It's easier for me to not share the error than to share it ; )
21:22
I need to have a Gmail account to fill out the form
@IvenBach Heh, some interfaces I've seen would be better off named IDrunk.
@IvenBach That's when you curl into a ball and cry.
@ChrisB yeah, that particular one will be particularly hard to repro with the current build I think
But yes, that is one way of reducing the pain.
@Hosch250 Just making sure.
And mark the original as obsolete.
21:23
@Hosch250 grammatically that would be IDrank
@Mat'sMug Since when were you a pedant?
@Mat'sMug Got it. Good luck with 2.1!
@Hosch250 Just never use it in your code but still leave its functionality for those that may have already started using it?
I've always been... to varying degrees :)
@IvenBach Yeah, and mark it as obsolete so it isn't used anymore.
21:25
How does one mark code as obsolete?
@Kapol hmm, make one? I went with Google forms because Stack Exchange uses that for their swag forms..
[Obsolete]
@Mat'sMug OK, no problem
by the way, do you remember me saying yesterday that I cannot test Option Private Module?
21:26
yeah.. I think so :)
because the IsPrivate property of the declaration is set to false
@Hosch250 Thanks. Just pulled it up and it matched yours.
wel.. it's the same when I use that statement inside VBE
and there are no tests for that in the solution
I mean there is no test where someone checks if having Option Private Module sets this property to true
so either this property means something else or it doesn't work
I think tests may not be running the attributes pass
so some of the module metadata is inherently missing from tests
But it's the same in real-life VBA
21:28
huh?
I have a module with Option Private Module
and the declaration's IsPrivate property is false
hmm, are you sure that's what IsPrivate is for?
unfortunately no:)
21:29
He just said he wasn't.
modules are public by default
1 min ago, by Kapol
so either this property means something else or it doesn't work
@Mat'sMug The only difference in the tests is that everything runs synchronously.
@Hosch250 eh, gimme a break, I'm at work here
*(^# you, TFS.
@Mat'sMug Me too.
21:29
if that's not is, then how do you check for Option Private then?
I have to have an instance of VS open for every branch.
on a side note, if IsPrivate doesn't correspond to Option Private, then why have both Accessibility and IsPrivate at the same time?
Accessibility is defined on the base Declaration type
yeah
hmm perhaps the Accessibility of a class should reflect the instancing mode
Private vs PublicNotCreatable
hmm, but that would only apply to classes
IIRC accessibility of modules is Implicit or Global, right?
it is Public, I think
I'm pretty sure
project has Implicit
@FreeMan @puzzlepiece87 @BrandonBarney The Step command fails because some other non-steppable code is handling events. That could be a VBE add-in, or an Excel COM add-in, or another open workbook that is protected. In my case it was Acrobat PDFMaker (a COM add-in in Excel). Disable all of your Excel COM add-ins, close all workbooks except the one you're debugging, and the Step command should work. Then, re-enable various COM-addins and workbooks until you find the culprit.
21:33
only Project, UDT Member and Enum Member have implicit accessiblities
@Mat'sMug Microsoft must have a lot of people hiding under their desks then.
@IvenBach MS's interfaces actually aren't that s*.
At least, not compared to many I've worked with.
OK, I think I might have found a partial answer
in ProceduralModuleDeclaration one constructor takes a ComStruct parameter and sets the IsPrivateModule property based on this parameter's IsRestricted property
@Hosch250 That's neato! Definitely will be useful for future-me.
so I guess this is something else than what I'm looking for
Either way, I still need to figure out how to check for Option Private :)
probably I'll need to use the parser for this
-_-
of course I need to use the parser... jeez
rubberduck revelation inside rubberduck chat
21:41
I'm going to beat the guy who invented TFS's branching with a 2x4 until he doesn't know which side is right side up.
It's taken me almost an hour to merge three branches together and redo the migrations.
And I'm still not done.
Hi.
^Hi.
@Mat'sMug you need some help with autocad?
Jun 7 at 15:32, by puzzlepiece87
Thanks for rubberducking with me.
@Jelly me, no, but @NicuTofan might
21:43
@puzzlepiece87 hehe
Got my 8 hours in just after I got the migrations resolved.
22:18
@Hosch250 Really helpful examples in your SOLID examples. It's going to take me a while to, by default, think in this manner but I can see the applicability and use.
22:44
@puzzlepiece87 That's my brother's local beach... he lives about 1000ft from there.
Sure, Australia has some deadly critters, but the US has this:
@ThunderFrame I found the outlyer.
@IvenBach Yeah - WTF Luxembourg?
Hahaha
I wonder what that chart would look like if the NRA was a country?
I just shake my head...
22:55
hi @NadjaR.
Is there any way to tell who's a 1st time visitor to the pond?
@NadjaR. Welcome to our duck pond.
profile says first time they used chat
chat user since 2017-08-07
I must be blind, can't see that.
Mousing over VBA Rubberducking I see it states 0
23:24
@ThunderFrame I bet most homicides aren't members of the NRA.
Well, except the police shootings.
Duh check: Enumerable.AsEnumerable() method does the same thing as Enumerable.ToList()?
@Hosch250 You're probably right, but IIRC, most gun deaths are of people in the same household as the gun, whether it's the spouse, or the children. Accidents are still homicides, and unfortunately too many kids get access to guns and don't know what they're doing.
Nope.
@IvenBach nope
> The AsEnumerable<TSource>(IEnumerable<TSource>) method has no effect other than to change the compile-time type of source from a type that implements IEnumerable<T> to IEnumerable<T> itself.
23:27
@Mat'sMug Thanks. Humbled. Appreciate.
@ThunderFrame Yup.
I think that highschoolers should receive mandatory gun safety classes, where they are actually taught to shoot a gun, not just the abstract "guns are dangerous".
@Hosch250 I'm reading the words but it's not clicking. I'm missing something.
I think it would make them more likely to be responsible with them when they have access to them.
@Hosch250 I had rifle training at school
@Hosch250 It's the user that's dangerous.
23:29
@IvenBach Yup. And most users are either highly trained in gun safety, or have no training at all.
@Hosch250 LOL we have driver training... still have a LOT of numpties on the road. Just saying ;-)
@SlowLearner Driver training is a joke.
Well, gun training probably would be too, I guess.
If we had responsible gun trainers, I think it would help.
What's drivers training? I learned to drive from my dad as he drove and explained to me what he was doing.
LOL - point taken, should definitely invest more in gun training... make it less of a joke
Ohhhh... It's mentoring that most people are lacking nowadays....
23:31
@IvenBach Same here, except my mom.
But, you can pay for behind the wheel training once you know the basics.
They basically teach you the freeway and/or how to park.
@Hosch250 other than to change the compile-time type of source from a type that implements IEnumerable<T> to IEnumerable<T> itself
Can you help me connect the dot I'm missing?
List<T> implement IEnumerable<T>
It's compile-time type is List<T>.
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IList, ICollection, IReadOnlyList<T>, IReadOnlyCollection<T> I see that on MSDN
If you have a list and call list.AsEnumerable(), it will forget that it is a List<T> and only know it is an IEnumerable<T>.
You typically won't use that method.
click
So instead of having a List<T> which itself implements IEnumerable<T> if you wanted to disrobe/strip it (lack a better term) of the list stuff features you can and make it just an IEnumerable<T>?
23:35
@Hosch250 That’s correct... NRA members are the trained and responsible ones. Yeah, they shoot other people- but only in self defense. If the others weren’t trying to kill them, they wouldn’t shoot anyone.
Now, I respect guns. I don't own one, and hope I never have to.
^That's from UHF, a video by Weird Al.
But, if I do buy one, it is almost certainly going to be because the government tries to ban them, because freedom of speech and the freedom to a quick trial is next.
Makes a point though...
I'd rather die than live in the US at that point.
23:38
@Hosch250 Thanks for filling in that last dot. Now I can access that member.
MSDN makes a lot more sense but still nuances I've yet to learn.
I think the major use for AsEnumerable is when you have an IQueryable and want to force in memory execution of LINQ.
Yup.
At work, we usually use ToList. I need to remember that and bring it up in a meeting.
Often we need to force execution for a DB query so we can use Linq-to-Objects.
@M.Doerner A nuance here I'm not grasping.
You're wanting to use AsEnumerable to invoke execution because it's only invoked when it's enumerated?
Is there anyone on right now that knows a little bit about programming the UI in RD?
@shadowofsilicon the WPF/XAML part?
23:46
Yes
...any specific question?
it's kind of a vast topic :-)
In the Code Explorer, if you right-click on a component, you can Export the selected item. I want to change it so that when you click on a Project, it exports all the components in that project.
That would be implemented in the ViewModel
1) I have a fair idea how to do the programming for the "work" aspect of that, but I'd like to ask, what's the best way to do that (which I see you already eluded to)
and 2) How would I go about changing the menu item to say "Export All" instead of "Export"?
@Mat'sMug as in CodeExplorerControl.xaml.cs?
@shadowofsilicon that's the code-behind
@shadowofsilicon hmm, IIRC the context menu is the same regardless of what node is selected. You could bind the menu item's text to a property getter in the ViewModel that returns the correct resource string depending on the selected node
You'll find the ViewModel class at the top of the xaml markup, in the d:datacontext tag
WPF is all about bindings
and bindings are all about the datacontext. well, mostly anyway (you can have bindings to other xaml elements, for example.. but most of the time you'll just bind to a property in the VM)
23:59
ok... in xaml, I bind to a property getter in the code-behind (xaml.cs)?
00:00 - 19:0019:00 - 00:00

« first day (1158 days earlier)      last day (2022 days later) »