Wednesday, September 4, 2019

ہک گل پچھاں

ہک گل پچھاں' مارو گے تے نہیں؟
ایہہ تساں مارنا کس سکھایا جے؟ 

میرے دیس دے واسیوں! ہک گل پچھاں؟
"و بالمساکین إحسانا" کتھے جا بُھلایا جے؟

میرے دیس دے سپاہیوں! ہک گل پچھاں؟
تہاڈے ظلم دا پرچہ اس کتھے جا کٹایا جے؟

میرے دیس دے منصفوں! ہک گل پچھاں؟
تساں تَحْكُمُوا بِالْعَدْلِ کتھے جا پھیلایا جے؟

میری سرکار دے افسروں! ہک گل پچھاں؟
اپنڑی گردن اِڈا سریا کتھے جا پوایا جے؟

میرے دیس دے سیاسیوں! ہک گل پچھاں؟
ملک الله' حکم الله کتھے جا دفنایا جے؟

میرے دیس دی مقدس گائیوں! ہک گل پچھاں؟
 ایہہ اپنڑے آپ نوں خدا کتھے جا بنایا جے؟

میرے دیس دے لکھاریوں! ہک گل پچھاں؟
میری جِب وانگوں سچ کتھے جا دکھایا جے؟

میرے حسین دے ذاکروں! ہک گل پچھاں؟
اِس غریب دا ماتم  کتھے جا کرایا جے؟

(فیاض)

Sunday, April 14, 2019

Books are people too (ep. 4): Payam-e-Mashriq


This is another interview in the series "Books are people too!". This time, our guest is Huzoor Ahmed Saleem's Urdu translation of the Persian poetry book "Payam-e-Mashriq" (Message of the East) by Iqbal.


Who should I take as a guide in my life?

شعاع مہر او قلزم شگاف است
بہ ماہی دیدہ رہ ایں دہد عشق

شعاع مہر ہے دریا میں گویا
کہ ماہی  کو ہے چشم رہ بیں عشق

What is the role of mankind in this universe?

ہے ساز نغمہ ہائے عشق انساں
کرے افشاۓ راز اور خود ہے پنہاں
بنے وہ جہاں کو ' یہ سنوارے
ہے انساں کیا شریک کار یزداں؟

How can I improve my life?

دمادم نقش ہاے تازہ ریزد
بیک صورت  قرار زندگی نیست
اگر امروز تو تصویر دوش است
بخاک تو شرار زندگی نیست

بناتی ہے بہر لحظہ نۓ نقش
نہیں دائم قرار زندگانی
ہے تیرا آج اگر تصویر کل کی
نہیں تجھ میں شرار زندگانی

What is the objective of life?

مگو از مدعاۓ زندگانی
ترا بر شیوہ ہاۓ او نگہ نیست
من از ذوق سفر آں گونہ مستم
کہ منزل پیش من جز سنگ رہ نیست

بیاں کرتا ہے کیا تو مقصد زیست
نظر ایسی نہیں ہے تجھ تو حاصل
ہوں میں سرشار یوں ذوق سفر سے
کہ سنگ رہگزر ہے مجھ کو منزل

Aren't we bounded by fate?


نہ ہو پا بستہء زنجیر تقدیر
ہے جولاں گاہ زیرِ چرخِ گرداں
نہ آۓ گر یقیں تو کر کے ہمت
جھٹک زنجیر پا' پھر دیکھ میداں

How can we humans live in peace?

نہ افغانیم و نے ترک و تتاریم
چمن زادیم و از یک شا خساریم
تمیز تانگ و بو بر ما حرام است
کہ م پروردہ یک نو بہاریم

نہ افغاں ہیں ' نہ ہم ہیں ترک و تاتار
سبھی نکلے ہیں اک شاخ چمن سے
تمیز رنگ و بو ہم کو ہیں ممنوع
کہ پروردہ ہیں سب اک فصل گل کے

Why were we born?

ازل کی وسعتوں میں پرفشاں تھا
نہ تھا پابند میں اب اور گل کا
گراں قیمت ہوں میں تیری نظر میں
تبھی بازار ہستی میں تو لایا

Who are you?


If the world was created by Him, what did humans add?



Sometimes, life feels difficult. How does one deal with that?


پوچھا یہ ایک دن ایک صاحب دل سے' ہے کیا حیات؟
جتنی شراب تلخ ہو بہتر" دیا جواب"

What inspires you to explore the world and knowledge?
جو ملک بھی ہے میرے خدا کا' وہ ہے مرا 
ہر ملک ملک ماست کہ ملک خداۓ ماست

What is the worse thing a human can do to himself?

اپنی کج بینی سے آدم ہوا آدم کا غلام 
اپنے جوہر کو کیا اس نے نثار کے و جم 
گھٹ گیا کتے سے بھی خوۓ غلامی کے سبب 
سامنے کتے کے کتے نے کیا کب سر خم





Tuesday, February 19, 2019

Saving yourself from grief over loss of computation

Original post: Original post link


You are running a long simulation of about 30 days and the power fails on the 29th day (or something equally tragic happens!). How would you react? Enter the classic case of 5 stages of grief: Denial (Nooooo!!!!), Anger (*&(#^&*(#@%&!!!!), Bargaining (It must’ve produced some output!), Depression (I’m never gonna graduate!) and Acceptance (Well, let’s restart the simulation!).
But before you restart your simulation, hear me out!
I have had this issue many times and had been thinking about how to avoid this. Here are some of the solutions I came across:
  1. UPS: An Un-interrupted Power Supply can potentially save you from this… But how can I stop my simulation midway if the power is not back up before the UPS dies out?
  2. NVDIMM: This is another hardware solution which uses Non-volatile RAM (NVDIMM) which copies your RAM in a non-volatile memory and then restores it when the power comes back online. It is a developing technology but can be very useful. Read more about this here. However, if you don’t have deep pockets, this is, at this time, a volatile option!
  3. Manual checkpointing: Checkpointing is the art of saving a snapshot of the state of your software or simulation onto a hard-disk and then restoring it when you need to! You can do this easily if you are writing your own code: save all important variables into a file every so many minutes and then restore them from the file. However, manual checkpointing can be a pain so I began looking for automatic checkpointing aka Checkpoint-Restore solutions! An ideal (albeit extreme) scenario would be to be able to save the whole Operating System state and restore it as if nothing happened. Below are a few solutions towards that.
  4. Hypervisors: If you can tolerate the performance loss and other issues associated with using a virtual machine (virtual-box, VMware, etc.), you can use the hypervisor’s “snapshot” mechanisms to store and then restore the state of your system. Read more about this here.
  5. Docker: Docker is essentially a native hypervisor, i.e., it does not have the overhead of a virtual machine because the processes do not run in a guest operating system but in the host OS from within docker. Docker is excellent — for installation, distribution and also for checkpointing. The idea here is to make a docker box of your simulation software and then use the underlying checkpoint and restore technology to restore the software after a failure. Read more about this here. However, this entails a significant additional overhead in making the docker container.
  6. CRIU: CRIU (pron. Kree-oo) stands for Checkpoint and Restore in User Space. With CRIU “you can freeze a running application (or part of it) and checkpoint it as a collection of files on disk. You can then use the files to restore the application and run it exactly as it was during the time of the freeze. With this feature, application live migration, snapshots, remote debugging, and many other things are possible.” Here is a complete list of usage scenarios. CRIU supports checkcpointing with docker as well. This is my second favorite tool for this purpose!
  7. DMTCP: This is my favorite solution — it allows you to create checkpoints and restore them in a very easy manner. It comes with Linux (or you can sudo apt-get install dmtcp). However, I would recommend the following process to install it: Download the DMTCP package in your Linux distribution as a .zip file and then extract it to a folder of your choice. After that go into the folder and execute “./configure” and “./make install” and that’s it! After installation you are ready to use it: For a demo, go to the contrib/python folder within your dmtcp folder with your terminal and execute “dmtcp_launch python hookexample.py” to start an example process. This will create a dmtcp checkpoint as well as a script that allows you to restore the process as and when required using ./dmtcp_restart_script.sh. This video also explains the process in more detail. These checkpoints also allow for great debugging by saving the state of your software.
8. Ruffus
Ruffus is a library for python that allows you to setup and execute a computational pipeline composed of multiple steps in which the output of one step becomes the input of the next. It also supports pretty easy checkpointing.
9. EdiblePickle
EdiblePickle also allows checpointing. Here is a simple example.
import string
import time
from ediblepickle import checkpoint

# A checkpointed expensive function
@checkpoint(key=string.Template('m{0}_n{1}_${iterations}_$stride.csv'), work_dir='/tmp/intermediate_results', refresh=True)
def expensive_computation(m, n, iterations=4, stride=1):
    for i in range(iterations):
        time.sleep(1)
    return range(m, n, stride)

# First call, evaluates the function and saves the results
begin = time.time()
expensive_computation(-100, 200, iterations=4, stride=2)
time_taken = time.time() - begin

print time_taken

# Second call, since the checkpoint exists, the result is loaded from that file and returned.
begin = time.time()
expensive_computation(-100, 200, iterations=4, stride=2)
time_taken = time.time() - begin

print time_taken

Follow it here: https://medium.com/@fayyazafsar/saving-yourself-from-grief-over-loss-of-computation-688819d85389

Sunday, January 20, 2019

Books are people Too (Ep. 3): Advice to a young scientist by P.B. Medawar

In the third episode of our "Books are people too" interview series, we have, as our guest, an extremely useful book for our young scientists and researchers. The name of the book is: "Advice to a young scientist". It was written by Sir Peter Medawar, a British scientist, who is regarded as the father of transplantation because of his work on organ and tissue transplants. Dr. Medawar was awarded a Nobel prize in 1960 for his ground-breaking work in the field. Advice to a young scientist (AYS) was written in 1979 and it has aged extremely gracefully to almost a wise sage or an oracle one should consult every so often.


FM: Welcome to our interview series. If you ask a kid to tell you what a scientist his, he or she would immediately respond with someone in a white coat blowing away stuff. Is that what you think as well?

AYS: Haha, not just a kid but most people in the society would associate a similar image with a scientist in their mind. However, I feel that we must always realize that scientists are people too! They are affected by the same nobilities and vices as any one else. The term "scientist" was coined in 1844 to describe someone who works in science.

FM: And how would you define science?

AYS: To me, science is nothing more than an exploratory activity whose purpose is to come to a better understanding of the natural world. And this activity is called research! However, there are other science based or scientific activites in addition to research as well such as scientific administration, scientific journalism, teaching science, scientific advisory, supervision, industrial process management,  etc.

FM: So, according to you, anyone engaged in research is a scientist, No?

AYS: Yes! And we must never forget that there may be many practitioners of science and the scientific method who may not be officially labeled as scientists but are doing good quality science, for example, a pool cleaner who checks the hydrogen ion concentration of the water, keeps an eye on the bacterial and fungal flora and studies their effects on humans!

FM: So instead of asking what qualifies for good science, let me ask you what makes a "bad" scientist?

AYS: It is pretty simple, just like any other profession, if you are into science for the wrong reasons you will be terrible at it!

FM: What is or are the right reason(s) to get into science: curiosity, love of details, finicking?

AYS: Ummm... I think it is more than that. Good scientists I have seen have a sort of an exploratory impulsion or a restless endeavor to get to the truth of things! They feel uneasy if they can't understand or explain something they see and can't stop themselves getting to the heart of it!

FM: How can one find out if one is made to be a scientist?

AYS: I think the existence of inbuilt tendencies to be a scientist are over-glorified! Don't get me wrong -- they are important but skills required for science can be and must be learned as well. If someone thinks that their thinking can make them a good scientist without learning the skills required for doing science and experiments, they are, in my opinion, not made for science. Manual work such as doing experiments or, more directly, programming in your case should never be considered "below" science as these also help you think and be a better scientist! If someone thinks that being a scientist entails having lesser mortals such as graduate students fulfill his or her whims, they wouldn't typically make good scientists. The novice who tries his hand at research and finds himself indifferent to or bored by it should leave science without any sense of self-reproach or misdirection.

FM: So how can a young scientist pick a field or research topic?

AYS: It is pretty simple to say but maybe a little difficult to follow: if you want to make important discoveries, you must study important problems. Dull or piffling problems yield dull or piffling answers. By important problems, I mean to refer to problems whose answers would matter even if your work is not necessarily fashionable or sexy. It is perfectly okay to fall in line with a larger field of research, for example, molecular genetics or cellular immunology or machine learning but it is not advisable to fall in with a prevailing fashion for a new histochemical procedure or a new classification approach and just stick to it!

FM: What is your opinion about Ph.D. programs?

AYS: Human life can continue without a Ph.D. However, a Ph.D. is a license or passport for immigrating into any academic institution and it does have its merits. But it is important for a student to think why one wants to go for a Ph.D., what they want to work on, who they want their mentor to be and what would he do after a Ph.D. One of the major consequences of modern Ph.D. programs is that once one gets into a Ph.D. program, one is then expected to continue in a scientific or academic career because one doesn't know anything else to do! Therefore, it is imperative to really think hard before committing to such a career choice. After a Ph.D., a scientist must not continue working in the same direction for the rest of his life and should be willing to explore different things before settling on something they truly like.

FM: And about post-doctoral research?

AYS: Oh yeah! I feel that post-doctoral research is very important as it gives a budding scientist a chance to work on something they want to do, possibly in a different or related field, after having gone through their doctorate degree. As a consequence, post-docs are typically more motivated and make better researchers.

FM: Better than a thousand days of diligent study is one day with a great teacher. How can a scientist pick a mentor or a Ph.D. advisor?

AYS: The easiest, and not necessarily recommended, way is to pick the closest person at hand: the head or senior faculty in the department from which you graduated who may be looking for a disciple or an extra pair of hands. However, if a student understands or is proud of the work being done in the department then it is perfectly okay to do so but after much deliberation. The best way these days is to simply explore different scientists working in the field that a student likes and try to work with them! Don't just work somewhere without aligning your chosen field of research with what goes on there!

FM: How much should a scientist read to be successful?

AYS: I feel that most young scientists give too much emphasis on equipping oneself. They focus too much on reading the latest work and trying to know each and every new technique that is published to satisfy their sense of "being equipped to do great research". However, there is practically no limit to it. Too much reading also has psychological consequences and can be a hurdle to conducting actual or original research. It is like reading romantic novels all the time instead of trying to actually trying to talk to the girl sitting next to you! By far the best way to become proficient in research is to get on with it -- pick an important problem and work passionately in the pursuit of finding answers to it. I recommend to NOT learn new skills or mastering new disciplines until the pressure is upon to do so in this pursuit of finding answers; thereupon they can be mastered pretty quickly as there is plenty of motivation at hand. However, I must also say that reconstructing someone else's work or understanding a paper is important for two reasons: it helps you identify new and interesting problems or short-comings and it gives you confidence. Do it but don't over-do it!

FM: You refer to the art of research as "art of the soluble". What does that mean?

AYS: The art of research is that of making a problem "soluble" by finding out ways of getting at it -- how to easily attack a problem. One easy way I have found of attacking tough problems is to begin by quantifying things related to the problem such as how strong is the reaction of a patient to a transplanted tissue? Or, in your case of working on neural networks, how important is a particular neuron in a neural network? Typically, if you can quantify an effect you can make the problem soluble.

(to be cont'd)

Sunday, January 13, 2019

Interviews with books Ep. 2: Humzad da Dukh by Tariq Aziz

Books are people too: Interviews with books


Welcome to the second episode of interviews with books with Fayyaz. The objective of this series is to interview a book as a person after reading it. In this episode, we shall interview "Humzad da dukh" by Tariq Aziz. It is a punjabi poetry book written and is one of my favorites. The interview will be in Punjabi.



ایہہ تہاڈے ہمزاد دا دکھ ہے کی ؟



آپنے دکھی ہمزاد توں علاوہ تے تسی مینوں بہوں کلے لگے او' ایس دی کی وجہ اے ؟


کسی دے نہ ملن دی کی وجہ بنی ؟


کوئی تے اچھا لگیا ہوۓ گا، اوھدی کوئی نشانی تے دسو ؟


اوس فرزانہ دی یاد آندی اے تے کی کردے او؟ کوئی دعا؟


ہک دوجے توں دور' ہویا کی سی ؟


اوس دے نال گزری کوئی خاص یاد؟


خیر' تہانوں سب توں زیادہ پیار کس کولوں ملیا؟


تسی اپنے ملک دے بارے اچ کی سوچدے او؟


اپنے دیس لئی کی خواہش اے؟



بچے وی تہاڈی گلاں سندے پیۓ نے' انہاں دے واسطے کوئی پیغام؟



تے وڈیاں لئ؟



آپنے تے میرے واسطے کوئی خواہش یا دعا؟





Saturday, January 12, 2019

Book interviews: Thinking like a freak

Books are people too: Interviews with books

"Thinking like a freak!" by Levitt and Dubner





The objective of this series is to interview a book as a person after reading it. In this episode, we shall interview "Think Like a Freak" by Levitt and Dubner who had previously authored the famous "Freakonomics" and "Superfreakonomics" books. The book starts off with "The authors of Freakonomics" offer to retrain your brain" right on the front cover. So we start off with this as a question.

Interviewer (Fayyaz Minhas, FM): Thank you for your time for this interview. Let me get straight to the point. What does it mean to think like a freak?

(Think Like a Freak, TLAF): Thank you for the opportunity for the interview. However, I had anticipated this question and have a well-prepared answer for this. I would first like to emphasize the fact that very few people think or, in the words of George Bernard Shaw "Few people think more than two or three times a year!". My catchy name is to encourage people to think first and then as a freak. Its simply to encourage people to take a break from their screens and sit in a corner and do nothing but happily think! Now about thinking like a freak --- In my opinion, a freak is someone who is an eccentric, an original thinker, who goes in depth of the obvious and the not-so-obvious in his analysis. Such a person, like children, is not afraid of being judged at asking "stupid" questions, challenging the status quo, thinking small instead of big, quitting, failing, or simply admitting "I don't know!".

FM: Great! So, how can we start thinking like one?

TLAF: By realizing that we don't know everything! As children, we don't have such mental biases that prevent us from asking simple questions but as we grow up, we stop taking the smiles people get at our questions as mere smiles and consider them as smirk criticism. This, and the mockery of school tests in which we are graded over not thinking but knowing, kill the little freak in us. We must keep that freaky child alive in all of us or give it a rebirth. We must also realize that we mostly think of ourselves to be better than we actually are. Remember how a large majority of people in a survey label themselves to be above average. It's easy to start thinking this way if we know we need improvement and are motivated to follow up on this! Also, instead of thinking Big all the time, think about small things or basic or fundamental things as it would lead you to big answers!

FM: How?

TLAF: I don't know what would work for each one of us in that regard but one of the ways that might be done is ask yourself "What is your problem?" and get to the root of the problem. As I said in the text, "Like a bad dye job, the truth is in the roots!". However, this may require a lot of digging around until you get what you want. It also requires you to know if you are asking the right question and if you really want to find the answer. My coin trick can work that you can use to judge if you really want something or not by tossing a coin and then knowing whether you would wish it were heads or tails!

FM: You keep saying that children are ideal thinkers, but the problems they have are pretty small in comparison to what we experience as adults. So how can we "scale up"?

TLAF: I mean to say that we can learn a lot from children but it requires us to let go of our thinking of ourseleves as smarter than children. Children typically get what they want and don't give up easy. This means there is something to learn from them. Kids don't buy into dogma and don't typically think about pleasing everyone around. They are curious otherwise who-without-a-freaky-mind would want to put their tiny pinky into an electric socket? Another great thing about kids is that they don't overthink. Ever seen a kid think about the futility of having to climb back onto a slide just to come down again?

FM: Okay, I get it. You have also talked about how to work with people. What tips would you like to give in this regard?

TLAF: The first thing we need to realize is that we can never be alone. Solitude is needed and mandatory for the survival of the soul and the inner freak. However, for the most part of our lives, we must interact with other people. The biggest idea I have come up with is that people like incentives, to feel in control (note that I didn't say that they like "being" in control), be appreciated and be productive. To work well with people you need to figure out what people really care about and this may be different from what they say they care about and then incentivize them on the aspects that are precious to them but easy for you to provide.

FM: How have been so successful?

TLAF: Haha, thanks for the compliment. It's easy if you keep you "weed out" unwanted stuff from both within you and around you to focus on what you like. As "The Subtle art of not giving a f*ck" says, there will always be problems, you just need to pick the ones you like and work with them! Also, once you accept an early failure and be happy about it, you can keep going on without hurting yourself too bad and it will ultimately lead you on to good times!

FM: You are pretty persuasive in your approach of writing and convincing people who may hold opposing views. There must be a strategy behind it, no?

TLAF: So I feel that it is easy to persuade someone if this is actually what you want to do. If you start calling names to people then, may be, you just wanted them to feel bad about themselves and not convince them. People tend to react more strongly to negative criticism than positive statements. In the human psyche, "Bad is larger than good". Also, having a disagreement with someone does not mean that what they are saying is wrong. One must acknowledge the valid points in their arguments. And the best of all: To convince people, try telling them stories instead of giving rules or anecdotes! Make the argument interesting to them!

FM: Cool! Actually, that is what inspired me to start this book interview series. I felt if I were to review this book it would be pretty dry and I may not be able to persuade a lot of people to read my boring reviews but this seems like a better approach and might work. I am also thinking of starting a story series for my teaching as well. So thank you for that idea. And thank you for your time as well.

TLAF: Thank you! Do read "Think like a freak!" again after a while but in the meanwhile and more importantly "Keep thinking like one!".

Sunday, November 11, 2018

Poem by Ehsan Akbar

اک منزل پچھلے چاند کی
نت روشن جس کی لو
وہ وقت کو پیچھے چھوڑ گئی
اسے دھنّے واد کہو
دابی ہوئی پور کماد کی
جو پھوٹی مگھر پوہ
کتنوں کو یہی اک چاہ تھی
وہ صرف مخاطب ہو
اے روپ جمال وصال کے
ترا کون سا ہے شبھ ناؤں
وہ جن میں تیرے لوگ تھے
کن گھاٹوں اترے گاؤں
کن صدیوں پر تری چھاؤنی
کن نسلوں پر تری چھاؤں
کہہ کتنی نرم دہائیاں
ترا دیکھتے گذریں روپ
کن پلکوں میں تری چھاؤں تھی
کن چہروں پر تری دھوپ
تری نظر نیازیں بانٹتی
بھکشا میں روپ سروپ
تو کس سرما کی چاندنی
گرما کی شکر دوپہر
تو صبح میں سویا بالکا
تو گاؤں میں پچھلا پہر
ست رنگا خواب فقیر کا
یا بھید بھری دوپہر
اک پوری نیند کی شانتی
تری کجلے والی لہر
اے سنبھلے جسم کی نازنیں
کئی عمریں تجھ پر تنگ
تو شبد قدیم کتاب سے
اظہار سے جس کی جنگ
تو ذات حیات کے ساتھ کی
کیوں نکلی غیر کے سنگ؟
تو سینوں بیچ پدھارتی
کیوں تو نے اوڑھے رنگ
میں شاعر پچھلے جنم کا
تو میری پرانی منگ
اب جیون اوڑھ کے آئی تو
سہہ تنہائی کے ڈھنگ