« first day (1197 days earlier)      last day (1983 days later) » 

00:00
RELOAD!
[rubberduck-vba/Rubberduck] 2 opened issues. 1 closed issue. 23 issue comments.
Home Time.
meh - Friday here!
00:55
@this any references or links about MSDASQL so I could be in the know. Thanks
 
2 hours later…
03:23
@Vogel612 Got any tips for teaching addition so a 2nd grader isn't confused by 'big words'?
 
2 hours later…
05:02
Which big word? @IvenBach
Summation
I explained it by saying 'doing plus many times'
05:17
@Hosch250 Thanks for mentioning the staged changes. That's made pushing only the changes I want much simpler.
06:00
[rubberduck-vba/Rubberduck] IvenBach created pull request [#3376: Consolidate Empty[If,Else]Block into EmptyConditionBlock](github.com/rubberduck-vba/Rubberduck/pull/3376) to merge IvenBach/Rubberduck/next into rubberduck-vba/Rubberduck/next
[rubberduck-vba/Rubberduck] build for commit 862017b5 on unknown branch: AppVeyor build succeeded
06:16
[rubberduck-vba/Rubberduck] IvenBach synchronized pull request [#3376: Consolidate Empty[If,Else]Block into EmptyConditionBlock](github.com/rubberduck-vba/Rubberduck/pull/3376)
@Duga There's likely something I've missed. Feel free to bring anything I missed to my attention.
Time to go conquering in my sleep!
[rubberduck-vba/Rubberduck] build for commit af527206 on unknown branch: AppVeyor build succeeded
 
4 hours later…
10:05
@PeterMTaylor what exactly do you need to know that isn't already found via Google RE: MSDASQL?
10:30
@IvenBach why not introduce the concept of successiveness first?
"First we add the first and the second and put them back in". "And then we keep doing that until there's only one number left"
^^ @IvenBach Duga dislikes brackets in PR titles :)
11:23
Thanks for letting me know and discover progress @this I'll do some reading as suggested and would follow up with a question if I have any. 😁 or two
 
3 hours later…
13:55
@IvenBach Sorry, can't join you at the moment :( I'm a deacon at church and people continue tearing each other apart over petty !@#$. People were just fighting over whether to allow a wedding in our building for crying out loud. Only 10 more months left in my term, only 10 more months...
@puzzlepiece87 I feel you :/
stay strong
@Vogel612 Thank you, I appreciate the encouragement :)
14:06
Can anyone recommend a way to paste color-formatted vba code from the editor into Word without using an installed tool (web tools welcome)? I've tried a few things, including the Question page on SO, but it looks like SO doesn't color the formatted code until you actually post the question.
I'm trying to update my vba guide and I'm trying to avoid hand-coloring all of my examples.
(Screenshots will work for early examples, but not for longer ones)
@puzzlepiece87 there's paste special for one
and I did use Insert > Object > Active Document or something to put codesamples into my finals project for my vocational education
but that's two years ago and I haven't used word since, soo ...
@Vogel612 I tried paste special and didn't have an RTF option? People were mentioning vb6 so I figured maybe I was doing it from the wrong source.
I'll try again
And I'll try Insert > as well, thanks for the suggestions!
@puzzlepiece87 might work when we have AvalonEdit code panes :)
14:24
@Mat'sMug Looking forward to them :)
yup, confirmed - with the AvalonEdit code panes you can copy code and paste it color-formatted in word (hmm, except the font doesn't seem to follow)
Is that image from a WIP PR you're working on?
Or something already present in 2.1?
no, I brought up the indenter settings and copied the sample code, pasted it in a new email body and took a screenshot
but yeah, I do have a local [CodePane] branch :)
Cool, I'll be looking forward to it :)
Did you all settle on a locked feature list for 2.1, or did the conversation drift off since it's tough to settle on something right now?
@Vogel612 am doing that by using 'ones' and 'tens' place she's heading at school
I'm starting to know how mat probably feels trying to teach the simple stuff.
14:30
@puzzlepiece87 priority is still on inspection & quickfix bugs
except that it isn't really all that simple (as math isn't that simple)
@Mat'sMug obtw. I added i18n to the "outstanding for release" project
as well as the new quickfix bugs
@Vogel612 nice, thanks! I keep forgetting about the FR translations
I need to get SynchronizeModuleAttributesQuickFix up smooth
and I need to get out of the Java environment...
there's so incredibly much crap there. ...
15:02
Missing exception type and message... Also, I literally snorted at "Excel isn't complex at all" — Mat's Mug 12 secs ago
15:28
Language crap or dev crap?
"CsvHelper is a pretty good library" - throws System.Exception. Yeah, pretty good indeed.
A 3rd-party library is throwing System.Exception? That's terribly sloppy coding... From the stack trace it seems CalcEngine is trying to Evaluate an expression in an IXLCell - perhaps the Excel data contains a formula error that Excel itself can't compute? Or ClosedXML doesn't handle some new Excel 2016 function (a decent library would throw something like an UnknownFunctionException in that case.. I can't fathom a reason to throw System.Exception, that's just horrifying)? In any case, if the file format is CSV, why involve Excel at all? Parsing CSV isn't exactly complicated... — Mat's Mug 9 mins ago
15:45
@Vogel612 #TIL I'll do my best to remember for next time.
@puzzlepiece87 Socratify them: ¿Why are you acting this way? ¿What is everyone's issue? ¿How can you solve this problems while leaving me out of it? Pineapples will always find anything to argue over.
Patience may be a virtue, but anger is a great motivator too.
There are three types of religious people. A) the nicest people you ever met, B) people who do it without thinking, C) people who use it as an excuse to be jerks.
The majority in US are B. A is kind of the minority.
^ I'm all 3. I'm a nice person that happen to be a jerk because I'm honest without thinking about it. Pineapples don't like blunt truth.
That's why I like RD. Lots discussion/disagreement still with respect.
@IvenBach Unfortunately the answers to 1 and 2 are well known, and the answer to 3 is "That's impossible, because we're the governing body of the church vying for power with each other due to competing visions, and you're a member of the governing body."
^ Then announce 'Round 1 Fight!' and walk away?
So basically we're at a stalemate.
15:58
Teach them what the word "defenestration" means
@IvenBach Some people have already resigned, yeah. I would like to but every time I do the religious piece of that decision and pray about it, I feel pushed the other way. So for now I focus on the day-to-day tasks of the position and minimize my role in the meetings and wait for my term to expire (I will decline any renominations).
@Hosch250 Lol at Google's first definition.
Don't let them have their way . They want you to resign.
Euphemize something about brotherly/sisterly love and mutual respect. If they still don't civilize then get blunt, harsh, and honest truth about bickering.
We know several churches that have had people come in and turn them inside out on purpose to get control.
@Hosch250 No, there is no push against me - just two parties being ugly to each other with me on the sidelines being disgusted with American churches and wishing my time was better spent.
16:02
@Hosch250 installing Linux?
oh, it's not "removing windows"
@puzzlepiece87 Rubberduck is always waiting. You could have a laptop with you and submit PR while they argue.
@IvenBach Ha, you should hear my brain when I am running on a day when the angry e-mails are flying. It sounds like that.
@IvenBach But as someone who's been really politically involved for more than a year now due to the US national atmosphere, I've learned two things.
@IvenBach 1. You have to pick your battles because there's too many for any one person to fight, so you pick the ones you can make the most impact.
Want me to set up a spam bot for you.
16:05
@IvenBach 2. At the end of the day, we're all still neighbors that have to live with each other and respect each other like decent human beings. So as cathartic as it can be to scold people, it's better imo to realize that everyone is doing what, to them, is right, and to realize when you are likely and unlikely to change their minds.
@IvenBach In this case, unfortunately, I am unlikely to change minds. People are pretty entrenched. So I mostly chime in when people go from chippy to unprofessional/unkind.
Only instruct when it can bring about positive change. You can't help someone who's unwilling/unable to help them-self.
And I save my bickering for Facebook ;)
@Mat'sMug Not taking your joke too seriously, I laughed, but which distro did you have a hard time with? :)
~.~ I avoid Facebook for many obvious reasons...
@Mat'sMug I've tried Ubuntu, Mint, and Debian and had a good time with all of my installations, but Arch is the most popular these days I think and that's much more challenging.
We can open another room so we don't have daddy duck Mat come down on us with the <offtopic> hammah of duckness </offtopic>.
16:08
@puzzlepiece87 none, I'm happy with MS-land
He's drunk the Kool-Aid.
^ Speaking of organized believers.
@Mat'sMug I have been pretty happy with MS-land too but Win 10 cracked me a little bit on stuff I cared about (control over updates and privacy), so my current plan for my next laptop in 1 year is Debian with a Windows virtual machine for games.
@Mat'sMug I currently get my laptops at XoticPC and they let you save $100 if you want to leave out the Windows installation, so that's nice too.
@Mat'sMug And fortunately for me, MS <3 Linux these days.
@Hosch250 What's your favorite distro?
Only Ubuntu for 30 min
I like Windows.
@puzzlepiece87 are you on Facebook?
16:14
^ He's looking for another Duckciple.
No, just looking to see how consistent the concern for privacy is
@Mat'sMug Yup, and Android too. But for me, the difference is that I can disconnect from those ecosystems more readily than the OS of my computer, and I am using them for free, not paying for them.
Pricacy concern is BS then
@Mat'sMug Another difference imo is that for FB and Google I can block ads and the security concerns they bring, but that's harder (though certainly not impossible) to implement at the OS level.
@Mat'sMug I'm glad it's straightforward for you, makes it easier :D
@Hosch250 I like Windows too, I use the Windows-alike desktop environment (Cinnamon) on my Linux distributions.
@Hosch250 I'm trying to keep things as similar as possible while retaining a little bit more of the control that used to be present in Win 7 and 8.
Regarding the next release, I would like the port to Castle Windsor I am working on at the moment to go in after the release. That might actually break some things unintentionally.
16:28
@M.Doerner agreed =)
 
1 hour later…
17:34
One lightbulb at a time
Figured out how an insertion sort works by doing it visually. Neato-rificalastic!
@puzzlepiece87 When you start again with C# and seeing how the sausage is made, you'll be impressed.
@IvenBach there's a series of videos on YouTube showing various sort algorithms with ...dancers. it's pretty funny to see :)
@Mat'sMug the music is horrendous though..
That's what I saw visually in my tests.
18:04
@Mat'sMug You were correct. I was worrying too much about the internals but seeing some plumbing did help ultimately.
#ToldYa :p
18:23
Iven's new motto for the ¿How does it work? question: 'I don't know, and that's OK. I just know that it DOES work, and for now that's all I need.'
19:12
#fail
If you don't know how something works, you can't do it again when you need to.
That is something entirely different.
You do not have to know how a sorting algorithm works to use it, you just have to know that it yields a sorted result.
If you implement something yourself, you should better know what you are doing.
It is basically the difference between using an interface and implementing one.
@Hosch250 That's why I have `... and for now that's all I need.' Had I not put that in there it truly would have looked like I wanted ignorance.
Btw, I personally like to know how stuff works. Partly because it helpsto make informed decisions on how to use things, but mostly out of academic interest.
^ I'm naturally curious and that leads me to take more time than's needed.
I agree that an outside-in approach to learning stuff is beneficial.
19:25
Once I found out that something doesn't work properly then I'll proceed further. Trying to follow a YAGNI approach to learning.
@Hosch250 if you don't know how something works, but understand the abstraction, you're doing fine.
e.g. IDGAF how Antlr works. Or Ninject.
@M.Doerner there's also stability to consider...
@Mat'sMug I do... But ain't got time to figure out HOW it's doing it. Just need to know that it DOES it.
Of course it's different if you want to implement your own parser generator, or IoC framework
Expression trees. How hard are they to understand?
19:29
Hard^2
I implemented a basic LINQ provider once. Never again.
This may be a ReturnWithMoreExperience.True chapter then.
> You've earned the "Guru" badge (Accepted answer and score of 40 or more) for "Is VBA an OOP language, and does it support polymorphism?".
Woot!
@IvenBach On a scale from bubblesort to what?
@Vogel612 I know there is a bubblesort. Dunno it's basic difficulty though.
Just wanting an idea of expression tree difficulty before getting too mired in it before moving on.
1. compare the first two elements, swap if necessary. 2. compare the next two. swap if necessary. 3. Repeat two until end of array reached. 4. repeat from 1 until array sorted
trees themselves can be hard enough as is ...
19:33
@Vogel612 Duh check: And that's why wort case scenario it's a O(n^2)? Since it can effectively go through every possible comparison?
aaand you got it
worst case for bubble sort is a reverse sorted array
each run through the whole array only puts a single element to it's final place
@Vogel612 meaning {9, 8, 7, 6, 5, 4, 3, 2, 1, 0} ?
I'm finally understanding some of the lingo you ducks you.
Some being the primary key word.
after n steps it's {8,7,6,5,4,3,2,1,0,9}
which means you now need n-1 steps (we know 9 is sorted now)
19:37
Thank you all so much for helping me understand this stuff.
and \$\sum_{k=1}^n k \in \mathcal{O}(n^2)\$
it's been too long since I used MJax...
if you paste the expression above into a "new question" it should render correctly
For chat or SO?
@Vogel612 IIRC MathJax isn't enabled on SO... would have to be on CR :)
^^ that's how it renders on CR
I was never any good with math notation beyond the most basic stuff. I'd love to better understand so as to properly use it when necessary.
19:43
to me it's about as useful as UML, i.e. not a lot :)
Expression trees is how conditional operators work?
it's one way to describe them
expression trees can also be used to describe any operators you like
20:02
@IvenBach e.g. a property selector: OnPropertyChanged(x => x.Foo) - x.Foo is an expression tree that you can evaluate as a delegate (to get the value of x.Foo), or parse to determine that Foo is indeed a property of x, named Foo.
20:19
hey @shadowofsilicon
0
Q: Web scraping using proxy in vba

ShahinI've written a script in vba to parse movie names and year from a torrent site. The script is doing just awesome. Although the scraper is leaving no room for complaint, I'm still dubious about how the way I've set the proxy is accurate. Moreover, I've set two proxies in my scraper. Btw, I went th...

20:45
@Mat'sMug I think I understand some of what you're explaining. I'll keep reading and see if it clicks.
Oh boy, someone just mailed every JIRA user in the entire company. silently roots for a reply-all circus
21:06
Huh? The SourceControlPannel seems to receive a WM_DESTROY right after hooking it up, even before creating the tool window.
I wonder what I am doing wrong with the registration.
21:18
@puzzlepiece87 When you do have time to get into C# I highly suggest picking up C# In Depth.
Sanity check --- the DeclearationExtensions.FindTarget must return a single match?
Also, am I supposed to have Castle.core in my RetailCoder.VBE\package.config?
I hope that doesn't mean I picked up @M.Doerner's WIP somehow....
21:44
The Ninject extensions depend on Castle.Core 3.2
oh good
saw the word "Castle" and became worried
and it wasn't on the GH either
The Castle project is rather large.
Automatic property injection is really annoying me right now.
Regarding my PR where I had to put //Skip over empty Else block and get If block for the fix noting the why of var inspectionToFix = inspectionResults.Skip(1).First(); in several places. Is this copy pasting preferred? Or should I have made an abstraction to do it IE var inspectionToFix = SkipEmptyElseBlockToGetEmptyIfBlock(inspectionResults).
Neither way really feels right.
if you always intend to look at 2nd or nth element, you could just use AtElement() to directly go to the element. But, wouldn't you just look for the ElseIfStmtContext and ElseStmtContext ?
@this AtElement() looks like it'll work very nicely.
These are for the EmptyIf tests that were originally written. When I combined them with EmptyElse tests they were picking up the else test.
.Skip(1).First() was the only way I knew of to get the next text, until now.
my worry tho is what if they have this nutty code where they have 4 empty ElseIf blocks and a empty Else blocks?
Ideally I want to explicitly show which one is intended. There may be a more optimal manner wherein I can do this but I don't know how.
22:03
then what?
^ that's why I'm bringing this up. It's not been sitting well with how it's written but I couldn't figure out what was bugging me specifically.
restate your problem.
They are both in the RemoveEmptyConditionBlockQuickFixTests and when examining the properties I wasn't able to find a manner in which to differentiate them.
Warning: Upcoming psuedocode...
var inspectionToFix = inspectionResults.GetTest("EmptyIfBlock") or var inspectionToFix = inspectionResults.GetTest("EmptyElseBlock") would be ideal to explicitly show which result is wanted.
well, this wouldn't be limited to just If blocks, no?
iI mean, we could have an empty Do...Loop block
that should be an inspection, no?
@this For my specific tests, yes. But I'd prefer a more robust solution that could be applied more generally as needed so that it covers this specific case and others.
22:10
Not necessarily.
so maybe reverse the steps -- instead of enumerating which tests you are going to perform... enumerate all blocks you want to check in your listener (I'm assuming you are using one ATM)
then within the listener, return the type of the block.
The only thing you care is that the block is empty
I can't tell you how many loops I've seen that actually modify state in the loop conditional.
let listener tell you which block is empty.
We'd have to be cautious with that one.
The listener is checking for both empty if and empty else blocks though.
22:13
then let that listener tell you which block was that
@this I'll try this. I'm still shaky on my C# legs so bear with me.
@Hosch250 care to elaborate why one should be cautiou with (assuming) listener returning results?
@this No, the do loop one.
@Mat'sMug We never deactivated loading source control based on the settings; the source control command always gets injected into RubberduckHooks.
22:29
Now, I gotcha your other comment @Hosch250 - Do SomethingStupid() : Loop would be empty loop but alters the state. :\ IMHO, though, if they did that, they deserve to be slapped on the back of the head with a big smelly fish
Yup.
@this It'll also teach them not to use Hungarian Notation too.
w00t all tests are passing now
^ That is a good feeling.
> Considering the 2nd part -- how would one handle an enum like vbMsgBoxStyle? It's actually a mixture of bitmask (flag) and .... non-bitmask. (the constants for button styles from 0 to 5 aren't really bitmask.
22:54
Yay, without the tool windows, it loads.
5
@M.Doerner :+1: Does it shutdown cleanly, too?
@M.Doerner oh shit
2
The exit is not completely clean, but without restart.
hopefully both are fixalbe
@M.Doerner so, how much faster is startup?
noticeably?
23:07
I have not yet started it without the debugger attached.
23:27
Ooh @M.Doerner so close yet so far
@Duga @this Thanks for the heads up with ElementAt()

« first day (1197 days earlier)      last day (1983 days later) »