« first day (2090 days earlier)      last day (1090 days later) » 
00:00 - 20:0020:00 - 00:00

12:00 AM
IIRC, opening a big enough workbook will cause it to go unparsed
 
RELOAD!
 
(big measured in the VBA project's codebase size)
 
[Minesweeper] Games Played: 111, Bombs Used: 52, Moves Performed: 13987, New Users: 17
 
With Access, never ever saw automatic parse succeed.
 
I can open the primary workbook and stay within Excel. All is good with uncompilable code, as long as I don't display the IDE. Once a second workbook is opened an auto-parse occurs and that's when I get RD auto displaying the IDE.
 
12:02 AM
it's displaying the IDE because it wants to tell you about compiler errors?
 
Only when I open a second workbook.
 
right. IN that case, I guess we could remedy that by checking whether IDE is in foreground
and if not, to not bother compiling & parsing
(at least when the setting to compile first before parse is enabled)
I also think that if you unset that setting, you won't have that problem anymore but you'll now have parser errors
 
Foreground meaning it's the active window?
It caught me off guard since one workbook never parses, yet when a second is opened it auto parses every time.
 
RELOAD!
[rubberduck-vba/Rubberduck] 3 issues opened. 7 issue comments
 
I do have █ Compile code before parsing enabled in my settings.
 
12:08 AM
@IvenBach as I said, if your excel workbook has enough code, it won't automatically parse
with blank workbook or one with very tiny codebase, it probably will automatically parse
but 90% of the time, it fails when the first workbook contains significant enough code. At least that's my experience.
 
In agreement.
My question is why does the second workbook then auto parse whet it too has sufficient code that would prohibit an auto parse if it were the opened by itself?
IE both workbooks I'm opening have enough code that neither of them auto parse when individually opened.
 
because VBIDE is already loaded.
The whole thing hangs on the fact that when RD hooks, VBIDE is not done loading, so the frist time is fragile.
 
Nope. This is occurring when I never open the VBIDE.
 
did the workbook run code in VBA?
 
No. None at all.
 
12:15 AM
hmm.
and when you load the 2nd workbook, you get the RD splash then?
 
1) I open primary workbook. Explicitly never open the VBIDE. No RD splash.
2) Open secondary workbook. RD splash because of auto load.
 
disable RD; opening the 2nd book will bring up the vbe with a compiler error or something.
RD isn't even loaded, it's not RD
 
Sorry I know i already asked but you don't have any code that runs in Auto... whatever it's called "events"?
 
but if something brings up the vbe, it will init and load RD
 
yeah that's why I think something's triggering the code to run somehow.
or to take a cliché: "Pics or it didn't happen"
 
 
1 hour later…
1:48 AM
@MathieuGuindon could an incorrect class name cause this?
 
any compile error in a VBA project that has an auto_open macro is going to be a problem, yes
actually that's only if the error is in "live" code that's loaded in that execution path
 
MSXML2.FooBar is the class that’s declared, which doesn’t exist. Was coded by a previous employees. It should be MSXML2.FooBar60 I can verify when I get back by disabling RD but already know you’re correct.
IRC Auto_Open() doesn’t exist in the workbook.
 
could be Workbook_Open in ThisWorkbook too
 
That doesn’t exist either.
@this mobile.twitter.com/jbogard/status/1232038785485037570 emojis be all up ons your codez!
 
macros are enabled then, and there's some worksheet event handler firing up some code somewhere
 
1:58 AM
@IvenBach so the apocalypse begins....
BRB gonna pick up some milk.... and a lot of ammos.
 
 
2 hours later…
3:42 AM
@IvenBach Confirmed neither Auto_Open() nor Workbook_Open() exists. Can't get a repro on my home machine though. Need to test again tomorrow.
Opening both files with macros disabled doesn't auto-parse with RD. Opening a third file with macros enabled invokes a parse and subsequent error.
 
4:27 AM
@IvenBach congrats, your PR was the last PR to merge into VBA docs!
> This repo is no longer accepting PRs or new issues. Code questions? Try stackoverflow.com/questions/tagged/vba. Suggestions? Go to officespdev.uservoice.com. Need more help? Try docs.microsoft.com/office/vba/articles/feedback-support. Office VBA reference: docs.microsoft.com/office/vba
 
Huh? I’ve had a couple PRs be accepted in spite of that notice. <sarcasm>They were just that good.</sarcasm>
I really wish more of the Samples for the Excel object model were good and accurate. Some of them are implicitly misleading and deceptive.
 
4:47 AM
in Coding Projects and Twitter Heaven :), Feb 13 at 11:15, by Simon Forsberg
@IvenBach That's an "achievement unlocked", not reputation points.
 
what are the odds that this notice means "VBA object models have received their last update"?
 
Slim? I'm still going to submit updates/fixes.
 
right, it's still not readonly
 
github.com/MicrosoftDocs/VBA-Docs/commits/master they are still actively merging.
pssst Mug... I dare you to pull the entire VBA repo down to your local machine. What's the worst that could happen?
 
that was 5 days ago though.. when did the notice come up?
 
4:53 AM
That's been there for easily 6+months maybe a year or more honestly...
 
oh! damn, first time I noticed it
 
Now you know how I feel when you point out the obvious to me.
> I swear that's the first time I've ever seen that.
 
@IvenBach 228MB is nothing.
Iven = 14 commits vs Mug = 7 commits to VBA docs repo. At least I'm winning somewhere.
@Vogel612 Sensei. Why does GH contributors commit count sometimes differ from the git log --author=FooBar commit count?
 
 
2 hours later…
7:13 AM
Draft saved (not published), not sure how good/worth-reading that might be, feedback welcome: TypeScript & ScriptLab
ttgtb
 
7:46 AM
Odd intersection of concerns: RE: this answer: Theoretically, the Excel object model could have typed ActiveSheet as something like Sheet, which would have all the common members of Worksheet, Chart and DialogSheet.
Because Typescript supports union types, ActiveSheet can be typed as Typescript-defined Sheet, or type Sheet = Worksheet | Chart | DialogSheet;
allowing common members to be used.
@MathieuGuindon I find that externally automating Excel with Typescript, the Typescript definitions and WSH is a better choice than VBA, when practical.
 
 
2 hours later…
 
3 hours later…
12:28 PM
@IvenBach github may be performing some normalization
so git just stores the Author in the "Authorname <email>" format
and if you look for --author="Author Name", it won't find it
Github is probably looking based on emails that are associated with an account and therefore most likely has more commits than raw git
 
@ZevSpitz that's pretty slick!
 
12:55 PM
@MathieuGuindon Without even clicking the link: Ouch!
 
@Duga we respond asap, but you get back to us a whole day later so...
...will look later on desktop, but log doesn't appear to contain the parse error
 
1:21 PM
@MathieuGuindon this is kinda unreadable if it's not rendered as HTML as it is...
the raw is a bit better, but each <p> is crammed into a single line :/
 
You can toggle wordwrap I think
somewhere.. dang where has it gone
 
@Duga I think I know what the problem might be.
 
@MathieuGuindon lol... I noticed that.
 
1:37 PM
> In the attached log, I cannot find any indication of a failed parse. However, there is a problem with one inspection. More precisely, there is a problem with the following line of code.
https://github.com/rubberduck-vba/Rubberduck/blob/d2d3f1fbbb811af10a3efb669490ae7971f8ddec/Rubberduck.CodeAnalysis/Inspections/Concrete/OptionExplicitInspection.cs#L93

The inspection listener uses a dictionary indexed by the name of qualified module names to store the results. That fill throw whenever there
 
@Duga Log is gone again???
Oh well, it is in the history.
 
maybe they realized it was missing an actual repro and they'll upload another one... maybe
 
Still, I found another bug.
 
@Duga @M.Doerner oh wow, nice catch there
 
That bug will go away automatically once I refactor the parse tree inspections and inspection listeners.
 
1:42 PM
neat!
 
However, I will not start that before my latest inspection PR is merged.
 
interesting...
Anyone else see the "Bugs" tab in the github repo available thingies (next to Issues and Pull requests)?
or is that something from GitHub refined?
 
@Vogel612 I don't
 
k then it's probably a GH refined thing
 
1:50 PM
@M.Doerner done!
 
[rubberduck-vba/Rubberduck] retailcoder pushed 20 commits to next (only showing some of them below)
Make more declaration inspections use one of the base classes

In particular, this includes a complete rewrite of ParameterCanBeByValInspection.
Redesign ParameterNotUsedInspection

For interfaces, it now only reports parameters of the interface member and not of individual implementations. Moreover, it does it only if there are implementations and none uses the parameter.

The same behaviour now also applies to user events and event handlers. (Parameters ofevent handlers of built-in events are never reported.)

In addition, ClassModuleDeclaration.IsInterface has been enhanced to also retun true is there is an @Interface annotation on
Stop reporting functions potentially conflicting as Udfs in private modules

Also makes some more declaration inspections use the base classes.
[rubberduck-vba/Rubberduck] MDoerner pushed commit e096043f to next: Redesign MemberNotOnInterfaceInspection and IntegerDataTypeInspection
Add base classes for declaration inspections that use global information

The information gets passed down to the method determining whether a declaration is a result. This means that the signatures of the methods are different from the the other base classes. So, these for a second hierarchy.

This also changes the base classes to also look at the QMNs of user projects.

Finally, this makes the final declaration inspections use the base classes.
 
I always considered PR: Reviews Requested to be something of a blocking status ...
 
[rubberduck-vba/Rubberduck] MDoerner pushed commit 940eb7e2 to next: Merge branch 'next' into LetDeclarationInspectionsUseBaseClasses
Replace generic function on IInspectionResult with additional generic interface IWithInspectionResultProperties<T>

This change makes the structure look a bit cleaner.
Unfortunately, the new interface cannot extend the old one because the corresponding generic inspection result classes have to inherit from the non-generic ones.
 
I guess I will get back to the inspections then after finishing day 10 of AdventOfCode in Haskell.
 
Refactor inspection base classes

Loosely based on review comments to PR #5384
[rubberduck-vba/Rubberduck] MDoerner pushed commit cf659ec5 to next: Merge branch 'next' into LetDeclarationInspectionsUseBaseClasses
Merge pull request #5384 from MDoerner/LetDeclarationInspectionsUseBaseClasses

Let declaration inspections use base classes
 
1:57 PM
@MathieuGuindon Whoops.. thanks for the catch
 
@Vogel612 Is there a good/elegant way put coordinates a list of lists in Haskell?
My version feels a bit ugly.
 
you sure you want a list of lists and not a list of tuples?
coordinates sounds like tuples
 
I start with a text file.
Each character is a marker whether there is something at the position or not.
So, I start with a [[Char]].
 
this sounds like something you want to use Array for
 
What I want in the end is a [(Double, Double)].
 
2:00 PM
hmm ...
 
Currently, I do the following.
 
each [Char] maps to one coordinate tuple?
 
toPoints :: String -> [Point]
toPoints = map fst . filter (isAsteroid . snd) . inputWithCoordinates . lines

inputWithCoordinates :: [[a]] -> [(Point, a)]
inputWithCoordinates = map shiftTuple . concat . zipWith withElement [0..] . map (zip [0..])

withElement :: a -> [b] -> [(a, b)]
withElement elem = zip (repeat elem)

shiftTuple :: (a,(b,c)) -> ((a,b),c)
shiftTuple (x,(y,z)) = ((x,y),z)

isAsteroid :: Char -> Bool
isAsteroid '#' = True
isAsteroid _ = False
Yes, or rather, each Char maps to a coordinate tuple.
It was a bit of gymnastics in my head to get to this.
 
do you know the dimensions beforehand?
 
In principle, I could read them from the file, or just from the [[Char]].
 
2:06 PM
that would allow flattening the input array and sidestepping the shiftTuple thing you have there
also I can't help but think that this should be written as some kind of list comprehension, but I wouldn't know how to ..
 
Hm, list comprehension might actually make this prettier, but I will have to think about how to do it.
 
specifically generating the points should be a lot cleaner with a comprehension
inputWithCoordinates = zip coordinates . concat
  with coordinates = [(x,y) | x <- [0..width], y <- [0..height]]
 
thx
 
2:23 PM
@MathieuGuindon fixed... <G>
 
0
Q: Performance on countifs and sumifs

DamianI'm trying to calculate with SUMIFS and COUNTIFS some data. The output sheet looks like this: I've hidden some irrelevant or sensitive data to make it easy to go to the point. My code runs an array on this worksheet and calculates per each day and user some KPIs I need from this worksheet: ...

 
2:53 PM
@MathieuGuindon One downside: Javascript, and therefore Typescript, has no early binding; the definitions are a constraint at compile time, but any performance benefits to early binding aren't available. I presume the same would be true of any scripting language.
 
eh, the average VBA dev thinks late binding is about CreateObject
 
is there a example where early binding actually matters in terms of performance only?
 
dubious at best
 
They usually say late binding is slower and that is true. But that was ~20 years ago. We were futzing in megahertz and megabytes back then.
That's why I usually argue in favor of benefits to the developers, rather than performance benefits when discussing early vs. late binding.
 
if you're chasing milliseconds perhaps it can make a difference... It's mostly about compiler assistance.
 
3:00 PM
^
and lets' face it. If you're chasing milliseconds, VBA is already the wrong choice anyhow.
 
So using ***Script won't matter, either; it'll be just as wrong as VBA is.
 
I like ***Script quite a lot actually... It might very well be the excuse I've been waiting for to finally write some JS/HTML/CSS and that's a major accomplishment already (getting me to do web stuff)... It's great for devs. Joe in Accounting though?
MS is dropping Joe
Use PowerApps, Joe
 
See, PA probably will end up using JS anyway
there are some APIs around PA, as well. So Joe shouldn't be left out in cold if he need to customize it a bit more than normal. At least in theory.
 
tbh PA doesn't speak to me at all
 
3:06 PM
The $64K question for me, however, is whether it's easy as VBA for them to pick up and learn.
Curious - why not?
For me, I honestly don't know if Joe will be able to deal with the async nature of ***Script and closures & lambdas which is kind of mandatory for anything simple.
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5387?src=pr&el=h1) Report
> Merging [#5387](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5387?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/0abf2d83d5e17b00609f282e1f95ba9b41de8cd3?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `n/a`.


```diff
@@ Coverage Diff @@
## next #5387 +/- ##
=======================================
[rubberduck-vba/Rubberduck] build for commit 0abf2d83 on unknown branch: Coverage not affected when comparing 0abf2d8...0abf2d8
 
I don't think it's conceptually very different from C# and its lambdas.
 
No, but the issue is that you must learn it sooner in ***Script to do anything useful.
In C#, it's possible to get away without lambdas for a while.
Ditto w/ async.
 
If all you want to do is to manipulate the Office object models in *Script, I'm not sure how much async is required. Or even lambdas. There is one specific issue: if you want to write event handlers, you need to use a specific syntax.
That alone makes it really painful to use events in *Script.
 
3:28 PM
but that's activex?
Mat's talking about Office API. Something different.
 
[rubberduck-vba/Rubberduck] build for commit f2a8b98f on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5387?src=pr&el=h1) Report
> Merging [#5387](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5387?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/0abf2d83d5e17b00609f282e1f95ba9b41de8cd3?src=pr&el=desc) will **decrease** coverage by `0.26%`.
> The diff coverage is `81.18%`.


```diff
@@ Coverage Diff @@
## next #5387 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit f2a8b98f on unknown branch: 61.46% (target 0%)
 
@MathieuGuindon they might know about create object. I’ve know several, myself previously included, that made VBA work without really knowing how/why.
 
@this it's levelling down to the lowest common denominator, i.e. gets stuff done, doesn't care much about code and how it all works - only that it does, at least in one happy execution path.
@IvenBach it's definitely a minority that knows what they're doing
but, dragging a button onto a sheet and wiring it up on Win32/VBA is easy as pie. Making an html button in the task pane is another story, wiring it up to a handler too - but that's a minor hurdle imo. It's good that ScriptLab exposes HTML & CSS to Joe.
I can't wait for the Office-JS questions to start flowing about the simplest things - but then, if/when it does, that'll mean vba really is on its deathbed
 
3:48 PM
I'm curious about the "if/when" - feels like Office-JS hasn't gotten much traction
 
it hasn't, because VBA devs don't need to switch, because the real world is running Office 2010 on Win7, I'm guessing.
Ok make that 2016 on Win10
 
Oh, ScriptLab is kind of like the VBE, just for the new TypeScript API, right?
 
kind of
it's more of a glorified textbox than an IDE though
 
but they now have macro recorder. Would be interesting to see if that's enough to push the Joes over.
 
but unlike VBA, TypeScript isn't tied to a particular IDE, so there's that
 
3:55 PM
Still, that might actually make things work out better for the TypeScript API than for their former attempts to lure people away from VBA.
 
I've heard it oft argued that macro recorder is basically why VBA is so big.
Though I am skeptical of that argument myself.
 
I think the integrated IDE is the best argument VBA has for why it did so well.
 
I think the single most important reason why VBA is still so prevalent is shadow IT.
 
^^^^^^
that, times a million
 
3:57 PM
That's more about the people, rather than technology, isn't it?
 
^^^^^^^^^^^^^^^^^^10^9
 
Meaning, if they find it easier to do X, they'll do X, regardless of what the X is. That X just happens to be VBA.
 
You need zero permissions from IT to automate using it and you do not have to file a gazillion requests.
 
^ story of my life
 
Yes, exactly my point.
Are they going to have that obstacle with the Office JS?
If yes, then #GoodLuckBuddy
 
3:58 PM
Yes, and the new scripting approach takes quite a lot of power out of the hands of users and into those of IT - unless all you need is tiny little snippets.
 
Ok, then #GoodLuckBuddy it is.
 
And the fact that shadow IT is soooooo much more interesting than doing your proper job. As for Office JS not gaining traction, when you look at any example they start with a promise which blows the mind of your average shadow IT Joe.
 
That is why I thought that having some IDE for the API inside Office might actually make people tricle away from VBA.
 
Excel add-in in VBA? SaveAs, send to users. Excel add-in in JS? IT needs to get involved.
 
A bit tangential but I found out that Mozilla deprecated Firebug since it's no longer needed.
The implicit message is that "you no longer need an IDE; your webbrowser is now your IDE"
 
4:04 PM
@this they already did that? i didn't think that was going live until 2020Q2
 
I don't know how long ago they deprecated it.
 
vivaldi is working towards a similar scenario, where they are making an IDE interface as an extension for Chromium, last i heard
 
but I think it was a while. I hadn't used Firebug for long time but had a need to load FireBug lite for an embedded scenario and that's how I found it was deprecated.
 
copy
 
But the fact remains - you already have 90% of your developer tools right there in your web browser.
 
4:06 PM
i haven't used firefox in several years, but try to keep up on some of the larger changes... never know when you will need to swap
 
Just right-click, inspect element and boom.
That is even true for say, IE 11 or Edge, I believe.
Going back to Office JS, if they worked out a way to integrate with the embedded IDE better, they would be much more than just a glorified textbox.
IDK if that is even possible, though.
 
@this meh. I'd be happy with an "open in VSCode" button
the most jarring thing for me is that there's no project anymore, no modules - just a script. And with 1K+ lines maintenance in ScriptLab becomes annoying
then again, lots of vba folks are happy with one 8.3K-liner module named Module1, so... I'm probably in the minority here
 
hmm. Does things change when you make it a proper add-in?
I honestly don't see how you can share code with others if it's just one giant blob
 
Haven't tried doing that, feels complicated.
I suck at web.
@this gists
 
@MathieuGuindon if the majority of users aren't dedicated users, i feel you're in the majority of dedicated users.
also:
 
4:15 PM
@MathieuGuindon No, you're wrong. The web sucks.
 
 
// TODO add JavaDoc comment
LOL
 
Yeah, pretty much
 
just "doing" with that module1 is kind of equivalent to just the procedure names in that image
 
I like the large company, though. "let's wrap it in thousands of layers!"
That is pretty much why I find it annoying to work with frameworks that aren't a part of the language and have to be installed & configured & code adapted (I'm looking at you, ***Script).
 
4:23 PM
that cat, though... solid syntax
 
#ProTip: if you have to hide the pea from the princess by stacking the bed with 1000s of mattress, you're #DoingItWrong
 
@this yes. I don't know what's pure-JS vs what's TS vs other JS libraries /framework-of-the-day.
I know a jQuery selector when I see one though
but is Map<T1,T2> JS or TS? no clue.
 
@MathieuGuindon i will say i'm getting better at seeing general syntax, even if i can't follow the specific keywords/terms for non-VBA languages, having sat in here with you lot
still not sure i'd be able to understand what recognize a jQuerey selector is, though
 
look at the default Office-JS snippet: the very very first thing at the top is one
it selects the "run" button, wires up a click handler
$("#tag-id")
 
copy; didn't know that was the name of it... i have been refering to that as the "definitions" section, outlining the types, etc., for the page
general inquiry... i tend to put functions in the module i started using it within... when using the functions in other modules in the same VBAProject, is it considered an "okay practice" to not qualify the function within a procedure and rely on the implicit reference to a unique-function name?
i assume the answer will be "be explicit", but don't want to assume
 
4:45 PM
@MathieuGuindon Map is JS. Map<T1, T2> which will warn you about adding the wrong type to the Map key or value, is TypeScript.
 
@Cyril explicitly qualified is better, yes. but on the other hand you have a global scope and you're using it, which isn't a bad thing in itself: I don't know anyone that does VBA.Interaction.MsgBox "hi"
 
The difference is that in JS, objects pollute the global scope.
in VBA, you do have to explicitly create an instance, even if it's going to be public.
 
@ZevSpitz GTK! mind if I ping you with JS/TS questions every now & then?
 
@MathieuGuindon With pleasure.
 
I guess it might be more akin to having all VBA objects created with PreDeclaredId
 
4:47 PM
@this Unless you wrap it in a IIFE.
 
so... this isn't going to work then
var playButton = $("#play-button");
playButton.click(() => tryCatch(run));
async function run() {
  await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Game");
    sheet.load();
    await context.sync();
    var view = new WorksheetView(sheet);
    var adapter = new GridViewAdapter(view);
    var random = new StandardRandomizer();
    var factory = new PlayerFactory(random);
    var controller = new StandardGameController(adapter, random, factory);
    controller.newGame();
 
If that's what we mean by "modules" in JS, then yes
I don't know TS. I only know enough JS to be dangerous and I try to use the module pattern in JS to avoid that problem.
 
like, I need to have every UI button wired-up at top-level?
 
Why shouldn't it work?
 
And it annoys me that TS is too different from JS that I can't really read TS into JS or vice versa.
Kinda like VB.NET / VBA.
 
4:50 PM
having problems getting my ships to rotate more than once lol
 
Never used async in JS, but assuming the definition of run is hoisted to the top of the outer function / scope, it should be available.
 
(gist comments welcome!)
I really hate that Excel Online doesn't let you define named ranges. makes worksheet code extremely frail for no reason.
    class WorksheetView implements IGridViewCommands {
      private events: IGridViewEvents;
      private readonly sheet: Excel.Worksheet;
      private readonly gameGrid1: string = "$D$5:$M$14";
      private readonly gameGrid2: string = "$R$5:$AA$14";
quite happy I got this far though
 
@this Where do you run into trouble translating?
I guess it also depends what you're targeting: if you're targeting ES3, the output JS may be more unrecognizable.
 
5:08 PM
@MathieuGuindon thanks for the input; helps me feel like less of a failure when my scenario seems reasonable, in context lol
 
@ZevSpitz I don't know what ES it was - it was maybe 2 years ago? I was trying out the TS, and there was a problem with the script, so I had to debug it in the browser which was JS, which was basically 1000 miles away from what I saw in TS. I could not make sense of it at all so gave up on TS and did it purely in JS
 
I think you get an attachable debugger if you use VSCode (haven't tried it)
 
Mind you, that is also a general problem with JS since you practically must use frameworks... could be Angular, React, vue.js, whatever all to dress up on the bare-bone and backward nature of JS.
 
Generally, you can compile your Typescript into Javascript along with .map files, which the browser can then use to show the Typescript corresponding to the current Javascript.
 
I can't remember if I had VSC 2 years ago (or whenever it was back then)
 
5:17 PM
I think VS also supports debugging with .map files.
 
Yeah, I saw that there were map files but didn't get it working.
 
the nice thing would be for Script Lab to support the same
 
Hence:
1 hour ago, by this
@MathieuGuindon No, you're wrong. The web sucks.
 
IDK. Maybe it's better now. I might try it again but... c'mon. It's like buying a house and being told "some assembly required"
 
5:19 PM
Most of my experience has been with Typescript and Javascript on the local filesystem, debugging WSH or HTAs with Visual Studio; so the .map files are picked up automatically. If you're debugging a served file, even on a local server, you may have to tell the server to serve the .map files as well.
 
Funny, just 2 or 3 weeks ago I actually learnt how to debug the embedded web browser control.
But that was me doing pure JS, no map files.
Oh, I think that's the other issue. I have no clue how to handle using JS library in TS code.
 
@ZevSpitz am I on the right track (any not-so-wrong track will do actually) with my approach of encapsulating UI access into this WorksheetView class?
I'd think MVC would feel somewhat natural, but it kind of doesn't
 
I don't think you can do MVC in pure front-end JS?
the "C" needs to be at the server?
 
uhm
35 mins ago, by Mathieu Guindon
var playButton = $("#play-button");
playButton.click(() => tryCatch(run));
async function run() {
  await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Game");
    sheet.load();
    await context.sync();
    var view = new WorksheetView(sheet);
    var adapter = new GridViewAdapter(view);
    var random = new StandardRandomizer();
    var factory = new PlayerFactory(random);
    var controller = new StandardGameController(adapter, random, factory);
    controller.newGame();
#WhyNot
I think the problem is that the viewadapter thing was needed in the VBA code (to get worksheet events to the controller), but with the ability to pass functions around, it's redundant in TS
also, I want unit testing
I'm sure I've introduced a whole bunch of off-by-one errors in translating the VBA to TS
@this you can't do actual MVC in VBA either :)
 
@MathieuGuindon Good point. That was a knee-jerk reaction from me. This site suggests that it can be done in vanilla JS.
 
5:32 PM
> The pattern came from desktop applications but has proven to be effective for web apps too.
so yeah, it's just a design pattern
though, I'd probably need to split up the views to make it (much) cleaner - right now it's just a mess of various "modes", i.e. picking a grid/opponent, placing ships, and playing the game -- should all be separated
 
I had it ingrained that MVC generally had a server-client components; MV being the client and C being the server.
and that MVP didn't.
 
in a client/server setting I think I'd put M as both client/server, V as client, and C as server
 
@mansellan Entirely missed this one.
 
oh, yes, you're right. You need models both sides.
which doubly sucks when you are using JS front-end and C#/PHP/whatever back-end
 
6:15 PM
Oh, we seem to have 34 parse tree inspections.
 
Is that a problem?
 
Well, it just means that I have a lot of refactoring in front of me.
So much redundant code.
 
6:32 PM
well a negative diff is always good
 
Hm, some really should not use a listener.
I guess I will fix that in a second step.
 
@Duga I think that was reported before.
the window positioning, unfortunately is wonky and not easily reproducible.
 
yea, I think it may be related to one of the issues I recently closed because the original reporter could not reproduce it, but someone else had a similarly looking issue that didn't work out
 
7:16 PM
> Happens after reboot
Happens in ALL Rubberduck windows, not just code inspector.

Is there a workaround I can use? I cannot use rubberduck at all right now because I do not want to keep having to close excel completely every time I use one of its features.
> More info:

Happens after reboot
Happens in ALL Rubberduck windows, not just code inspector.

Is there a workaround I can use? I cannot use rubberduck at all right now because I do not want to keep having to close excel completely every time I use one of its features.
 
7:44 PM
> Try adjusting the Code Inspection window IE resizing it. I have this happen on occasion with 3 monitors.
> Experimenting a bit further, after using the two-step shortcut Alt+Space, M while the window has focus, you should be able to move the window via the arrow keys.
 
You know, a brute force method would be to listen to the message pump for the positioning/resizing message and then checking its position against the monitor and adjusting.
some assembly required
 
Well, I have learned a few more shortcut combinations because of this issue.
 
@this oh that's an unintended pun. I wasn't thinking of assembly language but that works, too. :)
 
7:59 PM
> Just for reference - are you using high DPI on your monitors? If so, have you set the DPI awareness via Rubberduck settings?

(I'm not sure if this is relevant but wanted to make sure)
 
00:00 - 20:0020:00 - 00:00

« first day (2090 days earlier)      last day (1090 days later) »