Kiran Chauhan

Cogito, ergo sum // I think, therefore I am.

मन की चंचलता दूर करने का उपाय

तैलंग स्वामीसे प्रभावित होकर नेपालनरेश उनके पास सत्संग के लिए आए, उसके कुछ अंश - 

गणपति(तैलंग) स्वामी का आकर्षण पुनः तीसरे दिन (नेपाल)नरेश को उनके यहाँ खींच लाया । नरेश के बैठते ही गणपति स्वामी ने कहा- "राजन्, बहुत चंचल दिखाई दे रहे हैं । मन की चंचलता दूर करने के लिए प्रातः और सायं आधा घण्टा स्थिर होकर निश्चिन्त भाव से बैठना पड़ेगा । कुछ दिनों तक यह अभ्यास करते रहोगे तो मन में स्थिरता उत्पन्न होगी । इसके बाद धीरे-धीरे समय बढ़ाते जाना । मन के स्थिर हो जाने पर एक प्रकार का आनन्द अनुभव करोगे ।" 

~ योगिराज तैलंगस्वामी पुस्तक, विश्वााथ मुखर्जी द्वारा लिखित  

યુધિષ્ઠિરના લોહીનું રહસ્ય

સોનાના પાત્રમાં પાણી લઈને આવી પહોંચેલી સૈરંધ્રી(દ્રૌપદી)એ કંક(યુધિષ્ઠિર)ની વાત સાંભળી હતી. બૃહન્નલા(અર્જુન)ને રોકવાનું કારણ પણ એ સમજી ગઈ. એને ખબર હતી કે અર્જુનનો એ નિયમ હતો કે ‘યુદ્ધભૂમિ સિવાય મોટાભાઈને જે કોઈ માણસ ઘા કરે યા લોહી કાઢે એને પોતે કદી સહી શકશે નહિ- તત્કાલ એનો જીવ લીધે જ છૂટકો કરશે.' તો અત્યારે તો યુધિષ્ઠિરનું અડધું મોં લોહીથી ખરડાયેલું હતું!

કંકે ખોબામાં લોહી ઝીલી લીધું એનું કારણ પણ દ્રૌપદી જાણતી હતી : વિના કસૂરે યુધિષ્ઠિરનું લોહી કાઢવામાં આવ્યું હોય ને એ લોહી જો પૃથ્વી ઉપર પડે તો કસૂરવાન માણસનું ધનોતપનોત નીકળી જાય એ નિશ્ચિત હતું!

~ પાર્થને કહો ચડાવે બાણ - 4માંથી, પન્નાલાલ પટેલ

Structure in C

Consider the following code snippet.

struct foo {
    int bar;
    char baz;
};

This code snippet creates a foo structure that has two members bar and baz of type int and char respectively. Using structure, you can combine the data of multiple types under single variable.

Now, I can create a variable of this foo structure type as follows.

struct foo f;

Or I can create as many variables as I want.

struct foo f1;
struct foo f2;
struct foo f3;

// OR

struct foo f1, f2, f3;

This concludes the syntax of structure in C. Now, we are going to talk about the other related to structure concepts and then do composition to use separate concepts of C and programming in general together.

1. Initialize

It is recommended that when you create a structure variable, initialize it with 0 value.

struct foo f = { 0 };

Yes, you don't have to write 0 value for each member of the structure. Just write single 0 and rest will be taken care by the compiler. In this way, you're making sure that your variable is properly initialized and doesn't have any garbage value.

Or if you have, initialize the variable with initial values in sequence.

struct foo f = { 1, 'A' };

The sequence matters. Else write the name by prefixing dot (.) and then assign the value to the member of structure.

struct foo f = {
    .baz = 'A',
    .bar = 1
};

2. Get & Set

To access the member of the structure (get) and modifies (set) them, dot (.) operator is used.

struct foo f;

// set
f.bar = 1;
f.baz = 'A';

// get
printf("%d %c\n", f.bar, f.baz);

3. string as structure member

This is how we can define string as structure member.

struct foo {
    int bar;
    char baz[20];
};

But, we can not assign the value to this string member using dot(.) operator.

struct foo f;

f.bar = 1;

// ERROR
f.baz = "hello, world";

We need to use strcpy() function from string.h header file to assign the string value to the string member of the structure.

struct foo f;

f.bar = 1;
strcpy(f.baz, "hello, world");

Interesting enough, if we have initial value, we can assign directly without use of strcpy() function.

struct foo f = { 1, "hello, world" };

// OR

struct foo f = {
    .baz = "hello, world",
    .bar = 1
};

4. typedef

Consider the following code snippet where I'm creating few structure variables.

struct foo f1;
struct foo f2;
struct foo f3;

Notice, I need to type struct each time? We can eliminate by defining structure with typedef.

typedef struct {
    int bar;
    char baz;
} foo;

We can now define the variable of type foo struct as follows.

foo f1;
foo f2;
foo f3;

5. structure pointer

You can define a pointer that points to structure e.g.

struct foo {
    int bar;
    char baz;
};

struct foo f = { 1, 'A' };

// Pointer to struct
struct foo *ptr = &f;

Now, you can access member of f using *ptr. But, you can't type *ptr.bar as . has high-precedence and ptr.bar will evaluate first and then * on top of the result. So, we need to type (*ptr).bar as follows.

(*ptr).bar = 3;

Or you can use arrow operator -> as follows (and this is recommended).

ptr->bar = 3;

Creating a pointer to the struct is useful when you want to pass the existing structure to the function and want to modifies the member of structure.

struct foo {
    int bar;
    char baz;
};

void updateFoo(struct foo *ptr) {
    ptr->bar = 2;
    ptr->baz = 'B';
}

struct foo f = { 1, 'A' };

updateFoo(&f);

6. malloc() struct

In previous section, we wrote,

struct foo {
    int bar;
    char baz;
};

struct foo = { 1, 'A' };
struct foo *ptr = &f;

The above code works because we have assigned the initial value to the structure variable and memory is being allocated. But, when you don't have the initial value then you need to allocate the memory using malloc() function.

struct foo {
    int bar;
    char baz;
};

struct foo *f = malloc(sizeof(struct foo));

The above code calculate the size of foo struct and allocate the memory. Then it saves the pointer to the location in f variable. After this, we can work with members of structure e.g.

struct foo {
    int bar;
    char baz;
};

struct foo *f = malloc(sizeof(struct foo));

f->bar = 1;
f->baz = 'A';

Once you don't with f, you must need to free the memory using free() function.

free(f);

યોગીરાજ પાસેથી યોગદીક્ષા પ્રાપ્ત કરનાર કેટલાક મહાનુભાવો

યોગીરાજ સ્વયં અનેક ભક્તોને યોગક્રિયા શીખવીને તેમને આત્મોન્નતિના માર્ગ પર આગળ વધવાની પ્રેરણા આપતા. તેમણે કેટલા લોકોને દીક્ષા આપી છે તેની કોઇ પ્રામાણિત કે નિશ્ચિત સંખ્યા નથી. જે થોડાક વિખ્યાત યોગીઓ રૂપે પરિચિત રહ્યા છે તેમાં યોગીરાજના ઋષિકલ્પ બંને પુત્રો તિનકૌડી લાહિરી અને દુકૌડી લાહિરી, પંચાનન ભટ્ટાચાર્ય, સ્વામી પ્રણવાનંદ ગિરિ, સ્વામી યુક્તેશ્વર ગિરિ, ભૂપેન્દ્રનાથ સાન્યાલ, સ્વામી કેશવાનંદ, સ્વામી કેવલાનંદ, વિશુધ્ધાનંદ સરસ્વતી, કાશીનાથ શાસ્ત્રી, નગેન્દ્રનાથ ભાદુરી, પ્રસાદદાસ ગોસ્વામી', કૈલાશચંદ્ર બન્ધોપાધ્યાય, રામગોપાલ મજુમદાર, મહેન્દ્રનાથ સાન્યાલ, રામદયાલ મજુમદાર, હરિનારાયણ પાલદી વગેરે મુખ્ય છે. તે ઉપરાંત પણ એમ પણ સંભળાય છે કે ભાસ્કરાનંદ સરસ્વતી અને બાલાનંદ બ્રહ્મચારીએ પણ પોતાના સાધનામાર્ગથી અલગ એવા યોગીરાજ દ્વારા પ્રદર્શિત યોગસાધનાનું અનુશીલન કર્યું હતું. તે સમયના કાશીનરેશ, નેપાળ નરેશ, કાશ્મીર નરેશ, બર્દવાનના રાજા, કાલીકૃષ્ણ ઠાકુર અને સર ગુરુદાસ બંધોપાધ્યાય વગેરે સમાજના ઉચ્ચ સ્તરીય અન્ય લોકોએ પણ તેમની પાસેથી યોગની દીક્ષા મેળવી હતી. તે ઉપરાંત સમાજના નિમ્ન સ્તરના હજારો માનવીઓએ પણ તેમની પાસે મુક્તિમાર્ગનું શિક્ષણ મેળવી સ્વયંને કૃતકૃત્ય કર્યા હતા. તેઓ કહ્યા કરતા હતા કે ગૃહસ્થ આશ્રમથી મોટો કોઇ આશ્રમ નથી; કારણકે ગૃહસ્થ આશ્રમના આધાર પર જ અન્ય આશ્રમોની સ્થાપના થાય છે. તે બ્રહ્મચર્ય, વાનપ્રસ્થ અને સંન્યાસ આશ્રમનું ભરણપોષણ કરે છે, એટલે ગૃહસ્થ આશ્રમ જ શ્રેષ્ઠ આશ્રમ છે.

પાછળથી એમ પણ જણાયું છે કે પંચાનન ભટ્ટાચાર્યના શિષ્ય અને લાલગોલા હાઇ સ્કૂલના પ્રધાન અધ્યાપક વરદાચરણ મજુમદાર પાસેથી કાજી નઝરુલ ઇસ્લામ અને નેતાજી સુભાષચંદ્ર બોઝે આ મહાન ક્રિયાયોગની દીક્ષા પ્રાપ્ત કરી હતી. નેતાજીએ ૧૨મી જૂન, ૧૯૩૯ ને સોમવારે વરદાબાબુ પાસેથી દીક્ષા લીધી હતી. તે ઉપરાંત રામદયાલ મજુમદાર પાસેથી શ્રીમાન સીતારામદાસ ઓમકારનાથે આ યોગદીક્ષા પ્રાપ્ત કરી હતી. આ જ યોગના માધ્યમથી તેમણે જીવનને સુંદર બનાવ્યું તથા દરેક પ્રકારની સફળતા પ્રાપ્ત કરી હતી. આ મહાન યોગ જ આ મહાત્માઓના જીવનની પ્રધાન અને ગુપ્ત ચાવી હતી. આ જ ચાવીથી તેમણે પોતપોતાના હૃદયમંદિરનાં પ્રધાન દ્વાર ખોલવાની ક્ષમતા મેળવી હતી. એ જ તેમની ઉન્નતિ અને ચરમ ઉત્કર્ષનું સાધન હતું. આ જ યોગકર્મનું સંપાદન કરીને જ તેમને હૃદયદેવતાની પ્રાપ્તિ થઈ હતી. જેના બળ પર લોકકલ્યાણ પ્રતિ જીવનનો ઉત્સર્ગ જ તેમનું શ્રેય રહ્યું છે. એ દિવસોમાં મોટા ભાગના લોકો આ યોગકર્મ કરી શકતા નહોતા. તેથી જ તેમની ઇંદ્રિયશક્તિઓ સ્વચ્છ થયા વિનાની કે અસ્વચ્છ રહેતી હતી. ધર્મના બાહ્ય દેખાવો તરફ ખેંચાવાથી જ આજે દેશમાં આટલો અન્યાય અને અત્યાચાર પ્રવર્તે છે. એટલા માટે યોગીરાજ કહ્યા કરતા હતા: “આ યોગસાધના કરવાથી જ મનુષ્યનું જીવન સુંદર અને મહિમાવાન કે શ્રેષ્ઠ થાય છે. આત્માના મનને જેઓ જાણે છે કે જે સજાગ છે, સચેતન છે, તેમને જ વસ્તુતઃ મનુષ્ય કહે છે."

~ પુરાણ પુરુષ યોગીરાજ શ્રી શ્યામાચરણ લાહિરી

Decorator Pattern in JavaScript

This article is for someone who is looking for a quick check on the decorator pattern and what to evaluate if it can be added into the toolbox of the daily programming. If you are looking for the formal or professional explanation (e.g. one with definitions and details and examples for interview preps) then refer to this article.

Using the decorator pattern, you can extend the functionalities of existing functions. Consider the following example code.

function greet() {
    console.log('hello, world');
}

Now, we want to extend the functionalities of this greet function by logging before and after the function prints the "hello, world" text. Of course, you can do the following to solve this problem.

function greet() {
    console.log('Before: greet prints');
    console.log('hello, world');
    console.log('After: greet prints');
}

But, if that was the case/question then why someone asked you at the first place in the interview question! In such a scenario, you need to (over) clever and solve this problem in different ways. One way to do it is, by decorator pattern. How? Simple - wrapping the existing function by another new function e.g.

function greet() {
    console.log('hello, world');
}

function greetWithLogs() {
    console.log('Before: greet prints');
    greet();
    console.log('After: greet prints');
}

But, again this is not the pragmatic (extendable) way to do it! Then? Let's do it in hard way -

  1. Create a new function.
  2. The new function returns a function.
  3. Pass the existing function that you want to extend to the new function as an argument.

Step - 1 - Implementation.

function withLogs() {
    
}

Step - 2 - New function returns a function.

function withLogs() {
    return function() {

    }
}

Step - 3 - Pass the existing function that we want to extend.

function withLogs(fn) {
    return function() {
        console.log('Before: greet prints');
        fn();
        console.log('After: greet prints');
    }
}

The implementation is done. We are now ready to use it. Let's create a greetWithLogs() function by passing greet to withLogs() function.

const greetWithLogs = withLogs(greet);

Now, calling the greetWithLogs() returns the desired result! You might have a question like, what are the advantages of doing this? Instead of creating a new function and calling the greet() function in it? withLogs is not tied to greetWithLogs() function only. You can do withLogs() with other functions that fetch the data from the database or call a function that fetches the user data.

const findByManyWithLogs = withLogs(findByMany);

// OR

const getUserInfoWithLogs = withLogs(getUserInfo);

રેચક, પૂરક અને કુંભક

“કેવળ રેચક ઓ પૂરક આઉર બઢાઓ એ સિધ્ધિ દે. લાગે આઉર સમાધ-રેચક પૂરક બિના જયસે બંધાકૂપ, પ્રાણવાયુ કો બલ લે આઓ એ મન નિશ્ચલ હોય જાય. આયુર બઢાઓએ રોગ ન રહે પાપ જલાઓએ નિર્મલ કરે. જ્ઞાન હોય તિમિર નાશે.” (કોઈ સંશોધન વિના આ જેમનું તેમ ઉદ્ધૃત કરવામાં આવેલું છે.) 

અર્થાત્ પ્રાણાયામમાં રેચક, પૂરક અને કુંભક આ ત્રણ કર્મ છે. યોગીરાજ કહે છે કે રેચક અને પૂરક હજી વધુ વધારો. એમ થતાં પ્રાણ સ્થિર થતાં સમાધિ લાગશે અને સિધ્ધિ પ્રાપ્ત થશે. સ્વતંત્ર કુંભકની આવશ્યકતા નથી. આ રેચક અને પૂરકથી અલગ જે પ્રાણાયામ કે શ્વાસ લેવા કે છોડવા સિવાય જે પ્રાણાયામ છે તે જલહીન કૂવાની જેમ નિષ્ફળ છે. પ્રાણવાયુને બળપૂર્વક ખેંચવા અને ફેંકવાનું કર્મ કરવાથી જ મન નિશ્ચલ થઈ જાય છે. તેને હજી થોડો વધુ વધારો. એવું કરવાથી રોગ નહિ રહે. જન્મ-જન્માંતરના પાપસમૂહોના અગ્નિસાત્ થઈ જતાં મન નિર્મળ થશે. જ્ઞાનની પ્રાપ્તિ થશે અને અજ્ઞાન દૂર થશે.

~ પુરાણ પુરુષ યોગીરાજ શ્રી શ્યામાચરણ લાહિરી 

જરાસંધ

ભગવાન કૃષ્ણે જરાસંધના જન્મની વાત પણ ટૂંકાણમાં કહી સંભળાવી : 'મહાતપસ્વી ચંડકૌશિક નામના ઋષિએ જરાસંધના નિઃસંતાન પિતાને એક આમ્રફળ આપતાં કહ્યું હતું કે આ ફળ તારી રાણીને ખવરાવીશ એટલે એને મહાબળવાન પુત્ર થશે!

‘રાજાને બે રાણીઓ હતી. બેઉ રાણીઓ એકસરખી પ્રિય હતી. કેરી એણે બેઉ રાણીઓને અડધી અડધી ખવરાવી. સમય જતાં બન્ને રાણીઓને પ્રસવ થયો. પણ બન્યું એવું કે બન્ને રાણીએ અડધું અડધું બાળક એટલે કે એક હાથ એક પગ એ રીતે અક્કેકા ફાડિયાને જન્મ આપ્યો.

‘આનું કારણ રાજા તરત જ પામી ગયો ! પણ હવે શું ? પોતાના તકદીર ઉપર વિલાપ કરતાં દાસીઓને કહ્યું: “ફેંકી દો આ બન્ને ફાડિયાં.”

'દાસીઓએ ફાડિયાં મહેલની પાછળ આવેલી બારી વાટે ફેંકી દીધાં. આ સ્થળની નજીકમાં જ એક જરા નામની રાક્ષસી રહેતી હતી. એણે કશુંક મહેલ ઉપરથી પડતું જોયું. ત્યાં જઈને જુએ છે તો બાળકનાં બે ફાડિયાં હતાં ! રાક્ષસી તો નવજાત શિશુનું કૂણું કૂણું માંસ જોઈને રાજી રાજી થઈ ઊઠી. પછી એણે પોતાના નિવાસ પર જઈને ખાવાના ઇરાદા સાથે બેઉ ફાડિયાં ભેગાં કર્યાં. આ સાથે ચમત્કાર થયો. ફાડિયાં સંધાઈ ગયાં ને બાળકના રુદનનો અવાજ ઊઠ્યો. રાક્ષસીને થયું કે આ બાળક રાજાને પાછું આપીશ તો એ મને સદાને માટે માંસનો આહાર બાંધી આપશે.

'રાક્ષસીની ધારણા સાચી પડી. પોતાના જ આ બાળકને જીવતું થયેલું જોઈને રાજારાણીઓના આનંદનો પાર ન રહ્યો. રાજાએ પેલી રાક્ષસીને રોજના ભક્ષ તરીકે દરરોજ એક પશુ આપવાનો અમલદારોને હુકમ કરી જરા રાક્ષસીને ખુશ કરીને વિદાય આપી ને નગરમાં પછી છ દિવસનો મહોત્સવ મંડાયો...." ને પાંડવો તરફ નજર ફેરવી કૃષ્ણે વાત પૂરી કરી : "આ રીતે જરા નામની રાક્ષસીથી સંધાયેલા જરાસંધમાં રાક્ષસી બળ અને ગુણો હોય એ સ્વાભાવિક છે."

~ પાર્થને કહો ચડાવે બાણ - 3 માંથી, પન્નાલાલ પટેલ