« first day (2183 days earlier)      last day (997 days later) » 

12:01 AM
RELOAD!
[banane-io/PDB] 2 commits. 1 issue comment. 269 additions. 31 deletions.
[rubberduck-vba/Rubberduck] 1 opened issue.
[Zomis/Games] 1 commit. 1 opened issue. 1 issue comment. 62 additions. 26 deletions.
[Minesweeper] Games Played: 114, Bombs Used: 65, Moves Performed: 15607, New Users: 18
 
12:29 AM
@mansellan one day I'll have nothing better to do than go and implement every last one of them, so don't hold any good ideas back!
hopes C# and VBA are still a thing then
 
@HackSlash then it's not registered. :-\
@HackSlash Interesting. FWIW, I use SSE Setup -- after the defunct SafeKey, it's the only installer that can handle Access deployment
 
1:13 AM
Is persisting object information to a DB a common occurrence? The current example in my unit testing book is restoring info from the DB to reconstitute a User type.
 
2:07 AM
@IvenBach lol, that is literally exactly what I'm doing right now with content.rubberduckvba.com! now, make "object information" into "entity" (or "POCO", or "DTO"), and yes, it's extremely common. Entity Framework does only that, all day!
Plain Old CLR Object, Data Transfer Object -> a class with nothing but get/set accessors, or just a bunch of public fields
Common Language Runtime
;-)
usually these are classes that are all about their state, very little (if anything) about what to do with it
 
@MathieuGuindon If nobody takes it in the next couple of days, I'll grab it. Need to get away from ClickOnce, it's becoming an obsession :/
@IvenBach That's precisely what ORMs (Object-Relational Mappers) do, there are a lot of them and they are very widely used. They are popular because it's an incredibly common thing to be doing.
If you've heard of Entity Framework (EF), (N)Hibernate or Dapper, they're talking about that.
 
I have to ask since this idea is new and intriguing to me.
 
If you find yourself thinking, "dang, it's a chore to move objects to the database, and vice-versa", that's A Thing (object-relational impedance), and it's a chore that ORMs were invented to try and alleviate.
 
Mkay.
 
More generally, saving the state of an object for later use. That can be to a database, or maybe to a file - that's one place you'll hear about "serialisation".
 
2:21 AM
So if there's data that you have presently, and don't want to carry it around with you. You serialize/persist that information into a DB or some other data storage container. When you need it you request it and then recreate the object from the storage?
 
(the other main place is when you need to send an object's state over a network connection)
 
XML/JSON. :click: Ah.
:brain-tickle: Since my computer doesn't directly connect to yours and you need to review what I'm doing I send you the serialized file.
 
@IvenBach So to my mind, serialisation is the process of writing all of an object's properties to a stream (network or file). I don't put DB in that category, as usually it's a case of manually (or via an ORM) translating the properties to database fields.
@IvenBach Yes. Your computer has no access to my object. So I send you a serialised copy instead.
 
Present-Iven remembers 12yr old Past-Iven transferring his Diablo2 characters on floppy disks and understands now how/why that worked.
 
You deserialise it into the same class, and get the info I had.
 
2:25 AM
These ideas are etherial and have no meaning until I can connect them to something I know.
 
It's called serialisation because you take all of the properties from the object and write them somewhere, one after the other, in series. (and in an agreed format that can be deserialised later).
 
And the agreed format is akin to needing to know what encoding is used?
 
Yep. So, is it JSON? XML? Protobuf? (snip 1000 other formats)...
There's a bajillion ways of writing information to a file (or stream)
 
Protobuf = Protocol Buffers?
 
Sorry yes. Just one of a bajillion formats. Not important, was just an example.
 
2:31 AM
New terms I've never heard of.
 
You don't need to know about protobuf, until you do. Avoid it till then.
tl;dr, it has some advantages (small transmission/storage size, versioning), but it's pretty hairy.
@this for now ;-)
 
Understood.
 
So a serialised object could look like this: {"name": "IvenBach", "skill": "Unicycling"}. If so, both "sides" would have to know: "We'll communicate in JSON" and "The class has properties called "name" (a string) and "skill" (a string)". Then they'll be able to talk.
The "sides" could be "save file/open file" or two ends of a network connection.
Think of it this way... when you click "Save" in Excel, you're serialising the state of your Workbook.
(including all of the VBA you wrote, in a very non-trivial format...)
 
3:02 AM
In the case of Excel, it's XML. With a very complex schema. Except the bits that aren't (VBA and others). And then zipped.
 
3:52 AM
@MathieuGuindon You might find Cadran Solaire Numerique interesting.
 
 
3 hours later…
6:36 AM
Okay, now this is some serious progress
needs a bit off CSS polish, but that should be it
clicks register button
lol, of course there's a model validation error
 
 
1 hour later…
8:05 AM
ok, registration page and login works... somewhat. the site just tosses the important cookies as soon as you navigate anywhere, but, details...
 
8:16 AM
ugh. I need a break.
looks at the clock and some sleep, maybe
 
8:46 AM
OMG AT LAST
#MoarCSS
So cool.. user profile page needs some love but for now I can take down all the [Authorize] attributes and resume building/debugging locally.
 
 
5 hours later…
1:53 PM
Hands @MathieuGuindon some paper towels to clean up tossed cookies
 
and a bowl for the important ones
 
lol
 
 
2 hours later…
4:33 PM
That’s some late night coding Mug. You need more sleep.
 
> That’s some early morning coding Mug. You need more sunlight.
T, FTFY.
Also, Mug - is the content.rubberduckvba.com ready for consumption?
 
4:52 PM
> FYI, still experiencing this issue on 2.5.0.5443-pre. Unfortunately it renders this add-in unusable for me for development in Microsoft Access. **To reproduce the issue**, download the database file from https://github.com/joyfullservice/msaccess-vcs-integration/releases/latest, and try to parse the code in the IDE. I realize that this is a more complex project, but many of the projects that I develop on a daily basis are this complicated or even more so.

Hopefully a sample file to reproduc
 
@this not yet - well you can register/authenticate, but that's the only working part. Now I got authentication done, I'm moving on to the actual content editor tool
(note: I may be dropping & re-creating the database while the site is "under reconstruction"; if I do that and you registered then you'll have to register again next login)
 
C'mon. Can't you at least lay it down gently?
Cool. I did see the register page but didn't actually register. Nice to know you made progress! Are we still using github membership for authentication?
 
eh, I'm 99% sure the schema is good to go
@this yep, if the GH login isn't a member of the rubberduck-vba org then it's supposed to not authorize the login
Not sure I get to fine-tune permissions any deeper than that without implementing my own role stuff
 
I only wondered because since you now have an identity database, it might not necessary to tie into the org
 
So, everyone's an admin =)
 
5:02 PM
yeah, the identity db would have to provide role somehow, something
 
@this see that's the kind of decision that makes me less certain about how complete the db schema is ;-) ...I would have org members with the "admin" role, and non-members could have some "contributor" role that lets them suggest edits, that can then be reviewed/approved by an admin
that would be cool... but for now I'll just implement enough to get the site fully up and easily maintainable
 
Yeah. Agreed on KISS; just require org membership + admin for version 1
 
5:35 PM
@Duga haven't downloaded, but I suspect we should probably prompt the user to configure inspections /disable the ones that inevitably fire a million results in a large legacy project.
We need a "legacy code base" config and a "clean new project" config
 
I like the idea
it might be possible to make it a configurable page on the installer + a setting via the settings dialog to reset to a selected default
 
We could turn the "reset" button into a dropdown that lets you pick what you're resetting to
 
yeah
one question, though - what makes for a good "legacy code base" default?
I assume that it'd be bit more than "everything disabled"
 
5:54 PM
@IvenBach that's awesome!
 
@this I would think that would disable bang operator inspections (particularly if hosted in Access), use meaningful names and hungarian notation inspections, vbnullstring inspection, ...basically just check for the quick & easy stuff, like option explicit and (maybe?) implicit access modifiers, disable the slower ones and those that yield thousands of results in any ugly old code base... right?
@IvenBach more sleep, or more hours in a day =)
 
that made me realize something...
if we take up a legacy project and we are adding new feature to it, wouldn't that need to follow all of the best practices?
IOW, we really want to disable most inspections in existing modules, but not for new modules... right?
 
We can already do that just by sticking @IgnoreModule at the top of every module..
although that's a stretch for " disable most inspections"
 
Exactly.
So if it was say, @IgnoreModule {Legacy}
then we'd be able to use the existing code to disable most of inspections on legacy modules, using only a subsets that's easy & quick to fix (like the option explicit)
and that can be surfaced as a kind of a refactoring Mark this project as legacy
That way, any new code addition won't follow the same rule, so we still can encourage higher level of code quality whenever we create new code even in those project.... right?
 
> Woah that's quite a project you got here! Rubberduck inspections can generate lots of objects and cripple the IDE and host process. Would you like to turn off inspections in existing modules?
 
6:04 PM
yeah, something like that.
 
@this the only thing is that ATM IgnoreModule is just a filter on the results - the thousands of objects still get generated
 
but it should be a refactoring, not a quickfix so that you can mark a project as legacy without having to parse it
 
Really?
I thought if it was ignored, no results are generated?
 
Oh wait I think you're right
Yeah it's all handled in a base class now IIRC
 
6:07 PM
so if we use the idea of @IgnoreModule {Legacy}, does that avoid the need to have a separate default config?
 
it used to be just a filter
I think so
 
TBH, I think that sounds better because that way, we don't miss out on good inspections in new code.
One wrinkle, however, is that sometime new code get added to existing modules...
 
It does assume that perf issues in these projects are related to too many inspection results being rendered
but, not wading through 10000 inspection results is a good thing regardless
 
True, but I think even if perf wasn't the matter, they might not want to get inspection results esp if they are working under the constraint "if it's not in the ticket, don't frigging touch the code that's not a part of the ticket!". That feature would make it easier.
I just thought of a use for the vb_ext_key, as well. the '@IgnoreModule {Legacy} could also create a vb_ext_key in the module, storing the content hash.
That way, if it's changed, the ducky can ask, "Hey, you're modifying this legacy module. Do you want to remove the legacy designation for this module?"
(am I gold-plating now?)
 
gold-plating or not, I like it!
 
6:15 PM
The side benefit is that it helps encourage to contain the scope of changes
I mean, in a legacy project, you really don't want to go and touch 100s of modules that has been working from day one just to fix a unrelated bug, right?
 
isn't that what VBA devs do every day?
#UnitTestingFTW
 
@MathieuGuindon and then wonder why the project is a giant holy ball of mess
Yep
 
(unrelated) I don't need to make a white ducky favicon for the content admin site, do I?
admin site / main site
no influence from meta.site.stackexchange / site.stackexchange at all
 
i guess not. KISSx2
 
it's just... if I have the blog, the main site, and the admin site open... they all have the same favicon
 
 
1 hour later…
7:46 PM
> @joyfullservice It's a super flaky issue too. It has come and gone for me. I am currently able to parse the latest version v3.1.23 of the Version Control addin using the latest version 2.5.0.5443-pre of RubberDuck. It might depend on which PC I am using.
 

« first day (2183 days earlier)      last day (997 days later) »