It’s okay to make hybrid desktop apps. But never let them become bloatware

Image for post
Image for post
Photo by Kai Pilger on Unsplash

About a decade ago, we had a golden era with pure native desktop applications. However, hybrid applications became popular over native applications due to the easiness of development, beautiful graphical user interfaces, and impressive cross-platform support. Native applications are undoubtedly great from the technical perspective because of their great resource usage, unlike hybrid applications. We all can use hybrid applications without any visible problem because our powerful hardware solves performance issues coming from common hybrid apps.

A few years ago, I tried to use the desktop application of Slack. Thereafter, I found that it was written using the Electron framework which ships a whole browser and a runtime (Node.js) along with each application. This situation popped out a nice question. …

Let’s modernize your old-fashioned Windows batch files with the help of PowerShell and .NET

Image for post
Image for post
Photo by Bahman Adlou on Unsplash

We normally use Bash scripting on the Linux platform to perform various types of automation tasks. Similarly, we could write batch scripts on Windows. However, Microsoft introduced PowerShell scripting with the new versions of Windows by adding a way to use the modules of the .NET framework. PowerShell is having some advanced features such as object-based output, pipelines, and a lot of new commands compared to the old command prompt application. If you have several Bash scripts on Linux, commands such as zenity and notify-send can be used to modernize those scripts by adding graphical elements.

A few days ago, I was adding a new feature to Neutralinojs to display toast notifications on Windows. I had several options: implementing by using a library like WinToast, implementing from scratch, and achieving the same result by starting a process of PowerShell with a code-block. The third option was so quick, and the same concept can be applied to modernize old-fashioned Windows batch files too. If we write a batch file for a non-technical audience, it is always nice to use some GUI to enhance usability. …

Programmers recreate memorable old things just for fun, and those projects can impress every programmer in the world

A cat and a person looking at the computer screen
A cat and a person looking at the computer screen
Photo by Ga on Unsplash

Programmers do various sorts of hobbies when they get free time. Some programmers like to play musical instruments. Meanwhile, some programmers enjoy watching movies, tech talks, and documentaries. However, every programmer likes to experiment and write some code just for fun. The following tech-projects are done by programmers just for fun. But, these tech projects undoubtedly can impress any programmer in the world.


A digital video has a set of frames and those frames are displayed in chronological order to make moving objects in the video. Also, each frame is made out of pixels that have different color values. Similarly, the ASCIImation concept has a set of frames that are made with ASCII characters. Each ASCII-based frame is played chronologically to produce the animation called ASCIImation. …

Don’t adapt to what you got with the installation, simply customize targeting your productivity instead.

Image for post
Image for post
The workspace, screenshot by the author

People use different types of operating systems based on what they do and their preferences. The majority of die-hard fans use their first operating system forever even though it has some drawbacks. Meanwhile, some people switch operating systems so often until they find the best one for them. Also, a few persons do a quick research about the history of operating systems and the modern state of those to find the best matching operating system for them. I used many versions of Windows for 10 years and switched completely to Ubuntu around 2 years ago.

Before switching to Ubuntu, I did a small research about the Linux kernel and eventually became a fan of Linus Torvalds, the creator of the Linux kernel. The GUI of an operating system initially shows us the default configuration that was made for a general-user by its developers. For example, Ubuntu has its navigation icons set (also knows as the dock) on the left of the screen, and also the top bar is visible all the time. I also didn’t like the default UI configuration of Ubuntu because it didn’t give the productive workspace I expected. I think for most users who have a Windows background, it’s a bit unfamiliar. I did the following customization in the GUI using the GNOME Tweaks application and some extensions to boost productivity for programming on Ubuntu. …

We normally use the console.log method to display some debug outputs. Let’s display an ASCII circle today for fun!

I was using console.log so often to output debug information of a program by using some characters such as = and +. I used those characters to highlight some important debug details. This reminded me of my past university time where we made ASCII boxes, triangles, and some other sorts of shapes using the C programming language as the initial coding activities. These algorithmic things are really fun and challenging activities. Therefore, before going further into the solution just open your browser console and give a try to print something like the following.

Image for post
Image for post
A circle on the browser console, screenshot by the author

But, this is not a perfect circle because we are just using textual characters as pixels. …

If you have noticed more than one of these, this is the time to make a new version of your resume.

Image for post
Image for post
Photo by Kevin Ku on Unsplash

A resume is a formal document that shows the required qualifications of a job applicant for a particular post. Nowadays, we always use digital versions of our resumes by using formats such as PDF-like files and HTML. The resume is like a written version of your profile and career-timeline. In other words, it explains your expertise, work experience, and background to other people very quickly. A better resume brings up facts about yourself as one of your colleagues tells about you.

The modern job market is undoubtedly competitive. Therefore, recruiters often filter out and sort resumes they received to find the best matching set of applicants for a particular opening before the actual interview process. …

They are pioneer programmers who put a strong foundation for software development.

Image for post
Image for post
Photo by Simon Abrams on Unsplash

Starting from ones and zeros, programming came a long way to reach the current state of abstraction. Past programmers put a stable foundation with great inventions for modern programmers to do their work easily. If we check a particular software, perhaps, it was written with the help of several libraries that have another set of dependencies that were created some years ago. When we go back further, eventually we will find out a massive invention done by an exceptional programmer in the history of computer software evolution.

For example, the Anaconda data science environment is written in Python. Thereafter, Python is written in C programming language which is a huge project that powered millions of projects. Similarly, Android uses the Linux kernel that is a large project by an exceptional programmer. The following programmers are pioneer computer scientists who put a strong foundation for software development by doing several memorable projects. …

The old JavaScript projects that revolutionized web development. Perhaps, you still use them.

Image for post
Image for post
Photo by Inja Pavlić on Unsplash

JavaScript was initiated as a simple scripting language that helped to make web pages a little dynamic by doing manipulations in the DOM. A few decades ago websites weren’t so dynamic as we have now. Everyone can remember that each action of old web applications made a full page load. Thereafter, AJAX got the publicity by letting developers update DOM by downloading data silently without having a full page reload.

A decade ago JavaScript-based libraries came to make these DOM manipulations easier by introducing some nice approaches to connect the DOM and data. However, even at that stage, monolithic web applications were popular. Web applications used AJAX requests to get data along with HTML in a stateful manner. Thereafter, MVVM concept based front-end modern frameworks were born. Those front-end frameworks got a huge push with the stateless architecture. …

Try to accomplish these milestones in 2021 to become an outstanding developer

Image for post
Image for post
Photo by Annie Spratt on Unsplash

As developers, we write code most of the time also by contributing activities that are in the software development life cycle (SDLC). We usually do some other activities to become outstanding developers. Becoming a top open-source contributor will automatically accomplish many things that are needed to become an outstanding developer. Give a try to accomplish the following milestones and activities within the upcoming year.

Become a committer at ASF

Apache Software Foundation (ASF) is a non-profit organization that manages hundreds of open source projects. Some Apache projects were initiated by the community and some projects were handed over to them for well-organized maintenance by other organizations. ASF follows a great transparent methodology known as “The Apache Way” to manage its projects with the help of the community. …

AI won’t take over humanity, But its illusion will

Image for post
Image for post
A labyrinth. Photo by Luemen Carlson on Unsplash

We all enjoy AI-takeover movies where Artificial Intelligence (AI) becomes the dominant form of intelligence. Whereas, we haven’t experienced such a situation in reality yet with the modern state of technology. However, theories of AI help humans to automate everything to save time. For example, AI is massively used in the manufacturing segment to boost the production rate and also to achieve more accuracy factors in the production process. Furthermore, AI plays a huge role in situations where humans can be easily replaced with more efficient computer-based systems. For example, consider a parking area where many vehicles come and go. …


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