« first day (1992 days earlier)      last day (1188 days later) » 
00:00 - 20:0020:00 - 00:00

8:01 PM
Hm, I have just found another bug in both RemoveParameterRefactoring and ReorderPArameterRefactoring; we do not delete trailing missing arguments.
 
'Set browser = GetObject("C:\Program Files (x86)\BraveSoftware\Brave-Browser\Application", "Brave.exe")' activexcomponent can't create object. have tried that and am about to try to get the id in the task manager to call/open with the hopes that will work
 
DuckCheck: For unit tests in VBA if I'm expecting a test to throw an error for an invalid input there's no reason to care about the return value for a function? IE actual = converter.FooBar("bad input") can be shortened to converter.FooBar(...) as I don't care about the return value.
Does that seem logical?
 
Unless FooBar is a Property Get.
Than it would be illegal.
 
Good to know about Property Get. Just working with functions right now.
 
8:18 PM
@Cyril - that presumes the Brave application is an ActiveX application which need not be the case.
 
> Thank you very much for the hint. I've found the problem.

I've written this line of code
`vetroInfisso = F04_Vetri.Cells(rigaInfisso, F04_Vetri.Range("Tabella_Vetri[Vetro]").Column).Value`

without the second F04_Vetri reference like this:
`vetroInfisso = F04_Vetri.Cells(rigaInfisso, .Range("Tabella_Vetri[Vetro]").Column).Value`

Now it resolve correctly but I have the same problem that I reported with bug # 4980.
Nothing is displayed if I run the code inspection.
 
@this well f...
 
I seem to have a valid inspection result, yet not...
Variable '{x}' is not used.
 
> Hm, that code should not have compiled. Did you try to compile it?
 
Is identified in an Interface that is clearly marked with a '@Interface annotation.
It's true that the variable isn't used, but, in an interface, it shouldn't be
right?
Nothing in my Private Type is flagged, only Private this as <privateType> is flagged.
needs an issue?
 
8:33 PM
@this guess i will try finding what references i need for appactivate
 
why not just use selenium?
 
i don't even know what that is
 
well time for you to learn about it!
it's basically a browser automation tool
that can be also used in VBA
a word of caution. It ain't plug'n'play
 
hm... here i am trying to make this work:

Option Explicit

Public Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal HWND As LongPtr) As Long

Private Sub data_entry()
'This will load a webpage in IE
Dim i As Long, browser As Variant, src As Long ', document As HTMLDocument
Dim wb As Workbook: Set wb = ActiveWorkbook
'
browser = AppActivate("brave.exe") '("C:\Program Files (x86)\BraveSoftware\Brave-Browser\Application\Brave.exe")
browser.Visible = True
'
Do While browser.readyState <> 4 Or browser.Busy: DoEvents: Loop
 
Nope
all that depends on the application being an ActiveX / COM and using a compatible interface.
because it's fairly new, I'd be surprised if they even made any COM interfaces.
No COM interfaces, no automation.
 
8:38 PM
got'cha
 
and AppActivate only means to get you a window in focus but won't let you do anything further with it
and just so we didn't forget the blindingly obvious... considered using web API instead of scraping?
@FreeMan can regale you with his heart-rending journey of web-scraping....
 
@this Ivercy, afaics, is a straight-up reimplementation of the old MS Access Source Control plugin, minus the (artificial) restriction of only working on ancient Access versions. Seems overpriced to me.
 
also not familiar with that... not really that hip on scraping to start with but fuck if i have to do this same redundant BS everyday for another 3 years
 
Yep. I also don't agree with using the old MSSCCI, either.
 
@this whimpers in his corner
 
8:41 PM
how did they say it again....
friends don't let friends scrape?
 
will keep reading up on selenium... works for chrome, but wondering if it works for chromium across the board
 
I vaguely recall you can point it to a exe path so maybe?
May be making it up, though.
 
my other options, which i've been avoiding is using the dll for findwindow
 
ok, that gets you the window, but then what?
it's not a ShDocVw.WebBrowser
 
appactivate by window number!
lol
 
8:44 PM
no no no, beyond that.
you have it in foreground. Yay! How do you intend to um, actually scrape it?
 
set in the foreground then f around
 
not sure your users will be amused with you f around.
 
browser.document.getElementsByName(wb.Cells(i, 1).Value).Value = wb.Cells(i, 3).Value
 
but see, that's the problem!
 
this being my first scraping project, i've got no real idea how shit works
 
8:45 PM
you're acting like Brave implements ShDocVw.WebBrowser
 
so struggling as best i can
 
#ProTip it doesn't
#ProTip 2: Neither does Firefox nor Chrome nor Opera nor Edge
 
well f
back to square 2
 
ShDocVw.WebBrowser => old timey IE 7
if you can't have web API to do what you need to do, then use Selenium
 
...will work on my extension to replace values in the DOM
 
8:46 PM
but really! You don't want to! Look at @FreeMan! He's still sucking his thumb!!!!
 
fledgling is what got us all to where we are. i just don't want to know what he was doing before the thumb
 
Sure. But web scraping is just.....
 
@this Looks like it's not been touched in 4 years. github.com/florentbr/SeleniumBasic.
 
At the very least, use Selenium. It'll make your life somewhat easier.
It may not have been updated recently, but you can still get updated web drivers for it.
 
will take a look at both web API and selenium
 
8:48 PM
Also, it does work as advertised
 
@Cyril Lest you forget We're all idiots. All figuring it out as we go along.
 
@IvenBach not sure it needs to be kept updated all times if it's just an interface
 
@Cyril If there's an API for the site USE THAT
 
if the Selenium's interfaces doesn't change, then that wouldn't be surprising.
 
trust me
 
8:49 PM
^
 
^^^ :derp: Makes sense.
 
i've got 24 fields i fill in ~20 times a month and have been doing it for 3 years. finally getting frustrated enough as only 5 of those fields ever vary.
 
Wouldn't a bookmarklet be simpler?
 
> **Rubberduck version information**
The info below can be copy-paste-completed from the first lines of Rubberduck's log or the About box:
```
Version 2.4.1.5196
OS: Microsoft Windows NT 10.0.17134.0, x64
Host Product: Microsoft Office 2016 x64
Host Version: 16.0.4873.1000
Host Executable: MSACCESS.EXE
```

**Description**
I received a `Variable 'this' is not used` inspection on an interface. Variables shouldn't be _used_ in interfaces.

**To Reproduce**
Steps to reproduce the beha
 
knows very little about javascript
 
...if bookmarklet ends up being the same thing i've been working on as an extension i'm going to be quite livid
 
with minimal research it has some interesting features; adding that to eh reading list
 
@Cyril I had 20 files I had to download 1x per month. I was living with it until they said "do it weekly, possibly daily". That warn't happening, so I went Selenium.
Fortunately, daily never happened, nor did weekly actually, either.
Now I'm down to 2 of the files 1x per month, but the automated scraping still works just peachy
 
are you still using Selenium for monthly? answered
 
8:53 PM
Yes, still Selenium.
 
cool
 
on a different site, I was scraping to get about 15 files per month. Then I discovered their API.
 
@FreeMan I had a coworker ask me to help her build a data sorter/manipulator because they have JDE export to QLIK exports to Excel, then they do pivots and x, y, z... so saved them 30 minutes every time (7~10 times a week)
type 2 savings
 
Lots of headbanging later, the download went from about 2 min/file to < 1 min to download all data and load it into SQL Server
Friends don't let friends web-scrapeâ„¢
 
alright, my day is up... catch you all tomorrow, most likely
 
8:55 PM
Those other 18 files now come from our Parallel DW server which, it seems, they won't let us link to, so now I'm back to manually extracting data from there then importing to my DB so I can combine it with the rest of my data for our reporting.
sigh...
 
Regarding VBA source control. Instead of having to know where the fs location is for the exported files, could we just use a convention? Given C:\Book1.xls, local files will be expected to be under C:\Book1.src\ ?
 
@mansellan so long as the "c:\" part was user configurable. and the ".src" part, too.
 
possibly in a folder structure based on folder attributes (I think there's an issue for that)
@FreeMan That's my point though, the convention would look in the same folder as the host document.
rather than a fixed path
 
ah, yeah. #ReadingFail
 
really, that's the easy part.
the hard part is actually tracking changes, and only meaningful changes.
 
8:59 PM
the only gotcha might be if the host doc was already deep in the fs, the extra depth might blow though some path limit (260 chars?)
@this Sure, but we can offload that to tortoise. Not proposiing we re-implement SC GUI.
 
@mansellan I doubt the host will like it anyhow so they'd be screwed anyway
@mansellan uh, no. Tortoise doesn't know about the changes made in VBIDE?
you still have to export the files after altering it.
 
sorry, maybe i'm not explaining well
so the work max has done on SC commands
Update \ Replace
but atm it shows a dialog to browse for files
 
Really, if we went Avalon, the ducky should be working with the exported attribute files exclusively and constantly importing into the VBIDE.
 
I'm suggesting we just use a convention instead
 
sure
 
9:03 PM
What i'm envisioning is this: User saves file. We know this because we set a filewatcher on the host doc. So we export everything to {docname}.src\. At which point tortoise sees updates (if there are any).
 
@this doesn't address the problem w/ document modules though. Le sigh.
 
And the same in reverse. We file-watch {docname).src\, and can run the Update command when changes seen
@this no indeed not :-(
 
@mansellan that would generate so many false diff, as Freeman found out
 
Ah yes - unstable form props
would work nice for modules and classs though
and forms we could sanitise like Oasis does
It would be like an auto-sync version of the new Sync Project menu
We'll own the VBA-to-disk part, user just brings repo tools of their choosing
 
wouldn't the userforms have the same problems?
 
9:10 PM
yeah, userforms have unstable props
 
not familiar with how amenable the .frx files are to SC
 
hmm yeah
 
I guess unlike Access, it's binary, though
so you'll be replacing the whole .frx file.
 
its structured storage format, same as resx and old office formats
 
Access exports the layout as text, but with dumb properties :-\
I assume the .frx has similar properties like Ptr***
 
9:11 PM
I suspect it'd only change if you were messing with control layouts
 
well, in Access, it would change between computers with different default printers. Would that be true of the userform?
 
would need to check
i do recall though that back when I was doing access dev with the scc plug in, we'd just know to ignore spurious diffs on the frm and frx files
ie only commit if we actually changed something
not ideal, but workable
in theory though, frx is readable, the format's been reversed
so could be sanitised. not sure if oasis does that (or is oasis access only?)
 
Access but it does handle userforms. I am not sure, however if it sanitizes userforms
(OASIS is an Access addin that also has a VBIDE add-in)
 
I'd suggest though, that even with spurious diffs, its a valuable feature. Especially if we plan to sanitise later.
 
My thought is that if we're using avalon, we can just work with the exported files, which also simplifies the management since it's right there in the filesystem.
 
9:19 PM
Not sure why avalon helps here?
Oh you mean no need to export, just save out the pane contents?
 
custom code pane - full control over what we display in the code pane
yeah
something like that.
that would also cut out the 2nd parse run that the ducky must do (code pane pass vs. attribute pass)
 
yeah that helps, but we already do a ton of file exports, so it seems no hardship?
just reuse what we have already
 
no, let me rephrase a bit more.
right now, we export the module.
then watch whether the user makes any changes in the code pane. If so, we re-export the module.
and then we re-parse both the code pane and the attribute file that was exported.
With a custom code pane, we just export the module, then load that exported file into the custom code pane.
Therefore any changes are made directly to the file in the filesystem and when user saves, we import the changed file back into the host's VBA project.
 
hmm ok...
bah, that's my train stop - bbl
sorry!
 
later!
 
10:18 PM
ok, so just thinking about the workflow for the incoming SC command (the Sync Project menu)
to get something into source control, you'd export the project using the existing menu entry, selecting a folder to export to, then use an external tool like tortoise to add it to git and onto gh or similar.
then to pull changes, you'd use tortoise to update that folder, then in RD use the sync project -> update command to pull those fs changes into the host doc
If I have that right, I guess initially all I'm suggesting is that we streamline that flow
so for the first case, add a specialised version of the Export project command to the Sync project menu, which doesn't prompt for an export location, it always saves to {doc name}.src\
and for the second, drop the browse dialog and just grab all updatable files from {doc name}.src\
 
10:43 PM
@mansellan Could you open an enhancement issue for this? Then we might tackle it after the release, maybe including a configurable (relative) path.
 
11:15 PM
@M.Doerner sure, happy to. was just exploring the idea here first.
 
11:57 PM
Right now, I would really like to know who had the idea to introduce the with-dictionary-access-expression.
It is annoying me to no end.
 
00:00 - 20:0020:00 - 00:00

« first day (1992 days earlier)      last day (1188 days later) »