Showing posts with label Bangla. Show all posts
Showing posts with label Bangla. Show all posts

মাইক্রোসফট ওয়ার্ড (MS -Word) -র একটা না জানা, উপকারী ফিচার - মেইলিংস (Mailings)

মাইক্রোসফট ওয়ার্ড (MS -Word) -র একটা না জানা, উপকারী ফিচার - মেইলিংস (Mailings)
শনিবার, ২২ মার্চ, ২০২০

আজকের লেখা সফটওয়্যার ইঞ্জিনিয়ারিং -র কোনো বিষয়ের উপর না। মাইক্রোসফট ওয়ার্ডের একটা ফিচার  (Mailings) সম্পর্কে জানতে পারলাম। সবার সাথে শেয়ার করার জন্যই আজকে লিখছি।

আগে একটু ভূমিকা দিয়ে নেই: আমি যে  ইউনিভার্সিটিতে পড়াই, পেনসিলভানিয়া স্টেট ইউনিভার্সিটি - এবিংটন (Penn State University - Abington) সেটা মূলত একটা আন্ডারগ্রাজুয়েট ইউনিভার্সিটি -- মাস্টার্স বা পিএইচডি প্রোগ্রাম নাই। মূল Pennsylvania State University, যেটা Penn State নামেই বিখ্যাত - সেটার প্রায় ২০ টা ক্যাম্পাসের একটা এই এবিংটন। এবিংটন ক্যাম্পাসে কম্পিউটার সায়েন্সের ৪ বছরের ব্যাচেলরস ডিগ্রী এই কিছুদিন হলো মাত্র শুরু হয়েছে। বেশকিছু বাংলাদেশী স্টুডেন্টও আছে। নিজেদের জাহির করতে আর স্টুডেন্টদের প্রোগ্রামিংয়ে উৎসাহী করতে গত ২৯ ফেব্রুয়ারী, ২০২০ শনিবার ছুটির দিনে, প্রথমবারের মতো আমরা একটা প্রোগ্রামিং কন্টেস্টের আয়োজন করলাম। HackerRank.com ওয়েবসাইট ব্যবহার করে হোস্ট করা সেই কন্টেস্টে প্রতিযোগী বা কন্টেস্টেন্টদের সার্টিফিকেট প্রিন্ট করতে গিয়েই মাইক্রোসফট ওয়ার্ডের এই ফিচারটা, Mailings সম্পর্কে জানতে পারলাম।

সিম্পল ফ্যাক্টরি, ফ্যাক্টরি মেথড আর অ্যাবস্ট্রাক্ট ফ্যাক্টরি ডিসাইন প্যাটার্ন

অক্টোবর ১২, শনিবার লেখা শুরু করে আজকে নভেম্বর ৭, বৃহস্পতিবার।

যেকোনো ডিসাইন প্যাটার্ন বোঝার জন্য সেটা কী সমস্যার সমাধান করে সেটা খুব ভালো করে বোঝা জরুরি।

চলুন একটা কাল্পনিক ঘটনা বা গল্পের মাধ্যমে আজকের ডিসাইন প্যাটার্ন গুলোর উপযোগিতা বোঝার চেষ্টা করি।তার আগে বলে নেই: পুরো আইডিয়া আর কোড "Head First Design Patterns" বই থেকে নিয়ে আমি আমার মতো কিছু পরিবর্তন করে নিয়েছি। সুতরাং পুরো ক্রেডিটটাই ওই বইয়ের লেখকদের প্রাপ্য। আর লেখাটা একটু লম্বা, তাই ধৈর্য ধরে, সময় নিয়ে পড়ার অনুরোধ থাকলো।

পুরো সিম্পল ফ্যাক্টরির কোড, টেস্ট ড্রাইভ কোড সহ এই Repl.it লিংকে দিয়ে দিয়েছি। আর পুরো ফ্যাক্টরি মেথড ডিসাইন প্যাটার্নের কোড, টেস্ট ড্রাইভ কোড সহ এই Repl.it লিংকে দিয়ে দিয়েছি, দেখে নিতে পারেন। রেডি?

অবজার্ভার ডিসাইন প্যাটার্ন (Observer Design Pattern)

অবজার্ভার ডিসাইন প্যাটার্ন (Observer Design Pattern)
মঙ্গলবার, ১৭ সেপ্টেম্বর, ২০১৯। 

যেকোনো ডিসাইন প্যাটার্ন বোঝার জন্য সেটা কী সমস্যার সমাধান করে সেটা খুব ভালো করে বোঝা জরুরি।

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

ফগ কম্পিউটিং (Fog Computing) - সেটা আবার কী?

ফগ কম্পিউটিং (Fog Computing) - সেটা আবার কী?
২৯ জুলাই, সোমবার, ২০১৯


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

জাভা ডেভেলপারের চোখে পাইথন: তফাৎ, নতুন বৈশিষ্ট বা ফিচার - ১

জাভা ডেভেলপারের চোখে পাইথন: তফাৎ, নতুন বৈশিষ্ট বা ফিচার - ১
৩১ অগাস্ট, ২০১৮, শুক্রবার

সফটওয়্যার ইঞ্জিনিয়ারের চাকরি ছেড়ে প্রায় ৩ সপ্তাহ হলো পেন স্টেট ইউনিভার্সিটি, এবিংটন (Penn State University at Abigton)  -এ শিক্ষক হিসেবে জয়েন করেছি। পড়াচ্ছি পাইথনের উপর ২ টি আন্ডারগ্রেড কোর্স। একটা একদম বেসিক কোর্স, আরেকটা একটু এডভান্স লেভেলের কোর্স - পাইথন দিয়ে ডাটা স্ট্রাকচার। পড়াচ্ছি বলতে আক্ষরিক অর্থেই শিখে শিখে পড়াচ্ছি। আমি সবসময়ই জাভা তে কোড করেছি - একটু আধটু সি কিংবা সি# -এ কাজ করলেও মূলতঃ জাভাতেই কাজ করেছি। আর তাই, নতুন করে শিখতে গিয়ে পাইথনের নতুন ফিচার বা জাভা থেকে আলাদা যেসব বৈশিষ্ট চোখে পড়ছে - তাই নোট করে রাখার উদ্দেশ্যেই আজকের লেখা, হয়তো কারো উপকারে আসবে। এখন পর্যন্ত যা চোখে পড়েছে তাই লিখছি, পরে আরো কিছু শিখলে/দেখলে লিখে রাখবো।

গিট: মার্জড ব্রাঞ্চ কে রিভার্ট করার সহজ উপায়

গিট: মার্জড ব্রাঞ্চ কে রিভার্ট করার সহজ উপায়
জুলাই ১৮, বুধবার, ২০১৮


অনেক সময় আপাত দৃষ্টিতে কঠিন একটা কাজের বা সমস্যার খুব সহজ সমাধান পাওয়া যায়।  Git/BitBucket, IntelliJ  নিয়ে পড়া এমন একটা কঠিন সমস্যার সহজ সমাধান পেয়ে শেয়ার করার লোভ সামলাতে পারলাম না। সমস্যায় কিভাবে পড়লাম সেটাও ইন্টারেষ্টিং।

ডাটাবেস: প্রি - আর পোস্ট -ডেপ্লয়মেন্ট স্ক্রিপ্টের চক্করে!

ডাটাবেস: প্রি - আর পোস্ট -ডেপ্লয়মেন্ট স্ক্রিপ্টের চক্করে!
এপ্রিল ১৮, বুধবার, ২০১৮


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

আফসোস সমগ্র এবং ...

আফসোস সমগ্র এবং ...
অগাস্ট ১৭, ২০১৭, বৃহস্পতিবার


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

“আচ্ছা বল তো: একটা নিয়ম আছে যে, equals মেথড ওভাররাইড করলেই সাধারনত* hashCode মেথডও ওভাররাইড করতে হয় - এটা কেন?”


(মার্চ ৪, বুধবার, ২০১৫)

Sabre (উচ্চারণ যদিও সেবার) বেশ নাম করা কোম্পানি। ওরা খুব গর্ব করে প্রায়-ই বলে যে আমরা ওদের নাম না শুনলেও ওদের সফটওয়্যার নাকি (যদি একবারের জন্যও  প্লেনে করে কোথাও গিয়ে থাকি) -  আমরা ব্যবহার করেছি-ই।  সম্ভবত কথাটা ঠিকই। এয়ারলাইন ইন্ডাস্ট্রি’র মোটামুটি একচেটিয়া ব্যবসা এই কোম্পানির। ফ্লাইট শিডিউল (আমরিকাতে যদিও এরা স্কেজিউল উচ্চারণ করে!) করার সফটওয়্যার এদের। আর প্রায় সব এয়ারলাইন কোম্পানি এদের ক্লায়েন্ট। আমরিকাতে বেশ নাম করা Travelocity ওয়েবসাইট  আর এখনকার বেশ জনপ্রিয় ট্রাভেল মোবাইল আপ TripCase এদেরই।

(আমাজন ওয়েব সার্ভিস -এ যাবার পর) 'যা শিখলাম' - মিটিং এর নোট.

১৬ ফেব্রুয়ারী, সোমবার, ২০১৫

(আমাজন ওয়েব সার্ভিস -এ যাবার পর হওয়া) 'যা শিখলাম' - মিটিং এর নোট.
Notes from the 'Lessons learned' meeting after we moved to Amazon Web Service.

আমার আগের লেখায় বলেছিলাম,
"পুরো প্রজেক্টে কী শিক্ষনীয় ছিল, কী আরো ভালো ভাবে করা যেতো, তার উপরে একটা Lessons learned মিটিং হয়েছে। ওই মিটিং-র সারমর্ম নিয়ে কোনো এক লেখায় লিখব আশা করি। "

আজকের লেখা (খুব সংক্ষিপ্ত আকারে) তার উপরেই।

সিঙ্গেলটন ডিজাইন প্যাটার্ন - Singleton Design Pattern

সিঙ্গেলটন ডিজাইনপ্যাটার্ন - Singleton  Design  Pattern
৩০ ডিসেম্বর, ২০১৪, মঙ্গলবার।

আমার মনে হয়, সিঙ্গেলটন ডিজাইন প্যাটার্ন সবচেয়ে বেশি পরিচিত প্যাটার্ন। আমরা অন্য কোনো ডিজাইন প্যাটার্ন না জানলেও, সিঙ্গেলটন ডিজাইন প্যাটার্ন সম্পর্কে কম-বেশি সবাই জানি। তাই, আজকের পোস্ট খুব বেশি বড় করবো না।  

প্রথম প্রশ্ন: সিঙ্গেলটন ডিজাইন প্যাটার্ন কোন সমস্যার সমাধান করে, কখনই বা  ব্যবহার করতে হয় ?

অবজেক্ট ইকুয়ালিটি আর equals মেথডের যত ঝামেলা - Object equality and equals method

অবজেক্ট ইকুয়ালিটি আর equals মেথডের যত ঝামেলা  - Object equality and equals method

Java তে সব অবজেক্টের একই পূর্ব পুরুষ - Object. সব ক্লাস আসলে Object ক্লাস -এরই সাব-ক্লাস। সেই হিসাবে আমরা জানি আর না জানি, আমাদের লেখা যেকোনো ক্লাস -ই Object ক্লাস-এ লেখা মেথড গুলো নিজের মধ্যে নিয়ে আসে।

মেথড ওভারলোডিং- ওভাররাইডিং - Method overloading - overriding

আমার এই লেখাটা বেশ কিছুদিন আগের। তখন আমি আমার প্রফেসর ড. ক্রিস্টফ চালনারের সফটওয়্যার ইঞ্জিনিয়ারিং কোর্সের টিচিং এসিস্টান্ট বা টি-এ ছিলাম। 

--------------------------------------------------------------------------------------------------------------------------

আমি এই সেমিস্টার-এ যেই কোর্সের টি-এ. তাতে একটা কুইজের প্রশ্ন ছিল অনেকটা এই রকম :


public class C {
public int foo (C p) { return 1;}
public int foo (E p) { return 2;}
}

ডেকরেটর ডিসাইন প্যাটার্ন - Decorator Design Pattern

(ডিসেম্বর , ৪, ২০১৪, বৃহস্পতিবার)
ডেকরেটর ডিসাইন প্যাটার্ন:


জাভার উপর যশুয়া ব্লক’র লেখা খুবই জনপ্রিয় একটা বইয়ের নাম: ইফেক্টিভ জাভা। জাভার প্রতিষ্ঠাতা জেমস গসলিং নিজেও বইয়ের প্রশংসা করে বলেছেন যে অনেকেই মনে করে তাঁর কোনো জাভার বইয়ের দরকার নেই, কিন্তু তাঁর এই বইটির দরকার এবং খুব ভালো হত যদি তিনি আরো ১০ বছর আগে বইটি পেতেন!! [১]

VSCode -এ regEx ব্যবহার করে খুব গ্রুপ টেক্সট পরিবর্তনের উপায়

VSCode -এ regEx ব্যবহার করে খুব গ্রুপ টেক্সট পরিবর্তনের উপায়  ৪ জানুয়ারি, ২০২৫, শনিবার  কাজের জায়গায় regEX ব্যবহার করে একটা প্রবেলম সল্ভ করল...