barelog is a set of C99 modules that can be used to do some logging on many-core systems. The primary targets of barelog are the embedded heterogeneous many-core platforms (such as the Parallella platform) or any core that is too small to run any Linux based OS, thus forbidding the use of traditional tools.
The main use-case would be the logging of some calculus-specific cores that don't have any kernel but can still access a shared memory space to interact with a more "traditional" host (that is to say another CPU able to run a Linux kernel).
Please note that due to it's current limitations, barelog is not meant to be used for serious, efficient logging/tracing. For a more sophisticated tool that provides very efficient tracing, please see also barectf.
Note : in the following document, the terms "host" and "target" refer respectively to a system running a Linux kernel and able to initialize the shared memory and to the specific core that doesn't run any kernel.
Key features:
- Entirely configurable: you have full control over the functions used by the modules to interact with the shared memory as well as the total amount of memory used by barelog (inside each core as well as in the shared section).
- Easy to use: a simple call of the barelog_log() function (after proper initialization of the modules) allows you to log events without any further complications.
- Provides several "functioning modes": you can enable/disable some parts of the code to suit your needs. For example, to gain some performance, you might want to disable the "DEBUG_MODE" that only offers some internal debugging functions.
- Flush events whenever you want: a round-buffer allows you to store the events in the local memory of the logged core as long as you want before actually flushing them into the shared memory. You have full control over which stored event to actually put into the shared space.
- Format the events data as you want: since the logging module use a modified version of "snprintf" you can store any type of data (represented as a string) in a event.
Current limitations:
- Pretty heavy impact on the performances: since the logging module use a modified version of "snprintf", it's quite demanding in terms of clock cycles to produce an event.
- The size of the actual event's data is statically fixed: that means that if the events data are not full, there will be waste of both local memory (of the logged core) and shared memory.
- The data of an event is represented by a string: which means that you can't directly access to all the data logged into that event since they are wrapped in a string.
Using
Compiling the modules
- You first need to edit the common/include/config.h file to ensure that barelog is configured to suit your needs. Note that you can directly include a custom configuration header by placing it inside the platforms directory and then including it.
- Once it's done, you may want need to edit the Makefile to properly set the compiler used to compile the target module code. You can also set the TARGET_CC flag during the 'make'.
Then simply compile the modules using the provided Makefile. You can specify whether or not to use a cross-compiling toolchain by setting the CROSS_COMPILE flag. You can also decide if you rather want the resulting libraries to be static (.a) or shared (.so) by setting the HLIBTYPE and/or TLIBTYPE flags (where 'H' stands for Host and 'T' for Target). The default behavior is to produce static libraries.
make
Or
make HLIBTYPE=so TLIBTYP=a
If everything went well, two libraries should have been produced in the libs folder :
- libbarelog_host: targets the host program.
- libbarelog_logger: targets the target program.
Instrumenting and compiling your code
Instrumenting your code
Once you have compiled the modules, you just need to instrument your code to get started !
To do that, you have to follow those steps :
- Initialize the host: you will have to create the barelog_platform_t along with some memory management functions and to register them to the logger on the host by calling the barelog_host_init() function. This will allocate all the needed chunks of shared memory according to the "config" file and initialize the all host module.
- Initialize the target: this basically involve the same steps as above but with everything specific to the target.
- Instrument the target code: by using a combination of the barelog_log() barelog_flush() and barelog_clean(), you should be able to produce and manage the events inside the logged core.
- Retrieve the events on the host: the host API offers some functions to extract and display the logged events (please see the given example).
- Finalize the logger: once you're done logging around, use the **barelog_finalize() function to ensure every resource is correctly deallocated.
Please refer to the documentation and/or the given example for more informations.
WARNING : if you use barelog, some part of the shared memory (beginning at the given platform's mem_space) will be used by it. To avoid every hazardous behavior, consider using the BARELOG_SHARED_MEM_MAX macro (which give the size (in bytes) of the memory taken by barelog) when allocating new chunks of memory for your personal needs.
Compiling your code
Now that we have everything ready, we just need to compile our programs (one running on the host and the other on the target).
First of all, make sure that the previously generated barelog's libraries can be found by the compiler/linker. Assuming that your using gcc, you just need to specify the -L option :
gcc -L path/to/libraries/
You will then have to build the host program using the libbarelog_host library and the target program with the libbarelog_logger library :
gcc -L path/to/libraries/ target_main.c -lbarelog_logger
gcc -L path/to/libraries/ host_main.c -lbarelog_host
Of course, this need to be adapted in case you need to use another compiler.
Create your own configuration file
To create you own configuration file, you can simply follow the "template" given by common/include/config.h. You don't have to fulfill every fields since there already is some default values (please refer to config.h).
Once it's done, you just have to put it in the platforms directory, thus guaranteeing that you could later include it in the config header.
Warnings
- The core numbering on the target must begin at 0.
- The barelog_device_mem_manager module should be placed in the local memory of each logged core.
- The "SAFE" mode, providing shared memory synchronization mechanism is still to be tested, thus implying that no guarantee can be provided.
Configuring new behaviors/functionalities
You might want to add some functionalities that need some data stored into the shared memory space of barelog. Since this space is strictly ordered, you will have to follow those steps to ensure the good global behavior of the modules :
- Define the size taken by those data inside the barelog_internal.h file: you can use the following naming convention : 'BARELOG_FUNCNAME_MEM_SIZE'
- Edit the BARELOG_SHARED_MEM_DATA_OFFSET macro to take the new data in account while computing the offsets of each barelog's data inside the shared memory.
- Reserve a new mem_space for your data by adding '1' to the BARELOG_HOST_NB_MEM_SPACE macro.
- Define the new index inside the host's mem_space table of the new data: you can use the following naming convention : 'BARELOG_FUNCNAME_I'. Please be careful with the index since some may already have been taken and the BARELOG_NB_CORES first refer to the actual events reserved memory spaces. You can follow what has been done with BARELOG_DEBUG_MODE and BARELOG_SAFE_MODE to get the global picture of how to do it.
- Modify the behavior of the "host_mem_manager_init()" and "host_mem_manager_finalize()" functions to respectively init and finalize the newly reserved mem_space.


Home
Shop
Groceries
Household
Personal Care
Packaged Foods
Tea & Coffee
Contact
Login
Create Account
GROCERY
MART
Previous
Next
New offers
Fried-gram
Rs. 35.99
Rs.55.00
Navaratan-dal
INR30.99
INR45.00
White-peasmatar
INR80.99
INR105.00
Channa-dal
INR35.99
INR55.00


InformationUser InfoProfile AvatarBoop uses Gravatar, a service that connects your email address to your profile image across
different websites and apps. To change your Gravatar image, go to
gravatar.com
and sign in or create an account using the same email address that you use for Boop ({{info!.emailAddress}}).
{{info!.emailAddress}}
It might take around one minute for Gravatar changes to be applied.
Change PasswordExport Personal DataBoop is transparent with the data we collect, feel free to take a lookDelete Account


Installing Docker CE on Kali Linux
18 July 2021
I have a similar post of installing Docker CE but on Red Hat 8. Installing on Kali Linux is not completely different but still documenting the steps I went through to set it up.
There's an existing docker package from apt
therefore Kali-rolling repository named it docker.io
Install using apt
$ sudo apt install docker.io
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
cgroupfs-mount containerd libintl-perl libintl-xs-perl libmodule-find-perl libmodule-scandeps-perl
libproc-processtable-perl libsort-naturally-perl needrestart runc tini
Do you want to continue? [Y/n]
Post-installation
$ sudo groupadd docker
groupadd: group 'docker' already exists
$ sudo usermod -aG docker $USER
$ sudo systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Starting and testing
Logout and then login back to update your permissions.
$ sudo systemctl start docker
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:776b0895d5e2fcd5e80bcdd607adc45461ba11143ef3df531174bf00679f43fe
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.


Hello World
Trying out markdown
A First Level Header
The quick brown fox jumped over the lazy dog’s back.
A Second Level Header
This is an example link.
This is a blockquote.
This is the second paragraph in the blockquote.
This is an H2 in a blockquote
Another Second Level Header
$ ping example.com
Zoomable images
Awesome quotes
“Effective companies tend to communicate more, their people are curious and they have opinions”
Here’s some code
layout: post
title: Hello World
subtitle: "What's in the box"
# Setup post cover image in /images/
# Keep it as draft, not published in index.html or feed.xml
draft: false
Configurable & Code Snipped Highlighting
/assets/stylesheets/main.scss:
/* Text colors */
$text: #21272d;
$textmuted: #848484;
$accent: #2077b2;
Stay tuned for updates.


Please connect to the internet to view content
Have a textbook downloaded on your system/ pendrive? Click below link to upload
Your board is yet to add more books.Tap the button to see more books and content on SUNBIRD
Your search - hjghjknbjkhn - did not match any Contents.


A very simple mobile framework based on the Topcoat Framework. Inspired by the jQT framework. Can be used either with a single html document with multiple pages, or using a collection of controllers and templates.
Topcoat Touch uses jQuery (or Zepto), fastclick, iscroll, hammerjs, and lodash


SiaNet.Model.Optimizers Namespace
Classes
| Class | Description | |
|---|---|---|
| AdaDelta |
Adadelta is an extension of Adagrad that seeks to reduce its aggressive, monotonically decreasing learning rate. Instead of accumulating all past squared gradients, Adadelta restricts the window of accumulated past gradients to some fixed size w.
|
|
| AdaGrad |
Adagrad is an algorithm for gradient-based optimization that does just this: It adapts the learning rate to the parameters, performing larger updates for infrequent and smaller updates for frequent parameters
|
|
| Adam |
Adaptive Moment Estimation (Adam) is another method that computes adaptive learning rates for each parameter. In addition to storing an exponentially decaying average of past squared gradients vtvt like Adadelta and RMSprop, Adam also keeps an exponentially decaying average of past gradients mtmt, similar to momentum.
|
|
| Adamax |
The Vt factor in the Adam update rule scales the gradient inversely proportionally to the ℓ2 norm of the past gradients (via the vt−1 term) and current gradient.
|
|
| BaseOptimizer | ||
| MomentumSGD |
Momentum of Stochastic gradient descent optimizer.
|
|
| RMSProp |
RMSprop is an unpublished, adaptive learning rate method proposed by Geoff Hinton. This optimizer is usually a good choice for recurrent neural networks.
|
|
| SGD |
SGD is an optimisation technique. It is an alternative to Standard Gradient Descent and other approaches like batch training or BFGS. It still leads to fast convergence, with some advantages:
- Doesn't require storing all training data in memory (good for large training sets)
- Allows adding new data in an "online" setting
|


WITNESS LIST State Affairs Committee April 24, 1997-1:30P HB 255 For: Leveling, Lt. Gregory (Denton Co. Sherriffs), Denton HB 711 On: Mills, Lester (TX DPS), Austin Newbern, Tom (TXDOT), Austin Registering, but not testifying: On: Borella, Larry (Railroad Commission), Austin HB 799 For: Collie,Jr., Robert (Harris County), Houston HB 833 For: Lee, Randy (TX Land Title/Stewart T), Austin On: Mills, Ken (TX General Land Office), Austin HB 1077 On: Deviney., Lee (TX Public Finance Auth.), Austin Registering, but not testifying: On: Edwards, Kimberly (TX Public Finance Auth.), Austin Hubbard, John (Sunset Commission), Austin Porras, Judith (TX Public Finance Auth.), Austin HB 1836 On: Fox, Dan (TU Electric), Dallas SB 14 For: Hartung, Craig (Calpers St., ERS), Sacramento,CA Kaplan, Samuel (US Care/Calpers), Santa Monica,CA Kennard, Don (Self), Austin SB 130 For: McDonald, Steve (TX Democratic Party), Austin VanPelt, III, Lester (Republician Party TX), Austin On: Hanshaw-Ross, Elizabeth (Sec. of State Office), Austin SB 603 On: Durden, David (TX Dept. of Insurance), Austin Schneider, Rob (Consumers Union), Austin SB 1066 On: Aragon, Steve (TX Health & Human Serv), Austin Registering, but not testifying: For: Hillier, King (TX AsscPubl&Non-P Hosp), Austin On: Alexander, Cindy (TPR), Austin Cowan, Andrea (Comptroller's Office), Austin SB 1343 On: Hanshaw-Ross, Elizabeth (Sec. of State's Office), Austin SB 1469 On: Johnson, Aubrey (GSC), Austin Mullen, Carl (GSC), Austin SB 1647 For: Cummings, Dale (TX Taxpay.&Resh.Assc.), Houston Tulloch, William (Burl.Resour.Oil&Gas Co), Ft. Worth Against: Cole, Sheryl (TX Municipal Leagus), Austin SB 1850 For: Barton, Bob (TX Press Assn.), Buda Donaldson,Jr.,David (Freed.ofInfo Fd.TX), Austin Smith, Tom (Public Citizin), Austin Woodford, Suzy (Common Cause TX), Austin On: Kleinworth, Tom (Baylor Coll.of Medicine), Houston SB 1905 For: Martin, Richard (Bexar Co. Reserv.LawOff), San Antonio Moseley, J.W. (Self), Dallas Against: Adams, Gerald (TX Assc Licens Investig), Austin Antczak, Bob (Self), San Antonio Barbosa, George (Self), Houston Bordelon, Bill (HBFAA), Houston Burt, Bob (Assc Security Services), Houston Cervantes, George (TX Assc. Licens. Invest), Austin Chism, John (TX Assc Licens.Investig), Irving Dawkins, Gary (SA Alarm Assc.), San Antonio Elkin, W. Bailey (ASSIST), Houston Fechner,Ruben (TX Burg.&FA Assc.), San Antonio Glenn, Joel (TBPIPSA), Ft. Worth Gonzales, J.R. (Self), Austin Harrison, Gordon (Self), Houston Hill, Carol (No.TX Private Inves.Ass), Arlington Hoppe, Johney (Self), San Antonio Hulsey, Paul (No.TX Private Inves.Ass), DeSoto Jenkins, Forrest (Natl. Security Assc.), Houston Pillow, Charles (Aspenbright Security), Austin Piper, Jay (Self), Houston Rakosky, Harry (Ranger American), San Antonio Reed, Malcolm (TX Burg & FA Assc), Dallas Roberts, Walter (Self), Dallas Sands, John (N.TX PI Assc.), Commerce Sanford, Gary (Self), Sugarland Smith, Mark (Self), Dallas Thomason, JessAnn (Bd. PI&Priv.Secur.Agenc), Midland Tutor, Walter (Gulf Co.Burg.&FA Assc.), Channelview Via, Richard (Self), Houston West, Jr., Roy (Patriot Security), Nederalnd On: Dawson-Brown, Claire (Travis Co DA's Office), Austin Friou, John (State Auditor's Office), Austin Hannigan, Kevin (State Auditor's Office), Austin Shimek, Larry (TBPIPSA), Austin Wallenburg, Marlin (State Auditor's Office), Austin Zachariah, Vandita (State Auditor's Office), Austin Registering, but not testifying: Against: Atkinson, Johnny (Executive Security), Austin Bray, Jim (TBPIPSA), Plano Buie, Jim (Absolute Security), Bedford Burke, Ev (Self), Houston Cavanaugh, Rachael (Wackenhut Corrections), Austin Fawcett, Jimmy (TX Police Chiefs Assc), Farmers Branch Fischer, Babette (Wackenhut Corrections), Austin Lakes, Booker (Comprehen.Invest.Inc), Houston Lakes, Kimberly (Comprehen.Invest.Inc), Spring Martin, John (TBPIPSA), San Antonio McLaughlin, James (TX Police Chiefs Assc), Addison Norman, Claude (Guardco Security), Austin Reid, Linda (Guardco Security), Austin Riley, Dennis (Security Systems), Corpus Christi Truax, Frank (Guardco Security), San Antonio Vail, Russell (Alarm Processing Corp), Houston Vaults, Lawrence (Wackenhut Corrections), Austin Young, Taylor (Guardco Security), Austin On: Craig, George (TBPIPSA), Corpus Christi Dozier, Jim (TX Comm.Law Enforcement), Austin


Definition of spirituality:
Christina Puchalski, MD, Director of the George Washington Institute for Spirituality and Health, contends that "spirituality is the aspect of humanity that refers to the way individuals seek and express meaning and purpose and the way they experience their connectedness to the moment, to self, to others, to nature, and to the significant or sacred.“
Did you know:
Coming Soon!
TFL action to consider:
- Read a daily devotional message
- Practice meditation
- Participate in individual or group prayer
- Take part in community worship
- Join a small group of like-minded people to grow, share and strengthen values
- Spend time in nature
- Start a gratitude journal
- Join a volunteer group that aligns with your core values and give back
- Download the Train for Life app for your daily dose of inspiration
TFL self-guided exercise:
Take time to think about the following questions and perhaps answer them in a personal Wellbeing Journal that you can go back and reference and add to over time. We encourage you to share and discuss your answers with a coach, counselor or trusted advisor.
- What does your life currently look and feel like in this dimension?
- Specifically what are the things you are doing to feel satisfied in this dimension of your life?
- What do you envision your life to look and feel like if you gain greater satisfaction in this dimension?
- Specifically what would you like to integrate into your life in this dimension?
- What are the barriers that are keeping you from improving this dimension of your life?
- What can you do to eliminate or navigate around these barriers?
- What tools and support do you need to be successful?
We want to know:
Support:
Seek support through coaching, counseling and/or a support group
Confide in a trusted friend or family member and ask them for support and assistance


| Package | flare.vis.events |
| Class | public class DataEvent |
| Inheritance | DataEvent flash.events.Event |
| Subclasses | SelectionEvent |
| Property | Defined by | ||
|---|---|---|---|
| edge : EdgeSprite
[read-only] The first element in the event list as an EdgeSprite.
| DataEvent | ||
| item : DataSprite
[read-only] The first element in the event list as a DataSprite.
| DataEvent | ||
| items : Array [read-only] The list of effected data items.
| DataEvent | ||
| length : int [read-only] The number of items in this data event.
| DataEvent | ||
| list : DataList
[read-only] The data list (if any) the items belong to.
| DataEvent | ||
| node : NodeSprite
[read-only] The first element in the event list as a NodeSprite.
| DataEvent | ||
| object : Object [read-only] The first element in the event list as an Object.
| DataEvent |
| Method | Defined by | ||
|---|---|---|---|
|
Creates a new DataEvent.
| DataEvent | ||
|
clone():Event
| DataEvent |
| Constant | Defined by | ||
|---|---|---|---|
| ADD : String = "add" [static] A data added event.
| DataEvent | ||
| REMOVE : String = "remove" [static] A data removed event.
| DataEvent | ||
| UPDATE : String = "update" [static] A data updated event.
| DataEvent |
| edge | property |
edge:EdgeSprite
[read-only]The first element in the event list as an EdgeSprite.
Implementation public function get edge():EdgeSprite
| item | property |
item:DataSprite
[read-only]The first element in the event list as a DataSprite.
Implementation public function get item():DataSprite
| items | property |
items:Array
[read-only]The list of effected data items.
Implementation public function get items():Array
| length | property |
length:int
[read-only]The number of items in this data event.
Implementation public function get length():int
| list | property |
list:DataList
[read-only]The data list (if any) the items belong to.
Implementation public function get list():DataList
| node | property |
node:NodeSprite
[read-only]The first element in the event list as a NodeSprite.
Implementation public function get node():NodeSprite
| object | property |
object:Object
[read-only]The first element in the event list as an Object.
Implementation public function get object():Object
| DataEvent | () | constructor |
public function DataEvent(type:String, items:DataList, list:* = null)
Creates a new DataEvent.
Parameterstype:String — the event type (ADD, REMOVE, or UPDATE)
|
|
items:DataList — the DataSprite(s) that were added, removed, or updated
|
|
list:* (default = null ) — (optional) the data list that was modified
|
| clone | () | method |
public override function clone():Event
Returns
Event |
| ADD | constant |
public static const ADD:String = "add"
A data added event.
| REMOVE | constant |
public static const REMOVE:String = "remove"
A data removed event.
| UPDATE | constant |
public static const UPDATE:String = "update"
A data updated event.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.catalina.servlets.CGIServlet.CGIRunner
Encapsulates the knowledge of how to run a CGI script, given the script's desired environment and (optionally) input/output streams
Exposes a run
method used to actually invoke the
CGI.
The CGI environment and settings are derived from the information passed to the constuctor.
The input and output streams can be set by the setInput
and setResponse
methods, respectively.
| Constructor Summary | |
protected |
CGIServlet.CGIRunner(java.lang.String command,
java.util.Hashtable env,
java.io.File wd,
java.util.Hashtable params)
Creates a CGIRunner and initializes its environment, working directory, and query parameters. |
| Method Summary | |
protected java.lang.String |
getPostInput(java.util.Hashtable params)
Gets a string for input to a POST cgi script |
protected java.lang.String[] |
hashToStringArray(java.util.Hashtable h)
Converts a Hashtable to a String array by converting each key/value pair in the Hashtable to a String in the form "key=value" (hashkey + "=" + hash.get(hashkey).toString()) |
protected boolean |
isReady()
Gets ready status |
protected void |
run()
Executes a CGI script with the desired environment, current working directory, and input/output streams This implements the following CGI specification recommedations: Servers SHOULD provide the " query " component of
the script-URI as command-line arguments to scripts if it
does not contain any unencoded "=" characters and the
command-line arguments can be generated in an unambiguous
manner.
|
protected void |
setInput(java.io.InputStream stdin)
Sets standard input to be passed on to the invoked cgi script |
protected void |
setResponse(javax.servlet.http.HttpServletResponse response)
Sets HttpServletResponse object used to set headers and send output to |
protected void |
updateReadyStatus()
Checks & sets ready status |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
protected CGIServlet.CGIRunner(java.lang.String command, java.util.Hashtable env, java.io.File wd, java.util.Hashtable params)
setInput
and setResponse
methods,
respectively.
command
- string full path to command to be executedenv
- Hashtable with the desired script environmentwd
- File with the script's desired working directoryparams
- Hashtable with the script's query parameters| Method Detail |
protected void updateReadyStatus()
protected boolean isReady()
run
will throw
an exception), true if readyprotected void setResponse(javax.servlet.http.HttpServletResponse response)
response
- HttpServletResponse to be usedprotected void setInput(java.io.InputStream stdin)
stdin
- InputStream to be usedprotected java.lang.String[] hashToStringArray(java.util.Hashtable h) throws java.lang.NullPointerException
h
- Hashtable to convert
java.lang.NullPointerException
- if a hash key has a null valueprotected void run() throws java.io.IOException
This implements the following CGI specification recommedations:
query
" component of
the script-URI as command-line arguments to scripts if it
does not contain any unencoded "=" characters and the
command-line arguments can be generated in an unambiguous
manner.
auth-scheme
" token of the
"Authorization
" if it was supplied as part of the
request header. See getCGIEnvironment
method.
.
" and "..
" path
segments:
This implementation does not allow ".
" and
"..
" in the the path, and such characters
will result in an IOException being thrown;
java.io.IOException
- if problems during reading/writing occurRuntime.exec(String command, String[] envp,
File dir)
protected java.lang.String getPostInput(java.util.Hashtable params)
params
- Hashtable of query parameters to be passed to
the CGI script
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


21 Interesting Facts About Hanuman
1. Meaning of the name Hanuman
When Lord Hanuman was a child, he mistook the Sun as a ripe mango and flew into the space to consume it. When he swallowed the sun, there was darkness everywhere. To save the world, Lord Indra (king of the Gods) came to rescue the Sun and used his weapon Vajra on Hanuman. Vajra hit Hanuman on his jaw (Hanu in Sanskrit), thus, disfiguring it. Hence, he got the name Hanuman which means one with a disfigured jaw.
2. Hanuman’s promise to Lord Rama
When it was time for Lord Rama to go back to his eternal abode, Vaikuntha, he asked all his devotees to come along with him but Hanuman declined. He said that chanting the holy name “Rama” is sweeter than even heaven. So, he promised Lord Rama that he would stay on Earth as long as there is even a single person chanting his Lord’s name and protect them from all misery and pain.
3. Hanuman prohibited Yama from claiming Rama
When it was time for Rama to depart to his eternal abode, Hanuman wouldn’t allow Yama to enter Ayodhya and claim Rama. To Allow Yama’s entry, Rama had to trick Hanuman to make him understand that it was time for him to leave.
4. Lord Hanuman and Bhima were brothers
Hanuman is also known as Vayuputra meaning son of the wind God. Bhima was born to Kunti, through the mantra of Lord Vayu. Thus, he is a Vayuputra too. Hence, Lord Hanuman and Bhima were brothers.
5. There are 108 names of Lord Hanuman in the Sanskrit language
When Lord Hanuman was a child, he mistook the Sun as a ripe mango and flew into the space to consume it. When he swallowed the sun, there was darkness everywhere. To save the world, Lord Indra (king of the Gods) came to rescue the Sun and used his weapon Vajra on Hanuman. Vajra hit Hanuman on his jaw (Hanu in Sanskrit), thus, disfiguring it. Hence, he got the name Hanuman which means one with a disfigured jaw.
6. Hanuman applied Sindoor all over his body for Rama’s long life
Once, Hanuman saw Mother Sita applying Sindoor in her hair. He asked Mother Sita for doing so. Mother Sita replied that it was for the long life of Lord Rama. Hanuman thought if just a pinch of sindoor in the hair can increase the longevity of Lord Rama’s life then why not apply to the entire body. Thus, he is also known as Bajrang Bali.
7. Hanuman also created his version of Ramayana
After Lord Rama won the war against Ravana, Hanuman went to a mountain and started writing Ramayana with his nails. When Valmiki came to know about this, he asked Hanuman about it. Hanuman carried him on his shoulders, showed him what he had written and asked for his feedback. Tears roll down Valmiki’s eyes as it was so real, so perfect, far superior to Valmiki’s one. He said, “Now who would care about my Ramayana?”. Hearing this, Hanuman destroyed his version without a second thought.
8. Lord Rama gave death penalty to Hanuman
Once, great sages like Narada, Vasishta and Vishvamitra met in Ayodhya. They were debating if Rama himself was stronger than his name (Rama Nama). Sage Narada claimed that Rama Nama was indeed stronger than Rama himself, and decided to prove it. On Narada’s advise, Hanuman respected all the sages except Vishwamitra since he was a king. Angered Vishwamitra went up to Lord Rama and demanded that Hanuman be given a death penalty for his unforgivable behavior. Since Vishvamitra was the guru of Lord Rama, he couldn’t refuse his orders.
Hanuman was confused as to why Rama would want to take his life. But then Narada told him not to worry and to keep chanting the Rama Naam. Rama came and shot his arrows one after the other but Hanuman didn’t get even a scratch. Narad Muni who was watching the whole spectacle admitted that he had provoked Hanuman.
When Rama came to know about Narad’s trickery, he stopped. Thus, it was proved that the Rama Naam was even greater than the Lord himself.
9. Hanuman received boons from various Gods
Here are some of the boons given to Lord Hanuman –
Lord Brahma granted him the boon of long-life, invulnerability to his rod of chastisement and curses uttered by Brahmanas. He was also given the power to kill fear in good people and induce fear in enemies as well as the ability to transform his body as per will.
Lord Shiva gave him the boon of Invulnerability to death by Shiva or his weapons.
Indra gave him the boon of Invulnerability to Indra’s most powerful weapon “Vajra”.
Varuna gave him protection from water.
Agni granted him immunity against fire.
Lord Rama gave Hanuman the boon of immortality so that he could protect the devotees of Lord Rama till the end of the world.
Yama granted him the boon of health and invulnerability to his rod of chastisement.
Kubera gave him the boon that his mace would not harm him and he would not become tired in combat.
Vishwakarma granted him the boon of being invulnerable to the weapons made by him.
Vayu gave him the blessing of being faster than Vayu himself.
10. Hanuman heard the Bhagavad Gita directly from Krishna
During the Mahabharata, when Lord Krishna delivered the Bhagavad Gita to Arjuna, three other people heard it as well including Hanuman.
11. Hanuman is an incarnation of Shiva
Hanuman’s mother Anjana and father Kesari prayed to Lord Shiva for a child. Lord Shiva was impressed by their prayers and instructed Vayudev to transfer his divine energy into Anjana’s womb. Hence, Lord Hanuman is known as Vayuputra as well as an incarnation of Lord Shiva.
12.  This fish gave birth to Hanuman’s son Makardhwaja.
13. Numerous saints have seen Hanuman over the last few centuries
including Madhvacharya (13th Century), Tulsidas (16th Century), Shri Samarth Ramdas (17th Century), Raghavendra Swami(17th Century).
14. Once, Lord Hanuman Discarded Mother Sita's Gift.
Once, Mother Sita gave a beautiful pearl necklace as a gift to Lord Hanuman but he politely refused to accept it as anything that is devoid of Rama’s name is of no use to him. To prove his eternal love for Lord Rama and Goddess Sita, he ripped off his chest to show that both of them are always present in his heart.
15. Hanuman’s Curse
As a child, Hanuman was blessed by various gods who gave him various boons. He didn’t know how to control his new-found powers and being a very mischievous child, he used to disturb the sages praying in the forest. But on one occasion, the angry sages knowing that he was a child, placed a mild curse on him, that he would forget all his powers and would only be able to remember them once someone reminds him.
16. Hanuman’s Insatiable Hunger
Once, when Mother Sita was living in Sage Valmiki’s cottage, she invited Hanuman for a lunch cooked by her. Sita was overwhelmed with happiness when she saw Hanuman and cooked numerous dishes for him. He loved the food so much that he finished all the food in the kitchen. All the groceries were almost finished but he was still hungry. In despair, Mother Sita prayed to Lord Rama for his help. Rama advised her to add a Tulsi leaf to the food being served to Hanuman. Sita Ji did the same and Hanuman’s hunger was thus satisfied.
17. Lord Hanuman’s Role In The Mahabharata
1. Hanuman met Arjuna in the form of a small monkey at Rameshwaram. On seeing the Ram Setu bridge, Arjuna wondered why Lord Rama would need the help of monkeys to build the bridge instead of building the bridge by himself using his arrows. The monkey criticized Arjuna saying that a bridge built with arrows wouldn’t be able to bear the weight of even one monkey like himself. Arjuna took it as a challenge and vowed that if the bridge built by him did not suffice, he would jump into the fire.
So, Arjuna built a bridge with his arrows and as Hanuman stepped on it, it fell apart. Arjuna tried again and again but failed. He was really depressed. Just then, Lord Krishna appeared in front of them and asked Arjuna to rebuild the bridge. This time when Hanuman stepped on it, the bridge did not break. Hanuman came in his original form and promised to help Arjuna in the war. During the entire battle, Lord Hanuman was present on the flag of Arjuna’s chariot.
On the last day of the war, Lord Krishna asked Arjuna to step down from the chariot and thanked Hanuman for protecting them throughout the battle. Hanuman Ji appeared in his original form, bowed to Lord Krishna and left the place. As soon as he left, the chariot blew into ashes. Krishna explained to an astonished Arjuna that the chariot would have burnt long back if Hanuman had not protected it from the attacks of celestial weapons used in the war.
2. Bheem had become extremely proud of his strength and considered himself to be the strongest person in the world. To teach his younger brother (Bheem) a lesson, Hanuman took the form of an old monkey and sat in his way. When Bheem asked Hanuman to get his tail out of the way, Hanuman asked him to do it himself. Bheem tried to his full strength but failed. Hanuman then appeared in front of Bheem in his original form and a timely lesson in humility was taught.
18. PanchMukhi Hanuman
During the battle between Rama and Ravana, Ravana asked the king of Patala Lok – Mahiravana to help him out. Mahiravana took the form of Vibheeshana, kidnapped Rama and Laxmana and took them to the Patala Lok.
Hanuman entered the Patala Lok to rescue them. He fought a fierce battle with Mahiravana but was unable to defeat him. He then found that in order to kill Mahiravana, he would have to extinguish five lamps in five different directions. So, took the form of Panchmukhi Hanuman (Hanuman with five faces), extinguished all the 5 lamps and rescued Rama and Laxmana.
19. Lord Hanuman’s mother, Anjana was an apsara
(celestial being) in God Indra’s court named Punjikasthala. She was cursed by a sage to be born as a vanara (female monkey) on Earth and this curse could only be removed if she gave birth to Lord Shiva’s incarnation. So, she took birth as a vanara princess and married Kesari, a vanara chief.
20. Surya was Hanuman’s Guru
Hanuman was fascinated with Surya from birth. He was a great devotee of the Sun God, Surya. So, he selected Surya as his teacher and requested him to teach the scriptures. Surya agreed to teach Hanuman if he could follow his pace. Hanuman did so and became his disciple. He completed the entire scriptures in just 60 hours.
21. Hanuman invented the “Surya Namaskar”
Hanuman offered to pay his “Guru Dakshina” to his Guru Surya but he politely declined. So, Hanuman decided to honor his teacher by offering his gratitude and namaskars, imitating Surya’s movements across the sky each and every day. Thus, the Surya Namaskar was born as Hanuman’s Guru Dakshina to his teacher, Surya.