MIC01-2: Hacking on a pandoc reader and writer for Bike

When I get deep into programming, I find it difficult to do anything else that is intellectually demanding. Yesterday, I wrote briefly about the overall context for MyInfoNet and how I want to focus on automating system clipboards and browsers. However, what I am actually hacking on today is taking the next steps on moving text between two applications: Obsidian and Bike. Using some technical shorthand, I posted last week a paragraph explaining what I'm up to:

Thanks for this really interesting thread. I have some work in progress (that’s not ready for prime time) that is related to the work here: I have a rough draft of a Python library that converts .bike documents into the Pandoc JSON representation of its AST using lxml and panflute. I’ve put my draft in my own rdhyee_utils Python library – so it’s rough and not been packaged to useful to others yet: https://github.com/rdhyee/rdhyee_utils/blob/master/rdhyee_utils/bike/bikeformat.py. You can see also my work so far in writing a Python library to talk to Bike using AppleScript, or my precisely the deprecated, though still very useful, appscript 1https://github.com/rdhyee/rdhyee_utils/blob/master/rdhyee_utils/bike/init.py. More later once I get my work polished up (and after I get a draft on a pandoc bike writer)

I was hoping to narrate the technical details of my programming as I worked but didn't end up doing so. (I'm still mastering my writing and programming workflow.)

MIC01-1: MyInfoCamp kickoff

Applying to be a part of a Recurse Center (RC) retreat/batch was high on my to-do list for my personal sabbatical this year. I finally applied in early August and participated in two rounds of interviews, which, I thought, went swimmingly. I was shocked to be summarily turned down the following day. The interviewers were very nice to me, and though I wish I could learn the reasons for why I was rejected, I know that I will never know. I tell myself that accumulating a pile of rejection letters is a telltale sign of my actually trying to accomplish the bigger goals in life. I hope that the next time I get a NO that I will indeed be able to take it less personally.

As the Recurse batch for which I applied starts today, I express my gratitude for the Recurse Center. The process of applying to RC, of forcing myself to write down what I want to do and why, was the hard work that I needed. I even told the interviewers (a blunder?) that I was going to work on the project I described in my application regardless of whether I got into RC or not. I recognize that because I'm not in RC, I need to create my own support structures that will buoy me this fall.

So today, I'm kicking off my 12 week sprint, which I code-name "MyInfoCamp" or "MyInfoCamp23" -- for good or bad, I've taken to giving names to my projects (and electronic devices). I'm devoting (roughly six hours each weekday) for the next 12 weeks to work publicly on "MyInfoNet", which I described in my RC proposal.

MyInfoNet is my early-stage project for developing software services to simplify individual-level information, data, and knowledge integration. It seeks to apply enterprise integration principles, such as those found in Apache ServiceMix, to personal information management and small-scale IT solutions. The challenge lies in leveraging the robustness of enterprise integration without introducing undue complexity.

Because the clipboard and web browser are key hubs of information and data exchange, I will create two exploratory prototypes:

  • MyInfoNet-Clipboard: I'm developing this scriptable clipboard manager to streamline the exchange of text-based data across applications and platforms. Currently, it's a Python script that uses Pandoc for markdown and HTML conversion on the system clipboard. I plan to enhance it into a professional-looking, macOS desktop app that can be controlled via AppleScript and features relevant Shortcuts. Initially, it will handle markdown, HTML, and rich text before progressing to images.

  • MyInfoNet-Browser: This web browser controller automates, scripts, and scrapes web interactions. It's currently a Jupyter widget that lists open Google Chrome tabs and allows selective focusing or closing. I envisioin this as a tool to simplify and automate web-based information gathering and integration into a user's knowledge base.

There's a lot to unpack in what I compressed into my description of MyInfoNet -- that's a big part of what I will do during MyInfoCamp. My answer to the question "What do you want to be doing in two years?" in my RC application should provide some larger context to MyInfoNet:

I've carved out this calendar year as a self-funded personal sabbatical to reboot my life personally and professionally. In two years, I would like to be writing software to support my work as a consultant or entrepreneur, while still finding time to scratch my own itch. I would like to see where wholeheartedly designing, prototyping, and building MyInfoNet (which had its genesis about twenty years ago) will take me.

I'd love to see a practical path for generating sufficient revenue out of services or products that flow out of MyInfoNet. I'm prepared for MyInfoNet to continue only as my passion project. I'm currently exploring which of the fields that I've worked in to prioritize: academic research data, publishing, data engineering for small and medium businesses, services and products for older adults, and disaster preparedness, among others. Returning to the University of California system is also a live option for me, as someone who is just short of 10 years of service credit in the system.

In all cases, I'm hoping that the time I spend at the Recurse Retreat will allow me to consciously and deliberately improve my craft so that in two years, the scale and skill level at which I'll be operating will more closely match the ambition of what I imagine in, say, MyInfoNet.

Tax IDs for some Episcopalian organizations

This morning, when requesting my donor advised fund to send money to send money to the Episcopal Church USA to support the General Convention this summer, I struggled to find the Tax ID for the national church. To find the number, I turned to the Wikipedia, specifically Episcopal Church (United States) - Wikipedia to learn the following tidbit:

The full legal name of the national church corporate body is the "Domestic and Foreign Missionary Society of the Protestant Episcopal Church in the United States of America", which was incorporated by the legislature of New York and established in 1821. The membership of the corporation "shall be considered as comprehending all persons who are members of the Church". This should not be confused with the name of the church itself, as it is a distinct body relating to church governance.

For my future giving to various Episcopal organizations (which all have distinct Tax ID numbers), I compiled the following table:

Organization Tax ID Guidestar Profile
All Souls Episcopal Parish in Berkeley 94-1393415 All Souls Parish in Berkeley - GuideStar Profile
Episcopal Church USA 13-5562208 DOMESTIC AND FOREIGN MISSIONARY SOCIETY OF THE PROTESTANT EPISCOPAL CHURCH - GuideStar Profile
Episcopal Relief and Development 73-1635264 EPISCOPAL RELIEF & DEVELOPMENT - GuideStar Profile
Episcopal Church in the Diocese of Northern California 94-1408152 Episcopal Church in the Diocese of Northern California - GuideStar Profile

Letter to Albany City Council to Use Automatic Captioning for City Meetings on YouTube

Email I sent to citycouncil@albanyca.org

To make the meetings of City of Albany more accessible, please turn on auto captioning for all the city meetings that are streamed via the Albany KALB YouTube channel (https://www.youtube.com/c/AlbanyKALB/videos). With automatic captioning, even when it is not perfect, viewers can then more easily make sense of many hours of meetings by searching and reading transcripts.  It's a helpful measure in the absence of high fidelity transcripts or minutes generated by a human note-taker.

I noticed that many of the videos are already closed captioned but not all of them. When I went through the list of all the videos since July 2020, I found the following videos were not captioned:
whereas the majority were captioned:
Please turn on automatic captioning for all videos from now on.
Thanks,
-Raymond Yee

Collaborative editing: Google Docs vs Microsoft Office

What experience do you all have in collaboratively editing Word documents in late 2019?

Yesterday, a group of collaborators and I were making the final push to submitting a grant proposal to the NSF due yesterday (spoiler alert: we made it!) Until the very last day, we were all using Google Docs and Google Drive, which is a fantastic collaborative environment. Then to get the documents formatted, the Google Docs were downloaded to the lead collaborator's computer. This move then made collaborative editing/copyediting of the document tricky. For a while, we were confused about which document was the most recent. We couldn't see easily see what other edits people had made. It wasn't clear that the approach that some of us took (to use Track Changes in Word) and then send our version of the document to the lead author) was actually the right -- and consensus -- approach.

Are others of you taking a similar approach: do a lot of collaborative editing in Google Docs and then do final editing/formatting in Word? How about using Microsoft Office for the Web for the entire writing process? I'm wondering how compatible online Word is with desktop Word, especially for detailed formatting.

Pareto Black Beans

(2019.09.04) I often make a delicious and modestly elaborate black bean dip with the Instant Pot. But yesterday, while in a hurry to have black beans in any form to accompany the mouth-watering tomato salsa Laura made the day before, I made plain black beans in the Instant Pot. I threw in a couple of beans with several cups of water, set the Pot to 30 minutes and rushed out of the apartment toward Trader Joe's to buy some tortillas. I got back just 3-4 minutes passed the scheduled moment to do the natural release of steam.

instant pot black beans

80/20 rule in action: we got a small bucket of simple black beans (80% of the benefits of the dip) with about 20% of the work -- well, ok 40% of the work.)

Return to Regular Life in Albany

MVIMG_20190828_180244

I'm pleased that on the first full day back at home from vacation that I made two healthy and delicious meals, which I consumed in moderation. Only one chicken leg, a small serving of Israeli couscous, and a heap of broccoli. Alas, I magically forgot my diet when I indulged heartily on spicy pistachios that a friend supplied to us at a meeting -- so watch those meeting snacks!