Dialogs are a common component added to applications, whether on the web or in
native applications. Traditionally there has not been a standard way of
implementing these on the web, resulting in many ad-hoc implementations that
don’t act consistently across different web applications. Often, commonly
expected features are missing from dialogs due to the complexity of
implementing them.
However, web browsers now offer a standard dialog element.
Traditionally web applications have always had a less polished experience, both
functionally and visually speaking, compared to native applications on mobile
and other platforms. This has been improving over the years with the
introduction of new web APIs and standards.
One such new API that bridges that gap is the View Transitions
API.
In the world of web development, the management of styles has always been a
crucial aspect of building modern and responsive user interfaces. With the rise
of CSS in JS libraries like Material UI and Chakra, developers have started
creating dynamic and reusable styles using JavaScript; however, the performance
implications of these libraries have led to the exploration of alternative
solutions. One such solution is CSS Hooks, a library that offers a different
approach to managing styles in web applications.
Most APIs and applications that allow you to manage content have some form of
deletion functionality. Sometimes you may want to make something recoverable
after it’s been deleted, or perform the actual deletion later, and soft
deletion is a way to accomplish this.
Entities in your database may also have unique identifiers such as slugs
associated with them as well, and when you delete things you typically expect
these identifiers to become available for use again. In the case of soft
deletes though your deleted entities will still be in the database! If you’re
using Postgres or
SQLite you can get the best of both worlds
by using partial unique indexes,
which will in the case of soft deletes would only add slugs on undeleted
records to the index; however if you’re connecting a partial index compatible
database with Prisma then everything
isn’t rainbows and sunshine when it comes to partial indexes.
QR codes provide a very valuable way of sharing information with users, and
many applications rely on them for various purposes. Common examples of places
where QR codes can be useful include but are not limited to theaters, social
gatherings and other booking services. Integrating QR codes can seem
intimidating, but thankfully they’re not too difficult to handle with Angular
and the help of a couple of robust software libraries such as
ZXing.
Many web applications utilize forms in places be it for logging in, making
payments, or editing a user profile. As a user of web applications, you have
probably noticed that the browser is able to autofill in certain fields when a
form appears so that you don’t have to do it yourself. If you’ve ever written an
application in Lit though, you may have noticed that this doesn’t always work as
expected.
When working inside of Angular applications you may have noticed special
attributes such as NgClass, NgStyle and NgModel. These are special attributes
that you can add to elements and components that are known as attribute
directives. In this article, I will cover how these attributes are created and
show a couple of examples.
Over the lifetime of a project performance, issues may arise from time to time.
Lots of the time, these issues don’t get detected until they get into
production. Adding continuous benchmarking to your project and build pipeline
can help you catch these issues before that happens.
Losing data can be very frustrating. Sometimes data is lost because of hardware
dying, but other times it’s done by mistake. Thankfully, Git has tools that can
assist with the latter case at least. In this article, I will demonstrate how
one can use the git-reflog tool to recover lost code and commits.
I think it’s safe to say that most of us have been in a situation where we pull
down some changes from main and something breaks unexpectedly, or a bug got
introduced in a recent deployment. It might not take long to narrow down which
commit caused the issue if there’s only a couple of new commits, but if you’re a
dozen or more commits behind, it can be a daunting task to determine which one
caused it.