How to install Hackintosh ( Mac PC version ) - Updated

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

যাই হোক কাজের কথায় আসি । এত এত টাকা খরচ না করেও আপনি ম্যাক চালাতে পারবেন সাধারণ পিসিতে :D
কথাটা শুনি খুশি খুশি লাগতেসে তাই না ?? এত টাকার জিনিস একদম ফ্রী চালাবেন :D

ম্যাক অপারেটিং সিস্টেম আপনি ম্যাক পিসি ছাড়া চালাতে পারবেন না । দুঃখ পাবেন না :(
আপনি যেন সাধারণ পিসিতেই ম্যাক চালাতে পারেন তার জন্য কাজ করেছে একদল ডেভেলপার , যারা কাস্টমাইজ করে ম্যাক কে করে তুলেছে সাধারণ পিসি ব্যবহার যোগ্য :D যাকে বলে Hackintosh .



Install Plank Dock & Theme







Install :

sudo add-apt-repository ppa:ricotz/docky
sudo apt-get update
sudo apt-get install plank


Theme :

cd ~ && mkdir -p ~/.temp-plank-themer && cd ~/.temp-plank-themer && wget https://github.com/rhoconlinux/plank-themer/archive/master.zip && unzip master.zip && cd plank-themer-master/ && rm -fR ~/.config/plank/dock1/theme_index; rm -fR ~/.config/plank/dock1/themes-repo; cp -a theme_index/ ~/.config/plank/dock1 && cp -a themes-repo/ ~/.config/plank/dock1 && cd ~ && rm -R ~/.temp-plank-themer && sh ~/.config/plank/dock1/theme_index/plank-on-dock-themer.sh

Uninstall :

sudo apt-get remove plank

Python http Library :: Requests

Python Request library ইন্সটল করা না থাকলে নিচের কমান্ড গুলো রান করে ইন্সটল করে নিন ।

sudo apt-get install python-pip
pip install requests

ইন্সটল করা শেষ হয়ে গেল । এবার কিভাবে ব্যবহার করবেন সেটা দেখা যাক :)

GET method এর জন্য ঃ
Get method এর জন্য আপনার তেমন কোন কষ্টই করতে হবে না । লিঙ্কটা মেথডের মধ্যে পাস করে দিলেই হবে ।


OfSec :: SQL Injection in Post Method

এই পোস্টে আমরা দেখেছিলাম কিভাবে SQLi করতে হয় এবং এটাকে Prevent করা যায় । এটি ছিল http get method এর উপর sql injection । আজকে দেখব কিভাবে http post method এ sql injection করা যায় । তাহলে শুরু করা যাক ।

আমাদের আগের ডাটাবেসই আমরা ব্যবহার করবো এবং আগের পিএইচপি কোডই কিন্তু এক জায়গায় পরিবর্তন থাকবে তাহলো । আমরা আগে ডাটা নিয়েছিলাম GET ব্যবহার করে, কিন্তু এবার আমরা ডাটা নিবো POST ব্যবহার করে যেহেতু আমরা এবার POST method এ sql injection করব ।

Python : Class & Object

ক্লাস , অবজেক্ট কি এই নিয়ে বক বক করবো না । এটা দেখে নিতে পারেন দরকার হলে
এখানে দেখব কিভাবে পাইথনে ক্লাস লিখতে হয় এবং অবজেক্ট তৈরি করতে হয় :)



How to setup Apache tomcat local server


বেশি কথা বাড়ায় লাভ নাই , একে বারে কাজের কথায় আসি

চোখ বন্ধ করে নিচের কমান্ড গুলো টার্মিনালে রান করুন ( চোখ কিঞ্চিৎ খোলা রাখলেও সমস্যা নাই :P )
প্রথমেই জাভা ইন্সটল করা না থাকলে ইন্সটল করে নিন ।
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudo apt-get install oracle-java8-set-default
sudo apt-get update && sudo apt-get install tomcat7

.bashrc এ নিচের লাইন গুলো যোগ করুন ।
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export CATALINA_HOME=/usr/share/tomcat7
এবং /etc/init.d/tomcat7 এ
JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-8-oracle"

কাজ শেষ এবার tomcat restart দিন ।
sudo service tomcat7 restart

এবার লোকালহোস্টনেম:8080 অথবা লোকালহোস্টআইপি:8080 এ যান ব্রাউজার ওপেন করে দেখবেন Apache Tomcat install হয়ে গেসে :)

Ex : 127.0.0.1:8080

OfSec :: SQL Injection Deep View

হ্যাকিং মেথড গুলোর মধ্যে অন্যতম একটি মেথড SQL Injection । এর মাধ্যমে হ্যাকার আপনার ওয়েব অ্যাপ এর ডাটাবেস থেকে নিয়ে যেতে পারে সব তথ্য । ধরুন আপনি আপনার সাইটের গুরুত্বপূর্ণ তথ্য যেমন , এডমিন ইউজার নাম , পাসওয়ার্ড ইত্যাদি ডাটাবেসে রেখেসেন , কিংবা আপনার ই কমার্স সাইটের বাবহারকারীর গুরুত্বপূর্ণ তথ্য যেমন ক্রেডিট কার্ড এর তথ্য ডাটাবেসে রেখেসেন । হ্যাকার এই মেথড ব্যবহার করে আপনার ওয়েব অ্যাপ এর ডাটাবেস থেকে নিয়ে যেতে পারে এই তথ্য ।


এবার দেখি হ্যাকার কিভাবে এই মেথড ব্যবহার করে আপনার ডাটাবেস থেকে ডাটা নিতে পারে ।

Python List vs C++ Vector

C++ Vector এর জন্য এই পোস্টটি দেখতে পারেন । এখানে আমরা সি++ ভেক্টর দেখব না , পাইথনের লিস্ট নিয়ে কথা বলব , আর ভেক্টরের কাজ কিভাবে লিস্ট দিয়ে করতে পারেন তা দেখব :)

C++ Vector এর মত , পাইথন লিস্টও ডাইনামিক । মানে রান টাইমে যা খুশি করতে পারবেন । এবং ভেক্টরের মোটামুটি সব কাজই করতে পারবেন লিস্ট দিয়ে । ও বলতে ভুলে গেসি এই পোস্টটা বেশি কাজে লাগবে তাদের যারা কম্পিটিটিভ প্রোগ্রামিং এ পাইথন ব্যবহার করতে চান ।

Java :: Exception Handling

ধরুন আপনি অনেক কষ্টে একটা প্রোগ্রাম লিখলেন । কিন্তু দেখছেন প্রোগ্রাম রান করলে কিছুক্ষণ চলার পর প্রোগ্রাম ক্রাশ করছে । রান টাইমে প্রোগ্রাম ক্রাশ করা আপনি বন্ধ করতে পারেন Exception Handling এর মাধ্যমে ।

 ধরুন আপনি একটা প্রোগ্রাম লিখেছেন যেখানে একটা সংখ্যা ইনপুট নিয়ে আর একটা সংখ্যা কে ভাগ করছেন ।
যেমন নিচের প্রোগ্রামটির কথা ধরি । একটা সংখ্যা ইনপুট নিয়ে ১২০ কে ভাগ করছি । এখন যদি এমন হয় যে ব্যবহারকারি শূন্য ইনপুট দিয়েছে । তাহলে কিন্তু আপনার প্রোগ্রাম ক্রাশ করবে কারন শুন্য দিয়ে কোন সংখ্যাকে ভাগ করা যায় না ।

Compilation/Running Objective C program in Ubuntu Linux

ঘুমের রাজ্যে পৃথিবী অন্ধকার -_-
আজকে শুক্রবার ছিল , সারাদিন ঘুমায়ই কাইটাগেসে :/

দুপুরে ঘুম ঘুম চোখে ভাবতেছিলাম
গরিব মানুষ ম্যাক তো নাই , উবুন্টুতেই কেমনে ম্যাকের প্রোগ্রাম করা যায় ।
তারপর একটু নেটে ঘাটাঘাটি করে যা পাইলাম .......

Objective C program compile করার টুলস ইন্সটল করতে নিচের কমান্ড টার্মিনালে রান করুন

sudo apt-get install g++ gobjc build-essential gnustep-devel

Ubuntu 12.04 Wifi Driver Problem & Elementary OS Review

সকাল সকাল রিমন ভাই আইসা বলে Elementary OS download দিসে , এইটা চালাইবে । আগে একবার Elementary OS চালাইছিলাম তাই আর লোভ সামলাইতে পারলাম না । ডাউনলোড শেষে রিমন ভাই ইন্সটল দিল তারপর আমই দিলাম । অমা ইন্সটল দিয়া ত পুরাই বিলা , আমার ওয়াইফাই কাজ করে না আর রিমন ভাইর কি সুন্দর চলতেছে । :(
আগেই উবুন্টু ১২.04 এইচপি তে চালাছি কোন সমস্যা হয় নাই । কিন্তু এখন এইটা কি হইল :O । রাউটার এর নেট লাইনটা খুইলা পিসিতে লাগাইলাম তারপর শুরু হইল নেট এ খুঁজাখুঁজি । এই খুঁজাখুঁজি তোঁ আর শেষই হয় না ।
অতঃপর যা বুঝলাম উবুন্টুতে যে ওয়াইফাই ড্রাইভার দেওয়া আছে সেইটা আমার ওয়াইফাই ডিভাইচ সাপোর্ট করতেছে না :(

Eclipse এর টুকিটাকি

থিম পরিবর্তন করবেন যেভাবে

প্রথমে Eclipse ওপেন করুন , এবার Help > Install New Software এ যান ।
নিচের ছবির মত আসবে , type or select a site এর জায়গায় লিখুন

http://eclipse-color-theme.github.com/update

Add এ ক্লিক করুন , যেকোনো একটা নাম দিয়ে Ok করুন ।

Java :: I/O

আজকে লিখব জাভা ইনপুট আউটপুট এবং ফাইল নিয়ে ।

ইনপুট ঃ
জাভাতে ইনপুট নেওয়ার জন্য Scanner Class ব্যবহার করতে পারেন । এই জন্য আপনাকে প্রথমে Scanner class এর একটা অবজেক্ট তৈরি করে নিতে হবে । তারপর আপনি এর মাধ্যমে String , Integer , Double etc ইনপুট নিতে পারবেন ।
উদাহরন ঃ


Java :: Method Overloading and Method OverRidding

Method OverLoading :

Method Overloading জিনিস টা খুবই সহজ । আমরা প্রোগ্রামে যখন একটা ফাংশন লিখি তখন ঐ নামে আর কোন ফাংশন লিখা যায় না । কিন্তু Method Overloading আপনাকে এই সুবিধা টাও দিচ্ছে । Method OverLoading এর মাধ্যমে আপনি একাধিক ফাংশন লিখতে পারবেন একই নামে , কিন্তু তাদের Signature ( return type, parameter list ) হতে হবে আলাদা ।
নিচের কোডটি দেখুন । কোডে আমরা overLoading নামে একটা ফাংশন ই বিভিন্ন ফর্মে লিখেছি ।
কোনটার return type void , কোণটার int , কোণটার double , কোণটার String । একই ভাবে parameter list ও একটা থেকে আর একটা আলাদা ।

Java :: Abstract Class and Interface

Abstract class  হচ্ছে এমন ক্লাস যার কিছু Unimplemented methods থাকে ।
যেমন ঃ


উপরের ছবিতে দেখুন aMethod , bMethod এর কোন বডি নেই । এগুলো আমরা নিজেদের মত করে সাব

Java :: Inheritance

ধরুন আপনার একটা প্লেট আছে এবং আপনি চাইলেই যত খুশি এটার কপি করে সবাইকে দিতে পারেন ।
এখন আমার ও একটা প্লেট দরকার । যেহেতু আমি টাকা পয়সার সমস্যায় আছি :P আমি আর প্লেট কিনছি না , আপনার কাছ থেকে একটা কপি নিয়ে ব্যবহার করছি । এই যে আপনার একটা জিনিস আছে এবং আমি টা নিয়ে ব্যবহার করতেছি Object Oriented Programming এ এটাকেই বলে Inheritance । আমি যে আপনার প্লেট ব্যবহার করতেছি এটা হচ্ছে Inherit করা । এখানে আমি আপনাকে Inherit করতেছি । 
এখন ধরুন আমি আর আপনি আলাদা ২ টি ক্লাস আমার নাম sakib আর আপনার user ।
ব্যাপার টা তাহলে কোডে দেখি ।

Java : OOP র শুরু

একটা দুইটা কইরা ৪ ৪ টা সেমিস্টার শেষ হয়ে গেল । যাই হোক এই সেমিস্টারে আবার নতুন একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখতেছি " জাভা " :D ।

জাভা তে যা শিখতেছি তার কিছু শেয়ার করার চেষ্টা করব ।

জাভা একটা Object Oriented Programming Language ( OOP )  ।
এতদিন সি করেছি সেটা ছিল Structured Programming Language ( SPL ) ।

জাভা কে অবজেক্ট ওরিয়েন্টেড বলার কারন এখানে সব কিছু অবজেক্ট হিসেবে ভাবা হয় ।

STL :: Algorithm

প্রোগ্রামিং করার সময় প্রায়ই আমাদের ডাটা সর্ট করতে হয় , রিভার্স করতে হয় , সোয়াপ ইত্যাদি বের করতে হয় । আপনি চাইলে বিভিন্ন Algorithm ব্যবহার করে এসব কাজ করতে পারেন । কিন্তু এইসব কাজ করার জন্য C++ build in library আছে যা ব্যবহার করেই আপনি এই কাজ গুলো করতে পারেন ।

<algorithm> এর সম্পূর্ণ রেফারেন্স পাবেন এখানে ।

#include <algorithm>

এখানে algorithm এর বেশি ব্যবহার হয় এমন কিছু ফাংশন কিভাবে ব্যবহার করে তা দেখব ।

sort() :

ডাটা সর্ট করার জন্য এই ফাংশন । কোডে দেখি কিভাবে এটি ব্যবহার করে ডাটা সর্ট করতে হয় ।

Function in C/C++

অনেকদিন পর লিখতেছি । কিছু সমস্যার কারনে ইদানিং লিখা হয়ে ওঠে না ।
যাই হোক কাজের কথায় আসি । আজকের লিখার টপিক ফাংশন ।
আমরা ইতিমধে ্য main() function এর কথা শুনেছি । main function থেকেই সি/সি++ program এর execution শুরু হয় ।

int main(){
    return 0;
}