Category: Miscs

Never Quit

“You may be the only person left who believes in you, but it’s enough. It takes just one star to pierce a universe of darkness. Never quit.” ― Richelle E. Goodrich

“The world’s greatest achievers have been those who have always stayed focused on their goals and have been consistent in their efforts.” ― Roopleen

The separation of talent and skill is one of the  greatest misunderstood concept for people that are trying to excel, who have dreams that wanna do things. Talent, you have naturally. Skill, is only developed by hours and hours and hours of beating on your craft. I’ve never really viewed myself as particularly  talented, where I excel is ridiculous sickening work ethic. You know while the other guys are sleeping, I am working. While the other guys are eating, I am working. There is no easy way around it.

No matter how talented you are, your talent is gonna fail if you’re not skilled. You know – if you don’t study, if you don’t work really hard and dedicate yourself to be better every single day, you’ll not be able to communicate with the people or the way that you want. The only thing that I see that is distinctly different about me is I am not afraid to die on a treadmill. You might have more talent than me, you might be smarter than me, but if we get on the treadmill together, these are two things – Either you are getting off first or I am gonna die.

There are those of you right now – your life is not where you want it to be. You’re messed up. Or you’re doing good, but you can’t find a way to get to great. But remember, JUST BECAUSE YOU FAIL, DOESN’T MAKE YOU A FAILURE! One of the things you have to understand is that you are supposed to fail. You are supposed to fucking fail. Because failure is the stepping stone to success. It’s not just a clique.

“Success is not obtained overnight. It comes in installments; you get a little bit today, a little bit tomorrow until the whole package is given out. The day you procrastinate, you lose that day’s success.” ― Israelmore Ayivor

I don’t care how good you are. I don’t care how talented you are. I don’t care how much you work on yourself. There are sometimes when things aren’t gonna go right. They just are not going to go right. There are times when anything that can happen, will happen. You gotta believe in yourself. You gotta believe in your abilities. You gotta believe in your service, your company, your ideas, unquestionably! You gotta have faith and that faith gives you patience. That’s not gonna happen as quickly as you want it to happen. It’s your dream, if you want it to happen, get your butt up and make it happen! If you want to have it – RISE and GRIND.

If you believe in yourself and have dedication and pride and never quit, you’ll be a winner. The price of victory is high but so are the rewards. I dare you not to go back to sleep, I dare you to get up and I dare you to chase your dream. It’s possible you can live! Whatever comes to you, don’t run from it. Don’t try and duck it like most people do. Winners are not the people who never fail, but the people who never quit. Never quit. Run towards it. If you wanna make your dream come true, you have to stay focused. Some people love to get even and then get ahead. You gotta stay focused on where you want to go.

Think. Where are you going with your life?

 

Web Cache Management

This post is about the Caching. The importance of Caching, its pros and cons,web cache management, cache algorithms and some caching strategy techniques are further described below.

Introduction

In computer science, the term “cache” is a component that stores certain types of data for future request so that they can be served faster. Caches are high-speed storage mechanism, either a part of the main memory or an independent high-speed storage device like SSD. A simple example of cache can be seen in a browser when we hit the back button. The browser almost instantly pulls the previous webpage without any delay. The data fetched previously are stored in a browser’s memory. This is possible using cache. Most of the modern browsers today stores data for frequently visited websites as a cache to better serve users.

Importance of Caching

The types of data that are stored vary in different contexts. In case of CPU, many data are fetched and used repeatedly. When these data are stored in a cache memory that is near to the CPU, processing occurs faster resulting in higher performance of a computer system. In web applications, there are many static data that do not change for a long period of time. These types of data can be stored as a cache. Storing previous responses for data in a web cache results to lower the amount of information that needs to be transmitted across the network. This also reduces bandwidth and repetitive processing for a web server. The main purpose of having a cache is to store program instructions that are frequently re-referenced by software during operation to achieve short data access times, reduced latency and improved I/O.

Pros and Cons of Caching

Caching improves overall performance of the system by reducing the numbers of resources that would otherwise be used. It saves the use of costly bandwidth. Likewise, it is also a fast way to serve as resources. But it is not always easy to achieve what caching can provide. For example, in case of Web Caching, faster page loading cannot always be guaranteed. A cache hit occurs when the requested data is found in the cache memory and a cache miss occurs when it cannot. Slower performance can be experienced if the resources are not found in the cache memory. Also, if the cache uses the weak cache consistency protocol, there is always the risk that a stale copy is fetched when an up-to-date copy is needed. Because going via one or more proxy server is more complicated, there is an increased risk in the shuffle of this complexity that a web resource being transferred might get lost or mangled as it is passed along. Many caching algorithms are implemented, for instance to search a cache faster and reduce waiting time for a user. This gives rise to another problem. This increases the complexity of a system by having to implement caching algorithms and makes harder to maintain whenever the business needs change.

Cache Management

Cache management refers to proper use of the cache system. We already learnt that caching can be implemented in various fields of computing. This section will be mainly focused on Web Caching. Before that, we have to know about different Caching Algorithms.

Cache Algorithms:

cache-block
Fig: Cache Block

Cache capacity is not finite. Therefore, blocks in the cache memory need to be evicted in order to put a new data in it. Better performance is achieved by choosing better replacement decision.

Like mentioned previously, various algorithms are designed and implemented to achieve best performance using caching. These algorithms are called cache algorithms. Since cache memory is expensive and hence limited, the algorithm should determine which items to discard to make room for the new ones. Below are the existing on-line cache replacement algorithms and their brief descriptions as mentioned in The Multi-Queue Replacement Algorithm for Second Level Buffer Caches:

  1. Least Recently Used (LRU):

LRU has been widely employed for buffer cache management. It replaces the block in the cache which has not been used for the longest period of time.

  1. Most Recently Used (MRU):

It is also called “fetch and discard” replacement algorithm. Blocks that have recently been accessed in a second level buffer cache will likely stay in a first level buffer for a period of time, so they won’t be reused in the second level buffer cache in the near future.

  1. Least Frequently Used (LFU):

It replaces the block that is less frequently used. The motivation for this algorithm is that some blocks are accessed more frequently than others so that the reference counts can be used as an estimate of the probability of a block being referenced.

  1. Frequency Based Replacement (FBR):

It is the combination of LRU and LFU to achieve the benefits of both algorithms. It maintains the LRU ordering of cache blocks, but the replacement decision is based on the frequency count.

  1. Least kth-to-last Reference (LRU-k):

Replacement decision is based on the reference density observed during the past K references, i.e. the time of Kth-to-last reference of the block.

  1. Least Frequently Recently Used (LFRU):

It strives to replace blocks that are the least frequently used and not recently used. It calculates a value called Combined Recency and Frequency (CRF), and replaces the block with minimum CRF value.

  1. Two Queue (2Q):

This algorithm is designed to remove the cold blocks quickly.

Web Caching:

caching in a distributed environment

Fig 2: Caching in a Distributed Environment

In case of web applications, there are different approaches to achieve proper management of caches. These approaches vary according to technologies. However, they can be categorized as browser level caching and server level caching according to where they are implemented. Browser level caching can be controlled by developers and users, whereas server level caching can be controlled only by the developers. Examples of browser caching include storing static contents like images and script files in the user’s browser instead of requesting the same content over and over again. Server side caching includes of storing the computation results in the server cache so that it is instantly available when the user requests it. Reddit for instance sorts out millions of posts by its users based on different categories like hot, new, rising, controversial, etc. These computations requires not only a substantial amount of time, but also multiple access to large databases. It’s impossible to calculate and fulfill these data as they are requested from the users. Hence, Reddit precomputes and stores those results in a cache for making it readily available to users when it is requested.

There is no perfect cache policy. It depends on traffic pattern, type of data served, and application specific requirement for data freshness. Below are some of the techniques for caching strategy as mentioned in the Google Developers article:

  1. Use consistent URL:

To avoid fetching of same content multiple times, we have to avoid frequent changes of URL.

  1. Ensure that the server provides a validation token(ETag):

This will eliminate having to transfer data if the content has not been changed on the server.

  1. Identifying which resources can be cache by the intermediaries:

These types of resources can be cached by CDN and other intermediaries.

  1. Determine optimal cache lifetime for each resources:

Different resources might need different cache lifetime. Determine the approximate age for each of them.

  1. Determine the best cache hierarchy for the website:

As mentioned earlier, different application required different cache hierarchy. Determine what best for your application.

References

[1] Pros and Cons of Web Caching,http://www.macs.hw.ac.uk/~hamish/3NI/topic172.html accessed: 3rd May 2015.

[2] Yuanyuan Zhou , James F. Philbin and Kai Li, “The Multi-Queue Replacement Algorithm for Second Level Buffer Caches, ” USENIX Annual Technical Conference, Boston, Massachusetts, June, 2000.

[3] HTTP Caching,https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching, accessed: 3rd May, 2015.

This content was researched and written for the college project. If you liked this article, please feel free to check my other page  CrazyTechTips  where you will find cool, interesting and some crazy tech stuffs! Your words and support mean the world to me. Stay along. Thank You!! :)

The offline people

The Offline People!

Introduction

The internet is a global system of interconnected computer networks, where any computer in a network can link up to the information stored in any other computer following a certain set of protocols. It is accessed through satellites, telecommunication lines, optical fibers, modems, routers, and brought to the computer devices by converting analog signals to digital computer signals. In most parts of the world that are economically and politically stable, internet is used in almost all facets of daily life creating a massive impact on lives of people and civilization every day. Despite the fact that the use of Internet makes human life easier, a current survey reveals that 2/3 of the world is still not connected with this massive pool of information. During the age in which we can get the information in any corner of the world in a press of key, the majority of the world doesn’t even have the resources to connect to internet.

The World Wide Web isn’t that worldwide as its name suggests. A study by McKinsey & Company about the barriers to Internet adoption around the world illuminates a rather surprising reality: more than 60 percent of the world’s population remains offline. Without removing crucial deterrents to Internet adoption, little will change – more than 4 billion people may be still left behind.

Data Analysis

  1. Survey of 2014.

The sheer number of people that are not connected to the internet in some countries are staggering. Be it poor infrastructure, culture, region, education, or economy, the problem can be seen more in the third world countries.Even the language plays a great role in the unavailability of internet in many areas.

  1. Results:

According to the Washington Post, some 64% of the offline population live in rural areas, where information related to health care, education, and employment and hard to access.

For instance, in India, roughly 45% of the population lives without electricity. This makes availability of internet access in those areas hard to imagine.

It’s a matter of inequality too. For instance in developed countries like United States, Addressing the widening gap between the rich and poor could make internet more accessible for those at the bottom of the pyramid.

Age also determines the usage of internet. More than 80% of people who aren’t connected to the Internet are younger than 55 years, and more than 42% of younger than 25 years. That includes children, some of whom can’t hold a mouse, let alone manage a modem. Also, it consists of those elders who aren’t much familiar with the internet and hence not connected.

  1. Problems:
  • The devices and the service plans are too expensive and the people are poor.
  • Poor infrastructure, employment, education and health care of those offline population residing in rural areas impede the internet adoption.
  • People aren’t much aware about the value of internet and possibility with it.
  • Lack of education: because 900 million offline people are found to be illiterate.
  • Power supplies are way too limited and costly too.
  • No local languages are available for the contents on the internet.
  • Mobile networks are few and far between.
  • Large amount of data isn’t supported by the available networks.
  1. Possibilities:

Some of the people who were interviewed in the survey of internet.org:

Nisha: A puppeteer, a fire dancer, a split performer, yet unknown to the world.

Erika and Esmerelda: Robotics engineers, without the help of internet.

Lain: Owns a shop with varieties of antique materials, but the world doesn’t know him.

In today’s economy of knowledge, the abovementioned people are still disconnected from the power of internet. They are unable to share their amazing work to the rest of the world, not because of their lack of knowledge and skills in their field, but due to the unavailability of internet connection where they live. They would be happy to keep us posted, but we’ll have to find them first. Perhaps, the internet in the years to come will create opportunities for them that they’d never have otherwise.

Analysis Conclusion

The given data shows us that that in the developing and underdeveloped countries and even in some developed countries, the use of Internet should be expanded. People need Internet not only to interact with other people around the world, but also to share their knowledge, ideas and perspective with the rest of the world. If we achieve this dream of getting every corner of the world connected to the internet, the possibilities of development will be way too high than the current situation.

Recommendation

The third world countries are developing in every aspects including education, health or technology. The availability of internet on the area where there is little usage of internet should be increased. The hurdles for implementing the provision of internet are education, economy, age and expensive internet connections. Due to lack of supervision and ignorance too, this situation is not seemingly developing.

  1. Free Basic Services:

Free basic services should be provided to these third world nations where the internet access can become less affordable. People should be able to browse their selected categories of health, business, food, employment or any informational websites, without or much less data charges.

  1. Fixing the Bandwidth issues:

Even a text message or a simple webpage requires bandwidth which is scarce in many parts of the world. The nations can merge up with the ITs in global partnership that will work to overcome the problems faced including the internet access available in a wide range with a fine speed in affordable prices.

  1. Taking Connectivity to the next level:

Various social networking sites like Facebook, Twitter. LinkedIn etc. have been developing ways to make affordable internet access possible in communities around the world where people can add up their circles and make their online presence that would consecutively help in widening their social network and in a cheap rate.

  1. Education and Awareness:

The use of Internet has various advantages which the offline people are unknown about. Further making them aware of the pros and cons and the benefits they could grab in every opportunities, the Education system has to change. Once their way of thinking about the internet grabs the track, development starts.

  1. Economy:

The third world countries have poor economy. If people aren’t able to pay for the internet services they are provided, that hinders the growth. This is the world of internet. It should be made a priority. So, keeping in view the economic conditions, affordable and efficient services should be provided.

  1. Publicizing:

Many sites including Internet.org has been publicizing the importance of internet. Government should allocate budgets for these kind of funding and advertising campaigns so that the importance of internet can get to public.

Conclusion

Internet traffics from mobile devices is growing so fast these days that it has been surpassing the desktop traffic. Rendering affordable mobile services would reduce half of the issues against the holding back of the internet in almost two-third of the world. Joint efforts by the government as well as the private firms and academia will result sure growth in this sector. Internet gives an online identity, opportunities for success and life changing ideas and perspectives. Information are a key away from us. Thus, making efforts together we can remove all the barriers and give the unconnected majority of the world the power to connect.

 

Men, Thornbush and Feminism

Men, Thornbush and Feminism...

Plant not so easily your thoughts

on the females who come in your lives.

Beware! they might be nurturing nettles,

those that can prick you at every joints;

and bend your independency at wrong angles.

You might be a true valentine – a true lover!

Yet, Be alert.

Although lustered in green meadow;

shaping your seeds of trust and belief,

and unknown but heard of eyes sunkened,

your pockets bare and emptied; too in thoughts

you become one another citizen,

lost in wilderness and closed in solitude.

The nettles prick you at regular intervals

though you try much to tend her with care;

your every magic of words, touch, compassion

fail you all in a while to a world of desolation.

All you hear in and around is the disheartening throbs,

neither will you escape nor make it escape,

the circle of thornbush – the circle of feminism.

All in all finally left at self mercy.

You are accounted to be – a know nothing.

Thinking About You …

As I lie awake all these hours in my bed,

It’s just you that has been running through my head.

I just can’t stop thinking about you,

And if only I was near you,

I’d have done something out of the blue .

 

Your thoughts always makes me smile.

You’re on my mind every once in a while.

I wish you knew how much I really care,

No matter what I’ll always be there.

 

Tell me how to prove that these are all true,

Including the one, that I’ve fallen deeply for you.

Never ending efforts I’ll put for you,

For me what matters is just you.

 

To make you smile each and every day,

To make you feel special each and every way,

It’s only words and words are all I have,

To take your heart away …

An adult but still a kid at heart

I took a Mental Age test the other day and it resulted me in the category of around 9 years!! Well, this may sound shocking but I kinda actually enjoy being myself. Not that I am not an adult or I don’t understand being one, but it’s completely so cool to have a kid’s heart. Being a kid has its own pros and cons but at least your heart gets to be carefree while your mind is busy being an adult. And I’ve seen some people who – regardless of their age maintain their carefree attitude, and their happy go lucky personality. Even though they are legally adults, they’re still kids at heart. They are so innocent and behave like a child, just makes me wonder if it’s a child in an adult’s costume. Can’t even say it for myself, I still fit in a kid’s section!  Anyways, Here are the signs that proves you are an adult but still a kid at heart.

  • You have so much love in your heart.
  • You become excited by small things.
  • You cannot take most of the things seriously.
  • You cry quite often.
  • You still love cartoons and you agree to the fact that nothing can replace that love for you!
  • You don’t f*ck with dark basements.
  • When it rains, you stick out your tongue.
  • And secretly want to jump in puddles.
  • You don’t like complications. The moment you see one coming your way, you want to literally pick yourself up and… RUN!
  • When you go to the beach, you build a sand castle.
  • It takes a great amount of self-restraint to NOT jump on hotel beds.
  • Whenever you see something is free, you just run for it. It doesn’t matter if you need it or not.
  • You love any chance to dance wildly with your friends.
  • You sometimes play “the floor is hot lava” when you’re alone.
  • Even the smallest things and gestures like meeting a long lost friend after a long time or a sweet message when you’re low, excite you up till date!
  • You love everything colorful. Colors brighten up your face like nothing could ever go wrong again.
  • You love surprise gifts and parties.
  • You really get excited when you see water balloons.
  • You never pass up an opportunity to pop bubble wrap.
  • You still obsess over celebrities, and you could get into serious arguments when it comes to defending your favorite celebrity.
  • When it snows, you have to make a snow angel or build the biggest snowman ever!
  • You don’t just chew gum, you blow bubbles.
  • You know the importance of keeping a balloon off the ground.
  • And would probably eat more cereal if they came with toys
  • Knowing that there is only one week left for your birthday leaves you over excited!
  • You still have a shelf reserved for all your childhood toys, and make sure to clean them every once in a while.
  • You spend a lot of time playing video games.
  • You still love cotton candies.
  • You know the names of at least four shows on Nickelodeon!
  • You like playing dress up.
  • You make a big deal out of little cuts.
  • There are times you still get stubborn just like the good old days when something is not going your way.
  • There are days when you still think you might have super powers.
  • You know that a backward somersault is a crowning achievement.
  • You wish you still had recess every day.
  • You love sleeping in. taking naps, and footie pajamas.
  • When you get sick you just want your mommy.
  • You think about what your life will be like when you get older.
  • And you’re convinced that you are/will be the coolest parent ever because of all of this.
  • You just imagined yourself doing in the points above.

Childhood is something we all have enjoyed the most and that time has been the most cherished of all. As kids, we wanted to grow up and do all that our parents or elders would do. Be it start going to college or driving the car or just start earning. But now that we are adults, all we want to do is go back down the memory lane and become a child again.

“Growing old is mandatory but growing up is an option.”

So, indulge in the little happiness of life, and watch everything fall into place.

Cheers!!

 
Compiled source : 
Thatscoop
Layzeebee

Two things will happen

Two things will happen if you grow rich,

Either you are composed or get wild.

It’s okay if you remain composed. But if wild,

Two things will happen,

Either you grow mad or get robbed.

It’s okay if you grow mad. But if robbed,

Two things will happen,

Either you’ll become poor or fall ill.

It’s okay if you become poor. But if you fall ill,

Two things will happen,

Either a doctor will cure you or you die.

It’s okay if you die. But if cured,

Two things will happen,

Either you’ll start earning or rob others.

It’s okay if you start earning. But if you rob,

Two things will happen,

Either a police will net you up or you get murdered.

It’s okay if you get murdered. But if caught up,

Two things will happen,

Either you land up in jail or socially boycotted.

It’s okay if socially boycotted. But if jailed,

Two things will happen,

Either you will perish there or jailed till death!

But both mean the same!!

So,

Want to grow rich? 😀

For You

I wanna be there for you,

I wanna sink deep down in love with you,

Be the voice of your songs,

cuddle with you in your deepest sleep,

in the darkest of nights.

Stay close and feel,

those unsaid words in your beats.

Those eyes, when tangles with solicity,

I wanna dive deep in and embrace you,

to assure you, I’m there.

When hearts speak out the feel,

promises in words

don’t really mean a thing.

Fear

“Fear can be good when you’re walking past an alley at night or when you need to check the locks on your doors before you go to bed, but it’s not good when you have a goal and you’re fearful of obstacles. We often get trapped by our fears, but anyone who has had success has failed before.” – Queen Latifah.

Man is the master of thoughts, the molder of character and the maker and shaper of condition, environment and destiny. Most men fail not through lack of education but from lack of dogged determination, from lack of dauntless will. Even dramatic situations like bankruptcy, divorce, death and economic recession cannot directly cause a feeling of any kind until the brain interprets and creates a story about sad situation.

Sadness, depression, frustration, upset and anxiety can only be produced by seeing a situation and producing an interpretation of it, and then believing that interpretation. Therefore you and I can only be overwhelmed by our thoughts about something, never the thing itself.

Usually what we most fear doing is what we most need to do. That phone call, that conversation, whatever the action might be, it is the fear of unknown outcomes that prevents us from doing what we need to do. Define the worst case, accept it and do it. I’ll repeat something… “What we fear doing most is usually what me most need to do.”

“The thing you fear most has no power. Your fear of it is what has the power. Facing the truth really will set you free.” – Oprah Winfrey. “I don’t get lucky. I make my own luck.” Here is the big challenge of life. You can have more than you’ve got because you can become more than you are. And, of course, the other side of the coin reads, unless you change how you are, you’ll always have what you got.

Success is something you attract, not something you pursue. Success is looking for a good place to stay. So instead of going after it, you work on your self-personal development. One of the challenges we have in our lives is we don’t realize that, the process of training ourselves, the process of conditioning ourselves actually feels incredible once you get that initial momentum.

If you want a lasting change, you gotta give up this idea of trying something. You gotta just decide you’re gonna commit to master. Most people don’t get out on the arena of life because they don’t wanna fight. Most people don’t get out there because they don’t wanna get knocked down, they don’t wanna be dropped to their knees. But see, you gonna be dropped whether you are on the field or whether not just sitting on the sidelines, you’re gonna be dropped!

The last six thousand years reads like this, Opportunity mixed with difficulty. That’s how it is and that’s not gonna change. You must learn to handle the nights, they come right after days. You must learn to handle difficulties, it comes right after opportunity. You must learn to handle recession, they always follow possessions.

Don’t wish it was easier, wish you were better. Priority is power. The more clear you’re with exactly what you want, the more your brain knows how to get there. Your reasons will drive you. When you have doubt, when your faith becomes weak, your reason to acquire your ideas fail. When you have a greater state of saying “No”, don’t do that. The reasons will become the war in your step. They conquer you and take you through those challenging moments.

“Each of us must confront our own fears, must come face to face with them. How we handle our fears will determine where we go with the rest of our lives. To experience adventure or to be limited by the fear of it.” -Judy Blume.

Get knocked down so you can learn how to fight, so you can hold your position. The world turns when we turn with it. Plans disappear. Dreams takeover. Every journey ends. But we go on…

The Park Bench

The park bench was deserted as I sat down to read,

beneath the long, straggly branches of an old willow tree.

Disillusioned by life with good reason to frown,

for the world was intent on dragging me down.

And if that weren’t enough to ruin my day,

A young boy out of breath approached me, all tired from play.

He stood right before me with his head tilted down,

and said with great excitement, “Look what I found!”

In his hand was a flower, and what a pitiful sight,

with its petals all worn, not enough rain, or to little light.

Wanting him to take his dead flower and go off to play,

I faked a small smile and then shifted away.

But instead of retreating he sat next to my side,

and placed the flower to his nose and declared with overacted surprise,

“It sure smells pretty and it’s beautiful, too.

That’s why I picked it; here it’s for you.”

The weed before me was dying or dead.

Not vibrant of colors, orange, yellow or red.

But I knew I must take it, or he might never leave.

So I reached for the flower, and replied, “Just what I need.”

But instead of him placing the flower in my hand,

he held it mid-air without reason or plan.

It was then that I noticed for the very first time,

that weed-toting boy could not see: he was blind.

I heard my voice quiver, tears shone like the sun,

as I thanked him for picking the very best one.

You’re welcome, he smiled, and then ran off to play,

unaware of the impact he’d had on my day.

I sat there and wondered how he managed to see,

a self-pitying woman beneath an old willow tree.

How did he know of my self-indulged plight?

Perhaps from his heart, he’d been blessed with true sight.

Through the eyes of a blind child, at last I could see,

the problem was not with the world; the problem was me.

And for all of those times I myself had been blind,

I vowed to see the beauty in life, and appreciate every second that’s mine.

And then I held that wilted flower up to my nose,

and breathed in the fragrance of a beautiful rose.

And smiled as I watched that young boy, another weed in his hand,

about to change the life of an unsuspecting old man.

 

By a friend.
A poem which changed my life henceforth...