I’ve been aware of :focus-visible
for a little while now, but haven’t really dug into some of its details. I’ve noticed that browsers have their default behavior and I’ve just left them do their thing without adjusting the focus CSS. Of late, I’ve been digging into accessibility a lot more both for work and my own knowledge and have now finally dug more into :focus-visible
.
I wrote last month about
unit testing in Blazor with bUnit. What I didn’t think of at the time was whether bUnit and the same methodology could be used for integration tests as well. Turns out, it can.
Every once in a while I like writing about a video game I’m playing, a movie or TV show I watched. I’m often a little behind things nowadays, but even so, I try to be careful as to not spoil it for anyone reading who might not have watched the latest episode or have gotten that far into the game yet.
As I’ve mentioned, I’ve been working a lot with Blazor at work and one of the issues I ran into was supporting authentication and user sessions while still supporting server side pre-rendering on certain pages.
At work, my current project has me using Blazor. Unfortunately that means that my tooling for unit testing the frontend and the UI no longer work for this project.
React Testing Library doesn’t work all that well with a Blazor frontend. And by that I mean it just doesn’t work. Enter
bUnit.
Of late, I’ve been using .NET 8 and Blazor at both work and on my league management side project. One thing that I often need to do is pass data between components. Passing data from a parent component to a child component isn’t terribly difficult with parameters. Passing data from a child to a parent isn’t quite as straightforward.
The side project idea that has gained the most traction with me is the league management web application. I've spent the better part of weekend and then Monday & Wednesday getting the Blazor web app communicating with the Web API I'm also building for it.
This past week I started a new React project at work and was dealing with a weird issue with one of my components. It turns out the issue was caused by
Strict Mode on React.
I know I’m a little late to the game, but I recently learned how to use the new HTML <dialog>
element.
I’ve been reading
Parallel Programming and Concurrency with C# 10 and .NET 6 by Alvin Ashcraft. So far I’ve been learning a lot about how .NET handles threads, parallel programming and concurrency as the title would indicate. But in the meantime, I’ve learned something about LINQ that I probably should’ve realized or learned earlier.
When writing C# code, I often use dependency injection to inject the various services and repositories I need in the class I’m working on. Sometimes that would end up making the top of the classes rather “busy”. C# 12 has introduced a new way to make constructors and I love it.
Over the course of the last month or so, I began the process of converting my site from Next.js to 11ty. It was actually a pretty straightforward process and I’m happy with the result. I figure I’ll share some of the gotchas and the challenges that I faced moving my various pages over.
On each one of my reading logs, I add a YouTube video for “A Song to Leave You With”. It uses a React component to render the embedded YouTube video. Thanks to
Dave Rupert, I’ve been able to improve it.
One of my side projects uses
React Hook Form for my forms and ran into some speed bumps while building tests for the individual components. I figure I can’t be the only one so I figure I’ll share my solution.
One of these days I'm going to stop itching to redesign my site.
One of the regular things you have to do when building interactive websites and applications is to build forms to allow users to enter data. In this post, I’m going to show how to build a simple form in Blazor.
Over the course of the last few weeks I’ve been revising how several of my pages get their data. Instead of having to manually edit a JSON file that’s in my code base, I’ve been pulling from Notion’s API. The benefit of this is that it’ll be easier to update the pages. I figure I’ll show how I did it in hopes of helping others.
Over the last year, I’ve been posting my weekly reading log. This is my list of articles and various things on the Internet I’ve read that I found particularly interesting or helpful. The way I’ve started to manage them is through a Notion database.
I was listening to
ShopTalk Episode 553 and Dave asked a question that made me pause and think, hmmm…
One of the things I wanted to integrate with this project was user accounts. I am not sure that I really need it since I’m not really intending to release my card collection app as a full fledged website for the masses. But I still wanted to add it in if for no other reason than to learn.
Now that I was getting my feet wet, it was time for me to start laying out the framework for my first real Blazor project. Step one was to get the database setup.
I've been hearing a lot of good things about Blazor for a while now and as a .NET developer I figured it was time for me to see what the fuss was about.
I was recently listening to the
No Dogma Podcast and they had Jared Parsons, the C# Compiler Lead at Microsoft on. He said something that got stuck in my head.
One thing I've started to do when I'm actively developing a website or application is keep the dev tools open docked to the side. I do this for two reasons.
For a while now I've been adding an image for when my posts get shared on Twitter and the like. It's been a manual process where I open up Photoshop and manually update the text. I wanted to change that to make it faster for me to create, so I wrote up a quick .NET console app to go about doing that and will share with you how to build your own.
Too much Musk this week.
Life's been busy lately and I didn't get around to posting my weekly reading the last 2 weeks. I'ms starting back up with a slightly new format. I'm going to have a few links that I go into more depth with my thoughts on and then follow it up with the normal link list.
I've been tweaking my site here and there and the one thing I recently did was change how I populate my '
likes' page. Previously I had been doing it manually, but recently after having listened to the founder of
Feedbin on the
Changelog Podcast, I decided to try something different. I wanted to use a nice feature Feedbin has to make the page better.
I've been finally catching up on my (all-too-massive) podcast backlog and figured I'd place a shout-out to the podcast Chats with Kent.
This week we look at a lot of web dev articles as well as some amazing photos from the JWST.
One of the things I needed to do recently was write unit tests for one of the pages of Digital Family Cookbook where I pull a value from a query parameter in the URL. I ended up having some trouble with it so I figured I'd share what I did to get it working.
I'm still surprised it took me so long to figure this out. When I have been creating a SQL update stored procedure, I often ended up creating multiple ones if I was concerned about only updating a subset of the fields of a table. I've finally found a better way to do it.
This week we're a little heavy reading about freedom of speech and content moderation.
I've been going through my podcast backlog so this week has a lot of podcasts.
After seeing Git Actions at work at my job, I decided that I wanted to see what I could do for my personal projects with GitHub Actions.
Ever feel like you can never completely get started with a project? That's sometimes how it feels with the fitness tracking app I'm building.
I've been using Jekyll to run this blog for the better part of the last six years. But recently, I've been giving serious consideration to switching to Gatsby or Next.js.
Over the course of the last couple weeks, I've made some small improvements to my site. None of them are particularly huge, but I like the end result.
A little while back, I started a new project. I have been using
spreadsheets to track a lot of my fitness goals. This approach generally works, but I thought it would be easier if I had an app for that. So I did what any self-respecting fitness enthusiast developer would do...make one myself! But with that, also come unit tests.
At the end of November, I ended up leaving my job at Maintenance Strategies, Inc. and made the decision to take on a new challenge working as a software developer at Webstaurant.
I ended up starting a new project recently which I'll get into later, but after my experience writing unit tests with
Digital Family Cookbook, I decided to write the tests as I code for this new project. I found a nifty little tool that makes things a little easier for me so I figured I'd share.
I’ve often seen a joke going around dev circles talking about how developers have tons of half-finished side projects lying around. And as much as it pains me to say, I’m one of them. But now I can say that that pile has decreased by one.
In all of my professional experience, I've never worked for a company that did any unit testing and because of that, I haven't really done any either. I knew what unit testing is and the general concepts behind it, but never got around to actually building or implementing any tests. I decided that for Digital Family Cookbook, that would change.
I’ve often joked that the recipe project I’ve been working on is my “white whale”. I have in the past thrown everything out only to start over. I first built it in Ruby on Rails, but it was buggy and my limited knowledge of Rails made it a little hard to debug and figure out exactly what was wrong. I opted to rebuild it in PHP since I was quite familiar with PHP after building OpenVoter. I decided then that I wanted to start over to teach myself Node.js...well you get the idea.
Lately, I’ve been making steady progress on my side project, which I’m currently calling Digital Family Cookbook. I’m making it as a content management system for cooking recipes. As I’ve mentioned previously, I’m writing it using Node.js, React, & GraphQL. It’s been quite a learning curve, but I’m definitely glad I’ve been working on it. The tools are pretty cool and easy-ish to use once you get used to the syntax and some of the idiosyncrasies of React and JSX.
I think I mentioned it before, but I’ve been working on a new side project. I figured it was a good way to teach myself React and Node.js, much like OpenVoter taught me PHP. I’ve been wanting to familiarize myself with some more modern frameworks, and I feel like Node and React are good places to start.
As you can tell, I've decided to give my blog a little bit of a facelift.
The last couple months have been really hectic for me and unfortunately I didn’t get much done on my recipe side project.
I've been having an itch lately to get working on a new side project.
So I was in a "I want to develop something mood" recently, but didn't feel like digging into a big project, so I came up with an idea for a new project.
Over the course of the last several months, I’ve been busy building out my website utilizing
Jekyll instead of Wordpress. It’s not my first time moving away from Wordpress, but I think it will end up being permanent.
This has been in the works for some time now.
At the end of January I decided to make the switch to the Ghost blogging platform. I had heard good things about it and decided to move over to it. Well, this past week I decided I wanted to expand a bit more with how I blog and realized that Ghost really wasn't going to work for what I needed. Given that and my limited knowledge of node.js, I decided that I'd be better served moving back to WordPress as my platform since I am familiar with PHP and its inner workings.
A week or so ago I decided that I needed a new programming project to work on. I haven't really had something like this since I closed the book on OpenVoter.
Two weeks ago, I decided to make the switch from WordPress to Ghost as my blogging platform. For me it was a figuratively big jump as I have been using WordPress for years and hadn't really thought of switching to any other platform.
Despite my initial skepticism about switching over to Ghost as my blogging platform, I still pushed ahead and made my blog theme for Ghost. As you can tell, the look isn't all that different from it's previous look, but the backend is completely different.
Several months ago, when Ghost was first released to the public, I took a look at it and made a note to give it a look-see. Over the past week, I finally got it running on my dev server playing nicely with my Apache setup. So far I've been playing around with it and am contemplating whether I want to switch my blog platform over to it from WordPress, which is what I currently use.
In November of 2011, after really getting into photography, I decided to finally take the plunge and get myself a DSLR camera. I chose the Canon EOS 60D because I liked what it offered, and my girlfriend (now my fiancee) also had it and recommended it to me. I should add that it also is nice since we'll be able to share lenses. Fast forward to now, I've gotten better with photography, but don't always have the time to go out with my Canon and find those awesome shots.
About 1-2 years ago, I decided to stop development work on OpenVoter. It's still there, you can still download and use it, but it just hasn't been updated. Kind of sad too, because some updates were actually pretty far along for the next version. That said, if I ever end up going back to work on it, it might very well take a fair amount of time to figure out where exactly I left off. But going back to the time that I decided to move on from OpenVoter, I remember debating what I wanted to do somewhat heavily. I really liked what I was able to accomplish with it, but at the same time, it wasn't really used by anyone that I knew of and didn't really see it moving anywhere else. In the end, I begrudgingly decided to shelve it and find something else to work on.
Over the last couple months, I've been seriously considering doing a rebranding. I felt that DarkNemesis and Darker Nemesis just didn't really feel like 'me' anymore. So I went about trying to find a new moniker. "Wags" has always been sort of a nickname for me given my last name being Wagner and "kpwags" was available so after some thought, I ended up liking it and now here we are.