0 Down time
GraphQL
NextJS
Mongo
VITE
MEAN
MERN
Rust
Spring
Hibernate
Liquid
SASS
REST
Spring
React
Angular

NEXT! no soup for you

NEXT! no soup for you
NEXT! no soup for you
NEXT! no soup for you
NEXT! no soup for you
NEXT! no soup for you
NEXT! no soup for you
NEXT! no soup for you

I built a basic blogging application with Next.js conveniently named nosoup.

Next.js is already a leading React framework, and its position is likely to solidify even further due to several key factors:

more...

React Quiz Generator

Recently while studying for an Azure certificaton exam, I came up with the idea to generate my own test exam using AI. It came to me while I was studying since I have been using Github Copilot to help me study asking it questions. While looking for another prep exam, I had the Idea "Why not just ask Copilot to generate me some questions". Immediately, it provided me with 20 multi-choice questions I could use to study. This gave me an Idea, what if I asked Copiilot to format the questions as JSON so I could feed it into a JS app. And so I did it. 

more...

HEY MERN

HEY MERN
mern-docker-app/
├── client/
│   ├── public/
│   │   └── index.html
│   ├── src/
│   │   ├── App.js
│   │   └── index.js
│   ├── Dockerfile
│   └── package.json
├── server/
│   ├── src/
│   │   └── index.js
│   ├── Dockerfile
│   └── package.json
├── docker-compose.yml
├── docker-compose.prod.yml
└── .dockerignore

Tired of wasting time constructing the basic file structure just to get started building your MERN app. Just say HEY MERN! Use this simple script to get you up in running immediately with one command.

$ npx heymern

more...

Hey React Componets

Hey React Componets

Do you want to build your own npm reusable react component library. I built this one very quickly. It is a simple component library including of a Card, Button, Form, Table and more components to come. Some key features are the Form component allows you to define form fields as content childeren and the Table component supports sorting, filtering and pagination.

$ npm i hey-react-components

Want to create your own. Follow these steps

Step 1: Set Up Your Project

1. Initialize your project:   

mkdir my-component-library
cd my-component-library
npm init -y

2. Install necessary dependencies:

npm install react react-dom
npm install --save-dev typescript @types/react @types/react-dom rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs rollup-plugin-typescript2

   

3. Set up TypeScript configuration:

   Create a tsconfig.json file:

{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"declaration": true,
"declarationDir": "./dist/types",
"outDir": "./dist",
"jsx": "react",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true
},
"include": ["src"]
}

Step 2: Create Your Components

1. Create the folder structure:

more...

React Hook Form

React Hook Form is a library for managing form state and validation in React applications using hooks. It is designed to make form handling in React applications more efficient and straightforward. React Hook Form is a popular alternative to other form management libraries like Formik.

Some of the key features and benefits of React Hook Form include:

1. Hooks-based: React Hook Form leverages React's hooks API, making it a natural fit for modern React applications. You can manage form state and validation rules using simple and familiar hooks.

2. Minimal Re-renders: The library is designed to minimize unnecessary re-renders, which can improve performance. It does so by only re-rendering form components when needed.

3. Validation: React Hook Form provides a flexible and extensible way to define and perform form validation. You can define validation rules for each input field and trigger validation at various points in the form submission process.

4. Custom Inputs: You can easily create and use custom form input components with React Hook Form, allowing you to encapsulate form logic and reusability.

5. Error Handling: The library provides mechanisms to handle and display validation errors, making it easier to provide feedback to users.

6. Optimized for Controlled Inputs: It primarily focuses on controlled input components, which helps you maintain full control over your form state and avoid common issues with uncontrolled components.

7. Built-in Support for Uncontrolled Components: While primarily designed for controlled inputs, React Hook Form also offers support for uncontrolled inputs when necessary.

8. Form Submission: React Hook Form provides methods for handling form submissions and managing form data, making it easier to integrate with your backend services.

more...

You know what I mean MERN

I came up with a brainstorming app and I built it with MERN. Like MEAN but with React instead of Angular. 

MERN is an acronym that stands for MongoDB, Express.js, React, and Node.js. It refers to a popular stack of technologies used for building modern web applications. Each component of the MERN stack represents a different layer of the application's architecture and contributes to the overall development process.

Here's an overview of each technology in the MERN stack:

MongoDB: MongoDB is a NoSQL database that stores data in a flexible, JSON-like format called BSON. It is known for its scalability, flexibility, and ability to handle large volumes of data. MongoDB is often used to store the application's data and provides a convenient way to interact with structured and unstructured data.

Express.js: Express.js is a web application framework for Node.js. It simplifies the process of building robust and scalable server-side applications. Express.js provides a set of tools and middleware to handle routing, request handling, and other common tasks, making it easier to create APIs and handle server-side logic.

React: React is a JavaScript library for building user interfaces. It focuses on creating dynamic and interactive user interfaces by using a component-based approach. React allows developers to build reusable UI components that efficiently update and render based on changes in application state. It is commonly used for creating the client-side of web applications.

Node.js: Node.js is a server-side runtime environment that allows developers to build scalable and event-driven applications using JavaScript. Node.js provides a non-blocking, asynchronous architecture, making it well-suited for handling I/O-heavy tasks and building APIs.

more...

How's the weather

RxWeather is one of my practice apps which fetches the weather from a free api using your location or you can enter a city name. I also displays a map zoomed in on the city. I built this as an example of a Typescript React application using redux-observable/RxJs and Mapbox. 

In case you have not heard of redux-observable, it is a middleware library for managing asynchronous operations and side effects in Redux applications. It enables you to handle complex asynchronous flows using reactive programming principles and techniques. The library is built on top of the popular RxJS library, which provides tools for working with asynchronous and event-driven code using Observables.

The primary goal of redux-observable is to provide a way to handle side effects in a more organized and maintainable manner while adhering to the principles of Redux. By using Observables, you can model and manage asynchronous actions, such as making API requests, handling user input, and managing timers, in a consistent and predictable way.

Key concepts of redux-observable include:

Epics: Epics are the core building blocks of redux-observable. They are functions that take a stream of actions as input and return a stream of new actions as output. Epics allow you to react to specific actions and perform asynchronous operations, transforming them into new actions.

Observables: Observables are streams of values that can be observed over time. In the context of redux-observable, Observables represent streams of actions and can be transformed using various operators from the RxJS library.

Actions and Action Creators: Just like in Redux, actions represent events or changes in your application. Action creators are functions that create action objects. In redux-observable, you can use actions to trigger epics and produce new actions.

more...

How many pesos is that?

I don't know much about Cinco de Mayo.
I'm never sure what it's all about.
But I say I want you and you don't believe me.
You say you want me but I've got my doubts
Oh baby, I was bound for Mexico.
-- Song by Cake

Need to convert your dollars into another currency. I was board, so I made this simple app in React and Material UI.

Material-UI is a popular open-source design system and component library for building user interfaces (UIs) in React applications. It provides a set of pre-designed and customizable UI components, styles, and themes that follow the Material Design guidelines created by Google. Material Design is a design language focused on creating visually appealing and consistent user experiences across different platforms and devices.

Material-UI offers a wide range of components that cover common UI elements, such as buttons, input fields, navigation bars, modals, cards, and more. These components are designed to be highly modular, reusable, and flexible, allowing developers to create visually appealing and responsive user interfaces with ease.

Key features and concepts of Material-UI include:

1. Component Library: Material-UI provides a comprehensive collection of ready-to-use components that follow the Material Design principles. These components are built using React and can be easily integrated into your application.

2. Theming: Material-UI supports theming, allowing you to customize the look and feel of your application by defining a theme with colors, typography, spacing, and other design attributes.

more...

Fun With Numbers

See the Pen Fun With Numbers by jonclawson (@jonclawson) on CodePen.

React Version

See the Pen React with Numbers by jonclawson (@jonclawson) on CodePen.

Angular VX

See the Pen Angular 6 starter by jonclawson (@jonclawson) on CodePen.

I had some free time last Saturday, so I decided to play with d3.format() and created an AngularJS number filter for formatting numbers in common formats you might see on a website or application. This is what I came up with.

Just to be fair, I decided to make a React as well as an Angular 6 version too.

D3.js (Data-Driven Documents) is an open-source JavaScript library for creating dynamic and interactive data visualizations in web browsers. It allows developers to bind data to Document Object Model (DOM) elements and then apply data-driven transformations to create complex and customized visual representations of data.

Key features and concepts of D3.js include:

Data Binding: D3.js enables you to bind data to DOM elements, associating data values with visual elements like SVG shapes, HTML elements, or Canvas graphics.

Data-Driven Transformations: D3.js allows you to apply data-driven transformations to manipulate the visual properties of elements, such as position, size, color, and shape.

SVG and Canvas Support: D3.js works with Scalable Vector Graphics (SVG) and HTML Canvas, giving you flexibility in choosing the appropriate rendering technology for your visualizations.

Selections: D3.js provides a powerful selection mechanism that allows you to select, filter, and manipulate DOM elements based on data conditions.

Data Joins: D3.js supports data joins, where you can efficiently join data with existing DOM elements or create new elements based on data.

Transitions and Animations: D3.js allows you to create smooth transitions and animations to enhance the visual experience of your data visualizations.

Scales and Axes: D3.js provides scale functions to map data values to visual attributes, such as positioning data on axes or determining the size of elements.

more...

Measuring Up

Measuring Up

Measurabl is a software platform designed to help organizations manage and report on their sustainability and environmental, social, and governance (ESG) performance. It provides tools for collecting, analyzing, and reporting data related to sustainability initiatives, energy usage, water consumption, greenhouse gas emissions, and other key metrics.

For the past 6 years I spent with Measurabl, I led the upgrade of a web application to a modern framework with a custom build with new dependencies for theming, internationalization and deployment chosen and implemented by me. Over the years, I directly engineered a library of reusable presentational components such as tables, forms, maps and charts which I used in multiple premium subscription features of the application. Additionally, I integrated many 3rd party services into the app with internationalization, reporting and deployment/debugging technologies. 

In collaboration with the development team, we developed a web application and optimized the quality and efficiency of the CI/CD process. With a passion for building rich UI frontend applications and efficient APIs and proficiency in software technologies has allowed me to bridge the gap between technical and non-technical audiences. Resolving client demands and simplifying technical issues.

One of the premium subscription features I engineered was the Physical Climate Risk Report. This report required a client side component base UI to communicate with a REST API to render climate risk data as a report for the customer's portfolio. The UI report consists of filters to refine the results to specific climate risks and locations with the results produced on a page with charts, tables and a maps. There is also a PDF export rendered on the backend server with additional charting libraries.

more...

script