« first day (336 days earlier)      last day (2844 days later) » 

00:00
@nhgrif that's the shared notifier interface that all features would register with, right?
RELOAD!
[Cardshifter/Cardshifter] 10 commits. 1 opened issue. 1 closed issue. 5 issue comments.
[retailcoder/Rubberduck] 1 opened issue. 3 issue comments.
Anyone who wants to listen for events conforms to t he protoccol
or "implements the interface"
That's the apple (and COM if I get COM right) way, but I get the idea
CodeExplorerPresenter : DockableUserControl, IParserObserver
Hmm... I'm not managing to quite figure this out at the moment, but the gist of it is basically identical to the version I just did
00:08
@RubberDuck nope. We constructor-inject some ParserEventProvider - everyone that needs one gets the same instance
Except instead of a delegate property, you have a Set<CodeExplorerDelegaet> property.
The important part to get right though is the memory aspect.
That's where C# kicks Swift's ass
Well, yes and no.
If you stick something in that set but never remove it from that Set, it'll stick around.
It's a problem no matter what language you write it in.
It's the same with the delegate property.
If your code explorer has a reference to it, it can't be released from memory.
True but that's handled with IDisposable
The point is, you have to find a way where if the Code Explorer object is the only one holding a reference to the object, the object is allowed to be disposed/deallocated/whatever.
(And the Code Explorer has to deal with the fact that it may not have any listeners, and that's fine)
In Swift/Objective-C, if you just have the delegate property from my first example, you just declare it as weak and it automagically takes care of it.
Creating a collection of weak references is another story, but it can be done.
00:14
But... Each different client will need different behavior Mug. How does that work with injecting this provider you speak of?
The clients implement the interface.
The Code Explorer calls the appropriate method from the interface at the appropriate time on the clients.
Client does whatever it wants within its own method.
@RubberDuck each client registers the provider's ParsingStarted as they please - e.g. CodeExplorerPresenter will want to disable the "Refresh" button. And then each client handles ParsingCompleted as they see fit
@nhgrif what Swift/COM has as interface methods, C#/.NET has as event handlers here
Well, not really.
Event handlers are probably actually closer to NSNotificationCenter stuff.
Which is different from what Swift/Objective-C uses protocols/delegation for.
Ahh. Okay. I could see how that would work.
@nhgrif that's how .net events work. They're multicast delegates
00:31
So... at work today, someone was insisting that there wasn't a problem with a file that's 25k lines long.
"as long as it's organized"
Meanwhile, I wrote a library that makes Objective-C applications talk to Microsoft SQL Server, and the largest file is under 600 lines.
00:52
@nhgrif some people... just... don't get it.
Got that file under 550 lines just now, felt like doing some clean up.
"The advantage to big files is that it means fewer files and you have to do less organization at the file level" (or something like this was stated)
Like that's a concern
I mean, we do have a lot of files.
Isn't that what namespaces are for?
The solution is actually really organized.
Mostly because I just tell people where to create their files at.
00:56
lol
We have lots of namespaces...
But, I don't know...
I'm sure that these guys would get it eventually. Maybe.
An ERP system is supposed to have lots of namespaces
But some things just seem very obvious to me.
Yes.
They might be hiring someone new. We have a module called "Data Analysis" which gives you all sorts of different data views.
Otherwise it's not an ERP, it's a mess and a foreseeable failure
Fortunuately, this is one of the better organized modules that's still in "old code".
They want to start whatever potential new hire in this... but I recommended that someone lay some of the groundwork.
I also recommended that we make a special menu item control so that all the other modules could just plunk that in their menu bar and have access to the data analysis views relevant to that module.
It should be pretty simple to do... but I have a feeling it's not going to get done right.
And I probably won't have time to do it this month... so it just won't ever get done right.
This... in spite of the fact that I've told the guy exactly what to do.
01:00
Hey, you're gone. Let them drown.
You did what you could
Yeah. The silliest part of all of this...
My boss is sort of aware of the gap in capabilities.
I'm working on a rewrite of a module (which was just rewritten like 3 months ago... terribly)
I bet he's silently panicking then
He is.
But the thing is...
He keeps emailing me about really minor issues in spots.
Issues that the others are more than capable of fixing after I'm gone.
Which slows me down from completing the actually hard parts.
I do what he wants, because after I'm gone, it doesn't matter to me.
I just feel like he's not managing the time he has remaining with me optimally.
Make an arrangement to keep the door open for $100/hour consulting work ;-)
01:02
Hahaha
Even my former boss who left in February wouldn't do it for $100/hr.
I was offered more than what my former boss was making when he left if I stayed.
I'm also pretty certain that my new job pays more than the job my former boss left for (if not, it's very close).
You earned it
I'll still be dealing with people far less talented than me... but I'll also actually have some co-workers at or beyond my level.
And I'll be getting paid enough to hold hands.
Plus, I'll get all of the interesting projects.
as long as you don't let your head inflate too much ;)
haha... did you ever play the Bullfrog game "Theme Hospital"?
01:11
LOL
loved that game
only played the demo though
memories..
Funny thing is... current company is moving into a new building this month or next.
Our current building... is falling apart.
It's basically one step better than a trailer home.
Owner bumped into me in hall the other day, "Oh man, sucks for you. You're leaving and we're about to move into a new building!"
It was sort of sarcastic.
I didn't say anything, but I was just thinking.... "You know, most software companies don't work out of buildings that look like a good place to make meth in..."
And... the new office is a way better building than the new building for current company.
It's right in the downtown area too, right in the historic district.
yeah but in a few months it's their code that's going to be falling apart
Most likely.
Actually, it'll probably be okay until they start doing something that requires database schema changes.
01:39
Code rot is a funny thing though. It happens slowly. It .sneaks in.
Yeah...
But we're up to date now. Everything is getting updated from .NET 2.0 to .NET 3.0
Right? That's up-to-date, right?
01:56
@RubberDuck I know what breaks my debug build
it's when I make a release build
when I switch back to debug config after that, F5-debug launches Excel, but the registration is borked
Oh. Good news!
yeah, well the less good news is that I don't know how to fix it
02:13
Oh. Well... Knowing the problem is a good start?
Having a problem and not knowing how to fix it is slightly better than having a problem and not knowing what it is. Also, slightly better than fixing a problem and not knowing how you fixed it.
I'm reinstating the post-build regasm.exe command
works
 
1 hour later…
03:34
[retailcoder/Rubberduck] retailcoder pushed commit 50265cd2 to GrammarIsFun: Implemented actual async parsing. Code Explorer code still needs a cleanup, but no longer freezes up UI.
04:01
@Duga Yay!
 
2 hours later…
05:53
[retailcoder/Rubberduck] retailcoder pushed commit ef3a8611 to GrammarIsFun: Code Inspections run async. There's a bug with the issue count, an undesired interaction with the Code Explorer, everything feels ironically less responsive, but code i
@Duga code inspections no longer freeze up the IDE... but it doesn't feel right.
and introduces all kinds of nasty unforeseen bugs
this commit has a rollback probability of 50%
and my bed has a 100% probability of seeing me in it within the next 5 minutes.
 
2 hours later…
08:08
> Leaving it as it is (ie. multi-line) would be nice, but certainly not an necessity I don't think. Rewriting to a single line is fine - as you say, as long as code doesn't get broken.
 
4 hours later…
12:02
Oops. Left test code in the release that guaranteed an error would be raised when you clicked a certain button....
Yup. Gonna be one of those days I guess. =)
12:15
mornin' all! Looks like a busy night - can't tell if it was actually productive or not... :)
12:28
Depends on your deffinition of productive.
12:41
Hence, why I couldn't tell. ;)
13:31
I might post on Programmers about concurrency vs. UI
@FreeMan that makes 2 of us ;)
@ticker that SuperUser question wasn't nearly as interesting as I'd hoped.
@RubberDuck What does @ticker do?
Nothing... It's just our way of talking to the new feed items up in the corner.
0
Q: Using a COMAdd-in for VBA in Outlook 2013

Natalie BookI am a newbie with vba and am having trouble writing a macro for Microsoft Outlook 2013. What I am trying to do is use a COMADDIN that I have installed for each item in my sent email folder. I also have to be able to click the import button when the prompt pops up. Is anyone able to help me wi...

That's the boring question in question.
does it in any way modify the behavior or is it "just because"?
13:47
It's just because.
It kind of simulates the way you can respond to @StackExchange's posts.
ok, noticed it being used the last couple of days, was just curious...
Yup. Np.
We're kind of a strange bunch around here I guess.
2
guess that's why I keep coming back.
2
14:12
> Did I miss the starfest?
14:40
@FreeMan eh, you're just as nuts as we are
2
0
Q: When asynchronous tasks make a bad UX

Mat's MugI'm writing a COM add-in that's extending an IDE that desperately needs it. There are many features involved, but let's narrow it down to 2 for the sake of this post: There's a Code Explorer toolwindow that displays a treeview that lets the user navigate modules and their members. There's a Cod...

@Mat'sMug :D
@Mat'sMug glad you fixed that typo... ;)
is the problem clear enough?
Just an FYI, we also have a UserExperience.SE site as well. I believe this is on-topic here because it is discussing code design more than user interface but I wanted to let you know in case your changes drift more toward the UI side and not the code/design side of the issue. — Snowman 2 mins ago
prepares for close votes
15:03
Man. That's sticky.
what is?
@Mat'sMug that
sticky.. as in? help me out here ;)
As in "there's a reason you asked the internet".
damn right
15:07
> See where this is going? I don't like it, and I bet users won't like it either. What am I missing? How should I go about sharing parse results between features, but still leave the user in control of when the feature should do its work?

The reason I'm asking, is because I figured that if I postponed the actual work until the user actively decides to refresh, and "cached" the parse results as they come in... well then I'd be refreshing a treeview and locating code issues in a possibly stale parse result... which literally brings me back to square one, where each feature works with its own
#CacheInvalidationIsHard
2
> Excel can't handle 95004700 sheets.
3
1
A: Out of range error

PSVSupporterSheets(STRcode).Activate activates Worksheet number STRcode. While you probably want to activate Worksheet with the name STRcode. Excel can't handle 95004700 sheets. You need to change STRcode from Integer to String.

15:24
@Mat'sMug thank God for it!
could be an interesting experiment:
0
Q: Get Bytes by number of lines in Excel file

Eddy JawedDim FileMemCnt As Integer = File.ReadAllBytes(filePath).Length Hi all, I'm trying to figure out a way of determining the bytesize of say 1000 rows in an excel file which may have say 10-20K rows. Once I get the bytesize chunk, I can then split the file into smaller files per exactly 1000 rows....

16:07
For our project one of our big tasks is to be able to program in one source language (say Java), then compile that to an Abstract Syntax Tree, and then be able to generate code in any (decent) target language
Sounds rather complicated, but not undoable
new answer on a less traveled question ►►► codereview.stackexchange.com/a/90080/18427
it's a good one too I think....
16:56
One of the great things about Antlr is that it allows you to create multiple different kinds of parsers/listeners/visitors. Perhaps what is called for here is a specialized parser solely for the Code Explorer. Another, more general purpose parser for the other features? I've not thought it through exactly. More just a passing thought. — RubberDuck 53 secs ago
17:29
@RubberDuck not crazy. The code explorer doesn't need the references resolved to build its tree... but it does, to have find all references actually do something...
So.. nope.
Like I said. A passing thought.
This however.....
I think, I would do it like this: When the user triggers a refresh, that toolwindow triggers the parse and shows that it's working. The other toolwindow(s) are not notified yet, they keep displaying the old information. Until the parser finishes. At that point, the parser would signal all toolwindows to refresh their view with the new information. Should the user go to another toolwindow while the parser is working, that window would also enter the "working..." state and signal a reparse. The parser would then start over to deliver up-to-date info to all windows at the same time. — cmaster 42 mins ago
He's on to something I think.
 
3 hours later…
20:13
@ticker lovely
0
A: Calling subroutine based on a file name or any other criteria

Mat's MugThe Call keyword is just a deprecated/obsolete way of calling a procedure. This: Call Assumptions_OtherAdmin Is identical to this: Assumptions_OtherAdmin There's really no reason to use Call, it's there only because [much] older versions of the language required it, and it's still there fo...

@Mat'sMug VTC'd as a dupe of this.
3
Q: Excel VBA store functions or subroutines in an array

user2961927In C/C++, when I have a bunch of functions (pointers), I can store them in an array or a vector and call some of them together in a certain order. Can something similar be done in VBA? Thanks!

Still a good answer.
yours is much better though
I've answered that question a few times now so I took some time to write a canonical answer for it.
It took a while to write that one.
20:20
has my upvote ;)
=)
Man. Battleship is a harder problem than it seems.
Or maybe I'm just tired.
@FreeMan thanks! Application.Rub doesn't sound like a really good idea ;)
It puts the lotion on its skin.
@Mat'sMug I thought it was cute, but would cause issues when people tried to execute code without thinking...
20:28
@FreeMan yeah, next up on @ticker: Application.Rub doesn't compile. What am I doing wrong?
3
LOL
@Mat'sMug I found this code sample and it doesn't execute, but it was the accepted answer...
20:52
> Sent: Friday, May 08, 2015 4:45 PM
To: Francis Veilleux-Gaboury
Subject : BONJOUR FRANCIS - CONTRAT 000010138620 CLIENT GAUTHIER A PREVOST - BESOIN NO AUTORISATION - SVP, MERCI - GLORIA

POUR REMP MOTEUR CONDENSEUR (PLEIN HUILE), DUAL RUN CAP ET FAN BLADE DEBALANCEE SUR THERMOPOMPE. CI-JOINT COPIE INSPECTION ANNUELLE.
0
Q: Delegate Array in Excel VBA

cheezsteakHow would I declare an array of Delegates in Excel VBA? I am auditing excel spreadsheets and each column requires a different function to determine if the cell is good or bad. Each function is of the same type, Private Function checkCell(auditCell As Range) As Boolean If I could declare a De...

He got a nicer answer than I did.
@Mat'sMug I wish she would leave me alone with her ALL-CAPS emails on this sunny Friday afternoon.
Makes me wonder if she writes all her emails like that.
I got this one last week, in YELLCASE:
YOU ARE AWESOME,

YOUR AWESOMENESS MAKES ME AWESOME

WOOT WOOT !!



THANK YOU!!
2
Whoa.
20:57
Who gave me that pity upvote?
most users have CAPS LOCK on all day over here though.. because the system only intakes uppercase
(hides)
> v1.22: 210 downloads
@Mat'sMug holy...
@cheezsteak in a few months, that will be our daily download rate :)
when SmartIndenter is embedded into Rubberduck
Whats the timeline on Git intergration?
Is it just git or VCS in general?
21:14
What pity vote? It was a good question.
@cheezsteak Git is 100% working as a COM API. I have all of the local commit & Init stuff working in the next branch now. I figure it will take me a good Sunday or two to get the remote functionality up. Then, there's all the fine tuning and big squishing.
So a month?
> 6-8 weeks
All jokes aside, I fully intend to have the initial version of Git Integration released for my birthday. (June 3rd)
21:39
LambdaTable implemented, two new IApplicable Classes.
 
1 hour later…
23:03
@cheezsteak omg you implemented a lambda class!!!!
You need to go update the read me to say that is the most interesting thing in the project.
Seriously, so not my repo any more.
Ohhhh Fold....
Ok. Less drinking & chatting for ducky. I need to facilitate the pushing & pulling here...
23:34
@RubberDuck The lambda is @Mat'sMug s delegate class.
23:47
Ohhhhh.
Check out composed and namecall

« first day (336 days earlier)      last day (2844 days later) »