--"Me and My Shadow," lyrics by Billy Rose
Helpless
Blue, blue windows behind the stars, yellow moon on the rise, big birds flying across the sky, throwing shadows on our eyes, leave us helpless, helpless, helpless. --Neil Young
Wednesday, April 12, 2023
Me and My Shadow
--"Me and My Shadow," lyrics by Billy Rose
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:
shutdown -r now
cpu_lo_warn=-30
cpu_lo_crit=-40
cpu_up_warn=75
cpu_up_crit=85
cpu_temp=$(</sys/class/thermal/thermal_zone0/temp)
cpu_temp=$((cpu_temp/1000))
if [ -z $cpu_temp ]; then
echo "UNKNOWN - Undefined CPU temperature"
exit 3
fi
if [ $cpu_lo_crit -gt $cpu_temp ]; then
echo "CRITICAL - CPU temperature $cpu_temp too cold"
exit 2
fi
if [ $cpu_lo_warn -gt $cpu_temp ]; then
echo "WARNING - Low CPU temperature $cpu_temp"
exit 1
fi
if [ $cpu_temp -gt $cpu_up_crit ]; then
echo "CRITICAL - CPU temperature $cpu_temp too hot"
exit 2
fi
if [ $cpu_temp -gt $cpu_up_warn ]; then
echo "WARNING - High CPU temperature $cpu_temp"
exit 1
fi
echo "OK - CPU temperature $cpu_temp"
exit 0
command_name check_local_cputemp
}
use local-service
host_name localhost
service_description CPU Temperature
check_command check_local_cputemp
}
sudo systemctl start arpwatch@wlan0