নিজের মেশিনে Exercism-এর অনুশীলনী সমাধান করতে Pharo স্থানীয়ভাবে ইনস্টল করার নিয়ম শিখুন
টার্মিনাল কমান্ড লাইন থেকে zero conf ডাউনলোড ব্যবহার করে Pharo ইনস্টল করা সবচেয়ে সহজ উপায়।
দ্রষ্টব্য: আপনি যদি আগে থেকে ইনস্টল করা কোনো একটি ইনস্টলেশন আপগ্রেড করতে চান, তাহলে upgrade instructions দেখুন।
যেসব Windows ব্যবহারকারীর কম্পিউটারে UNIX ঘরানার শেল ইনস্টল করা নেই, তারা নিচের Windows Installation নির্দেশাবলিতে চলে যান।
আরও অভিজ্ঞ Linux ব্যবহারকারীরা Linux Hackers Installation দেখতে পারেন।
Linux/OSX-এর জন্য (ধরে নিচ্ছি আপনি Exercism ইনস্টল করেছেন এবং Pharo ট্র্যাক-এ যুক্ত হয়েছেন), আপনার /Exercism/pharo-smalltalk ডিরেক্টরিতে গিয়ে টাইপ করুন:
curl https://get.pharo.org/64/ | bash
তারপর নিচের "load script" পেস্ট করে exercism টুলস-সহ Pharo চালু করুন:
./pharo-ui Pharo.image eval "
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
"
টুলস লোড করার সময় কোনো TIMEOUT সমস্যা হলে Pharo থেকে বেরিয়ে গিয়ে এভাবে টাইপ করে git ক্যাশ পরিষ্কার করুন:
rm -rf pharo-local/iceberg/
তারপর উপরের ./pharo-ui ... উদাহরণটি আবার চালান।
সমস্যা থেকে গেলে অনুগ্রহ করে Pharo Community পাতায় বর্ণিত Pharo Discord চ্যানেলে যান।
সবকিছু ঠিকঠাক চললে স্ক্রিন জুড়ে লোডিং প্রগ্রেস বারগুলো জ্বলজ্বল করতে দেখবেন, তারপর একটি System Browser উইন্ডো খুলে যাবে।
টিপস: Pharo থেকে বেরোনোর সময় আপনার পরিবর্তনগুলো সেভ করুন (Pharo মেনু থেকে "Save and Quit" নির্বাচন করুন)। এখন শুধু নিচেরটা টাইপ করলেই Exercism আগে থেকেই লোড করা অবস্থায় Pharo শুরু করতে পারবেন:
./pharo-ui Pharo.image
Windows-এর জন্য সেরা কমান্ড লাইন টুলের পূর্বশর্তগুলো নিয়ে আমরা এখনও কাজ করছি, তবে Windows Pharo Launcher ব্যবহার করে গ্রাফিকালভাবেও Pharo ইনস্টল করতে পারেন (একাধিক Pharo ইমেজ সামলানোর একটি সুবিধাজনক টুল)। GUI পছন্দ হলে OSX আর Linux-এর জন্যও এই লঞ্চারটি পাওয়া যায়।
ডাউনলোড করা .msi ফাইলটি চালিয়ে Pharo Launcher ইনস্টল করুন।
Pharo Launcher চালু করুন।
উপরের বাম কোণায় "New" ক্লিক করুন।
উইন্ডোতে template categories থেকে "Official distributions" নির্বাচন করুন।
Exercism অনুশীলনীর জন্য Pharo image template-এর তালিকা থেকে সর্বশেষ স্থিতিশীল রিলিজটি বেছে নিন (বর্তমানে সুপারিশ করা হয় "Pharo 10.0 64-bit (stable)")।
একটি image template ক্লিক করে হাইলাইট করুন, তার একটি নাম দিন, তারপর নিচের create image বোতামটিতে ক্লিক করুন (কমলা রঙের একটি গিয়ার আকৃতি)।

template ডাউনলোড হয়ে গেলে ডান দিকে Existing Images টেবিলে সেটি দেখা যাবে। সেটিতে ক্লিক করুন, তারপর উপরের launch বোতামে ক্লিক করুন (সবুজ রঙের একটি play তীর)।

Pharo image চালু হয়ে গেলে Browse মেনু থেকে Playground নির্বাচন করে একটি Playground খুলুন, অথবা ctrl + o + w ব্যবহার করুন।

সবশেষে নিচের অংশটি কপি করে playground-এ পেস্ট করুন:
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
তারপর পেস্ট করা কোডটি পুরোটা হাইলাইট করে, ডান ক্লিক করে মেনু থেকে Do it নির্বাচন করে evaluate করুন (অথবা ctrl + d ব্যবহার করুন)।
সবকিছু ঠিকঠাক চললে স্ক্রিন জুড়ে লোডিং প্রগ্রেস বারগুলো জ্বলজ্বল করতে দেখবেন, তারপর একটি System Browser উইন্ডো খুলে যাবে।
Pharo চালু করলে আপনি একটি Welcome project দেখতে পাবেন, একটি System Browser-এ (টিপস: কোনো সময়ে এই উইন্ডোটি হারিয়ে ফেললে Tools|System Browser মেনু থেকে নতুন একটি খুলতে পারেন)।

System browser-এর উপরের বাম দিকের প্যানেলে আপনার এনভায়রনমেন্টের প্যাকেজগুলো দেখা যায়, আর দেখবেন ইনস্টল স্ক্রিপ্ট ইতিমধ্যেই Exercism নামের একটি প্যাকেজ কনফিগার করে রেখেছে, যার ভেতরে Welcome নামের একটি sub-project ট্যাগ আছে। দ্বিতীয় প্যানেলে ক্লাসগুলো থাকে, সেখানেও Welcome নামের একটি ক্লাস আছে। ক্লাস প্যানেলের নিচে ৪টি রেডিও বোতাম আছে, "Flat" (প্যাকেজের ক্লাসগুলো দেখায়), "Hier." (ক্লাসের hierarchy দেখায়), "Inst. side" (instance মেথডগুলো দেখায়), "Class side" (class মেথড/কনস্ট্রাক্টর দেখায়)।
Comment ট্যাবে ক্লিক করলে Pharo Exercism ব্যবহারের সর্বশেষ নির্দেশাবলি দেখতে পাবেন। কমেন্টগুলো পড়ুন আর নিজের প্রথম টেস্টটি চালিয়ে দেখুন।
অন্য ফাইল-ভিত্তিক ভাষায় সাধারণত এই মুহূর্তে আপনি টার্মিনালে গিয়ে exercism cli দিয়ে পরের অনুশীলনীটি এনে ফেলতেন। Pharo-ও একইভাবে ফাইল নিয়ে কাজ করতে পারে, তবে এখানে এনভায়রনমেন্টটি আসলে live object নিয়ে কাজ করার জন্য সাজানো। মজার ব্যাপার হলো, ক্লাস, মেথড আর সোর্স কোড, Pharo-র বাকি সবকিছুর মতোই, সবই অবজেক্ট। এই ট্র্যাকের পুরোটা জুড়ে এ সম্পর্কে আরও শিখবেন।
Exercism-এর জন্য আমরা একটি প্লাগইন যুক্ত করেছি, যা দিয়ে IDE-র ভেতর থেকেই Pharo অনুশীলনী আনা আর জমা দেওয়া যাবে।
আপনাকে শুধু একটি অনুশীলনী প্যাকেজে (এক্ষেত্রে উপরের বাম প্যানেলে থাকা Welcome প্যাকেজে) ডান ক্লিক করে Exercism | Fetch Exercise মেনু আইটেমটি নির্বাচন করতে হবে। তখন একটি অনুশীলনীর নাম জিজ্ঞাসা করা হবে (যেমন hello-world), নাম দিলে সেটি স্বয়ংক্রিয়ভাবে এনে দেবে।
প্রতিটি অনুশীলনীর বর্ণনায় আপনার Pharo ট্র্যাক পাতায় (একদম ডান দিকে) অনুশীলনীর নামগুলো পাওয়া যাবে। সেখানে প্রতিটি অনুশীলনীর key-সহ একটি cli স্ট্রিং দেওয়া Download নির্দেশনা থাকে। cli নির্দেশনার পাশের কপি বোতামটি ব্যবহার করে পুরো স্ট্রিংটি কপি করে fetch প্রম্পটে পেস্ট করতেও পারেন (আমরা key-টি স্বয়ংক্রিয়ভাবে বের করে নেব)।
বৈধ কোনো অনুশীলনী দিলে প্লাগইনটি সংশ্লিষ্ট কোড এনে System Browser-এ দেখাবে, আর আপনি টেস্ট দিয়ে কোড লেখা শুরু করতে তৈরি।
আপনার সব টেস্ট পাস হয়ে গেলে একই context মেনু ব্যবহার করে অনুশীলনী প্যাকেজ থেকে আপনার সমাধান জমা দিতে পারেন (প্যাকেজ ট্যাগে ডান ক্লিক করে Exercism | Submit Exercise... নির্বাচন করুন)

সবশেষে Exercism | View Track Progress মেনু ব্যবহার করে exercism ওয়েবসাইটে গিয়ে দেখুন আপনার জন্য আর কী কী অনুশীলনী খুলে দেওয়া হয়েছে, আর পাশাপাশি আপনার সমাধান নিয়ে প্রশ্ন পোস্ট করতে পারেন যাতে মেন্টররা পড়তে পারেন।
আপনি কি জানেন: Pharo চালু করার সময় আপনি আসলে একটি execution image snapshot পুনরুদ্ধার করেন, যা VMWare অপারেটিং সিস্টেম ইমেজের মতো। এটি একটি শক্তিশালী ধারণা, যা দিয়ে কাজের মাঝপথে, এমনকি কোনো কিছু ডিবাগ করার সময়ও, সবকিছু স্থগিত রাখতে পারেন। পরেরবার Pharo আবার চালু করলে পুনরুদ্ধার করা ডিবাগারে কোড ধাপে ধাপে চালিয়ে যেতে পারবেন, বা সম্ভবত একটি refactoring ধাপও চালিয়ে যেতে পারবেন।
নিরাপত্তাজনিত কারণে কখনো আপনার CLI টোকেন রিসেট করার দরকার হলে Exercism Settings Page পাতায় গিয়ে reset token বোতামটি ব্যবহার করুন। এটি করার পর একটি Playground-এ নিচের কোডটি evaluate করে Pharo Exercism থেকে আপনার পুরোনো টোকেন মুছে ফেলতে হবে:
ExercismHttpClient
reset;
promptForToken.
মাঝে মাঝে আপনার Pharo Exercism ইমেজের লাইব্রেরিগুলো আপডেট করার দরকার হতে পারে। অনুগ্রহ করে এই নির্দেশাবলি অনুসরণ করুন