গুগল ড্রাইভের একটা বিল্ট-ইন OCR আছে যার মাধ্যমে আমরা পিডিএফ বা ইমেজ থেকে টেক্সট উদ্ধার করতে পারি।

উল্লেখ্য, এই OCR একেবারে নির্ভুল না। তবে টাইপ করার সময় বাঁচবে। প্রুফরিডিংও খুব একটা ঝামেলার না।


একটা সিম্পল ফাংশন লেখা যাক, যেটা কিনা (range 10) এর মধ্যে নাম্বারগুলো প্রিন্ট করবে:

(defn print-num-seq []
  (map println (range 10)))

রান করলে ঠিকঠাকই কাজ করবে, অর্থাৎ 0 থেকে 9 পর্যন্ত সংখ্যাগুলো প্রিন্ট করবে। এবার, একই কাজ যদি আমরা পাঁচবার করতে চাই তাহলে তারজন্য এমন একটা ফাংশন লিখতে পারি:

(defn print-recur []
  (loop [i 0]
    (when (< i 5)
      (print-num-seq)
      (recur (inc i)))))

মজার বিষয় হচ্ছে রান করলে শুধু nil রিটার্ন করবে। কিছুই প্রিন্ট করবে না।


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

কিন্তু এভাবে তো জনে জনে ব্রাউজার সেটিংসে ঢুকে ফন্ট ঠিক করে দেওয়া সম্ভব না, তাই কি? :sweat: এখানেই চলে আসে google webfont কথা। এই ফন্টগুলো আপনি CSS stylesheet হিসেবে সাইটে যুক্ত করতে পারবেন। এতে হবে কী, সাইট লোড হওয়ার সময় ফন্টটিও লোড হবে। ওয়েবফন্টগুলোর মধ্যে তিনটি আছে বাঙলা। এগুলো হচ্ছে: Lohit Bengali, Noto Sans Bengali এবং Noto Sans Bengali UI। এরমধ্যে লোহিত খুবই কুৎসিত একটি ফন্ট। :expressionless: নোটো সুন্দর, সুপাঠ্য। Noto Sans Bengali UI একই ফন্ট তবে বোল্ড এবং হিন্টিং সাপোর্টসহ। আমরা Noto Sans Bengali UI ব্যবহার করবো।


আপডেট

ইম্যাকস ২৫ এ প্রভাব লেআউট ডিফল্টভাবে যোগ করা হয়েছে। আপনাকে set-input-method কমান্ড দিয়ে bengali-probhat সিলেক্ট করতে হবে

ইম্যাকসের বাঙলা সাপোর্ট দুর্দান্ত। আসলে এই কারণেই প্রথমে ইম্যাকস্ ব্যবহার শুরু করি। আপনি আপনার সিস্টেমের ডিফল্ট ইনপুট মেথড দিয়ে সে আপনি যে লেআউটই ব্যবহার করেন না কেন। ইম্যাকসে চমৎকার বাঙলা লেখা যায়।


Sierpinski triangle কী তা জানতে পারবেন উইকিপিডিয়ায়, আর এখানে যে প্রবলেমটি সলভ করছি এটি আছে হ্যাকারর‍্যাঙ্কে। এই প্রবলেমটিতে আমাদের ইনপুট হিসেবে ১-৫ এর মধ্যে একটি সংখ্যা দেওয়া হবে, যেটি হবে ইটারেশন লেভেল। এবং সেই লেভেল পর্যন্ত ইটারেট করা ফলাফল আমাদের দিতে হবে এ্যাসকি আর্ট হিসেবে।

এবার প্ল্যানিঙে আসা যাক। মূল এ্যালগরিদমটা মোটামুটি এরকম:

  1. ইনপুট
  2. রহস্যজনক কার্যক্রম
  3. আউটপুট