Category: Outdated

VidyoDesktop 2.2.x on Linux with PulseAudio 4.0 (Ubuntu 13.10)

Recently I upgraded my work laptop from Xubuntu 13.04 to 13.10. The upgrade went well, except for an issue with audio output from VidyoDesktop. Every other application worked fine. Skype, audio from Flash inside both Firefox and Chromium, gmusicbrower, Rhythmbox, and the system sounds all performed as expected.

After spending a day spelunking the depths of PulseAudio, a co-worker pointed me to this bug report which links to this blog post about making Skype compatible with changes in PulseAudio 4.0.

I confirmed that manually starting Vidyo with the following command re-enabled audio:

PULSE_LATENCY_MSEC=60 VidyoDesktop

And then modified the Exec line in /etc/xdg/autostart/vidyo-vidyodesktop.desktop to this:

Exec=env PULSE_LATENCY_MSEC=60 VidyoDesktop -AutoStart

The non-autostart menu file (/usr/share/applications/vidyo-vidyodesktop.desktop) just needs the following:

Exec=env PULSE_LATENCY_MSEC=60 VidyoDesktop

We’re using version 2.2.x of the VidyoDesktop client, which I believe has been superseded and so you may not need this fix at if you use a later client version.

Leaving Google: Moving email and calendar to Zimbra

Note: This post is part of a series of posts I’m writing about migrating from Google to other service providers. Read Leaving Google: A preface to understand my motivation and goals for this project.

Aside from things like online banking and bill-pay, email and calendar are probably the most important aspects to my online life. They enable me to in touch, transact business and generally know what I am supposed to be doing when. As such, it took me a long time to find an alternative that would work for me.

The requirements and the search

Here are the requirements I defined in a calendar and email solution:

  • hosted and paid, yet affordable ($50-60 annually)
  • decent web interface
  • POP3 and IMAP access
  • ssl/tls enabled
  • ability to use own domain and to add user and domain aliases
  • multiple calendar support
  • ability to share calendars with internal and external users
  • ability to have private and public appointments
  • ability to subscribe to external calendars
  • reasonable disk space (5-10GB) and attachment quotas (>10mb)

Finding a stand-alone email provider was not an issue. Pobox (my favorite), Hushmail, Fastmail and Rackspace all provide reasonable email hosting and there are many others.

What these services lack are the robust calendaring features I need. Both Pobox and Rackspace include calendars with their email, and OwnCloud has a calendar feature. But all three are simple and lack the sharing and subscribing abilities I absolutely need.

Lack of strong calendar features continued to stall my search for Google alternatives until I realized that I was already using a great alternative at Mozilla! There we use Zimbra, a “collaboration suite” developed by VMWare that includes email and calendaring. VMWare offers open source and network editions of Zimbra. If you have sufficient courage, stamina and time to run your own mail server, you can download and install the open source edition for free (although it lacks some features of the paid version).

I have no desire to run my own mail server. Thus began the search for hosted Zimbra providers. I narrowed my list to three: ZMailCloud, MrMail, and Krypt CloudMail, from which I picked ZMailCloud.

The migration

Once my account was setup, the migration process was fairly straight-forward:

  • Update MX records for my chosen domain.
  • Start forwarding Gmail to new email addresses.
  • Add Gmail address as external account in Zimbra via IMAP and start copying messages.
  • Export main Google calendar and import into calendar called “Google” on Zimbra. Start copying relevant appointments to new main calendar.
  • Begin the tedious process of updating email address everywhere.

I had a couple of choices when migrating all of my email messages:

  • Use an email client like Thunderbird to copy via IMAP
  • Add Gmail address as an external account via POP3. The disadvantage to this approach is that you get zero folder information, which is only a problem if you were using folders/labels in Gmail.
  • Not copy messages at all and start with a clean slate!

Also, you might be wondering why I didn’t simply import my Google calendar into my new main calendar. I actually did this at first. Then I realized that all of the appointments were imported with the visibility set to public. This won’t work for me because I want to be able to share my calendar with the public, allowing them to see the details for some appointments (like office hours and public meetings) but not for others.

Progress so far

The migration, begun a couple of weeks ago, continues. Each time I log in to an account I check the email address and update it if need be. I update mailing list subscriptions as I read messages from those lists, and those hosted on Google groups are the most tedious to update.

I also haven’t figured out how to tell everyone who might need to know that I have a new email address. I can’t bring myself to spam my entire address book (and there are probably folks in it I don’t actually want to engage with). So, for the time being, I’m just replying from the new address and letting people or their email clients update my record on their own.

Other solutions?

I’m curious about other possible solutions. For those of you who have switched away from Google mail and calendar, or were never there in the first place, what do you use? Let me know in the comments!

 

 

How to install BitlBee (IRC to chat and Twitter gateway) on Ubuntu

What is BitlBee?

bitlbee-logo

BitlBee enables you to connect to chat networks and Twitter via an IRC client and interact with those chat networks in the same way you interact with IRC.

Why would you want to do this? Aside from being neat, being able to connect to chat and twitter with your IRC client means there are fewer programs you have to run and keep track of and it enables you to use the keyboard to issue commands instead of the GUI.

Installation on Ubuntu

This post explains how to build BitlBee from source on the most recent Ubuntu LTS (12.04 Precise). There are packages for BitlBee, but they aren’t up to date.

Note: These instructions are for a single-user setup of BitlBee. If you are installing a server for multiple users, especially ones you don’t know well, please read the documentation to be sure you understand what you are doing and are selecting the most secure options.

Dependencies

You’ll need to make sure the following packages are installed on your system: build-essential, libglib2.0-dev. Additionally, you’ll need an ssl library and I recommend libgnutls-dev (over openssl, which can be problematic). And if you want to support off-the-record chat, you’ll need libotr2-dev.

You can install all of those with:

sudo apt-get install build-essential libglib2.0-dev libgnutls-dev libotr2-dev

Download, configure, and make source and install

wget http://get.bitlbee.org/src/bitlbee-3.2.tar.gz
tar -xzvf bitlbee-3.2.tar.gz
cd bitlbee-3.2
./configure --otr=1 --msn=1 --jabber=1 --oscar=1 --twitter=1 --yahoo=1 --ssl=gnutls --etcdir=/etc/bitlbee
make
sudo make install

The configure included above specify the following:

  • inclusion of msn, jabber, oscar (AOL), yahoo, and twitter protocols
  • enable OTR (off-the-record messaging)
  • gnutls as the ssl library
  • location of configuration directory as /etc/bitlbee

Configure BitlBee

Next you’ll need to configure Bitlbee for use.

First, create and then edit the sample conf file:

sudo make install-etc
sudo vim /etc/bitlbee/bitlbee.conf

Here are the important options to set:

  • RunMode: How the bitlbee server should run. Options include: Inetd, Daemon, ForkDaemon.
  • User: The user that bitlbee server should run as. bitlbee makes sense here.
  • DaemonInterface: Which network interface to use. The default should be fine.
  • DaemonPort: Which port to use. The default should be fine unless you’re already using it for IRC or ZNC (bouncer).
  • AuthMode: I recommend setting this to Open and then to Registered after you’ve registered yourself.
  • AuthPassword: Needed to login to closed systems. Generate a hashed password with bitlbee -x hash .
  • OperPassword: Unlocks operator commands. Generate a hashed password (see previous bullet).
  • ConfigDir: Make sure this is the same thing specific in the configure option. In this example, it’s /etc/bitlbee.

Here are the example conf directives:

RunMode = ForkDaemon
User = bitlbee
DaemonInterface = 0.0.0.0
DaemonPort = 6667
AuthMode = Open
AuthPassword = md5:SECRET_HASH
OperPassword = md5:SECRET_HASH
ConfigDir = /etc/bitlbee

Add bitlbee user

Now you need to create that system user and make sure it can read the conf file:

sudo adduser --system bitlbee
sudo chmod -R +r /etc/bitlbee

Start the server

Now run the server:

sudo bitlbee -c /etc/bitlbee/bitlbee.conf

Usage

Connect with your IRC client

Open your IRC client and add the bitlbee server just as you would any IRC server. Here’s what it looks like in X-Chat:

mybitlbee server in xchat
mybitlbee server in xchat

Server password will be whatever you put for AuthPassword in your bitlbee.conf. It doesn’t matter what you have for nickname, user name or real name. These will be used when you register with bitlbee.

Register your user

register <password>

You should then see

<@root> Account successfully created

On subsequent sign ins you’ll need to identify just like you do with NickServ:

identify <password>

Now that you’ve registered your user, it’s a good idea to change AuthMode to Registered in your bitlbee.conf.

Setup your accounts

When you first start BitlBee, you won’t have any chat or Twitter accounts so you’ll need to set them up.

<@christiek> account list
<@root> No accounts known. Use `account add' to add one.

So let’s setup gtalk:

<@christiek> account add jabber myemail@gmail.com
<@root> Account successfully added with tag gtalk
<@root> You can now use the /OPER command to enter the password
<@root> Alternatively, enable OAuth if the account supports it: account gtalk set oauth on
<@christiek> account gtalk set oauth on
<@root> oauth = `on'

Now the gtalk account is configured, but it isn’t turned on:

<@christiek> account list
<@root>  0 (gtalk): jabber, christiekoehler@gmail.com
<@root> End of account list

So we’ll turn it on and follow the prompts to complete the oauth authentication:

<@christiek> account gtalk on
<@root> jabber - Logging in: Starting OAuth authentication
<jabber_oauth> Open this URL in your browser to authenticate: URL
<jabber_oauth> Respond to this message with the returned authorization token.
<@christiek>TOKEN

Visit the BitlBee wiki for instructions on how to setup other chat networks or Twitter.

Time to chat!

Once you’ve configured a chat account and are connected, you’ll see your contacts listed as you would regular IRC users.

To initiate a chat you can use IRC commands:

/query robert.mith

How to Install Firefox and Thunderbird (Including Beta, Aurora & Nightly) on Ubuntu

One of the first things I do when setting up a new machine is install Firefox, Firefox Nightly and Thunderbird Aurora. There isn’t one source for all of these programs, and I always forget where to get each of them and how to make language packs work.

This article explains how to install the various releases of Firefox and Thunderbird on Ubuntu.

Overview of Firefox Builds

At any given time, there are four builds of Firefox available:

  • Release: Highly tested, relatively bug-free and stable. This is the build most people should use.
  • Beta: Needs a few final touches, but is otherwise stable and almost ready for prime-time. This build is for those who want a preview of upcoming features and are will to put up with a few minor bugs here and there.
  • Aurora: Aurora is a pre-Beta build. It’s most stable than a nightly, but not as stable as a beta. Use this build if you want a balance of cutting-edge features and stability.
  • Nightly: The most cutting-edge build you can get. It will have the most recent features, but might not be completely stable. Use this if you have a high tolerance for bugs.

Release

The most current release of Firefox should be available in the official Ubuntu repositories for all recent versions. As of the writing of this post, release from Quantal (12.10) to Precise (11.10) have Firefox 17, which is the current release version. The official repository for Raring (13.04), not yet released, has a beta build of Firefox 18.

Moreover, Firefox comes installed by default for these versions of Ubuntu. You shouldn’t have to do anything to install it. If you’ve un-installed it for some reason, you can install it with:

sudo apt-get install firefox

UPDATE 7 Jan: A commenter mentioned Ubuntuzilla, which I did not know about before. If you’re on a version of Ubuntu prior to 11.10 and want to install the current version of Firefox, this could be a good option for you.

Beta

A group called Mozilla Team maintains a repository for Firefox Beta (as well as and Thunderbird Beta).

To install from these repositories, first you have to add the ppa:

sudo add-apt-repository ppa:mozillateam/firefox-next

For Thunderbird, the command is:

sudo add-apt-repository ppa:mozillateam/thunderbird-next

Note: if your system doesn’t have add-apt-repository for some reason, try installing python-software-properties and if that doesn’t work then try installing software-properties-common.

Then update packages and install:

sudo apt-get update
sudo apt-get install firefox

Note: You’ll notice that this package name is the same as it is in the official repository. This means that you can’t have both installed at the same time. You can ‘pin’ a package to a given source and version, allowing you to install a specific version from a specific source. But, as long as the package names are the same, they can’t be installed concurrently. You’ll have to compile and execute one version from the source if you want to do this.

(If anyone knows how to re-name packages within a PPA, let me know how in the comments.)

Aurora & Nightly

Aurora & Nightly packages are maintained by Ubuntu Mozilla Daily Build team and there is one PPA for Firefox and Thunderbird nightlies, and then two other PPAs for the Aurora versions of each.

Installing Aurora versions:

sudo add-apt-repository ppa:ubuntu-mozilla-daily/firefox-aurora
sudo add-apt-repository ppa:ubuntu-mozilla-daily/thunderbird-aurora
sudo apt-get update
sudo apt-get install firefox
sudo apt-get install thunderbird

Note: See note in previous section regarding the limitations of packages with the same name.

Installing nightlies:

sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa
sudo apt-get update
sudo apt-get install firefox-trunk
sudo apt-get install thunderbird-trunk

You’ll notice that the packages names for both Firefox and Thunderbird are appended with ‘-trunk’. This means you can install and run nightly versions along side release, beta or aurora. In fact, this is what I do. I install and use release and nightly.

Installing Locales / Language Packs

For whatever reason, I’ve had a lot of trouble getting other locales to work with Firefox on recent versions of (X)Ubuntu. I always try installing the relevant language pack from the official repository. Packages like language-pack-de and language-pack-es should install everything you need for those locales, including the language packs for Firefox. But it never works. Here’s a method I’ve found that reliably works, at lease in 12.10.

Install your desired language pack xpi from:

You’ll also need to set your preferred language for displaying pages.

  1. In Firefox, open Preferences > Content.
  2. Under Languages press Choose.
  3. If you don’t see your desired language, click Select a language to add… and add one.
  4. If this doesn’t work, open about:config and set general.useragent.locale to your desired locale.

Almost there. Firefox will select the language pack to use based on what the system language is. If you’re not sure what your locale is, type this in a prompt:

printenv LANG

In my case, I get:

en_US.UTF8

This presents a problem because I don’t want to have to change the language for my entire system just to test another locale in Firefox. Luckily, there’s a solution.

You can start Firefox from the command line and specific the LANG environmental variable:

LANG=es_ES.UTF8 firefox

If you want to change the menu and/or or launcher command, you would use:

sh -c "LANG=es_ES.UTF8 /usr/bin/firefox-trunk %u"

Troubleshooting

I tested the above procedures on Xubuntu 12.10 with both Firefox release and nightly (trunk). If you have trouble with other configurations, let me know.

If you install a language pack that renders Firefox unable to start, start it in safe mode and remove the language pack. From the command-line, issue:

firefox --safe-mode

Please Join Me in Supporting the Ada Initiative

The Ada Initiative is a not for profit organization with the goal of supporting women in open technology and culture. The organization is currently fundraising for operating expenses through March of next year. They are very close to reaching their goal, but need your help! I’m a recurring supporter of the organization, and have just made another donation in solidarity with Sumana and Leonard’s generous offer of a $10,000 matching donation towards this goal.

If you want women to increase women’s participation in open source and you want women to feel welcome and safe doing so, please consider a contribution. Your money will be used for many awesome programs, including: imposter syndrome training, career development resources, supporting women in submitting their first patches, resources for conference organizers, and much more.

Vegan Moral Superiority and Other Misunderstandings

Since moving to Portland 4 years ago, I have only traveled back to California once to spend Thanksgiving with my family. There are many factors that go in to my decision to stay in Portland for the holiday: the hassle and expense of travel, the possibility that weather negatively impact travel, having to be away from my community here, the typical stress that comes with the holidays and family, and my desire to participate in an all-vegan Thanksgiving.

Every year, Sherri and I thoughtfully consider what we will do for Thanksgiving: stay in Portland, or go see my family in Sacramento. I don’t see my family a lot, so each year this is a tough decision. Mostly due to some other family circumstances, we briefly decided to spend this year’s holiday with my family. We discussed the negative feelings that would arise from participating in a non-vegan Thanksgiving. We decided that we’d bring enough vegan items from Portland (rolls and pies from Sweetpea), and would cook some of our favorite dishes so that we had plenty to eat. This seemed like a reasonable coping strategy.

However, as we got closer to Thanksgiving week, I realized I was not looking forward to our trip at all and that it had everything to do with our having to celebrate with a dead turkey and dead pig at the family table, amongst other non-vegan items. I realized it was just not possible for me to celebrate, or even to feel fully connected and present under those circumstances. I talked with Sherri about this and she agreed. I called my mother shortly afterwards and told her we’d be staying in Portland to celebrate a vegan Thanksgiving with friends. At the time, she seemed to understand.

Up until now, I had always assumed that my family understood and respected why I was vegan, even if they are not themselves vegan. When I visit, my mother makes sure to buy things I can eat and makes vegan meals. If we go out as a family, we go to a restaurant where there will be plenty I can eat. Between this and never having been interrogated about my veganism, I assumed that my family understood where I was coming from.

But conversations I’ve had with family members since telling them I couldn’t enjoy or, in good conscience, participate in a non-vegan Thanksgiving have left me feeling like they don’t understand at all, and really don’t respect or value my veganism as I would like.

As I’ve mention before on this blog, being vegan is an essential part of my moral, ethical and spiritual life. It is a necessary part of my commitment to the five precepts of not harming, lying, stealing, misusing sexuality or intoxicants. Being vegan is part of what makes me a whole, integral person. It is not a lifestyle choice any more than choosing not to murder or be violent towards humans is a lifestyle choice. It is not something I choose to turn off when it is inconvenient.

Being vegan, in and of itself, has been very easy for me. I am fortunate enough to live in a Western, industrialized and highly affluent society where whole grains, legumes, nuts, as well as fresh fruits and vegetables are abundant. I can easily find shoes and other clothing items that do not use animal-derived materials. There are times when I am directed by my doctors to take a medicine that is probably not purely vegan (as this is impossible given how pharmaceutical r&d works). I make exceptions here, when alternatives aren’t available and when my health is at risk. Luckily, these circumstances do not arise that often.

In talking with my family this week, a few things came up that really bothered me. I want to address those issues here, because they have come up in my conversations with other people as well, and I think they are representative of common misunderstandings between vegans and omnivores.

Misunderstanding #1: Vegans are judgmental of omnivores’ decisions. They feel morally superior to omnivores.

I have no doubt that some vegans feel this way about omnivores (and non-smokers about smokers, and non-drinkers about drinkers, etc.). But, by and large, the vegans I know, including myself, do not. The process of how to behave in our world is a highly complex, intimate and individual thing. I don’t ever pretend to understand all the issues that a single person has to contend with in navigating their own life. The decision to be vegan, like any other fundamental belief, has to be made from within. I don’t expect anyone to become vegan because I am, or because of something I say.

That being said, I do not believe veganism is a matter of opinion and I do believe it to be a moral issue. Do I believe it’s wrong to treat animals as property, raising and killing them for food? Yes, I do. Do I believe the world would be better off if more people were vegan? Absolutely. There really isn’t a question about that. It would be better for human health, for our environment, and certainly for the animals themselves.

Having beliefs and being consistent in my actions around them does not automatically constitute me judging those who do not share those beliefs. I also feel the world would be better off if no one misused tobacco, or alcohol, or heroin, or cocaine. But it doesn’t mean that I find users of any of those substances to be bad people.

The goodness of a person is the sum total of their life experiences and decisions and it isn’t something I can ever know or judge and I don’t even try.

Misunderstanding #2: We’re not forcing you to eat non-vegan food, so why should it bother you to be part of a meal where other people are eating non-vegan food?

There are a couple of parts to this.

The first is logistical. It’s annoying to be at a party where you can’t eat everything. Not sure what this is like? Next time you’re at a party or potluck, pick one or two dishes at random and limit yourself to eating only those. Most of the time, that’s what it’s like for vegans, if we’re lucky. And if we’re really lucky, both dishes are something we actually would like to eat. It gets annoying very quickly to have extremely limited food options and to always have to vet every dish before you eat it. When it comes to Thanksgiving, I want to be able to fully partake in the feast and enjoy a bit of *every* dish.

The second has to do with feeling like an outsider. When I sit down to a meal that includes non-vegan items I immediately feel like the odd man out. I am the weird one with the weird diet rules and I can’t fully participate. This can be compounded by how often the other guests will talk about how delicious the non-vegan food is, or otherwise draw attention to it. I cannot possibly share in this experience and I can’t possibly ignore it either. If you are someone who has had other experiences where you feel like an outsider (e.g., you’re part of another minority group, you feel like the black sheep in your family, etc.) these feelings of otherness and exclusion can be further compounded.

The third has to do with the physical and emotional discomfort that arises during shared non-vegan meals. The odor of cooked flesh and of dairy milk and cheese is unpleasant to me. The sight of cooked flesh is upsetting. Whereas an omnivore might see cooked flesh and think “yum, delicious,” I can only think about a life that’s been unwillingly sacrificed. For reasons I am still trying to figure out, the magnitude of this discomfort is proportional to the significance of the shared meal.

Misunderstanding #3: You’re letting your veganism get in the way of connecting with family and friends.

This one really baffles me.

First off, why is it never phrased as “you’re letting your omnivorism get in the way of connecting with family and friends”? Because of their minority status, vegans are assigned all of the responsibility for any disconnect that is created between themselves and their non-vegan relatives and friends. I don’t think this is fair and I would like to see more omnivores examine what they can do to make the vegans in their life more comfortable. If you have a vegan relative in your life and you’ve never considered having an all-vegan Thanksgiving for them, I think you should.

Secondly, I have plenty of both vegan and non-vegan friends with whom I related very well. The omnivore friends that I get along with well understand and respect my veganism. They do this by never asking us to compromise on having non-vegan items in our home (even when we host). They understand when we don’t accept invitations to events where non-vegan items will be celebrated. Most of all, they are confident enough in their decision to remain omnivores that they don’t feel threaten or judged by my being unequivocally vegan.

Misunderstanding #4: Other vegans I know are not so stringent, why are you?

This is an impossible question to answer since I can’t know the minds and hearts of other vegans as if they were my own. But I can take some guesses as to what’s going on.

For the purposes of this exploration, I will assume that the vegans of which you speak are truly committed vegans (e.g. not just when it’s convenient), that they are vegan in more than just diet and that they are vegan because of their desire to recognize that animals are deserving of rights. This is the kind of vegan I am, so it’s really the only situation to which I can speak.

The first thing that comes to mind is that these vegans are not yet confident in their understanding and their ability to talk about the moral foundations of veganism. It is a complex topic, and a minority view at that. It is not easy to talk about to a mainstream audience, one which is often to be hostile towards the idea of veganism from the start.

The second thing that comes to mind is that the person may not want to make themselves a target for ridicule, ostracism or interrogation. Vegans are often asked all manner of questions about their diet, what they do and don’t eat and how they get proper nutrition. These questions can be invasive, and even when they are not, it gets tedious to field the same questions over and over again, often from those who are largely ignorant about nutrition. The questions frequently feel judgmental rather than exploratory. Moreover, we live in a culture where vegans are regularly made fun of in the media and pop culture and this is often in our minds when we make the decision whether or not to identify ourselves as vegan and committed ones at that.

The third, and more serious issue that comes to mind is that people act in ways that are contrary to their personal beliefs all of the time. History is rife with examples of this. I don’t quite understand why this is, but it happens enough that it’s clearly a part of human nature. I recently read something in Slate about the Penn State sex abuse scandal that shed some light on this particular issue, so I’ll share it here:

“[non-action/non-reporting is] a reflection of a universal human tendency to look out for oneself, and to preserve hierarchical institutions about which one cares and upon which one is dependent. It’s also a reflection of the nearly boundless capacity to ignore inconvenient facts and to make excuses for those within our own circle.”

It takes a whole lot of energy and moral courage to be vegan in the first place and even more so to disrupt the institutions upon which we rely. I can understand why many vegans are not yet ready to go this far and may appear to be okay with living in a non-vegan world.

Conclusions and Further Reading

I feel a bit better getting that off my shoulders. I hope that my family (and others) will read what I’ve written and understand a bit better where I’m coming from.

One last thing I want to say is that while more and more omnivores are thinking critically about where their food comes from, I don’t think many have bothered to read up on animal rights in order to understand what motivates the vegans in their life. I certainly hadn’t done this before I was vegan. Consider reading up on the issues if you really want to understand what makes your vegan tick. Here are some good starting points:

P.S. I’d also love to hear from other vegans who have gone through similar situations with your family and friends. How do you cope with shared non-vegan meals. Do it bother you? Why? If it doesn’t bother you, why not? How did you communicate to your loved ones about your veganism and it’s importance in your life?

Veganism Isn’t a Buddhist Teaching (Yet)

I’ve written here before about my struggles being a vegan in a non-vegan sangha. It’s been so painful of a process that I’ve taken several months off of sanga activities, including weekly group meditation. Recently I’ve had a breakthough on the subject that I wanted to share.

What I realized, and it seems so simple to me as I’m writing this, is that veganism isn’t actually a Buddhist teaching. At least not directly.

For me, veganism and spiritual practice are inexorably linked. I came to veganism because for the five precepts. I took it to heart the they should apply to all sentient beings, animals and humans alike. For me, the link is clear and obvious: skillful application of the precepts necessitates being vegan. And I think in a sense, I’ve really been holding it against my fellow practitioners for not having this same view.

Here’s the thing, though: Veganism as a concept is in its infancy. It’s less than a hundred years old. Buddhism is over two thousand years old. Talking about veganism in the context of human life as it was 2500 years ago doesn’t make a lot of sense. It particularly doesn’t make a lot of sense as differentiated from vegetarianism, for which there is conflicting directives about within the Buddhist cannon (in so much as there isn’t an overwhelming agreement that there is evidence that vegetarianism was mandated by the Buddha).

Today, however, 56 billion (land) animals a year are breed and killed for use as food. This number doesn’t include the scores of marine life we also kill for food, and animals we kill for clothing, lab experiments, etc. The animal products we consume as food are not required to thrive, but consumed for pleasure and convenience. Unfortunately for us, this pleasure and convenience is also killing us (read Eat to Live and the China Study if you are unclear about this).

It is important to distinguish strict vegetarianism (vegan) from non-strict vegetarianism now (as opposed to during the Buddha’s time) because the way we treat animals today is nothing like how animals were treated when the Buddha was alive. Under our system of industrialized animal agriculture, meat, cheese, eggs and other animal products are indistinguishable from one another in terms of the amount of suffering they inflict. I firmly believe that if the Buddha were around today, he would teach veganism. Some Buddhist teachers, like Thich Nhat Hanh, already have switched to being vegan and are encouraging their students to do likewise.

However, Buddhism can’t be separated from the cultures in which it is practiced. In reality, a great number of Buddhists are vegetarians, but many are not and even fewer are vegan. And this has been the case for a very long time. Some Buddhist traditions, like Chan, are more vegetarian-leaning than others. Practitioners in my lineage (Zen) are particularly known for being omnivores.

My point is that I can’t really expect anything more from my Sangha, including my teachers, than what is clear and present in Buddhist teachings and traditions. And, unfortunately, veganism isn’t one of those things. What I now understand is that a practitioner can be wise, compassionate, and mindful and be an omnivore as well.

Am I still saddened that I don’t know a lot of Buddhist teachers who are vegan? Yes, I am. Do I wish more Buddhist practitioners would include all sentient beings in their skillful application of the precepts and thereby practice veganism? Yes, I do. Do I think that people, Buddhist and otherwise could be even more compassionate by practicing veganism? Yes. But I no longer expect this simply because someone is Buddhist. And I feel less anger and resentment towards Buddhists who are not vegan.

But I have also recognized that because veganism is at the foundation of my spiritual life, I need a spiritual guide who is herself vegan. So, I will continue my search for one. In the meantime, I feel better at the idea of practicing again with my mostly non-vegan sangha. Though, I think I will still avoid shared meals (particularly ones of celebration).

I do think that Western Buddhism, as young a veganism itself, has a tremendous opportunity to bring greater compassion to the world through veganism. I look forward to spreading vegan education to my sangha members (far and near, Buddhist and otherwise).