Fareez Ahamed

The Illusion of Unlimitedness

May 24, 2026

Over a period of time, I have started to realize that unlimitedness is an illusion. It doesn’t bring any good. You don’t get very far with anything that you got without limits.

Read more...

Why Go Is the Ideal Language for the AI Coding Era

Sep 29, 2025

Go is a very simple language. The philosophy it’s built on top of, is what makes it so beautiful. When I started learning Go, I had already mastered many languages both Object Oriented and Functional, but still craved for more language features in every one of them. I always missed a feature or two from another language when I was working on a project with a language.

Read more...

Why Writing Still Matters in the Age of ChatGPT

Sep 26, 2025

It’s been a long time since I wrote anything here. Reason is the rise of Gen AI tools. Ever since ChatGPT came, I started to feel that the kind of articles I write are not relevant anymore. I’ll start to think about a topic, mostly technical, and then it’s actually just a prompt away. So I didn’t get enough motivation to write anything. I’m kind of having a dilemma if writing is not going to be the same anymore.

Read more...

Retrospect: JWT Authentication using Node.js Workshop in Amrita Vishwa Vidyapeetham, Chennai

Nov 14, 2023

Couple of months back, I was invited to give a talk to the Cybersecurity students of Amrita Vishwa Vidyapeetham, Chennai by my professor Dr. S. Udhayakumar. When I was looking for topics, I zeroed down to JSON Web Tokens using Node.js as I have implemented it multiple times and having quite a good knowledge on it.

Read more...

Angular's Composability: A Deeper Dive into Why It Outshines React

Oct 31, 2023

React is usually praised for component composition over other frameworks. But in reality Angular’s composability is hard to beat. The main reason is Directives. Smallest building block in Angular is not component, its directive. A directive can attach itself over a component/DOM element and do a small piece of logic. Now you can create a bunch of directives and you can use it in any combination over any element. One can argue React Hooks can provide the same. While hooks are a good place to host such small atomic logic, it doesn’t attach itself declaratively to a an element/component, you have to wire the props of the component/element manually to the hooks where the logic is present. That itself will create a lot of code.

Read more...

Draggable Widget Layouts Using React.js

Jun 19, 2022

It is a common expectation for dashboards to have draggable widgets. In this article, we are going to see how we can make a draggable layout without using any libraries. We are going to use only React and CSS Grid and make something that looks like the following image.

Read more...

useImperativeHandle: A New Perspective in Making React Components

Jun 8, 2022

useImperativeHandle hook is an unusual hook in React, to an extent that it is discouraged to use in the React’s official documentation. React is a declarative framework and as the hook’s name suggests, it is giving a break from React’s declarative style by letting parent component call functions within the child component.

Read more...

Testing React Components Which Has Fetch or Axios API Call

Jan 26, 2022

Imagine, you are having a component which is making a REST API call when it is mounted, to fetch data and display it. How to write Unit Test for such a component? In this article we are going to see how to write Unit Tests for such case without any third part utilities other than Jest and react-testing-library.

Read more...

Real Artists Sign Their Work

Jan 2, 2022

When I was reading Steve Jobs by Walter Isaacson, I came across the following line.

Real artists sign their work - Steve Jobs

Read more...

Emulating Discriminated Unions in C# using Records

Sep 18, 2021

Discriminated Union / Sum Type is one of the common features found amoung strong typed functional languages like F#, Haskell etc. Ever since I started using them in F#, I can’t stop wondering why such an useful feature is not available on the popular languages. C# has been adding a lot of functional features over the last few years. So, we are going to achieve something close to that in C# using Records and Inheritance.

Read more...

Depth First Traversing using Generators in Javascript

Aug 22, 2021

Imagine you are having a tree structured object as shown below and you would like to traverse through each node and print it’s name.

Read more...

Setting Up Tailwind in Angular

Aug 13, 2021

Thanks to Angular team for making it so easy to integrate Tailwind with Angular 12 and above to a point that I really thought if I should write a post for it. Finally convinced myself to document it, since there were not many good references I could find related to this.

Read more...

Why Interfaces in Go Are Not Explicitly Implemented

Aug 2, 2021

Languages that came after Java, had great influence of it irrespective of static-typed or dynamic—especially the Object-Oriented features. Interfaces, popularized by Java was taken straight into other languages like C# and even dynamically typed languages like PHP! But Go has questioned every existing solution thoroughly before inheriting those features. No while loops, no do-while loops, no ternary operators, no constructors, nothing was brought in Go just because it existed earlier.

Read more...

Why I'm Adding Svelte.js to My Toolkit

Jun 26, 2021

For a long time, I was holding myself from trying out Svelte.js just for the reason that I don’t want to wrap my head around one more framework after React, Angular & Vue. Last year, I broke my vow out of curiosity and started checking Svelte. But the fact that typescript support was not so good at that point of time stopped me from considering it seriously.

Read more...

Creating a Tree Component using Svelte.js

Jun 5, 2021

I was playing around with Svelte.js recently and was curious to know how easy it would be to build a Tree component using it. It was simpler than I expected it to be with Svelte’s recursive svelte:self feature. Let me explain how its done.

Read more...

Embedding a React Application in Go Binary

Mar 22, 2021

Go 1.16 has come out with a feature which I waited for quite some time. With Embed we will be able to add static files into the go binary at build time. It also makes accessing the files as simple as dealing with File System APIs.

Read more...

Thread Safe Lazy Loading Using sync.Once in Go

Jan 19, 2021

Imagine you have a server and you are loading some configuration for executing some business logic. You don’t want to load all the configuration when the server is launched since it will take a lot of time for it to be ready for handling requests. You have to postpone loading configuration till it is actually needed. It’s called Lazy Loading.

Read more...

Authenticate Users from Multiple Tables in Laravel

Jan 14, 2021

It is a common practice to store different user types in different database tables. For example, in most applications you will have an Admin user and a normal user. Though we can have all the users in a single table and discriminate them based on a column, sometimes if the fields are quite different, we would like to have different table for each type of user.

Read more...

Custom React Hook to Trigger Callback when Component Enters Screen

Mar 8, 2020

Sometimes we would like to postpone loading data in a component till it is actually visible in the viewport. This is handy in applications where we have lots of tables with data that should be loaded only when we scroll down. This behavior could be used in a variety of cases in different components, so we are going to make it into a reusable custom hook so that we can use it wherever we would like to.

Read more...

Extending Blade for Role Checks in Laravel

Oct 27, 2019

Displaying parts of view based on conditions is super easy in Blade using @if ... @endif conditions. Imagine we are storing the role information as a string in the User model under the role field. We would write something as shown below to check the roles in the blade syntax.

Read more...

Create Your Own Autocomplete Using Vue.js 2

Jul 6, 2017

Why should we make our own Autocomplete component when there is plenty of existing components out there? For simple use cases, yes that serves enough. But when you want to create complex ones, like the one which shows Movies in IMDB, its always good to create our own component to have the best control over the design we provide. This article will help with that. We are going to make the an Autocomplete as shown below.

Read more...

How to Make a Simple ALV Table in Web Dynpro ABAP

Jun 16, 2017

ALV Tables are most preferred way to display when you have large amount of data to be displayed in tabular format due its flexibility and numerous features. However developing applications with ALV Tables in Webdynpro are perceived more difficult than the startdard Table element of Web Dynpro ABAP. Let’s see how to create a simple ALV Table with minimum options and code to understand the basics of ALV.

Read more...

Pagination Component using Vue 2.0

Oct 30, 2016

Pagination is one of the basic component we will need with any application. Let’s create a pagination component using Bootstrap and Vue.js, and in the course of development we will see about custom events in Vue.js.

Read more...

My Experience on SAP TechEd Bangalore

Oct 16, 2016

This being my first SAP TechEd, my experiences are countless and still I’ll try to summarize some of the things I felt.

Read more...

Countdown Timer using Vue.js

Jul 5, 2016

Let’s explore Vue.js further by creating a Countdown timer component which will be very useful for people to quickly put a Countdown page for the products or events website. While developing it, we will explore the features of Vue.js which makes it such a bliss to develop complicated things from the scratch without much effort.

Read more...

Create your own Autocomplete using Vue.js

Jun 18, 2016

Note: This article is using Vue.js 1.0. If you are planning to use Vue.js 2, go to this article

From the days of jQuery, I have been pulling in different plugins everytime I wanted to create an Autocomplete input. Later Bootstrap came with an Typeahead component and then they removed it from Bootstrap 3 and I was forced to use typeahead.js when I was developing Encollege

Read more...

Play with Bootstrap using BootSync

Jan 24, 2016

Bootstrap has become one of the basic tools to start web development. Though I’m using it for quite some time, I don’t dare to change the original look and feel due to the fear that I may mess up with the project and or spend too much time on designing. Yes! Sass makes it easy but still I refrain from changing.

Read more...

Bootstrap Sass in Laravel 5

Apr 3, 2015

Laravel 5 ships with Bootstrap 3 by default, but it uses Less and not Sass. Personally I prefer Sass over Less and this article helps you set up Bootstrap Sass using Bower and Laravel Elixir.

Read more...

How to create a Tree List report in ABAP

Mar 5, 2015

Reports which has the capability to drill down to multiple levels are of good use. It serves as a simple overview as well as more detailed report when you want to look into a particular record in detail. SAP makes it easy to create Tree List reports with Function Modules RS_TREE_CONSTRUCT and RS_TREE_LIST_DISPLAY.

Read more...

Creating an ALV Grid Using OOP

Jan 19, 2015

SAP provides many ways to accomplish a task, creating an ALV Grid is no different. Though there are simple Function Modules available to create an ALV grid, Object Oriented methodology is more preferred due to its own advantages which are always debated in the ABAP world. As far as OO is concerned, my advice to ABAP developers is “Sometimes, you have to take a leap of faith first. The trust part comes later” (from the film Man of Steel) . Debates apart, we are going to try our hands creating an ALV grid display using the class CL_GUI_ALV_GRID.

Read more...

How to Store Files in Database in ABAP

Nov 25, 2014

There are requirements where documents has to be uploaded and associated with business data available in the system. When we store files in tables, it will be easy to link it with other tables data. This article is aimed at storing files in databases and downloading or uploading them.

Read more...

How to Create a Zip File in ABAP

Oct 11, 2014

We generate different kinds of files varying from Excel sheets to Text files based on the data available in SAP. It is very much possible to zip multiple reports within a single zip file and download the zip file from SAP.

Read more...

Random Number Generation in ABAP

Sep 17, 2014

Random Numbers are used for a variety of purposes in programming, and in this article we will see how to generate a Random Number or Random Number Sequence in ABAP

Read more...

Dynamic Search Help from Internal Table Data

Aug 11, 2014

While SAP has created most of the Search Helps that we will ever need, we still face situations where a Search Help has to be shown dynamically from data that we have in the an internal table. SAP has provided us a powerful Function Module to acheive this, and that is F4IF_INT_TABLE_VALUE_REQUEST.

Read more...

Optimize LOOP AT using Field Symbols

Jun 19, 2014

The time taken for an ABAP report to run is mostly spent in database queries and internal table processing. While the responsibility of database query optimization is spread across so many different levels, optimizing internal table processing remains solely the developer’s responsibility. In this article, we will see the advantage of making using of Field Symbols instead of Work areas in LOOP AT.

Read more...

Executing Operating System Commands from ABAP

Sep 13, 2013

Sometimes certain processes has to be run at Application Server level and the results has to be used within SAP system. They could be some simple OS commands or Shell scripts that does works like backup of files or database. In this article we are going to see how to achieve that.

Read more...

Running a Report Program and Getting Its Result Programmatically

Sep 10, 2013

There are situations when you need to run a report program and get its result list programmatically and display or process as you need. This article helps you to achieve that.

Read more...

Continuous Development and Deployment of CodeIgniter using Git

Jul 13, 2013

I have had serious problems with continuously developing and deploying enhancements to web applications in CodeIgniter. The problem is that the deployment version has different set of configurations than the development version. Usually, these are sensitive configurations like database connection settings. So even if I missed a single configuration, the result is that the website is down. This made making quick enhancements very difficult. Git helped me come out of it.

Read more...

Windows Phone Tiles Using CSS and jQuery

Apr 11, 2013

Windows Phone’s tile design is a haunting beauty to me. I never knew a layout of neat square boxes can impress me that much. And so I tried to implement that tile design in web using CSS and jQuery. I have tried only the Tile Flip animation which can show two different information one at the front side and another at the back side of the tile.

Read more...

Sticky Notes using CSS3 and jQuery

Mar 12, 2013

Most of us are good users of Sticky notes application of Windows which is quite a good tool for quick notes to remember. I got inspired by that and tried to create a simple web Sticky Notes using CSS3 and jQuery.

Read more...

Using Labels Inside Text Field, Is That Wrong?

Feb 5, 2013

Today, I got the chance to read the article Don’t Put Labels Inside Text Boxes (Unless You’re Luke W). In that article, Caroline tries to address the problem of using anything inside a text box. Whether it is label or hints. This really pulled me to write this article. I don’t exactly remember when I met the first form with labels inside the text box, but since then I have been fan of labels inside text fields both as an user and designer.

Read more...

Integrating Applications With Suspend, Resume & Exit Plugs

Jan 15, 2013

Integrating two different applications in Web Dynpro ABAP is quite a challenging task. Most of the time we choose to integrate applications by making component usage of one component in another. But sometimes this becomes a tedious task, especially when both component are dependent on each other. Here we are going to see an alternative option which is redirecting URL by using Suspend, Resume & Exit plugs.

Read more...

Saving Tweets to MongoDB using Java

Nov 19, 2012

MongoDB is the fastest growing NoSQL database. Apart from the advantages of NoSQL technology, it’s JSON querying style, easy installation makes it more preferable. In this article I’m going to show you how to save tweets into MongoDB using Java.

Read more...

Text Symbols in Web Dynpro ABAP

Nov 7, 2012

Text symbols are one of the great and most used feature in ABAP. It is very helpful when it comes to internationalization of your application and also manages all your text at one place. ‘Is this feature available in Web Dynpro?’ Yes indeed, but it seems Web Dynpro has complicated accessing it. So this article is all about creating a simple application that gets the text from Text Symbols and places the text in a caption.

Read more...

How to Create a Context Menu in Web Dynpro ABAP

Oct 22, 2012

Creating customized menu for right click is always cool and creating such menu’s in Web Dynpro ABAP is quite easy. In this article we are going to see creating context menu for a TextEdit UI element which has to be filled with the text ‘Hello World’ on clicking an action in the menu.

Read more...

Anatomy of Table UI and Creating Customized Table UI Dynamically

Oct 18, 2012

Whenever we want to create a Table UI dynamically, we go to CREATE_TABLE_FROM_NODE method of CL_WD_DYNAMIC_TOOLS (see here. However in some cases we want the Table to be very much customized. For example, you may need to create a Table UI bounded to only three attributes of a node which already has four attributes and you may also want to represent each column with different UI element. ‘Yes, situations like this are there’. If you are making a service call, it will create a set of context nodes in the component controller. Now if you want to create a table dynamically and bind it to an already existing node, where you don’t want all the fields to be bound.

Read more...

Creating Table UI Dynamically

Oct 15, 2012

Many a time you come across a situation of creating a Table UI dynamically. Especially, when you want to create Table UI based on certain conditions which will be known only during the run time. However, Table is not a simple element, it comprises of Columns, Cell Editors and Popins. To make our job simple, SAP has provided a built in method to create a simple table which can only display data. In this article we are going to use this method to create a Table UI dynamically.

Read more...

Convert Photos to CSS3

Oct 8, 2012

Few days ago I saw a link bearing the title ‘Monalisa using CSS3’ repeatedly in Facebook and Twitter. When I checked it out, I was totally impressed. A Monalisa picture made by just using CSS3 alone. To be more precise box-shadow property of CSS3 alone. It was done by Jay Salvat using a PHP program which he had uploaded on his GitHub. He has done an incredibly innovative work.

Read more...

Google Maps in Web Dynpro ABAP

Oct 8, 2012

Google Maps integration with Web Dynpro ABAP is one of the most sought out thing. There are a lot of possible ways to this. Google is providing many ways to access map data and we are going to use static maps for this tutorial.

Read more...

Creating UI Elements Dynamically

Oct 4, 2012

SAP Web Dynpro ABAP is an excellent tool to create huge data related applications easily and efficiently. However most of the time we create applications that has predefined screen design. So most of the people are quite unaware about manipulating UI elements dynamically. But Web Dynpro indeed has the capability to do anything dynamically. It is a perfect Object Oriented System just like Java Swing or .NET’s Forms. I would like to give a brief introduction on creating UI elements dynamically.

Read more...

Star Rating Input Component in Web Dynpro ABAP

Sep 13, 2012

Few days back I wrote the blog Star Rating Display Component which can be used to show the average rating of an item. Now in this document I wish to share you how to create a reusable star rating input component through which we can give rating to items by just clicking on stars.

Read more...

Star Rating Display Component in Web Dynpro ABAP

Sep 4, 2012

Most of the time ratings are expressed in terms of stars, which is more appealing and easy to interpret. I came across a similar situation and I developed a reusable component to show star rating.

Read more...

An Analysis on Twitter's Leaked Passwords

May 20, 2012

On May 9, 2012 the headlines were ‘58000+ Twitter username and passwords are leaked’. Twitter is one the most used social networks with 140 million active users. Such a networks security has been breached and considerably huge number of passwords along with usernames was made available on Pastebin which is a paste and share web service. As a response all those accounts hacked are deactivated immediately by Twitter.

Read more...

Pursuit of Better Password Storing Technique

May 14, 2012

From the early days I’m very much bothered about storing passwords in my application. After studying some cryptographic techniques I got some idea and I have been following them since then. I shared the idea which I was following in How your passwords are stored!. And I’m glad that I got a very good response and suggestion for that which totally lifted me to a new level on understanding the use of cryptographic hash functions for the purpose of storing passwords.

Read more...

Search Twitter from your Program

May 5, 2012

Twitter is the social network used very widely for promoting products, films, etc. It is loved by companies especially for marketing. Twitter API owes the biggest part in Twitter’s success. The API is providing you the ability to do every possible operation that you can do in the website through your programs. For example, you find twitter tweets in many other sites (even in this blog) and this is achieved using Twitter API. Using this API you can do a lot of innovative things similar to the viral marketing done by Warner Bros for The Dart Knight Rises.

Read more...

Web Technologies

Apr 26, 2012

Internet seems to be the best innovation from human race. The architecture of the internet remains the same for decades, but the application and use of internet has got an unimaginable growth. To be precise, from 2001 to 2011, within a span of 10 years, internet users’ growth is 528%! (Source: http://www.internetworldstats.com/stats.htm). Web is the largest application in the internet. Every one of us is active user of at least 10 websites. Last decade saw a new revolution in the name of social networking which is still not over yet. Definitely web is the big thing which is going to rule the world for few more decades (Some say mobile is the next big thing; I would like to ask them to switch off internet in their ‘smarter’ phones and say it again).

Read more...

Hierarchy of UI Elements

Apr 16, 2012

Web Dynpro has been provided with lots of tools to make the development easier. When we want to create applications in which UI elements has to be created dynamically and processed dynamically, we have to go a little deeper i.e., we have to use the OO classes of the UI elements.

Read more...

Singleton Pattern in ABAP

Apr 15, 2012

Object Oriented Programming has been a boon to the programmers without which development of huge systems is almost impossible. ABAP is no exception to that which is why Object Oriented Programming was added to ABAP.

Read more...

Timer in Web Dynpro ABAP

Apr 15, 2012

Timer is a very essential UI element in many applications and creating a timer in Web Dynpro ABAP seems to be a little critical task in the versions prior to NetWeaver 7.1 where Island technologies are not allowed and only Iframe is available. Recently, I got an acquaintance with this problem and I ended up at a solution which I wish to share here as it would be useful for many. My solution uses Iframe and Javascript to create a timer. However, there are two of the main problem that one can face. One is the TimedTrigger component itself. It fires an action at every n second from when the previous action was fired but not from the start of execution of the application. Second, refreshing the Iframe will reload the HTML page resulting in resetting the timer. I have tried to provide a solution for both here.

Read more...

Java and Platform Independency

Mar 29, 2012

Necessity is the mother of invention. Computer languages are not an exception to this rule. However, there are as many as 1600 different computer languages as they say. Did all these languages have necessities? Yes. But the importance of the necessities differ. At the least it had a necessity to satisfy its own designer. When a language satisfies a big need of numerous people, it remains, others wash away or limited to particular community. Java is one such language which was designed for something and outgrown into something invincible.

Read more...

Bitwise Can Avoid Loops

Jan 30, 2012

As we have seen before, the power of bitwise operators are immense. Sometimes thinking in terms of arithmetical operators cost you lots of CPU time when compared to bitwise operators. So given a problem its obvious for us to think in terms of arithmetical solutions, but try to search for a bitwise solution and compare it with previous one. You can end up in a very powerful algorithm too. Now I wish to share one such case where the use of bitwise operator avoids the use of a loop too.

Read more...

How your passwords are stored!?

Oct 7, 2011

Most of us use numerous services available on the net such as mails, social networking services, and blogs. So it is obvious to have the question “Can a database administrator working on Facebook can get the password of my Facebook account if he wishes?”. A worthy question it is. But the answer is “No”. Your passwords are never stored as it is. (Well, I don’t know the policy of Facebook regarding this; I mention it just for an example).

Read more...

Build your own Twitter

Aug 14, 2011

Twitter has been famous from two or three years ago. I had not had much idea about it till two weeks back. I really wanted to check what twitter offers and so joined twitter two weeks back. It is a nice experience exploring a new service. Whenever I do explore, I try to reverse engineer that too.

Read more...

Do you really study?

Jul 30, 2011

When I started this blog, I wanted to write only about computer science but I really think that I have to express something that has been inside me for long and I think it’s the right time for that. This article is for the students of computer science or more generally students of any discipline.

Read more...

Feel the Binary Code

Jul 23, 2011

“There are 10 kind of people, One who knows Binary and the other who doesn’t.”

In the earlier days when electronic computers was first built, inputs were given in binary using tapes and outputs were also obtained as binary. So then, the people who where using the computers had to know binary ’language’. But now, we have GBs of movies, pictures, audio, documents, text and more & more type of files that we even we couldn’t make a full list of. Do we ever know how 0s and 1s formed these things? At the least, when we start to work with Bitwise operators we should have the knowledge of how these media are represented by the binary language. In this article we will see how to does binary works with numbers and text.

Read more...

Four Different Characters

Jul 12, 2011

I suddenly got an example that may help you remember the characteristics of AND, OR, NOT and XOR. Consider them as four different human individuals, with four different characteristics or behavior. Humans generally have the behavior of conveying things different from what they really heard; they may add something to the original story or hide something or even tell opposite of what happened. We have had lots of acquaintances with situations like this which would make this example unforgettable I think. Our men, AND, OR, NOT and XOR are no exception to these characters but each one having a different unique character.

Read more...

Bit-'Wise' Magic

Jul 10, 2011

‘Bitwise operators’, as the name says they are indeed wise enough to do anything that a computer can do. In computer architecture, we would have studied how these ANDs, ORs and SHIFTs are used to do any mathematical operation. Any basic arithmetic operation is a set of bitwise operation, which for convenience we have abstracted to a level that we forgot what is underlying. Sometimes, a lower level of abstraction is a better tradeoff to higher level of abstraction; an example is that programs written in assembly language are more efficient than those written in high level language. So we have to pierce through the abstraction to find the right things when we really need right things. Well, I think it is time to learn some bitwise tricks and improve our programming. Presence of bitwise operators in your programs identifies yourself as a quality programmer from my point.

Read more...

To my fellow readers

Jul 6, 2011

First of all, I introduce myself to my fellow readers. I’m Fareez Ahamed, a person who was impressed by computers from when I was studying fifth standard (well children now are introduced to computers more early now-a-days than those days). ‘How this stuff works?!’ is always a quest for many when they are introduced to new things. I’m no exception to that when I saw what a computer can do at first. It was at our printing press long back when I was studying fifth. The first software that I remember is Adobe PageMaker 5.0, something dedicated to printing industry. It did far better than what a traditional printing technique with very large space and tons of lead typesets can do.

Read more...