A collection of tech notes, personal reflections, and evolving thoughts about whatever’s caught my curiosity.

notes

You

16 July 2026

“Daddy, what is the most beautiful thing
you have seen in your whole life?”

my little one asked.

“You,” I replied.

She laughed while hugging me tightly.

notes

Stars

10 July 2026

What is love?
the younger one asked me.

After decades of togetherness,
you can still see the stars
in her eyes when you look at her.

I replied,
while looking at her.

notes

Magic

3 July 2026

What is Magic, Daddy?
My little one asked.
I can see myself in your eyes
when you are smiling,
I answered.

I don’t know whether
she got it or not,
but she smiled.

notes

കാറ്റ്

16 June 2026

കൂട് വിട്ട് പറന്നുയരുമ്പോൾ
കാടുയരത്തിൽ ചിറകടിക്കുമ്പോൾ
കൂറ്റൻകുന്നിലെ ആകാശം താണ്ടുമ്പോൾ

കൂടെയാരുമില്ലെന്ന് തോന്നിയാൽ ഓർക്കുക,

കാറ്റ് പോലെ ഞങ്ങൾ കാവലുണ്ടാകും
കണ്മണി നിനക്ക്.

essay

നിലാപുഞ്ചിരി

29 May 2026
തന്നെ കൊണ്ട് പോകാൻ വന്ന കാലന്റെ കഴുത്തിൽ കയറിട്ട് മുറുക്കുമ്പോൾ അയാളുടെ കണ്ണുകൾ ശാന്തമായിരുന്നു. ...
notes

ജീവനീർ

27 May 2026

ഓരോ ചാന്ദ്രമാസവും
സ്ത്രീകളർപ്പിച്ച
ചുവന്ന ജീവനീർകൊണ്ടാണ്
ഭൂമിയിങ്ങനെ ജീവന്റെ
നീല നീലാവെളിച്ചത്തിൽ
പൂത്ത് നിൽക്കുന്നത്.

essay

നക്ഷത്രവും സൂര്യനും

26 May 2026
എൻ്റെ ജീവൻറെ വിത്തുകൾ നിൻ്റെയുള്ളിൽ സ്വീകരിച്ചതിന്, അതിന് പ്രാണനും ദേഹവും പകുത്ത് നൽകിയതിന്, നന്ദി. അതിന് വേണ്ടി വിരഹവും വേദനയും സഹിച്ചതിന്...
essay

ആഗ്രഹസാഫല്യം

23 May 2026
എന്നെ സംബന്ധിച്ച് എഴുതുക എന്നുള്ളത് എളുപ്പമുള്ള പരിപാടിയാണ് കാരണം കഥയും കാമ്പുമുള്ളത് എഴുതാനേ പണി അറിയേണ്ട കാര്യമുള്ളൂ. ഞാൻ ഈ എഴുതുന്നതൊന്നും അങ്ങനെയുള്ള കാര്യങ്ങൾ അല്ല. ഇതിൽ ഒന്നും തന്നെ വിശ്വസാഹിത്യത്തിൻറെ ഭാഗമാകാൻ പോകുന്നുമില്ല എന്ന് നമുക്ക് അറിയാം. അപ്പോൾ പിന്നെ നമുക്ക് എന്തും എഴുതാം....
notes

നാടോടിയും ചുംബനവും

23 May 2026

കാടും മലയും ആകാശവും
വൻകരകളും മഹാസമുദ്രങ്ങളും
വീണ്ടും വീണ്ടും കണ്ടാൽ
തനിക്ക് മടുക്കില്ലേന്ന് ചോദിച്ചവരോട്
നാടോടിയുടെ മറുചോദ്യമിതായിരുന്നു,

ഏറ്റവും പ്രിയപ്പെട്ടവളുടെ
എത്രാമത്തെ ചുംബനമാണ്
നിങ്ങൾക്ക് മടുത്ത് തുടങ്ങുന്നത് ?!

essay

നല്ല കലാകാരന്റെ ലക്ഷണം

2 May 2026
എന്താണ് ഒരു നല്ല കലാകാരന്റെ ലക്ഷണം? ഉത്തരത്തിന്മുൻപ്, ഒരു കഥ സൊല്ലട്ടുമാ? ഒരു വെള്ളിയാഴ്ച രാവിലെ ഞാൻ വണ്ടിയുമെടുത്ത് ഇറങ്ങി. ചെറിയ സഞ്ചാരത്തിന് ശേഷം ഞാൻ സൽമാനിയായിലുള്ള വാട്ടർ ഗാർഡനിലെത്തി. അധികം ആളുകളൊന്നും ഇല്ലാത്ത ശാന്തമായ പ്രഭാതം...
notes

Information Abundance

21 April 2026

In an age of artificial intelligence and endless information, everything sits at our fingertips. We can access almost anything, from anywhere, at any time.

But the real challenge is not access; it is direction.

What matters now is not what you can find, but the questions you are going to ask. Questions such as: What are you trying to achieve? How do you identify problems worth solving? How do you ask questions that lead somewhere meaningful? Ultimately, the quality of your questions determines the path you walk.

I believe that in this era of abundance of information, the true skill is not knowing more. It is learning how to ask better questions.

essay

യുദ്ധമുഖം

6 April 2026
യുദ്ധമുഖത്താണ് നാം. തെളിഞ്ഞ പ്രഭാതങ്ങളും തണുത്ത വൈകുന്നേരങ്ങളും ഭീതിയുടെ നിഴലിലാണ്. കിളികളുടെ ചിറകടിയൊച്ചകളും കതകട ശബ്ദങ്ങളും ഭയത്തിന്റെ...
notes

ചങ്ങലകൾ

18 March 2026

നഷ്ടപ്പെട്ടതെല്ലാം
മടങ്ങി വരണമെന്ന്
നിങ്ങൾ ആഗ്രഹിക്കരുത്.

ചിലതൊക്കെ ചങ്ങലകൾ
മാത്രമാണ്.

essay

യുദ്ധത്തിൻ്റെ നടുവിൽ

18 March 2026
ഞങ്ങൾ യുദ്ധത്തിൻ്റെ നടുവിലാണ്, ഞങ്ങൾ ആരംഭിക്കാത്ത, ഞങ്ങൾക്ക് വേണ്ടാത്ത യുദ്ധത്തിൻ്റെ നടുവിൽ. പറവകളുടെ പാട്ടുകളും നക്ഷത്രങ്ങളുടെ നിലാവുമില്ലാതെ...
notes

നീ

17 March 2026

മഴയുടെ സംഗീതവും
കാടിന്റെ കുളിരും
രാത്രിയുടെ മൗനവും
ഇരുട്ടിലെ നക്ഷത്രവുമാണ്
നീ.

notes

The illusionist

16 March 2026

My poems can make
you believe
I am the one
you dream of.

But I am sorry love,
I am the illusionist
you were never
destined to meet.

notes

പ്രണയകവിത

16 March 2026

എഴുതപ്പെടാത്ത
ഏറ്റവും
മനോഹരമായ
പ്രണയകവിതയാണ്
നീ.

essay

Kagi Small Web

15 March 2026
What is Small Web? While there’s no single, perfect definition, we like to define the Small Web as personal blogs, independent videos, webcomics, and other authentic spaces created for non-commercial purposes, usually for self-expression or community building. Basically, sites in the Small Web exist to share and entertain, not manipulate algorithms or boost corporate interests...
notes

കൊടുങ്കാറ്റാകുക

15 March 2026

കുതിച്ച് പായാനും
കരുത്ത് കാട്ടാനും
വേണ്ടി വന്നാൽ കടപുഴക്കാനും
കഴിയുന്ന,

കൊടുങ്കാറ്റാകുക നീ.

essay

A few financial lessons for life

13 March 2026
Here, I want to share some important steps you can take to keep your financial life secure. I have learned these from various sources and from my own experience. I hope you will do even better than I have as you read this.
essay

We thought we had time

9 March 2026
We all thought we had enough time until we stood in hospital corridors with a deadly disease and little hope, until someone we loved passed away without saying goodbye, ....
notes

Sweat

8 March 2026

I don’t know
what makes us sweat
at midnight,
the summer
or the love.

essay

I lied to you

1 March 2026
I lied to you. When missiles struck places near my home, when I was packing essentials to run away, when I drove through highways while bombings happened.
essay

Introducing For pages

24 February 2026
I have few common pages on this website Uses, Now, About Me, Blogroll, Changelog, and many others. If you want to know how to create a slash page in Hugo, check here.
essay

How to add random quotes to your (Hugo) website footer

19 February 2026
To be honest, I love beautiful and brilliant quotes. They can come from anywhere, like smart people, movies, or books. I don’t care where they come from. If they inspire me, I love them. The most beautiful part is that I enjoy collecting and curating them. Usually, I note them down and go through them again whenever I want.
essay

അസ്രി ബീച്ചിൽ പോയ കഥ

14 February 2026
വെള്ളിയാഴ്ച്ച പതിവുപോലെ നേരത്തെ ഉണർന്നു. മൊബൈൽ എടുത്ത് സമയം നോക്കി, ആറുമണി കഴിഞ്ഞതേയുള്ളൂ. അവധി ദിവസങ്ങളിൽ കൂടുതൽ ഉറങ്ങണമെന്ന് കരുതിയാൽ പോലും ഉറങ്ങാൻ പറ്റാറില്ല, അല്ലാത്ത ദിവസം മൂന്നാമത്തെ അലാറം കഴിഞ്ഞാലും എണീക്കാനും പറ്റാറില്ല. വല്ലാത്തൊരുതരം ജീവിതം തന്നെ. 
notes

നിന്നെ കണ്ടെത്തുവാൻ

2 February 2026

നീ മറന്നുപോയ
നിന്നെ കണ്ടെത്തുവാൻ
ശ്രമിക്കുക.

കാറ്റിന്റെ കരുത്തും,
കടലിന്റെ ആഴവുമുള്ള
നിന്നെ.

essay

Life Left App

20 January 2026
Life Left is a minimalist life reflection web app that helps users visualize how much of their life may still remain, based on their age, retirement plan, and expected lifespan.
essay

Default Apps 2025

30 December 2025
Earlier this year, I shared my default apps of 2023 here. This is the 2025 edition. The big change is that I’ve moved more into the Apple ecosystem, while most of the rest has stayed the same.
essay

ജീവിതം ഒരു മോണാലിസച്ചിരിയാണ്

3 December 2025
ഒറ്റമരപ്പെയ്ത്തിനു ശേഷം ഞാൻ വായിക്കുന്ന ദീപനിശാന്തിന്റെ മൂന്നാമത്തെ പുസ്തകമാണിത്. നേരത്തെ വായിച്ചിട്ടുള്ള പുസ്തകങ്ങളിൽ ഉള്ളതുപോലെയുള്ള എഴുത്തുകാരുടെ ഓർമ്മക്കുറിപ്പുകളാണ് ഇതും....
notes

നാടോടി

7 November 2025

നീല പോക്കറ്റിൽ
സൂര്യപ്രകാശവും,
കഥകൾ നിറഞ്ഞ
കണ്ണുകളും, കാറ്റിന്റെ
പുഞ്ചിരികളുമുള്ള
ഒരു നാടോടി കണക്കെ
ജീവിക്കുക.

notes

Start the Hugo server with your local IP

20 October 2025

I want to share my writings to my colleague thorugh my IP before publishing it. So here how I done it:

  • Get your IP using the command ipconfig from the terminal.
  • Go to your Hugo project’s root directory in your terminal.
  • Run the following command, replacing <YOUR_NETWORK_IP> with the IP address.
  • hugo server --bind 0.0.0.0 --baseUrl http://<YOUR_NETWORK_IP>:1313
  • The server will start, and the output should show the website is available at http://<YOUR_NETWORK_IP>:1313.
essay

ജോർജ്ജിയ, ഭാഗം 2 : പഴമയും പുതുമയും വീഞ്ഞ് നുകരുന്നയിടം

20 October 2025
ഞാനാ ഹോസ്റ്റലിൻ്റെ വാതുക്കൽ വന്നുനിന്നു. പച്ചയും ചുമപ്പും മഞ്ഞയും തുടങ്ങി പല നിറങ്ങൾ നിറഞ്ഞുനിന്ന വാതിൽ അടഞ്ഞു കിടന്നിരുന്നു....
essay

ജോർജ്ജിയ, ഭാഗം 1 : പവിഴദ്വീപിൽ നിന്നും വീഞ്ഞിൻ്റെ നാട്ടിലേക്ക്

17 October 2025
യാത്രകൾ എന്നുമെന്നെ ഭ്രമിപ്പിച്ചിരുന്നു. എങ്ങനെയാണ് യാത്രകളോടുള്ള ഇഷ്ടം മനസ്സിൽ കയറിക്കൂടിയതെന്ന് എനിക്കിപ്പോഴും അറിയില്ല. പക്ഷേ...
essay

ഒറ്റമരപ്പെയ്ത്ത്

15 October 2025
ഒന്നും വായിക്കാതെ മനസ്സ് വല്ലാതെ മുരടിച്ച് വരുന്നു. കുറെയായി, എന്തേലുമൊന്ന് ആർത്തിയോടെ വായിച്ച് തീർക്കണമെന്ന് കരുതിയിട്ട്. അപ്പോഴാണ് മരുഭൂമിയിലെ മഴ പോലെ മനോജേട്ടന്റെ വാട്സ്ആപ്പ് സ്റ്റാറ്റസിൽ...
essay

ചോദ്യമിതാണ്

24 September 2025
നിന്റെ കണ്ണുകളിലേക്ക് നോക്കിയിരിക്കെ നിന്നിലേക്ക് പരകായപ്രേവേശനം നടത്തുവാനും, നിമിഷാർദ്ധം കൊണ്ട് നിന്റെ നിശ്വാസങ്ങളുടെ ആഴമളക്കുവാനുമെനിക്ക് കഴിയും...
essay

മഴ പെയ്യുമ്പോൾ

27 August 2025
മഴ പെയ്യുമ്പോൾ വീട്ട് വരാന്തയിൽ വെറുതെയിരിക്കണം ഇടക്കിടെ കുട ചൂടി ഇറങ്ങി നടക്കണം. മഴ തോരുമ്പോൾ ചെടിയെല്ലാം ..
essay

Fav Quotes

24 August 2025
To be honest, I love beautiful and brilliant quotes. They can come from smart people, movies, or books. I don’t care where they come from...
notes

വിട പറഞ്ഞവർ

20 August 2025

വിട പറഞ്ഞവർ നാം
വിദൂരതയിലേക്ക്
നടന്നകന്നവർ നാം.

വിധിക്ക് വിധേയപ്പെടാൻ
വിധിക്കപ്പെട്ടവർ നാം,
വീണ്ടും കാണാതെ
മൃതിയിൽ വിസ്മൃതി
പൂകട്ടെ നാം.

notes

Software gardening and death

18 August 2025

I have came across the following article recently.

Software is a bit like this house plant: its wellbeing depends on the folks who constantly tend it. Without us around, it gradually erodes.

I used Google Orkut in the past and I loved it at that time. It was fun to send messages in the scrapbook, cool usernames, and enjoy all the other social media features that felt cool back then. But after the rise of Facebook and other giants, Google shut down Orkut. They sent us an email with a link to download our data archive and said goodbye. I still have those emails from Orkut, and when I read them recently, they gave me a nostalgic happiness.

What I realize now is that everything eventually comes to an end when the gardeners stop tending their gardens. We cannot take it for granted forever. Today we have access to some of the most amazing things in human history. We need to be grateful and enjoy the beauty of it. So keep on gardening, and cherish your fellow gardeners.

Article link

notes

നിലാവ്

18 August 2025

നിലാവ് വരുന്നപോൽ
ഒരു വൈകുന്നേരം
മരണമെന്നേ തേടി വരും.

വിട പറയുന്നതിന് മുൻപ്
ഒന്നുകൂടെ നമുക്ക്
മുറുകെ കെട്ടിപ്പിടിക്കാൻ
കാലം അവസരം തരട്ടെ

notes

Reborn

10 August 2025

I know I must
endure this suffering,
For there is no other way.
But I don’t know
how to bear the pain
The ache in my heart is real,
And it’s killing me
inch by inch.

I have lost the last shred of courage
Yet, beyond this pain,
I hope to remain,
reborn as Buddha again.

essay

Me and Music

7 August 2025
On weekend mornings to my evening walks, I am always with music. I have loved music from a very young age. I don’t even know when exactly I fell in love with it. Since my school days, we had a music system at home,..
essay

Lightbi Version 2

4 August 2025
Last week I released version 2 of Lightbi. I had been planning it for a very long time, but the time didn’t permit me until now.
essay

macOS and iOS 20 public beta impressions

26 July 2025
I installed macOS and iOS 26 public beta today. The main attraction in this update is the design change called Liquid Glass...
essay

Useful PL/SQL queries

20 July 2025
In this post, I’m sharing some handy PL/SQL queries that help with monitoring and maintaining Oracle databases...
essay

കാടെരിയുമ്പോൾ

14 July 2025
കാറ്റ് കാട്ടുതീയാകുമ്പോൾ, കൂട്ടം തെറ്റിപ്പോയവർക്ക് കൂടാകുക. ചിറകെരിഞ്ഞ് വീണവർക്ക് ചാഞ്ഞ് കിടക്കാനൊരു...
essay

കാലാന്തരം

11 July 2025
തോറ്റ് പോയിട്ടും പോരാട്ടം അവസാനിപ്പിക്കാത്തവർക്കു വേണ്ടി, ആൾക്കൂട്ടത്തിൽ ഒറ്റക്കായിപ്പോയിട്ടും. എല്ലാവരെയും ചേർത്ത് നിർത്തിയവർക്കു വേണ്ടി,...
notes

I don’t know why!

10 July 2025

Sometimes we don’t realise the beauty of something we created until someone recognises it.

Maybe we are too humble to acknowledge our work is as good as someone else’s, or maybe we don’t have enough confidence to take pride in something we created.

I don’t know why!

PS: These paintings were done by my wife, and yet she still believes she can’t draw.

Let me know your comments on the above. Thank you!

notes

Poet

7 July 2025

I am the wizard
who can make you dream,
fall in love,
dance in the rain,
find peace,
and enlighten you.

Yes, I am a poet.

notes

അമരന്മാർ

4 July 2025

നിങ്ങൾ മതങ്ങളിലേക്ക്
ചുരുങ്ങി മരിക്കുമ്പോൾ,
ഞങ്ങൾ മനുഷ്യരിലേക്ക്
പടർന്ന് അമരന്മാരാകും.

notes

തുടരും

4 July 2025

സമരസൂര്യൻ
അസ്തമച്ചോപ്പിൽ
അലിയുമ്പോൾ,

അയാൾ ഉയർത്തിയ
ആശയത്തിന് കീഴെ
നാമിനിയും പോരാട്ടം
തുടരും.

notes

NOT IN vs NOT EXISTS in PL/SQL

19 June 2025
SELECT *
FROM TABLE1 
WHERE ID NOT IN (
    SELECT ID
    FROM TABLE2
)

When I ran the above query I know the condition will give me the results, because the data exists in the TABLE1 which is not in TABLE2. But I didn’t go any results. I got surprised. After I a while I found out the issue.

So the reason is that ID column in the TABLE2 have null values. If any value of ID in the subquery is NULL, then the entire NOT IN clause fails to match anything. This is standard SQL behavior because NULL makes the whole comparison unknown.

Solution:

  1. You can use NOT NULL condition in the sub-query as below:
SELECT *
FROM TABLE1 
WHERE ID NOT IN (
    SELECT ID
    FROM TABLE2
    WHERE ID IS NOT NULL
)
  1. Use NOT EXISTS:
SELECT *
FROM TABLE1 T1
WHERE NOT EXISTS (
    SELECT 1
    FROM TABLE2 T2
    WHERE T1.ID = T2.ID
)

The NOT EXISTS will automatically handle null values and safer to use.

References

StackOverflow, Geeks for geeks

essay

Difference between React and ReactDOM

13 June 2025
React is a JavaScript library for building user interfaces. ReactDOM, on the other hand, is a library that provides an interface between React and the DOM...
notes

Good bye Georgia!

9 June 2025

Until next time, good bye Georgia! Thank you for filling my hands with memories and my heart with love and kindness. ♥️🇬🇪

notes

Whispering winds

9 June 2025

When the mountain smiles and the wind whispers to you, you’ll know you’re a mountain person.

notes

I'm not dreaming

8 June 2025

Don’t wake me, I’m not dreaming. 🇬🇪 🌉

notes

Mountains

7 June 2025

Mountains are mighty protectors, guardians of centuries-old tales. To hear their stories, you must bow in reverence. Then, the snow will smile upon you, and the trees will whisper their hidden truths. 🇬🇪 ⛰

notes

New kind of magic.

7 June 2025

Traveling is like reading a poem, every new path holds a new kind of magic. 🇬🇪✨

notes

ഏതോ തെരുവിലാണ് ഞാൻ

30 May 2025

ഏതോ തെരുവിലാണ് ഞാൻ. പൊടിപിടിച്ച ഓർമകളുടെ ബലത്തിൽ ഇന്നും വഴി തെറ്റാതെ നടക്കുന്നുവെന്ന് മാത്രം. മങ്ങിയ കാഴ്ചകളുടെ അപ്പുറത്താണ് പ്രകാശമെന്ന് സ്വയം പ്രതീക്ഷയോടെ മുന്നോട്ട് നടക്കുമ്പോളും ചുറ്റുമുള്ള എല്ലാം ഞാൻ ഇഷ്ട്ടപ്പെടുന്നു.

notes

Unhang Windows PC

26 May 2025

I often found that Ctrl+Alt+Delete unhangs the Windows PC. I googled why?

The nutshell answer is : Ctrl+Alt+Delete is a secure attention sequence (SAS) triggers a system interrupt, effectively forcing the computer to respond. This is directly handled by the Windows operating system kernel. That means it can bypass most of the stuff that’s currently running (including frozen apps or even some parts of the graphical interface).

Cool to know this.

notes

To my younger self

26 May 2025

Dear younger me,

I know you
somewhere from the past.
You made mistakes,
your heart is broken,
and you’ve lost your way.

I want to tell you,
it’s okay to be wounded
and scared.
You will get a chance
to heal,
and you will find
the courage to get up again.

Until then,
keep going.

essay

I 'll read it

25 May 2025
I’ve always loved reading and surfing the web. These web-surfing adventures led me to beautiful sites that continually feed my curiosity. I’ve learned so much from these personal websites —honestly, they’re what inspired me to write and create this site.
essay

Featured posts in Hugo

24 May 2025
Today, I updated the about page to display featured blog sections dynamically using front matter tags. This replaces the previous hardcoded method for a more flexible setup.
notes

Lost in the way to home

24 May 2025

We are all lost in some way or another
on the road to home.
Some are still searching.
Some fall apart along the path.
Only a few ever find it.

I hope you do.

essay

യാത്രകൾ

24 May 2025
യാത്രകൾ അവസാനിച്ചാലും അവയുടെ ഓർമ്മകൾ അവസാനിക്കില്ല. മഴ തോരുമ്പോളും നിറഞ്ഞുപെയ്യുന്ന മരങ്ങളെപോലെ അവയിങ്ങനെ പെയ്ത്‌കൊണ്ടേയിരിക്കും...
notes

Have clarity

22 May 2025

The main issue in life is not having clarity about what you want. Without clarity, you can’t focus on the things that matter.

Without focus, you will be distracted by countless things and the noise around you. These distractions will affect every decision you make. Over time, this can cause you to lose yourself and your dreams.

To achieve your dreams, you need laser-sharp focus. But focus begins with clarity. First, define what your dreams are. A simple way to start is by writing them down.

Create a clear, intentional list of what you want to achieve in life. Then, commit to focusing only on what truly matters.

notes

Diffdiff and Emoji Kitchen

19 May 2025

I just found two tools:

Thunder and Unicorn mixed by Emoji Kitchen

notes

Google AI Overview

18 May 2025

I don’t search for things as much as I used to. These days, I just go straight to ChatGPT. I don’t feel like Googling and clicking through multiple pages to find the best answer. I ask ChatGPT, and most of the time, the results are satisfying.

I’ve heard that traditional Google searches are declining. But now, they’ve introduced AI Overviews at the top of their results. I think it’s a good idea—because we get a quick summary of what we’re looking for, along with links to other websites. Yes, I think it’s a good move.

Google AI Overview for my theme Lightbi

notes

Tequila

18 May 2025

He thought tequila
gave him the most
sudden ignition,
until he kissed her
for the first time.

notes

The lights

16 May 2025

Wandering at night brings peace—and pictures like this.

notes

Custom folder Icons with Material Icon Theme

12 May 2025

Install Material Icon Theme

In settings.json:

"material-icon-theme.folders.associations": {
  "folder-name": "Home"
}

folder-name is the folder name and Home is the icon. You can find the files and folders icons in here.

essay

My Home

12 May 2025
I often wonder why I’m too lazy to post my writings on social media, even though, somehow, I still do it. Also, after checking the posts for a while, I start to feel tired. Actually, I don’t have Instagram, YouTube, or Twitter on my phone...
essay

Jatayu Earth Center

11 May 2025
In December 2023, I went to view the world’s largest bird sculpture in the world, which is in Jatayu Earth Center. Yes, It’s in Kerala and near to my home town.
notes

Sticky footers

11 May 2025

To make a sticky footer in the Bootstrap you can use the below.

<body class="d-flex flex-column min-vh-100">
  <main class="flex-fill">
    <!-- Your page content here -->
  </main>

  <footer class="bg-dark text-white text-center py-2">
    <!-- Your footer content here -->
  </footer>
</body>
  • d-flex flex-column min-vh-100 on : makes the body fill the viewport and act like a vertical Flexbox container.
  • flex-fill on : makes the content area take up all available vertical space, pushing the footer down.
  • footer: stays at the bottom even with short content.
notes

You can never die

11 May 2025

If a writer falls in love with you, you can never die. ― Mik Everett

You can reread the above quote to this: “If the person dear to you is an artist, you can never die.

Yes, because they will carry you in their art pieces. If they are a writer, they will hide you between the lines of their favorite poems or stories. If they are a photographer, you will be in their photos forever. If they are a musician, they will blend you into the rhythm. If they are a painter, they will add you into the corners of their canvas. And the list goes on.

You will be forever engraved in their art, sometimes in plain sight, sometimes hidden. When others see the art, the artist will see you.

essay

Redesign

10 May 2025
At the end of last year, I decided to pause modifications on this website for a while but the future is unpredictable.
notes

Upgrade Hugo

10 May 2025

To install or update Hugo extended using HomeBrew, you can use the below,

Install the extended version:

brew install hugo

Or if you already have it and just want to upgrade:

brew upgrade hugo

Check the version to using hugo version.

notes

Modernization of Apps

9 May 2025

One of the main topics discussed in the seminar I attended was modernizing legacy applications.

Legacy applications are typically monolithic in nature, making it difficult to scale or integrate new features quickly. The monolithic apps ruled the software industry for a very longer time, but now people are moving (already many moved) to its great alternative, the microservice architecture.

I’ve come across monolithic applications that are tightly coupled with environments like Oracle or .NET, where growth can become a painful process. Over time, these systems tend to become slow, expensive to maintain, and resistant to change.

Monolithic and microservice architecture

notes

The Avenues

9 May 2025

The expanded Avenues Mall is a beautiful place to explore. These photos are from the sea-facing area.

notes

Unknown universe

9 May 2025

We will meet again
in an unknown universe,
where I am the wizard,
and you, my witch
where I will cast
the most divine spell:
“Tvayi prema karomi.”

Beneath the raining stars,
We will fall in love again,
after a million lifetimes.

notes

Office plants

8 May 2025

After my eyes grew tired, I stepped outside the office to relax. I stood there for a while and noticed these plants growing in the middle of the desert and they brought me a sense of peace.

essay

To PostgreSQL

8 May 2025
Earlier this week, I went to a seminar on Amazon AWS conducted by one of their partner organizations.
notes

Hide details in the mobile screen with Bootstrap

7 May 2025

In the feed page I need to hide the dotted line in the mobile screens. So here you can see how its can be done in Bootstrap.

  • d-none d-md-flex: shows only on md and up (desktop/tablet)

  • d-block d-md-none: shows only on mobile

  • text-nowrap: prevents text from wrapping

<div class="mb-3">
  <!-- Desktop layout -->
  <div class="d-none d-md-flex align-items-center">
    <a href="{{ .Permalink }}" class="text-decoration-none fw-medium me-2 text-nowrap">
      Sample heading
    </a>
    <div class="flex-grow-1 border-bottom dotted-line mx-2"></div>
    <p class="text-muted small text-nowrap mb-0">Date</p>
  </div>

  <!-- Mobile layout -->
  <div class="d-block d-md-none">
    <a href="{{ .Permalink }}" class="text-decoration-none fw-medium d-block mb-1">
      Sample heading
    </a>
    <p class="text-muted small mb-0">Date</p>
  </div>
</div>
notes

SQLite is the most deployed and most used database

6 May 2025

Avinash is sharing some cool facts about SQLite.

  • SQLite is the most deployed and most used database. There are over one trillion (1000000000000 or a million million) SQLite databases in active use.

  • SQLite is likely used more than all other database engines combined. Billions and billions of copies of SQLite exist in the wild. It’s everywhere.

These are mind blowing, have a look into that.

Article link

notes

Thinking framework

6 May 2025

Framework for responding to a conversation that might have hurt you.

  1. Analyze what they said: Reflect on the words and tone used.
  2. Understand the meaning: Consider the intent behind the message.
  3. Consider the reason: Think about why they might have said this.
  4. Respond clearly and calmly: Share your perspective without escalation.
  5. Show kindness and empathy: Approach the entire conversation with patience and compassion.
essay

Why Shelf

6 May 2025
Update A few days later, I decided to combine the Shelf posts with the Desk section. I’ve realized that, for now, I don’t have much time to invest in maintaining a separate section. Yes, only time knows the future.
notes

Dolce far niente

3 May 2025

I don’t want a thing
on Saturday mornings
just my favorite songs
playing low.

I don’t want to leave the bed,
just stay there,
holding you tightly,
all day long.

Let me sit cross legged,
tea in one hand,
and you in the other
sipping both,
slowly.

notes

The night is young

2 May 2025

It’s 10 p.m., I’m in bed
watching reels, and I’m bored.
Then the friends texted me,
“Let’s go for a walk,” and I said yes.

Now it’s 2:30 a.m., we’re still
roaming the streets,
Endless conversations
about nothing,
and everything under the sun.
The talks that make time feel unreal.

It’s hard to say goodbye
when we’re having
chocolate ice cream at midnight,
and laughing loud in the
yellow lighted roads.

We keep walking, still talking,
as someone says,
“The night is young,
and we have miles to go
before we sleep.”

notes

We will come for you.

23 April 2025

Today, you murdered the innocent.
Those who were sharing meals with their
loved ones, those who were living
their dreams.

None of them had wronged you.
They had done nothing.
And still, you killed them
without mercy,
because of your f*cking terrorism.

We will let this haunt us, always,
We will carry this wound forever,
And we will not forgive you.

But remember this,
we will come for you.
And yes, you will pay the blood price,
for every life you took.

Until then, we stand together.
As we always have.
As we always will.

notes

Italian movie

21 April 2025

It’s just like a colorful movie,
where we wander
through an old Italian city.

In the morning,
we’ll share a Cornetto and cappuccino,
then ride an old motorcycle
through sunlit alleys,
keeping our hearts close.

At noon,
I’ll take your hand
and run with you through Naples,
where love lives forever.

In the evening,
under the golden hush of dusk,
I’ll wrap my arms around your neck
and kiss you, whispering:
“Ti amo con tutta l’anima.”

Here, I want us to live
like a timeless poem—
full of love, light, and magic.

notes

Saturday

19 April 2025

Saturday evenings be like.

notes

Sun

17 April 2025

I want to be the sun, radiating my own light,
not the moon, borrowing its glow.

notes

I miss you

16 April 2025

O baby, I miss you
in the soft, slow mornings,
in the hush of lazy noon,
and in the quiet of calm evenings.

You know I feel alone here.
I just want to come home
to run into your arms,
and kiss you like wildfire.

Let’s share a cup of tea,
under our fairy lights,
like old days.
Then we’ll
become one, like a prayer.

notes

Kiss

15 April 2025

On good days,
I want to kiss you madly.
And on bad days,
I want to kiss you deeply.

notes

Kisser

15 April 2025

I want to be a good kisser,
that’s why I’m trying
every part of you.

notes

Windy day

15 April 2025

It’s very windy today. The air is full of dust, and visibility is poor.

essay

ജടായു

14 April 2025
നീണ്ട പ്രയാണങ്ങളിൽ ചിറക് ഇടറുമ്പോളൊക്കെ, ജടായു, ഞാൻ നിന്നെയോർക്കും.
notes

പാരിസ്

12 April 2025

പാരിസിലെ രാത്രി നക്ഷത്രങ്ങൾ
അവസാനിക്കാത്ത കാലത്തോളം
നമ്മുടെ പ്രണയമുദ്രകൾ
മായാതിരിക്കട്ടെ.

notes

വൈകുന്നേരങ്ങളിൽ

12 April 2025

തനിച്ചായ വൈകുന്നേരങ്ങളിൽ
നിങ്ങൾ വരുമെന്നറിയുന്ന
നിമിഷത്തിൽ,
ഉള്ളിലെ മരുഭൂമിയിൽ
മഴ പെയ്‌തിറങ്ങാറുണ്ട്.

notes

മായാജാലക്കാരൻ

10 April 2025

പ്രിയപ്പെട്ടതൊക്കെയും
വരികളിലേക്ക്
മായാജാലക്കാരനാണ് ഞാൻ.

notes

Delhi

9 April 2025

Somewhere in the Delhi. The city where chaos and calmness meet each other in the metro station.

notes

Happy Birthday

3 April 2025
essay

Dear time, please tell me how.

2 April 2025
Do I think I have enough time for everything? I'm not sure. But one thing I do know is that life is finite, and my time here is limited....
notes

ചുംബനം

2 April 2025

ഇനി നാം കാണുമ്പോൾ
ചുംബനം കൊണ്ട്
ചുണ്ടുകൾ കോർക്കാം നമുക്ക്.

notes

നിമിഷം

1 April 2025

നിങ്ങളുടെ പ്രണയത്തിൻ്റെ ഏറ്റവും മനോഹരമായ നിമിഷമേതാണ് ?!

നിൻ്റെ ചിരി ആദ്യമായി കണ്ട നിമിഷം.

അയാൾ മകളോട് ഉത്തരം പറഞ്ഞു.

notes

Don't link my writings with my life.

31 March 2025

I hate when people connect my life to my writings.

I’m just a person who writes, the only thing that should matter is what I write.

notes

തോറ്റുപോയവർ

30 March 2025

വിജയിച്ചവരുടെ ഈ ലോകത്ത്,
തോറ്റുപോയ മനുഷ്യർക്കൊപ്പമാണ്
നാം എല്ലാകാലവും നിലനിൽക്കേണ്ടത്.

അത് ക്രിക്കറ്റ് കളിയിലായാലും
ജീവിതത്തിലായാലും.

notes

Bahrain Bay

7 March 2025

In night we went to Bahrain bay and tool some photos. Here are the few snaps.

notes

Good old days

12 January 2025

Can I go back to the good old days
just for one last time?

To smile without the weight of pain,
and breathe in the calm of peace.
To make myself believe that chaos
and suffering no longer lingers within me.

To live a life unburdened by curses,
to feel blessed-
the way I always deserved to be.

Can I go back to the time
when everything seemed beautiful,
even if only in my dreams,
just one more last time?

notes

To extract the value of a tag from an XML-like string in PL/SQL

12 January 2025

To extract the value of a tag from the given XML-like string in PL/SQL, you can use the EXTRACTVALUE function or XMLTABLE for XML processing.

Example Using EXTRACTVALUE

DECLARE
    xml_data CLOB := '<Status>200</Status><Message>Success</Message>';
    l_message VARCHAR2(50);
BEGIN
    -- Extract the FunctionalReferenceID value
    l_message := EXTRACTVALUE(XMLTYPE('<root>' || xml_data || '</root>'), '/root/Message');
    
    -- Print the value
    DBMS_OUTPUT.PUT_LINE('FunctionalReferenceID: ' || l_message);
END;

Example Using XMLTABLE

DECLARE
    xml_data CLOB := '<Status>200</Status><Message>Success</Message>';
    l_message VARCHAR2(50);
BEGIN
    -- Use XMLTABLE to extract the Message
    SELECT value
    INTO l_message
    FROM XMLTABLE(
        '/root/Message'
        PASSING XMLTYPE('<root>' || xml_data || '</root>')
        COLUMNS value VARCHAR2(50) PATH '.'
    );

    -- Print the value
    DBMS_OUTPUT.PUT_LINE('Message: ' || l_message);
END;

EXTRACTVALUE, XMLTABLE

notes

Phoenix

11 January 2025

After all the chaos,
I will be reborn from the ashes
and soar high to the moon,
like a phoenix from a fairy tale.

I hope you’ll watch me
rise, just like the old days.

notes

The Night

27 December 2024

Sometimes, the night is a good time to hide yourself from the rest of the world. It gives a sense of relief, allowing you to be exactly as you want to be.

In the middle of the dark night you become your true self.

essay

Am I asking the right questions?

21 December 2024
I want to ensure I'm asking myself meaningful questions that encourage self-awareness and guide me to the better life.....
essay

The future

14 December 2024
This is my personal website, and I want to add a lot of things to it. Recently, I have been making many changes to the website and have developed an obsession with adding new features or improvements daily.
essay

Who am I?!

7 December 2024
This is the question I’ve asked myself the most in life. Yet, I’ve never been able to find a definitive answer...
notes

The promise

6 December 2024

I know that one day I will collapse,
And hopefully, you won’t witness it.
I will make sure that, until your last breath,
I’ll stay strong and keep us stronger.

That’s the promise I made—to hold you
Forever.

notes

It's you

5 December 2024

You are the most precious gift
you could ever wish for.
You are the light that guides you
through the darkest nights.
You are the Santa
you’ve always dreamed of.
You are the Christmas
you’ve been waiting for.

essay

Understanding Suspense

2 December 2024
React Suspense comes handy when you want to show an indication to user that something is loading in your app. Loader is the simplest example for a Suspense component. Let’s deep dive into the details of Suspense.
notes

Varchar datatype limits

30 November 2024

For NVARCHAR2 and VARCHAR2 maximum size is 4000 bytes, or 32767 bytes if the MAX_STRING_SIZE initialization parameter is set to EXTENDED. This is useful you have to allocate more data to a variable.

You can run the below command to view the parameter.

show parameter MAX_STRING_SIZE;
References

Oracle Doc, Max string size

essay

33 for 33

29 November 2024
Today, I turned 33. Over the years, life has taught me countless lessons, some easy, some hard. As I look ahead, I hope for many more opportunities to learn and grow...
notes

Hope

28 November 2024

To my daughter,

In the midst of the war,
Amid the heart-aching pain,
Through the windy nights,
On my darkest days,
You are my hope.

essay

Hosting your Hugo site on Netlify

23 November 2024
When I have built this website, I had checked for a free static host solution which is easy to use and maintain. After a little research I landed on Netlify...
notes

പ്രകാശഗോപുരം

21 November 2024

ഇരുട്ടിന്റെ കയങ്ങളിലും
ആഴിത്തിരമാലയുടെ ഉലച്ചിലിലും
പതറാതെ നീ യാത്ര തുടരുക.

മറുകരയിൽ നിന്നെയും കാത്ത്
ഒരു പ്രകാശഗോപുരം കണക്കെ
ഞാൻ കാത്തിരിപ്പുണ്ട്.

notes

Writing

20 November 2024

I want to write something every day. I don’t know what to write, but I love to write.

I don’t want to write for publishing; I want to write for the sake of writing.

I think I can write about myself, the thoughts in my head, or the things around me.

So, I am writing here to feel alive.

essay

Hugo image gallery shortcode

18 November 2024
Here’s a custom Hugo shortcode that creates an image gallery in a masonry style using GLightbox. This approach will display images from a specified folder in a masonry layout, and each image will open in a lightbox when clicked.
notes

Light is coming

18 November 2024

To those who are in dark: Hold on, light is coming—and it’s within you.

essay

That’s because I’m evolving

16 November 2024
As I continue to grow, I'm evolving in every part of my life. I'm constantly reading, learning, experiencing new things, with that my ideologies and opinions have evolved over time...
notes

Bahrain Airshow

15 November 2024

Went to the Bahrain Airshow with Gino, and friends. It was an amazing experience filled with excitement. Witnessed incredible performances by the Indian Air Force Sarang Helicopter team, the U.S. Fighting Falcon, the Pakistan Air Force Thunder demo, and the Saudi Hawks. The Saudi fighter team’s display was truly spectacular. Had the chance to meet U.S. pilots also.

Explored a helicopter for the first time, checking off a bucket list item! A day filled with awe, adventure, and unforgettable memories.

notes

ഓർമ്മകൾ

15 November 2024

എല്ലാ യാത്രകൾക്ക് ശേഷവും
അവസാനിക്കുന്നത് മനോഹരമായ
ഓർമ്മകളാണ്.
നിങ്ങൾ, നിറങ്ങൾ, ചിറകുകൾ
എല്ലാമൊരു മധുരസ്വപ്നം പോലെ
ഭംഗിയുള്ളത്.

നുകരട്ടെ ഞാൻ ആവോളം,
ഇതെല്ലാം ആസ്വദിക്കാൻ
കാലമിനിയും അവസരം തരട്ടെ.

essay

View posts grouped by month in Hugo

14 November 2024
A few months ago, I wrote a post on creating a feed page to list all posts on my Hugo website in a card format with pagination. Even though I am able to view the full posts...
notes

Winder rides

14 November 2024

Today is throwback thursday and here is beautiful view of Bahrain in the winter.

notes

Moment

13 November 2024

I want to live in this moment because it’s all I truly own. Once it’s gone, it’s gone forever.

notes

PL/SQL commands to view the table details

13 November 2024

In Oracle PL/SQL, you can use the following commands to view table details:

  1. DESCRIBE or DESC

    DESC table_name;
    

    Displays columns, data types, and constraints.

  2. USER_TAB_COLUMNS

    SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH
    FROM USER_TAB_COLUMNS
    WHERE TABLE_NAME = 'TABLE_NAME';
    

    Shows details about columns for tables owned by the user.

  3. ALL_TAB_COLUMNS

    SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH
    FROM ALL_TAB_COLUMNS
    WHERE TABLE_NAME = 'TABLE_NAME';
    

    Provides column information for tables accessible to the user.

  4. DBMS_METADATA.GET_DDL

    SELECT DBMS_METADATA.GET_DDL('TABLE', 'TABLE_NAME') FROM DUAL;
    

    Displays the CREATE TABLE statement for table structure details.

To view constraints on the table, you can check here.

notes

Use Flashback Query

11 November 2024

If your Oracle database has Flashback enabled, you can query past versions of data within a specified retention period. Here’s how to use Flashback to retrieve a prior state of data:

SELECT * 
FROM your_table AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '5' MINUTE) 
WHERE your_condition;

Replace SYSTIMESTAMP - INTERVAL '5' MINUTE with the timestamp or interval that reflects when the data was last known to be in its old state.

Note: Flashback must be enabled, and it’s only available within the Flashback retention window, which depends on your database configuration.

References

Killians Bytes

essay

Favourite movie quotes

9 November 2024
I’m a huge fan of good movies, and I’ve always loved great dialogues. So, I thought I’d compile some of my favorite movie lines into one post and share them here...
notes

How to break columns in Bootstrap

3 November 2024

Breaking columns to a new line in flexbox requires a small hack: add an element with width: 100% wherever you want to wrap your columns to a new line.

<div class="container text-center">
  <div class="row">
    <div class="col-6 col-sm-3">.col-6 .col-sm-3</div>
    <div class="col-6 col-sm-3">.col-6 .col-sm-3</div>

    <!-- Force next columns to break to new line -->
    <div class="w-100"></div>

    <div class="col-6 col-sm-3">.col-6 .col-sm-3</div>
    <div class="col-6 col-sm-3">.col-6 .col-sm-3</div>
  </div>
</div>

You can also apply this break at specific breakpoints with our responsive display utilities.

<div class="container text-center">
  <div class="row">
    <div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
    <div class="col-6 col-sm-4">.col-6 .col-sm-4</div>

    <!-- Force next columns to break to new line at md breakpoint and up -->
    <div class="w-100 d-none d-md-block"></div>

    <div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
    <div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
  </div>
</div>
References

Bootstrap Doc

notes

സ്നേഹം?

2 November 2024

എന്താണ് സ്നേഹം?

നിനക്ക് വേദനിക്കുമ്പോളെല്ലാം
എനിക്കും വേദനിക്കുന്നത്.

notes

Salmaniya water garden park

1 November 2024
Salmaniya, Bahrain

Salmaniya, Bahrain

essay

Things that make me happy

1 November 2024
I came across this post by Kev Quirk, where he shares the things that bring him happy. Personally, I believe that happiness is a skill we can train and develop over time....
notes

To generate random value in PL/SQL

30 October 2024

To update a column with a random value in PL/SQL, you can use the DBMS_RANDOM package, which provides functions for generating random numbers or strings.

To update random number

BEGIN
    UPDATE employees
    SET salary = ROUND(DBMS_RANDOM.VALUE(100, 500));
    COMMIT;
END;
  • DBMS_RANDOM.VALUE(100, 500) generates a random decimal number between 100 and 500.
  • ROUND is used to convert the decimal value to an integer.

To update random string

BEGIN
   UPDATE employees
    SET password = DBMS_RANDOM.STRING('x', 8);  -- 'x' specifies alphanumeric characters
    COMMIT;
END;
  • DBMS_RANDOM.STRING('x', 8) generates an 8-character alphanumeric string.
  • ‘x’ specifies alphanumeric characters (letters and numbers). Other options include ‘a’ for alphabets and ‘u’ for uppercase only.
essay

My plants

28 October 2024
I love plants and have a few in my flat. I want to create a list of all the plants I've ever had, so I'm sharing photos of them here.
notes

വഴിയമ്പലങ്ങൾ

25 October 2024

ഹൃദയത്തിൽ വഴിയമ്പലങ്ങൾ കണക്കെ
ഇടങ്ങൾ ഉണ്ടായിരിക്കണം.
കോരിച്ചൊരിയുന്ന മഴയത്ത് ഓടിക്കയറാനും
ഒരു പുലരിയിൽ വിട പറയാതെ
യാത്ര തുടങ്ങാനും സാധിക്കുന്ന
മനോഹരയിടങ്ങൾ.

notes

Migrating my posts from social media

23 October 2024

I want to migrate my favorite memories from various social media platforms to this blog. I’m not sure it will work, but I still want to give it a try because I love the idea of having all my favorite things in one place.

Hopefully, I can do it gradually over time.

Update on 27 Oct: I already started migrating my posts from various social medias. Its a tedious task, but I am loving it.

notes

My plants and my poems

23 October 2024

My plants and my poems.

notes

PL/SQL MINUS Operator

23 October 2024

The PL/SQL MINUS operator returns all rows from the first query that are not present in the second query. Each SELECT statement defines a dataset, and the MINUS operator retrieves all records from the first dataset, excluding any that also appear in the second dataset.

select stock_id, stock_name
from stock_master
where active = 'Y'

minus

select stock_poid, stock_desc
from stock_ledger
where transaction_date > '01-JAN-24'
References

Tech on the net

essay

Basic rules for life

20 October 2024
I believe having a set of personal rules can lead to a more peaceful and productive life. After diving deep into self-help material, I’ve crafted a list of principles I want to follow daily.
notes

My winter rides

20 October 2024

I like to ride by bicycle in the winter mornings. The long ride in the morning gives me a sense of happiness.

PS: This is my brother’s bicycle which I borrowed for few weeks.

notes

Travel far enough, you meet yourself

18 October 2024

“Travel far enough, you meet yourself.” ― David Mitchell

Manali, Himachal Pradesh, India

Manali, Himachal Pradesh, India

notes

Dream

16 October 2024

I want to stay in the dream from the night we met. It’s the wildest fantasy I’ve ever had. Can we meet there again? Just to kiss you one last time, and hold you once more after a million embraces.

notes

Slash pages in Hugo

16 October 2024

In Hugo, creating different slash pages (like /about/, /uses/, etc.) involves creating specific content files for each page and customizing templates as needed.

  • Create individual markdown files for each slash page under content/.
    If you want to create an /about/ page in your blog, add a markdown page with below front matter in the content/ page.
//content/about.md
---
title: "About"
date: 2024-10-16
---

This is the About page content.
  • Optionally create a template for the page.
    Hugo uses the single.html template from the layouts/_default/ folder to render pages by default. However, you can create custom templates in the layouts/page/ folder to format specific pages as needed.
//layouts/page/about.html

<h1>{{ .Title }}</h1>
<div class="content">
  {{ .Content }}
</div>

You can check my slash pages like uses, credits, and changelog.

References

Hugo Docs

notes

Hugo Troubleshooting

14 October 2024

Hugo is fast, but ineffecinet templates can make it slower. For checking the performance you can use the below commands.

  • Use hugo --logLevel debug to display debug information, warning, and error message.

  • Use hugo --templateMetrics to check for slow templates. This will show the time it takes to render each template.

  • Use hugo --gc (garbage collection) to clean up unused files, which might help reduce build time.

  • Use debug.Timer to determine the execution time of a block of code. And use the hugo --logLevel info info command line flag when you build the site.

{{ $t := debug.Timer "TestSqrt" }}
{{ range seq 2000 }}
  {{ $f := math.Sqrt . }}
{{ end }}
{{ $t.Stop }}
References

Hugo Docs

notes

Walking

14 October 2024

Walking brings clarity to your thoughts.

essay

About this digital garden

8 October 2024
This website is where I document and share pieces of my life my thoughts, photos, code snippets, and notes collected along the way...
notes

Answers

7 October 2024

Create your own answers.

notes

Write it down

5 October 2024

By writing down your problems, you’ll be able to see the solutions clearly.

essay

Understanding useRef

2 October 2024
useRef is a powerful React Hook that allows you to create and manage mutable references that persist between renders, Unlike state, changing the value of a useRef object does not trigger a re-render...
essay

പ്രകാശഗോപുരങ്ങൾ

23 September 2024
മനോഹരമായ വൈകുന്നേരമൊരു കവിതയെഴുതിയാലോന്ന് തോന്നി. ഓർമ്മകളുടെ മഴപെയ്ത്തിൽ സദാ നനഞ്ഞ് നിൽക്കുന്നത് കൊണ്ട് നിങ്ങളെക്കുറിച്ച് എഴുതാമെന്നു കരുതി.
notes

ഭ്രമണം

13 September 2024

പ്രകാശത്തിന്റെ പകലിൽ
മഞ്ഞവെളിച്ചങ്ങളുടെ ഇരുട്ടിൽ
ഓർമ്മകളുടെ പെയ്ത്തിൽ
നിശ്വാസങ്ങളുടെ ഇടന്നേരങ്ങളിൽ

നിങ്ങളിലാണ് ഞാൻ
ഭ്രമണം ചെയ്യുന്നത്.

notes

Higher order functions

20 August 2024

A higher order function is a function that takes one or more functions as arguments, or returns a function as its result.

These functions are powerful because they allow you to abstract and compose operations in a flexible and reusable way. They are a fundamental concept in functional programming.

Common examples of higher order functions are .map(), .filter(), and reducer().

.map(): Takes a function as an argument and applies it to each element in an array, returning a new array with the results.

const numbers = [1, 2, 3, 4];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8]
References

Namaste JS, FreeCodeCamp

essay

Tiny React Apps

15 August 2024
This is a collection of tiny apps built with React, designed to explore and learn React along with its associated libraries. Each project serves as a hands-on experiment to try out new features and deepen understanding of the React ecosystem.
notes

Scar

28 June 2024

There’s a scar etched on my heart,
Forged by love from ages past.
Yet it makes me brave in the battle,
Brings hope amidst despair,
And guides me forward.

And I want you to know this:
Love is the wound where light flows in.

notes

Thank you for being my magic

17 June 2024

Can we stay in the magic forever? The magic lives in the night we loved each other so much and danced beneath the Mediterranean skies. Yes, the kiss, the stars, and you, everything seemed magical to me.

Thank you for being my magic.

essay

മരണത്തിന്റെ മണം

17 June 2024
ചില വൈകുന്നേരങ്ങളിൽ ഞാൻ മരണത്തിന്റെ മണമുള്ള ഇടനാഴികളിൽ ചെന്ന് പെടാറുണ്ട്...
notes

വഴികാട്ടിയാലുമെന്നെ

9 June 2024

നക്ഷത്രങ്ങൾ നിങ്ങൾ
ഇരുട്ടിൽ ഞാൻ
വഴികാട്ടിയാലുമെന്നെ.

notes

I'll meet you

8 June 2024

I’ll meet you
In the space between darkness and light,
where everything feels divine.

And there, I’ll kiss you
like the very first time,
even after a million times.

essay

Understanding useCallback

5 June 2024
I hope you know what is useMemo and understood that it caches the values between re-renders. `useCallback` is similar to this and it caches a function instead of values...
essay

React Notebook

2 June 2024
An online handbook about React that will cover all the basic topics. Unlike a physical handbook, this online book will evolve over time as I continue to learn and grow.
essay

Understanding useMemo

1 June 2024
React ensures your user interface stays in sync with the application state by using a technique called re-rendering. During re-renders, React compares the Virtual DOMs and updates the necessary parts of the UI. This process is known as React Reconciliation...
essay

Notes about Redux

20 May 2024
Redux is a JavaScript library that can be used with various JavaScript frameworks, including React, Angular, Vue, and Vanilla JS. It serves as a state management tool for handling cross-component or app-wide state.
notes

Types of states

19 May 2024

Below are the different types of states that can exist within an application. There are three main types:

1. Local State

Local state pertains to a single component. An example of this would be listening to user input in a field or toggling a “show more details” button. Typically, local state is managed within the component using useState or useReducer.

2. Cross-Component State

Cross-component state impacts multiple components. For instance, managing the open/closed state of a modal overlay. While this can also be managed using useState or useReducer, it often involves passing state between components via props drilling.

3. App-Wide State

App-wide state influences the entire application, such as themes or user authentication status. Similar to cross-component state, this can be managed using useState or useReducer, albeit with the assistance of props drilling.

essay

How to deploy React app in Firebase

6 May 2024
A React Single Page Application (SPA) is essentially a static website and can be easily hosted using platforms like Firebase or Netlify.
notes

Handling errors in LISTAGG

3 May 2024

The LISTAGG analytic function, introduced in Oracle 11g Release 2, greatly simplifies string aggregations within SQL queries.

SELECT pid, LISTAGG(ColumnName, ' ' ) WITHIN GROUP (ORDER BY seq) AS ColumnName
FROM B GROUP BY pid;

However, if the output of the above query exceeds 4000 characters, it triggers an error, specifically ORA-01489, indicating that the result of string concatenation is too long.

To address this limitation, Oracle Database Release 2 (12.2) enhanced LISTAGG with the ability to handle overflow errors gracefully, as demonstrated below:

SELECT pid, LISTAGG(ColumnName, ' ' ON OVERFLOW TRUNCATE ) WITHIN GROUP (ORDER BY seq) AS ColumnName
FROM B GROUP BY pid;

In this updated syntax, the output is restricted to 4000 characters, preventing the ORA-01489 error from being raised.

The ON OVERFLOW clause offers several options to manage overflow situations:

  • ON OVERFLOW ERROR: This is the default behavior, triggering an error if the result overflows.
  • ON OVERFLOW TRUNCATE 'StringYouLike': Appends ‘StringYouLike(Count)’ at the end of the truncated string.
  • ON OVERFLOW TRUNCATE '': Displays the first 4000 characters without any additional terminating string.
  • ON OVERFLOW TRUNCATE WITH COUNT: Appends the total character count at the end, for example, ‘…(5512)’.
References

Stack Overflow.

notes

My magic

10 April 2024

I’ve always believed in magic,
and I felt it the first time I saw you.

essay

Smart words from smart people

4 April 2024
A few smart things I've read lately and stuck in my head...
essay

Understanding React custom Hooks

2 April 2024
In React there are several built-in Hooks like `useState`, `useEffect`, and `useContext`. Sometime you need to create your own Hooks for specific purpose like checking user session, fetching data, or showing notifications...
notes

Hope

21 March 2024

Baby, I am in love with the
sparks inside you.
Can I call it hope?

Maybe it’s you, or myself.
I’m not sure
maybe it’s both of us.

But I know it’s the
angel we dreamed of
for centuries.

Can we call it hope?

essay

Understanding React Context

6 March 2024
Traditionally, you pass information from a parent component to child component via props in React. But data passing through this props drilling can make your code verbose and inconvenient if you have more components in the middle, or if many components in your app need the same information.
notes

Session and token authentication

3 March 2024

Session and token authentication methods are used by the server to verify the client request is authenticated or not.

Session Authentication

Session-based authentication is an example of stateful authentication, which involves storing user authentication data on the server. With this method, when a user logs into a website, the server creates a small file that stores user information such as a unique session ID, login time, expiration time, and other relevant data. This file is stored in the database or in-memory cache. This session ID is then sent back to the client and stored in the client’s browser as a cookie. For subsequent requests, this cookie is passed back to the server. This allows the server to verify the session ID and provide a response based on the current state.

This method is easy to use, as cookies are natively supported by browsers, so no additional JavaScript is needed. But when the application grows decoupling the frontend from the backend becomes essential. Session-based authentication can be limiting in this regard.

Token Authentication

Instead of relying on server-side sessions, token-based authentication uses tokens and it is an example of stateless authentication. When user log in, the server create a token (usually a JSON Web Token, or JWT) using a secret key and sent to the user. For subsequent requests, user will send this token along with request and server will verify if the token is valid or not.

This method gives more scalability and stateless for the apps, but the server does not authenticate the user, so linking a token to its user can be more difficult. Also in any chance an attacker got acess to the token, they will get access to the server.

References

LogRocket, Authfear, criipto.

notes

Canary in software development

27 February 2024

In software development, a canary release (or canary deployment) refers to the practice of rolling out a new version of software to a small, select group of users before deploying it to the entire user base. The term “canary” comes from the old practice of using canaries in coal mines to detect dangerous gases; if the canary showed signs of distress, miners knew to evacuate. Similarly, in software, the canary release acts as an early warning system to detect issues with new code before it reaches a wider audience.

Benefits of Canary Releases: Reduced Risk: Limits the impact of potential issues by exposing the new version to only a small group first. Real-World Testing: Provides the opportunity to observe how the new version performs in a live environment. Faster Rollback: Easier to revert changes if problems are detected, reducing downtime or negative user impact.

notes

Take me home

24 February 2024

Take me home, country roads
the place where we
met in the evenings,
The place where we played
and laughed together.

The place where our
hearts broke when the
good byes happened.
And there is where our
childhood memories
stay alive.

I hope we shall
meet there soon.

notes

Set up a React project with Vite along with Tailwind CSS

22 February 2024

Here is the step by step guide to create a React project with Vite.

  • Run the command npm create vite in the command prompt.
  • Afer the script you will be prompted to enter a project name.
  • After entering the project name, Vite will prompt you to select a framework. Select the framework as React.
  • After selecting framework, Vite will prompt you to select language type.
  • After selecting the language type, Vite will show the message as Scaffolding the project in the location.
  • After that you can go to the folder and instruct to install the dependencies with the command npm install.

And here is the step to install Tailwind CSS as a Vite plugin.

  • Run the command npm install tailwindcss @tailwindcss/vite to Install tailwindcss and @tailwindcss/vite via npm.

  • Add the @tailwindcss/vite plugin to your Vite configuration.

    import { defineConfig } from 'vite'
    import tailwindcss from '@tailwindcss/vite'
    export default defineConfig({
    plugins: [
        tailwindcss(),
    ],
    })
    
  • Add an @import "tailwindcss"; to your CSS file that imports Tailwind CSS.

  • After that you can run the project with command npm run dev or whatever command is configured in your package.json file..

References

DigitalOcean, TailwindCSS

notes

What is Skeuomorphism?

21 February 2024

I noticed every design is incorpating rounded edges in their rectangle shapes (yes, my website cards also). Today I Googled it and after reading some articles, I stumbled upon Skeuomorphism.

So, here I am noting down what is Skeuomorphism?

Skeuomorphism is a term most often used in graphical user interface design to describe interface objects that mimic their real-world counterparts in how they appear and/or how the user can interact with them. A well-known example is the recycle bin icon used for discarding files. Skeuomorphism makes interface objects familiar to users by using concepts they recognize.

In UI design, skeuomorphism had its boom with the advent of the first iPhone. Steve Jobs believed that UI elements should resemble real-life objects to increase ease of use. For example, the Notes app looked like a notepad. However, as users became more familiar with the iOS interface, Apple transitioned to flat design with fewer shadows and textures. Flat design stripped back skeuomorphic elements to essentials for faster loading and decluttered touchpoints.

References

Interaction Design

notes

Is this matter?

19 February 2024

Always ask yourself: Is this matter?
If it’s a No, move on.
If it’s an Yes, work on it.

notes

Compounding

15 February 2024

Compounding is the most effective thing you can use in your life.

notes

Human

14 February 2024

Remember you’re a human, not a content creating machine.

notes

Not others

14 February 2024

Impress yourself, not others.

notes

Connecting MySQL from command line

13 February 2024

Open the command prompt and type the below to connect the MySQL:

mysql -u username -p

After the above command the command line will prompt you to enter the password and after entering the password you can query the database.

References

Stack Overflow, MySQL Doc

notes

Non-editionable objects

10 February 2024

When you are create an object in Oracle Database, default object type will be marked editionable. From 12c onwards, you can mark the objects as noneditionable , and same you cannot edit with create or replace . For altering the same you have to alter the object and change to editionable.

This is applicable to View, Funcitons, Procedure, Trigger, Library, Type.

create or replace noneditionable procedure test_proc ( p int ) as
begin
  null;
end;
select editionable from user_objects
where  object_name = 'test_proc ';

//result
EDITIONABLE   
N
create or replace procedure test_proc ( p int ) as
begin
  dbms_output.put_line ( 'Editionable version' );
end;

//result
ORA-38824: A CREATE OR REPLACE command may not change the EDITIONABLE property of an existing object.

With below you can alter the procedure.

alter procedure test_proc editionable;
create or replace procedure test_proc ( p int ) as
begin
dbms_output.put_line ( 'Editionable version' );
end;

exec test_proc (1);

//result
Editionable version
References

Oracle Doc

essay

നിനക്കൊരർച്ചന

9 February 2024
ആളിറങ്ങിയാരവം നിലച്ചപ്പോൾ വസന്തത്തിൻ രാവ് കൊഴിഞ്ഞു. ഇനി ഞാൻ തനിച്ചിവിടെ ഈ തെരുവിൽ.....
notes

മകൾ

9 February 2024

ഒരു നിമിഷാർദ്രം കൊണ്ട്
സ്മൃതിപഥത്തിൽ നീയുണർന്നു.
നമുക്കൊരു ആൾരൂപം
നിൻ്റെയുള്ളിലുണ്ടെന്നുള്ള സത്യം
ശിശിരകാലം പോലെയെന്നിൽ
തണ്ണുപ്പ് നിറക്കുന്നു.

essay

Job commands in Oracle PL/SQL

2 February 2024
Here I am listing the commands using for creating, running, and fetching the scheduler jobs in Oracle database for easy reference.
essay

Nights in Bahrain

1 February 2024
I'm a night owl who loves the dark hours. I often go for walks at night, enjoying the city lights, the yellow glow, and the people around me.
essay

As you start to walk on the way, the way appears

31 January 2024
I would like to share a short story from my college days. As part of our college tech festival,
notes

Export your Kindle book highlights

24 January 2024

If you want to export your Kindle book highlights without the page location and color information, you can follow these steps:

  • Export the content in any format you prefer.
  • Paste the content in Visual Studio Code or any other text editor that supports regular expressions.
  • Use the regular expression Highlight \(yellow\) - Location [0-9]+ in the Find and Replace tool to replace Highlight (yellow) - Location 01.
  • Replace all the matches with an empty string.

This will remove the unwanted details from your highlights and leave only the text you want to keep.

essay

Default Apps 2023

21 January 2024
Read the Defaults app of Chris Coyier and found interesting.
notes

Name attribute in input tag

15 January 2024

The name attribute specifies the name of an <input> element. It is used to reference elements in a JavaScript, or to reference form data after a form is submitted to the server.

Only form elements with a name attribute will have their values passed when submitting a form.

<form action="http://localhost" method="POST">
    <label for="User">User name</label>
    <input type="text" id="User" name="Name" value="bino" />
    <input type="submit" value="submit" />
</form

When you submit the above, server localhost will recive a content like below:

Name=bino
References

w3schools

notes

You are not the system; you are part of it.

12 January 2024

Life is a series of roles we play, each one precious and unique in its own way. Whether you are a son, a father, a junior engineer, a secretary, or even someone who feels like they own nothing, you have something to offer and something to enjoy. Don’t let the struggles and chaos of each role overwhelm you; one day, you might no longer have the opportunity to play that role. The saddest part is, realizing its value only after it’s gone. So, cherish your time here, have fun, and make it beautiful.

Always remember, you are not the system; you are part of it.

essay

Set up a feed/ archive page in Hugo to display all posts

7 January 2024
This website contains various types of blogs, both technical and non-technical, that can be accessed through the variuos links. I wanted to have a single page...
notes

Firebase rules update

5 January 2024

To read and write without authenticaton in firebase, you need to updated the rules in the database as below.

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

Please note that this allow anyone to fetch and write the data to the database.

notes

Rare mix

3 January 2024

I don’t want to be an original,
I have learned, inspired,
and stolen from everything I have seen.
I want to be a rare mix.

notes

Welcome to the magic

1 January 2024

Welcome to the magic, to the stars, to the unknown, and to myself.

Jazaer Beach, Bahrain / Photo by Jinz moments

Jazaer Beach, Bahrain / Photo by Jinz moments

essay

Beginners notes about TypeScript: Part 2

4 December 2023
This is the second note in the TypeScript series. In this post, we will explore the fundamentals of TypeScript.
essay

Beginners notes about TypeScript: Part 1

2 December 2023
Programming languages can generally be categorized into two types: dynamically typed and statically typed...
essay

Codbix No.7

30 November 2023
Welcome to Issue #7 of The Codbix! This week: Habits of great software engineers, Decision Making at Netflix and How to get your brain to focus.
essay

Codbix No.6

31 October 2023
Welcome to Issue #6 of The Codbix! This week: Use code visibility to illuminate unfamiliar code, Laravel community and How to Get Your Brain to Focus.
essay

Karnataka Travel Diaries

25 October 2023
One of the most memorable trips I ever had was to Karnataka in August 2012. It was part of my college tour and I had a blast with my ...
essay

Hugo image shortcode

24 October 2023
This website is built with Hugo, a static site generator that uses Markdown for writing content files...
notes

Display refresh rate

4 October 2023

The refresh rate of a display is the number of times per second that the image refreshes on the screen. For example, a 60Hz display will update the screen 60 times per second.

References

Windows Doc

essay

Hugo alert box shortcode

24 September 2023
If you are using Hugo as your static site generator, you might want to create a card shortcode that can display different types of information on your blog posts...
essay

Hugo Custom Shortcodes

2 September 2023
Writings comments in the code will help you and anyone who reads the code by giving more readability and understandings.
notes

PL SQL Constraints

27 August 2023

To find the constraints in a table

ALL_CONSTRAINTS: Provides information about all constraints accessible to the user, across all tables in the database. It includes constraint types, status, and more, but doesn’t show column-specific details.

SELECT * FROM ALL_CONSTRAINTS 
WHERE TABLE_NAME='YOUR_TABLE_NAME' 
AND OWNER = 'OWNER_NAME';

To find the constarints referring to a table.

SELECT * FROM ALL_CONSTRAINTS 
WHERE R_CONSTRAINT_NAME IN ( 
    SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS 
    WHERE TABLE_NAME='YOUR_TABLE_NAME' 
    )
AND OWNER = 'OWNER_NAME';

USER_CONS_COLUMNS: Shows details about columns associated with constraints for tables owned by the current user. It’s useful for checking specific columns involved in constraints like primary keys, foreign keys, or unique constraints.

SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, POSITION
FROM USER_CONS_COLUMNS
WHERE TABLE_NAME = 'YOUR_TABLE_NAME';
notes

The Simplest way to load CSS asynchronously

27 August 2023

Sometimes we want to load the CSS asynchronously to reduce the intial page load and you can do the same by adding media="print" onload="this.media='all' to the link as below.

<link rel="stylesheet" href="/path/to/my.css" media="print" onload="this.media='all'">

Let’s dive into the details of the above:

  • The link’s media attribute is set to print.
  • print is a media type that applies to print-based media or when the user tries to print the page.
  • By using media="print", the CSS file loads asynchronously (since it’s not needed immediately for screen display).
  • However, we still want to apply the styles to the page for screen use.
  • To achieve this, we can use the onload attribute to change the link’s media to all once it finishes loading.
References

filamentgroup

essay

Codbix No.5

31 July 2023
Welcome to Issue #5 of The Codbix! This week: Learn how to build tools, Things we Wished More Developers Knew About Databases, and The Italian Town That Built Its Own Sun.
essay

Workstation

30 July 2023
I am a huge fan of good workstations and great interiors. I dreamed to build a workspace for a very long time...
essay

What is React?

11 July 2023
React is an open-source front-end JavaScript library that is used for building user interfaces...
notes

PL/SQL Returning Into

10 July 2023

The RETURNING INTO clause allows us to return column values for rows affected by DML statements. The returned data could be a single column, multiple columns or expressions.

INSERT INTO t1 VALUES (t1_seq.nextval, 'FOUR')
RETURNING id INTO l_id;
References

Oracle, dba-oracle, oracle base

essay

Commenting the stored procedures

5 July 2023
Writings comments in the code will help you and anyone who reads the code by giving more readability and understandings...
notes

Deleting node modules

5 July 2023

In windows, deleting node modules takes so much time and sometimes it makes my screen unresponsive. I googled for some solution and found the below:

Install a npm package called npkill with the command npm i -g npkill.
After installing from the terminal go to the directory from which we want to delete the node modules and type npkill.

The command prompt will list all the node modules and we can select the required folder.
After the secltion, you can press the Space key which will erase the directory in which the cursor is located.

To exit, q, or Ctrl + c.

References

npkill

essay

Codbix No.4

30 June 2023
Welcome to Issue #4 of The Codbix! This week: Modern work requires attention, Self-healing code is the future of software development and How The world’s biggest batches of food are made.
essay

Data Dictionary Views in PL/SQL

21 June 2023
This is cheat sheet for data dictionary views in PL/SQL
essay

Redirect your webpage using JavaScript

14 June 2023
JavaScript to redirect from one website to another. The window.location object can be used to get the current page address and redirect to a new page.
essay

രാത്രിസഞ്ചാരം

9 June 2023
ഒരോ രാത്രിസഞ്ചാരത്തിന് ഇറങ്ങുമ്പോഴും ഞാൻ നിന്നേയോർക്കും....
essay

Install a specific version of npm package

7 June 2023
Installing a specific version of an npm package, something that will help to solve compatibility issues.
essay

മടക്കയാത്രയില്ലാത്തിടത്ത്

2 June 2023
ഇനി കൈകൾ വിരിച്ച് നിങ്ങളെന്നെ ആലിഗനം ചെയ്യുക. ഇത്തിരി നേരമതിലമർന്ന് നിന്നോട്ടെ ഞാൻ...
notes

മടങ്ങി വരവ്

1 June 2023

മടങ്ങിവരവെന്നുള്ള പദം
നിന്നോളം മനോഹരമാകുന്നത്
നീ മടങ്ങി വരുന്നുവെന്ന്
ഓർക്കുമ്പോളാണ്.

notes

കുഴപ്പങ്ങൾ

28 May 2023

എന്നെക്കുറിച്ച് ഏറ്റവുമടുത്തൊരു സുഹൃത്തിന്റെ നിരീക്ഷണം ഇങ്ങനെയാണ്.
കുറച്ച് പുസ്തകങ്ങളൊക്കെ വായിക്കും, അതിന്റേതായ കുറച്ച് കുഴപ്പങ്ങളുണ്ട്.

notes

ഉപ്പുരസം

25 May 2023

എന്റെ കവിതകളിൽ ഉപ്പുണ്ട്.
എനിക്ക് വേണ്ടി അധ്വാനിച്ച
എല്ലാ മനുഷ്യരുടെയും
കണ്ണീരിന്റെയും വിയർപ്പിന്റെയും
സ്നേഹത്തിന്റെ ഉപ്പുരസം.

notes

ബുദ്ധൻ

22 May 2023

പ്രകാശം പെയ്തിറങ്ങുന്ന
ഇരുട്ടിന്റെ ഇടവഴികളിൽ
നിമിഷാർദ്ധത്തേക്ക് ഞാൻ
ബുദ്ധനായിത്തീരാറുണ്ട്.

notes

നിങ്ങൾ

15 May 2023

വൈകുന്നേരങ്ങളിൽ
രാത്രികളിൽ
ചിന്തകളിൽ
നിങ്ങളെന്നിൽ
ഇടവിടാതെ
പെയ്ത്കൊണ്ടിരിക്കുന്നു.

notes

നക്ഷത്രങ്ങൾ

6 May 2023

നിന്റെ ചുണ്ടുകൾ
നുകരുമ്പോളെല്ലാം
നക്ഷത്രങ്ങൾ
പെയ്തിറങ്ങാറുണ്ട്.

notes

ജീവിതം

28 April 2023

പോയകാല വസന്തങ്ങളെയും
വരുവാനുള്ള ശിശിരങ്ങളെയും
ഞാനോർക്കാറില്ല.
ഈ നിമിഷത്തിന്റെ
ആഴപ്പരപ്പുകളിൽ സ്വയമറിയാൻ
ശ്രമിക്കുന്നതിലുപരി
വേറെന്താണീ ജീവിതം.

notes

നീ

25 April 2023

എഴുതിയതേറയും നിന്നെക്കുറിച്ചായിരുന്നു
വേദനിച്ചതേറയും നിന്നെക്കുറിച്ച്
തന്നെയായിരുന്നു.

notes

Buri farm

31 March 2023

In the early morning, my brother and me went to visit a local farm. Here are the few snaps from there.

essay

Codbix No.3

31 March 2023
Welcome to Issue #3 of The Codbix! This week: The Arc Browser, Databases Sharding Explained, The Boy, the Mole, the Fox and the Horse, and Workspaces.
essay

Steal Like an Artist and other book notes

22 March 2023
The New York Times best-selling manifesto for creativity in the digital age.
notes

Food festival in Bahrain

18 March 2023

In the evening I went Bahrin food festival with my Brother and family. The vide was good, food and music are awesome.

essay

The Boy, the Mole, the Fox and the Horse

18 March 2023
The Boy, the Mole, the Fox and the Horse by Charlie Mackesy is one of my favorite books. The brilliant book is now an Oscar-winning short film...
notes

Directory Objects in PL/SQL

2 March 2023

This view describes all directories accessible to the user.

SELECT * FROM ALL_DIRECTORIES;

This view describes all directories specified for the entire database.

SELECT * FROM DBA_DIRECTORIES;

To view all the tables details, look here.

References

Oracle Doc

notes

What is CSS Modules?

2 March 2023

In CSS modules, CSS class names and animation names are scoped locally by default. In React you can use the file naming conversion as [file name].module.css. This let the React and Webpack know that you are using CSS Modules.

Importing the CSS in the file.

import nameyoulike from './name.modules.css';

Calling the style in the file.

<button className={styles.button} />
References

Styled Components Doc

notes

What is Styled Components?

2 March 2023

Styled-components is a CSS-in-JS library that enables you to write regular CSS and attach it to JavaScript components. With styled-components, you can use the CSS you’re already familiar with instead of having to learn a new styling structure.

Utilising tagged template literals (a recent addition to JavaScript) and the power of CSS, styled-components allows you to write actual CSS code to style your components.

References

Styled Components Doc

essay

Codbix No.2

28 February 2023
Welcome to Issue #2 of The Codbix! This week: Improve productivity through incremental automation, The modern web’s underrated powerhouse, and Wallpapers by Smashing Magazine.
notes

Difference between React and ReactDOM

25 February 2023

React and ReactDOM are two distinct libraries that are commonly used together in the development of web applications with React.

React is a JavaScript library focused on building user interfaces. It follows a declarative approach, where developers define what the UI should look like based on the current state of the application. React then efficiently updates and renders components as the state changes. Its design emphasizes flexibility and efficiency, making it a popular choice for developing both web and mobile applications.

ReactDOM, on the other hand, serves as a bridge between React and the DOM (Document Object Model). The DOM is a hierarchical structure representing the HTML content of a web page. ReactDOM provides a set of methods that enable React components to be rendered and updated within the DOM. It ensures that the user interface is synchronized with the underlying HTML structure.

In summary, React is a library for building user interfaces, while ReactDOM handles the interaction with the DOM, rendering React components onto the web page. Although they are often used together, they serve different purposes and can function independently of each other.

notes

Conditional Rendering

22 February 2023

Your components will often need to display different things depending on different conditions. In React, you can conditionally render JSX using JavaScript syntax like if statements, &&, and ? : operators.

&& operator

{ isYes && <A />}

? : operator

isYes ? Yes() : No()
  • In React, you control branching logic with JavaScript.
  • You can return a JSX expression conditionally with an if statement.
  • You can conditionally save some JSX to a variable and then include it inside other JSX by - using the curly braces.
  • In JSX, {cond ? <A /> : <B />} means “if cond, render <A />, otherwise <B />.
  • In JSX, {cond && <A />} means “if cond, render <A />, otherwise nothing”.
  • The shortcuts are common, but you don’t have to use them if you prefer plain if.
References

React Doc

notes

Lifting state up

20 February 2023

Lifting state up in react means moving data from a child component to some parent component either to use it there or pass it some other child component.

  • When you want to coordinate two components, move their state to their common parent.
  • Then pass the information down through props from their common parent.
  • Finally, pass the event handlers down so that the children can change the parent’s state.
  • It’s useful to consider components as “controlled” (driven by props) or “uncontrolled” (driven by state).
notes

Palm tree

20 February 2023

Blue skies and Palm tree in the Summer.

Hidd, Bahrain

Hidd, Bahrain

notes

Browser default actions

18 February 2023

There are many default browser actions:

  1. mousedown – starts the selection (move the mouse to select).
  2. click on <input type="checkbox"> – checks/unchecks the input.
  3. submit – clicking an <input type="submit"> or hitting Enter inside a form field causes this event to happen, and the browser submits the form after it.
  4. keydown – pressing a key may lead to adding a character into a field, or other actions. contextmenu – the event happens on a right-click, the action is to show the browser context menu.
  5. …there are more…

All the default actions can be prevented if we want to handle the event exclusively by JavaScript.

To prevent a default action – use either event.preventDefault() or return false. The second method works only for handlers assigned with on<event>.

The passive: true option of addEventListener tells the browser that the action is not going to be prevented. That’s useful for some mobile events, like touchstart and touchmove, to tell the browser that it should not wait for all handlers to finish before scrolling.

If the default action was prevented, the value of event.defaultPrevented becomes true, otherwise it’s false.

References

javascript info

notes

Controlled and Uncontrolled Components

18 February 2023

A component with its own local state is often referred to as uncontrolled.

In contrast, a component is considered controlled when its key data and behavior are managed externally through props, rather than relying on its own local state. This approach allows the parent component to have full control over its behavior and data flow.

When designing a component, carefully consider which pieces of information should be controlled (managed via props) and which should remain uncontrolled (handled by the component’s state). However, keep in mind that you’re not locked into your initial decision—you can always refactor later as the needs of your application evolve.

References

React Doc, Freecodecamp

notes

Paddy fields

4 February 2023

From the beautiful paddy fields near to my home.

Chennithala, Kerala, India

Chennithala, Kerala, India

Chennithala, Kerala, India

Chennithala, Kerala, India

essay

Understanding JSX

4 February 2023
JSX is a XML-like syntax extension to ECMAScript (the acronym stands for JavaScript XML). Basically it just provides syntactic sugar...
essay

Codbix No.1

31 January 2023
Welcome to Issue #1 of The Codbix! This week: Learn In Public, Make free stuff, documentation, and Brag now.
notes

Back to home

28 January 2023

I’m back home, and I’m loving the early morning rides. Watching the sun rise over green fields, listening to the birds—everything is just so beautiful.

Haripad, Kerala, India

Haripad, Kerala, India

essay

Card shortcode for Hugo

25 January 2023
Shortcodes are simple snippets inside your content files calling built-in or custom templates.
essay

React components

20 January 2023
Conceptually, components are like JavaScript functions. They accept arbitrary inputs and return React elements describing what should appear on the screen.
essay

Keep Going Through the Valley of Disappointment.

15 January 2023
When working towards these goals, we often expect linear progress. We work hard and expect to see results, which seems fair, right?
notes

Module in JS

12 January 2023

A module is just a file. One script is one module. As simple as that.

  • To make import/export work, browsers need <script type="module">.
  • Modules have several differences:
    • Deferred by default.
    • Async works on inline scripts.
    • To load external scripts from another origin (domain/protocol/port), CORS headers are needed.
    • Duplicate external scripts are ignored.
  • Modules have their own, local top-level scope and interchange functionality via import/export.
  • Modules always use strict.
  • Module code is executed only once. Exports are created once and shared between importers.

When we use modules, each module implements the functionality and exports it. Then we use import to directly import it where it’s needed. The browser loads and evaluates the scripts automatically.

In production, people often use bundlers such as Webpack to bundle modules together for performance and other reasons.

References

javascript info

essay

Why I am writing in the time of Reels?

1 January 2023
Is it worth it? Does anybody ever read this? Before this blog, these are the few questions...
notes

Oracle Timestamp

21 December 2022

The TIMESTAMP datatype is an extension on the DATE datatype. In addition to the datetime elements of the DATE datatype, the TIMESTAMP datatype holds fractions of a second to a precision between zero and nine decimal places, the default being six. There are also two variants called TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE. As their names imply, these timestamps also store time zone offset information.

create table table_name (
    column_name number,
    column_name2 timestamp default systimestamp);

References

dba-oracle
dba-oracle 2

notes

Material UI and Emotion

14 December 2022

Material UI uses Emotion as its default styling engine.

Run the following commands to add Material UI to your project:

npm install @mui/material @emotion/react @emotion/styled

Emotion Emotion is a library designed for writing css styles with JavaScript. It provides powerful and predictable style composition in addition to a great developer experience with features such as source maps, labels, and testing utilities. Both string and object styles are supported.

There are two primary methods of using Emotion. The first is framework agnostic and the second is for use with React.

Styled Components

styled is a way to create React components that have styles attached to them. It’s available from @emotion/styled. styled was heavily inspired by styled-components and glamorous.

import styled from '@emotion/styled'

const Button = styled.button`
  padding: 32px;
  background-color: hotpink;
  font-size: 24px;
  border-radius: 4px;
  color: black;
  font-weight: bold;
  &:hover {
    color: white;
  }
`

render(<Button>This my button component.</Button>)
References

Emotion website

notes

Differenet types of errors in JS

13 December 2022

Syntax error
The error occurs when you use a predefined syntax incorrectly.

Reference Error
In a case where a variable reference can’t be found or hasn’t been declared, then a Reference error occurs.

Type Error
An error occurs when a value is used outside the scope of its data type.

RangeError
There is an error when a range of expected values is required

URI Error
When the wrong character(s) are used in a URI function, the error is called.

InternalError
This error occurs internally in the JS engine, especially when it has too much data to handle and the stack grows way over its critical limit.

Evaluation Error
Current JavaScript engines and EcmaScript specifications do not throw this error. However, it is still available for backward compatibility. The error is called when the eval() backward function is used.

References

scaler

essay

let and const Keywords Hoisting

5 December 2022
JavaScript declarations are hoisted Variables defined with `let` and `const` are hoisted to the top of the block, but not initialized...
essay

Scope, Scope chain and Lexical Environment in JS

2 December 2022
Scope is the place where you can access the values of your variables or functions in our code.
essay

ക്രിസ്തുമസ് കരോള്‍ ഗാനങ്ങള്‍

1 December 2022
വിവിധ കാലങ്ങളിൽ ഞങ്ങളുടെ പള്ളിയിൽ പാടിയിരുന്ന ക്രിസ്തുമസ് കരോൾ ഗാനങ്ങൾ വരും തലമുറയ്ക്ക് പകർന്ന് നൽകുവാനായി ഇവിടെ സമാഹരിച്ചിരിക്കുന്നു...
notes

Peace - that was the other name for home.

25 November 2022

Botteled life.

notes
15 November 2022

I deeply admire the beauty of nature, and there’s such joy in capturing it through photos.

notes
4 November 2022

Peace - that was the other name for home.
— Kathleen Norris

notes

Drop table in PL SQL

25 October 2022

To move a table to the recycle bin or remove it entirely from the database, you use the DROP TABLE statement:

DROP TABLE schema_name.table_name
[CASCADE CONSTRAINTS | PURGE];
  • First, indicate the table and its schema that you want to drop after the DROP TABLE clause. If you don’t specify the schema name explicitly, the statement assumes that you are removing the table from your own schema.

  • Second, specify CASCADE CONSTRAINTS clause to remove all referential integrity constraints which refer to primary and unique keys in the table. In case such referential integrity constraints exist and you don’t use this clause, Oracle returns an error and stops removing the table.

  • Third, specify PURGE clause if you want to drop the table and release the space associated with it at once. By using the PURGE clause, Oracle will not place the table and its dependent objects into the recycle bin.

Refernces

oracle tutorial

notes

Column-Level Collation and Case-Insensitive Database in Oracle

24 October 2022

Collation determines how strings are compared, which has a direct impact on ordering (sorting) and equality tests between strings.

There are two basic types of collation.

  • Binary : Ordering and comparisons of string data are based on the numeric value of the characters in the strings.
  • Linguistic : Ordering and comparisons of string data are based on the alphabetic sequence of the characters, regardless of their numeric values.

When using binary collations there are three suffixes that alter the behavior of sorts and comparisons.

  • “_CI” : Case insensitive, but accent sensitive.
  • “_AI” : Both case and accent insensitive.
  • “_CS” : Both case and accent sensitive. This is default if no extension is used.

If no collation is specified, directly or via a default setting, the default USING_NLS_COMP pseudo-collation is used, which means the NLS_SORT and NLS_COMP parameters are used to determine the actual collation used.

// Syntax
COLLATE BINARY_CS / BINARY_CI / BINARY_AI

column_name  VARCHAR2(15 CHAR) COLLATE BINARY_CI
create table (...) DEFAULT COLLATION BINARY_CI;
ALTER TABLE t1 DEFAULT COLLATION BINARY_AI;
References

Oracle Base, Oracle Doc

notes

Oracle NLS / National Language Suppport

23 October 2022

The NLS_DATABASE_PARAMETERS shows the values of the NLS parameters for the database. Oracle notes these differences between the parameters.

  • NLS_SESSION_PARAMETERS shows the NLS parameters and their values for the session that is querying the view. It does not show information about the character set.
  • NLS_INSTANCE_PARAMETERS shows the current NLS instance parameters that have been explicitly set and the values of the NLS instance parameters.
  • NLS_DATABASE_PARAMETERS shows the values of the NLS parameters for the database. The values are stored in the database.
SELECT * FROM NLS_SESSION_PARAMETERS ORDER BY 1;   
SELECT * FROM NLS_INSTANCE_PARAMETERS ORDER BY 1;  
SELECT * FROM NLS_DATABASE_PARAMETERS ORDER BY 1; 

The NLS_LANGUAGE and NLS_TERRITORY values in NLS_DATABASE_PARAMETERS cannot be changed once the database has been created

References

dba-oracle
Oracle Blog

notes

Working with my plants

15 October 2022

Working with my plants.

notes

List the months between two dates - PL/SQL

11 October 2022

PL SQL Query to list the months between two dates

SELECT TO_CHAR(ADD_MONTHS(TRUNC(TO_DATE('01-JAN-22','DD-MON-YY'), 'MM'), LEVEL -1),'MON-YY')
MONTH_YEAR 
FROM DUAL
CONNECT BY LEVEL <= MONTHS_BETWEEN(TO_DATE('01-DEC-22','DD-MON-YY'), 
    TO_DATE('01-JAN -22','DD-MON-YY')) + 1
ORDER BY LEVEL;

Result set

MONTH_YEAR
JAN-22
FEB-22
MAR-22
APR-22
MAY-22
JUN-22
JUL-22
AUG-22
SEP-22
OCT-22
NOV-22
DEC-22
essay

Hoisting in JavaScript

10 October 2022
JavaScript Hoisting refers to the process whereby the interpreter appears to move the declaration of functions, variables or classes to the top of their scope, prior to execution of the code...
notes

Fairy tales

19 September 2022

Come, Let’s head to the nights where every fairy tales are true 🦄🦋

notes

ഓണാംശംസകൾ

8 September 2022

അവസാനിക്കാത്ത പൂമഴകളുടെ
ആനന്ദംപോലെ, ഏറ്റവും
മനോഹാരിതയുള്ളൊരു
ഓണാംശംസകൾ നേരുന്നു
ഞാൻ നിങ്ങൾക്ക്. ✨

നിറയെ നന്മകളുണ്ടാകട്ടെ ഏവർക്കും. 🦋

notes

Middleware in the Express.js

1 September 2022

Middleware functions are functions that have access to the request object (req), the response object (res), and the next function in the application’s request-response cycle. The next function is a function in the Express router which, when invoked, executes the middleware succeeding the current middleware.

Middleware functions can perform the following tasks:

  • Execute any code.
  • Make changes to the request and the response objects.
  • End the request-response cycle.
  • Call the next middleware in the stack.

If the current middleware function does not end the request-response cycle, it must call next() to pass control to the next middleware function. Otherwise, the request will be left hanging.

To load the middleware function, call app.use(), specifying the middleware function.

For example, the following code loads the myLogger middleware function before the route to the root path (/).

const express = require('express')
const app = express()

const myLogger = function (req, res, next) {
  console.log('LOGGED')
  next()
}

app.use(myLogger)

app.get('/', (req, res) => {
res.send('Hello World!')
})

app.listen(3000)
notes

Snippet for creating a progress bar

27 August 2022

Snippet for creating a progress bar in the header section.

  <div class="header mt-100">
    <div class="row">
      <div class="progress">
        <div class="progress-bar" id="myBar"></div>
      </div>
    </div>
  </div>

  <script>
    // When the user scrolls the page, execute scrollFn 
    window.onscroll = function () { scrollFn() };

    function scrollFn() {
      var winScroll = document.body.scrollTop || document.documentElement.scrollTop;
      var height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
      var scrolled = (winScroll / height) * 100;
      document.getElementById("myBar").style.width = scrolled + "%";
    }
  </script>
notes

What is a computer port?

23 August 2022

What is a port?

A port is a virtual point where network connections starts and end. Ports are software based and managed by a computer’s operating system. Each port is associated with a specific process or service. Ports allow computers to easily differentiate between different kinds of traffic: emails go to a different port than webpages, for instance, even though both reach a computer over the same Internet connection.

What is a port number?

Ports are standardized across all network-connected devices, with each port assigned a number. Most ports are reserved for certain protocols — for example, all Hypertext Transfer Protocol (HTTP) messages go to port 80. While IP addresses enable messages to go to and from specific devices, port numbers allow targeting of specific services or applications within those devices.

References

Cloudflare

notes

Database Management System (DBMS)

14 August 2022

A database management system (DBMS) is software that controls the storage, organization, and retrieval of data.

Typically, a DBMS has the following elements:

  • Kernel code
    This code manages memory and storage for the DBMS.

  • Repository of metadata
    This repository is usually called a data dictionary.

  • Query language
    This language enables applications to access the data.

A database application is a software program that interacts with a database to access and manipulate data.

The first generation of database management systems included the following types:

  • Hierarchical
    A hierarchical database organizes data in a tree structure. Each parent record has one or more child records, similar to the structure of a file system.

  • Network
    A network database is similar to a hierarchical database, except records have a many-to-many rather than a one-to-many relationship.

References

Oracle

notes

Relational Model

12 August 2022

In his seminal 1970 paper “A Relational Model of Data for Large Shared Data Banks,” E. F. Codd defined a relational model based on mathematical set theory. Today, the most widely accepted database model is the relational model.

A relational database is a database that conforms to the relational model. The relational model has the following major aspects:

  • Structures
    Well-defined objects store or access the data of a database.

  • Operations
    Clearly defined actions enable applications to manipulate the data and structures of a database.

  • Integrity rules
    Integrity rules govern operations on the data and structures of a database.

A relational database stores data in a set of simple relations. A relation is a set of tuples (rows). A tuple is an unordered set of attribute (columns) values.

A table is a two-dimensional representation of a relation in the form of rows (tuples) and columns (attributes). Each row in a table has the same set of columns. A relational database is a database that stores data in relations (tables). For example, a relational database could store information about company employees in an employee table, a department table, and a salary table.

References

Oracle

notes

Difference Between Cursor And Ref Cursor

9 August 2022

Example of Cursor:

declare    
    cursor c1 is select first_name, salary from hr.employees;
begin    
    for c in c1 
    loop
        dbms_output.put_line('Ename: ' || c.first_name || ', Salary: ' || c.salary);
    end loop;
end;

Example of Ref Cursor

declare    
    c1 SYS_REFCURSOR;
    ename varchar2(10);
    sal number;
begin
    open c1 for select first_name, salary from hr.employees;
    LOOP 
        FETCH c1 into ename, sal;
            EXIT WHEN c1%NOTFOUND;
        dbms_output.put_line('Ename: ' || first_name || ', Salary: ' || salary);
    END LOOP;
    close c1;    
end;

They are both cursors and can be processed in the same fashion and at the most basic level, they both are same. There are some important differences between regular cursors and ref cursors which are following:

  1. A ref cursor can not be used in CURSOR FOR LOOP, it must be used in simple CURSOR LOOP statement as in example.

  2. A ref cursor is defined at runtime and can be opened dynamically but a regular cursor is static and defined at compile time.

  3. A ref cursor can be passed to another PL/SQL routine (function or procedure) or returned to a client. A regular cursor cannot be returned to a client application and must be consumed within same routine.

  4. A ref cursor incurs a parsing penalty because it cannot cached but regular cursor will be cached by PL/SQL which can lead to a significant reduction in CPU utilization.

  5. A regular cursor can be defined outside of a procedure or a function as a global package variable. A ref cursor cannot be; it must be local in scope to a block of PL/SQL code.

  6. A regular cursor can more efficiently retrieve data than ref cursor. A regular cursor can implicitly fetch 100 rows at a time if used with CURSOR FOR LOOP. A ref cursor must use explicit array fetching.

Use of ref cursors should be limited to only when you have a requirement of returning result sets to clients and when there is NO other efficient/effective means of achieving the goal.

References

Ask Tom
greenstechnologys

notes

PL/SQL Ref Cursor

8 August 2022

A cursor variable is a cursor that contains a pointer to a query result set. The result set is determined by execution of the OPEN FOR statement using the cursor variable.

A cursor variable, unlike a static cursor, is not associated with a particular query. The same cursor variable can be opened a number of times with separate OPEN FOR statements containing different queries. A new result set is created each time and made available through the cursor variable.

Strong typed REF CURSOR

DECLARE TYPE customer_t IS REF CURSOR RETURN customers%ROWTYPE;
c_customer customer_t;

This form of cursor variable called strong typed REF CURSOR because the cursor variable is always associated with a specific record structure, or type.

And here is an example of a weak typed REF CURSOR declaration that is not associated with any specific structure:

Weak typed REF CURSOR

DECLARE TYPE customer_t IS REF CURSOR;
c_customer customer_t;

Starting from Oracle 9i, you can use SYS_REFCURSOR, which is a predefined weak typed REF CURSOR, to declare a weak REF CURSOR as follows:

DECLARE c_customer SYS_REFCURSOR;

The SYS_REFCURSOR data type is known as a weakly-typed REF CURSOR type. Strongly-typed cursor variables of the REF CURSOR type require a result set specification.

References

OracleTututorial
IBM

essay

വെളിച്ചവുമിരുട്ടും

5 August 2022
ഒരുപക്ഷേ വെളിച്ചത്തിന്റെയും ഇരുട്ടിന്റെയും മദ്ധ്യത്തിൽ നമ്മൾ വീണ്ടും കണ്ടുമുട്ടും...
notes

Referential Equality

2 August 2022

We can say two objects are referentially equal when the pointers of the two objects are the same or when the operators are the same object instance. For example {} === {} is false because it is checking referential equality.

Example:

<script>
    var a = 1;
    var b = 1;
    console.log(a == b); // true
    console.log(a === b); // true

    var c = 10;
    var d = "10";
    console.log(c == d); // true
    console.log(c === d); // false

    const name1 = {
        first_name: "sarah",
    };

    const name2 = {
        first_name: "sarah",
    };

    console.log(name1 == name2); // false
    console.log(name1 === name2); // false

    console.log(Object.is(name1, name2)); // false
    console.log(Object.is(name1, name1)); // true
</script>
References

webdevsimplified
geeksforgeeks
Object is

notes

React Reconciliation

30 July 2022

When a component’s props or state change, React decides whether an actual DOM update is necessary by comparing the same with Virtual DOM. If it is not equal React will update the DOM.

React maintains two Virtual DOM at each time, one contains the updated Virtual DOM and one which is just the pre-update version of this updated Virtual DOM. Now it compares the pre-update version with the updated Virtual DOM and figures out what exactly has changed in the DOM like which components have been changed. This process of comparing the current Virtual DOM tree with the previous one is known as ‘diffing’.

The algorithm used for diffing is known as Diffing Algorithm.

Once React finds out what exactly has changed then it updated those objects only, on real DOM. React uses something called batch updates to update the real DOM. It just means that the changes to the real DOM are sent in batches instead of sending any update for a single change in the state of a component. This entire process of transforming changes to the real DOM is called Reconciliation

References

geeksforgeeks

notes

PL/SQL Pseudocolumns

27 July 2022

A pseudocolumn behaves like a table column, but is not actually stored in the table. You can select from pseudocolumns, but you cannot insert, update, or delete their values. A pseudocolumn is also similar to a function without arguments. However, functions without arguments typically return the same value for every row in the result set, whereas pseudocolumns typically return a different value for each row.

Rownum is an example for pseudocolumns.

References

Oracle Docs

notes

PL/SQL ROWNUM

25 July 2022

ROWNUM is a pseudocolumn (not a real column) that is available in a query. ROWNUM will be assigned the numbers 1, 2, 3, 4, … N , where N is the number of rows in the set ROWNUM is used with. A ROWNUM value is not assigned permanently to a row. A row in a table does not have a number; you cannot ask for row 5 from a table—there is no such thing.

ROWNUM value is actually assigned. A ROWNUM value is assigned to a row after it passes the predicate phase of the query but before the query does any sorting or aggregation. Also, a ROWNUM value is incremented only after it is assigned, which is why the following query will never return a row:

select * from t 
where ROWNUM > 1;

Below query will give you the wrong results,

select *   from emp 
where ROWNUM <= 5 
order by sal desc;

To understand the above, check the below query with this structure:

select ..., ROWNUM
from t
where <where clause>
group by <columns>
having <having clause>
order by <columns>;

Think of it as being processed in this order:

  • The FROM/WHERE clause goes first.
  • ROWNUM is assigned and incremented to each output row from the FROM/WHERE clause.
  • SELECT is applied.
  • GROUP BY is applied.
  • HAVING is applied.
  • ORDER BY is applied.

Below is the way ti use the rownum

select *   from  
( select * from emp 
order by sal desc ) 
where ROWNUM <= 5;
References

Oracle Blog

notes

Validate Conversion

24 July 2022

VALIDATE_CONVERSION determines whether expr can be converted to the specified data type. If expr can be successfully converted, then this function returns 1; otherwise, this function returns 0. If expr evaluates to null, then this function returns 1. If an error occurs while evaluating expr, then this function returns the error.

SELECT VALIDATE_CONVERSION(1000 AS BINARY_DOUBLE)
FROM DUAL;

SELECT VALIDATE_CONVERSION('1234.56' AS BINARY_FLOAT)
FROM DUAL;

SELECT VALIDATE_CONVERSION('July 20, 1969, 20:18' AS DATE,
    'Month dd, YYYY, HH24:MI', 'NLS_DATE_LANGUAGE = American')
FROM DUAL;

SELECT VALIDATE_CONVERSION('200 00:00:00' AS INTERVAL DAY TO SECOND)
FROM DUAL;

SELECT VALIDATE_CONVERSION('P1Y2M' AS INTERVAL YEAR TO MONTH)
FROM DUAL;

SELECT VALIDATE_CONVERSION('$100,00' AS NUMBER,
    '$999D99', 'NLS_NUMERIC_CHARACTERS = '',.''')
FROM DUAL;

SELECT VALIDATE_CONVERSION('29-Jan-02 17:24:00' AS TIMESTAMP,
    'DD-MON-YY HH24:MI:SS')
FROM DUAL;

SELECT VALIDATE_CONVERSION('1999-12-01 11:00:00 -8:00'
    AS TIMESTAMP WITH TIME ZONE, 'YYYY-MM-DD HH:MI:SS TZH:TZM')
FROM DUAL;

SELECT VALIDATE_CONVERSION('11-May-16 17:30:00'
    AS TIMESTAMP WITH LOCAL TIME ZONE, 'DD-MON-YY HH24:MI:SS')
FROM DUAL;
References

Oracle Docs

notes
20 July 2022

Its not an illusion, you are more than enough.

notes
20 July 2022

After long, tiring hours,
I want to drink you,
and the tea, slowly

notes
20 July 2022

Poets are wizards
who can make you dream.

notes
20 July 2022

Whenever I am looking into my brown eyes,
I can see the magic.
Its says believe in yourself.

notes

Evening

20 July 2022

I don’t know what makes the evening more beautiful,
you or the sunset.

evening

notes

PL/SQL SELECT INTO Clause

20 July 2022

The SELECT INTO is actually a standard SQL query where the SELECT INTO clause is used to place the returned data into predefined variables.

create or replace function auth_Name
( v_auth_state IN author.author_state%type)
return varchar2

as
    v_authName author.author_last_name%type;
    
    begin
    select author_last_name into v_authName
    from author
    where author_state = v_auth_state;

    return v_authName;

    exception

    when TOO_MANY_ROWS
    then return 'Too Many Authors in that State';

    when NO_DATA_FOUND
    then return 'No Authors in that State';

    when others
    then raise_application_error(-20011,'Unknown Exception in authName Function');

end;
References

dba-Oracle

notes

Count(*) is unsafe

19 July 2022
SELECT COUNT(*) INTO var WHERE CONDITION;

IF var > 0 THEN
SELECT NEEDED_FIELD INTO otherVar WHERE CONDITION;

In PLSQL method with count(*) is unsafe in above code. If another session deletes the row that met the condition after the line with the count(*), and before the line with the select ... into, the code will throw an exception that will not get handled.

Use the below insted,

SELECT NEEDED_FIELD INTO var WHERE CONDITION;
EXCEPTION
WHEN NO_DATA_FOUND
References

Stack Overflow

notes

Set Define OFF

18 July 2022

The SET DEFINE command changes the prefix character used to mark substitution variables. You can use SET DEFINE to turn variable substitution off.

SET DEF[INE] {OFF | ON | prefix_char}

Define is a SQL*Plus client variable. It is NOT a database level setting.

When you start SQL*Plus, variable substitution will be on by default, and the default prefix character is an ampersand. If you are running a script that uses ampersands in text strings, you may want to change the prefix character to something else. If your script doesn’t use substitution variables, you may find it easiest to turn the feature off.

References

Oreilly

notes
13 July 2022

When you started to look deep inside you, you will find the sparks of magic.

notes
11 July 2022

Sometimes we are in a war that doesn’t even exist.

notes
7 July 2022

Everything will end. Make it to the most.

notes
6 July 2022

May be peace is the higher version of happiness.

essay

How JS code is executed.

5 July 2022
JavaScript code execution involves a sequence of steps managed by the JavaScript engine, primarily through the use of the call stack and execution contexts...
notes

Seek clarity

5 July 2022

Before seeking peace in your life, seek clarity.

notes
4 July 2022

Everything is already there, you are not realized it yet!

notes
1 July 2022

Colurful scenes from Riffa central market.

essay

സ്വപ്നതുല്യമായ സത്യം

22 June 2022
പച്ചച്ചെടികൾ നിറഞ്ഞയെന്റെ മുറിയുടെ മഞ്ഞവിരിപ്പിൽ കിടക്കുമ്പോൾ ഞാനിടക്ക് ഓർക്കും....
notes

Repotting

11 June 2022

I’m repotting and watering my plants today—and added a few new ones to my collection. The more green, the merrier.

essay

ഒരുതരി വെളിച്ചം

30 May 2022
ഇപ്പോളൊന്നും എഴുതാറില്ലേന്ന് അവളിടക്കിടെ വന്ന് ചോദിക്കും. എഴുതാനാരോ ഉള്ളിൽക്കിടന്ന്...
essay

തേടൽ

6 May 2022
എന്നിൽ നിന്ന് എന്നിലേക്കുള്ള ദേശാടനത്തിൽ ലിപികളറിയാത്ത ഭാഷകളിലെ സംഗീതസ്വരങ്ങൾ...
notes

Motivation for fragments

3 April 2022

A common pattern is for a component to return a list of children. In the below example when Column component is rendering the HTML will be invalid as a div is coming in the middle of the table. Whenever we are using Fragments, we can avoid that.

Take this example React snippet:

class Table extends React.Component {
  render() {
    return (
      <table>
        <tr>
          <Columns />
        </tr>
      </table>
    );
  }
}

would need to return multiple elements in order for the rendered HTML to be valid. If a parent div was used inside the render() of , then the resulting HTML will be invalid.

class Columns extends React.Component {
  render() {
    return (
      <div>
        <td>Hello</td>
        <td>World</td>
      </div>
    );
  }
}

results in a output of:

<table>
  <tr>
    <div>
      <td>Hello</td>
      <td>World</td>
    </div>
  </tr>
</table>
notes

Keyed Fragments

2 April 2022

Fragments declared with the explicit <React.Fragment> syntax may have keys. A use case for this is mapping a collection to an array of fragments — for example, to create a description list:

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // Without the `key`, React will fire a key warning
        <React.Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </React.Fragment>
      ))}
    </dl>
  );
}
notes

Fragments

1 April 2022

A common pattern in React is for a component to return multiple elements. Fragments let you group a list of children without adding extra nodes to the DOM.

render() {
  return (
    <React.Fragment>
      <ChildA />
      <ChildB />
      <ChildC />
    </React.Fragment>
  );
}

Short Syntax

Here is the shorter syntax you can use for declaring fragments. It looks like empty tags:

class Columns extends React.Component {
  render() {
    return (
      <>
        <td>Hello</td>
        <td>World</td>
      </>
    );
  }
}

Motivation for fragments in React.

notes

The more green, the merrier

8 March 2022

After the weekend, when I checked my plant in my office, I noticed the new leaves are bigger and brighter. I don’t know why suddenly it made me happy and peaceful. And now I am planning to plant more of them in my office space.

Maybe more green will give you more peace.

notes

TYPE Attribute

2 March 2022

The %TYPE attribute lets use the datatype of a field, record, nested table, database column, or variable in your own declarations, rather than hardcoding the type names.

You can use the %TYPE attribute as a datatype specifier when declaring constants, variables, fields, and parameters. If the types that you reference change, your declarations are automatically updated.

This technique saves you from making code changes when, for example, the length of a VARCHAR2 column is increased. Note that column constraints, such as the NOT NULL and check constraint, or default values are not inherited by items declared using %TYPE.

essay

വീണ്ടുമുണരട്ടെ

28 February 2022
പാതിരാത്രിയിൽ പ്രാന്തിനൊപ്പം കവിത പൂക്കാറുണ്ടുള്ളിൽ പ്രണയത്തോളം മധുരവും പ്രാണനോളം...
notes

undefined and not defined in JS

22 February 2022

undefined

undefined is a property of the global object. That is, it is a variable in global scope. The initial value of undefined is the primitive value undefined.

A variable is ‘declared’, it has its own placeholder (memory is allcoated) but not having the value of itself ‘defined’ hence ‘undefined’. Until the variable has assigned a value, the ‘undefined’ fills that particular placeholder and ‘undefined’ is itself a datatype.

Not Defined

This case comes in error where js engine neither find that particular variable nor its placeholder and cannot find the variable in 1st phase of context (Memory allocation context)

JS is loosely typed language, this means that JavaScript will figure out what type of data you have and make the necessary adjustments so that you don’t have to redefine your different types of data.

References

MDN

notes

Intersection Observer API

20 February 2022

The Intersection Observer API provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document’s viewport.

Syntax to create Intersection Observer API

const observer = new IntersectionObserver(entries => {
console.log(entries)
})
References

MDN Web Docs
webdevsimplified

notes

Pure functions

20 February 2022

A pure function is a function which:

Given the same input, always returns the same output and the Produces have no side effects.

Preoperties

  • No random values
  • No current date/time
  • No global state
  • No mutation of parameters

Benefits

  • Self-documenting
  • Easily testable
essay

ഓർമ്മകളിലേക്ക്

19 February 2022
ഓർമ്മകളിലേക്ക് വീണ്ടും വീണ്ടും തിരികെപ്പോക്കുന്ന മനുഷ്യരുണ്ട്. രാവിലെയെണ്ണീറ്റ് ഒറ്റക്ക്...
notes

Primitive Data types in JS

18 February 2022

In JavaScript, a primitive (primitive value, primitive data type) is data that is not an object and has no methods or properties. There are 7 primitive data types:

  • string
  • number
  • bigint
  • boolean
  • undefined
  • symbol
  • null

All primitives are immutable; that is, they cannot be altered. It is important not to confuse a primitive itself with a variable assigned a primitive value. The variable may be reassigned to a new value, but the existing value can not be changed in the ways that objects, arrays, and functions can be altered.

References

MDN

notes

Shortest Program in JS

10 February 2022
  1. Shortest Program in JS: Empty file. Still, browsers make global Execution context and global space along with Window object.
  2. Global scope: Anything that is not in a function, is in the global space.
  3. Variables present in a global space can be accessed by a “window” object. (like window.a)
  4. In global scope, (this === window) object. For example refer the below,
var a = 10;

Console.log(windows.a) // 10
Console.log(a)  // 10
Console.log(this.a) // 10
notes

Class and Function Hoisting in JS

2 February 2022

An important difference between function declarations and class declarations is that while functions can be called in code that appears before they are defined, classes must be defined before they can be constructed.

class hoisting

Classes defined using a class declaration are hoisted, which means that JavaScript has a reference to the class. However the class is not initialized by default, so any code that uses it before the line in which it is initialized is executed will throw a ReferenceError.

const p = new Rectangle(); // ReferenceError
class Rectangle {}

This occurs because while the class is hoisted its values are not initialized.

Function and class expression hoisting

Function expressions and class expressions are not hoisted.

References

w3schools

essay

PL/SQL - Explicit Cursors

31 January 2022
As discussed earlier, there are two types of cursors: Implicit cursors and explicit cursors. In this section, we will focus on explicit cursors and their functionality...
notes

Make it Green

29 January 2022
essay

PL/SQL - Implicit Cursors

28 January 2022
Oracle creates a memory area, known as the context area for processing an SQL statements, which contain all the informations needed for procesing the SQL statements...
essay

പ്രിയപ്പെട്ടവർ

22 January 2022
പ്രിയപ്പെട്ടവരുടെ കൂടെയുള്ള നീണ്ട ഒത്ത്ചേരലുകൾക്ക് ശേഷമുള്ള, ഹ്രസ്വമായ വിട പറച്ചിലിന്റെ...
essay

ആരവങ്ങൾ

8 January 2022
എൻ്റെ മൗനാഴങ്ങളിൽ പോലും ഞാൻ ആഘോഷതിമിർപ്പിലാണ്. പോയ രാവുകളെ ഓർത്ത് വേദനിക്കുവാൻ...
notes

Stateless and Stateful

5 January 2022

The state of an application (or anything else, really) is its condition or quality of being at a given moment in time—its state of being. Whether something is stateful or stateless depends on how long the state of interaction with it is being recorded and how that information needs to be stored.

Stateless

A stateless process or applicaton can be understood in isolation. There is no stored information or references to past transactions. Each transaction is made as if from scratch for the first time. Think of stateless transactions as a vending machine: a single request and a response.

Stateful

Stateful applications and processes, however, are those that can be returned to again and again, like online banking or email. They’re performed with the context of previous transactions and the current transaction may be affected by what happened during previous transactions. For these reasons, stateful apps use the same servers each time they process a request from a user.

References

Redhat blog

notes

ഹരിതസ്വച്ഛം

22 December 2021

സൗഹൃദങ്ങളുടെ മരത്തണലുകളാണ്
കോളേജ് ഓർമ്മകളുടെ വഴിനിറയെ.
കാലമിത്ര കൊഴിഞ്ഞിട്ടും, ഋതുഭേദങ്ങളാ
വഴികളിൽ നാളിതുവരെ കടന്ന് വന്നിട്ടില്ല,
അന്നുമിന്നും സദാ ഹരിതസ്വച്ഛം.

essay

ഡിസംബർ

1 December 2021
വെള്ളിയാഴ്ച്ച മഞ്ഞകാലം തുടങ്ങുമെന്ന് പത്രത്താളുകളിൽ കണ്ടു. നീണ്ട ഇടവേളക്ക് ശേഷം കണ്ട് മുട്ടുന്ന...
essay

Watchbi - Bootstrap Coming Soon theme

10 October 2021
Watchbi is a minimal and simple responsive coming soon theme built in Bootstrap v5 with Bootstrap icons...
essay

യാത്ര തുടരാനാകുന്നില്ല

29 September 2021
പ്രിയ്യപ്പെട്ടതെന്തോ നഷ്ട്ടപ്പെട്ട മനുഷ്യനെക്കണക്കാണ് ഞാനിന്ന്. എന്താണ് നഷ്ട്ടപ്പെട്ടതെന്നോ...
essay

പ്രിയപ്പെട്ട മമ്മൂക്കക്ക്,

6 September 2021
എനിക്ക് താങ്കളെ വളരെയേറെ ഇഷ്ടമാണ്. നടനാകാൻ ആഗ്രഹിച്ച് ആഗ്രഹിച്ച് മലയാളസിനിമയുടെ കുലപതി...
essay

അരങ്ങൊഴിയെട്ടെ

28 August 2021
കാലമിങ്ങനെ കൊഴിഞ്ഞ പോകവേ, ഓർമകളുടെ ഭാരവുമേറി വരുന്നു. ഇനിയൊരിക്കലും...
essay

Git Cheat Sheet

23 August 2021
Its hard to memorize all the important Git commands by heart, so I thought it's better to keep a personal Git cheat sheet for myself. So I don’t want to Google it every time...
essay

കെട്ട്കഥ

21 August 2021
ഞാൻ അവസാനമെഴുതുന്നത് നിനക്കുള്ള കവിയാരിക്കില്ല. ആരും കേൾക്കാത്ത നമ്മുടെ കഥയാരിക്കും...
notes

മായാസൃഷ്ട്ടി

29 July 2021

നിങ്ങളെപ്പോലുള്ള മനുഷ്യരും, കടലും കാടുകളുമൊക്കെ ഏതോ മായാസൃഷ്ട്ടിയായിരിക്കണം.

അല്ലെങ്കിൽ പിന്നെയെങ്ങനെയാണ് ഇത്ര മനോഹരമായി നിങ്ങൾക്ക് നിലനിൽക്കാൻ സാധിക്കുന്നത്.

notes

യാത്ര സഫലമായിരിക്കുന്നു

28 July 2021

സന്തോഷം പുഞ്ചിരിക്കുന്നിടം തേടി ഞാനൊത്തിരി അലഞ്ഞു. നീണ്ട വീഥികളും ഇരുണ്ട വനങ്ങളും തിരവറ്റിയ കടലുകളും താണ്ടിയ ശേഷം നിരാശനായി വീട്ടിൽ തിരിച്ചെത്തി ഒടുവിൽ ഞാൻ.

അവിടെ അമ്മ ആഹാരം വിളമ്പിവെച്ച് കാത്തിരിപ്പുണ്ടാരുന്നു. നിറഞ്ഞ് കഴിക്കുന്നതിന് ഇടയിൽ ചപ്പാത്തിയും കറിയും നല്ലതാണെന്ന് പറയുമ്പോൾ അമ്മ പുഞ്ചിരിക്കുന്നുണ്ടായിരുന്നു.

യാത്ര സഫലമായിരിക്കുന്നു എന്ന് ഞാൻ തിരിച്ചറിഞ്ഞു.

essay

Tools Recommendations for daily life

26 July 2021
A list of mobile and web applications that will help our daily life productive for productivity and creativity...
essay

Oracle Database XE Installation on Windows

5 July 2021
For testing and learning Oracle Database we can start with Oracle Database Express Edition (XE)...
essay

Welcome to my Digital Garden

1 June 2021
A digital garden is a personal online space where ideas, notes, and knowledge are shared in an evolving, non-linear way.
notes

നീണ്ട യാത്രകൾ

30 May 2021

ചിലപ്പോളൊക്കെ വീടിന്റെ സുന്ദരസുരഭില സുഖങ്ങളിൽ നിന്നും നമുക്കിടക്ക് യാത്ര പറയേണ്ടി വരും,

വേഗന്ന് തിരികെ വരാമെന്ന് പറഞ്ഞിറങ്ങിയ നീണ്ട യാത്രകൾ.

essay

Markdown Cheat Sheet

29 May 2021
For my both blogs I am using markdown for writing the blog posts, so I thought its better to keep a persoanl markdown cheat sheet for myself. So that I don't want...
essay

ഞാനിനിയെന്ത് പറയും

25 May 2021
ഞാനിനിയെന്ത് പറയും നിന്നോട്? കാത്തിരുന്ന വഴികളിലെ ലില്ലിപ്പൂക്കൾ വാടിത്തുടങ്ങിയെന്നോ? അതോ നാം...
notes

ഒരേ ആകാശം

19 May 2021

ഞാനും നീയും ഒരേ ആകാശത്തിന്
കീഴെയുള്ള കാലത്തോളം
നമുക്കിടയിലെ
മഹാസമുദ്രങ്ങളെക്കുറിച്ച് ഓർത്ത്
ഞാൻ ആശങ്കപ്പെടുന്നില്ല!

essay

എഴുന്നൂറ്റിയൊന്നാമെത്തെ വർഷം

12 May 2021
എല്ലാ രാത്രികളിലെപ്പോലെയിന്നും ഞാൻ നീലവാതിൽ തുറന്ന് നടന്ന് തുടങ്ങി. ...
essay

Rootbi - Bootstrap portfolio theme

10 May 2021
Rootbi is a responsive portfolio theme built in Bootstrap which contains an home, blog, notes, projects...
notes

കേരളജനതക്ക് നന്ദി

2 May 2021

പ്രകാശവും പ്രതീക്ഷകളും അറ്റ് പോയ എന്റെ ഇൻഡ്യയിൽ, പ്രാണവായു കിട്ടാതെ പിടഞ്ഞ് തീർന്ന മനുഷ്യർക്കിടയിൽ, ജനങ്ങളേക്കാൾ കൂടുതൽ ജാതിയെ സ്നേഹിച്ച ഭരണാധികാരികൾക്കിടയിൽ,

എന്റെ കേരളം പ്രതീക്ഷയുടെയും പ്രകാശത്തിന്റെയും തുരുത്തായി ഇനിയും നിലകൊള്ളും.

കേരളജനതക്ക് നന്ദി ❤️

essay

നഗരവും ഗ്രാമവും

28 April 2021
ജീവിതത്തിൽ ഓരോ നിമിഷവും എനിക്കുണ്ടാകുന്ന തിരിച്ചറിവുകൾ എന്നെ പലപ്പോഴും അത്ഭുതപ്പെടുത്താറുണ്ട്...
essay

കാവൽ

19 April 2021
നീ ഉറങ്ങുന്നതും ഉണരുന്നതും കാത്ത് ഞാൻ ഉറങ്ങാതെ തുണയിരിപ്പുണ്ട്. ഇരുൾ വഴിയിൽ നീ ഇടറി..
essay

What I Use

18 April 2021
A list of products, tools and essentials that I use for work and daily life. This post is inspired from the website users.tech. Gadgets, Software...
notes

വിഷു ആശംസകൾ

14 April 2021

കണിക്കൊന്നപ്പോലെയുള്ള ചിരികൾ ഉണ്ടാവട്ടെ ഇനി നമുക്കിടയിൽ.

വിഷു ആശംസകൾ ✨

essay

Automate login using Selenium in Python

4 April 2021
Usually, after the login to my computer, I will open the browser and go to websites like GitHub,Evernote...
essay

രാത്രിമഞ്ഞകൾ

31 March 2021
വൈകുന്നേരങ്ങളിലെ വിജനമായ തെരുവിൽ ഞാൻ, പൊടുന്നുടനെയുള്ള തിരിവിൽ കണ്ടുമുട്ടുന്ന...
essay

കൂട്ട്

23 March 2021
അന്നൊരു വൈകുന്നേരത്തെ ധ്യാനപ്രസംഗത്തിലാണ് ആ കപ്പൂച്ചിൻ ശാന്തമായി നടന്നുവന്നത്. പതിഞ്ഞ...
essay

ചിരഞ്ജീവി

17 March 2021
ഞാൻ മരിക്കുമ്പോൾ നിങ്ങൾ കരയരുത്. ജീവിതത്തിൽ നിന്ന് വീണു പോയവനെന്ന് എന്നെക്കുറിച്ച്...
essay

സ്വപ്നസഞ്ചാരി

12 March 2021
സ്വപ്നങ്ങൾ തേടി ഒരു നീണ്ട യാത്രയുടെ തുടക്കത്തിലാണ് ഞാൻ . ഏതൊരു സ്വപ്നമോഹിയെപ്പോലെയും...
notes

പ്രതീക്ഷ

10 March 2021

ഇരുട്ടിൽ നിന്ന് ഞാൻ പൊട്ടിക്കരഞ്ഞപ്പോൾ, കഴുത്തിൽ വെളിച്ചത്തിന്റെ വെള്ളിനൂല് അണിഞ്ഞവൾ പറഞ്ഞു.

പ്രതീക്ഷ കൈവിടരുത്.

ഞാൻ പിന്നെയും ഇരുട്ടിലൂടെയും തണുപ്പിലൂടെയും യാത്ര തുടങ്ങി.

essay

ധ്യാനം

23 February 2021
എൻറെ ഉൾക്കാഴ്ചകൾ നഷ്ടമാകുമ്പോൾ, ഋതുക്കളുടെ കാറ്റുവീശുന്ന, വെളുത്ത പാറക്കൂട്ടങ്ങൾ...
essay

ഇടിമുഴക്കമാകുക

16 February 2021
ഇനിയെങ്ങനെ എനിക്ക് നിശ്ബദനാകാൻ കഴിയും ?! വീടില്ലാത്തവന്റെ വഴികളിൽ വിശന്ന്...
essay

വൃക്ഷമാകുക

13 February 2021
കാട് തേടിയുള്ള യാത്രകളിൽ നാം, പരസ്‌പരം കണ്ടുമുട്ടുന്നതുവരെ പാതകൾ അവസാനിക്കാതെയിരിക്കട്ടെ...
essay

മഴകൊണ്ട് പൊള്ളലേക്കുമ്പോൾ

2 February 2021
മഴകൊണ്ട് പൊള്ളലേക്കുന്ന ചില നേരങ്ങളുണ്ട് ഭൂവിൽ. തണുപ്പായി...
essay

Lightbi Theme Parameters

17 January 2021
Lightbi is a sleek blog theme for Hugo, the fast static site generator. It's thoughtfully designed for a smooth and elegant blogging experience.
essay

Lightbi - Hugo Theme

16 January 2021
Lightbi is a sleek blog theme for Hugo, the fast static site generator. It's thoughtfully designed for a smooth and elegant blogging experience.
essay

Build Your First Blog in Hugo

9 January 2021
In this blog, I’ll introduce Hugo, a fast and flexible static site generator. We’ll cover how to install it and create your first blog step by step.
essay

Let's Start the Journey

2 January 2021
I hope this is the beginning of a long journey. As a software developer, I always learned new things from different blogs...
notes

വീണ്ടും പ്രണയത്തിലാകാൻ

22 October 2020

ഇനി ഞാൻ നിന്നെ മറന്നുകൊള്ളട്ടെ ?

വീണ്ടും കാണുന്നമാത്രയിൽ അതിഗാഡമായി പിന്നെയും പ്രണയത്തിലാകാൻ!

notes

മറവികൾ

9 October 2020

ഉറക്കമില്ലാത്തവൻ്റെ കട്ടിലിലാണ് മറവികൾ ദാരുണമായി കൊലചെയ്യപ്പെടുന്നത്, പൊടുന്നുടനെയവൻ ഓർമ്മകളാൽ വേട്ടയാടപ്പെടാൻ തുടങ്ങുന്നു.

essay

മറവികൾ കൊലചെയ്യപ്പെടുമ്പോൾ

8 October 2020
ഉറക്കമില്ലാത്തവൻെ കട്ടിലിലാണ് മറവികൾ ദാരുണമായി കൊലചെയ്യപ്പെട്ടത്...
essay

രഹസ്യങ്ങൾ

2 October 2020
ഞാൻ നിന്നോട് മാത്രം പറയുവാനാഗ്രിഹിക്കുന്ന രഹസ്യങ്ങളുണ്ട്. ഉള്ളിലെ ഇരുട്ടിൽ...
essay

അനുജന്

15 September 2020
നിന്നെ തന്ന അച്ഛക്കും അമ്മക്കും, ഞാൻ ജ്യേഷ്ട്ടനായ അനർഘനിമിഷത്തിന്, നന്ദി. നില്ക്കാത്ത...
notes

ചങ്ങാതി

14 August 2020

ഒറ്റക്കുള്ള ജീവിതം വല്ലാതെ വേദനിപ്പിച്ചത് കൊണ്ടാവാം ദൈവം ഭൂമിയിൽ ക്രിസ്തുവായും കൃഷ്ണനായും, നീയായുമൊക്കെ പിന്നെയും പിന്നെയും അവതരിക്കുന്നത്.

ഒറ്റക്കായിപ്പോയവരുടെ ചങ്ങാതിയാകുക എന്നതല്ലാതെ വേറെയെന്താണ് ദൈവനിയോഗം.

notes

നീലച്ചിറകുകൾ

14 August 2020

ഒഴിഞ്ഞ പച്ചകുപ്പി കാണുമ്പോൾ ഞാൻ ഓർക്കുന്നത് , വേരുകൾ പിറക്കാൻ ഞാൻ കാത്തിരുന്ന പച്ചയും മഞ്ഞയും കലർന്ന എൻ്റെ വള്ളിച്ചെടികളെയാണ്. അരികിലുള്ള നാല്മണിച്ചെടിയുടെ പൂക്കളെയാണ്.

ഓരോ പ്രഭാതങ്ങളിലും എൻ്റെ സ്വപ്ങ്ങൾക്ക് നീലച്ചിറകുകൾ തുന്നിത്തരാൻ അവ എന്നെയും കാത്ത് ഇപ്പോഴും ആ ജനരികിലുണ്ട്.

essay

ബുദ്ധൻ

11 August 2020
അവളെ ചുംബിക്കുന്നതിന്റെ മൂന്നാമത്തെ നിമിഷത്തിൽ എന്റെ ഉള്ളിലാരോ ഇങ്ങനെ പറഞ്ഞു....
notes

കോറോണകാലം

14 July 2020

ഈ കോറോണകാലത്ത് ആരാധനാലയങ്ങൾ അടച്ചിട്ടപ്പോൾ, ആചാരങ്ങളെ മാറ്റിവെച്ചപ്പോൾ നാം നമ്മോട് തന്നെ പറയുന്നൊരു സത്യമുണ്ട്.

ദൈവങ്ങളേക്കാൾ മനുഷ്യർക്ക് ആവശ്യം മനുഷ്യരെത്തന്നെയാണെന്നുള്ള സത്യം. മറക്കാതെയിരിക്കട്ടെ നാം ഇനിയൊരിക്കലുമത്.

notes

ചിറകുകൾ

14 July 2020

ചുംബിക്കുമ്പോൾ ചിറകുകൾ മുളക്കുന്നതാണ് പ്രണയമെന്ന് ഞാൻ പറയുമ്പോൾ നിങ്ങളെന്നെ കളിയാക്കികൊൾക.

പക്ഷേ ഇത്രനാൾ പ്രണയിച്ചിട്ടും ചിറകുകൾ മുളക്കാത്ത നിങ്ങളെ ഓർത്താണ് എനിക്ക് വിഷമം.

notes

റാന്തൽ

14 July 2020

ഞാൻ പോകുമ്പോൾ
ഒരു റാന്തൽ കെടാതെ
ഉമ്മറത്ത് തൂക്കിയിടാം.
വൈകുന്നേരങ്ങളിൽ അത്
കാണുമ്പോൾ നീ ഒറ്റക്കല്ലന്ന്
ഓർത്ത്കൊള്ളുക.

essay

നിനക്ക്

25 June 2020
നിന്നെ കണ്ട അനർഘ നിമിഷത്തിന്, ആഴമുള്ള കണ്ണുകളുമായി മുന്നിൽ...
essay

മഴ

29 May 2020
ഇനി നമ്മൾ കാണുമ്പോൾ ഏറെക്കാലത്തിന് ശേഷം പെയ്യാൻ കാത്തിരുന്ന മഴ നിറഞ്ഞ്...
essay

സമ്മാനം

8 May 2020
നീ ചോദിച്ചത്ര ചുംബനങ്ങൾ നിറച്ച് ഞാനൊരു കവിതയെഴുതാം. എന്നിട്ട് എൻ്റെ...
essay

നിങ്ങൾ

29 April 2020
പുതിയ കുറിപ്പുകൾ ഒന്നുമില്ലേയെന്ന് കുട്ടുകാർ ഇടക്കിടെ ചോദിക്കും. ജീവിതഭാരങ്ങളിൽ...
essay

ഉള്ളറകൾ

10 April 2020
നിങ്ങളെ സ്നേഹിച്ചതുകൊണ്ട്മാത്രം ഹൃദയം തകർന്നവരുടെ ഉള്ളിലോട്ട് വീണിട്ടുണ്ടോ ?...
notes

പുതുശബ്ദമാകുക

4 April 2020

ആളൊഴിഞ്ഞ നടപ്പാതകളും നിശബ്ദ്ധമായ കളിക്കളങ്ങളും തിരക്കില്ലാത്ത വീഥികളും ഈ കോറോണക്കാലത്ത് എന്നെ ഭയപ്പെടുത്തുന്നു.

പക്ഷേ അപ്പോൾത്തന്നെ എതിർവശത്തെ ഫ്ലാറ്റിൻ്റെ ബാൽക്കണിയിൽ നിന്ന് കുട്ടികളുടെ ആരവങ്ങൾ ഉയരുമ്പോൾ, എല്ലാ ആപത്തുകാലങ്ങളെപ്പോലെ ഈ കോറോണക്കാലവും നാം കീഴടക്കുമെന്ന് അവർ പറയുന്നുണ്ടെന്ന് തോന്നുന്നു.

പ്രീതിക്ഷയുടെ പുതുശബ്ദമാകുക നമ്മൾ പരസ്‌പരം.

notes

മുറിവുകൾ

3 April 2020

നീ തന്ന മുറിവുകളിൽ
പൂക്കൾ വിരിയുമ്പോഴും,
നിന്റെ ഗന്ധമായിരിക്കും.

notes

മുറിവുകൾ

3 April 2020

നീ നിൻ്റെ മുറിവുകളിൽ സൂക്ഷിച്ച് നോക്കുക, അവിടെ നിനക്ക് നിന്നിലെ യോദ്ധാവിനെ കാണാൻ കഴിയും.

നീ അവയിൽ ചുംബിക്കുക, ഇനിയും നിനക്ക് മുന്നോട്ട് കുതിക്കാനുള്ള കരുത്ത് തരും അവ.

കണ്ണുകൾ ഉയർത്തി നീ മുന്നോട്ട് പോകുക.

essay

സ്നേഹിക്കുക

3 April 2020
ഒരുനാൾ ഞാൻ മരണം പൂകും പരിഭവം പറയാതെയിരിക്കുകയന്ന് അതിനാൽ ...
notes

ചോദ്യങ്ങൾ

22 March 2020

ഏറ്റവും ഇഷ്ടമുള്ളതെന്താണ് ?

എൻ്റെ ഏകാന്തതകൾ, എൻ്റെ ചെടികൾ.
എൻ്റെ നിറങ്ങൾ, എൻ്റെ വരികൾ.
എൻ്റെ തവിട്ട് നിറമുള്ള കണ്ണുകൾ,
എന്നെത്തന്നെ.

notes

പുനർജ്ജനിക്കാറുമുണ്ട്

22 March 2020

ഓർമ്മകളിൽ ഇപ്പോഴും ഞാൻ വീണ്ടും വീണ്ടും വേദനിക്കാറുണ്ട്, നീറി നീറി മരിക്കാറുണ്ട്.

പക്ഷേ പിന്നെയും പിന്നെയും പുനർജ്ജനിക്കാറുമുണ്ട്.

essay

ഏകാന്തതകൾ

20 March 2020
ഞാൻ ഏകനായിരിക്കുന്ന മുറി, ഫാനിൻ്റെ ഇരമ്പലുകൾ. മേശമേൽ എന്നെ നോക്കി വെറുതെയിരിക്കുന്ന...
notes

അടുക്കള

14 March 2020

ലോകം കാണാൻ ഇറങ്ങുമ്പോൾ
അടുക്കളയിൽ അമ്മയുണ്ടെന്ന്
മറന്ന് പോകരുത് നീ.
അവരുടെ ലോകം നീ മാത്രമായി
ചുരുങ്ങിയത് ഓർത്ത് കൊള്ളുക.

essay

വളപ്പൊട്ടുകൾ

13 March 2020
ബാല്യത്തിലാണ് ജീവിതത്തിൽ അദ്യമായി ചെപ്പടിവിദ്യകൾ പഠിച്ചത്. വെയിലും മഴയും ഒരുമിച്ച് വന്നാൽ ...
essay

അവർ എൻ്റെ ആരുമല്ല

9 March 2020
പള്ളിയിൽ അന്നേരം മണി മുഴങ്ങുന്നുണ്ടാരുന്നു. ആരും കേൾക്കാനില്ലാതെ മണികൾ ഉറക്കെ...
essay

നിന്നെയോർക്കുന്നതല്ലേ...

14 February 2020
ഇന്നീ തണുപ്പത്ത് ഒറ്റക്കിരിക്കുമ്പോൾ നീയെന്റെ തോളിൽ തല ചേർക്കുന്നത് എനിക്കറിയാൻ...
notes

പ്രണയനക്ഷത്രം

14 February 2020

ഇന്നീ തണുപ്പത്ത് ഒറ്റക്കിരിക്കുമ്പോൾ നീയെന്റെ തോളിൽ തല ചേർക്കുന്നത് എനിക്കറിയാൻ കഴിയുന്നുണ്ട്. കറുത്ത ആകാശത്തേക്ക് വിരൽച്ചൂണ്ടി ആ ഒറ്റനക്ഷത്രം ഏതാണെന്ന് നീ ചോദിക്കുമ്പോൾ, അത് നമ്മുടെ പ്രണയനക്ഷത്രമാണെന്ന് ഞാൻ പറയും. അത് കേൾക്കുമ്പോൾ തന്നെ എന്തൊരു തള്ളാ മനുഷ്യാ നിങ്ങളെന്ന് പറഞ്ഞു നീ കളിയാക്കി ചിരിക്കുമെന്നും എനിക്കറിയാം.

ഇങ്ങനെ നീയരികിൽ ഇല്ലാത്തപ്പോഴൊക്കെ നിന്നെയോർക്കുന്നതല്ലേ പ്രണയം.

essay

ആരാണ് ഞാൻ

7 February 2020
ആരാണ് ഞാൻ?! ജീവതത്തിൽ ഏറ്റവും കൂടുതൽ സ്വയം ചോദിച്ച ചോദ്യമാണിത്. എന്നിട്ടുമതിന് വ്യക്തമായ...
essay

എന്നെ തിരയുന്ന ഞാൻ

31 January 2020
ഇടക്കിടെ എനിക്ക് എന്നോട് വല്ലാതെ ഇഷ്ടം. എവിടെയാണ് എന്നെ തിരയേണ്ടത് എന്നത് ഓർത്ത്...
essay

മുറിവുകളും ചിറകുകളും

10 January 2020
എന്നിൽ ഏറ്റവും പ്രിയപ്പെട്ടത് എന്താണ് നിനക്ക് ? നിൻ്റെ മുറിവുകൾ! അതെന്താ ?ആ മുറിവുകളിൽ...
notes

വിട

31 December 2019

പ്രിയപ്പെട്ട 2019 ന്

വിട പറയുന്നു ഞാൻ, ഇനി നീ എന്റെ ഓർമ്മകളിൽ ജീവിക്കുക. നീ തന്ന ചിറകുകൾക്കും മുറിവുകൾക്കും നിറയെ സ്നേഹം ഞാൻ പകരം തരുന്നു.

ഇനിയൊരു കണ്ടമുട്ടൽ ഇല്ലറിഞ്ഞ് കൊണ്ട് തന്നെ എല്ലാത്തിനും ഒരു ചുംബനം തന്ന് കൊണ്ട് ഞാൻ യാത്ര പറയുന്നു.

essay

വിൺസുതൻ ജാതനായി - ഭാഗം 2

24 December 2019
മുൻ നിശ്ചയിച്ച ഉറപ്പിച്ച അടുത്ത വീടുകൾ ലക്ഷ്യമാക്കി ഞങ്ങൾ നടന്ന നീങ്ങും...
essay

വിൺസുതൻ ജാതനായി - ഭാഗം 1

24 December 2019
ഇന്നിതാ വിൺസുതൻ ജാതനായി.' വർഷങ്ങൾ പഴക്കമുള്ള ആ പാട്ട് കഴിഞ്ഞ...
essay

ഘടികാരങ്ങൾ നിലച്ചിരുന്നെങ്കിൽ

20 December 2019
ഘടികാരങ്ങൾ നിലച്ചിരുന്നെങ്കിൽ എന്ന് നീ എപ്പോളെങ്കിലും ആഗ്രഹിച്ചിട്ടുണ്ടോ...
essay

കാറ്റും ഇലയും

13 December 2019
നമ്മൾ എന്നും ഇരിക്കാറുള്ള മരച്ചുവട്ടിൽ, അന്ന് കാറ്റ് ഇലയോട് എന്തോ സ്വകാര്യം പറയുന്നുണ്ടാരുന്നു. എന്താണെന്ന്...
essay

മഴമരങ്ങൾ നാം

6 December 2019
അന്ന് നിലാവത്ത് എന്നെ മടിയിൽ കിടത്തി പറഞ്ഞത് ഓർമ്മയുണ്ടോ ഇയാക്ക് ?!...
essay

ഓറഞ്ച്മീനുകളുടെ ഓർമ്മകൾ - ഭാഗം 2

15 November 2019
ഇടക്ക് ഓറഞ്ച് നിറത്തിലുള്ള മീനുകളെ കണ്ടാൽ ആവേശത്തോടെ...
essay

ഓറഞ്ച്മീനുകളുടെ ഓർമ്മകൾ - ഭാഗം 1

8 November 2019
ഏറെ നാളിനുശേഷമാണ് ഇന്ന് ആ തൊടിയിലേക്ക് നടന്ന് തുടങ്ങിയത്. അമ്മച്ചിയുടെ...
essay

പുനർജനിക്കുക

1 November 2019
എന്നിലെ മന്ത്രശക്തി മറയുന്നതിന്മുൻപ് ഒരിക്കൽകൂടി എനിക്ക് ചുംബിക്കണം നിന്നെ. പുലരുവോളം ആ കടൽക്കരയിൽ...
essay

പള്ളിയിൽപോകണം

25 October 2019
നാളെ എന്താ പരുപാടി ? പള്ളിയിൽപോകണം. പള്ളിയിൽ പോയിട്ട്? എല്ലാരെയുമൊന്ന് കാണും...
essay

കാത്തിരിക്കരുത് സഖീ

18 October 2019
നീ കാത്തിരിക്കുകയാണെന്ന് എനിക്കറിയാം. ജന്മാന്തരങ്ങൾ നീ എനിക്കായി കാത്തിരിക്കുമെന്ന്. എൻ്റെ...
essay

വീണ്ടും പ്രണയത്തിലാകുക

11 October 2019
ഇനി എനിക്ക് നിന്നെ പ്രണയിക്കുവാൻ കഴിയുമോ?! കഴിയും, നിന്നെമാത്രം. നിന്നോടുതന്നെ ഞാൻ വീണ്ടും വീണ്ടും...
essay

തണുപ്പ് പകരുന്നവർ

10 October 2019
ചില മനുഷ്യരുണ്ട് ഈ ഭൂമിയിൽ, ചുറ്റുമെത്ര ചൂടാണേലും തണുപ്പ് പകരുന്നവർ. അവരുടെ കൂടെയുള്ള നടത്തങ്ങൾ ഇരുട്ടിലും ഉള്ളിൽ...
essay

പോയി അവൻ

4 October 2019
തല ചുമരിൽ അടിച്ചപ്പോൾ അച്ഛന്റെ അദൃശ്യകരങ്ങൾ അവനെ ചേർത്ത്പിടിച്ചിരിക്കാം. അവനിനി...
essay

നിന്നോടുള്ള പ്രണയം

28 September 2019
എനിക്ക് നിന്നോടുള്ള പ്രണയം ആ രാത്രിയാത്രയിലാണ് തോന്നിത്തുടങ്ങിയത്. പാതിരാത്രിയിൽ...
essay

മുറിവുകൾ

20 September 2019
ഉത്തരംതേടി ഏറെ അലഞ്ഞ ചോദ്യമായിരുന്നു അത്. എന്റെ എല്ലാ ചോദ്യങ്ങൾക്കും ഉത്തരം തരുന്ന അമ്മയുടെ...
essay

അനുജൻ

13 September 2019
നീയെനിക്കാരാ..?? മൂത്തപുത്രനോ, അതോ ആത്മസുഹൃത്തോ ?! അമ്മയുടെ മറുരൂപമോ അപ്പന്റെ ആൾരൂപമോ...
essay

നീ

6 September 2019
അന്ന് കണ്ടുമുട്ടിയപ്പോൾതൊട്ട് മനസ്സിലുള്ള ചോദ്യമാണ്, ആരാണ് നീ. സ്കൂളിന്റെ തുരുമ്പുപിടിച്ച ജനാലവഴി...
notes

ഇട്ടൂലിക്കളി

30 June 2019

ഇട്ടൂലിക്കളിയിൽ ജയിക്കാൻ ചൂട് ഇഷ്ട്ടപ്പെട്ടിരുന്ന ബാല്യത്തിൽ നിന്ന് ജീവിതച്ചൂടിൽ ജയിക്കാൻ ഒരിറ്റ് തണുപ്പ് തിരയുന്ന യൗവ്വനത്തിലേക്ക് മാറിയിരിക്കുന്നു എൻെറ ജീവിതം.

essay

നഷ്ട്ടപുഷ്പം

14 February 2019
ഞാന്‍ ആദ്യം അവളില്‍ ശ്രദ്ധിച്ചത് ആ കണ്ണുകളായിരുന്നു. അതിന്റെ തിളക്കവും ആഴവും എന്നേ അത്ഭുതപ്പെടുത്തി...
notes

ഗന്ധം

4 January 2019

ഉറങ്ങി ഉറങ്ങി ഞാൻ കണ്ട
സ്വപ്നങ്ങളേക്കാൾ
ഉറക്കമിളച്ച് ഞാൻ ചുംബിച്ച
ഓർമ്മകൾക്കാണ്
അവളുടെ ഗന്ധമുള്ളത്.

notes

മാറ്റം

3 January 2019

മാറ്റം!
ചിലപ്പോൾ കൊതിപ്പിക്കുകയും
ചിലപ്പോൾ കരയിപ്പിക്കുകയും
ചെയ്യുന്ന മായാജാലം.

essay

ഞാൻ

2 January 2019
ഞാൻ ബിനോ കൊച്ചുമോൾ വർഗീസ്. ഇനി ഏറെ ദൂരം പോകാനുണ്ടെന്ന് സദാമന്ത്രിക്കുന്ന മനസ്സുമായി...
1 January 2019
1 January 2019
1 January 2019
1 January 2019
1 January 2019
1 January 2019
1 January 2019

Awesome personal websites

1 January 2019

Here’s a curated collection of awesome personal websites by inspiring individuals across the web. These creators contribute to the online community by sharing knowledge, resources, and personal insights, promoting a culture of continuous learning and support.

Most of these sites feature a diverse range of topics, from personal reflections and technology to design and media. I’ve included brief bios and categorized each site based on its primary focus, though these categories are flexible. I encourage you to explore these sites and discover your own favorites.

This list will continue to grow, and I hope you find inspiration among the websites and people below!

Attenion please!

You can explore the wonderful personal blogs curated by Manu on Blogroll website.

Maggie Appleton

Maggie makes visual essays about programming, design, and anthropology.

Shawn Wang

Writer, Speaker, Developer Advocate. He help developers to Learn in Public!

Sara Soueidan

Sara is an independent inclusive design engineer, author, speaker, and trainer.

Brian Lovin

Brian is a designer, podcaster, writer, and software tinkerer.

Max Böck

Max Böck is a front-end developer and co-founder of Codista, a software studio in Vienna.

Kailash Nadh

Kailash is a hobbyist software developer and a tinkerer.

Lee Robinson

He is helping developers build a faster web.

Monica Powell

She is a software engineer, content creator & community organizer

Fatih Arslan

Software Engineer interested in Photography, Design, Distributed Systems, Go, Tooling, and Coffee.

Josh W. Comeau

He is solo indie hacker focused on empowering up-and-coming software developers.

Joel Gascoigne

A problem solver at heart and the Founder CEO of Buffer.

Manuel Moreale

Developer and designer freelancer

Cassidy Williams

A startup advisor and investor, developer experience expert, and meme-maker on the internet.

Julia Evans

A software developer and programming zines creator.

Robin Rendle

A British designer, writer, and typographic nuisance from San Francisco.

Paul Graham

He is a programmer, writer, and investor.

Kev Quirk

Writing about web design, blogging, technology, watch collecting or homesteading.

Tobias van Schneider

An award-winning designer living in Stockholm New York.

Ben

He is trying to understand the world, building things that improve it, and talking about it on the Internet.

Candost

Hunting timeless insights into humans and software and helping others on the way.

Nicolas Magand

He write and comment mainly on software, the internet, Apple, and media news.

Keenan

On a journey to heal his inner-creative.

Rach Smith

Developer building software for CodePen, wife, mother of two, productivity nerd and recovering screen addict.

Spencer

Programmer, artist, and internet caretaker.

Ken

Designer, sensemaker, word nerd, giving dimension to ideas.

Arun Venkatesan

He is a product designer, engineer, photographer, and writer.

Blog Roadmap

This is the roadmap for my blog, where I list the features I want to add to this website.

1 January 2019

Mar 26

  • Add comments to the posts.
  • Add a random button to view a random post from the website.
  • Add ‘Made in India’ tag to the footer.

Changelog

Website updates and events, listed in reverse chronological order.

1 January 2019

19 Jul 26

  • Removed Google Analytics.

16 Jul 26

  • Updated the Tags page to match the Rooms section layout: notes now display in full, while essays appear as card links.

01 Jul 26

  • Added muliple themes in the website.

29 Jun 26

  • Added All library page combining both Malayalam and English books.
  • Moved all book data to a single data/books.yaml file as the source of truth.
  • Created book-shelf-data shortcode that reads from the data file and filters by language, replacing the duplicated shortcode lists in each library page.
  • ML and EN library pages now use the shortcode template instead of maintaining separate book lists.
  • Replaced section folders (room, room-essays, room-notes, writer-space, coder-space, ml-space) with flat .md files — content, URLs, and page logic are all preserved.

03 Jun 26

  • Fixed hover animation on travel page cards — transition was missing on the base .card class, causing the lift effect to snap instead of animate.
  • Improved travel page card style — uniform image height, image zoom on hover, portrait aspect ratio maintained, card body pinned to bottom with mt-auto.
  • Converted travel page sections (Bahrain, Georgia, Kerala, etc.) into accordions — multiple sections can be open at the same time, Bahrain opens by default.
  • Improved footer styling while keeping the existing 3-strip structure — boxed social icon buttons, separator dots in the credits row, hover underline on nav links, and a quote icon in the bottom bar.
  • Fixed note card animation — a duplicate .note-card CSS block was overriding the transition property, removing the translateY animation on hover.
  • Created a unified pagination partial used across all section pages — smart page window with ellipsis, chevron icon nav buttons, and theme-aware styling using CSS variables. Replaced Hugo’s deprecated _internal/pagination.html in all layouts.
  • Improved ML library page — fixed broken <h> tag in the shelf shortcode, 2-column mobile layout, consistent aspect-ratio: 2/3 for book covers, excluded book images from medium-zoom.
  • Redesigned tags page — replaced accordion with a tag cloud, popularity-based sizing, live filter input, and inline post panel that shows posts for the selected tag without navigating away.
  • All the above improvements were made with the help of Claude Code.

03 May 26

  • Made improvements in image figure shortcode to handle images in posts to handle custom width and other details.

01 Apr 26

  • Changed website background to #F4F5F6 and post background to #FFFFFF.

29 Mar 26

  • Removed fw-light from the intor heading and description in the home page.

24 Mar 26

  • Modified footer text to ‘Made with ♥️ and ✨ by Bino from India’.
  • Improved pages.

23 Mar 26

  • Modified Blog Statistics page to add the target and actuals posts for tracking my writng progress.
  • Added Blog Roadmap page to list the features I want to add to this website.
  • Removed slash pages and added pages to list all my links in this website.
  • Improvements in trravel page design.
  • Removed ‘More button’ from the menu bar and added pages link.
  • Imporved pages link details.

14 Mar 26

  • Added movies page to list all the movies and series I watched.

11 Mar 26

  • Updated Hugo version to v0.157.0.
  • Added new shortcodes to image responsive in library and other pages.
  • In Now page last modified date is disabled.
  • Disabled navigation between pages using the left (←) and right (→) arrow keys as its conflicting with Glightbox.
  • Added sketches and photos in slashes page.

10 Mar 26

  • Instead of Now page page link travel page page link added in the more section.
  • Updated open graph and twitter protocol metadata tags updated to show the image correctly.
  • Updated scheme metadata to include more details.

08 Mar 26

07 Mar 26

06 Mar 26

  • Added ‘Playfair Display’ font for headings in the website.
  • Updated contact section in the blog post to add contact page link.
  • Updated About page to add contact page link.
  • Updated headings in the main page as h2 and blog listing titles as h3.
  • Modified home page to show image cards in the Desk section.
  • Updated profile pic in about page.
  • Modified Wall page to fix the dark mode issues and updated card to add images..

01 Mar 26

  • Added photos page for my random clicks. Still work in progress.

26 Feb 26

  • Updated Bootstrap to version 5.3.2
  • Removed dark theme using by inversion method and added dark theme based on Bootstrap.

25 Feb 26

24 Feb 2026

  • Improvements in footer section padding and font sizing. Also added slashes, favorites, and Wall links.
  • Removed now from the more section in the menu.
23 Feb 2026
18 Feb 2026
06 Feb 2026
21 Jan 2026
  • Created projects section and updated in the menu.
29 Oct 2025
  • Updated images back to the essay sections.
17 Oct 2025
  • Added last updated time in the footer.
09 Oct 2025
  • Reduced space between cards in the Room, and Notes.
21 Sep 2025
  • Changed background to #FAFAFA and the blog posts background as white.
26 Aug 2025
  • Card color changed from #FFFFFF, again.
19 Aug 2025
  • Modified footer to display random quotes in the footer when user is refereshing the page.
  • Others section added in the main menu.
18 Aug 2025
  • Card color changed from #FFFFFF to #F9FAFB.
  • Text color changed from hsl(222deg, 22%, 5%) to #090408.
  • Modified title and sub heading to make it more bold.
  • Footer texts color also updated from #596073 to #F9FAFB.
  • Updated bio with links in the home page.
05 Aug 2025
04 Aug 2025
  • Added statistics in the home page in the ‘more on this site’ section.
  • Added Favourites section in the home page.
30 Jul 2025
  • Modified cards to add rounded (rounded-4) corner in every sections.
23 Jul 2025
  • Added Essays and Notes section in the Room which will include all the posts other than Malayalam posts.
16 Jun 2025
12 Jun 2025
  • Changed Room style to display the full content if the post is from the notes section and otherwise summary only with a read more button.
  • Changed hovering color of essays to same blue as in the all section.
28 May 2025
  • Added blog statistics in the webiste. This is one of the updates I’m most satisfied with recently.
  • Restructured internal pages for easy maintenance.
  • Minor improvements in the cards in the home and all section
27 May 2025
  • Renamed Garden to Room, Coder to Workbench, Writer to Desk.
  • Removed colored border for essays and notes in the All section of the sections.
26 May 2025
  • Changed Coder space and Writer space to feed like structure, If its a note or drawer post, it will show full. Otherwise summary with link will show.
  • Added colors to identify the post type in the above spaces.
24 May 2025
  • Updated the About page to dynamically display featured blog sections using front matter tags, replacing the previous hardcoded approach.
  • Heading icons fonts size reduced in all the spaces.
20 May 2025
  • Added icons in the writer and malayali space posts listing.
19 May 2025
  • Added icons in the coder space headings such as All, Essays, and notes.
18 May 2025
  • Updated back the post images from the preview cards in the Desk section.
  • Hovering color changed to #FF373C from #27AE60.
13 May 2025
  • Added section link in the top blog post, so user can back to the list of section.
10 May 2025
  • Menu changes to Malayali from ML.
  • Malayalam font added in post preview and Malayali Space.
  • Cleaned up the layout by removing post images from the ‘More Posts’ section beneath each article.
09 May 2025
  • Added Writer space section to view the all the non tech essays and notes in one section.
  • Redesigned the home page to incorporate Garden, Coder space , Writer space, and Malayali Space.
  • Modified menu to add the spaces and removed the sub links like Essays, Notes, Desk, and Drawer.
  • Removed post images from the preview cards in the Desk section.
08 May 2025
  • Added navigation between pages using the left (←) and right (→) arrow keys.
  • Added Coder space section to view the tech essays and notes in one section.
  • Feed section renamed to Garden.
07 May 2025
  • Feed style changed from cards design to minimal listing style.
06 May 2025
  • Added Shelf to write my notes about everything other than tech. Drawer will be used to write poetry, musings, and social media posts only.
05 May 2025
  • Added a menu footer below the actual footer to include various links.
  • Added shadow effect in the blog post images.
10 Dec 2024
  • Added date in the feed page.
23 Nov 2024
  • Added English books to the library section.
  • Also added menu for English and Malayalam books.
  • Updated Malayalam writings, Now, Library, and tags links in the home page.
19 Nov 2024
  • The heading alignment issue in the Drawer and Notes sections has been fixed.
  • Fixed: Images are opening twice when clicking in gallery.
17 Nov 24
  • Inside a card, added a ‘Reply via Email’ link at the end of each blog post.
  • Also added email share button in the social sharing section.
  • Added tag icon along with tags.
14 Nov 2024
  • Updated the feed to organize and display all posts grouped by month and year.
13 Nov 2024
  • Updated about content and minor modifications in the styles.
12 Nov 2024
  • Changed text colur (hsl(222deg, 22%, 5%)) and heading color (#0F1031).
11-Nov 2024
  • Implemented image gallery feature.
  • Added links curated by me to the desk section. Previously, link posts were hidden.
03-Nov 2024
  • Reverted drawer style to card with lesser width.
  • Card footer added for feed section.
02-Nov 2024
  • Changed drawer style from regular card to masonry layout.
01-Nov 2024
  • Added read more link in the search results.
  • RSS feed updated with full content.
31 Oct 2024
  • Added search option in the menu.
27 Oct 2024
  • Started to migrating my various social media posts to drawer.
22 Oct 2024
  • Updated 404 page. Do you want to view that, go here.
  • Added explore button in the home page to get an idea about my blog and various links in it.
21 Oct 2024
  • Reactivated drawer link on the menu.
  • Temporarily disabled now link from the menu.
19 Oct 2024
16 Oct 2024
08 Oct 2024
18 Jun 2024
  • Added drawer link on the menu.
29 May 2024
  • Removed images from tech essays.
2 Apr 2024
  • Tags link updated in the feed page.
17 Mar 2024
  • Updated last modified date in posts.
07 Mar 2024
  • Collections removed.
01 Mar 2024
  • Collections link removed from the menu.
21 Feb 2024
  • Link color updated as green.
  • Added notes and removed collections from the home page.
02 Feb 2024
  • Improved dark mode CSS and JS to avoid the flashing when switching pages.
  • Limited image zooming to blog posts only.
  • Added collections of links and notes from the web community on various topics.
  • Added link to notes in the menu.
  • Removed Codbix newsletter posts from collections.
01 Feb 2024
  • Image zoom feature implemented.
29 Jan 2024
  • Feed link added in the menu.
27-Jan-2024
  • Feed page implemented.
24 Jan 2024
  • Secondary color added to summary text and card hover style added.
14 Jan 2024
  • Added drawer section.
02 Jan 2024
  • Removed my reading highlights from this website.
01 Jan 2024
  • If there is no description auto summary will show in the blog cards.

Contact me

1 January 2019

Send an email

Comments? Questions? Suggestions? I would love to hear from you. Please write to binovarghese8120@gmail.com. I will try to reply as soon as I can.

Signal

If you’re on Signal and prefer to chat, my username is bino.02 or click this link.

I’ll read it

If you have a blog, or you’ve written something and are looking for your first reader, send it to me. I will read it.

Projects

If you like to suggest a feature or report an issue in any of my projects, please open an issue on GitHub against the repo (if you can), or send me an email.

Social media

Even though I’m on Instagram, LinkedIn, and X, I don’t check them regularly, and replies to DMs may take days, months, or sometimes never arrive.

Credits

1 January 2019

This site would not have been possible without the help of many open source tools and services, and I’m deeply grateful to all the contributors who have shared their work with the community.

Built with a JAMstack architecture, the site uses Hugo as the static site generator and is hosted on Netlify. It’s served securely via HTTPS, with a free SSL certificate provided by Let’s Encrypt and automatically managed by Netlify for seamless delivery.

Other tools used include:

Disclaimer

1 January 2019

Personal website and opinions

This is my personal website, and the opinions expressed here are entirely my own. They do not represent the views of any organization or individual I may be associated with. My thoughts and opinions evolve over time; I see this as a natural outcome of continuous learning and maintaining an open mind.

This blog serves as a semi-permanent snapshot of my thoughts at various points. As such, the views expressed in past posts may not reflect the ones I hold today, and may change as I continue to grow.

Technical posts

I often share technical posts, ranging from long essays to short notes. I treat this website as a digital garden, where content is constantly being refined, updated, and interconnected. These posts describe processes that worked for me at the time of writing. If I discover errors or find better solutions, I will update the content. I aim to provide context behind my decisions, but keep in mind that these posts are written primarily for my own reference.

I cannot guarantee that my technical posts are error-free, and I am not responsible for any harm to your systems, data, or anything else as a result of following the information provided. All technical content is provided “as-is,” with no warranty whatsoever.

Non-technical posts

In addition to technical content, I also share reflections on topics such as poetry, books, philosophy, travel, and life in general. These non-technical posts are for informational and personal expression purposes only. The views and insights reflect my experiences and research at the time of writing. While I strive for accuracy, I do not claim to be an expert in these areas, and the content may not reflect the most current information.

Readers should seek professional advice if needed, as my reflections are not intended to serve as professional guidance.

This disclaimer is subject to change at any time without prior notice.

Pages

1 January 2019

These are the pages on this site, paths that lead you to its many corners.

About me

  • About me — Get to know who I am.
  • Contact — Ways to get in touch, including my social media links.

The Writings

Other Updates

  • Projects — Things I’m working on beyond this blog.
  • Travel tales — Photos and stories from my journeys.
  • Movies — A list of films I’ve watched.
  • Photos — Random clicks, mostly from my phone.
  • Sketches — Occasional sketches, simple and silly.
  • Now — what I’ve been up to lately.
  • Uses — The tools I use, both hardware and software.

Library

Meta

Miscellaneous

  • The Wall — A place for posters and paths to different corners of the site.
  • Search — Explore the site and (hopefully) find something magical.

Sketches

1 January 2019

What I Use

1 January 2019

This is a curated list of the apps, tools, and everyday essentials I use for work and daily life. It covers everything from software I depend on, to hardware I love, and even a few small things that make my life smoother.

Hardware

Mobile

  • iPhone 15 Pro
    The color is Natural Titanium. I love switching cases every few months and have built up a small collection.
  • AirPods Pro 2
    These are my everyday carry headphones—what I love most is the noise cancellation.

Software

The below are the default apps I am using and this is inspired by default apps site by Robb Knight.

📨 Mail Client: Apple Mail
📮 Mail Server: Gmail
📝 Notes: Apple Notes and Obsidian.
✅ To-Do: Notepad and pen are working fine for me.
📷 Photo Shooting: iPhone
🎨 Design: Canva
📆 Calendar: Apple Calendar
📁 Cloud File Storage: iCloud and Google Drive
📖 RSS: NetNewsWire
🙍🏻‍♂️ Contacts: Apple Contacts
🌐 Browser: Safari for general purpose and Brave for work.
💬 Chat: WhatsApp, Discord
🔖 Bookmarks: Brave
📑 Read It Later: Raindrop
📜 Word Processing: MS Word
📈 Spreadsheets: MS Excel, Google Sheets
📊 Presentations: N/A
🛒 Shopping Lists: Apple Reminders
🍴 Meal Planning: N/A
💰 Budgeting and Personal Finance: Excel, ya its working for me.
📰 News: No, thank you.
🎵 Music: YTMusic
🎤 Podcasts: Apple podcasts
🔐 Password Management: Apple Passwords
🧑‍💻 Code Editor: VS Code
✈️ VPN: N/A
🗄️ Code Repositories: GitHub
💽 Hosting: Netlify
📖 Reading: Kindle (Nowadays mostly physical books.)
📓 Journaling: Apple Journal
🗺️ Maps + Driving Directions: Google Maps
⌨️ For learning typing: Typing club
🪶 Malayalam dictionary: Olam
✏️ Programming font: FiraCode

As we all know, we use many apps and software daily. Here, I’ve highlighted just the main ones, though I’ll add more if I come across something interesting. For more setups, check out the awesome collection at uses.tech, where people share their favorites.

Coder

A collection of tech essays and notes.

1 January 0001

Room

A collection of tech notes, personal reflections, and evolving thoughts about whatever’s caught my curiosity.

1 January 0001

Room Essays

A collection of long form tech notes, and personal reflections.

1 January 0001

Room Notes

Short notes and musings — collected thoughts and quick reflections.

1 January 0001

Writer

Essays, poems, and personal reflections from the desk and drawer.

1 January 0001

എല്ലാം

ഒരു യാത്രികൻ്റെ മരപ്പെയ്ത്തുകൾ

1 January 0001