Having a single codebase is a great thing. But there are hidden side effects.

Image for post
Image for post
Photo by Claudio Schwarz | @purzlbaum on Unsplash

Cross-platform mobile frameworks solved the critical cross-platform development problem in many different ways. Initially, the Apache Cordova project (formerly PhoneGap) solved this problem by introducing webview-rendering. After that, the Ionic project created a native-like HTML/CSS widgets toolkit for Apache Cordova. Ionic motivated everyone to choose Angular as the frontend framework for developing cross-platform mobile apps. However, both frameworks are built based on native bridges for JavaScript to native communication vise versa. In other words, They created a generic JavaScript interface for native features and exposed native features to the webview.

Many developers created mobile applications with these kinds of webview-based…


Native cross-platform application development was hard, But now we have a better solution.

Image for post
Image for post
Photo by Amine Rock Hoovr on Unsplash

Undoubtedly, native applications are the best since they have good performance even on low-end computers. GUIs (Graphical User Interfaces) of native applications are rendered natively by the operating system’s core graphics library. Besides, native applications directly use the operating system API for their features. But native application development is hard if we consider cross-platform support. The reason is that the system APIs are different in each operating system.

The Electron project solved this problem by introducing a way to build cross-platform applications with JavaScript, HTML, and CSS. …


.asar is a simple .tar-like archive format with impressive features.

An image of a book rack with a lot of books
An image of a book rack with a lot of books
Photo by Ashim D’Silva on Unsplash

When the file count is increasing, file management is a bit complex and time-consuming. Archive file formats are helping us to create a single file by merging multiple files and directories. Therefore, for users, they can make one file from a set of rarely accessed files. Whenever they need to access the files, they can extract them as typical files and directories. For developers, they can make a single file for storing resources rather than storing all resources separately on disk. That will make the particular software more portable and easy to share as well.

Last week, I was looking…


Don’t buy a high-end computer just to run bloatware — throw away bloatware instead.

Image for post
Image for post
The Lite editor is running on my Linux computer, captured by the author.

We use IDEs when we need to work with a specific framework or platform. For example, Android Studio is helping us to create applications for the Android platform. On the other hand, code editors help programmers to work with various sorts of projects. Code editors have helpful features such as syntax highlighting, linting, and auto-complete.

Like most of the die-hard programmers, about 13 years ago, I initially used Microsoft Notepad as a code editor. After that, I just found Notepad++ and switched to it. I installed Dreamweaver. I tried to keep Dreamweaver as my code editor while I was working…


Java started its journey with the slogan: Write once, run anywhere. But now, It’s JavaScript — not you, Java.

Image for post
Image for post
Photo by cottonbro from Pexels

Before James Gosling created Java, platform-specific compiled languages like C/C++ were dominant high-level languages. Programmers had to write codes for each platform by using platform-specific APIs. Some programmers created a single codebase for all platforms by separating code with conditional statements. On the other hand, some programmers wrote codebases for each platform separately. Even though writing platform-specific brings a lot of benefits such as flexibility, customizability, and performance — the business side of the software development needed a way to ship cross-platform software products fast.

From the business perspective, making a software product is about making it correct and making…


Use these methods to save your time while you are playing with software bugs.

Image for post
Image for post
Photo by Nubelson Fernandes on Unsplash

Wherever a software system exists, bugs also exist. A particular feature can have many different cases and workflows. Programmers might miss a few edge cases in their implementations. Missing conditions, edge cases, and typos may create bugs in software systems. All most all bugs cannot be prevented during the feature implementations phase. Therefore, we will have to apply fixes when a user or a tester finds a specific bug in our software products. Sometimes, debugging takes more time than implementing a new feature. Hence, it is so important to find out ways to boost your productivity while you are debugging.


Try to solve these challenges before your next coding interview.

Image for post
Image for post
Photo by AltumCode on Unsplash

Recursion is a useful fundamental theory in computer science and mathematics. In mathematics, it appears in areas such as number sequences and functions. In computer science, it is helpful to solve problems by using the divide-and-conquer approach and dynamic programming. The divide-and-conquer approach decomposes a specific problem into smaller sub-tasks. After that, it solves each decomposed tasks to obtain the final solution. These smaller tasks can be either the same or overlapping. If a particular problem has overlapping sub-tasks, dynamic-programming helps us to reach the optimal solution.

Understanding the recursion theory and solving recursive problems could be difficult sometimes. Also…


Everyone complains they steal our data. Is it a big deal?

Image for post
Image for post
Photo by Glen Carrie on Unsplash

Whenever a giant tech company acquires another popular platform — or a particular platform updates its privacy policy, people start finding alternatives. Most of the people chose those alternatives based on the current trend rather than analyzing them in-depth. The recent activity regarding WhatsApp’s privacy policy amendment is very popular these days. Many people share a lot of posts about alternatives for WhatsApp: Telegram and Signal. Are you worried about these privacy-related myths than appreciating the quality of the existing popular apps?

Why they need your data?

Data is indeed fuel for modern machine learning algorithms. Machine learning algorithms on these social media platforms are…


Top-notch quotes of pioneer computer scientists in the world

Image for post
Image for post
Photo by Avi Richards on Unsplash

Experienced programmers often make impressive talks about technology and life. I found the following quotes that will make you curious and will change the way you think.

Linus Torvalds

Linus Torvalds initially created the Linux kernel and Git. The Linux kernel powers hundreds of Linux distributions, and it is also the core of the Android mobile operating system. Also, the Git version control system helps almost all software development teams to manage their source files.

If Microsoft ever does applications for Linux it means I’ve won.

His goal was indeed to make a better free operating system, which is better than all…


The facts that you need to realize to become an exceptional developer.

Image for post
Image for post
Photo by Pakata Goh on Unsplash

Programming and software are trending words in the world due to the digitization of things. Every field has a set of fundamental facts that helps everyone to understand reality. People find out these facts when they work in a particular field for a long time. For example, in civil engineering, engineers know that a newly built concrete structure will change its size with time. In their field, that’s an important fact, and they may use some techniques to overcome the side-effects of it.

Likewise, programming also has a lot of facts that every developer should understand. I stepped into the…

Shalitha Suranga

Software Engineer at 99x | Apache PMC member | Open Source Contributor (Author of Neutralinojs) | Technical Writer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store