ডি এন এস ক্যাশ ( DNS Cache ) কি এবং কিভাবে কাজ করে

Oritro Ahmed

এর আগের আর্টিকেলে আমি এক্সপ্লেইন করেছিলাম ডি এন এস ( DNS ) কিভাবে কাজ করে। অনেকেই আর্টিকেল টা পড়েছেন এবং জানার ইচ্ছে প্রকাশ করেছেন কিভাবে ডি এন এস ক্যাশ ( DNS Cache ) কাজ করে । তবে ডি এন এস ক্যাশ আসলে খুব বিশাল কিছু নয়, তাই ভাবলাম লিখতে লিখতে হাতের ১২ টা যখন বাজাবো, তখন আর কিছু জিনিস নিয়ে আলোচনা করি।

অনেকক্ষণ ধরে খুঁজে ডি এন এস ক্যাশের ওপর ভালো কোন ছবি পেলাম না যে আর্টিকেল এ দেবো, শেষ পর্যন্ত নিজের চাঁদ মুখের ছবি লাগায়ে রাখলাম।

Continue reading

ওয়ার্ল্ড, টেক অ্যা বাউ

Sakib Al hasan

মাশরাফি নামক এই পাগল যতদিন দলে আছে, ততদিন কোন চিন্তা নেই বাংলাদেশের। অ্যাকসিডেন্ট করে, চামড়া ছিলে, একের পর এক সার্জারির মধ্যে দিয়ে গিয়ে, মাসের পর মাস মাঠের বাহিরে থেকে খেলার সময় যখন জান প্রাণ দিয়ে আক্রমণ করে, তখন বিশ্বকে আঙ্গুল দেখিয়ে বলতে হয়, টেক অ্যা বাউ, এরা হল বাংলা মায়ের দামাল ছেলে। এরা ভালোবাসার মূল্য দিতে জানে।

Continue reading

Bangladesh Cricket Team and Love of a Nation

Bangladesh Cricket team

Do you ever wonder what makes a whole country united under one cause? Under one Celebration? Its not religion, its not tradition, its not culture. I remember the day when Bangladesh Cricket team won the ICC ChampionShip Trophy back in 1997. The final match was against kenya. I was literally a baby back then. But i remember the scream. I remember people shouting from there home nearby. I remember the victory rally that day. It was a reverse day match and Bangladesh won on Duckworth-Lewis method. 

Our Team is going to play for the first time in ICC Cricket World Cup. This was a occasion of joy after a long time. Only a few month back, the whole country was in a political in-stability. ICC champion trophy tuck the whole country back under one agenda, Next Stop ICC World Cup 1999. The world cup was a historic Event for the Whole nation.

I was a kid then, only time i went out was with my parents or to play in the field nearby. There was a tea stall nearby the field. Only thing people talked our tea was cricket. Before that, two team ruled over people’s heart in Bangladesh, INDIA and PAKISTAN. Everybody talked about how great Tendulkar was or how awesome Wasim Akram Was. Everything changed after Champion Trophy. Now everyone talks about Bangladesh Cricket team.

A new line of heroes born that day. Now we have our own cricket team to talk about. Its not much considering other teams participating in the 1999 Worldcup. We just started walking and everyone else is already running on full speed. The emotion behind this was complex. We became a independent nation when we fought against Pakistan to Earn our independence in 1971. 3 Million people dead, 200 Thousand women Raped. Entire Infostructure was dozed to ground. We didn’t have a functional government back then, we were picking up pieces and dead body. But we built ourselves back. We did it slow, and it wasn’t perfect in any sense, but we did it. This was our first mark in a International Territory.

The Champion Trophy made an international event. Only a few nation played cricket back then ( And now ), but it was a Achievement like none other.

1999 World cup made another international appearance. We met our first victory after two lost against New Zealand and West indies. Against the same Scotland, we won today ( 05 March, 2015 ). We won by 22 Run. After that, we lost against Australia. Australia is a Cricket Superpower, was back then, is now. The next match was against Pakistan. The very same country we fought our liberty from. Bangladesh faced pakistan 7 times before, and lost each match. This was not just a world cup, it was a lot more thing. It was the 1471th One Day International Match and we faced one of the most powerful team in cricket history.

All the greatest player of Pakistan’s Cricket teams history was in that team. Almost every player of that team holds multiple international records. And there was us, a young team with less experience and almost no star player. Then,

Bangladesh Vs Pakistan, 1999 World Cup
Bangladesh Vs Pakistan, 1999 World Cup

 

 

Our boys beat the shit out of Pakistan. It was a rare event, when a team like Pakistan takes a beating from the underdog Bangladesh. We scored 223 on our Batting innings.

Four of the pakistan’s most prominent batsman – Saeed Anwar, Shahid Afridi, Ijaz Ahmed, Inzamam-ul-Haq ,Saleem Malik couldn’t even make a double figure run. I could hear the crowd shouting outside, everyone was going nuts. There was some people nearby who supported Pakistan, they were on the rooftop, taking down the flag of Pakistan. The last wicket was something else. It was a runout and the field umpire called for a third umpire review. The second he made that called, people on the stadium, supporting Bangladesh broke the barricade and went into the ground shouting and dancing. It wasn’t sure that if it was a wicket or not, but people already started the celebration. One of our neighbours, was running to a nearby shop, to buy firecracker, to celebrate. It was a moment of absolute joy. We won against the country who tortured us for 25 years.

Well, the third umpire made the call and it was a wicket. We made history that day. 28 years ago the very same year we earned our independence from the same country with blood, this time with cricket.

I know people who isn’t superstitious in anything. But if once something bad happens in a match while they are doing something, they never do that again. I know someone who never watch a match of Bangladesh, because it’s his believe that each match he sees, Bangladesh lose. These people ain’t idiots. They just love their team that much.

This isn’t just a sports, Its the emotion of a nation. No matter who you are, a rich guy, a thief, a criminal or a police, when this country is playing cricket, everybody holds their position. When this country plays cricket, everything changes. Everytime we score a six or four, we shout with our hearts out. Everytime we lose a wicket, we shed tear together. Every win is for the country, every lose is our next battle. This is not just a game of players, its a game of a nations emotion. Its cricket. And its our beloved cricket team. No matter what you do, win good or lose bad, we will be their, standing behind you, shouting, supporting, screaming our hearts off. We trust in Bangladesh Cricket Team, No matter what.

ডি এন এস কিভাবে কাজ করে?

DNS Resolve

এই প্রশ্নটা আমাকে কয়েকজন করেছে। ডি এন এস কিভাবে কাজ করে? ডি এন এস কিভাবে কাজ করে এটা বোঝার জন্য আগে আমাদের কিছু বেসিক জিনিস সম্পর্কে ধারনা নিতে হবে।

ডি এন এস কি?

অবভিয়াসলী আপনি যখন ডি এন এস সম্পর্কে জানতে চাচ্ছেন, আশা করা যায় আপনি ডোমেইন কি এবং এর ব্যবহার সম্পর্কে কিছুটা আইডিয়া রাখেন। আপনি যখন ব্রাউজারে একটা ডোমেইন নেম টাইপ করছেন, ধরুন www.ioritro.com তখন আপনার ব্রাউজার আপনাকে এই ওয়েবসাইটে নিয়ে আসছে। কিন্তু এই ওয়েবসাইট টির পেছনে কিছু একটি সার্ভার রয়েছে। সেই সার্ভারে এই ওয়েবসাইট এর যাবতীয় ডাটা সংরক্ষিত করা আছে। ফিজিক্যাল ফাইল থেকে শুরু করে ডাটাবেজ ইত্যাদি।

এই পর্যায়ে ধরে নিচ্ছি আই পি ( IP = Internet Protocol ) কি আপনি সেটা জানেন। না জানলে সংক্ষেপে বলে দেই, আইপি হলো এক ধরনের আইডেন্টিফিকেশন নম্বর। যে কোন ধরনের নেটওয়ার্কে কানেক্টেড ডিভাইস এর একটি করে আইপি থাকে। আইপির অসংখ্য ধরন আছে। সেদিকে না যাই। তাছাড়া, আইপির ডেফিনেশন এতোটা সহজ নয়। তবে এই পোষ্টে সে সম্পর্কে বিস্তারিত ব্যাখ্যা করার সুযোগ নেই। আইপি সাধারনত দুই ধরনের হয়। IPv4 এবং IPv6. প্রথমটি সাধারনত দেখতে এরকম, 192.168.1.1 এবং পরেরটি 2001:db8::ff00:42:8329 এরকম হয়। কেন হয় বা কিভাবে হয়, সে জন্য আপনাকে আরও বিস্তারিত পড়াশোনা করতে হবে। সেদিকে আপাতত না যাই।

আমার ওয়েবসাইটটি যে সার্ভারে সংরক্ষিত রয়েছে, সেটিরও একটি আইপি অ্যাড্রেস আছে। কিন্তু উপরে আপনি দেখতে পাচ্ছেন, সেই আই পি অ্যাড্রেসটা খুব একটা সহজ জিনিস না মনে রাখার জন্য। তাছাড়া, একটা সার্ভারে অনেক সাইট হোষ্ট করা হয়। আমার এই সার্ভারে একাধিক সাইট রয়েছে। তাহলে শুধু আইপি মনে রাখলে কাজ হচ্ছে না।

এই সমস্যা সমাধান এর জন্য আছে ডোমেইন। এক্ষেত্রে ioritro.com । এই ডোমেইন এর কাজ হলো, যখন কেউ এই ডোমেইনে প্রবেশ করার চেষ্টা করবে, তখন তাকে নির্দিষ্ট একটি আইপির সাথে কানেক্ট করবে। এই পুরো প্রসেস যে প্রোটোকল হ্যান্ডেল করে, তাকেই ডি এন এস বা ডোমেইন নেম সিষ্টেম বলে। আসলে ডোমেইন নেম সিষ্টেম  একটা বিশাল প্রসেস। ডোমেইন এ প্রবেশ করলে নির্দিষ্ট আইপিতে নিয়ে আসাটা সেই বিশাল প্রসেসের একটা অংশ। সেটাকে বলা হয় ডোমেইন নেম রিসলভিং ( Domain Name Resolving ). আমাদের আজকের আলোচনা সেই রিসলভিং প্রসেস নিয়ে।

ডোমেইন রিসলভিং

পুরো প্রসেসটা আমি একটা গল্পের মতো করে ব্যাখ্যা করার চেষ্টা করবো। তাতে আপনার বুঝতে এবং মনে রাখতে সুবিধে হবে।

ধরুন, এই মূহুর্তে আপনি google.com এ ঢুকতে চাচ্ছেন। আপনি ব্রাউজারে টাইপ করলেন google.com এবং এন্টার চাপলেন। এবার একটা বেশ লম্বা প্রসেস চালু হবে।

আপনি খালি চোখে দেখছেন যে আপনি www.google.com টাইপ করেছেন। কিন্তু আসলে, আপনার ব্রাউজার সেটাকে রিড করবে, www.google.com. শেষে একটা (.) যোগ করে। এই ডট কিন্তু যেন তেন ডট নয়, এই ডট ইন্টারনেট ইনফোষ্ট্রাকচার এর সবচেয়ে গুরুত্বপূর্ন জিনিসগুলোর একটি। এইখান থেকে আরেকটি গুরুত্বপূর্ন জিনিস শিখলেন আপনি, পিচ্চি একটা ডটও গুরুত্বপূর্ন। এই ডট আসলে ইন্টারনেট নেটওয়ার্কিং এর রুট কে চিহ্নিত করে। কেডা এই রুট? সেদিকে পরে আসতেছি।

আপনি যখন ব্রাউজারে এই ডোমেইন প্রবেশ করালেন, আপনার ব্রাউজার তখন অপারেটিং সিষ্টেম কি জিজ্ঞেস করবে,

-> হেই ডুড, এই google.com আছে কই, জানো নাকি?

ডি এন এস এর বেসিকটা শিখতে গেলে আমাদের এমন একটা জগতে প্রবেশ করতে হবে, যেখানে ডি এন এস ক্যাশ বলে কিছু নেই। ডি এন এস ক্যাশ কি, সেটা পরে ব্যাখ্যা করবো।

অপারেটিং সিষ্টেম জবাব দিলো,

-> নাহ ম্যান, আমি তো জানি না। খাড়াও, রিসলভার রে জিগাই !

রিসলভার

রিসলভার হলো এমন একটি সিষ্টেম, যে এদিক ওদিকে দৌড়াদৌড়ি করে আপনার অপারেটিং সিষ্টেম এর কাছে নির্দিষ্ট ডোমেইন এর আইপি অ্যাড্রেস খুঁজে এনে দেয়। আপনারা অনেকেই গুগল ডি এন এস ব্যবহার করেন ( 8.8.8.8, 8.8.4.4 ) বেশিরভাগ ক্ষেত্রেই এটা না জেনে যে এই রিসলভার আসলে কি কাজে লাগে ! ব্যাখ্যা করছি।

অপারেটিং সিষ্টেম এসে আপনার রিসলভারকে জিজ্ঞেস করবে,

-> বসে বসে ম্যাল্যা টাইম পাস করছো, আমারে তাড়াতাড়ি এই google.com কই আছে খুঁজে এনে দাও !

এবার রিসলভার ডোমেইন এর নাম নিয়ে প্রথমে যাবে রুট সার্ভার এর কাছে।

সবার বাপ, দ্যা রুট সার্ভার

আপনারা অনেকেই বিগ ব্যাং থিওরীর নাম জানে। না বিগ ব্যাং থিওরী সিরিজের কথা বলতেছি না, বৈজ্ঞানিক বিগ ব্যাং থিওরীর কথা বলতেছি। সেখানে সব কিছু শুরু হয় একটা বিন্দু থেকে। ইন্টারনেটেরও সব কিছু এই বিন্দু দিয়েই শুরু। একটু আগে আপনাকে বলেছিলাম যে আপনি যখন google.com এ ঢুকতে চাচ্ছেন, আপনি কিন্তু আসলে google.com. এ যাচ্ছেন। এই ডটটা আসলে রুট সার্ভারকে রিপ্রেজেন্ট করে।

শুনে অবাক হবেন, সারা দুনিয়াতে মাত্র ১৩ টা রুট সার্ভার আছে। ১৩ টা ফিজিক্যাল সার্ভার, যারা প্র্যাক্টিক্যালী গোটা ইন্টারনেট কে সচল রাখে। এই ১৩ টা সার্ভার ১২ টা প্রতিষ্টান নিয়ন্ত্রন করে। এর মধ্যে ৭ টি ফিজিক্যালী আমেরিকাতে অবস্থিত, বাকিগুলো এনিকাষ্টের মাধ্যমে জিয়োগ্রাফিক্যালী ছোট ছোট নোড আকারে বিভিন্ন যায়গায় স্থাপন করা আছে। রুট সার্ভারের কাজ খুবই সামান্য। কিন্তু গুরুত্ব অসামান্য।

রুট সার্ভারে লিষ্ট, আইপি এবং নিয়ন্ত্রনকারী প্রতিষ্টান এর নাম
রুট সার্ভারে লিষ্ট, আইপি এবং নিয়ন্ত্রনকারী প্রতিষ্টান এর নাম

আপনার রিসলভার রুট সার্ভার কে গিয়ে জিজ্ঞেস করে,

-> বস, আমারে একজন google.com কই আছে জিগাইলো, হেল্প করেন।

রুট সার্ভার এবার উত্তর দেয়,

-> আমি কেমনে কমু কই আছে? তবে যেহেতু এইটা .com ডোমেইন, এর টি এল ডি সার্ভার কই আছে আমি জানি। আমি তার আইপি অ্যাড্রেস তোমারে দিতেছি। ওরে গিয়া জিগাও।

এবার রুট সার্ভার আপনার রিসলভারকে একটা আইপি অ্যাড্রেস দেবে, যেটা একটা টি এল ডি সার্ভারের অন্তর্ভূক্ত।

টি এল ডি সার্ভার

টি এল ডি সার্ভার (TLD Server) মানে টপ লেভেল ডোমেইন সার্ভার ( Top Level Domain Server ). আপনি এরই মধ্যে বেশ কিছু ডোমেইন এক্সটেনশন দেখেছেন, যেমন .com, .net, .biz, .edu, .gov । এগুলোকে বলা হয় টপ লেভেল ডোমেইন। তবে টপ লেভেল ডোমেইন এর মধ্যে বেশ কিছু ভাগ রয়েছে। কান্টিকোড টপ লেভেল ডোমেইন (cTLD – যেমন, .com.bd বা .uk ), জেনেরিক টপ লেভেল ডোমেইন (gTLD – যেমন .com, .info, .net ), স্পনসরড টপ লেভেল ডোমেইন ( sTLD – যেমন .academy, .gift ইত্যাদি )। এই ধরনের প্রতিটি টপ লেভেল ডোমেইন যে কোন একটি অর্গানাইজেশন নিয়ন্ত্রন করে। যেমন .com নিয়ন্ত্রন করে Verisign. এই ধরনের প্রতিটি TLD কে ম্যানেজ করার জন্য একটি ( বা একাধিক ) সার্ভার রয়েছে। এদেরকে বলা হয় টপ লেভেল ডোমেইন নেম সার্ভার।

এবার যেহেতু আমাদের রুট সার্ভার আমাদেরকে এরকম একটি টপ লেভেল ডোমেইন নেম সার্ভারের কাছে পাঠিয়েছে, আমাদের রিসলভার এবার তার সাথে কথা বলছে।

-> রুট সার্ভার বললো আপনি নাকি .com ম্যানেজ করে, তো এবার আমাকে একটু google.com কোথায় আছে খুঁজে দেন।

.com এর টি এল ডি সার্ভারের কাছে দুনিয়ার যাবতীয় .com ডোমেইন এর নেম সার্ভার ইনফরমেশন সংরক্ষিত আছে। সে এবার নিজের ডাটাবেজ ঘেঁটে দেখবে google.com এর নেম সার্ভার কোনটা। তবে তার কাছেও এক্সাক্ট ইনফরমেশন নেই। সে শুধু জানে গুগল ডট কম এর অথোরেটেটিভ নেম সার্ভার এর নাম কি এবং কোথায় আছে। সে উত্তর দেবে,

-> আমি অতো কিছু জানি না, এইযে চারটা অথোরেটেটিভ নেম সার্ভার এর নাম আমি জানি, এদেরকে গিয়া জিগাও।

google.com এর অথরেটেটিভ নেম সার্ভার সমূহ
google.com এর অথরেটেটিভ নেম সার্ভার সমূহ

অথোরেটেটিভ নেম সার্ভার

আপনারা যারা ওয়েব ডেভেলপমেন্ট এর সাথে জড়িত, তারা অবশ্যই ডোমেইন সার্ভারে পয়েন্ট করার সমঊ নেম সার্ভার ব্যবহার করেছেন। সেখানে আপনি ডোমেইন রেজিষ্টার করের পরে ডোমেইন এর কন্ট্রোল প্যানেল থেকে ns1.example.com, ns2.example.com এভাবে নেম সার্ভার যোগ করে। এই ধরনের নেম সার্ভারকে বলা হয় অথোরেটেটিভ নেম সার্ভার। আপনি যখন একটা ডোমেইন রেজিষ্টারে অথোরেটেটিভ নেম সার্ভার যোগ করেন বা আপডেট করে, আপনার ডোমেইন রেজিষ্টার কোম্পানী প্রায় সাথে সাথেই সেই TLD’র নিয়ন্ত্রনকারী সার্ভারকে জানিয়ে দেয় যে কোন অথোরেটেটিভ নেম সার্ভারে এই ডোমেইন কে পাওয়া যাবে। এবং রিসলভার যখন টি এল ডি সার্ভারকে জিজ্ঞেস করে, তখন টি এল ডি সার্ভার সেই ইনফরমেশন গুলোই ফরোয়ার্ড করে।

অথোরেটেটিভ নেম সার্ভার হলো এই ধাপের শেষ খেলোয়ার। আপনার রিসলভার তখন অথোরেটেটিভ নেম সার্ভারকে গিয়ে জিজ্ঞেস করে,

-> স্যার, অনেক দৌড়াদৌড়ি করছি, এবার দয়া করে বলেন google.com কই আছে?

অথোরেটেটিভ নেম সার্ভারের কাছে ঐ ডোমেইন এর সার্ভারের আইপি লিপিবদ্ধ থাকে। সে তখন বলে,

-> বৎস, তোমার সাধনা শেষ হইয়াছে, এই 74.125.131.105 তে রইয়াছে google.com। যাও, জানাইয়া দাও সবাইকে।

বহু দৌড়াদৌড়ির পরে গুগল ডট কম এর আইপি নিয়ে আপনার অপারেটিং সিষ্টেম এর কাছে ফেরত আসে রিসলভার।

-> এই নে, এইটা গুগল ডট কম এর আইপি। এইখানে গেলে পাবি।

এবার অপারেটিং সিষ্টেম আপনার ব্রাউজারকে আইপি টি হস্তান্তর করে। এরপর আপনার স্ক্রিনে ভেসে ওঠে গুগল ডট কম এর ওয়েবপেজ।

মজার ব্যাপার, এই বিশাল প্রসেস সম্পন্ন হতে সময় লাগে কয়েক মিলিসেকেন্ড। ( সেটা আপনার ইন্টারনেট কানেকশন এর লেটেন্সি এবং স্পিড এর ওপর নির্ভর করে অনেকটাই )।

ডি এন এস ক্যাশ

এই বিশাল প্রসেসকে আরও দ্রুত করার জন্য ডি এন এস ক্যাশ নিয়ে আসা হয়। এই পদ্ধতিতে, আপনার রিসলভার যখন একবার google.com এর আইপি পেয়ে যায়, তখন সেটা মেমরীতে সেভ করে রাখে। পরের বার যখন আপনি গুগল ডট কম এ যান, তখন সে আর পুরো প্রসেস না চালিয়ে, সরাসরি মেমরী থেকে আপনাকে আইপিটা দিয়ে দেয়। এতে করে একটা বিশাল প্রসেস অনেক সংক্ষিপ্ত করে ফেলা হয়। ক্যাশ এর আরও অনেক গুলো ধাপ আছে, তবে ধারনা করছি আপনি আইডিয়া পেয়ে গেছেন ডি এন এস ক্যাশ কিভাবে কাজ করে। উপরের প্রতিটা ধাপেই একবার করে ক্যাশ করা হয় রেজাল্টগুলো।

 

আশা করছি ডি এন এস কিভাবে কাজ করে সেটা ব্যাখ্যা করতে সক্ষম হলাম। যদি কিছু বুঝতে না পারেন কিংবা প্রশ্ন থাকে, কমেন্ট বক্স রয়েছে। 😉

I don’t make website for free or cheap, stop asking !

I don't work for free

2014 was somehow a wonderful and at the same time, pathetic year. Yesterday, someone asked me if I can build him a website for free of charge. I was exhausted after a long day and having a bad headache. I don’t remember how I controlled myself, By I was angry, Really angry. I told that person that I don’t build website for free. Then he gave an explanation, that made me more angry. He said,

You are my friend, and you know how to make a wesbite. Isn’t our friendship worth something to you?

I thought the whole night, what should I answer him. Then I gave him my answer. Later I thought, why not make a subtle version of it and share with the world.

Free comes with charges

 

What do you think the word “Free” means? You buy a shampoo, and a comb is free. That’s not free, that’s an offer. The margin of profit from the shampoo is good enough to offer you a comb for no charge. You can’t just have the comb. You need to buy the shampoo in order to get the comb for free.

Open source is a different thing

One-day someone asked me to build a site for free and said if people can make open source software for free, why can’t you?

Open source softwares are a totally different story. For example, let’s talk about Firefox. It’s an awesome open source browser. Open Source isn’t the straight line free. When Firefox launched as an open source browser, developers from all around the globe came forward to let a hand in the process. They copied ( forked ) the actual source, improved it , and then send it back. In that process, an awesome browser came forward. And to make this collaborated effort happen, the source must be open for everyone. And when the source is open, you can’t really sell the product. Anyone can download the source and build the software ( If have enough technical knowledge ). And there is the donation,  of course. A lot of people donated to make Firefox what it is today. They donated because it’s a good cause.

I am really not interested to explain how open source works in the project. So bottom line is, open source isn’t that kind of free stuff you are looking for.

Learning is costly

What I know today isn’t just learned in one day. It took years of reading, memorizing, practicing. Still I am thousand steps behind. I spend countless hours in front of my computer to learn new stuff. I spend hours in a cyber cafe to access the internet before I could earn and pay my internet bills. I fought with my family to make them understand what I do.

I saved my pocket money, monthly allocation to pay the cyber cafe bill. And trust me when I tell you, they ain’t cheap. I didn’t buy a decent dress to save the money to buy a book about web development.

And there are numerous other things I can tell you, which cost a lot. I paid a lot of money to be where I am today. Advanced hardware, fast internet connection these doesn’t come cheap. Are you getting this?

I can keep this all day long and the log won’t be finished. Trust me when I tell you, none of the web developers came here without sweating their ass off.

Think twice before asking

Now what happen if I build you a website for free? Let’s say it’s a simple website, 5-4 static page. Even if I download a free theme and build the website, it takes time to customize the design. And I am pretty sure, you don’t have a content developer to format your content carefully. You don’t have a graphics designer to make you some artwork. So I have to work with some shitty unfinished awful looking image which you will send me by Email. And most of the time, those images ain’t the same size. Some are too big, I have to resize and compress them. Some are too small, I have stretch them, which looks more shitty.

Then I have to format your content for the web. You probably don’t have a premium hosting, So I have to make a free hosting work. And I am sure you can’t open a free hosting account. I have to handle that by myself. After all these pain, what do I get?

After I publish the website, you will give me more pain to reduce the font size here, increase the image size there, change the font color somewhere. I am sure you don’t have a creative vision. So you will look for pink color text in comic sans ms font. Then even for a day, if I miss something, you are ready with your shitty mouth so deliver some hate speech.

Sorry bro, Too much pain for me. I rather stay jobless them work for free. At least in a jobless condition, I don’t have to listen to all the shit you deliver.

And cheap? That’s more painful. Now that you are paying me, you got a bigger mouth now.

So basically, working for cheap or free, isn’t an option for me.

If you still don’t understand what I am saying, I have one word for you.

 

GO FUCK YOURSELF. That would be easier though I am not sure if it’s scientifically possible .

খাদক আমি – বিরিয়ানী

এর মধ্যে কোন লজ্জা নেই স্বীকার করতে, আমি অসম্ভব পরিমান খেতে পারি। সারিম ভাই আমার খাওয়া সম্পর্কে একবার মন্তব্য করেছিলেন, ” আনলিমিটেড ক্লাউড ষ্টোরেজ “। আমি জানি না কেন মানুষ খাওয়াটাকে এতো তীর্যক ভাবে দেখে, কিন্তু আমার খেতে ভালো লাগে। ভুঁড়ি সামনের দিকে জ্যামিতিক হারে বেড়েই চলেছে, কিন্তু আমার খেতে ভালো লাগে। প্রায়শই আমি এখানে ওখানে খাই। টি-বোন ষ্টেক থেকে শুরু করে রাস্তার ধারের চপ, সবই চলে।

 

আমার মধ্যে কোন নাক উঁচু স্বভাব নেই যে খেতে গেলে শুধু দামী যায়গায় খেতে হবে। খাবারের স্বাদ ভালো হলে, আর খাওয়ার পরিবেশ ভালো হলে, আমি যে কোন যায়গায় খেতে পারি। আমার বাসার এখানে একটা হোটেল আছে, সাধারন ভাতের হোটেল। তবে এরা আগে সকালে একটা বিরিয়ানী বানাতো। ২০ টাকা প্লেট। এক প্লেটে ৩ টুকরো মাংস থাকতো। সকালে ৭ টার দিকে বানাতো, ৯ টার মধ্যেই সব শেষ হয়ে যেতো। আমি সারা রাত কাজ করে সকাল পর্যন্ত জেগে থাকতাম শুধু এই বিরিয়ানী খাওয়ার জন্য। রাজশাহীর অনেক দামী দামী হোটেল এর বিরিয়ানীর চেয়ে ওদের বিরিয়ানীর স্বাদ ভালো ছিলো। ৩ টুকরো মাংসের বিরিয়ানী খেয়ে আস্ত মুরগীর ঠ্যাং দেওয়া বিরিয়ানীর চেয়ে বেশি স্বাদ পেতাম। দুঃখের বিষয় ওরা বিরিয়ানী বানানো বন্ধ করে দিয়েছে। চালের দাম বেড়ে গেছে, আর ২০ টাকার বেশি হলে কেউ খাবে না। অনেকে অবাক হতে পারে, ২০ টাকার বিরিয়ানী যদি ৩০ টাকা হয়, তাহলে সমস্যা কোথায়? যাদের স্বাদের দরকার, তারা ১০ টাকা বেশি দিতেই পারে।

সমস্যা হলো, ওদের বেশিরভাগ কাষ্টোমারই ছিলো সমাজের নিচের দিকের মানুষগুলো। রিক্সাওয়ালা থেকে শূরু করে গার্মেন্টস শ্রমিক। এবং তাদের জন্য ১০ টাকা অনেক বড় একটা ব্যাপার। সে কারনেই তারা দাম বাড়াতে চায়নি। পরিমানও কমাতে চায়নি। একই দামে কম বিরিয়ানী দেওয়াটা খেটে খাওয়া এই সব মানূষের সাথে বেঈমানী করা হবে। খেটে খাওয়া এইসব মানূষ দামী রেষ্টুরেন্ট এর দামী খাবার কিনে খেতে পারে না। এরা একটু স্বাদের জন্য ২০ টাকা দামের এই বিরিয়ানী খায়। জানিনা এই মানুষগুলোর জন্য ভালোবাসা থেকে কিংবা বিরিয়ানী আসলেই ভালো ছিলো, এই বিরিয়ানীর স্বাদ আমি কখনো ভুলবো না।

 

এখন কথা হলো, এতো বড় লেখার অবতারণার কারন কি? কারন হলো, আজকে আমার এতোটাই খেতে ইচ্ছে করছিলো, আমি অর্ডার দিয়ে ১০ প্যাকেট বিরিয়ানী বানিয়ে নিলাম। আমি ধারনা করেছিলাম পার প্যাকেটে এক প্লেট করে বিরিয়ানী থাকবে। বাসায় এনে দেখি পার প্যাকেটে যা আছে, তাতে আমার দুইবেলা খাওয়া হবে। দাম? আমি দামটা মেনশন করছি না, কিন্তু মিডিয়াম কোয়ালিটির কোন রেষ্টুরেন্টে এই দামে এক প্লেট বিরিয়ানী পাওয়া যাবে না।

যদিও নিয়ে আসার সময় প্যাকেট ভেঙ্গে একটার কিছুটা বিরিয়ানী নষ্ট হয়েছে, তাও সাড়ে নয় প্যাকেট রয়েছে। ফ্রীজে রেখে দিয়েছি। যখন খেতে ইচ্ছে করবে, একটা করে প্যাকেট বের করে গরম করে খাবো।

এলোমেলো চিন্তাধারা – ১

 

ওয়েল, এটা আমার পার্সোনাল ব্লগ। শুধু নিজের লেখা গুলো প্রকাশ করার জন্যই এই ব্লগের জন্ম। কর্মাশিয়াল কোন কাজে ব্যবহার হয়না, তাই উলটা পালটা জিনিস লিখতেও সমস্যা নেই।

একটা সময় ভাবতাম, ব্লগে হাবি জাবি লেখা যাবে না। প্রচন্ড রাগ নিয়ে লিখতে বসে অনেক সময় শুধু গালি গালাজ এড়িয়ে যেতে গিয়ে লেখার ভাষা বদলে যেতো। রাগের মধ্যে মাথা ঠান্ডা করাও যেতো না, আবার ভাষাও সংযত রাখার আপ্রান চেষ্টা করতাম। দুয়ে মিলে লেখার ১২ টা বেজে যেতো। তার পর থেকে ঠিক করলাম, শালিনতার খেতা পুড়ি। মনের ভাষা প্রকাশ করলে হলে মনের মধ্যে যেভাবে এসেছে, সেভাবেই প্রকাশ করতে হবে।

এই মুহুর্তে মাথায় অনেক কিছু ঘুরতেছে। একটা প্রজেক্ট নিয়ে কাজ করছি। সেখানে একটা ফিচার যোগ করবো, কিন্তু কিভাবে করবো, সেটার প্লানটা মাথায় এখনো ঠিকমতো কাজ করছে না।

এক ক্লায়েন্টকে ৪ বার প্রপোজাল পাঠালাম। প্রথমবার পাঠালাম সব কিছু সুন্দর করে। বললো, খরচ একটু কমান। কমায়ে পাঠালাম। এবার বলে সার্চ ইঞ্জিন অপটিমাইজেশনও লাগবে। সেই জন্য আবার একজনরে হায়ার করতে হবে। মেজাজ খারাপ হয়ে গেলো, তাও নতুন করে পাঠালাম প্রপোজাল আবার। এবার বলে ডোমেইন হোষ্টিং লাগবে। আমি তাকে শুরুতেই বলছিলাম ডোমেইন হোষ্টিং লাগবে কিনা? তখন বলছিলো লাগবে না, এখন বলে লাগবে। কি আজব !

মুরগীর মাংস রান্না করবো এখন, শালার মুরগী ফ্রীজ থেকে বের করে ভিজিয়ে রাখছি ১ ঘন্টা আগে। ট্যাপের পানি ফ্রীজের পানির মতোই ঠান্ডা। মাংস যে কখন নরম হবে, কে জানে !

সিক্রেটঃ গোসল করিনাই ৪ দিন হলো। বডি স্প্রেতেও আর কাজ হবে না কালকে থেকে ! ! !

ভাবতেছি ওয়েবসাইটে একটা পেজ রাখবো, কোন কোন টিভি সিরিজ দেখতেছি সেগুলার লিষ্ট থাকবে। এখন Castle 2009 এর ৪ নম্বর সিজন দেখতেছি। দেখে আরও মেজাজ খারাপ হচ্ছে, আরে বাল একজন রাইটার এবং একজন গোয়েন্দা একে অপরকে ভালোবাসে। ৪ বছর ধরে সেই লুকাচুরি চলতেছে, কেউ নিজের ফিলিংস প্রকাশ করে না। করতে গেলেও কোন না কোন কারনে পারে না ! হতাশ হয়ে গেলাম, আমি হলে ডাইরেক্ট জড়ায়ে ধরে বলে দিতাম। দুইজনের মধ্যে এতো প্যাশন একে অপরের প্রতি, অথচ প্রকাশ করার উপায় নাই !

ওয়েব ডেভেলপমেন্ট এর ক্ষেত্রে একটা ষ্ট্যাটিক HTML পেজকে কিভাবে সাজাতে হয়, সে ব্যাপারে একটা মিনি বই লিখবো ভাবছি। চারটা পোষ্ট লিখছিলাম, পাবলিশ করিনাই। সেগুলোকেই একসাথে এক যায়গায় মিনি বুক আকারে প্রকাশ করবো।

সিগারেট কিনতে গিয়ে দেখি ষ্ট্যার লাইট নাই, গোল্ডলীফ পেলাম। এটা একটু বিপদজনক হয়ে যাচ্ছে। সিগারেট এমনিতেই খারাপ। তার ওপরে ব্র্যান্ড সুইচ করা ভালো না। একেকটার অবস্থা একেক রকম। যে কোন একটাতে কন্সট্যান্ট থাকতে হয়। পকেট এ টাকা থাকলে বেনসন, কম থাকলে গোল্ডলীফ, আর প্রায় না থাকলে ষ্টার লাইট। তবে রাতের বেলা কাজ করলে ষ্টার লাইটই খাই আমি !

A different approach to Bootstrap Alert

A Different approach to Bootstrap Notificaion

I was working on a project, where I had to design a login panel. It had two columns, one for Login and one for registration. Now the problem was, when I made the initial commit to git, I forgot to insert an alert notification. I have to show some error when someone use wrong username password or missed a field in the registration form, or the username he is trying to get is already registered. That sort of stuff.

Now as I was using bootstrap, I can simply use the bootstrap alert. All I needed to do is insert the HTML code. But that I thought, why not a different approach? Especially I loved the alert UI of WordPress admin panel. So I figured, let’s shake some code ( not booty ).

I was about to write the whole thing here, but a friend suggested that I should circulate it to a broad network. And my first choice was Bootsnip. Probably the largest collection of bootstrap snippets. Helping me in my work for more than a year. So i put it there.

 

Install utorrent server (WebUI) in Ubuntu 14.04

Utorrent server on Ubuntu 14.04

Well, there is no shame to admit that i love downloading tons of movies and tv series. And i was a “From Windows to Linux” user. So i used to download movies with utorrent in Windows. After i shifted to linux, I was a bit shocked to know that there isn’t a proper torrent utorrent client for Linux. They have a server and a webui, which you can call a work around.

I am not a big fan of WebUI, so i tried software like vuze or Deluge or Transmission or qBittorrent. And frankly speaking, i never had the feel of utorrent in any of them. Some people may argue that utorrent has ads all over it and other money based things, but i love it, what to do?

Then i tired to figure out, how to install this thing? its a server and a webui to control the server. So i searched with the help of mighty google. Found a lots of answers. But to a part, most of them were too geeky or less human friendly. So i thought, what the hell? lets write one by myself.

 

Step 1

Download the utorrent server from here: www.utorrent.com/downloads/linux . They haven’t released a official version for 14.04, but 13.04 version works here. So download it, don’t forget to choose between 32bit or 64bit, whichever you have.

It will download a zip file. As i am writing this for humans, so put that zip in Downloads folders of your Home directory. For the rest of the article, i will follow that directory.

 

Step 2

Open terminal. If you don’t know how to open terminal, just press Ctrl+Alt+T. And it will open the Terminal. Type and enter

Don’t worry if you are freaking out about how to do it, i will add a screenshot at the end of step. By this command, we moved into Downloads Directory. Now we need to extract the downloaded utorrent compressed file. We will extract it into /opt/ directory.

Some people may argue opt folder isn’t the best choice for it, but what the hell ! When you press enter after this, Terminal will ask for your Ubuntu password. Remember, when you type ubuntu password in terminal, it won’t show the letters, will be blank. Don’t think it as your password isn’t typed.

Now, the elements of that compressed folders are extracted into our operational location. Lets move on.

Command output

Step 3

Now we need to change the permission of the extracted folder. put in this command and enter.

Now the folder permission is set. Now we have to symlink it to make it executable with a command. Put in this command,

Now, the utorrent executable file from the extracted folder has a executable command. We are almost done.

Use this command to start the utorrent server. This command has no output and will stop there. Leave it as it is.

Command output

In the screenshot, there is en error, i did a mistake on while working, so ignore that. If you follow my instruction properly, there shouldn’t be any problem.

But if it shows any error like, libssl.so package missing, try this command. it will install the missing package. Then try the previous command again.

Now it should work nice and fine.

Step 4

We install the server, lets take a look at the WebUI. Try this url in your browser.

It will ask for username and password. The default username is admin and blank password. Put admin and enter. Then you should see a user interface like this,

Utorrent server WebUI

Well, i am using epiphanybrowser, Which comes with ubuntu 14.04 by default. I use this browser just for webUI like this one.

This webUI is extremely easy to use as its similar with the Windows version. If you faced any problem in the run, please put it in the comment below.