Categories
PHP

Gear up your PHP Apps with GearMan

One of the reasons I love working at Leevio is the tons of new stuff I learn from here. The latest one is – Gearman!

Gearman is an application framework for distributing workload. How does it work? Simple, you run the core daemon (gearmand) with necessary configurations (ip, port, mode, data storage etc) and a worker process registers itself with a named hook. Then, when you need to run that worker, just make a call from the client side.In plain English, the process may read like this:

1) Gearman is the project manager in your office.
2) A new worker joins your office and tells the project manager that he can build awesome wordpress themes.
3) The project manager takes note on his capabilities and waits for clients.
4) A client calls and orders a wordpress theme with specifications.
5) The project manager then passes the specifications to the new wordpress developer, gets the work done by him and returns the result to the client.

The task can be run both in foreground and background. Gearman is multi-threaded, asynchronous, fault tolerant and has multiple language support. So what does this all translate into?

— Run necessary “jobs” in the background
— Write codes in multiple languages
— Build multi-threaded and asynchronous task handlers
— Build task queues instead of draining out all the system resources with concurrent processes

Gearman has PHP support. That means PHP web apps can take the advantage of gearman to offload their “jobs” to the gearman server for background processing.

Who uses Gearman with PHP?

— Yahoo (6M jobs per day)
— Digg (400k jobs per day)
— Xing.com and many others

How do we get started with Gearman? Well, the web is so full of Gearman topics that I am not going to write the codes myself. I would rather point you to articles written by more skilled people than me:

— Rasmus Lerdorf (Father of PHP): http://toys.lerdorf.com/archives/51-Playing-with-Gearman.html

— Matthew Weier O’Phinney (Developer of ZF): http://weierophinney.net/matthew/archives/240-Writing-Gearman-Workers-in-PHP.html

— Cesar D. Rodas on PHPClasses: http://www.phpclasses.org/blog/post/108-Distributing-PHP-processing-with-Gearman.html

— IBM Developer Works: http://www.ibm.com/developerworks/opensource/library/os-php-gearman/

— Gonzalo Ayuso: http://gonzalo123.wordpress.com/2011/03/07/watermarks-in-our-images-with-php-and-gearman/

Installation Notes:

http://www.geeksww.com/tutorials/operating_systems/linux/installation/installing_gearman_shared_pecl_extension_for_php_on_debianubuntu_linux.php

http://blog.stuartherbert.com/php/2010/02/26/getting-gearman-up-and-running-on-ubuntu-karmic/

Gearman Tricks:

http://till.klampaeckel.de/blog/archives/94-start-stop-daemon,-Gearman-and-a-little-PHP.html

Categories
Linux

Getting full theming of Ubuntu inside VirtualBox

Due to some issues with my laptop hardware, I can not use Ubuntu all time. After some time, the laptop just freezes. After repeated occurrence of the same crash, I have started using Windows full time and kept Ubuntu inside VirtualBox. In the default setup, the first thing I noticed is that the theme is broken – both in unity and the classic ubuntu session (which is a gnome2 based fallback option, I guess). I love working on Ubuntu, but I hate the grey old ubuntu theme that appears on my screen. I always wondered why this happened.

After some googling, I came to find that VirtualBox by default doesn’t enable 3D hardware acceleration. So, Unity can not find required hardware to enable the theme. I just increased the video memory for the virtual machine to 32MB and enabled 3D acceleration. Installed VirtualBox guest addition. Restarted the machine.

Everything was fine except the panels and nautilus icons. It is mainly because the “gnome-settings-daemon” crashes. I killed the process and then restarted it using:

(PS: Don’t use sudo, you need to kill the process running under your account)

Then I dealt with nautilus in the same manner:

Categories
Bangla

উইন্ডোজ এবং লিনাক্সে সিকিউরিটিঃ কিছু কথা

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

উইন্ডোজ ব্যবহারকারীদের জন্য:

— পাইরেটেড উইন্ডোজ যত নষ্টের গোড়া । এগুলোতে নিরাপত্তা শোচনীয় হয়ে থাকে । উইন্ডোজ ব্যবহার করলে জেনুইন উইন্ডোজ ব্যবহার করুন ।

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

— ফায়ারওয়াল ব্যবহার করুন । কন্ট্রোল প্যানেল থেকে উইন্ডোজ ফায়ারওয়াল এনাবল করে দিন । ফায়ারওয়াল নিশ্চিত করবে আপনার অজান্তে কোন এপ্লিকেশন ইন্টারনেট বা লোকাল নেটওয়ার্কে যেন এক্সেস না পায় ।

— ইন্টারনেট এক্সপ্লোরার আপনার উইন্ডোজের অনেক কিছুই ওয়েব এপ্লিকেশন থেকে এক্সেস করতে দেয় । এটি একটা বড় ধরনের নিরাপত্তা হুমকি এবং ভাইরাস ইনফেকশনের অন্যতম মাধ্যম । আপনার ইন্টারনেট এক্সপ্লোরার কে লেটেস্ট ভার্সনে (ভার্সন নাইন) এ আপডেট করুন । সম্ভব হলে অন্য কোন ব্রাউজার ব্যবহার করুন ।

— কোন সফটওয়্যার চালানোর আগে তার বিশ্বাসযোগ্যতা যাচাই করে নিন । অপরিচিত কোন সফটওয়্যার সম্পর্কে ভাল করে খোজ না নিয়ে চালাবেন না। গুগলে সার্চ করলেই যে কোন জনপ্রিয় সফটওয়্যার সম্পর্কে রিভিউ পাওয়া যাবে ।

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

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

— আমরা অনেকেই থার্ড পার্টি রিপো থেকে সফটওয়্যার ইন্সটল করি । এই রিপো গুলো সম্পর্কে খোজ নিয়ে নেওয়া ভাল ।

— লিনাক্সে রুট পার্মিশন চাওয়া খুব সহজ, কমান্ডের আগে sudo বা gksu লাগিয়ে দিলেই হল । তাই রিপো থেকে ইন্সটল করেননি এমন সফটওয়্যার কে রুট এক্সেস দেওয়ার আগে আরেকবার ভাবুন ।

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