Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create initial public videos for Grace #12

Open
5 tasks
ScottArbeit opened this issue Mar 8, 2023 · 8 comments
Open
5 tasks

Create initial public videos for Grace #12

ScottArbeit opened this issue Mar 8, 2023 · 8 comments
Assignees
Labels
documentation Improvements or additions to documentation marketing content or activities related to marketing
Milestone

Comments

@ScottArbeit
Copy link
Owner

There are a number of videos I'd like to record and publish about Grace in the coming months.

Each of these videos will be released as they're completed. This is a draft list, but something like:

  • Basic demo of grace watch and basic repository usage between two users
  • Architectural deep-dive, including Dapr
  • F# and functional constructs that make Grace's code easier to understand and more maintainable
  • Things I've learned (and sometimes rewritten) along the way
  • Walkthrough of the concepts in each .NET project in Grace

Please subscribe to this issue if you'd like to be notified when each video is released.

@ScottArbeit ScottArbeit added documentation Improvements or additions to documentation marketing content or activities related to marketing labels Mar 8, 2023
@ScottArbeit ScottArbeit self-assigned this Mar 8, 2023
@ScottArbeit ScottArbeit added this to the Version 0.2 milestone Mar 8, 2023
@ScottArbeit
Copy link
Owner Author

In case you're curious, I'm learning Adobe Premiere Pro right now, and might use Adobe Audition for sound editing as well. I'm practicing shooting from multiple cameras (I'm using mobile phone cameras + my Logitech C920, nothing special) and editing it all together, in practice sessions, just to get the hang of doing all of it.

I don't want the first video you see to be the first video I've ever recorded.

@robitar
Copy link

robitar commented Mar 9, 2023

Hey Scott, really looking forward to the deep dive. Looks like the demo gremlins really had it in for you alas!

I've been using F# for a few years now, and it's not much of an exaggeration to say it's a big part of my renewed interest in dev. After 15 odd years I was thinking of completely changing gears career wise.

I've been following Orleans for quite a while now, and I'm waiting for a chance to do something similar to this, a big actor based distributed solution - I just don't really have a problem yet 😄 Is it something you considered (Orleans)? I'm guessing Dapr brings more of a turn key platform?

@ScottArbeit
Copy link
Owner Author

Hi @robitar! I love Orleans. If I were starting a new system that I knew was only meant for one backend database, I'd choose Orleans. My choice to use Dapr Actors was specifically to take advantage of the cloud-configuration-at-runtime aspect of Dapr, because I want to enable users to stand up Grace on their choice of cloud platform and technologies.

One thing that really gave me confidence in Dapr Actors was the original PM of Dapr at Microsoft, Mark Fussell, who for many years was the primary PM on Service Fabric, which has a virtual actor implementation. Service Fabric is the underlying orchestrator for many of Microsoft's massive first-party Azure offerings (AAD, Azure SQL, Cosmos DB, Power BI, Event Hubs, and on and on and on), and runs on about 1/3rd of the total CPU cores in Azure globally. Mark's experience with Service Fabric meant that Dapr's implementation was going to start off the right way, and be ready for continued improvements.

To some extent, I think of Git as having repositories that are "a tightly packed bunch of bytes colocated on a single drive" and Grace as taking that bunch of bytes and exploding it out to multiple database entities and object storage files. Virtual actors are such an obvious way to scale that up, once you "get it", and I think their use will only grow in the coming years.

@robitar
Copy link

robitar commented Mar 14, 2023

Ah makes sense! Yea I'm happy to see it's getting picked up (or so it seems) as a 'proper' dotnet component after all these years. Some kind of managed Orleans that lets you just xcopy deploy the grains as a library would be quite nice. In my previous job there were a few places where Orleans would have been quite a big improvement, but it was too tricky to deploy without a lot of infrastructure churn. I think it's a bit easier these days, where you can host Orleans and aspnet in the same process.

Yea I quite liked Service Fabric when I had a look at it a few years back, it's a pity that it didn't see broader adoption outside of Azure (afaict). I see what you mean re Dapr in that respect, it's less like a container orchestrator than it is a service infrastructure. It's nice to see things like actor models and persistence baked into the experience.

Yes exactly, there are a couple of use cases that are such a natural fit for virtual actors that you can't imagine trying to do it any other way! A huge number of fairly independent things with reasonably complex long lived but possibly sporadic lifecycles etc 😄

Re Grace, one thing that caught my attention was the idea of each save being (to some extent) a revision, and just in general extending the idea of versioning even further into the personal workspace, instead of having a strict gesture/division of staging, commits etc. I think that's very interesting, and would possibly lift a lot of ambient stress associated with 'tampering with a sensitive and volatile resource', which is something you have to do constantly throughout the day.

I had similar realizations after moving to F#, that there was a persistent low level tension around null in all my previous work - that nothing was actually what it was claiming to be. It claims to be a Thing, but when you approach it, it explodes.

Perhaps Grace might have a similar experiential shift. Although the challenge there is that you need to use it first, and it might not be as tangible or easy to articulate. It's another thing you see a lot in F# - attempts to persuade people to try it! After you are converted, there's no going back, but somehow its tricky to make that jump. When I first looked at F# many moons ago, I was so horrified that I couldn't use tabs for indentation that I stopped right there! Only years later I found it again and was instantly converted.

Anyway, rambling aside 😄 Looking forward to seeing more, and if there's anything I can do to help, I'd be happy to pitch in, perhaps some early beta usage?

@houstonhaynes
Copy link

houstonhaynes commented Jun 28, 2023

I just saw your NDC presentation and am hooked! (Incidentally I too have found GitHub co-pilot to have odd blindspots with suggesting F# - and - I too have had to go to ChatGPT - thinking it would come up empty - but has had a surprisingly good hit rate)

I've been working with similar ES/Actor based patterns in F# - focusing on Akka.NET (Akkling mainly, but sniffing around Wakka) and Marten/Wolverine (dubbed by Jeremy Miller as "the critter stack") as the event/document store and message bus.

To the point here: I too am working on video production for streaming/channel distribution online - for a general "Glad Scientist" podcast/channel as well as my own "FSharpNotes" blog. I'm doing similar production with a handful of phone cameras and one or two "good" web cams. My post tool is Vegas - I was at Sony Pictures Digital back in the aughts when they owned that constellation of apps and I've kept those licenses active ever since. I've spent more time on learning to transfer SVG paths to a logo builder than editing multi-cam. 😸

I'll be 👀 ing your code and trying to catch up a bit - my current focus is with Elmish.Avalonia - MVU with "standard" XAML forms. That's a long way of saying that I'd love to pitch in on this project at some point while also keeping my own metaphorical plates "spinning". If there's a point at which I could help you with "fan out" of video production or post-processing, I'd love to help.

@ScottArbeit
Copy link
Owner Author

@houstonhaynes Thank you so much! I'm both incredibly looking forward to welcoming contributors, and a little behind in making it a welcoming experience for everyone. It's been solo until now, so I have to quick cleanup to do before I can get others working well on it, but that's my next set of tasks, hopefully in the next week. I'll let you know when that's done.

As for the video stuff, I look forward to your feedback on what I create, and happy to have it. Gonna film with a phone cam as the high-quality-for-face one, and my trusty Logitech C922 for a front-angle I can change to, and I have a good RØDE mic. Now I just have to do the damn recordings....

@aguluman
Copy link

Ah makes sense! Yea I'm happy to see it's getting picked up (or so it seems) as a 'proper' dotnet component after all these years. Some kind of managed Orleans that lets you just xcopy deploy the grains as a library would be quite nice. In my previous job there were a few places where Orleans would have been quite a big improvement, but it was too tricky to deploy without a lot of infrastructure churn. I think it's a bit easier these days, where you can host Orleans and aspnet in the same process.

Yea I quite liked Service Fabric when I had a look at it a few years back, it's a pity that it didn't see broader adoption outside of Azure (afaict). I see what you mean re Dapr in that respect, it's less like a container orchestrator than it is a service infrastructure. It's nice to see things like actor models and persistence baked into the experience.

Yes exactly, there are a couple of use cases that are such a natural fit for virtual actors that you can't imagine trying to do it any other way! A huge number of fairly independent things with reasonably complex long lived but possibly sporadic lifecycles etc 😄

Re Grace, one thing that caught my attention was the idea of each save being (to some extent) a revision, and just in general extending the idea of versioning even further into the personal workspace, instead of having a strict gesture/division of staging, commits etc. I think that's very interesting, and would possibly lift a lot of ambient stress associated with 'tampering with a sensitive and volatile resource', which is something you have to do constantly throughout the day.

I had similar realizations after moving to F#, that there was a persistent low level tension around null in all my previous work - that nothing was actually what it was claiming to be. It claims to be a Thing, but when you approach it, it explodes.

Perhaps Grace might have a similar experiential shift. Although the challenge there is that you need to use it first, and it might not be as tangible or easy to articulate. It's another thing you see a lot in F# - attempts to persuade people to try it! After you are converted, there's no going back, but somehow its tricky to make that jump. When I first looked at F# many moons ago, I was so horrified that I couldn't use tabs for indentation that I stopped right there! Only years later I found it again and was instantly converted.

Anyway, rambling aside 😄 Looking forward to seeing more, and if there's anything I can do to help, I'd be happy to pitch in, perhaps some early beta usage?

Once I tried, I never looked back. It's succinctness and readability is what drew me after seeing a JetBrains Rider Webinar with Urs Enzler on the topic, plus the mentor(Ian Russell) that introduced me to the language made it a lot easier. I hope to contribute to grace as soon as my sprints finishes.

@aguluman
Copy link

Ah makes sense! Yea I'm happy to see it's getting picked up (or so it seems) as a 'proper' dotnet component after all these years. Some kind of managed Orleans that lets you just xcopy deploy the grains as a library would be quite nice. In my previous job there were a few places where Orleans would have been quite a big improvement, but it was too tricky to deploy without a lot of infrastructure churn. I think it's a bit easier these days, where you can host Orleans and aspnet in the same process.

Yea I quite liked Service Fabric when I had a look at it a few years back, it's a pity that it didn't see broader adoption outside of Azure (afaict). I see what you mean re Dapr in that respect, it's less like a container orchestrator than it is a service infrastructure. It's nice to see things like actor models and persistence baked into the experience.

Yes exactly, there are a couple of use cases that are such a natural fit for virtual actors that you can't imagine trying to do it any other way! A huge number of fairly independent things with reasonably complex long lived but possibly sporadic lifecycles etc 😄

Re Grace, one thing that caught my attention was the idea of each save being (to some extent) a revision, and just in general extending the idea of versioning even further into the personal workspace, instead of having a strict gesture/division of staging, commits etc. I think that's very interesting, and would possibly lift a lot of ambient stress associated with 'tampering with a sensitive and volatile resource', which is something you have to do constantly throughout the day.

I had similar realizations after moving to F#, that there was a persistent low level tension around null in all my previous work - that nothing was actually what it was claiming to be. It claims to be a Thing, but when you approach it, it explodes.

Perhaps Grace might have a similar experiential shift. Although the challenge there is that you need to use it first, and it might not be as tangible or easy to articulate. It's another thing you see a lot in F# - attempts to persuade people to try it! After you are converted, there's no going back, but somehow its tricky to make that jump. When I first looked at F# many moons ago, I was so horrified that I couldn't use tabs for indentation that I stopped right there! Only years later I found it again and was instantly converted.

Anyway, rambling aside 😄 Looking forward to seeing more, and if there's anything I can do to help, I'd be happy to pitch in, perhaps some early beta usage?

Once I tried, I never looked back. It's succinctness and readabilty is what drew me, plus the mentor that introduced me to the language made it a lot easier. I hope to contribute to grace as soon as my sprints finishes.

@houstonhaynes Thank you so much! I'm both incredibly looking forward to welcoming contributors, and a little behind in making it a welcoming experience for everyone. It's been solo until now, so I have to quick cleanup to do before I can get others working well on it, but that's my next set of tasks, hopefully in the next week. I'll let you know when that's done.

As for the video stuff, I look forward to your feedback on what I create, and happy to have it. Gonna film with a phone cam as the high-quality-for-face one, and my trusty Logitech C922 for a front-angle I can change to, and I have a good RØDE mic. Now I just have to do the damn recordings....

I look Forward to contributing to Grace too, Scott. It's the same Chukwuma from twitter(X) by the way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation marketing content or activities related to marketing
Projects
None yet
Development

No branches or pull requests

4 participants