Wednesday, September 3, 2014

Algorithm and programming technique list

Mathematics:
  • Prime finding(sieve)
  • Prime factorization
  • GCD, LCM
  • Factorial
  • Fibonacci
  • Counting, Permutation, combination
  • Exponentiation
  • Modular Arithmetic
  • Euclid, Extended euclid
Data Structure:
  • Stack
  • Queue
  • Priority Queue
  • Linked list
  • Heap
  • Hash table
  • Disjoint Set, Union Find
  • Binary Search Tree
  • Trie, Suffix Array
  • Segmented Tree,Range minimum Query
  • Binary Indexed Tree(BIT)
  • Heavy light Decomposition
Sorting:
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Quick Sort
  • Merge Sort
  • Counting Sort
  • Radix Sort
  • Bucket Sort
  • Heap Sort
Searching:
  • Linear Search
  • Binary Search
  • Ternary Search
  • Map, HashMap
Dynamic Programming:
  • Rod Cutting
  • Maximum Sum (1D, 2D)
  • Coin Change
  • Longest Common Subsequence
  • Longest Increasing subsequence, Longest Decreasing Subsequence
  • Matrix Chain multiplication
  • Edit Distance
  • Knapsack problem, 0-1 Knapsack
  • Bitmask DP
  • Traveling Salesman problem
  • Digit DP
Greedy Algorithm:
  • Activity selection/Task scheduling problem
  • Huffman coding
Graph Theory:
  • Graph Representation(matrix, list/vector)
  • Breadth First Search(BFS)
  • Depth First Search(DFS)
  • Topological Sort
  • Strongly Connected Component(SCC)
  • Minimum Spanning Tree(kruskal, prim)
  • All pair's shortest path(Floyd Warshall)
  • Djkastra algorithm
  • Bellman Ford Algorithm
  • Directed Acyclic Graph
  • Bipartite Matching
  • Max-Flow, Min-cost max-flow
  • Cayley's Theorem
  • Articulation Point, Bridge
  • Euler tour/path
  • Hamiltonian Cycle
  • Stable Marriage problem
  • Chinese Postman problem
Number Theory:
  • Josephus Problem
  • Farey Sequence
  • Euler's phi
  • Catalan numbers
  • Burnside's lemma/circular permutation
  • Modular inverse
  • Probability
  • Chinese Remainder Theorem
  • Gaussian Elmination method
  • Dilworth's Theorem
  • Matrix Exponentiation
  • Determinant of a matrix
  • RSA public key crypto System
  • GCD 
  • LCM
  • Euler Totient
Computational Geometry:
  • Pick's Theorem
  • Convex hull
  • Line Intersection
  • Point in a polygon
  • Area of a polygon
  • Line Sweeping
  • Polygon intersection
  • Closest Pair
Game Theory:
  • Take Away game
  • Nim
  • Sprague-grundy Number
String:
  • Naive String matching 
  • Rabin karp Algo
  • Finite Automata
  • Knuth-Marris-Pratt Algo
  • Manacher's Algo
  • Aho korasick's Algo
  • Boyer-Moore algo
Others:
  • Recursion
  • C++ Standard Template Library(STL)
  • Backtracking
  • Hungarian Algorithm

Tuesday, September 2, 2014

ওয়ার্ডপ্রেসের প্রয়োজনীয় কিছু কোড ।

ওয়ার্ডপ্রেসে কাজ করার জন্য প্রয়োজনীয় কিছু কোড Freelancing Care - ফ্রিল্যান্সিং কেয়ার এর গিটহাব gist এ যুক্ত করে দেয়া আছে। কাজের সময় প্রয়োজন মতো যে কেউ কপি করে ব্যবহার করতে পারবেন।
https://gist.github.com/freelancingcare/81bf59e88c5428516b5a

চিন্তা কর !

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

* লিখেছেন - Jakir Hossain

কম্পিউটার সায়েন্সের স্টুডেন্টদের কোন কোন বিষয়ে দক্ষ হতে হবে ?

১। স্ট্রাকচার্ড প্রোগ্রামিং
২। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
৩। ডিসক্রিট ম্যাথমেটিকস
৪। ডাটা স্ট্রাকচার
৫। অ্যালগরিদম
৬। ডাটাবেজ
৭। কম্পিউটার আর্কিটেকচার
৮। ওয়েব প্রোগ্রামিং
৯। সফটওয়্যার ইঞ্জিনিয়ারিং
১০। সফটওয়্যার অ্যানালাইসিস ও ডিজাইন
১১। কম্পিউটার নেটওয়ার্কিং
১২। আর্টিফিশিয়াল ইন্টেলিজেন্স

মোটামুটি সব ভার্সিটিতেই এগুলো পড়ায়। এসব বিষয়ে ওস্তাদ হয়ে যেতে হবে।

*পরামর্শ দিয়েছেন- তামিম শাহরিয়ার সুবিন

Monday, September 1, 2014

বাসায় বসে ব্যবসা করার টিপস

আজকে সবাইকে বাসাতে বসে ব্যবসা করার টিপস দেই। সবাই চেষ্টা করেন, সফল অবশ্যই হবেন। বসে থেকে হতাশ হয়ে লাভ নেই। শুরু করে দিন আজকেই।
১। প্রথমে একটি ইকমার্স সাইট তৈরি করুন। সাইট তৈরি করতে এখন আর টাকা লাগেনা। অনেকেরই জানা নাই, ফেসবুকের অ্যাপস ব্যবহার করে ফ্রি ইকমার্স সাইট তৈরি করা যায়।
কিভাবে তৈরি করবেন, সেটির বিস্তারিত জানতে পোস্টটি পড়ুন।
http://genesisblogs.com/freelancing-2/8828
২। এবার এ সাইটটিকে প্রচার করুন। যত বেশি মানুষের কাছে প্রচার করতে পারবেন, তত বেশি আয়ের সম্ভাবনা বেড়ে যাবে।
প্রচার করার জন্য সোশ্যাল মিডিয়াগুলোকে ব্যবহার করুন। সোশ্যাল মিডিয়াগুলোকে ব্যবহার কিভাবে করবেন শিখার জন্য নিচের লিংকগুলোতে বিস্তারিত পাবেন।
১। ফেসবুকঃ http://genesisblogs.com/tutorial-2/638
২। টুইটারঃ ক) http://genesisblogs.com/tips-2/5384
খ) http://genesisblogs.com/tips-2/7649
৩। লিংকডিনঃ http://genesisblogs.com/tips-2/2667
৪। পিন্টারেস্টঃ http://genesisblogs.com/tips-2/3759
৫। রেডিটঃ http://genesisblogs.com/tips-2/7820
৬। সোশ্যাল মিডিয়া ক্যাম্পেইনে সফল না হওয়ার কারনঃ http://genesisblogs.com/tutorial-2/7446
৭। সফলভাবে সোশ্যাল মিডিয়া মার্কেটিংয়ের ২৬টি পরামর্শঃ
http://genesisblogs.com/tips-2/6385


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

Tuesday, March 25, 2014

Linux Ebook Collection

Ebook Linux:

Linux Forensics:


http://www.digitalforensics.ch/nikkel05b-4page.pdf

http://www.deer-run.com/~hal/IntroToDigitalForensics.pdf

http://ncfs.org/craiger.ifip.05.FINAL.pdf
http://www.uscyberpatriot.org/CP5/CP%20V%20Documents/CP_Forensics_Challenge_Information.pdf
http://www.cms.livjm.ac.uk/pgnet2009/Proceedings/Papers/2009001.pdf
https://forensicfocus.files.wordpress.com/2012/08/generating-computer-forensic-supertimelines-under-linux-a-comprehensive-guide-for-windows-based-disk-images1.pdf
http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6643000&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel7%2F6642226%2F6642914%2F06643000.pdf%3Farnumber%3D6643000

LFS:
http://www.linuxfromscratch.org/lfs/downloads/7.3/LFS-BOOK-7.3.pdf
FHS:
http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/Linux-Filesystem-Hierarchy.pdf
http://www.pathname.com/fhs/pub/fhs-2.3.pdf
http://www.usna.edu/EE/ec310/Resource/Linux_File_System.PDF
Linux Driver Programming
http://www.mulix.org/lectures/intro_to_linux_device_drivers/intro_linux_device_drivers.pdf
http://free-electrons.com/doc/books/ldd3.pdf
http://www.freescale.com/files/soft_dev_tools/doc/ref_manual/Linux%20Device%20Drivers.pdf
http://studenti.fisica.unifi.it/~carla/manuali/linux_device_driver_tutorial.pdf
http://www.plantation-productions.com/Webster/LinuxAsm/1_LDD.pdf
https://www.kernel.org/doc/ols/2002/ols2002-pages-545-555.pdf
http://mirror.isoc.org.il/pub/pub/august-penguin/ap2011/Mark%20Veltzer%20-%20Developing%20Linux%20drivers%20in%20C++.pdf
Instalasi Gentoo:
http://ronnybull.com/assets/docs/gentoo.pdf
http://scst.sourceforge.net/Gentoo-HOWTO.pdf
http://www.uwyn.com/resources/benefits_of_gentoo.pdf
http://tech.fradkin.com/gentoo/gentoo-linux-good-bad-ugly.pdf
http://blu.org/meetings/2003/10/gentoo_presentation.pdf
http://donik.org/wiki/images/2/20/MythTV_gentoo_HOWTO.pdf

Monday, March 17, 2014

স্মার্টফোন অ্যাপ ডেভলপমেন্ট করতে হলে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ জানতে হবে ?

মোবাইল অপারেটিং সিস্টেমের মধ্যে আইওএস, অ্যানড্রয়েড এবং উইন্ডোজ ফোনই বেশি জনপ্রিয়এগুলোর জন্য অ্যাপ তৈরি করতে লাগে ভিন্ন ধরনের 'প্রগ্রামিং ল্যাঙ্গুয়েজ'। 
যেমন:
1. আইওএসের জন্য 'অবজেক্ট সি', 
2. অ্যানড্রয়েডের জন্য 'জাভা' আর 
3. উইন্ডোজ ফোনের জন্য 'সি#' জানতে হবে।