Quick Tips for High Contrast Mode

Sarah Higley has some CSS tricks up her sleeve for dealing with High Contrast Mode on Windows, which I learned is referred to as WHCM.

Here’s the first trick:

[…] if the default CSS outline property doesn’t give you the visual effect you want [in WHCM] for focus states, there’s a very simple fix. Instead of overriding default browser focus styles with outline: none, make it transparent instead: outline 3px solid transparent.

That will essentially do nothing outside of WHCM, but in WHCM, it will be a thick white border, which is a strong, good visual focus style.

Direct Link to ArticlePermalink

The post Quick Tips for High Contrast Mode appeared first on CSS-Tricks.

The Best Documentation Is No Documentation

Hear me out before telling me how wrong I am.

Over the past couple of weeks, I have read a few different articles on writing good user documentation from a software developer’s perspective. It is an area I was always told I excelled at by people who read the docs I wrote through the years. However, by the time I stepped away from my WordPress business of over a decade, I had almost completely stopped writing user documentation. Few users seemed to have noticed or questioned why there were no step-by-step explanations of certain features.

Like many WordPress plugin and theme developers, I am a firm believer in having documentation on hand. As someone who has been fiddling with code since 2003, documentation has been my best friend. I have written at least a few hundred tutorials or pages of docs throughout my career. I have published two development books and was a technical editor on a third. I am fairly certain I have created a plugin or two with more inline documentation than actual code.

However, I also ran support for end-users for over a decade. The one thing I learned with any surety is that many users simply do not read the documentation. Even if they were reading it, they should not have needed to most of the time.

Despite iterating, redesigning, and trying my hand at everything to lead users to documentation before running to the support forum with every question, repeat questions never failed to land in the support queue every day.

It took me years — far more than it should have — to realize that the solution was not in the documentation and the problem was not in the user’s ability to read it. The problem was the product. If users were asking repeat questions, it meant there was something wrong with the user experience. Eventually, I shifted my focus. Instead of writing more docs, I focused on addressing the problems that continued to crop up in the software.

The activity that I had failed at was listening.

One of the best skills a developer can obtain is the ability to listen and then translate what users are saying into better code, user interfaces, and user experiences.

In my younger years — and I suspect many developers were the same when starting — I felt like I knew the answer to every question and was always right. I was highly skilled, and I knew it. For a young, 20-something developer, that tends to mean trouble. It means that you believe the problem is not with the things you have built. No, the problem was that the user was doing something wrong. These are the types of developers who say, “RTFM,” and point a user to an overly technical document that does not solve their problems.

Some lessons are learned the hard way, but learn them we must to build better products.

I promise if you do this one activity — listen, really listen — to users, you will spend far less time explaining how something works. The question you need to ask yourself is why a piece of documentation needs to exist in the first place. If it takes 500 words to explain a feature, there is a good chance the feature does not make for an ideal user experience.

When building products, we should always strive to build them so that there is no need for documentation. Or, at least build them so that reading the manual is a last resort for addressing problems.

For practical purposes, as a fulltime developer in the past, I kept a simple text file with a list of repeat questions. This could be a more elaborate setup for a team, such as creating GitHub issues. My text file worked fine because I was a one-person show. I would make it a habit to routinely go through the list and ask how I could improve each point. Some items were never scratched off the list. However, more often than not, I learned important lessons about building for end-users first. I could see the things that made sense in my head but were confusing to others.

The biggest improvements were not in finding solutions to existing problems but in recognizing problems within new products that I was building based on past experience.

Over time, most of my documentation became geared toward developers. These were primarily tutorials on using APIs, hooks, and other developer-related features — things that were not exposed through a plugin’s UI. I was writing far less for end-users because I was updating projects based on their feedback and questions. Yes, I absolutely failed from time to time, but I was getting better at being someone who listened to problems and made changes based on what users were telling me in their own way.

When I say that the best documentation is no documentation, I do not mean that you should skip it altogether. I want you to ask the question about why the documentation needs to exist. Are there things you can do to make the user experience easier? Are you actively tracking support questions and addressing those in the product itself?

In development, we often talk about writing “self-documenting code.” This is a way of saying to write code in a way that you should not have to explain it to another developer via inline documentation. For example, the wp_insert_post() function in WordPress tells you that its purpose is to insert a post. The goal of any software should also be to create self-documenting interfaces and other elements that a user interacts with. Users should be able to automatically understand the purpose of a button, text field, or checkbox without consulting the docs.

The next time you sit down to write a new user-oriented piece of documentation, make sure that you are not using it as a crutch to prop up a poor user experience.

Cloud-Native Benchmarking With Kubestone

Intro

Organizations are increasingly looking to containers and distributed applications to provide the agility and scalability needed to satisfy their clients. While doing so, modern enterprises also need the ability to benchmark their application and be aware of certain metrics in relation to their infrastructure.

In this post, I am introducing you to a cloud-native bench-marking tool known as Kubestone. This tool is meant to assist your development teams with getting performance metrics from your Kubernetes clusters.

How Does Kubestone Work?

At it's core, Kubestone is implemented as a Kubernetes Operator in Go language with the help of Kubebuilder. You can find more info on the Operator Framework via this blog post.
Kubestone leverages Open Source benchmarks to measure Core Kubernetes and Application performance. As benchmarks are executed in Kubernetes, they must be containerized to work on the cluster. A certified set of benchmark containers is provided via xridge's DockerHub space. Here is a list of currently supported benchmarks:

The Return of the 90s Web

One of my forever-lessons here on CSS-Tricks is that having your own website and blogging on it is a good idea. It’s probably one of the best decisions I’ve ever made, as it’s been a direct source of fun, career development and, eventually, income.

I always chuckle at little blogging is cool again declarations from the community. It’s always cool, my friends. But it is always nice to see more people pick it back up.

I enjoyed this post from Max Böck that gets into how what is old is new again. Server side rendering! Personal websites! Blogging! Heck yes.

Direct Link to ArticlePermalink

The post The Return of the 90s Web appeared first on CSS-Tricks.

Ngx-Bootstrap DateRange Picker and Date Picker

Introduction

In this article, we are going to learn the use of Ngx-Bootstrap DateRange Picker and Date Picker in Angular 8.

Ngx-Bootstrap has released a package of open-source tools which is native Angular directives for Bootstrap 3 and 4. It contains all core components powered by Angular. In this article we will learn about DatePicker component which is a cool feature of Ngx-bootstrap.

Changing Face and Importance of SAAS Solutions in Face of COVID-19

The COVID19 pandemic has affected nearly everything. Every activity in our daily life that involves interactions, directly or by indirect means is no more considered “normal”. Needless to say this but the pandemic has affected the workplaces as well.

COVID19 is most likely to cost the economy $1 Trillion this year. The loss is too huge to have recovered sooner. Businesses with immense human interaction, especially the traveling industry, have suffered a major blow for quite some time even in the future.

Building a remote team quickly

I am a developer who recently started working on my own, and I've come across some projects that I can't handle by myself (mostly in React). What resources would you guys recommend for finding / putting together a team of remote developers to join me on these projects?

Blazor and Dragons! How to Consume gRPC-web From Blazor

Hi All! Today we’re going to talk about how to consume a gRPC service from a Blazor client. And we’re going to do it with Dungeons & Dragons!

People who know me, know that deep down, I’m a big nerd. I started playing D&D when I was a freshman in college and kept going for years. Eventually, I began writing my own campaigns, holding sessions as Dungeon Master, and even participating in competitions. And winning.

Navigating Kubernetes With Helm 3 Charts and ChartCenter

Many DevOps teams use Docker for secure deployments and agility, and use the popular open-source container orchestration tool known as Kubernetes. Kubernetes has a steep learning curve, and the setup for your Kubernetes clusters can become complex. This is where the ecosystem really benefits from an additional support tool like Helm, a package manager, to streamline installing and managing Kubernetes applications. The building block when it comes to Helm based deployments are Helm Charts, and these charts are the packages managed by Helm. Helm charts are curated, reusable application definitions for Kubernetes, nothing but a curated set of files that define a related set of Kubernetes resources for an application. 

Helm 3 is one of the most eagerly anticipated releases by the Kubernetes enthusiasts. This latest version of Helm is finally available. Let’s take a look at how we got here.

WordCamp Tulsa 2020 Canceled

Tulsa’s first ever WordCamp, which was scheduled for August 29-30, 2020, has officially been canceled due to uncertainty surrounding the pandemic. The event would have been the second WordCamp in Oklahoma in four years, following WordCamp OKC in 2016.

“We were trying to go for a hybrid event that was live streamed and included an audience,” lead organizer James Bullis said. “This was something that hadn’t been tried before and with Oklahoma opening up it was a possibility.”

The six-person organizing team had already selected speakers and were going to notify them but had not yet set the WordCamp schedule.

“Unfortunately we were told that due to uncertainty we had to choose to do a virtual event or postpone it,” Bullis said. He said WordCamp Central cited a few reasons why a hybrid event would not be possible: social distancing, cleaning requirements throughout the day, the extra cost of a local crew to film, and the quality of the stream with live audience elements.

When presented with the choice to either go full virtual or postpone the event, the organizing team took advice from WordCamp Central’s approved streaming company. Having free virtual tickets available would likely limit the in-person ticket sales and put a greater burden on local sponsorships.

“Since this was the first WordCamp in Tulsa, the organizing team felt it would be better to postpone until 2021,” Bullis said.

Oklahoma is currently in Phase 3 of reopening, with businesses back to operating normally for the most part. Despite COVID-19 cases steadily rising in Oklahoma, along with hospitalizations, Governor Kevin Stitt, said he has no plans to scale back the reopening process. While there is a chance that Oklahoma would be open at the end of August, the situation is too precarious for WordCampers to pin their hopes on an in-person event.

Although many WordCamps are opting to go virtual and have attracted record numbers of online attendees, it’s not easy to measure attendees’ engagement without comprehensive streaming data broken down by hour/session. Bullis and his team decided against holding Tulsa’s inaugural WordCamp as a virtual conference, because they didn’t think it would hold the same value without the in-person interaction.

“We noticed that other WordCamps had gone virtual,” Bullis said. “People on our organizing team registered for these virtual WordCamps but didn’t go to them, or they left early. We felt like this was a pretty common response. We felt that a virtual WordCamp wouldn’t be as effective and would take away from the real value of a WordCamp.”

WordCamp Tulsa is technically canceled but the organizers plan to attempt an in-person event next spring. They will have to start the application process over again to plan for 2021 but hope to host the WordCamp on the first weekend in March or May.

In Defense of a Fussy Website

The other day I was doom-scrolling twitter, and I saw a delightful article titled “The Case for Fussy Breakfasts.” I love food and especially breakfast, and since the pandemic hit I’ve been using my breaks in between meetings (or sometimes on meetings, shh) to make a full bacon, poached egg, vegetable plate, so I really got into the article. This small joy of creating a bit of space for myself for the most important meal of the day has been meaningful to me — while everything else feels out of control, indulging in some ceremony has done a tiny part to offset the intensity of our collective situation.

It caused me to think of this “fussiness” as applied to other inconsequential joys. A walk. A bath. What about programming?

While we’re all laser-focused on shipping the newest feature with the hottest software and the best Lighthouse scores, I’ve been missing a bit of the joy on the web. Apps are currently conveying little care for UX, guidance, richness, and — well, for humans trying to communicate through a computer, we’re certainly bending a lot to… the computer.

I’m getting a little tired of the web being seen as a mere document reader, and though I do love me a healthy lighthouse score, some of these point matrixes seem to live and die more by our developer ego in this gamification than actually considering what we can do without incurring much weight. SVGs can be very small while still being impactful. Some effects are tiny bits of CSS. JS animations can be lazy-loaded. You can even dazzle with words, color, and layout if you’re willing to be a bit adventurous, no weight at all!

A few of my favorite developer sites lately have been Josh Comeau, Johnson Ogwuru and Cassie Evans. The small delights and touches, the little a-ha moments, make me STAY. I wander around the site, exploring, learning, feeling actually more connected to each of these humans rather than as if I’m glancing at a PDF of their resume. They flex their muscles, show me the pride they have in building things, and it intrigues me! These small bits are more than the fluff that many portray any “excess” as: they do the job that the web is intending. We are communicating using this tool- the computer- as an extension of ourselves.

Nuance can be challenging. It’s easy as programmers to get stuck in absolutes, and one of these of late has been that if you’re having any bit of fun, any bit of style, that must mean it’s “not useful.” Honestly, I’d make the case that the opposite is true. Emotions attach to the limbic system, making memories easier to recall. If your site is a flat bit of text, how will anyone remember it?

Don’t you want to build the site that teams in companies the world over remember and cite as an inspiration? I’ve been at four different companies where people have mentioned Stripe as a site they would aspire to be like. Stripe took chances. Stripe told stories. Stripe engaged the imagination of developers, spoke directly to us.

I’m sad acknowledging the irony that after thinking about how spot on Stripe was, most of those companies ignored much of what they learned while exploring it. Any creativity, risk, and intention was slowly, piece by piece, chipped away by the drumbeat of “usefulness,” missing the forest for the trees.

When a site is done with care and excitement you can tell. You feel it as you visit, the hum of intention. The craft, the cohesiveness, the attention to detail is obvious. And in turn, you meet them halfway. These are the sites with the low bounce rates, the best engagement metrics, the ones where they get questions like “can I contribute?” No gimmicks needed.

What if you don’t have the time? Of course, we all have to get things over the line. Perhaps a challenge: what small thing can you incorporate that someone might notice? Can you start with a single detail? I didn’t start with a poached egg in my breakfast, one day I made a goofy scrambled one. It went on from there. Can you challenge yourself to learn one small new technique? Can you outsource one graphic? Can you introduce a tiny easter egg? Say something just a little differently from the typical corporate lingo?

If something is meaningful to you, the audience you’ll gather will likely be the folks that find it meaningful, too.

The post In Defense of a Fussy Website appeared first on CSS-Tricks.

Why Camel K?

1. Dev Mode

 To run a camel spring boot or camel main application in Kubernetes, it requires a developer to build the docker or s2i images, create Kubernetes resources and then apply the resources to a running cluster which is very time-consuming. Camel K solves this problem and saves development time with the dev mode. Simply adding a --dev flag while running code allows the developer to deploy instantly to Kubernetes and also make any changes to the running pod whenever the source file is updated.

2. Dependency Resolution

 We know that camel supports multiple DSL such as Java or Groovy and Camel K supports it as well. What is new in Camel K is that the automatic dependencies management feature. The developer need not worry about packaging a deployable artifact or the maven or Gradle dependencies of various components. It automatically resolves the necessary dependencies from a source file during deployment. And also only one source file is enough to run integration in a pod.

Keycard Offers NFC-Powered Hardware Wallet for Cyptocurrency Transactions

Keycard is a new open-source hardware project that utilizes near field communications (NFC) technology to secure and store cryptocurrencies. The Keycard itself looks like a credit card but uses NFC to authorize cyrpto transactions through mobile devices. The card is already integrated with a private wallet, messenger, and DeFi browser, with more integrations on the roadmaps.