পাইথন দিয়ে এপিআই ব্যবহার – ৩য় পর্ব

আমরা আবহাওয়ার তথ্য সংগ্রহ ও সংরক্ষণ করার জন্য একটি প্রোগ্রাম মোটামুটি দাঁড় করিয়ে ফেলেছি। প্রোগ্রামটি Open Weather API ব্যবহার করে বর্তমান সময়ের তাপমাত্রা ও আর্দ্রতার তথ্য সংগ্রহ করে। তারপর সেটি ডেটাবেজে সংরক্ষণ করে। আমরা এখানে বেশ কয়েকটি কাজ করছি, কিন্তু সবগুলো কাজ একই জায়গায় করছি। আমাদের উচিত, কাজগুলো আলাদা ফাংশনে করা এবং ফাংশনগুলো এমনভাবে তৈরি করা যেন একটি ফাংশন একটি নির্দিষ্ট কাজ করে।

আমাদের প্রথম কাজটি ছিল ডেটাবেজ টেবিল তৈরি করা। তারপরের কাজ হচ্ছে আবহাওয়ার তথ্য সংগ্রহ করা। সবশেষের কাজ হচ্ছে আবহাওয়ার তথ্য ডেটাবেজে সংরক্ষণ করা। তাহলে আমরা প্রতিটি কাজের জন্য আলাদা ফাংশন তৈরি করতে পারি।

আমি নিচে ফাংশনগুলো দেখিয়ে দিলাম। ফাংশনগুলো পুরোপুরি তৈরি করার দায়িত্ব পাঠকের।

def create_table():
   pass


def get_weather_data():
   pass


def store_weather_data():
   pass


if __name__ == "__main__":
   # create database connection
   conn = sqlite3.connect('example.db')
   c = conn.cursor()

   # create table if it doesn't exist
   create_table()

   # get weather info from open weather map api
   temperature, humidity = get_weather_data()

   # store weather data into database
   store_weather_data(temperature, humidity)

   # close database connection
   conn.close()

ওপরের কোডকে আমরা বলতে পারি মডিউলার (modular) কোড। প্রোগ্রামটি এখন পড়তে ও বুঝতে আগের চেয়ে সহজ। নতুন প্রোগ্রামাররা প্রায়শই মডিউলার কোড লিখতে পারে না, সবকিছু এক জায়গায় লিখে জগাখিচুড়ি পাকিয়ে ফেলে। তাই মডিউলার কোড লেখা বেশ গুরুত্বপূর্ণ।

প্রোগ্রাম তো আগের চেয়ে সুন্দরভাবে লেখা হলো। কিন্তু আমরা আমাদের প্রোগ্রামে কোথাও এক্সেপশন হ্যান্ডেল করি নি। এক্সেপশন হ্যান্ডেল করার বিষয়টি আমি “পাইথন দিয়ে প্রোগ্রামিং শেখা ২য় খণ্ড” বইতে আলোচনা করেছি। এখন কথা হচ্ছে, কোন কোন জায়গায় এক্সেপশন হ্যান্ডেল করা উচিত? আমাদের প্রোগ্রামে আমি তিনটি জায়গা দেখতে পাচ্ছি যেখানে ঝামেলা হতে পারে – 

  • আমরা যখন এপিআই কল করছি, সেখানে যদি ইন্টারনেট কানেকশনে কোনো ঝামেলা হয়, কিংবা সার্ভারে কোনো সমস্যা হয়, তখন আমাদের প্রোগ্রাম ক্র্যাশ করবে।
  • আমরা যখন জেসন (json) ডেটা থেকে তাপমাত্রা ও বাতাসের আর্দ্রতা নিচ্ছি, সেখানে ডিকশনারি ব্যবহার করা হচ্ছে। যদি কি (key) না থাকে, তখন প্রোগ্রাম ক্র্যাশ করতে পারে।
  • এসকিউএল কুয়েরি (যেমন, ডেটা ইনসার্ট) ঠিকভাবে না চললে, তখন এরর দিবে এবং সেটিও কোডে ঠিকঠাক হ্যান্ডেল করতে হবে।

পাইথন দিয়ে এপিআই ব্যবহার – ২য় পর্ব

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

আমরা পাইথন প্রোগ্রাম থেকেই temperature নামে একটি টেবিল তৈরি করবো। এই টেবিলের প্রথম কলাম হবে একটি id নামক একটি ইন্টিজার। এটিকে আমরা প্রাইমারি কি, নট নাল এবং অটো-ইনক্রিমেন্ট হিসেবে উল্লেখ করে দিবো। যারা এই কথাটির অর্থ বুঝতে পারে নাই, তাদের চিন্তার কিছু নাই। এই কথার অর্থ না বুঝলেও লেখাটি পড়তে ও প্রোগ্রাম করতে কোনো সমস্যা হবে না। টেবিলে আমরা তাপমাত্রা ও বাতাসের আর্দ্রতা ছাড়াও তারিখ ও সময় সংরক্ষণ করব। 

পাইথন দিয়ে কিভাবে এসকিউলাইট ব্যবহার করতে হয়, সেটি জানা যাবে এখানে – https://docs.python.org/3/library/sqlite3.html। এখন টেবিল তৈরি করার জন্য আমরা এই কোড ব্যবহার করতে পারি –

import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS temperature (id INTEGER PRIMARY KEY AUTOINCREMENT, temp REAL, humidity REAL, datetime TEXT)''')

আর বর্তমান তারিখ ও সময় বের করার জন্য এরকম কোড লিখব –

import datetime
current_time = datetime.datetime.now()

তাহলে আমার পুরো প্রোগ্রামটি দাঁড়াবে এরকম –

import requests
import json
import sqlite3
import datetime

conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS temperature (id INTEGER PRIMARY KEY AUTOINCREMENT, temp REAL, humidity REAL, datetime TEXT)''')

BASE_URL = "http://api.openweathermap.org/data/2.5/weather"

payload = {"id": "1337179", "APPID": "your api key"}

r = requests.get(BASE_URL, params=payload)
result = r.json()

temperature = result["main"]["temp"]
humidity = result["main"]["humidity"]

current_time = datetime.datetime.now()

c.execute('INSERT INTO temperature (temp, humidity, datetime) VALUES(?, ?, ?)', (temperature, humidity, current_time))

conn.commit()
conn.close()

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

$ sqlite3 example.db
SQLite version 3.24.0 2018-06-04 14:10:15
Enter ".help" for usage hints.
sqlite> select * from temperature;
1|292.18|56.0|2019-07-29 23:35:32.797251

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

পাইথন দিয়ে এপিআই ব্যবহার – ১ম পর্ব

পৃথিবীতে বিভিন্ন প্রতিষ্ঠান প্রয়োজনীয় অনেক ডেটা সংগ্রহ ও সংরক্ষণ করে। সেই সঙ্গে তারা এপিআই (API)-এর মাধ্যমে সেসব ডেটা যেন অন্যরা পেতে পারে, তার ব্যবস্থাও রাখে। অনেক সময় সেই ডেটা পেতে হলে যেই এপিআই ব্যবহার করতে হয়, সেজন্য মূল্য পরিশোধ করতে হয়, আবার কখনও কখনও বিনামূল্যেও অনেক ডেটা পাওয়া যায়। আবহাওয়া সংক্রান্ত ডেটা, শেয়ার বাজারের ডেটা, মুদ্রার বিনিময় হার, ভৌগলিক বিভিন্ন ডেটা ইত্যাদি অনেক রকমের ডেটাই এপিআই ব্যবহার করে পাওয়া যায়। এখন এই লেখায় আমরা দেখবো, পাইথন প্রোগ্রামে আবহাওয়া সংক্রান্ত এপিআই ব্যবহার করে কিভাবে তথ্য সংগ্রহ ও সংরক্ষণ করতে হয়।

আমরা যদি Weather API লিখে গুগলে সার্চ করি, তাহলে প্রথম পৃষ্ঠাতেই ওপেন ওয়েদার ম্যাপ-এর একটি লিঙ্ক আসবে (https://openweathermap.org/api)। এখানে বিভিন্ন এপিআই আছে, যেখানে বর্তমান সময়ের আবহাওয়ার তথ্য পাওয়া যায়, আবার আবহাওয়ার পূর্বাভাস (forecast) পাওয়ার জন্যও সেখানে এপিআই আছে। আমরা দেখবো বর্তমান সময়ের আবহাওয়ার তথ্য কিভাবে পেতে পারি। সেজন্য আমাদের যেতে হবে Current weather data সেকশনে। এখন, এই এপিআই ব্যবহার করার জন্য একটি এপিআই কি (API Key) প্রয়োজন হবে, আর এই বিষয়ে বিস্তারিত লেখা আছে https://openweathermap.org/appid লিঙ্কে। ওখানে গিয়ে appid (যা আসলে API Key) সেই সম্পর্কে জেনে নিতে হবে। নতুন যেকোনো এপিআই ব্যবহার করার সময় আমাদেরকে ডকুমেন্টেশন পড়ার অভ্যাস তৈরি করতে হবে। অনেক সময় ডকুমেন্টেশন না পড়ে কেবল উদাহরন বা নমুনা কোড দেখলেই বুঝা যায় যে এপিআই কীভাবে ব্যবহার করতে হবে, তবে আমার পরামর্শ হবে, সবসময় ডকুমেন্টেশন পড়ার চেষ্টা করা। তাতে হয়ত ঘণ্টা খানেক বেশি সময় লাগবে, কিন্তু একটা জিনিস ভালোভাবে জানা হয়ে গেলে ব্যবহার করা সহজ হয় এবং অনাকাঙ্খিত অনেক ঝামেলা এড়ানো যায়।

ওপেন ওয়েদার ম্যাপের এপিআই কি পেতে হলে সেখানে সাইন আপ করতে হবে বা একাউন্ট তৈরি করতে হবে। একাউন্ট তৈরি হয়ে গেলে https://home.openweathermap.org/api_keys পেজ থেকে এপিআই কি পাওয়া যাবে এবং প্রয়োজন হলে নতুন এপিআই কি তৈরি করতে হবে।
এখন আমরা চলে যাব, এপিআই-এর ডকুমেন্টেশনে, যেখান থেকে জানা যাবে যে, এপিআই কীভাবে ব্যবহার করতে হবে। ডকুমেন্টেশনের লিঙ্ক হচ্ছে https://openweathermap.org/current। আমরা ঢাকা শহরের জন্য আবহাওয়ার তথ্য জানতে চাইব, আর সেজন্য city id ব্যবহার করতে হবে। ঢাকা শহরের city id জানার জন্য http://bulk.openweathermap.org/sample/ ওয়েবপেজ থেকে city.list.josn ফাইলটি ডাউনোড করে dhaka লিখে সেই ফাইলে সার্চ করতে হবে। তো আমি এভাবে জানতে পারলাম যে, ঢাকার city id হচ্ছে 1337179. তাহলে ওয়েব ব্রাউজারে আমরা যদি http://api.openweathermap.org/data/2.5/weather?id=1337179&APPID=xyz ঠিকানায় যাই, তাহলে আমরা ঢাকা শহরের আবহাওয়ার তথ্য দেখতে পাবো। xyz-এর জায়গায় এপিআই কি বসাতে হবে। এখন, এই তথ্য আমরা পাইথন প্রোগ্রামের সাহায্যে পাওয়ার ব্যবস্থা করবো। এজন্য আমরা requests মডিউল ব্যবহার করবো। এই মডিউল সম্পর্কে উদাহরণসহ আলোচনা করেছি “পাইথন দিয়ে প্রোগ্রামিং শেখা দ্বিতীয় খণ্ড” বইতে।

import requests

URL = "http://api.openweathermap.org/data/2.5/weather"
payload = {"id": "1337179", "APPID": "7dd241yyyycd16xxxx"}

r = requests.get(URL, params=payload)

print(r.text)

প্রোগ্রামটি রান করলে নিচের মতো একটি আউটপুট পাবো –

{"coord":{"lon":90.42,"lat":24.17},"weather":[{"id":721,"main":"Haze","description":"haze","icon":"50n"}],"base":"stations","main":{"temp":300.15,"pressure":1001,"humidity":88,"temp_min":300.15,"temp_max":300.15},"visibility":3500,"wind":{"speed":3.6,"deg":90},"clouds":{"all":75},"dt":1564268448,"sys":{"type":1,"id":9145,"message":0.0091,"country":"BD","sunrise":1564269901,"sunset":1564317863},"timezone":21600,"id":1337179,"name":"Dhaka Division","cod":200}

এখন আমরা এই আউটপুট কপি করে https://jsonformatter.org/json-pretty-print ওয়েবসাইটে বসিয়ে সুন্দর করে দেখতে পারি। অথবা পাইথন প্রোগ্রামটি একটু পরিবর্তন করেও দেখা যায়। আগের কোডে নিচের দুটি লাইন যুক্ত করতে হবে – 

result = r.json()
print(json.dumps(result, indent=4))

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

আমাদের দরকার আজকের দিনের বর্তমান তাপমাত্রা, যেটি আমরা পাব result[“main”][“temp”]-এ। আর সেই সঙ্গে বাতাসের আর্দ্রতার তথ্যও আমরা নেব, আর সেটি পাব result[“main”][“humidity”]-তে। এখন তাপমাত্রা আমরা কোন এককে পাচ্ছি? এটি ডকুমেন্টেশন পড়লেই বুঝা যাবে (এখানে – https://openweathermap.org/current#current_JSON)। 

আমাদের প্রোগ্রামটি এখন দাঁড়াচ্ছে এমন – 

import requests
import json

BASE_URL = "http://api.openweathermap.org/data/2.5/weather"

payload = {"id": "1337179", "APPID": "7dd241yyyycd16xxxx"}

r = requests.get(BASE_URL, params=payload)
result = r.json()

print("Temperature", result["main"]["temp"])
print("Humidity", result["main"]["humidity"])

পরের লেখায় আমরা দেখবো, কিভাবে এই তথ্য আমরা একটি ডেটাবেজে সংরক্ষণ করতে পারি।

নোট – ওপরের প্রোগ্রামগুলোতে 7dd241yyyycd16xxxx এর বদলে নিজের একাউন্ট থেকে সঠিক APP ID বসাতে হবে।

ক্লাউড কম্পিউটিং

এই লেখায় ক্লাউড কম্পিউটিং নিয়ে প্রাথমিক আলোচনা করা হয়েছে।

সফটওয়্যারের জগতে ক্লাউড কম্পিউটিং (Cloud Computing) একটি পরিচিত নাম। তবে প্রথমেই জানিয়ে রাখি যে, এর সঙ্গে ক্লাউড বা মেঘের কোনো সম্পর্ক নেই।

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

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

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

ক্লাউড সেবাদাতা প্রতিষ্ঠানগুলোর লাভ হয় কীভাবে? ধরা যাক, কেউ এক হাজার কম্পিউটার কিনে রাখলো। এবং সেগুলো ক্লাউডের মাধ্যমে ভাড়া দেওয়ার ব্যবস্থা করে রাখলো। এখন কম্পিউটারগুলোতে ভার্চুয়ালাইজেশন (virtualization)-এর মাধ্যমে এমন ব্যবস্থা করা হয় যে, একাধিক ব্যবহারকারী একই সময়ে একই কম্পিউটার ব্যবহার করতে পারে। একটি কম্পিউটারে যদি ৩২ গিটাবাইট মেমোরি থাকে, আর যদি আটজন ব্যবহারকারী থাকে যাদের প্রত্যেকের চার গিগা করে মেমোরি দরকার, তখন কিন্তু ওই আটজন ব্যবহারকারীকে একই কম্পিউটার থেকে সেবা প্রদান করা সম্ভব। আবার একজন যে সারাদিন একটি কম্পিউটার ব্যবহার করবে এমন নয়, বিভিন্ন সময়ে যদি বিভিন্ন জন ব্যবহার করে, তখন সেভাবে সময়ভিত্তিক সেবা দেওয়া সম্ভব। যেমন, একটি সার্ভারে যদি কম্পিউটার গেমস ও অফিস অ্যাপ্লিকেশন চলে, তখন দেখা যায়, রাতের বেলায় কম্পিউটার গেমস-এর ব্যবহার বেশি হয়, আর দিনের বেলায় অফিস অ্যাপ্লিকেশনের ব্যবহার বেশি হয়। এভাবে বিভিন্ন অ্যাপ্লিকেশনগুলো রিসোর্স শেয়ার করতে পারে।

আবার কেবল হার্ডওয়্যার নয়, এই পদ্ধতিতে বিভিন্ন সফটওয়্যার সেবাও গ্রহন করা সম্ভব। যেমন, আমি একটি ডেটাবেজ ক্লাউডের মাধ্যমে ব্যবহার করতে পারি এবং তাতে আমাকে ওই ডেটাবেজ সফটওয়্যার ইনস্টল করা, কনফিগার করা – এসব ঝামেলার মধ্য দিয়ে যেতে হবে না। যারা ক্লাউডের মাধ্যমে ডেটাবেজ সেবা দিচ্ছে, তারাই ওই কাজগুলো করে দিবে। আমি কয়টি ডেটাবেজ ব্যবহার করছি, ডেটাবেজে কতগুলো টেবিল আছে, বা টেবিলগুলোতে কী পরিমাণ ডেটা আছে – এসবের ওপর ভিত্তি করে আমাকে বিল পরিশোধ করতে হবে।

ক্লাউড সেবাদাতা প্রতিষ্ঠানগুলো বর্তমানে বিভিন্ন রকম সেবা প্রদান করতে পারে –

  • Infrastructure as a Service
  • Platform as a Service
  • Software as a Service

Infrastructure as a Service – এক্ষেত্রে মূলত বিভিন্ন হার্ডওয়্যারভিত্তিক সেবা প্রদান করা হয়। যেমন, প্রসেসিং ক্ষমতা, মেমোরি, হার্ড ডিস্ক, নেটওয়ার্ক – এসবের ওপর ভিত্তি করে প্রয়োজনমত কনফিগারেশনের এক বা একাধিক কম্পিউটার ভাড়া নেওয়া যায়।

Platform as a Service – এখানে হার্ডওয়্যারের পাশাপাশি কম্পিউটিং প্ল্যাটফর্ম, যেমন নির্দিষ্ট অপারেটিং সিস্টেম ও অন্যান্য সফটওয়্যার ইনস্টল করে দেওয়া হয়। ব্যবহারকারীকে নিজে থেকে সেসব সফটওয়্যার ইনস্টল ও কনফিগারেশনের ঝামেলায় যেতে হয় না।

Software as a Service – এখানে বিভিন্ন সফটওয়্যার ক্লাউডে ইনস্টল করে দেওয়া থাকে। ব্যবহারকারী ইন্টারনেট ব্রাউজারের মাধ্যমে সেসব সফটওয়্যার ব্যবহার করেন এবং এজন্য নিয়মিত একটি ফি প্রদান করেন। যেমন মাইক্রোসফটের অফিস ৩৬৫। আবার গুগলের বিভিন্ন সেবা, যেমন সার্চ ইঞ্জিন, জিমেইল, গুগল ড্রাইভ ইত্যাদিও সফটওয়্যার এজ আ সার্ভিস বা সংক্ষেপে স্যাস (SaaS)-এর উদাহরণ। আবার বিভিন্ন ডেটাবেজ নির্মাতা প্রতিষ্ঠানও এই মডেলে তাদের ডেটাবেজ ব্যবহারের সুবিধা দিয়ে থাকে।

পৃথিবীতে অনেক প্রতিষ্ঠানই ক্লাউডভিত্তিক সেবা প্রদান করে। তাদের মধ্য, অ্যামাজন ওয়েব সার্ভিস, গুগল ক্লাউড প্ল্যাটফর্ম, মাইক্রোসফট অ্যাজুর, আলি ক্লাউড ইত্যাদি জনপ্রিয়।

আশা করি, ক্লাউড কম্পিউটিং কী জিনিস, সেটির প্রাথমিক ধারণা পাঠকরা এই লেখা থেকেই পেয়ে যাব। নিচের ভিডিওতে এডব্লিউএস নিয়ে বিস্তারিত আলোচনা আছে –

প্রযুক্তি বদলে দেয়া ১০ রূপকার

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

জেফ ডিনঃ

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

বর্তমানে গুগলের বেশ কিছু পণ্যে কৃত্রিম বুদ্ধিমত্তা যুক্ত হয়েছে, তন্মধ্যে জিমেইলের স্মার্ট কম্পোজ অপশন এবং ভয়েস এ্যানাবেল এসিষ্ট্যান্ট অন্যতম। বাস্তবে কৃত্রিম বুদ্ধিমত্তা এবং মেশিন লার্নিং এর জগত অনেক বিস্তৃত, তাই বলা যায় এই জগতে ডিনের ভ্রমণ সবে শুরু। যেতে হবে বহুদূর।

কেটি ডিলঃ

রাইড শেয়ারিং সেবাদাতা প্রতিষ্ঠান লিফট(Lyft) এর ডিজাইন বিভাগের ভাইস প্রেসিডেন্ট হিসেবে কাজ করছেন কেটি ডিল। একটি সফটওয়্যার বা মোবাইল অ্যাাপ কিভাবে কাজ করে এবং কিভাবে আসলে এটির কাজ করা উচিত এইসব নিয়ে চিন্তাভাবনা করতে তিনি পছন্দ করেন। বর্তমানে শেয়ারিং ইকোনমিতে কেটি ডিলের রয়েছে অসামান্য অবদান। লিফটে জয়েন করার আগে তিনি চার বছর এয়ারবিএনবির(Airbnb) কাষ্টমার এক্সিপেরিয়েন্স ডিজাইন বিভাগে কর্মরত ছিলেন। ডিল মনে করেন কোন এ্যাপের ডিজাইন নিজের কম্পিউটারে দেখে “ওয়াও” বলা এক ধরণের অভিজ্ঞতা, আবার ঠিক অন্যদিকে গভীর রাতে ঝুম বৃষ্টিতে রাস্তায় দাঁড়িয়ে সেই এ্যাপ ব্যবহার করার অভিজ্ঞতা সম্পূর্ণ আলাদা।

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

আরলান হ্যামিলটনঃ

আরলান হ্যামিলটনের কোম্পানি ব্যাকস্টেজ ক্যাপিটাল কাজ করে নতুন উদ্যোক্তাদের স্বপ্ন পূরণের জন্য। কোম্পানির প্রতিষ্ঠাতা হ্যামিলটন মনে করেন যে কেউ তার উপযুক্ত আইডিয়া নিয়ে উদ্যোক্তা হওয়ার যোগ্যতা রাখে। হোক সে মেয়ে বা সমকামী অথবা কৃষ্ণাঙ্গ।

২০১৫ সালে ব্যাকস্টেজ ক্যাপিটাল তার যাত্রা শুরু। সেসময় হ্যামিলটন খেয়াল করেন যে স্টার্টআপ জগত একটি নির্দিষ্ট নিয়মের ভিতর আটকে আছে। এখানে পুরুষ এবং শ্বেতাঙ্গদের একচ্ছত্র অধিকার। ফলে মহিলা এবং কৃষ্ণাঙ্গদের স্টার্টআপ কোম্পানির জন্য বিনিয়োগকারীরা বিনিয়োগ করতে চায় না। ব্যাকস্টেজ ক্যাপিটাল কোম্পানি সেইসব উদ্যোক্তাদের সাহায্যে এগিয়ে আসে।

হ্যামিলটন বিজনেস ইনসাইডারকে দেয়া তার সাক্ষাৎকারে বলেন, প্রচলিত নিয়মের বাইরে বের হয়ে সেইসব পিছিয়ে পরা তুখোড় উদ্যোক্তাদের সুযোগ করে দেয়াই তার কোম্পানির লক্ষ্য। এই লক্ষ্য পূরণে ২০১৫ সাল থেকে এখনো পর্যন্ত ১০০ কোম্পানির জন্য ব্যাকষ্টেজ বিনিয়োগ করেছে প্রায় ৫ মিলিয়ন ডলার। আগামী দুই এক বছরের মধ্যে ৩৬ মিলিয়ন ডলারের ফান্ড করার স্বপ্ন দেখেন হ্যামিলটন। যেই ফান্ডের টাকা তিনি ব্যয় করবেন কৃষ্ণাঙ্গ মহিলা উদ্দ্যোক্তাদের জন্য।

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

ট্রিষ্টান হ্যারিসঃ

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

এই অনুপ্রেরণা থেকে তিনি ১৪১টি স্লাইডের একটি প্রেজেন্টেশন তৈরি করেন। সেখানে টেক কোম্পানিগুলো কিভাবে ইউজারদের আগ্রহ নিয়ে খেলছে সে বিষয়ে তিনি আলোকপাত করেন এবং এমন বিভ্রান্তি থেকে বের হয়ে আসার জন্য গুগলকে আহ্বান জানান।

২০১৫ সালে তিনি গুগল থেকে পদত্যাগ করেন এবং তার বন্ধু জেমস উইলিয়ামকে সাথে নিয়ে সেন্টার ফর হিউম্যানি টেকনোলজির কাজ শুরু করেন। টেকনোলজিকার ডিজাইন এথিকস-এর প্রচার তারা শুরু করেন। তার চেষ্টার ফসল হিসেবে প্রযুক্তির জায়ান্ট খ্যাত কোম্পানিগুলোর উপর চাপ বাড়তে থাকে। ফলে গতবছর থেকে অ্যাপল, গুগল , ফেসবুকের মত কোম্পানিগুলো তাদের ডিভাইস এবং সার্ভিস দ্বারা যেসব বিভ্রান্তি সৃষ্টি হয়েছিল সেসব দূরীকরণের জন্য নতুন ফিচার যুক্ত করে। যদি এখনো হ্যারিস একে “বেবি স্টেপ” হিসেবেই আখ্যায়িত করেন।

লিসা জ্যাকসনঃ

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

লিসা জ্যাকসনের অদম্য চেষ্টায় অ্যাপল এদিকে বেশ খানিকটা এগিয়েছে। বর্তমানে অ্যাপল তাদের আইফোনের মেইন লজিক বোর্ড তৈরির জন্য রিসাইকেল টিন ব্যবহার করছে। ফলে বছরে ১০,০০০ টন টিনের আকরিক খনন করার দরকার হচ্ছে না। এছাড়াও আইফোন এক্সএসের স্পীকারের ঘের তৈরির জন্য বর্তমানে ব্যবহৃত হচ্ছে ৩৫% রিসাইকেল প্লাষ্টিক।

লিসা জ্যাকসন এ সম্পর্কে বলেন, “যখন আমরা পুনঃব্যবহার্য পদার্থ ব্যবহার করে আমাদের প্রোডাক্টগুলো তৈরি করতে চাইলাম তখন অধিকাংশ লোক বলেছিলো এটা অসম্ভব। কিন্তু অ্যাপল সব সময় চ্যালেঞ্জ নিতে ভালবাসে। এক্ষেত্রে বরাবরই আমরা সফল।”

হ্যাউই লিও, অ্যান্ড্রু অফষ্ট্যাড, ইমিট নিকোলাসঃ

Howie Liu, Andrew Ofstad, and Emmett Nicholas, the founders of Airtable, want to let anyone build an app, even if they can't code


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

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

বর্তমানে এয়ারটেবিল ৮০,০০০ কাষ্টমারকে তাদের সেবা দিয়ে যাচ্ছে। সেখানে রয়েছে বিয়ের অনুষ্ঠানের পরিকল্পনা থেকে শুরু করে বড় বড় কোম্পানির উৎপাদন পরিকল্পনা পর্যন্ত।

টনি রেইডঃ


অ্যামাজনের ভার্চুয়াল সহকারী এ্যালেক্সা এবং অন্যান্য ইকো ডিভাইস সেবার ভাইস প্রেসিডেন্ট হিসেবে কাজ করে যাচ্ছেন টনি রেইড। তিনি অ্যামাজনের শুরুর দিকের ৬০০ জন কর্মীর একজন। ১৯৯৮ সালে টনি যখন অ্যামাজনের যোগদান করেন তখন অ্যামাজন ছিল অনেক ছোট্ট একটি অনলাইন বইয়ের দোকান যার ছিল ভবিষ্যতে বিশাল কিছু হবার উচ্চাশা।

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

মাশায়োশি সানঃ

সফটব্যাংক-এর প্রধান নির্বাহী কর্মকর্তা এবং চেয়ারম্যান মাশায়োশি সান বর্তমানে সিলিকন ভ্যালির অন্যতম তারকা, যার কোম্পানির কোষাগারে জমা আছে ১০০ বিলিয়ন ডলার। সিলিকন ভ্যালিতে “মাশা” নামে পরিচিত মাশায়োশি সান সফটব্যাংক নামক জাপানী টেকনোলজি হোল্ডিং কোম্পানির প্রতিষ্ঠাতা এবং বর্তমানে প্রধান নির্বাহী কর্মকর্তা হিসেবে কাজ করে যাচ্ছেন। তার নেতৃতে গঠিত হয়েছে সফটব্যাংকের “ভিশন ফান্ড”। যে ফান্ডের অর্থ টেকনোজির উন্নতির জন্য ব্যবহৃত হচ্ছে।

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

সফটব্যাংকের প্রধান বাজির জায়গা এখন বিখ্যাত রাইডে শেয়ারিং প্রতিষ্ঠান উবার। এছাড়াও সম্প্রতি উইওয়ার্কে সফটব্যাংক বিনিয়োগ করেছে ১০.৫ বিলিয়ন ডলার। জাপানের দ্বিতীয় শীর্ষ ধনী মাশায়োশি সান, যার মোট সম্পত্তির পরিমাণ ১৩.৯ বিলিয়ন মার্কিন ডলার।

টিম সুয়েনীঃ


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

ফোর্টনাইট গেমকে অনেকেই একটি “বিস্ময়” হিসেবে আখ্যায়িত করেছেন। এই গেমটি গেমারকে একটি নির্দিষ্ট জায়গায় বেশ কয়েক ঘন্টা সময় আটকে রাখে যেখানে গেমার অপরিচিত মানুষদের সাথে পরিচিত হওয়ার সুযোগ পায়। এছাড়াও লাইভ কনসার্ট দেখতে পারে। সর্বোপরি এটি একটি ব্যবসা যেখান থেকে প্রায় ১০০ মিলিয়ন ডলার আয় করা হয়।ইতিমধ্যেই ফোর্টনাইট গেমটি নতুন প্রজন্মের গেমারদের দারুন সব অভিজ্ঞতার স্বাদ দিতে সক্ষম হয়েছে।

ফোর্টনাইট বলতে গেলে প্রায় বিন্দু থেকে সিন্ধুতে পরিণত হয়েছে। বর্তমানে এই গেমের রয়েছে ১০০ মিলিয়ন ব্যবহারকারী। সুয়েনীর এপিক গেম কোম্পানি এই বিপুল সংখ্যক ব্যবহারকারীদের সাহায্যের জন্য তৈরি করেছেন এপিক গেম ষ্টোর। যেটি পাল্লা দিয়ে এগিয়ে চলছে স্বনামধন্য গেমিং ষ্টোর এ্যাপল ষ্টোর এবং গুগল প্লে ষ্টোরের সাথে।

তাল তামিরঃ

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

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

মাত্র দুইবছর আগে যাত্রা শুরু করে উইলিওট। তাদের বর্তমান অবস্থানে দাঁড়িয়ে তাল তামির বলতেই পারেন, তারা যে স্বপ্ন নিয়ে যাত্রা শুরু করেছিলেন, সেটি পূরণ হওয়া সম্ভব। তামির বলেন, “যখন আমরা ব্যাটারি ফ্রি চিপ নিয়ে কাজ করা শুরু করি, তখন আমরা বুঝতে পারি শক্তিসমুদ্রের শক্তি নিয়ে কাজ করা কঠিন। কিন্তু অসম্ভব নয়। সেই কঠিন কাজটিই করে দেখিয়েছি আমরা।”

লেখক – তামান্না নিশাত রিনি।









সিজার সাইফার

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

ওপরের চিত্রে আমরা দেখতে পাচ্ছি, মূল টেক্সট (Plaintext)-কে এনক্রিপ্ট করলে তাকে বলে সাইফারটেক্সট (Ciphertext). আর সাইফারটেক্সট ডিক্রিপ্ট করলে আমরা আবার মূল টেক্সট অর্থাৎ প্লেইনটেক্সট পাই।

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

সিজার সাইফার পদ্ধতিতে একটি টেক্সটের সঙ্গে একটি সংখ্যা দেওয়া হয়, যাকে কি (key) বলা হয়। কি-এর মান যত, টেক্সটের অক্ষরগুলো তত ঘর পরের অক্ষর দিয়ে বদলে দেওয়া হয়। যেমন, কি-এর মান যদি 2 হয়, তখন abc-কে লেখা হবে cde (a-এর জায়গায় c, b-এর জায়গায় d, c-এর জায়গায় e)। এই কি এর মান কেবল প্রেরক ও প্রাপক জানে, যার ফলে অন্য কেউ এই টেক্সটের মর্মোদ্ধার করতে পারে না। যদিও বর্তমান প্রেক্ষিতে এটি অত্যন্ত দুর্বল একটি অ্যালগরিদম, কিন্তু ঐতিহাসিক প্রেক্ষাপট বিবেচনা করলে এটি অত্যন্ত গুরুত্বপূর্ণ এবং কম্পিউটার বিজ্ঞানের শিক্ষার্থীদের জন্য এটি অবশ্যপাঠ্য।

ধরা যাক, প্লেইনটেক্সট হচ্ছে Kill the King. আর কি হচ্ছে 1. তাহলে প্রতিটি অক্ষর ইংরেজি বর্ণমালায় তার পরবর্তী অক্ষর দিয়ে বদলে দেওয়া হবে। তখন সাইফারটেক্সট হবে Ljmm uif Ljoh. আবার কেউ যদি জানে যে কি-এর মান হচ্ছে 1, তখন সে সহজেই সাইফারটেক্সট থেকে প্লেইনটেক্সট বের করে ফেলতে পারবে।

এখন কেউ যদি এতদূর পড়ার পরে নিজেই একটি প্রোগ্রাম লিখে কাজটি করতে চায়, তার জন্য দ্বিমিক অনলাইন জাজে দুটি সমস্যা আছে –

সমস্যাগুলো সি, সিপ্লাস প্লাস, জাভা কিংবা পাইথন ব্যবহার করে সমাধান করা যাবে।

আপনার সন্তানকে কীভাবে গণিতে দক্ষ করে গড়ে তুলবেন

গণিতের দক্ষতা নিঃসন্দেহে ভালো, তবে গণিতের দক্ষতা ও সমস্যা সমাধানের দক্ষতার মধ্যে বিস্তর ফারাক রয়েছে।

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

গণিতের দক্ষতা ও সমস্যা সমাধানের দক্ষতার মধ্যে পার্থক্য কী?

আমি যদি বাংলাদেশে প্রাথমিক বিদ্যালয়ের একটি শিশুকে জিজ্ঞাসা করি, ৩৬৫-কে ৭ দিয়ে ভাগ করলে কত হবে, শিশুটি সঙ্গে সঙ্গে আমাকে ভাগফল ও ভাগশেষ বলে দিতে পারে। কিন্তু যদি জিজ্ঞাসা করি যে, এক বছরে কয়টি সপ্তাহ আছে, তখন সে প্রশ্ন বুঝতে পারে না। যদিও সে জানে যে ৩৬৫ দিনে এক বছর এবং সাত দিনে এক সপ্তাহ হয়।

প্রথম প্রশ্নটির উত্তর দিতে গণিতের দক্ষতা লাগে। দ্বিতীয়টির ক্ষেত্রে লাগে সমস্যা সমাধানের দ্ক্ষতা। এটি একটি সাধারণ উদাহরণ, আশা করি এ থেকে গণিতের দক্ষতা ও সমস্যা সমাধানের দক্ষতার পার্থক্য পরিষ্কার হয়ে গেছে।

আমাদের কোনটায় জোর দেওয়া উচিত—গণিত নাকি সমস্যা সমাধানের দক্ষতায়?

এর উত্তর হচ্ছে ‘দুটোই’। গণিত হচ্ছে সমস্যা সমাধানের একটি টুল (tool) বা যন্ত্র। আপনি যখন আপনার সন্তানকে স্কুলে যোগ, বিয়োগ, গুণ ও ভাগ শেখান, সেই সময় তাকে সমস্যা সমাধানের সঙ্গেও পরিচয় করিয়ে দিন।

শিশুকে কীভাবে সমস্যা সমাধানের সঙ্গে পরিচয় করিয়ে দেওয়া যায়?

সমস্যা সমাধানের সঙ্গে পরিচয় করানোর জন্য খুব কৌশলী হওয়ার প্রয়োজন নেই, একটু মনযোগই যথেষ্ট। এক্ষেত্রে অনেকেই জানতে চাইবেন এর জন্য বাচ্চাকে কোন কোন বই পড়ানো যায়।

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

দৈনন্দিন কার্যক্রমের মাধ্যমে সমস্যা সমাধান শেখানোর উদাহরণ

আমি এখানে কিছু উদাহরণ দিলাম।

  • একটি কলার দাম ৪ টাকা ও একটি পেয়ারার দাম ৫ টাকা হলে ঝুড়ির কলা ও পেয়ারার দাম কত? [ঝুড়িতে সত্যি সত্যি ২টি কলা ও ৪টি পেয়ারা রেখে আপনার বাচ্চাকে প্রশ্নটি করতে পারেন। অবস্থাভেদে প্রশ্নটি পরিবর্তন করে নিন।]
  • বাচ্চার পছন্দের প্রাণিদের নিয়ে প্রশ্ন তৈরি করুন। ধরা যাক, আমার বাচ্চা হাতি পছন্দ করে। আমি তাকে জিজ্ঞাসা করতে পারি যে, রাঙামাটির বনে ৫০ সদস্যের একটি হাতির দল বসবাস করতো। সেখান থেকে অর্ধেক হাতি বান্দরবান চলে গেল। খাগড়াছড়ি থেকে ১০টি হাতি রাঙামাটি গেল। রাঙামাটিতে এখন কয়টি হাতি আছে?
  • খাদ্যের ক্যালরি গণনা করতে দেওয়া একটি ভালো সমস্যা হতে পারে। এটি গাণিতিক সমস্যা সমাধানকে স্বাস্থ্যকর জীবনযাপনের সাথে যুক্ত করবে। যেমন: একবাটি ভাতে কতটুকু ক্যালরি রয়েছে, এ রকম সামান্য একটু গবেষণা বাচ্চার জন্য অনেক আনন্দদায়ক হতে পারে। বাচ্চাকে জিজ্ঞাসা করতে পারেন যে সে আজ কতটুকু ক্যালরি গ্রহণ করেছে।

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

সমস্যা সমাধান ও বিশ্লেষণী ক্ষমতা

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

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

প্রাথমিক গণিত-সংশ্লিষ্ট সমস্যা সমাধানের ধাপ

সমস্যা সমাধানের অনেকগুলো ধাপ রয়েছে। কম্পিউটার বিজ্ঞানে ধাপগুলো অনেক বিস্তৃত। প্রাথমিক পর্যায়ের গণিত-সংশ্লিষ্ট সমস্যা সমাধানের পদ্ধতি এ রকম বিস্তৃত হওয়ার প্রয়োজন নেই। তবে আমাদের বাচ্চাদের কিছু ধাপের সাথে পরিচয় করিয়ে দিতে হবে। আমি নিচের ধাপগুলো অনুসরণ করতে বলব:

  • সমস্যাটিকে বিশ্লেষণ করা: সমস্যার বিশ্লেষণ সমস্যাটিকে বুঝতে সহায়তা করে। সমাধানের জটিলতা যেমনই হোক না কেন, সমস্যাটি শিশুর কাছে আকর্ষণীয় হতে হবে। সমস্যা না বুঝে সমাধান করতে গেলে সে সহজেই বিরক্ত হয়ে যাবে। প্রথম প্রথম আপনারা বাচ্চাকে বিশ্লেষণ করতে সাহায্য করতে পারেন, তবে একটা সময়ে তাকে নিজে নিজেই বিশ্লেষণ করতে সমর্থ হতে হবে।
  • সমাধানের রূপরেখা তৈরি: এ পর্যায়ে শিশুটি সমস্যাটিকে বিভিন্ন অংশে ভাগ করে গাণিতিক প্রক্রিয়ার (যোগ, বিয়োগ, গুণ, ভাগ) পরিকল্পনা করবে।
  • হিসাব করা: এ পর্যায়ে সে গাণিতিক হিসাবগুলো করবে। এ পর্যায়েই সে তার গাণিতিক দক্ষতা কাজে লাগাবে।
  • সমাধান যাচাই করা: এ পর্যায়টি প্রায়ই উপেক্ষা করা হয়। এ পর্যায়ে বাচ্চাটি তার ফলাফলকে যাচাই করে দেখবে। এটি নানাভাবে করা যায়। একটি পদ্ধতি হচ্ছে আগের ধাপগুলো পুনরায় করা। অন্য একটি পদ্ধতি হতে পারে বিপরীত হিসাবকরণ। এটি শুরুতে কঠিন মনে হতে পারে, তবে অনুশীলনের মাধ্যমে আয়ত্ব করা সম্ভব। যেমন: ৩০ থেকে ১০ বিয়োগ করে যদি সে ২০ উত্তর পায়, তাহলে সে ২০-এর সাথে ১০ যোগ করে দেখতে পারে যে উত্তর ৩০ হয় কি না। নিজের সমাধান যাচাই করা শিখতে পারলে শিশুর কাছে গণিতের এক নতুন দিগন্ত উন্মোচিত হবে।

শিশুদের গণিত শেখানোর সময় সবচেয়ে বড় যে ভুলটি আমরা করি

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

শিশুর ভেতরে সমস্যা সমাধানের দক্ষতা তৈরির জন্য কিছু টিপস

  • সমস্যা সমাধানের জন্য পারিবারিক পরিবেশ তৈরি করা।
  • বাস্তব জীবনভিত্তিক গাণিতিক সমস্যা সমাধান করতে বলা।
  • শিশুর আগ্রহের ওপর ভিত্তি করে সমস্যা তৈরি করে দেওযা (হাতির সমস্যাটির মতো)।
  • সমস্যা সমাধানকে একটি আনন্দদায়ক পারিবারিক কার্যক্রমে পরিণত করা।
  • সমস্যা সমাধান যে কেবল শিশুদের দক্ষতা বাড়াবে তাই নয়, এটি তাদের জন্য চমৎকার স্মৃতি হয়ে থাকবে। বাচ্চারা বাবা-মার সঙ্গ চায়। সমস্যা সমাধানের মাধ্যমে আপনি তাদের সঙ্গে চমৎকার সময় কাটাতে পারেন। কোনো শিক্ষকই এক্ষত্রে আপনার বিকল্প হতে পারে না (হওয়া উচিতও নয়)।

—ড. শাহরিয়ার হোসেন

মূল লেখা – https://computing4all.com/education/the-biggest-mistake-while-teaching-kids-math/, অনুবাদ করেছেন মোশারফ হোসেন।

এসকিউলাইট – সহজ ডেটাবেজ

সহজ ডেটাবেজ এসকিউলাইট!

এসকিউলাইট (SQLite) হচ্ছে একটি রিলেশনাল ডেটাবেজ। সেই সঙ্গে এটি ফ্রি ও ওপেন সোর্স। ২০০০ সালে ডক্টর রিচার্ড হিপ এটি তৈরি করেন। এসকিউলাইট তৈরিতে সি প্রোগ্রামিং ভাষা ব্যবহার করা হয়েছে।

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

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

এসকিউলাইটের সবচেয়ে বড় সুবিধা হচ্ছে এটির ব্যবহার বেশ সহজ-সরল আর ইনস্টল করাও খুব সহজ। এটি ক্লায়েন্ট-সার্ভার আর্কিটেকচারে তৈরি করা হয় নি, তাই সফটওয়্যারের সঙ্গে এটি দিয়ে দেওয়া যায় সহজেই।

এসকিউলাইটে রিলেশনাল ডেটাবেজের প্রায় সকল বৈশিষ্ট্যই রয়েছে এবং এসকিউএল (Structured Query Language)-এর অধিকাংশ জিনিসই এখানে ব্যবহার করা হয়েছে। তাই এটি ব্যবহার করার পর কেউ যদি অন্য ডেটাবেজের ব্যবহার শিখতে চায়, তখন তার বিপদে পড়তে হবে না।

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

এসকিউলাইট ব্যবহার করতে হলে যে টার্মিনালে (কমান্ড লাইনে) ব্যবহার করতে হবে, এমন কোনো কথা নেই। অনেক ডেস্কটপ অ্যাপ্লিকেশন দিয়ে এটি ব্যবহার করা যায় (যেমন – https://sqlitebrowser.org/)।

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