Rasel Hossain Adib

Rasel Hossain Adib MERN Stack Developer And WordPress Developer

This website is made by me for Toshil office
01/10/2022

This website is made by me for Toshil office

ইউনিয়ন ভূমি সহকারী কর্মকর্তা সাহাপুর ইউনিয়ন চাটখিল, নোয়াখালী

24/09/2022

For only $160, Rasalho will do wordpress website development or wordpress website design. | Are you lookingto get a responsiveWordPress Website Designor do you want to redesign the website to make it professional & mobile responsive?So,I welcome you to | Fiverr

Small daily trips are necessary to heal the mind
24/09/2022

Small daily trips are necessary to heal the mind

23/09/2022

For only $130, Rasalho will build a modern and responsive wordpress website. | Are you looking to get a responsiveWordPress Website Designor do you want to redesign website to make it professional & mobile responsive?So, I welcome you | Fiverr

I created this website while learning MongoDB, to help those who want to learn MongoDB.https://adibrasel.github.io/Mongo...
23/09/2022

I created this website while learning MongoDB, to help those who want to learn MongoDB.
https://adibrasel.github.io/MongoDB/

MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling. In simple words, you can say that - Mongo DB is a document-oriented database. It is an open source product, developed and supported by a company named 10gen. MongoDB is available und...

I created this website while learning Express js, to help those who want to learn Express js.https://adibrasel.github.io...
23/09/2022

I created this website while learning Express js, to help those who want to learn Express js.
https://adibrasel.github.io/Express_js/

Express is a fast, assertive, essential and moderate web framework of Node.js. You can assume express as a layer built on the top of the Node.js that helps manage a server and routes. It provides a robust set of features to develop web and mobile applications.

The amount of complaints or arrogance you get for what you don't get; Are you equally grateful for what you have receive...
15/01/2021

The amount of complaints or arrogance you get for what you don't get; Are you equally grateful for what you have received? No one was born on earth in this covenant to help you as soon as you are in danger. So before you get into trouble without getting help, think about how many people you haven't been able to help yet. This may not be all you want in a lifetime. If you waste time regretting what you didn't get, you will lose the time to enjoy what you got. Before laughing at the mistakes of others, think once and for all whether you are the person who has never made a mistake in your life. Lastly, no matter what you get, maybe it's not time to get it yet or it would be better not to get it.

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

ডাটাবেজ কনসিসটেন্সিঃ Optimistic Locking এবং Pessimistic Lockingযেকোনো ধরনের web application বা android application এর জন...
15/01/2021

ডাটাবেজ কনসিসটেন্সিঃ Optimistic Locking এবং Pessimistic Locking

যেকোনো ধরনের web application বা android application এর জন্য ডাটাবেজ এর কনসিসটেন্সি ধরে রাখা একটা গুরুত্বপূর্ণ কাজ। আমরা আজকে ডাটাবেজের কনসিসটেন্সি ধরে রাখার জন্য কোন কোন উপায় ব্যবহার করতে পারি তা নিয়ে স্বল্প পরিসরে আলোচনা করবো।
ধরি, user1 এবং user2 দুইজন ক্লায়েন্ট একই সময়ে ডাটাবেজের একই এন্ট্রি আপডেট করার চেষ্টা করলো।
প্রাথমিক ডাটাঃ
Image for post
Fig-01: Initial Data
user2 ডাটা টা আপডেট করে ফেললো এবং user1 জানতে পারলো না যে তার ডাটা read করার পরে অন্য ক্লায়েন্ট (user2) ডাটা টা আপডেট করে ফেলেছে।
user2 ডাটা আপডেট করার পরের অবস্থাঃ
Image for post
Fig-02: Updated By user2
এখন user1 তার আপডেটের commit করলো। user1 ডাটা আপডেট করার সাথে সাথে user2 এর আপডেটেড ডাটা টা overwrite হয়ে যাবে, মানে fig-02 এর কোনো অস্তিস্তই তখন থাকবে না।
user1 ডাটা আপডেট করার পরের অবস্থাঃ
Image for post
Fig-03: Updated By user1
এই রকম পরিস্থিতি হলে user2 এর জন্য ব্যাপার টা কষ্টদায়ক, কারন user2 যা আপডেট করলো তার কোনো অস্তিস্তই থাকবে না ডাটাবেজে। আর এটা যদি কোনো ব্যাংকিং application এর জন্য হয় তাহলে অনেক সমস্যার সম্মুখিন হতে হবে। [ বিশেষ করে টাকা ট্রানজেকশন এর ক্ষেত্রে, ই-কমার্স সাইটে প্রোডাক্ট ক্রয়ের ক্ষেত্রে(যখন সর্বশেষ প্রোডাক্ট দুইজন ক্রেতাই ক্রয় করার জন্য রিকুয়েস্ট দিবে) ]
তাহলে আমরা এমন পরিস্থিতি কিভাবে সমাধান করতে পারি?
এইরকম পরিস্থিতি সমাধান করার জন্য দুইটা পদ্ধতি ব্যবহার করতে পারিঃ
1. Optimistic Locking
2. Pessimistic Locking
**** Optimistic Locking: এই locking এর ক্ষেত্রে ধরে নেওয়া হয় এই রকম পরিস্থিতি ( ডাটা আপডেটের সময়ে কনফ্লিক্ট ) খুব কম ক্ষেত্রে ঘটবে। এই ক্ষেত্রে আমরা timestamp(updated_at) ব্যবহার করতে পারি। (বিঃদ্রঃ timestamp ছাড়াও অন্য উপায়ও আছে, কিন্তু সহজভাবে বুঝানোর জন্য আমরা timestamp ব্যবহার করবো)

ধরি, user1 এবং user2 যে টাইমে ডাটা read করলো তার timestamp(updated_at) 2020–10–29 19:42:22
Image for post
Fig-04: Initial Data
এখন user2 যখন ডাটা আপডেট করবে তখন সে ডাটাবেজ আবার একবার check করবে যে, সে যে timestamp এ ডাটা read করেছে তা এখনো একই আছে কিনা, যদি একই থাকে তাহলে সে ডাটাটা আপডেট করবে। এবং ধরি user2 ডাটা আপডেট করার পরে timestamp (updated_at) এর নতুন ভ্যালু হলো 2020–10–15 08:42:35.
Image for post
Fig-05: Updated by user2
এখন user1 যখন commit করতে যাবে তার চেইঞ্জ টা তখন সে দেখবে তার read করা timestamp (updated_at) এর ভ্যালুটা আর বর্তমান timestamp (updated_at) ভ্যালু একই না (2020–10–29 19:42:22 != 2020–10–15 08:42:35), এবং user1 এর আপডেট এর commit টা তখন successful হবে না। এ ক্ষেত্রে ডাটা আপডেট করতে চাইলে user1 কে আবার চেষ্টা করতে হবে।
** Pessimistic Locking: এই ক্ষেত্রে সব সময় ধরে নেওয়া হয় যে ডাটা আপডেটের ক্ষেত্রে অনেক বেশি কনফ্লিক্ট হবে। এই locking এর ক্ষেত্রে যখন user1 ডাটা আপডেটের জন্য read করবে তখন ঐ db row টা lock করে দেয়া হয়। এবং যতক্ষন না user1 তার commit টা শেষ করবে ততক্ষণ অন্য কোনো ক্লায়েন্ট ঐ ডাটা টা আপডেট করতে পারবে না। কারন user2 ডাটা read করার সময়ে দেখবে ডাটাটা অন্য কোনো ক্লায়েন্ট (user1) আপডেট করার চেষ্টা করতেছে (lock এর মাধ্যেমে বুঝতে পারবে).
Pessimistic locking apply এর ক্ষেত্রে অবশ্যই Deadlock এর দিকে খেয়াল রাখতে হবে। কেমন ধরনের Deadlock হতে পারে এখানে?
ধরি, user1 ডাটা টা read করে db row কে lock করে দিলো। হঠাৎ করে তার কানেকশন বা অন্য কোনো সমস্যার কারনে ডাটা আপডেট করলো না এবং lock টা থেকেই গেলো। এখন lock যতক্ষণ পর্যন্ত থাকবে ততক্ষণ অন্য কোনো ক্লায়েন্ট ঐ row আপডেট করতে পারবে না। এবং এটাই এই ক্ষেত্রে Deadlock.
Deadlock যেন না হয় তা খেয়াল রাখতে হবে Application Design এর সময়।
— — — — — — — — — — — — — — — — — — — — — — — — — — — — -

ওপেনসোর্স সফটওয়্যার — প্রযুক্তি জগতের এক নীরব বিপ্লবভূমিকাপ্রযুক্তির নানাবিধ ব্যবহারের কল্যাণে আমরা প্রায় সবাই কোনো না ক...
15/01/2021

ওপেনসোর্স সফটওয়্যার — প্রযুক্তি জগতের এক নীরব বিপ্লব

ভূমিকা
প্রযুক্তির নানাবিধ ব্যবহারের কল্যাণে আমরা প্রায় সবাই কোনো না কোনো সময় ‘ওপেনসোর্স সফটওয়্যার/প্রজেক্ট’ শব্দগুলো শুনেছি । আর যারা উৎসাহী হয়ে একটু ঘেটে দেখতে গিয়েছি ব্যাপারটা কী, তারা একেবারে কিছুই না বুঝলেও এটুকু অন্তত বুঝেছি , সফটওয়্যারটি ফ্রি বা ওপেন বা এরকম কিছু একটা হবে । এতে করে কারো কাছে ব্যাপারটা ইন্টারেস্টিং লাগতে পারে, কেউ হয়তো একটু সন্দিহান হয়েছি, 'ফ্রি এর জিনিস, কেমন না কেমন হবে কে জানে!'
আসলে ওপেনসোর্স সফটওয়্যার বা প্রজেক্ট বলতে কী বুঝায় ? ফ্রি সফটওয়্যার মানেই কি তা ওপেন সোর্স? একটা সফটওয়্যার ওপেনসোর্স হবার মূল শর্তটি কী? ওপেন সোর্স কি শুধুই সফটওয়্যার কেন্দ্রিক ব্যাপারস্যাপার নাকি এরবাইরেও বেশি কিছু ?কেনইবা ব্যবহার করবো ওপেনসোর্স সফটওয়্যার? এই আর্টিকেলে আমরা এইসব প্রশ্নের উত্তরগুলো জানার চেষ্টা করবো । আশা করি আর্টিকেল শেষ করার পর এ ব্যাপারে ধারণা অনেকটাই পরিষ্কার হয়ে যাবে, এবং ওপেনসোর্সের প্রতি ভালোবাসা আসুক বা না আসুক, শ্রদ্ধা অবশ্যই আসবে ।
ওপেন সোর্স সফটওয়্যার কী
ওপেনসোর্স সফটওয়্যার বলতে সেসব সফটওয়্যারকে বোঝায়, যেগুলো কীভাবে তৈরী হয়েছে সেই মালমশলা(সোর্স কোড) সবার জন্যে উন্মুক্ত, যাতে করে সবাই এই মালমশলা বা সোর্সকোড ঘেটে দেখতে পারে সফটওয়্যারটি কীভাবে তৈরী করা হয়েছে ,এগুলো নিয়ে গবেষণা করতে পারে, কোনো পরিবর্তন বা পরামর্শ থাকলে তা করতে পারে, এমনকি সোর্সকোডের অংশবিশেষ পরিবর্তন করে মূল সফটওয়্যারটি নিজ ইচ্ছেমতো মডিফাই করতে পারে ।
এখানে কোথাও 'ফ্রি' ব্যাপারটা সরাসরি না আসলেও আমরা বুঝতে পারি, যে সফটওয়্যারটি ফ্রি। কারণ এর তৈরীর প্রণালী এবং মালমশলা সকলের জন্যে উন্মুক্ত , সুতরাং সফটওয়্যারটিও বিনামূল্যেরই যে হবে, তাতে আর সন্দেহ কী । তবে সংজ্ঞাটি একটু ভালোভাবে খেয়াল করলে আমরা বুঝতে পারবো , এখানে আসলে যেই বিষয়ের উপর গুরুত্বারোপ করা হয়েছে , তা হচ্ছে এর সোর্স কোড সকলের জন্যে উন্মুক্ত থাকতে হবে এবং ইচ্ছেমতো পরিবর্তনের সুযোগ থাকতে হবে । অর্থাৎ , আর্থিক ব্যাপারের চাইতে সকলের অংশগ্রহণ বা প্রয়োজনে অবদান রাখার সুযোগটিকে মূল ভিত্তি হিসেবে আলোকপাত করে প্রাণপ্রতিষ্ঠা হয়েছে ওপেনসোর্স ধারণাটির । এতে করে যেকোনো ইচ্ছুক ব্যক্তি কোডগুলো নিয়ে মাথা ঘামাতে বা চর্চা করতে পারে, যাতে করে তার নিজের দক্ষতা বাড়বে, সেই সাথে তার ছোট-বড় কোনো অবদানের মাধ্যমে, এবং এমন আরো অনেকের অবদানের মাধ্যমে মূল সফটওয়্যারটিরও উন্নতি সাধিত হবে। কোনো একটি সফটওয়্যারের ব্যবহার যদি বিনামূল্যেরও হয়, কিন্তু তাতে অবদানের সুযোগ যদি না থাকে, তবে তা ফ্রি বলা গেলেও , উন্মুক্ত বলা যাবে না।
একটি দৃশ্য কল্পনা করুন । আপনি রাস্তার পাশ দিয়ে হেটে যাচ্ছেন, হঠাৎ শুনলেন , পাশাপাশি দুটো রেস্টুরেন্ট থেকে ফ্রিতে বার্গার দেয়া হচ্ছে । কিন্তু পার্থক্য হচ্ছে , একটিতে শুধু তৈরী বার্গার গুলোই দেয়া হচ্ছে, কিন্তু অন্যটিতে বার্গার দেয়ার সাথে সাথে আপনাকে আমন্ত্রণ জানানো হচ্ছে, ইচ্ছে হলে ভেতরে গিয়ে দেখতে পারেন, তাদের বার্গার কীভাবে বানানো হচ্ছে, কী কী সিক্রেট(?) রেসিপি ব্যবহার করা হচ্ছে চাইলে আপনি রেসিপি এদিক ওদিক করে বার্গারকে নিজের পছন্দ অনুযায়ী তৈরী করতে পারবেন । ঠিক ধরেছেন , ১ম টা শুধু ফ্রি হলেও , পরেরটা ফ্রি এবং ওপেন সোর্স ।
অর্থাৎ , 'ওপেন' শব্দটি অর্থমূল্যের বাইরেও আরো বেশি বিস্তৃত অর্থ প্রকাশ করছে । এজন্যে একে মুক্ত বা উন্মুক্ত বলা হয়। 'উন্মুক্ত' শব্দটির সাথেই মিশে আছে আকাশসম বিশালতা আর স্বাধীনতা , তাই নয় কি ?
ওপেনসোর্স বনাম ক্লোজডসোর্স সফটওয়্যার
উন্মুক্ত সফটওয়্যার যদি কয়েনের একপাশ হয়, অপরপাশ নিশ্চয়ই আছে। সেই অপরপাশটিকে বলা হয় ক্লোজডসোর্স সফটওয়্যার । ক্লোজড সোর্স সফটওয়্যারগুলো অর্থের বিনিময়ে কিনে নিয়ে ব্যবহার করতে হয় (যদি না আমরা পাইরেটেড বা ক্র্যাক ভার্সন ব্যবহার করি ) । এই সফটওয়্যারগুলোর কোনো কোনোটা একটি নির্দিষ্ট সময়ের জন্যে ফ্রিতে ব্যবহার করতে দেয়া হয়, আবার কোনো কোনো সফটওয়্যারে কিছু সুবিধা ফ্রিতে ব্যবহার করা যায়, পুরো ফিচার উপভোগ করতে গেলে অর্থ খরচ করতে হয় ।
তবে আমরা ওপেনসোর্সের সংজ্ঞায় একটা বিষয় পরিষ্কার হয়েছি, আর্থিক ব্যাপারটি গুরুত্বপূর্ণ হলেও মূখ্য বা প্রধান নয় উন্মুক্ত হবার জন্যে । ক্লোজড সোর্স সফটওয়্যার গুলোর সোর্সকোড উন্মুক্ত থাকে না, এবং এতে কোনো ধরণের পরিবর্তন বা পরিবর্ধনকে খুব শক্ত লাইসেন্সের বেড়াজালে আটকে রাখা হয়েছে । শুধুমাত্র মূল ডেভেলপার বা কোম্পানী বাদে অন্য কারো জন্যে এসব সফটওয়্যারে কোনোরূপ পরিবর্তন বা পরিবর্ধন আইনত দন্ডনীয় অপরাধ । এই ধরণের শর্ত বা বেড়াজালের সাথে আমরা সবাই কমবেশি পরিচিত । উদাহরণস্বরূপ, আমাদের সবচেয়ে পরিচিত ক্লোজডসোর্স সফটওয়্যার হচ্ছে উইন্ডোজ অপারেটিং সিস্টেম এবং এর বিভিন্ন এপ্লিকেশন(যেমন অফিস) । লাইসেন্সের এই শর্তগুলোকে বলা হচ্ছে কপিরাইট ।
অন্যদিকে ওপেনসোর্স ব্যাপারটি একেবারে আলাদা । এর ডেভেলপার সোর্স কোড সকলের জন্যে উন্মুক্ত করে দিয়েছেন, যাতে করে যে কেউ কেউ তা (বিনামূল্যে)ব্যবহার, তা নিয়ে পড়ালেখা, পরিবর্তন বা বিতরণ করতে পারেন । উদাহরণ হিসেবে রয়েছে লিনাক্স ভিত্তিক অজস্র অপারেটিং সিস্টেম(জনপ্রিয় হচ্ছে উবুন্টু বা লিনাক্স মিন্ট) এবং এসব অপারেটিং সিস্টেমের প্রায় সবধরণের এপ্লিকেশন ।
তারমানে ওপেনসোর্স সফটওয়্যারে কোনো লাইসেন্স নেই ? আছে ! কপিরাইটের বিপরীতে এসব শর্ত বা লাইসেন্সকে বলা হচ্ছে কপিলেফট । তবে এই লাইসেন্সের শর্তটিও বেশ চমকপ্রদ । এসব লাইসেন্সের মূল শর্তই হচ্ছে , সফটওয়্যারে যদি কোনোরুপ পরিবর্তন করা হয়, তাহলে সেই পরবর্তিত সফটওয়্যার এবং তার সোর্সকোডও সকলের জন্যে উন্মুক্ত রাখতে হবে! অর্থাৎ শখে এবং শর্তে- ওপেনসোর্স নিশ্চিত করছে সবার অংশগ্রহণের অধিকার ।
ওপেনসোর্স কি শুধু প্রোগ্রামারের জন্যে?
ওপেনসোর্স ধারণাটি যেহেতু সফটওয়্যার ডেভেলপমেন্ট থেকেই এসেছে , এবং বহুলাংশে তা সফটওয়্যার তৈরীর সাথে জড়িত , প্রশ্ন জাগতেই পারে , ওপেনসোর্সে কি শুধু প্রোগ্রামাররাই লাভবান হচ্ছে? উত্তরটি হচ্ছে, একদমই না। প্রোগ্রামাররা যেসব সফটওয়্যার তৈরী করছে, তা আদতে আমাদের মতোন সাধারণ ব্যবহারকারীদের জন্যেই তৈরী করা হচ্ছে। এই দিক থেকে, বিভিন্ন ওপেনসোর্স প্রজেক্টের সুফল আসলে আমরা সবাইই ভোগ করছি। বর্তমানের এই ইন্টারনেটের ভিত্তি হচ্ছে ওয়ার্ল্ড ওয়াইড ওয়েব(www) । সেই শুরুর দিকের ইন্টারনেটের প্রায় বেশিরভাগটাই তৈরী হয়েছে www, এপাচি ওয়েব সার্ভার (Apache web server) ইত্যাদির মতো উন্মুক্ত প্রযুক্তির উপর ভর করে । এছাড়া ইন্টারনেটের মাধ্যমে অজস্র ডাটা এক ডিভাইস থেকে আরেক ডিভাইসে চলাচল করছে বিভিন্ন ওপেনসোর্স টেকনোলজি ব্যবহার করে। সুতরাং আমরা যারা ইন্টারনেট ব্যবহার করছি, আমরা সবাইই আসলে ওপেনসোর্সের সুফল পাচ্ছি প্রতি মুহুর্তে।
ওপেনসোর্স সফটওয়্যারের উপকারীতা
নিয়ন্ত্রণ
বেশিরিভাগ মানুষই যে কারণে ওপেনসোর্স সফটওয়্যার পছন্দ করেন, তা হচ্ছে এর উপর ব্যবহারকারীর নিয়ন্ত্রণ । ব্যবহারকারী চাইলেই কোড ঘেটে দেখতে পারেন , সফটওয়্যারটি অযাচিত কিছু করছে কীনা। চাইলে অপ্রয়োজনীয় ফিচার বাদ দিয়ে দিতে পারেন।
প্রশিক্ষণ
ওপেনসোর্স সফটওয়্যার যেহেতু সবার জন্যে উন্মুক্ত, চাইলে যে কেউ দেখতে পারে একটা সফটওয়্যারের কোড কীভাবে লেখা হয়েছে । এই দেখা এবং চর্চার মাধ্যমে নিজের কোডিং স্কিলও নিঃসন্দেহে উন্নত হবে । এছাড়া, এটা যেহেতু একটা কমিউনিটি, এখানে সবসময় বিভিন্ন বিষয়, ভুল এবং তা সমাধানের উত্তম উপায় নিয়ে আলোচনা হয়, যা দেখে যে কেউ এমনকী ভুল করার আগেই তা সম্বন্ধে জ্ঞান লাভ করতে পারে ।
নিরাপত্তা
অনেকে এসব সফটওয়্যার ব্যবহার করে, কারণ তারা এসবকে তুলনামূলক বেশি নিরাপদ মনে করেন । কারণ, মূল কোড যেহেতু সবার জন্যে ওপেন, তাই মূল প্রোগ্রামার যদি কোথাও কিছু ভুল করে থাকেন বা বাদ দিয়ে থাকেন , তখন বাকিরা সেই ভুল বের করতে পারেন । এবং যেহেতু এসব সফটওয়্যার মডিফাই করার জন্যে মূল ডেভেলপারের অনুমতির প্রয়োজন নেই, তাই অজস্র মানুষের অবদানে খুব দ্রুতই নিরাপত্তা ঝুঁকির সমাধান হয়ে যায় ।
স্ট্যাবিলিটি
আপনি যখন কোন গুরুত্ত্বপূর্ণ কাজ করতে চাইবেন, আপনি নিশ্চয় এমন কোনো সফটওয়্যার ব্যবহার করবেন না, যা কিছুদিন পরেই হাওয়া হয়ে যাবে । যদিও কোনো সফটওয়্যার কখনো রাতারাতি 'হাওয়া' হয়ে যায় না, তবুও বিভিন্ন কারণে সফটওয়্যারগুলোর উন্নয়ন মূল ডেভেলপাররা বন্ধ করতে বাধ্য হতে পারেন । আপনি নিশ্চয় এমন কোনো সফটওয়্যারও পছন্দ করবেন না ।
ওপেনসোর্স সফটওয়্যার গুলো যেহেতু কমিউনিটির কাছে উন্মুক্ত থাকে, এবং মূল ডেভেলপারের বাইরেও অজস্র ডেভেলপার স্বেচ্ছাশ্রমে এর উন্নয়নে অবদান রাখেন, তাই মূল ডেভেলপার সফটওয়্যারের উন্নয়নকাজ বাদ দিলেও, কমিউনিটির অবদানে তা দিব্যি চলমান থাকতে পারে । একারণে ওপেনসোর্স সফটওয়্যারগুলোকে স্থিতিশীল ধরা হয়।
কমিউনিটি
এই পুরো আর্টিকেলে অজস্রবার 'কমিউনিটি' শব্দটি ব্যবহৃত হয়েছে । আর হবে না-ই বা কেন? এটাই তো ওপেনসোর্সের প্রাণভোমড়া । কিন্তু কমিউনিটির ধারনাটি কিন্তু শুধু ওপেনসোর্সের জন্যে ইউনিক নয়, বরং এখন প্রায় সব ধরণের পণ্যেরই ব্যবহারকারী বা মিট-আপ এর দিক থেকে কমিউনিটি থাকে। কিন্তু বিশাল পার্থক্যটি হচ্ছে, ওপেনসোর্সের কমিউনিটি শুধু সেসব ফ্যানবেজ দিয়ে তৈরী নয় যারা মূলত আর্থিক বা আবেগের দিক থেকে পণ্যটির শুধুমাত্র ভোক্তা । বরং ওপেনসোর্সের কমিউনিটি হচ্ছে তারা, যারা তাদের প্রিয় পণ্য(যেমন সফটওয়্যার) তৈরী করা, টেস্ট করা, ব্যবহার করা, প্রমোট করা ইত্যাদি সব কিছুর সাথে যুক্ত।
বৈচিত্র্য
ওপেন সোর্স সফটওয়্যারে কোনোরূপ পরিবর্তনে বিধিনিষেধ না থাকায় বিভিন্ন ব্যক্তি বা কোম্পানী তা নিজেদের মতো করে পরিবর্তন করে নিচ্ছে, এবং পরিবর্তিত সফটওয়্যারগুলোকেও ওপেনসোর্স করে দিচ্ছে । ফলে মূল সফটওয়্যার বাদেও তার বিভিন্ন বৈচিত্র্যময় ভার্সন আমরা দেখতে পাই । উদাহরণস্বরূপ, লিনাক্স কার্নেলটি উন্মুক্ত হওয়ায় আমরা পেয়েছি এর উপর ভিত্তি করে তৈরী হওয়া অজস্র অপারেটিং সিস্টেম, এমনকি একই অপারেটিং সিস্টেমের একাধিক বৈচিত্র্যময় ভার্সন বা ফ্লেভার।
স্বাধীনতা
সর্বোপরি, উন্মুক্ত সফটওয়্যারগুলো ব্যবহারকারীকে কোনো নির্দিষ্ট গন্ডির ভেতরে থেকে ব্যবহারের সুবিধা না দিয়ে বরং তাকে সবটুকু স্বাধীনতা দেয়, তার যেভাবে ইচ্ছে সফটওয়্যারটিকে সেভাবে ব্যবহার করা কিংবা সাজিয়ে নেয়ার ।
জনপ্রিয় কিছু ওপেনসোর্স প্রজেক্ট
সত্যি বলতে, বিভিন্ন ওপেন সোর্স প্রজেক্ট এমনভাবে বিস্তার লাভ করেছে, যে আমরা প্রায় সবাই জেনে বা না জেনেও এসব সফটওয়্যার বা প্রজেক্টের সুফল ভোগ করছি প্রতিদিনই। আমি যদি একেবারে ব্যক্তিগত অভ্যাস থেকে উদাহরণ দেই, তাহলে হয়তো কিছুটা ধারণা পাওয়া যাবে।
আমি যে স্মার্টফোনটি ব্যবহার করি, তা এন্ড্রয়েড অপারেটিং সিস্টেমে চলে। আমার ল্যাপটপটি চলছে লিনাক্স ভিত্তিক উবুন্টু অপারেটিং সিস্টেমে। দৈনন্দিন লেখালেখি বা স্লাইড তৈরীর কাজগুলোর জন্যে ব্যবহার করি লিব্রে অফিস। আমার পছন্দের ওয়েব ব্রাউজার মজিলা। এছাড়াও ব্যবহার করি ক্রোমিয়াম ব্রাউজারও। আমি সাধারণত কাজ করি পাইথন প্রোগ্রামিং ল্যাংগুয়েজ এবং এর জ্যাংগো ফ্রেমওয়ার্কটি নিয়ে। আমার ডিফল্ট সার্চ ইঞ্জিন হচ্ছে ডাকডাকগো (duckduckgo)।
লিস্টটি আর লম্বা না করি। বলাই বাহুল্য, দৈনন্দিন জীবনে ব্যবহার করা এই ওএস, ব্রাউজার, ল্যাংগুয়েজ, ফ্রেমওয়ার্ক, সার্চ ইঞ্জিন — এরা সবাই ওপেনসোর্স প্রজেক্টের ফসল। এছাড়াও আমরা একটু আগে বলে এসেছি, পুরো ইন্টারনেট ব্যবস্থাটির ভিত্তি যেই ওয়েব(world wide web) ধারণাটির উপর, সেটিও একটি ওপেনসোর্স প্রজেক্ট। এছাড়াও বিভিন্ন ওপেনসোর্স সফটওয়্যারের লিস্ট দেখতে পারেন এখানে এবং এখানে ।
ওপেনসোর্স সফটওয়্যারে প্রোগ্রামারের আয়ের উৎস কী?
এতোক্ষণের আলোচনায় একটা প্রশ্ন আমাদের মনে উঁকিঝুঁকি দিতেই পারে, সফটওয়্যার যদি একেবারে ফ্রি হয়, তাহলে ডেভেলপারের লাভ কী? ওপেনসোর্স সফটওয়্যার এমন একটি উন্মুক্ত চিন্তাকে লালন করে, যার সাথে আমাদের পরিচিত লাভ-লস শব্দগুলো ঠিক যায় না। তবে এটাও ঠিক, যে পরিমাণ সময় ডেভেলপাররা দিচ্ছেন, সেটিও মূল্যবান। কাজেই, সফটওয়্যারগুলো ফ্রি হলেও, এরমাঝেও রয়েছে ডেভেলপারদের জন্য আয়ের বিভিন্ন সুযোগ।
স্পন্সর
ওপেনসোর্সে অর্থলাভের প্রধান অপশনটি হচ্ছে, বিভিন্ন ধরণের স্পন্সরশিপ। একজন ডেভেলপার তার মানসম্পন্ন কন্ট্রিবিউশনের মাধ্যমে ওপেনসোর্সের সুফলভোগী এবং শুভাকাঙ্ক্ষী ব্যক্তি বা প্রতিষ্ঠানের কাছ থেকে স্পন্সর পেতে পারেন, আবার চাইলে স্পন্সর এর উদ্ধৃত অর্থ থেকে অন্য ডেভেলপারকেও স্পন্সর করতে পারেন। এই স্পন্সরের পরিমাণ হতে পারে ১০ ডলার থেকে শুরু করে আরো অনেক বেশি। আপনি হয়তো বিভিন্ন ওপেনসোর্স সফটওয়্যারের ওয়েবসাইটে গেলে দেখতে পারবেন, সেখানে তারা স্পন্সরদের তালিকাও দিয়ে দিচ্ছে। এছাড়া আপনার জন্যেও রয়েছে সাধ্যমতো স্পন্সর বা কন্ট্রিবিউট করার সুবিধা। যেমন কোথাও হয়তো দেখবেন একটি সুন্দর কথা লেখা আছে, যদি তাদের কার্যক্রম আপনার ভালো লাগে, এবং আপনি চান এই কার্যক্রম বা প্রজেক্ট চলমান থাকুক, তাহলে আপনি খুশি হয়ে তাদের এক/দুই/তিন কাপ কফি অফার করতে পারেন। অর্থাৎ, মাত্র এক কাপ কফির মূল্য দিয়েও আপনি এতে শরীক হতে পারেন। মনে হতে পারে, এতো ছোট ছোট কন্ট্রিবিউশান কি আদৌ তাদের উপকারে আসে? উত্তরটি হচ্ছে, বিন্দু বিন্দু জলেই মহাসাগর তৈরি হয়। মজিলা কিংবা উবুন্টুর মতো বড়ো বড়ো ওপেনসোর্স প্রজেক্টগুলো বছরের পর বছর ধরে এভাবেই চলমান আছে। এরপরেও যদি অসম্ভব মনে হয়, তাহলে উদাহরণস্বরূপ বলা যায়, মার্কিন নির্বাচনে প্রধান দুটি দল ডেমোক্র্যাট আর রিপাবলিক এর নির্বাচনী তহবিলের মিলিয়ন মিলিয়ন ডলারও কিন্তু এভাবেই সংগ্রহ করা হয়। যদিও এটি আমাদের টপিকের বাইরে, তবে ছোট বড়ো কন্ট্রিবিউশান এর ক্ষমতা বোঝানোর জন্যে উদাহরণটি দেয়া। দেখুন, এই ক্ষেত্রেও ওপেনসোর্স তার মহত্ত্ব আর শেয়ারিং এর ধারণাটিকে প্রমোট করছে।
কাস্টমাইজেশন
ওপেনসোর্স সফটওয়্যারগুলোর যেকোনো ধরণের কাস্টমাইজেশন যদিও একেবারে উন্মুক্ত, তবুও এমন অনেকেই আছেন, যাদের হয়তো কাস্টমাজেশনের টেকনিকাল বিষয়ে জ্ঞান নেই। সেক্ষেত্রে অর্থের বিনিময়ে তার ইচ্ছেমতো পরিবর্তন বা কাস্টমাইজ করে নিতে পারেন। এটিও ওপেনসোর্স ডেভেলপারদের আয়ের উৎস।
ট্রেইনিং
একইভাবে, বিভিন্ন কোম্পানী এসব ওপেনসোর্স সফটওয়্যার ব্যবহার করে। তারা এই সফটওয়্যার সম্পর্কে দ্রুত শেখার জন্যে এমপ্লয়িদের ট্রেনিং এর ব্যবস্থা রাখেন। আর এই ট্রেনিং এর জন্যে নিঃসন্দেহে মূল ডেভেলপারই পারফেক্ট। অর্থের বিনিময়ে তারা এ ট্রেনিং এর আয়োজন করে, এটাও আয়ের উৎস হতে পারে।
সার্ভিস এবং সাপোর্ট
একটি সফটওয়্যার দীর্ঘসময়ের জন্য চলমান থাকলে তাতে নির্দিষ্ট সময় পর পর সার্ভিস আর সাপোর্ট প্রয়োজন হতে পারে। বিভিন্ন বড়ো কোম্পানিগুলোর কাছে অর্থের চেয়ে সময়ের মূল্য বেশি। তাই কম সময়ে ভালো সাপোর্টের জন্যে তারা এর মূল ডেভেলপারকেই অর্থের বিনিময়ে নিয়োগ দেন। কারণ তার চাইতে ভালো আর কেউ জানবে না সফটওয়্যারটি সম্পর্কে। এভাবেও আয় করতে পারেন একজন ওপেনসোর্স ডেভেলপার।
অর্থাৎ, ডেভেলপাররা যেমন তাদের সময় ব্যয় করছেন কমিনিটির জন্যে, আবার কমিউনিটিও খেয়াল রাখছে যেন ডেভেলপাররা বাজেট বা অর্থ সংকটে নিরাশ না হয়ে পরেন, এবং সময়ের যথাযথ মূল্য পান। এতে করে তারা অর্থের দুশ্চিন্তা মাথায় না রেখে আরো ভালো অবদান রেখে যেতে পারছেন।
ওপেনসোর্স চিন্তাধারা — সফটওয়্যার ছাড়িয়ে বহুদূর
ওপেনসোর্স মূলত সফটওয়্যারকেন্দ্রিক ভাবে শুরু হলেও বর্তমানে 'ওপেনসোর্স' শব্দটি কোনো নির্দিষ্ট ইন্ডাস্ট্রি নয়, বরং একটি আদর্শ বা জীবনবোধকে তুলে ধরছে । এই 'উন্মুক্ত আদর্শ' মানে হচ্ছে, কোনো কিছু অপরের সাথে ভাগাভাগি করে নেয়ার এবং অন্যের অবদানের সুযোগ প্রদানের স্বদিচ্ছা ,ব্যর্থতাকে আলিঙ্গন করে সবাই মিলে তা শুধরে নেয়ার এবং উত্তরণের পথ নিশ্চিত করা। 'উন্মুক্ত আদর্শ' মানে হচ্ছে সবার এই পৃথিবীতে সবার অবদানের সুযোগ নিশ্চিত করা। কাজেই , বর্তমানে শুধু সফটওয়্যার ইন্ডাস্ট্রিই নয়, বরং বিজ্ঞান, শিক্ষা, সরকারব্যবস্থা,উৎপাদন, স্বাস্থ্য, আইন ইত্যাদি সকল মাত্রায়ই ভূমিকা রেখে চলেছে এই অদ্ভুত সুন্দর ধারণাটি। নিসঃন্দেহে বলা যায় , সামাজিক সৃষ্টি হিসেবে, অন্যের সাথে ভাগাভাগি করে নেয়াটাই উত্তম ।
it’s better when it’s shared
শেষের আগে
ওপেনসোর্স এখন সর্বোব্যাপী ধারনা হলেও, এই পুরো আর্টিকেল জূড়ে মূলত ওপেনসোর্স সফটওয়্যারের দিকেই আলোকপাত করা হয়েছে । ওপেনসোর্স সফটওয়্যারের পরিচয় তুলে ধরা হয়েছে । আশা করি ধারণাটি এখন আগের চাইতে কিছুটা হলেও পরিষ্কার । যদিও এখানে কীভাবে ওপেনসোর্সে অবদান রাখা যাবে সেদিকটি আলোচ্য বিষয় ছিলো না । হয়তো ভবিষ্যতে কখনো লিখবো এই ব্যাপারে । তবে আমার মতো নতুন কেউ যদি উৎসাহিত হন , তবে freecodecamp এর এই ভিডিওটি এবং এই ভিডিওটি দেখতে পারেন । এছাড়া ওপেনসোর্সকে উৎসাহ দেয়ার জন্যে এই অক্টোবর মাস জুড়ে চলছে Hacktoberfest, যার পরিবেশক হিসেবে আছে ইন্টেল, ডিজিটালওশ্যান এর মতো বড়ো বড়ো কোম্পানীগুলো । তাদের ইভেন্টটি ঘুরে আসতে পারেন, অবদান রাখতে পারেন , এমনকী শুধুমাত্র দেখে উপলব্ধি করতে পারেন, ওপেনসোর্সকে কমিউনিটিগুলো কতোটা ভালোবাসায় সমর্থন দিয়ে যাচ্ছে ।
সবশেষে, বলছি বহুল চর্চিত সেই ইংরেজি বাক্যটি । Sharing is caring, সুতরাং আনন্দ বা কষ্ট, ভাগাভাগি করে নিন অন্যের সাথে । শেয়ার করুন, সাপোর্ট করুন, সমর্থন করুন অন্যকে । আমাদের সকলের সম্মিলিত প্রচেষ্টায় গড়ে তুলতে পারি একটি সুন্দর পৃথিবী , A whole new wolrd!
ধন্যবাদ সবাইকে ।
হ্যাপি কোডিং ।

15/01/2021

PHP is considered a backend programming language, which means it often focuses more on how it handles interconnections between servers and data handling than the overall look or GUI (frontend) that users tend to focus on. With that said, PHP has a number of strengths in this realm, such as it being a stable, mature language with a plethora of powerful frameworks to serve as the foundation to drive just about any type of website or service. It's supported by a rather large ecosystem of community members, including tools and automated tools for testing and deployments.

Pros aside, among the PHP cons are that development in PHP is sometimes slower compared with other languages on this list. It's also not as secure by design as its competitors and is a bit more reliant on extensions for adding support and features.

Address

Badda, Dhaka Division
Badda
1212

Alerts

Be the first to know and let us send you an email when Rasel Hossain Adib posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Contact The Business

Send a message to Rasel Hossain Adib:

Share

Category