Skip to content

Instantly share code, notes, and snippets.

View me-shaon's full-sized avatar
💭
Learning...

Ahmed shamim me-shaon

💭
Learning...
View GitHub Profile
@me-shaon
me-shaon / 0_1_knapsack.js
Created November 11, 2023 13:35
0/1 Knapsack (Javascript)
module.exports = {
//param A : array of integers
//param B : array of integers
//param C : integer
//return an integer
solve : function(A, B, C){
let n = A.length;
let maxValue = Array.from({length: C + 1}).fill(0);
for (let i=1; i<=n; i++) {
@me-shaon
me-shaon / longest_common_subsequence.js
Created November 11, 2023 13:34
Longest Common Subsequence (Javascript
module.exports = {
//param A : string
//param B : string
//return an integer
solve : function(A, B){
let rows = A.length, cols = B.length;
let lcs = Array.from({ length: rows + 1 }, () => Array.from({ length: cols + 1 }).fill(0));
for (let i=1;i<=rows;i++) {
for (let j=1;j<=cols;j++) {
@me-shaon
me-shaon / guessing_game.php
Created September 11, 2023 17:06
This is a simple CLI app to guess a number, written as a demo for my students
#! /usr/bin/env php
<?php
// Guessing game CLI app
$options = getopt('h::', ["min::", "max::"]);
if (isset($options['h'])) {
printf("This is a guessing game application");
} else {
$min = (int) ($options['min'] ?? 1);
<?php
// Problem 1
function reverse($x) {
$x = intval($x);
if ($x < 0) {
return false;
}
$reversedInt = 0;
@me-shaon
me-shaon / oh-my-zsh-setup.md
Last active January 12, 2020 10:33
oh-my-zsh setup and tweaking tips
@me-shaon
me-shaon / pipe.js
Last active June 6, 2018 09:01
A simple PIPE method implementation using ES6
const addOne = x => (x+1);
const addTwo = x => (x+2);
const addThree = x => (x+3);
const pipe = (...arr) => x => arr.reduce((res, curr) => curr(res), x);
console.log(pipe(addOne, addTwo, addThree)(2));
export default function createStore(reducer) {
// আমাদের currentState রাখার জন্য একটা ভ্যারিয়েবল লাগবে
let currentState = null;
// createStore এ যেই reducer টা পাঠানো হয়েছে সেটার রেফারেন্স
// রাখার জন্য একটা ভ্যারিয়েবল লাগবে
let mainReducer = reducer;
// subscribe মেথডে যেই ফাংশনটা পাঠানো হবে সেটার রেফারেন্স
// রাখার জন্য একটা ভ্যারিয়েবল লাগবে
let mainListener = null;
// রিডাক্স লাইব্রেরীটা থেকে আমরা শুধুমাত্র createSotre মেথডটা import করতেছি
import { createStore } from 'redux'
// এটাই হচ্ছে আমাদের Reducer ফাংশন যেটা আমরা Redux কে দিবো।
// এখানে আমরা বলে দিচ্ছি একটা state আর action দিলে পরবর্তীতে state টা চেঞ্জ
// হয়ে কি হবে। এই ফাংশনটা একটা pure function. কেন? কারণ এটাতে যেই
// প্যারামিটার গুলো দেয়া হয়, মূলত state টা, সে সরাসরি সেগুলোতে চেঞ্জ করে না,
// বরং নতুন একটা পরিবর্তিত ডাটা রিটার্ন করে। এটার কারণেই আসলে লগিং এর কাজটা
// ভালোভাবে করা যায়। যেহেতু প্রতিবার নতুন একটা state ডাটা রিটার্ন হয়, logger
// টুলস সেটাকে সেইভ করে রেখে দিতে পারে। নতুবা যদি মূল state এ চেইঞ্জ হতো
// তাহলে লগারকে আগের state এর রেফারেন্স রাখতে হতো আর লগ দেখানোর সময়

Keybase proof

I hereby claim:

  • I am me-shaon on github.
  • I am ahmed_shamim (https://keybase.io/ahmed_shamim) on keybase.
  • I have a public key whose fingerprint is E4BA 494C 935A D262 CED5 8F59 5453 B580 DC74 C2C1

To claim this, I am signing this object:

@me-shaon
me-shaon / js_hoisting_caveat.js
Created November 14, 2017 15:00
Javascript Hoisting caveat example for medium article
function hoist() {
console.log(a); //this will show 'undefined'
var a = 10;
}
hoist();