@KristofferStrube@hachyderm.io
@KristofferStrube@hachyderm.io avatar

KristofferStrube

@KristofferStrube@hachyderm.io

.NET developer, Comp.-Sci. MSc., and Freelance Blazor consultant.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

poppastring, to fediverse
@poppastring@dotnet.social avatar

Has anyone implemented Activity Pub with ASP.NET Core?

Not just types and objects but something that could be used for basic federation.

#activitypub #csharp #aspnet #aspnetcore

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@poppastring I have implemented a class library for the types as you mention secondly: https://github.com/KristofferStrube/ActivityStreams

But I have also used it to create a simple bot that takes my blog posts and serves them in its outbox here: https://github.com/KristofferStrube/ActivityPubBotDotNet

The above is used for the bot @Bot which you can subscribe to and unsubscribe to, but I have not implemented the Activity Create event still which is the part that is needed in order for activities like Notes to appear on other platforms like Mastodon.

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@poppastring to show that the above Outbox is correct I've also implemented a page in Blazor that can search in the last X Activities made by a user here: https://kristofferstrube.github.io/Blazor.FileSystem/SearchMastodon

The above page auto-fills the identifier for my bot, but you can try it on your own identifier instead of you want which will work.

KristofferStrube, to dotnet
@KristofferStrube@hachyderm.io avatar
KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

I don't advertise very often. But!
In the new year, I have some more time for consultancy work if anyone has some Blazor-related projects they need help with. I have a broad knowledge of most Blazor in general, but I specialize in performance, highly interactive UIs, and utilization of native browser APIs.
Share if you know anyone who might need some help.

KristofferStrube, to dotnet
@KristofferStrube@hachyderm.io avatar

Made some more progress on my Blazor Web Audio wrapper today. Added support for more ways to connect and disconnect AudioNodes and extended the Playground demo so that we can control audio parameters using the output of nodes.
#dotnet #blazor #audio
Project: https://github.com/KristofferStrube/Blazor.WebAudio

Demoing the creation of an oscillating sound with both volume vibrato and pitch vibrato using Blazor.WebAudio.

KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

I released version 0.2.0 of Blazor.SVGAnimation to NuGet today. The package now supports Blazor Server as well. Apart from this, I also changed to use the event listener model from Blazor.DOM and deprecated some unnecessary methods.

Project: https://github.com/KristofferStrube/Blazor.SVGAnimation

A spinner animation that is controlled programmatically from Blazor.

KristofferStrube, to dotnet
@KristofferStrube@hachyderm.io avatar

Looking at a project I made 1 year ago. I had interfaces for all classes causing unnecessary indirection. It's fun how something that was so normal (for me) back then has now become a huge ick. The first thing I did now was to delete 80% of those interfaces.
#dotnet #csharp

KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

Released version 0.2.1 of Blazor.SVGEditor to NuGet today fixing that selected shapes would lose focus when zooming using touch.

Project: https://github.com/KristofferStrube/Blazor.SVGEditor

Zooming using touch without selected shapes losing focus.

KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

I had to do some work with Excel Sheets in Blazor for a consultancy gig today. For this, I used
@markpflug's library: Sylvan.Data.Excel
It's a really great way to work with Excel Sheets compared to some of the alternatives.
#blazor #dotnet
Check it out: https://github.com/MarkPflug/Sylvan.Data.Excel

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@khalidabuhakmeh My customer is using Blazor Server, so it is streamed from the client to the server while it is being read. But you could totally do this just in the client with Blazor WASM.

KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

Released version 0.2.0 of Blazor.SVGEditor today.
This version brings support for pinch-and-zoom on touch devices. My Blazor Web Audio Playground demo and Blazor Graph Editor expand on the capabilities of the SVG Editor, so now they also support zooming on mobile.
#blazor #dotnet #svg
Project: https://github.com/KristofferStrube/Blazor.SVGEditor
Demo: https://kristofferstrube.github.io/Blazor.SVGEditor/SnapToInteger/

Demo of using my the pitch-to-zoom feature.

KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

Web Audio, SVG's, and Blazor all in one project!? 😄
I'm having fun. 😀
I made a small interactive tool that enables me to quickly test the different audio nodes from the Web Audio API in conjunction. 🔊
#blazor #dotnet
Project: https://github.com/KristofferStrube/Blazor.WebAudio
Demo: https://kristofferstrube.github.io/Blazor.WebAudio/Playground

Me illustrating how to make a simple series of audio nodes in the Web Audio Playground.

KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

Today, I added support for BiquadFilterNodes in my Blazor wrapper for the Web Audio API. 🔊
I made a small demo of using it to make a simple old-timey radio voice filter. 📻🎤
#blazor #dotnet #csharp #audio
Project: https://github.com/KristofferStrube/Blazor.WebAudio
Demo: https://kristofferstrube.github.io/Blazor.WebAudio/ApplyFilter

A video showing a frequency diagram comparing some voice before and after it has been filtered by a highpass filter.

khalidabuhakmeh, to random
@khalidabuhakmeh@mastodon.social avatar

I just hope that the Pixel 8 screen isn’t made of soft cheese like my Pixel 6 screen is. I got a scratch on the display on the first day.

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@khalidabuhakmeh The 7 is pretty good. So hopefully they don't revert to the same as the 6. 😅

KristofferStrube, to dotnet
@KristofferStrube@hachyderm.io avatar

I think I see the value of primary constructors now. That is so sleek and simple. The only thing I'm wondering is whether all the newcomers to C# will be confused by seeing this when all tutorials out there use the "old" method.

video/mp4

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@khalidabuhakmeh Oh no. 🙈 The one I use in my blog is pretty bad anyway. 😅

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@khalidabuhakmeh Yeah, I use HighLight JS, which I think is lightyears behind both of those. 😅 I Should probably check out prismjs. 😉

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@khalidabuhakmeh And it looks like it has support for for all the languages that I use in my blog. 😀 HTML, JS, C#, Razor, Bash, and WebIDL. Fantastic!

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@khalidabuhakmeh Yep, I just checked that it does that correctly. I will get that out on my entire blog for my next post on Tuesday. 🙌

KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

I am working on getting error-handling JSInterop into my Blazor Web Audio wrapper. 😀🐞Making for easy and safe interactions with all the cool sound capabilities of the browser.
#blazor #dotnet #csharp #sound
Project: https://github.com/KristofferStrube/Blazor.WebAudio

khalidabuhakmeh, to random
@khalidabuhakmeh@mastodon.social avatar

Just remembered there’s a kbd HTML element. Super cool.

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd

KristofferStrube,
@KristofferStrube@hachyderm.io avatar

@khalidabuhakmeh Wow. I had always figured that each site using those boxes had randomly agreed on that style. XD

KristofferStrube, to blazor
@KristofferStrube@hachyderm.io avatar

Writing default! to remove warnings for nullability when using Parameters in Blazor always felt like a hack. So I'm happy to see that C# 11 gives a nicer solution to this that doesn't feel as hacky by using the new required keyword.
#Blazor #dotnet #csharp

KristofferStrube, to dotnet
@KristofferStrube@hachyderm.io avatar

Wup wup! 🎉🎉 Crossed 10K downloads of Blazor.FileSystemAccess on NuGet this week. It's awesome to see the package being used. 😊
#dotnet #NuGet #blazor
https://www.nuget.org/packages/KristofferStrube.Blazor.FileSystemAccess

KristofferStrube, to dotnet
@KristofferStrube@hachyderm.io avatar

Yesterday, I released the first version of Blazor.MediaCaptureStreams to NuGet. With this, you can see the capabilities of your local input devices and apply constraints to them before consuming them through other APIs.

This will tie into my progress on wrapping the Web Audio API in Blazor by making it possible to process audio from input devices through different node types.


Demo: https://kristofferstrube.github.io/Blazor.MediaCaptureStreams/Video
Project: https://github.com/KristofferStrube/Blazor.MediaCaptureStreams

KristofferStrube, to random
@KristofferStrube@hachyderm.io avatar

Got my Media Capture Streams and Web Audio Blazor wrappers working today so that I can now connect a Media Stream to an Analyzer Node to make intensity and frequency plots from live sound in real-time.
#blazor #dotnet #audio
Project: https://github.com/KristofferStrube/Blazor.WebAudio
Demo: https://kristofferstrube.github.io/Blazor.WebAudio/AnalyzeMediaStream

A MediaStream being analyzed by an AnalyzerNode. The result of this analysis is shown in two plots for intensity and frequency.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • provamag3
  • magazineikmin
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • JUstTest
  • All magazines