Blog

প্রোগ্রামিং উইথ রুবিঃ শূন্য দিয়ে শুরু!

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

তো এখন তাহলে কিভাবে শুরু করবেন?
ঠিক আছে, এইবার তাহলে আমার টার্ণ। প্রথমে আপনার যে কোন একটা প্রোগ্রামিং ল্যাংগুয়েজ চয়েজ করতে হবে। অপশন হিসেবে আপনার কাছে থাকতেছে C/C++, Python, Ruby, JS. ল্যাংগুয়েজ আরও অনেকই আছে, কিন্তু আমি এই কয়েকটাই রিকমেন্ড করবো একেবারে নতুনদের শুরু করার জন্য। এর মাঝে পাইথন আর রুবি হচ্ছে সবচেয়ে সহজ দুটো ল্যাংগুয়েজ। আপনি যদি ডেস্কটপের জন্য শিখতে চান তাহহলে সি বা সি++ বেটার চয়েজ। শুধু ওয়েবের জন্য শিখতে চাইলে জেএস। ওয়েব প্রোগ্রামিং + ডেস্কটপ দুইটাই কাভার করতে চাইলে পাইথন বা রুবি যে কোনটা দিয়ে শুরু করতে পারেন। আমি যেহেতু ওয়েব প্রোগ্রামার, আমি একটু এদিকেই বায়াসড। সো আমার সাথে থাকতে হলে শেষের ৩ টা থেকে একটা পিক করতে হবে!

তো রুবিই ক্যানো?
আরে ভাই, সহজ হিসাব, ফেসবুকে স্ট্যাটাস দিতে পারবেন, “I’m in love with Ruby! <3". আমার মত কম্পু নার্ডদের আর কি চাই!
জোকস এপার্ট, হ্যালো ফ্রম জাপান। রুবি প্রথম দেখায় খেলনা মনে হতে পারে। এত্তটাই সহজ, প্রোগ্রামিং শুরু করার জন্য খুবই ভালো একটা চয়েজ। আবার একই সাথে, খুবই পাওয়ারফুল একটা ল্যাংগুয়েজ। রুবি এর ক্রিয়েটর "Yukihiro "Matz" Matsumoto" এর মতামত হচ্ছে, তার Perl এর চেয়ে পাওয়ারফুল এবং Python এর চেয়ে অবজেক্ট ওরিয়েন্টেড একটা ল্যাংগুয়েজ তার দরকার ছিলো। কিছু না পেয়ে সে নিজেই একটা বানিয়ে ফেলেছে! এমনকি নামটাও পার্ল এর প্রতি সম্মান দেখিয়ে রুবি রাখা হয়েছে। খুবই পাওয়ারফুল, একই সাথে হাইলি অবজেক্ট অরিয়েন্টেড, সহজ সিনট্যাক্স, নতুন প্রোগ্রামিং শেখার জন্য রুবিকে একেবারেই আদর্শ একটা চয়েজ বানিয়েছে!

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

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

ওহ, ভালো কথা, সিরিজ কিন্তু শূন্য দিয়ে শুরু, এটা একটু মাথায় রাইখেন। আমি পরে আপনাকে একটা সিক্রেট বলবোনি এই ব্যাপারে!

আর সাথে এই ভিডুটা দেখতে থাকুনঃ

Enable remote access to PostgreSQL database server

Often it’s good to access databases directly from desktop. Or maybe you want your database server to be different from your application server. Whatever your reason is, the requirement is enabling remote access to your PostgreSQL database server.

It’s very simple procedure. First locate your DB configuration files. Commonly they lives under /etc/postgresql/9.3/main/ directory. Be sure to replace ‘9.3’ with your own database version.

Now open up the file pg_hba.conf with your favorite text editor and paste the bellow code at the end of the file:

host all all  0.0.0.0/0 md5

Okay, Attention first: this will open up your server to the whole world. You can alter the above code to meet your specific need. Like replace the first ‘all’ with your single database name or replace second ‘all’ with your database user name. Also you can limit the network at the 4th column. Just tweak it as you need. It’ll be more secure.

Next open up postgresql.conf and change the value of listen_addresses = ‘localhost’ to something like this:

listen_addresses = '*'

Now PostgreSQL will listen to the whole network.

Simply restart your server:

sudo service postgresql restart

You should be good to go by now!

Test your setup:

psql -h server.ip -U postgres

Basic Database Design tips for Relational Database

Database is one of the biggest bottleneck of a Web App performance now a days.

A poorly designed database can make your life hell as a dev while optimizing an app.

On the other hand, A good design can speedup your development process along with the performance of the app.

I’m also learning the basics of database design, in that process here listing some basic tips.

  • Actually draw the design on a big paper.
  • List down all columns you may need.
  • If you have confusion about a column (you may need or not), list it down.
  • Now break those into multiple tables.
  • Don’t keep any irrelevant data on a table, better use additional table.
  • As it’s a relational database design, check your relations properly.
  • For MySQL advanced engines like InnoDB supports relations inside database end, use them, This way you’ll have to write less code and less query.
  • Now run your design through Normalization Form (NF) rules.

As I always say, Database design is almost 30% of whole development process for me. With a solid design I can write code very confidently.
So think before the design, don’t be upset later.

If you have any other point, please let me know via comment. I’m eagerly waiting to learn something new.

Goodbye iBabar.com, welcome Babar.im

Yesterday got a brand new called babar.im.
I was searching for a own name domain from a long back. Specially after getting my MacMini. People started irritating me as i derived from iOS of ibabar. :P
Unfortunately for Babar The Elephant, it was very hard to get domains for me!

Day before yesterday, even thought of the domain name babar.sexy and posted it on facebook!

Someone suggested me babar.im, liked it.
Whoished from terminal, it said it’s free yet!

Went to NameCheap, they says it’s not free! Damn.

Later yesterday morning, went to Name.com, and they said it’s free! Only then I noticed NameCheap actually doesn’t sell .im domain, they showed me result for babar.com!

And yeah, I bought it from Name.com and it’s live now.

So, site is from now on Babar.im.

Farewell iBabar.com, thanks for your service mate. :)

And warm welcome to Babar.im.

Determine MySQL Database Size

Simple tips.
Sometimes we want a summery of size consumed by our databases in MySQL engine.
Here is a simple SQL snippet for that.
This will list all databases that current MySQL user can access and list their size in megabyte.

Tested it on MySQL, on other databases, may also work.
Hope it helps you.