For the past 6 years, React has been my go-to solution for developing web interfaces. Its concepts are simple to grasp, and I also love how it allows me to build my own stack around it to build the frontend interface I need specifically adapted to each use case.
That flexibility comes at a cost, however — there are so many choices to cover each aspect of an application that it’s impossible to start experimenting with all of them to figure out what is the most suitable technology for a website.
Nowadays, frontend web applications behave more like desktop applications than old school apps. The state is saved in variables inside the code that is running on the browser. With the advent of Single Page Applications powered by React and Angular frameworks, global state management became increasingly important. Also, frontend applications become bigger and bigger as time passes and the industry moves on. Holding user preferences, site-wide selections, and having a reactive user interface became a necessity. There are very few things that have more impact on your project than the choice of state management. …
Whether you realize it or not, you have certainly met some of them — or you may be one of them. I’m talking about people who believe to be sound software engineers, but their way of working leaves the rest of us a bit nervous, trying to find ways to avoid working with them.
It is true that some people indeed need time to develop professional skills and attitudes, and that’s normal. However, some will remain where they are in terms of skills forever — their bad focus and attitude habits will make sure of that. …
For the past two years, strapi has been my go-to choice when I needed to design restful APIs for content pre-packaged with a nice UI to perform data entry. Most of my clients’ content-oriented sites are build with strapi as the content source and different technologies for data retrieval (Quarkus or Nest.js).
One of the features that strapi comes out of the box with, is static file uploading. Strapi comes prepackaged with a module to allow file uploading to the local disk. If you are deploying in the cloud, however, you will most probably need to upload your static files.
Strapi has provided instructions on how to use an external provider to upload files to your web service. And most of those will cover your needs. …
Even if you invest a small fraction of your time in gaming, you will surely have heard about Doom, released in 2016. The truth is that Doom is a game initially released in 1993 by ID software, and is considered to be the grandfather of the First Person Shooter Genre.
Let’s take a short trip into its history, its evolution throughout the years (yes, it has evolved) and its community. We will also look at some of the community’s creations and how they shaped today’s industry.
I remember playing this a long time ago when it first came out. I was seven years old back then, and I was already playing games on my computer, a Mac LC475, with a processor capable of running at 25 MHz, with 12 Mbytes of RAM. …
I had the chance to work on a project involving some large files filled with data, and for many parts of the implementation, I had to use NodeJS for various reasons. One of the most common issues I was forced to tackle was how to download and parse a file containing a few millions of entries (around 500Mbytes) and then perform operations based on the content. Since the files were very big, I had to stream parts of the file in RAM and perform asynchronous operations in chunks.
I was stunned to see that so few resources existed on how to do this on the Internet. And many solutions that I found did not take into account large files and were incompatible with any back-pressuring model. I tried to use RxJS for my solutions, which proved to be a less-than-ideal tool for me to perform backpressure when using NodeJS’s read streams. …
While working on a cluster comprised of microservices, you will most likely find yourself retrieving information from external providers (web services residing outside of your cluster, for example). Or you may have spotted some cases where your microservices are struggling to cope with a substantial spike in network traffic and that this struggle is propagated across all of your microservices.
What you have identified such technical issues, it’s time to think about fault tolerance mechanics, and how to apply them correctly for your use case.
But what is Fault Tolerance?
According to Wikipedia:
Fault tolerance is the property that enables a system to continue operating properly in the event of the failure of (or one or more faults within) some of its…
Due to the Coronavirus outbreak and the quarantine measures, the chances are that, if you are a developer, you are now working from home. Or at least you should be — our profession is flexible enough so that you can do 99% of your work remotely.
If you are used to working on-premises, you may find that adapting to working from home may have left you a bit disoriented.
I know, I’ve been there, and I would like to share with you what I hope to be some useful advice when working remotely.
Don’t change your working hours. Seriously. Just deduct the commute time from your schedule. …
It’s very often that a developer needs a private deployment environment while developing personal projects. I have tried many alternatives to test, package, and deploy my solutions during development, and nowadays, I never start a new project without setting up a CI pipeline first.
If you don’t yet have a CI/CD environment, you should consider buying or setting up one yourself. There are numerous solutions in the form of Platform as a Service (PaaS), but I prefer the community version of GitLab for my Git and CI/CD needs. The self-hosted GitLab version is virtually limitless. …
We are Software Engineers. We pride ourselves to write the most concise code, to create good architectural designs. We tend to believe that our professional life is full of code, debugging, drawings in whiteboards, and software problems to solve.
There are other aspects of working as a developer, however, which usually affect one’s mindset and productivity when working. Whether you are the manager of your company or a developer in a big team, you should not ignore these less technical aspects of the Development’s lifecycle.
Let’s take some time and elaborate on some common cases that have happened to almost all of the developers I know (including me). …
I have been developing web services in NodeJS for fun and profit for the past five years. Each time I started a new project, I have always asked myself the following question:
Which server-side Javascript Framework should I use this time?
Javascript is full of options. And over the years, I have found myself running through the same problems over and over again and solving them each time using a slightly improved method over the last one. In this post, I am sharing my experience with a set of the most popular NodeJS frameworks.
Most of the web services I have written involve serving mobile applications, without taking into account any frontend stack. Therefore, in this writing, I provide input based solely on those requirements. …