Home
Welcome to my homepage. I became blind at birth from retinopathy of prematurity. I developed an early interest in computers and radio. I use Linux, MacOS, and iOS. I have an extra class amateur radio license. I practice Qigong daily. I consider myself a Taoist. I don't drink alcohol, eat meat, or gluten. It makes me feel optimal, and helps with migraines, which I also have to deal with. For the rest, you'll have to read my articles.
Migrating Verizon.net Email to AOL Mail on a Mac
November 01, 2017My Mom has a verizon.net email address. Recently, Verizon sent out notices informing everyone that they would stop handling email, and recommended migrating to AOL.
“I won’t have an aol.com email address, will I?” asked my Mom.
I assured her that she wouldn’t. At first I simply updated the server settings, but in recent days things became unreliable. She could still receive email through POP3, but could not send mail. I also wanted to move her to IMAP. This took three hours and the help of a knowledgeable Verizon tech named Dan to figure out, so I wanted to document the procedure for any other Moms or anyone else in this situation. The AOL help does not include instructions for Apple Mail. That would make it too easy.
This looks kind of scary, but it works. And before I begin, if you don’t keep regular backups then you really should. On a Mac this means buying an external USB hard drive and setting up Time Machine. The procedure to migrate your account involves deleting your existing verizon.net account and creating a brand new account on AOL. Your messages will disappear but they will return if you do this correctly.
Open System Preferences, located in the Apple menu. Go to Accounts. Remove all of the accounts associated with verizon.net. If you have other accounts such as iCloud or Gmail you can leave those alone.
Now add an account. Select AOL for the account type. Enter your email address, for example whatever@verizon.net
. Enter the password and continue.
If you get a warning about a duplicate account, do the following. Open Mail and go to its preferences. Go to accounts and remove any lingering verizon.net email accounts. Close mail’s preferences. Return to creating an account in your System preferences. It gets a little confusing since you have several types of accounts.
It will tell you that you need to create a custom account. For the account type, select IMAP. For the outgoing server, enter imap.aol.com
. For the incoming server, enter smtp.aol.com
. Hit Create
, and with a bit of luck your account should show up in the list of accounts, and your emails should return.
That hurt my head. My mom gave me an apple pastry from La Colombe as a reward. If this post helps someone else in this situation then it will seem worth it.
BarCamp 10
October 18, 2017It all begins at BarCamp! I gave my first speech at the unconference in 2012 and just gave another at the tenth anniversary of this defining event.
For those who don’t know, an unconference has the same type of schedule and format as a conference, except that the conference starts with an empty schedule. If you want to give a talk you show up and put it on the board and they fit it in. The event starts at 08:00 A.M. and they say to get in early to get on the board.
I woke up at 08:30 A.M. and sent in a plea via Twitter which they accepted. I rolled in around 10:00 A.M. and got online. I received an unexpected text message. I had left my keys in the Lyft. They returned them to security and the BarCamp volunteers did a great job assisting me. My Bring Back Mystery Science Theater key ring made them easily identifiable.
I gave my speech at 12:15 PM to a filled classroom. Some people came in and stood in the back at the end. My friend Meg from Snack like a Local showed up. The audience asked some good questions. Someone asked what I listen to. Later I posted some ambient music by the Future Sound of London. I also referenced my setup using the Raspberry Pi to replace AirPlay.
Listen to my Speech
After a half hour the talk ended and we went to lunch. I always look forward to going to the Sitar Cafe. We got back just in time to attend a talk about mnemonics, but we forgot the room number.
The speaker went over some basic techniques to aide in memorization. I knew of the Loci technique because I used it successfully when I gave my talk at TEDx Philadelphia. He also covered the Major System for memorizing numbers, which I once knew and need to relearn.
We took a break and got small smoothies and big cups with chickpeas. Meg wanted to see Rana Mayez, who organized an Arab-American punk festival called YallaPunk. I enjoyed thinking about the link between startups and the punk rock philosophy. I wondered if we would throw our cups in a fit of rage! That didn’t happen, but my cup’s fate seemed sealed.
A little over a month ago I met a guy named Ajmail. I recently told him about BarCamp, and how anyone could give a talk.
“Oh cool. I’m going to give a talk about psychedelics.”
he stated nonchalantly. It went on the board in the afternoon and quickly filled up. By this point a few friends had joined our core group. We found ourselves surrounded by a bunch of people, including many we already knew, which we found funny. Ajmail played a video about psilocybin, and talked about the efforts to make psychedelics more accepted in medical contexts, including a recent study from England. He covered microdosing, a practice which has become popular in Silicon Valley. A woman asked why we keep using spiritual words to describe the experience. Perhaps she will find out. The talk had become a fun mess of several concurrent discussions. Chaos had begun to prevail. Everyone laughed and talked and laughed a little more. My cup of chickpeas fell on the floor! At least they made some cool patterns.
BarCamp had started winding down. They made closing remarks and told everyone about the after party. I decided to tag along, even though I really wanted the opposite - a hardy meal in a quiet setting. We sat at a table at the bar and tried to have a conversation. Meg offered me a coffee covered cricket and I almost ate it before realizing that she meant it seriously. I’ll stick to hemp seed for easy protein!
I enjoyed the company but the party got progressively louder and louder until I could not hear anyone, and conversation became pointless. I got a ride home and crashed. Another unforgettable BarCamp had ended. Psychedelic!
Update, May 2018
Ajmail Matin contracted me to write the mobile platform for his startup. After three months of work done in good faith and in the worst of my eye pain I made it clear that I could not work until I got paid. He disappeared. This has nothing to do with BarCamp, but it does have to do with a person featured in this article. Please take note.
Replacing AirPlay with the Raspberry Pi
September 13, 2017A number of years ago I decided to use AirPlay to stream audio through my condo. I picked the best solution for the time but had issues since day one. For a number of years I tolerated them, but I recently had enough. I have switched to a Linux-based solution using the Raspberry Pi and Snapcast. It works and sounds better, and uses open source software. It costs around the same, but potentially does more.
As soon as I began using AirPlay I realized that I would have to find my own ways of doing things. I have a lot of files in OGG Vorbis and FLAC formats, neither of which Apple supports. I also enjoy using the Music Player Daemon, and would far rather have used that than iTunes.
I wrote a simple article detailing how to play an MP3 stream. A few months later I wrote a more detailed article complete with shell script to make MPD work as an app running in Airfoil, a commercial product from Rogue Amoeba. This solution worked, but I always battled one thing or the other. My Apple TV would drop out. Sometimes sources would disconnect. It never ended.
One day I woke up to find that my Apple TV had updated its operating system. I felt pretty certain I had disabled automatic updates as everyone should. The update broke Airfoil and they did not have an immediate fix. I now had no audio for my analog stereo in the living room. I shuffled my Airport Expresses around, but I knew the end had drawn near.
I had such a great experience switching to Linux for my daily computing needs that I figured why not try it for whole house audio. I first considered PulseAudio over RTP, but read reports of mixed success and battles with network traffic. After a lot of searching and comparing I settled on Snapcast. The server simply takes raw PCM audio from a FIFO pipe and broadcasts it using FLAC. Clients then receive the synchronized stream and output it to an amplifier or speakers.
For hardware I used a Raspberry Pi. I ordered four, one for each of the AirPlay devices. I had one Apple TV and three Airport Expresses. The Pi has low quality audio, so I used the HiFiBerry. It took me a little to figure out which case to use. I recommend the stainless steel model. Better yet, just get the combo. As the tables below show, I ended up spending about the same abount of money for something with much more potential.
Cost of AirPlay Devices
Name | Price | Quantity | Total |
---|---|---|---|
Apple TV | 149.00 | 1 | 149.00 |
AirPort Express | 99.00 | 3 | 297.00 |
Airfoil | 29 | 1 | 29 |
Total | 475.00 |
Cost of my Open Source Solution
Name | Price | Quantity | Total |
---|---|---|---|
HifiBerry DAC+ Standard | 28.90 | 3 | 86.70 |
HifiBerry DAC+ Pro | 39.90 | 1 | 39.90 |
Raspberry Pi | 39.90 | 4 | 159.60 |
Steel Case | 24.90 | 4 | 99.60 |
SD Card (8 GB) | 12.90 | 4 | 51.60 |
Power Supply | 12.90 | 4 | 51.60 |
Total | 489.00 |
After a short amount of waiting my parts arrived. I installed the Snapcast server on my desktop. I installed the client on my desktop and on my Linux laptop to test it. I also installed the Android client on a tablet, and that came through in a pinch. The software worked flawlessly. To get MPD outputting to Snapcast I inserted the following in /etc/mpd.conf:
audio_output {
type "fifo"
name "Snapcast"
path "/tmp/snapfifo"
format "48000:16:2"
mixer_type "software"
}
When it comes to software I can solve any problem I need to, but when it comes to assembling hardware I feel like a bumbling fool. The blog claims you can do it in less than a minute, but it took a few attempts for me. The process involves connecting a board to each of the two parts of the case, then sliding them together and screwing everything into place. I eventually figured it out very late at night while rocking out to some eighties music. Truth to tell one still remains open to the elements, crudely connected to my beautiful boombox I’ve had since childhood. It seemed somehow fitting.
I installed the Snapcast client and everything went smoothly. The crown jewel came when I assembled the computer for my living room stereo using the HiFiBerry DAC+ Pro with its gold plated connectors. The lossless audio stream sounds stunning!
Now I have a little Linux powered computer in each area of my condo. I currently use them to stream audio everywhere, but they can do anything I can conceive of. This begins my journey to have an open source house. I wouldn’t want it any other way.
My New Blog
August 17, 2017“That which has been spoiled through neglect can be rejuvenated through effort.” - I Ching
Welcome to my new blog! I decided to migrate from WordPress to Jekyll. In a month of work I migrated my two WordPress sites, and have something cleaner, more secure, and for me infinitely more accessible. I love it in every way.
I have used WordPress ever since I started this blog. For a long time it never occurred to me to use an alternative. I put up with the web interface. Finding WP CLI helped a lot, as it provided a command line interface. I could write articles in MacJournal. I found a theme I liked. I got someone else to design my professional site. I figured I could put up with all of this. Then I got hacked.
According to wordpress.com, their software powers 28% of the web. This makes it a high profile target. It involves lots of complicated interacting parts and generates each page dynamically as requested. It does this by using a language called PHP. A 2015 study found that over 78% of PHP installations have security issues. Hackers constantly find ways to exploit outdated WordPress versions and especially plugins. I also learned much later from a WordPress expert that “Deactivating” a plugin does not make it unavailable. Delete your unused plugins!
I dealt with the attack swiftly and effectively, but in the meantime my server had sent out a horrifying amount of spam. The outgoing mail queue had 37,000 messages when I halted the web server. I cleaned the database and site’s files. I also had to remove myself from several spam blacklists, a problem which has continued to plague me.
While all of this went on, I had begun my retreat into Linux. I had security on my mind. I had heard of Jekyll through Ruby newsletters and finally decided to check it out. Basically, it lets you build a static web site by editing textfiles. I fell in love.
In contrast to dynamic sites like WordPress, static sites don’t have any changing content. For a long time we had nothing but static sites. They load quickly and have a far lower security risk. Not only that, editing Markdown to do everything completely fit with the way I do things. I could just load everything into Emacs. I found a great theme called Minimal Mistakes, and even submitted a pull request to improve the accessibility of header images, like the one you see on my front page. I knew I had found my new platform.
I spent a month or so working on migrating everything over, writing articles, and getting everything ready. I used the Jekyll-Exporter plugin to export my WordPress posts into markdown and it worked well. I went through and edited all of the front matter, which I expected to do anyway, so it didn’t matter. For my contact form I use Formspree though I may replace it with an in house solution. I also tried a locally hosted search, but ultimately opted to go with DuckDuckGo, which I use and support.
As for comments, I had to think about this. Most people use Disqus, but I really did not like the idea of going through all of this work only to have my prized comments hosted on a third party server. Ultimately I chose to use ISSO. I copied the code snippet into the comment-providers/custom.html file and it worked perfectly.
To deploy, I set up a post receive hook. It took a little fiddling, but I finally got it. I had to modify the example to use bundler, which means that it now updates all of the required gems every time it rebuilds the site as well. After editing my content and viewing it on the local server, I simply use Magit to push the changes with C-xg p p
then sit back and wait for my server to rebuild the entire site. Perfect!
Over time I ended up with two WordPress installations, so this change had twice the impact. I redid my professional page using Collections. This makes it trivial to modify the items without touching the structure of the page. Everything about Jekyll has worked exactly as I expected. I only needed to resize my image, and my friend Meg from Snack like a Local helped with that. I also want to give a tip of the hat to the WordPress Accessibility team. They do some good work.
I hope you enjoy my new site. It took a lot of work building it, but I built it myself. It has all of the features of my previous two WordPress installations in one clean static site. I also expect that it will lead to an increase in blogging.
Back to my Open Source Roots
August 09, 2017So much has happened, I hardly know where to begin. I haven’t written any articles in a while and have pretty much stayed off social media, except for an occasional Frank Zappa quote or some random bit of interesting information. I decided to not comment on politics because I didn’t want to offend a portion of my readers. Suffice to say that I suspected that Trump would win as soon as he didn’t raise his hand to pledge his loyalty to the republican party. When he did win a lot of people around me freaked out but I remained mostly calm, having long suspected it. I felt really good with myself and my world view. In other words, something had to change.
Wikileaks released Vault 7, a small portion of an archive of leaked documents detailing CIA hacking tools. I remember reading about Echelon in the nineties and people called me a kook, so this news did not shock me. I began looking through the documents, and found mini tutorials about how to do basic hacking and security tasks in Linux. I have ran Linux systems for over ten years, and it all checked out. I only surveyed a small amount, but enough to convince me.
Amid these revelations, people asked an important question.
How do we know if a piece of technology spies on us?
Any Linux enthusiast already knows the answer: through the use of free open source software. It got me thinking about my own choices. This converged with something else that I could no longer ignore.
I could no longer use my Mac productively. When I rejoined the Apple family I felt so happy. I knew I had entered a walled garden, but it worked well with my newly discovered iPhone, and provided accessibility to a modern graphical desktop. I found Mac equivalents of my beloved Emacs and other open source tools and left them behind. A few years passed. I remained mostly productive and felt mostly happy, yet something didn’t feel quite right as time went on.
Looking back, it seemed apparent right from the beginning. I wrote a very popular article about getting MPD to work with AirPlay. I wanted to learn to write apps, but I wanted to use tools I already knew, so chose RubyMotion. I installed Homebrew to get Mac versions of open source programs. I always had an open Terminal window. I could never let go of my open source roots.
In case you don’t know, a blind person uses a screen reader, which makes a computer talk. Every operating system has one or several. Windows has the commercial JAWS and NVDA, an open source alternative. All of Apple’s products have versions of VoiceOver. Android has Talkback, also open source. Linux has Speakup for the console, and Orca for its graphical environments.
I had become to grow less and less impressed with the Mac’s version of VoiceOver. The audio had occasional dropouts and lags. Many disabled audio ducking because of this, but it didn’t solve everything. The Quick Nav feature had issues toggling while navigating web pages. The default voice named Alex sounded amazing, but had some annoying pronunciation issues. For example, it dropped the “s” from Philly Touch Tours, the business I co-founded, making it sound like “Philly Touch Tour”. Terminal has never had good accessibility, but since it doesn’t fall into Apple’s 90/10 rule I didn’t expect that to improve. Sadly, neither did anything else.
In the months leading up to the release of Vault 7, I had tried getting Orca working. I had used Speakup at the console for years, but wanted to explore the Linux equivalent of an environment like Mac or Windows. One weekend the pieces all came together. I think it involved battling with PulseAudio. I chose the Mate desktop, a fork of an older version of the popular Gnome desktop of which Orca makes up a part. I had tried this about ten years before and things felt kind of clunky. I prepared to feel under impressed and regard it as something done for pure hack value.
I first browsed my own site with Firefox. It loaded quickly and beautifully. I visited some common sites, including Amazon. It never crashed. It never sputtered. It worked perfectly.
I wondered if I could realistically switch back to Linux for my day to day computer use. Over the next few weeks I systematically replaced all of my Mac applications with Linux alternatives. I use Thunderbird for email and calendars. I replaced all of my Apple TV’s and AirPort expresses with Raspberry Pi’s running Snapcast, a subject which deserves its own post. I use Emacs for a lot of other things, which I do anyway. I use Evil to get superior Vim keybindings. I should especially mention Org Mode, your life in plain text!
When my MacBook Air finally died, I had a choice to make. Should I go with what I know and buy another MacBook, or try something new and go with my Linux solution? I researched my options. None of the MacBooks have particularly good reviews from professional sources. A Linux laptop from ZAReason would cost less. I had bought my awesome desktop system from them. I threw an i Ching reading. I got the hexagram of Revolution. I chose the ZAReason Linux laptop. A few sharp-eyed friends have already noticed. Now as it stands I only use my Mac for Apple things, such as writing apps, iMessage, and iCloud. I do everything else in Linux. I have never looked back.
I would like to make one thing clear however. Apple has shown us that any corporation can make all of their products accessible. They have an accessibility department which they involve in all of their other projects. The ability to use the same hardware and software as our able bodied peers has immense social and psychological value. Steve Jobs had a vision of making a computer which anyone can use and he succeeded. Tim Cook has stated that Apple cares about more than a return on investment. I wish every corporation would follow their example. My decision to use Linux has my primary desktop and my subsequent choices have nothing to do with the valuable service which Apple has done, or the outstanding treatment I have received from them. I simply cannot continue productively using my Mac with VoiceOver due to long standing bugs and a closed archetecture.
Returning to my open source roots brings up a lot of wonderful old thoughts. I have always wanted to find ways to help people with disabilities. Free software and affordable hardware seem like natural choices, and this has finally become possible. I can do all of the basic tasks I could do on my Mac in Linux, yet nobody talks about it. I feel like I have discovered this wonderful secret thing, and I strongly encourage anyone interested in accessibility to give Linux a try. You have nothing to lose - it costs nothing!