Sanjir Habib's Micro Blog

On regexp

/.*/ matching is unwanted as it will match more than what you want.

Rather go for /.*?/. As this matches the minimal string that needs matching which is what most of us want.

Note the question sign after the star. The difference is made by it.

Mandelbrot Set - in 3D.

প্রসংগ : "মামুনুল কান্ড"

শিক্ষা : মডার্ন আধুনিক মেয়েরা আপনার জন্য ফিতনা না।

ফিতনা হলো অসহায় দুর্বল মেয়েরা।

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

অতি দুর্বলকে সাহায্য করতে চাইলে বরং তার যে অভিবাবক আছে তাকে সাহায্য করুন। তার স্বামি, বাবা, দাদা বা বড় ছেলে, পরিবারে যে কর্তা। আর তারাই যদি অত্যাচারি হয় তবে এখানে কিছু করার নেই। চলে আসুন। যে আপনার জিম্মায় নেই তার থেকে সিমপেথি এরাইজিং কথাবার্তা বেশি শুনলে আপনি ফিতনায় পড়ে যাবেন।

News Quote : মামুনুল হক দ্বিতীয় স্ত্রী দাবি করলেও মামলায় জান্নাত নিজেকে মামুনুল হকের স্ত্রী বলেননি। তিনি বলেছেন, ‘বিয়ের প্রলোভন ও অসহায়ত্বের সুযোগ নিয়ে মামুনুল হক আমার সঙ্গে সম্পর্ক করেছেন। কিন্তু বিয়ের কথা বললে মামুনুল করছি, করব বলে সময়ক্ষেপণ করতে থাকেন। ২০১৮ সাল থেকে ঘোরাঘুরির কথা বলে মামুনুল বিভিন্ন হোটেল, রিসোর্টে আমাকে নিয়ে যান।’

মামুনুলের সঙ্গে পরিচয় প্রসঙ্গে জান্নাত বলেন, ‘২০০৫ সালে তাঁর স্বামী মাওলানা শহীদুল ইসলামের মাধ্যমে মামুনুল হকের সঙ্গে পরিচয় হয়। স্বামীর বন্ধু হওয়ায় আমাদের বাড়িতে মামুনুলের অবাধ যাতায়াত ছিল।

মামুনুলের সঙ্গে পরিচয়ের আগে আমরা সুখে-শান্তিতে বসবাস করছিলাম। আমাদের স্বামী-স্ত্রীর মতানৈক্যের মধ্যে প্রবেশ করে মামুনুল হক শহীদুল ও আমার মধ্যে দূরত্ব তৈরি করতে থাকেন। মামুনুলের কারণে আমাদের দাম্পত্য জীবন চরমভাবে বিষিয়ে ওঠে। সাংসারিক এই টানাপোড়েনে একপর্যায়ে মামনুলের পরামর্শে বিবাহবিচ্ছেদ হয়।’

অভিযোগে জান্নাত বলেন, ‘বিচ্ছেদের পর তিনি সামাজিক, অর্থনৈতিক ও পারিবারিকভাবে অসহায় হয়ে পড়েন। এ সময় মামুনুল আমাকে খুলনা থেকে ঢাকায় আসার জন্য বলেন। আমি ঢাকায় চলে আসি। মামুনুল আমাকে তাঁর অনুসারীদের বাসায় রাখেন। সেখানে নানাভাবে আমাকে প্রস্তাব দেন। একপর্যায়ে পারিপার্শ্বিক অবস্থার কারণে তাঁর প্রলোভনে পা দিই। এরপর তিনি উত্তর ধানমন্ডির নর্থ সার্কুলার রোডের একটি বাসায় আমাকে সাবলেট রাখেন। একটি বিউটি পারলারে কাজের ব্যবস্থা করে দেন। ঢাকায় থাকার খরচ মামুনুলই দিচ্ছিলেন।’

জান্নাত আরা ঝর্ণা অভিযোগে বলেন, ‘৩রা এপ্রিল সোনারগাঁয়ের রয়্যাল রিসোর্টে ঘোরাঘুরির কথা বলে মামুনুল হক নিয়ে যান। সেখানে অবস্থানকালে কিছু মানুষ আমাদের আটক করে ফেলে। পরে মামুনুল হকের অনুসারীরা রিসোর্টে হামলা করে আমাদের নিয়ে যায়। কিন্তু মামুনুল আমাকে নিজের বাসায় ফিরতে না দিয়ে পরিচিত একজনের বাসায় অবৈধভাবে আটকে রাখেন। কারও সঙ্গে যোগাযোগও করতে দেননি।

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

All of the planets fit between Earth and Moon

Image above. This one seems like another Bodes Law. These things happen, surprisingly... without good scientific explanation.

How to get rid of all your followers on Facebook

HOWTO : Get rid of all your Facebook followers

Why?


Thought that getting 10s of thousands of followers on Facebook was cool? Until you reached half the way and realized that it's the most useless thing in the world?

Here's how to get rid of all your followers and regain hold on your facebook id.

It's not as simple as clicking one button


Note again that we aren't talking about you un following someone else. Rather it's about forcing all your followers to unfollow you.

What doesn't work
- Restricting or turning off your "Follow" option. Won't work. Won't make your already followers unfollow you. Tried that, fails.
- Deactivating your account and reactivating : And you will discover all your followers are still with you after reactivation. Nothing changed.

What works


Blocking a follower and then unblocking him.

That will make his id unfollow you without any side effect. But unless you want to spend a year tapping on every single follower from your list for blocking him once and then unblocking him -- you won't want to do it manually. Specially when you already have thousands of followers. What a mess.

Automation helps in these cases.

Automating the process : The Challenges


- Logging into facebook from your script.
- Parsing and extracting the URLs you care about.
- Not to exceed FB's call limit and to annoy him and wake the giant.

Logging into facebook


Log into facebook from mbasic.facebook.com which is lighter weight than the regular web page.

In chrome open the developer tools from Menu - More Tools - Developer Tools, or press Shift-Ctrl-I. Click on "Network".

Click on the page where you want to click and then watch the API calls showing off on the Developer Tools. Right click on the request you find interesting and the select Copy - Copy as cURL.

You will find a cURL command readily copied into your clipboard that will mimic exactly that call when run from terminal. With all the cookies and browser identity.

Example :


curl 'https://mbasic.facebook.com/example?v=followers&lst=552028175%3A552028175%3A1619628724&refid=17' \
-H 'authority: mbasic.facebook.com' \
-H 'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"' \
-H 'sec-ch-ua-mobile: ?1' \
-H 'upgrade-insecure-requests: 1' \
-H 'dnt: 1' \
-H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36' \
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
-H 'sec-fetch-site: same-origin' \
-H 'sec-fetch-mode: navigate' \
-H 'sec-fetch-user: ?1' \
-H 'sec-fetch-dest: document' \
-H 'referer: https://mbasic.facebook.com/example?refid=8' \
-H 'accept-language: en-US,en;q=0.9,bn;q=0.8,ar;q=0.7,pt;q=0.6' \
-H 'cookie: sb=example; _fbp=example; datr=-ZBsYBgM8725ieW5bMu4gDTA; c_user=example; wd=1280x719; spin=r.1003698545_b.trunk_t.1619600502_s.1_v.2_; presence=AAcUp-f2WTegvayyOaaQrwpQnssgEePfwHI7uKPCHBp99; fr=1BgiZI7.d0.AAA.0.0.BgiZI7.AWV5jKyxuwo; dpr=2' \
--compressed

Managing cookie


Watch the cookie in the request? This might change over time and call. Here's how to manage the cookies.

Get Chrome's "Get Cookies.txt" extension from here.

Install it and it will show for any site "Download all cookies for this site as cookies.txt file". Click on the button and a cookies.txt file will get saved onto your "~/Downloads" folder.

Use that file as your cookie jar in curl calls. Remove the line in curl call "-H 'Cookie..." and instead add these two lines.


curl ...
-b fbcookie.txt \
-c fbcookie.txt \

Periodically update this cookie.txt file if login fails.

Extracting URLs


Use XPath for it. There isn't a linux XPath tool readily available that I know of, but you can write one easily. As in the following one written in PHP

#!/usr/bin/env php
<?
if($argc<2){
print "Usage: xpath <expression>\n";
exit(0);
}
$dom=new DOMDocument();
@$dom->loadHTML(file_get_contents($argc >= 3 ? $argv[2] : "php://stdin"));
$xp=new DOMXpath($dom);
$xp->preserveWhiteSpace=false;
$ret=$xp->query($argv[1]);
foreach($ret as $v){
$val='';
if(isset($v->value)) $val=$v->value;
else $val=$v->data;
print trim(preg_replace("/[ \t\n\r]+/"," ",$val))."\n";
}

And then use it to extract all links in a downlaoded HTML page like this


cat file.html | xpath //a/@href

Will print all the links found in the file. Parse the lines and extract the ones you need.

Last : Rate Limit


Blocking and then Ublocking 80 pesons/day seems like safe. Run on over 1000 ids in 24 hours and your id will get restricted for 24 hours. Rather put your script in a cronjob running every hour or two over small batches. That should do it.

"মেহমানের" স্বপ্ন: কাজী ইব্রাহীম


যে ভিডিওর প্রসংগে নিচের পোষ্ট বলছি, সেই ভিডিওটা প্লে হবে নিচে ক্লিক করলে। স্কিপ করে ঐ পয়েন্ট থেকে প্লে হবে নিজে নিজে। এই ওয়াজটা ২০২০ সালের মার্চের ভিডিও। এখন থেকে ১ বছর আগের। মানে আমার এই পোষ্টেরও এক বছর আগের।

https://www.youtube.com/watch?v=dELq-vStR1g&t=1440s

ব্যাসিক্যালি কাজী সাহেব বলছেন, উনার স্বপ্ন গ্রুপ একটা জরুরি স্বপ্ন দেখে স্বপ্ন দেখে বলছেন :

বাংলাদেশে মেহমান


স্বপ্নে বলছে : "সরকারকে বলো বাংলাদেশে মেহমান আসলে সরকার যেন বাংলাদেশের আলেম "বক্তা" গ্রুপের [মানে ওয়ায়েজদের] সাথে পরামর্শ করে নেয়। মেহমান আসবে নাকি আসবে না। আলেমরা যা বলে সে মতে যেন অনুমতি দেয়। তাতে সরকারেরই উপরকার হবে।"

ওয়ায়েজদের জন্য কথা


স্বপ্নে আরো বলেছে, আর আলেমদেরকে বলো : "তারা যেন মাঠে বেশি চিল্লা পাল্লা না করে। কারন চিল্লা পাল্লা করে কিছ করতে পারবে না। বরং শেষ রাতে উঠে তাহাজ্জুদ পড়ে দোয়া করে। এটা বেশি করে করে।"

এর পর "মেহমান" আসলেন


২০২০ সালে এই কথা বলার একবছর পরে। ২০২১ সালের মার্চ মাসে। দেশে এক মেহমান মানে মোদি জি আসলেন। সরকার "বক্তা গ্রুপের" সাথে পারামর্শ করলো না। এর পর যা হবার হচ্ছে।

শর্ত পূর্ন হয় নি। এর পর কি?

CNN Covers India's situation.

AJAX in plain Javascript, without jQuery

Here's the simplest code. You won't find it elsewhere.
function ajax_get(url,callback){
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == XMLHttpRequest.DONE) {
			if (xmlhttp.status == 200) return callback('ok',xmlhttp.responseText);
			else return callback('error',xmlhttp.responseText);
		}
	};
	xmlhttp.open("GET", url, true);
	xmlhttp.send();
}
To call it...
ajax_get('my/url/?param=val',function(result,data){
	if(result=='error') { /*error handler*/ }
	/* process data */
})

Iraq Covid hospital blaze

80+ killed.

Nancy Sepration


And I thought she was the only singer from the generation with a "class".

Anyway. Keep watching.

মানবজমিন - 25-Apr-2021 11:16 pm

'আমি এবং জায়েদ দীর্ঘদিন ধরেই আলাদা থাকছি'

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

না ডুবাই, না ভাসাই
না ভাসাই, না ডুবাই
-- ন্যান্সি।

Death of UML


Apparently I wasn't only me that rejected it.

Ernesto Garbarino - 26-Apr-2021 1:28 pm

Has UML died without anyone noticing?

Stuck with Sparx Systems Enterprise Architect? Time to upgrade to Microsoft PowerPoint.

And at the end of it, efficiency wins. The Pointy-haired Boss can demand official things, but the kid at home, working far more efficiently than his team will win.