I’ve long struggled to quickly communicate the scale of my vision for ModVB. It’s not 1 feature or 5 features but a vision of future VB which respects its own uniqueness and dials its style up to 11. This 59-page post attempts to give a feel for the project using mostly code samples and minimal prose. This summarizes the compiler/language stuff. IDE/tooling is saved for later.
Continue readingThis Feature Intentionally Left Blank
A few posts ago I put out a bullet outline of the lengthy agenda for ModVB. I intentionally didn’t do much editing to it since the point was to be more comfortable publishing things before they’re in a final, marketing-approved state, as is the habit I developed over 8 years at Microsoft.
One particularly attentive reader noticed an item I had forgotten I’d left in the outline with a rather curious heading: “10.4 This feature intentionally left blank”. I suspect he thought it was a joke–a eccentric reference to the Intentionally blank pages that sometimes appear in printed books and such. Per Wikipedia, “Such notices typically appear in printed works, such as legal documents, manuals, and exam papers, in which the reader might otherwise suspect that the blank pages are due to a printing error and where missing pages might have serious consequences”.

While it’s definitely a reference to that, it’s not a joke. This is a feature I’ve been mulling over for a couple of years now and I want to walk you through a few scenarios.
Continue readingDraft: Open VB.NET
I’ve created a new OpenVBdotnet organization on GitHub. At the moment it is a place for starting some very important conversations within our community–conversations that are bigger than a personal blog and its comments section. I can present options to the rest of the community but I cannot unilaterally speak for us all, whatever our number. Simply follow the discussions to be alerted as I kick off those many conversations as I am able, and add your own.
Action: At this time the most valuable work we can do is to identify ourselves. We need a focal point that welcomes self-selection without asking any further contribution. We need a headcount.
Open VB.NET is NOT a fundraising organization. And it is distinct from the ModVB Project, which I consider to be a personal creative endeavor shaped by decades of experience with VB in my life and countless interactions with VB developers during my 8 years at Microsoft, which I will at some point submit as a candidate to the rest of the community for adoption. But it is critical to me that the manifestation of the VB community and its future not be conflated with, or hindered in any way by the perception, feasibility, or execution of ModVB, nor the wellness or worthiness of me personally, or any willingness or ability to contribute to any project, financially or otherwise.
Continue readingDraft: My Mind is an Adirected Dicyclic Graph (ADG) that I am Failing to Serialize
Yes, I made up that term as a backronym to match my initials. I’ve been trying to write a blog post mostly about GitHub organizations but I got preoccupied trying to describe why I was struggling to write that post and that meta-post is easier to write at this time so here it is.
As of the time of this writing I am 41 years of age and have been programming on and off in various capacities for almost 30 of those years. There’s no shortage of information stored in my brain. Lots of nodes, an insane number of edges trained and optimized over an interesting career for fast random access in both directions.
And not just about programming, there’s other nerdy topics like fictional timelines, an at times annoying supply of Chicago trivia and navigational data, birthdays of family and friends, and yes a lot of stuff about programming. And it’s all so associative, if I see a thing or hear a thing or think about a thing I quickly jump 3-5 steps away to other “related” things. Things that are, things that were, and “some things which have not yet come to pass”.
In certain very specific contexts this can be a powerful tool but in the last few years it’s become a massive hindrance to communicating effectively if at all. Because communicating effectively isn’t random, it’s serial. Start to finish, top to bottom, in order of appearance or importance I need to take this multidecade old wiki and walk it from a random entry point, not get stuck in infinite cycles, not stack overflow, not timeout, not grow exponentially grinding to a halt, not start mutating the data while retrieving it, and write all of that information out in a linear order.
And I have to apply… or at least choose to apply, a good deal of empathy to that process. What must be said as a prerequisite? What counters or confusion or just plain questions are likely to arise. And from ages 25-35 or so this was fairly easy. I often joke about posting “Walls of Text” or nicknaming myself “Option Explicit”. But in the last few years I just can’t seem to brain-dump at will. I can’t find where to start (or stop). This is probably one of those life skills I would have developed if school hadn’t been so easy for me.
I can respond to prompts pretty well, to lean into the current AI parlance. If someone asks me a question on Discord or some other place I can regurgitate a fair amount “off the top of my head”. If I have a substrate like a source document or outline I can transform it, decompressing information as I go. That’s how I wrote my “Exhausting List of Differences Between VB.NET and C#”, I didn’t go one by one trying stuff or compare the language specifications line by line, I just looked at the existing structure of the spec(s) and traversed it and recalled experiences as a user, experiences reported from customers, bugs seen in triage, etc. The bulk of that information is just cached in my brain and I don’t really have any control over that.
It does not help that my favorite programming language uses so many keywords that commonly pop up in everyday English sentences that like random signage sends me off, “If And Until… what would that mean?”.
My 3rd manager at Microsoft, had our team do an exercise called Strengths Finder. It’s a kind of psychological personality test you take and it gives you a report on your top 5 “themes” or strengths. The idea being that if you know what you’re great at you can prioritize investing time and energy into maximizing the benefit of those strengths rather than endlessly trying to patch up every weakness–if you’re The Flash, run fast and don’t try to be as strong as Superman or as smart as Batman. Here are my Top 5 Themes:
I remember when I first got the report I think I said to the team something like “Oh, great, so nothing practical or immediately useful, yay!”.
Now, I could fight this or find out how to ride the waves better. I have tremendous context and relevant thought and problem solving and strategy that’s all up here (* points at skull *) I just can’t seem to get a handle on it. What knots to untangle first.
I’m trying to build systems to support productive use of my knowledge and abilities. At the moment I’m thinking if I can just off load pieces to GitHub issues or discussions I can kinda fill them out lean on that to get me unstuck.
Anyway, any advice from anyone who’s dealt with this kind of lack of discipline would be appreciated. I’ve never been on Adderall or Ritalin before. They acquired bad reputations in my childhood for abuse and over-prescription. Maybe I’ve let fear keep me from legitimate treatment and am now paying the price.
Otherwise just consider this more context setting from me. Thanks for listening.
Regards,
-ADG
Draft: Shutting Down My Patreon
This is a draft so I don’t have to feel bad if it’s not perfect.
This isn’t a bad thing!
I originally started this blog with the idea of creating a place for VB community, but I didn’t have enough content to launch my vision so I settled for a personal blog. Over time it’s expanded from a place to just air my thoughts to a place to think about marketing moments.
First I was prototyping potential contributions to Microsoft’s Roslyn repo. And then, when I decided to build my own mod it kinda served as a project landing page and a crowdfunding engine and I think that’s been bad for both me AND the VB community.
It’s been bad for me because everything I write or show comes with tremendous perfection to be substantial, complete, polished, regular, consistent, etc. But I’m not really a marketer. Working at Microsoft I developed a sense for the power and pitfalls of communicating from inside a mega corporation but this isn’t the .NET blog and my posts aren’t instantly seen by 100k people.
Further, I started my Patreon to help me deal with a personal crisis that has mostly passed. In fact, for months (if not the last year) I have been actively pausing my Patreon to prevent charging folks. You can only pause for 1 month at a time and I was late last month and some folks got charged who I’ll refund when I can. But I’m not executing as a full-time or even part-time content creator and while I do make content I don’t think that’s the arena where my skillset is best used.
But most importantly, I suck am a flawed human being and while I’m learning to be compassionate with myself about that it’s very important to me that my personal shortcomings–whether they be mental health or discipline or whatever–not be the weak link in reaching as many VB enthusiasts as possible as quickly as possible. Last year I concluded that the absolute most important thing the VB community can do for itself right now is to find each other. Not features, not funding, not campaigning, or any specific action. We need our own rolodex as a resource for ourselves and I don’t want consideration of financial support of me or a project to at all be a factor in spreading the word.
There’s just a lot of information we don’t know about ourselves and we cannot rely on others to figure it out.
And on a personal note, it would do me a world of good if I could know there was some forward momentum in the community independent of my performance. To know that if I’m sleeping or dealing with a family crisis or changing my medication that there will still be important things happening would take some pressure off and give me some much needed dopamine.
I’ve been looking into some community platforms/CRMs we could use. It’s critical that we (the community) own our own data. But it might be something extremely simple in the beginning–a mailing list or something. I’ll post more on that in the future though.
This weekend I’ll figure out how to move my existing patrons to the free tier. I thank them for every drop of their incredible support these last few years while I’ve been losing my mind. It absolutely made a difference when it mattered most–specifically regarding my healthcare. Now it’s time to take some next steps.
This does NOT mean shutting down the ModVB project (in fact I’ll be moving the center of gravity for that to GitHub where it always belonged). I’m just decoupling components of the system for better scalability!
With gratitude and hope,
-ADG
Draft: The initial ModVB backlog outline
Like 2 years ago I said “I’ve got like 11 pages of just bullet points of stuff to do for the ModVB and I tried to publish more polished detailed writeups of each to help folks see the vision but that was going to be like 300 pages so then I trimmed it down to somewhere in between and I still will need to unzip all of these in professional detail on github. But for now I just want this out there and not hanging over me every day. This is copy-pasted section 3 direct out of a Word doc I started with. I’d like to post a follow-up which maybe illustrates each bullet point briefly since not everyone will be self-evident. These are old and minimally processed–I cut out most of the prose and code samples and the section on tooling/IDE-focused changes. Chrome says that gets me down to The point is simply to at a glance answer the question of “What would Anthony even add to VB? Surely it’s like 3 things and they’re all just copies of what C# already has” or to illustrate that I have a rather long-term vision. When I tried to summarize this agenda 2 summers ago I believe I got through Sections 2.1 and 5. I’ve demoed bits of other sections at various times in either prototype or pre-release form. This outline is slightly older than what I promised in that blog post because I refactored some sections and some scenarios/features that folks highlighted in response to those posts have been incorporated but I’m trying to put this out without updating it to be perfect or even great. Chrome says this is about 7 pages printed.
Cheers,
-ADG
Continue readingDraft: Trying to decouple some stuff
This post is a work in progress. Maybe all my posts are works in progress. As a human being I certainly am a work in progress.
When I was a junior in high school I remember my friends and I had a group “weblog”. Weblogging was new then. It was purely public journaling then. Since then it’s become primarily a marketing exercise. A way to build a personal brand or a corporate brand. Years of thinking of myself as a representative of either a big tech company or a small firm have conditioned me to put incredible pressure on everything I say in public. Any muddled messaging can instantly cause chaos. A flood of angry comments and corrections.
But my blog isn’t a corporate blog and I want to get back to blogging being a low stakes form of expression. At times I consider that maybe my blog should just be a discord transcript, lol.
I’m so afraid of questions. Or afraid of arguments? Or just tired of convincing people of things. Of anything actually, not just technical things.
I’m going to restructure this place. I think maybe the time-based labeling makes me embarrassed when there are such long gaps between posts. Maybe this should be a non-deterministic publication of articles and essays.
I think there’s a bit of confusion between 4 or 5 brands that I need to separate out for clarity.
- Anthony <– that’s me. May want to talk about tech, or recreation, or health, or maybe philosophy and religion.
- ModVB a personal project I work on primarily to fulfill a creative imperative that I would like to share with other VB lovers for their consideration.
- Other tools I want to share that have no dependency on ModVB.
- Educational materials about software development.
- VB community info.
This is mostly important for urls and GitHub orgs. I have a bunch and I need to use them more clearly. Believe it or not the original title for this blog wasn’t… my name. It was something loftier but I didn’t think it was a good idea to launch that domain without more content.
Whatever my productivity problem is, this year I need to find or create systems that let me be productive without a lot of activation costs. For instance, the ModVB nugget/vsix feed never gets updated because the process of building those packages with the appropriate metadata is manual. I never set up a CI/CD process for it and that should happen.
It’s not that my thinking on these topics is as erratic as my writing. I just can’t figure out how to get the mature revised experience-based stuff inside my head out. I don’t know why. I’ve always been articulate. So pardon the babbling and stream of consciousness. I’m trying to do things differently this year and see if I get different results.
I want to post again about power as it applies to tech.
Regards,
-ADG
How I Survived My Fortieth Birthday
OR “On psychological flexibility”
In this post I’ll talk about my mental health. VB/Tech talk will be back after.
Last month I turned 41 but what I want to talk about is last year. You’ve probably noticed that I haven’t blogged in over a year and that’s a health thing not an interest thing.
Continue readingI’m alive
Things are better. Long story. Talking is harder. Mostly psychological. Just writing this to kinda break the ice. Anxiety. Meds.
-ADG
Streamlining and Boilerplate Reduction

The theme of streamlining code and reducing boilerplate extends through the entire ModVB agenda. In the previous section I talked about how improvements in type inference can do this and in future sections I’ll show more examples that also align strongly with broader themes. This section highlights a few investments that don’t align with other themes but rather are purely planned to delete characters from code while still preserving VBs intuitive and self-descriptive nature.
Continue reading
