Wednesday, April 12, 2023

Me and My Shadow

 Me and my shadow, strollin' down the avenue
--"Me and My Shadow," lyrics by Billy Rose

Shame, embarrassment, humiliation--these are the forces that divide the self into my ego--the part of myself that is recognized as self--and shadow--the part of myself that is seen as other. My ego is not consciously aware of shadow, but it sees shadow everywhere, all the time, outside myself, because my shadow is projected outward onto others. Shadow work is the development of awareness of and compassion for shadow, and eventually, the integration of shadow.

The popular fear regarding shadow is that deep inside, we're all axe murderers. It's the idea that my shadow is a dark cell imprisoning horrible monsters just waiting for the chance to leap out. But in reality, the shady prison holds sobbing children, spurned lovers, betrayed friendships.
All these imprisoned bits of self are guarded by complexes, habitual intense emotional reactions that defend my ego against shadow. Complexes are the real monsters, not the shadow itself. To keep from being overwhelmed and swept up by reactive emotions, meditation practice is a necessity. Simply becoming aware of complexes is a huge step. To work with shadow, I have to develop presence to the point where I can remain mindful while experiencing emotional eruptions. When a complex can be tolerated, then the pain underneath the fear and anger can be experienced.
Shadow work comes in many forms. Dreamwork, journaling, doing art, entering psychotherapy--these are just a few of the many ways to work with shadow. I'll look at several in the next few posts.

Tuesday, March 28, 2023

Sailing Past the Sirens

Ulysses and the Sirens, by H. J. Draper

Come this way, honored Odysseus, great glory of the Achaians, and stay your ship, so that you can listen here to our singing; for no one else has ever sailed past this place in his black ship until he has listened to the honey-sweet voice that issues from our lips. --The Odyssey, Book XII

Meditation can be categorized in many different ways. In my practice, I do what some would call mindfulness meditation, an umbrella term that includes focus meditation, transcendental meditation, vipassana, and open meditation. In mindfulness meditation, the meditator can focus on something, for example, a mantra, the breath, a candle flame, or a mandala. Or, the meditator can just open to the present experience. During mindfulness meditation, perceptions arise, either external, such as sounds, or internal, such as thoughts. The meditator opens to the perception and releases it. If the meditator is using a focus of meditation, the meditator returns the attention to the object of focus. Mindfulness meditation has no goal; the meditator simply experiences each moment.

When Odysseus sailed past the Sirens, he had his crew plug their ears with wax, but he had himself bound to the mast with unstopped ears, so that he could hear their singing. In mindfulness meditation, my commitment to my practice binds me to my seat, and I listen to the singing of my thoughts and emotions. The allegory breaks down when I am swept up by the inner song. But unlike Odysseus and his crew, I can swim back to my ship and try again, over and over. This continual return is the practice. There is no purpose other than to experience whatever happens.

There is nothing wrong with using other kinds of meditation for other ends. Guided meditation steers you through some scenario to achieve some purpose. Augmented meditation uses special sounds, such as binaural beats, to help you achieve some particular state of consciousness. But these other types of meditation are not a replacement for mindfulness meditation. Since mindfulness meditation is all about remaining present with whatever comes up, it develops and strengthens the ability to remain present in everyday life, when you’re not meditating.

Much has been written about meditation. Heck, I’ve even written about it—Meditation 101, Meditation and Compassion, Whole Lotta Nothing, and Greeting My Experience. In general, simpler is better. I like the way Peter Russell teaches meditation; he emphasizes simplicity and ease. Peter's writing and videos would be a good way for anyone to learn meditation.

Sunday, March 26, 2023

The Practice of Compassionate Presence

This post begins a series about spiritual practice. I’ve been meditating for nearly 50 years. I’ve attended several different types of retreats and programs and have incorporated bits and pieces from many of them into my practice. I’m also a husband, father, retired IT professional, and former editor. I can speak about practice from the context of everyday life, not from the point of view of some kind of enlightened master. I don’t claim that anything I say will be new or unique, but my perspective may be different from that of a spiritual teacher.

For me, spiritual practice has two aspects: the cultivation of presence or mindfulness, and the nurturing of compassion or open-heartedness. Compassionate presence, open-hearted mindfulness—this is the essence of spiritual practice. Both aspects support each other. Presence gives clarity and awareness. Without mindfulness, I’m at the mercy of my reactive patterns and mindless habits. But presence without compassion is brutality. Without compassion, I stand naked before my inner judge, with no hope of mercy.

Open-heartedness allows me to accept the pieces of myself that I have rejected, those parts of me that embarrass or disgust me and that I project outward onto others. The good news is that these bits of me also contain lost gifts. They are the doorway to my native wisdom. Without compassion, I risk falling into tyrannical cynicism. But compassion without mindfulness is ungrounded and potentially delusional.

Meditation is essential to the cultivation of mindfulness. Meditation nurtures the ability to be present with whatever arises without being overwhelmed. Shadow work is the wellspring of compassion. The shadow is the part of myself that I cannot recognize or accept. By working to become aware of and befriend my shadow, I develop compassion for myself and others.

Open-hearted mindfulness, compassionate presence--this is the focus of my practice. I'm a work in progress, not a finished product. I don't live each moment in complete mindfulness and total open-heartedness. But that's the direction I'm headed, I hope.

Thursday, October 8, 2020

My Raspberry Pi 4 Desktop System


A couple of months ago, I bought a 4 GB Raspberry Pi 4 and decided to see whether I could use it as a desktop system. After some trial and error, I finally have come up with what seems to me to be a usable configuration.

The first decision I made was the case. I'd read online that heat was an issue with the Pi 4. To keep the Pi from throttling from overheating, you can either use an active heat dissipation system--a fan or even a liquid cooling system--or you can use a passive system, with large heat sinks and enough surface area to shed heat. I don't want a noisy fan, so I read several online reviews and bought a case from Flirc. The Flirc case is designed to be a heat sink. It has a column that seats atop the CPU and conducts heat up into the case. The Flirc works well; my Pi 4 has never come close to throttling due to excessive heat. The idea seems to have caught on, and there are other similar cases on the market now.

Since I was aiming for a cheap desktop system, I didn't want to buy expensive, high-end peripherals. I bought an Acer KA220HQ monitor, and I tried an Amazon Basics wireless keyboard/touchpad before settling on a Logitech K400 Plus wireless keyboard/touchpad. Eventually, I replaced the keyboard/touchpad with a Logitech K380 Bluetooth keyboard and Logitech M535 Bluetooth mouse--more about the monitor and input devices later.

Since my Pi 4 was going to be a desktop system, I wanted it to be able to have adequate audio and video capability. The built-in audio on the Raspberry Pis isn't great, so I looked for a digital-to-analog converter (DAC). Because I'd already ordered the Flirc case, I decided to buy a USB DAC instead of a HAT (hardware attached on top). I picked the Sound Blaster PLAY! 3, a nice reasonably priced USB DAC. I bought Logitech S120 stereo speakers and a Cyber Acoustics ACM-51 microphone to use with the Sound Blaster. For video, I bought a Raspberry Pi camera module V2 and a Makeronics clear acrylic holder case. The ribbon cable is clunky, but it works.

Once I had all the pieces, I plugged them together and had a great little inexpensive desktop system. Well, no, not at first. The first Pi 4 I ordered, I tried several micro HDMI to HDMI cables, but I couldn't get any of them to seat properly in the micro HDMI port on the Pi 4. I contacted Canakit, the company that sold me the Pi 4. They replaced the Pi 4, and the new one worked.

I installed Pi OS (formerly Raspbian) and ran into my second hurdle. The monitor randomly blanked. I read up on display issues with Raspberry Pis--the online documentation for boot configuration options was especially helpful. It appears that the Pi 4 can't read the EDID (extended display identifcation data) from the Acer monitor. I tried downloading the EDID data into a file and editing config.txt to use the file, but that didn't work, either--the system came up in 640x480. I eventually came up with a boot-time HDMI configuration that improved the screen blanking problem, but even with that, I also have to manually set the mode and group for the display each time I booted the Pi 4. The screen still randomly blanks once in a great while--an annoyance, but I can live with it.

The Pi 4 was barely usable as a desktop system. It was slow and not very responsive. Looking around online, I found several blog and video posts that suggested that Ubuntu Mate is much snappier. I installed Ubuntu Mate on a second SD card and gave it a try. It did seem more responsive, and it also seemed to get along better with my Acer monitor--it was able to identify the Acer. My subjective impression was that Ubuntu ran a little hotter than Pi OS. The deal breaker for me was that I never could configure Ubuntu to use the camera.

Doing some more research, I came across suggestions that using an SSD (solid-state drive) instead of an SD card would greatly improve performance. I bought a 120 GB Western Digital Green SATA SSD and a Sabrent M.2 SSD to USB 3.0/SATA III enclosure. I made sure that the Sabrent enclosure could do UASP (USB attached SCSI Protocol) rather than the slower USB storage protocol. When I first got the SSD, USB booting was not in the default critical Pi OS stream, so I had to switch to the stable stream. But it worked, and the SSD really improves performance. And now, USB booting is available in the default Pi OS stream.

By this point, I had only one open USB port available for anything else I'd like to use with the Pi 4, such as a flatbed scanner or a thumb drive, so I bought an Anker 4-port USB 3.0 hub, which worked well. As I plowed through more online articles and videos, it became clear that power can be an issue with the Pi 4. I read advice to use powered USB devices, rather than ones that draw power from the USB bus on the Pi 4. I thought that power could have something to do with the screen blanking problem. So, I bought a  UGREEN SATA to USB 3.0 adapter cable and an Atolla powered USB 3.0 hub. I also got the Logitech Bluetooth keyboard and mouse, to free up another USB 2.0 port. The powered adapter cable worked fine with the Sabrent enclosure. But when I tried using the powered USB hub, it interfered with the SSD--the SSD became corrupted, and I had to reinstall. So, I ditched the powered hub and went back to the Anker.

By now, I had a usable system, but the SSD and USB DAC and the hub were taking over my desk. So, I got a Yahboom Raspberry Pi cluster case. The Pi 4 in the Flirc case sits on top--the case is too tall to fit between the shelves. The Sound Blaster DAC and the USB hub fit in the middle shelf, and the SSD sits on the bottom shelf.

I'm pretty happy with this setup. The system works reasonably well. Once in a great while, the display will blank, and I've changed my browser habits so that I have a minimum number of tabs active at any one time. But this is a usable desktop system.

Saturday, September 19, 2020

Network Monitoring, Static Addresses, and WiFi Extenders

In my previous post, I wrote about turning a Raspberry Pi into a network monitor, using Nagios and arpwatch. If you want to use Nagios to monitor networked equipment, then each piece of monitored equipment needs to have a static IP address--an IP address that never changes. Most networked devices are configured by default to request an IP address via DHCP (Dynamic Host Configuration Protocol) from the WiFi router, and by default, WiFi routers will assign a dynamic IP address--an IP address that might be different each time the device boots up.

There are two ways to go about assigning static IP addresses. You can configure each networked node's network interface, using whatever management tools the node might have. You'd have to manually configure each device, and you'd need to keep track of the IP addresses so that you don't accidentally assign two nodes the same address. You'd also want to be sure that all the IP addresses lie outside the range of dynamic addresses that your WiFi router doles out.


The easier, more centrally managed solution is to use your WiFi router to assign static addresses. Most WiFi routers let you configure static addresses that the router will assign via DHCP. This is probably a writable table of MAC (media access control) addresses and their corresponding static IP addresses, as in the image above--on this router, the table is called a DHCP reservations list. The beauty of this approach is that you only need to configure your WiFi router and then reboot your networked equipment. This is the method I used.

All went well--until I added a WiFi extender to our home network. We live in a split-level home, and our WiFi router sits on a shelf in a closet on the ground floor. Signal strength is not the best on the top floor. We'd recently visited some friends, who'd asked me to configure a new WiFi extender they'd bought, a TP-Link AC750. It wasn't hard to set up, and it seemed to work fine. Back at home, I decided to buy one for the top floor. When it arrived, I configured it and reconfigured a couple pieces of equipment to use the extender. The extender worked well, except that monitored devices that used the extender no longer were visible in Nagios. A quick glance showed that they'd new IP addresses, not their static IP addresses. What had happened?


I logged into our WiFi router's management interface and looked at the client status. I could see that the TP-Link had changed the MAC addresses of the devices that were using the WiFi extender. The TP-Link had substituted the first three bytes of its MAC address for the first three bytes of each device's MAC address. The simple fix was to change the MAC address in the DHCP reservations list to match the new MAC address the TP-Link was using.

I don't know whether the altering of MAC addresses by the TP-Link is common to all DHCP relays, or whether this is something unique to this brand of WiFi extender. In any case, although it's annoying to have to change the DHCP reservations list every time I switch a device from the WiFi router to the extender or vice-versa, it's not a difficult work-around.

Saturday, August 1, 2020

Setting Up a Raspberry Pi 3 as a Home Network Monitor

I repurposed my Raspberry Pi 3 to monitor our home network. In the picture, it's the small black box underneath the white cable modem and to the right of the cable amplifier. I followed the steps outlined in the article "How to use Raspberry Pi to monitor network? (Nagios)" by Patrick Fromaget, at his website RaspberryTips. I ran into a couple of head-scratchers when I installed Pi OS Lite. Out of the box, the OS was configured for British keyboards, and it was a little tricky choosing the right options for my cheap wireless keyboard/trackpad. The other roadblock was that wi-fi was disabled. To enable it, I had to unblock it:

rfkill unblock wlan
shutdown -r now

I'd had some experience with Nagios, so I had no problems building and installing it from source, following Fromaget's instructions. I customized Nagios to monitor the temperature of the monitoring Pi. First, I added a /usr/local/nagios/libexec/check_cputemp executable. It's a shell script:



if [ -z $cpu_temp ]; then
  echo "UNKNOWN - Undefined CPU temperature"
  exit 3
if [ $cpu_lo_crit -gt $cpu_temp ]; then
  echo "CRITICAL - CPU temperature $cpu_temp too cold"
  exit 2
if [ $cpu_lo_warn -gt $cpu_temp ]; then
  echo "WARNING - Low CPU temperature $cpu_temp"
  exit 1
if [ $cpu_temp -gt $cpu_up_crit ]; then
  echo "CRITICAL - CPU temperature $cpu_temp too hot"
  exit 2
if [ $cpu_temp -gt $cpu_up_warn ]; then
  echo "WARNING - High CPU temperature $cpu_temp"
  exit 1
echo "OK - CPU temperature $cpu_temp"
exit 0

Next, I added a check_local_cputemp command, by adding these lines to /usr/local/nagios/etc/objects/commands.cfg:

define command {

    command_name    check_local_cputemp
    command_line    $USER1$/check_cputemp

Then I added a CPU Temperature service to localhost, by adding these lines to /usr/local/nagios/etc/objects/localhost.cfg:

define service {

    use                     local-service
    host_name               localhost
    service_description     CPU Temperature
    check_command           check_local_cputemp

Then I restarted Nagios. Now, the services page has a CPU Temperature service for localhost.

I also wanted to monitor new equipment that might pop up on our home network, so I installed the  arpwatch and Postfix packages. I administered  a sendmail server for quite a few years, but that would be overkill for a network monitor. For information about installing and configuring Postfix to send outgoing mail, see Tutorial - Install Postfix to allow outgoing email on Raspberry Pi, at the Ste Wright website. Basically, I did a sudo apt-get install postfix and specified the Internet site and default hostname.

I installed arpwatch with sudo apt-get install arpwatch. Then I configured arpwatch to email me whenever anything new happened on the network, by creating the file /etc/arpwatch/wlan0.iface with the single line IFACE_ARGS="-m my@email.address" (where "my@email.address" is a valid email address to receive arpwatch messages). Then I issued the commands:

sudo systemctl enable arpwatch@wlan0
sudo systemctl start arpwatch@wlan0

For more information about configuring arpwatch, see How to monitor Ethernet Activity using Arpwatch tool, at LinuxHelp.

Once I had the Pi configured, I shut it down and mounted it, headless, on my crude network equipment board. It was easy, the classic Raspberry Pi case has two holes in the base for mounting. I plugged the power supply in, and it works!

Tuesday, June 23, 2020

Greeting My Experience

Why do people give up on meditation? "I can't make my thoughts go away." "It's boring." "Nothing happens." "I get fidgety." These are all variations on the same theme: "When I meditate, I don't have the kind of experience I think I should have." All these reasons not to meditate miss the point of meditation. I don't meditate to have a certain kind of experience; I meditate to be more fully present with whatever experience happens while I meditate.

When I meditate, I try to have an open curiosity about whatever comes up. I don't foster an analytical curiosity, a type of curiosity that tries to identify and understand. Instead, I try to develop more of an artistic appreciation of whatever is happening, a curiosity about what this experience actually is. I don't try to resist or push away anything that arises. Instead, I try to greet everything, to welcome anything that comes up. This doesn't mean I try to like everything I experience while I sit. It's a little like wandering through a museum, or listening to a concert, or watching a movie. I may not like everything I'm seeing or hearing or feeling, but I try to appreciate everything as it is.

So, for example, if I'm having thoughts, I just recognize that I'm thinking, and I let it go. I may have the thought, "I'm thinking--I shouldn't be thinking!" Okay, I realize I had that thought, and I let it go. If I feel I've failed because I'm having thoughts, I say to myself, fine, I'm feeling failure--and then I let it go. The same applies to boredom--okay, I'm bored. No big deal, let it go, on to the next moment. If my entire meditation consists of me releasing thoughts or recognizing I'm bored, then that's what that meditation experience was. The point is to accept the truth of each moment, as it is, without resistance.

Over time, this ability to appreciate each moment begins to affect daily life. As I become less likely to react dramatically, I become better able to pause and consider what has happened, and then, I hope, to act more wisely. I become less caught up in regrets about the past and worries about the future; I become more involved with what is happening here and now.

This is the essence of meditative practice. It's not another means of controlling what is happening, it's not one more expectation to meet, it's not one more challenge that leads to either success or failure. It is simply allowing yourself to greet the present moment, whatever it is. Everything else that you might want to get from a meditation practice flows from this.