Alex Raichev

Tonglen

A good introduction to the practice of tonglen, excerpted from by Pema Chödrön 's book When Things Fall Apart: Heart Advice for Difficult Times.

Each of us has a "soft spot": the place in our experience where we feel vulnerable and tender. This soft spot is inherent in appreciation and love, and it is equally inherent in pain.

Often, when we feel that soft spot, it's quickly followed by a feeling of fear and an involuntary, habitual tendency to close down. This is the tendency of all living things: to avoid pain and cling to pleasure. In practice, however, covering up the soft spot means shutting out life experience. Then we tend to narrow down into a solid feeling of self against other.

One very powerful and effective way to work with the tendency to push away pain and hold onto pleasure is the practice of tonglen. Tonglen is a Tibetan word that literally means "sending and taking". The practice originated in India and came to Tibet in the eleventh century. In tonglen practice, when we see or feel suffering, we breathe in with the notion of completely feeling it, accepting it, and owning it. Then we breathe out, radiating compassion, lovingkindness, freshness; anything that encourages relaxation and openness.

In this practice, it's not uncommon to find yourself blocked, because you come face to face with your own fear, resistance, or whatever your personal stuckness happens to be at that moment. At that point, you can change the focus and do tonglen for yourself , and for millions of others just like you, at that very moment, who are feeling exactly the same misery.

I particularly like to encourage tonglen, on the spot. For example, you're walking down the street and you see the pain of another human being. On-the-spot tonglen means that you just don't rush by; you actually breathe in with the wish that this person can be free of suffering, and send them out some kind of good heart or well-being. If seeing that other person's pain brings up fear or anger or confusion, which often happens, just start doing tonglen for yourself and all the other people who are stuck in the very same way.

When you do tonglen on the spot, you simply breathe in and breathe out, taking in pain and sending out spaciousness and relief. When you do tonglen as a formal practice, it has four stages:

  1. First, rest your mind briefly in a state of openness or stillness.
  2. Second, work with texture. Breathe in a feeling of hot, dark, and heavy, and breathe out a feeling of cool, bright, and light. Breathe in and radiate completely, through all the pores of your body, until it feels synchronized with your in- and out-breath.
  3. Third, work with any painful personal situation that is real to you. Traditionally, you begin by doing tonglen for someone you care about. However, if you're stuck, do the practice for your pain and simultaneously for all those just like you who feel that kind of suffering.
  4. Finally, make the taking in and the sending out larger. Whether you're doing tonglen for someone you love or for someone you see on television, do it for all the others in the same boat. You could even do tonglen for people you consider your enemies ---those who have hurt you or others. Do tonglen for them, thinking of them as having the same confusion and stuckness as your find or yourself.

This is to say that tonglen can extend indefinitely. As you do the practice, gradually, over time, your compassion naturally expands and so does your realization that things are not as solid as you thought. As you do this practice, at your own pace, you'll be surprised to find yourself more and more able to be there for others, even in what seemed like impossible situations.

Author: Alex Raichev
Date: 2014-12-30
Tags: nonduality
Permalink, Comment

Bicycle Repair Kit

Author: Alex Raichev
Date: 2014-12-07
Tags: bicycle
Permalink, Comment

There's No Tomorrow?

youtube~VOMWzjrRiBg

Video sourced from YouTube here.

Author: Alex Raichev
Date: 2014-11-09
Tags: video, collapse
Permalink, Comment

What's a Joke So Clever I Probably Won't Get It?

Kurt Gödel walks into a bar and says, "Because we're inside the joke we have no way of knowing how funny it is".

Heh heh :-) Retold from this AskReddit entry.

Author: Alex Raichev
Date: 2014-11-08
Tags: joke
Permalink, Comment

Money as Debt

youtube~8U3eNP0VlzE youtube~rpTwb89bSfU youtube~EbrI3jr47bs

Video sources: Part 1; Part 2; Part 3.

Author: Alex Raichev
Date: 2014-10-19
Tags: video, money
Permalink, Comment

Sitting in Silence

youtube~C3WwS07wbJ0

Silence is what we are. All the rest is commentary.

Video sourced from YouTube here.

Author: Alex Raichev
Date: 2014-08-30
Tags: nonduality, video
Permalink, Comment

Cybersecurity as Realpolitik

"Power exists to be used. Some wish for cyber safety, which they will not get. Others wish for cyber order, which they will not get. Some have the eye to discern cyber policies that are 'the least worst thing'; may they fill the vacuum of wishful thinking."

Abstract from the keynote speech delivered at the Black Hat USA conference in August 2014 by security expert Dan Geer. Text available from Geer's website here.

Author: Alex Raichev
Date: 2014-08-29
Tags: security
Permalink, Comment

The Internet's Own Boy

youtube~vXr-2hwTk58

A story of programmer and activist Aaron Swartz.

Video sourced from YouTube here.

Author: Alex Raichev
Date: 2014-08-09
Tags: video
Permalink, Comment

Seafarer

The sea will wash in
but the rocks—jagged ribs
riding the cloth of foam
or a knob or pinnacles
with gannets—
are the stubborn man.
He invites the storm, he
lives by it! Instinct
with fears that are not fears
but prickles of ecstasy,
a secret liquor, a fire
that inflames his blood to
coldness so that the rocks
seem rather to leap
at the sea than the sea
to envelop them. They strain
forward to grasp ships
or even the sky itself that
bends down to be torn
upon them. To which he says,
It is I! I who am the rocks!
With out me nothing laughs.

~ William Carlos Williams, 1950
Author: Alex Raichev
Date: 2014-08-06
Tags: poem
Permalink, Comment

Adding Celery with RabbitMQ to a Django project on Webfaction

I recently added Celery with RabbitMQ to one of my Django projects on Webfaction. Along the way, i read lots of documentation, encountered difficulties, and got advice from the helpful staff at Webfaction. What worked for me in the end are the instructions below. May they might work for you too and save you some pain!

I'll assume that you've already added Celery with RabbitMQ to your Django project in your development environment (encapsulated within a virtual environment) and have that working as desired. If not, follow the Celery docs. By the way, the latest version of Celery, version 3.1.13, works with Django out of the box and no longer requires installing the additional django-celery Django app.

Now, let's add Celery with RabbitMQ to your production environment (encapsulated within a virtual environment) on Webfaction.

Preparation

  • Ssh into your Webfaction server. All the command line instructions below take place in that session.
  • Also log in to your Webfaction control panel on the web
  • When following the instructions below, replace text of the form <stuff> with text appropriate to your situation. For example, replace <username> by your Webfaction username.

Install and configure Erlang

  1. From your Webfaction control panel, create a new application with App category: Custom, App type: Custom app (listening on port). Note the port number that gets assigned to your app.
  2. Go to Erlang's download webpage and copy the link to the latest .tar.gz version of Erlang
  3. In your ssh session, download the latest version of Erlang (currently OTP 17.1): wget <the Erlang link you copied>
  4. Unzip it: gunzip -c otp_src_17.1.tar.gz | tar xf -
  5. Change to the directory created: cd otp_src_17.1
  6. Configure the build: ./configure --prefix=/home/<username>/
  7. Make it: make
  8. Install it: make install

Test Erlang

  1. Run Erlang on the port assigned to your Erlang app (noted in the first step): epmd -port <your Erlang port> -daemon
  2. Check that it is running by looking for an epmd process: ps aux | grep epmd

Install and configure RabbitMQ

  1. From your Webfaction control panel, create a new application with App category: Custom, App type: Custom app (listening on port). Note the port number that gets assigned to your app.

  2. Go to RabbitMQ's download webpage and copy the link to the latest binary .tar.gz version of RabbitMQ (currently 3.3.4)

  3. In your ssh session, download the latest binary version of RabbitMQ: wget <the RabbitMQ link you copied>

  4. Unzip it: gunzip -c rabbitmq-server-generic-unix-3.3.4.tar.gz | tar xf -

  5. Simlink RabbitMQ to the Erlang lib directory: cd ~/lib/erlang/lib/; ln -s ../src/rabbitmq_server-3.3.4 rabbitmq_server-3.3.4

  6. Edit $HOME/rabbitmq_server-3.3.4/sbin/rabbitmq-defaults:

    ...
    # comment these lines:
    #CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq
    #LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq
    #MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia
    # add these lines:
    CONFIG_FILE=/home/<username>/rabbitmq_server-3.1.0/sbin/
    LOG_BASE=/home/<username>/logs/user/rabbitmq # create this directory!
    MNESIA_BASE=/home/<username>/rabbitmq_server-3.1.0/sbin/
    ...
    
  7. Create the RabbitMQ log directory: mkdir /home/<username>/logs/user/rabbitmq

  8. Edit $HOME/rabbitmq_server-3.3.4/sbin/rabbitmq-env:

    ...
    # add to the end
    export ERL_EPMD_PORT=<your Erlang port>
    export RABBITMQ_NODE_PORT=<your RabbitMQ port>
    export ERL_INETRC=$HOME/.erl_inetrc
    
  9. Create $HOME/hosts, replacing dweb125 with your Webfaction hostname prefix:

    127.0.0.1 developmenthost.developmentdomain developmenthost
    ::1      developmenthost6.developmentdomain6 developmenthost6
    127.0.0.1 dweb125 dweb125.webfaction.com
    
  10. Create $HOME/.erl_inetrc:

    {hosts_file, "/home/<username>/hosts"}.
    {lookup, [file,native]}.
    

Test RabbitMQ

  1. Make sure you have Erlang running. Start RabbitMQ via ./rabbitmq_server-3.3.4/sbin/rabbitmq-server -detached, then check on its status via ./rabbitmq_server-3.3.4/sbin/rabbitmqctl status, and look for a line with {amqp,<your RabbitMQ port>,"::"}.

Install and configure Celery

  1. Within your ssh session, activate the virtual environment for your Django project and install Celery via pip install celery.

  2. Assuming you've already configured Celery to work in your development environment, all that's left to do is add the following line to the production version of your Django settings file:

    BROKER_URL = 'amqp://guest:[email protected]:<your RabbitMQ port>//'
    

Test Celery

  1. Within your ssh session and Django project directory, run celery -A <your Django project> worker -l info

That's it. Fyew! You now have Erlang, RabbitMQ, and Celery installed and running on Webfaction.

Todo

I've heard that controlling Erlang + RabbitMQ + Celery with Supervisor is a good idea. Will look into that.

Author: Alex Raichev
Date: 2014-08-02
Tags: advice
Permalink, Comment


Why no comments? I used to do public comments but found that moderating and maintaining them took too much time in front of the computer, time better spent playing outdoors. So these days I only do private comments, that is, you can email me comments regarding a post by clicking the 'Comment' link at the bottom of the post.