I recently investigated and fixed a performance issue with user authentication in our Spring Boot based API service. Our users started complaining about random 504s from our service. Looking at our thread pool config, worker threads, database connection pool size etc., everything looked normal. Looking at NewRelic for slow transactions, it gave a clue: It… Continue reading Fixing slow Bcrypt and BasicAuthenticationFilter.doFilter
Debugging is one of the most efficient ways to investigate an unexpected behaviour. This post details how to setup a debugger for a PHP application running in a vagrant machine via your IDE such as IntelliJ or PHPStorm. We’ll be using Xdebug version 3 in this post. Xdebug version 3 is significantly different from the… Continue reading Vagrant Remote Debugging – Xdebug 3 & IntelliJ or PHPStorm
All of these examples were tested with the ‘Multibranch Pipeline’ type jobs. This may not work with other types of jobs in Jenkins. Validate Jenkinsfile for syntax Navigate to the directory which has the Jenkinsfile file. You’ll need the Jenkins host URL, username/password of your Jenkins host. Conditional credential variable based on the branch name… Continue reading Jenkinsfile – Cheat sheet, Examples & References
If you need to freeze time for a Spring Boot integration test, the easiest option is to define a custom bean for Clock object for test profile. Eg This only works if the Clock object is injected by Spring into a component (Controller/Service/Repository etc.,) What if you have a Clock object in your DTO class… Continue reading How to mock Clock in DTO classes?
We started generating Swagger 3 documentation (OpenAPI 3.0) for our API service using SpringDoc. We are also using Spring Hateoas to include links within the response for easy navigation. The generated schema includes the 3 examples of “_links” object for each model classes that extends RepresentationModel in your response. Here is a shortened example of… Continue reading Hide Links object with SpringDoc & Swagger 3
There are plenty of tools in react ecosystem which makes the development faster and easier one such tool is the storybook. Let us see how a storybook is used to accelerate the react application development What is a storybook ? Storybook is basically a development environment and playground for UI components that create the components… Continue reading How to use Storybooks with React?
In this blog, we are going to discuss how to deploy react js applications for free in a few minutes in firebase. before that let’s discuss what is firebase. What is Firebase ? Firebase is a backend as a service(Baas) built on Google’s infrastructure.it is categorized as a NoSQL database that stores data in JSON-like… Continue reading Deploy a React app to Firebase
iTerm2 is my default terminal and have been using it for close to 8 years now. It is highly customizable and has API support for hackability. I was using it today to run a webpack watch command on my 2nd monitor. For every change, webpack recompiles the modified files and adds it to the output.… Continue reading iTerm2 – Clear scrollback automatically on a schedule
UNIT TESTING is a type of software testing where individual units or components of the software are tested. with this method of testing, both testers and developers can isolate each module, identity, and fix the system defects at the very early stage of the software development lifecycle(SDLC). Unit test is solely performed by developers. Why… Continue reading Writing Effective Unit Tests with React and Enzyme
Internationalization (i18n) is the process of building applications with local languages and cultural settings. An internationalized product solves the need of the local market with a more appropriate language approach and settings which in terms will produce greater user satisfaction and market success. i18n is usually misrepresented as Localization (L10n) and typically even Translation. i18n is development centered so within the case of software package, one… Continue reading Make your App Multi-lingual with React i18n Internationalization