Jeremy Cherfas: Posts

Jeremy Cherfas

Monthly report: March 2019

Yikes! A big part of me wants to just ignore March until the end of April. But the rest of me knows that if I do that, chances are the whole task will be too overwhelming and I will just give up. So, better later than never.

I have mostly managed to keep up with journaling, thanks to which I can note:


Hard to operate with the previous calendar month in the Exist website, but steps continued to trend up and weight to trend down. Those are good. Time asleep trending down, which may be bad or may just be the lengthening daylight.


Logged 158 hours for the month and worked on 27 of the 31 days. Looking back from a distance, I can't be sure what took that much time.

Month Total Daily Admin % ETP % Other %
03 158 7.5 44 28 28
02 121 6.0 32 42 26
2019-01 95 5.4 39 13 48
10 100 4.2 41 34 25
09 131 6.5 45 23 32
08 185 8.0 14 85 1
07 68 5.25 25 63 12
06 96 5.75 34 9 57
05 151 6.0 36 20 44
04 159 7.5 29 29 40
2018-03 152 7.0 20 10 70


Still bad! Only 5 posts on this website, and one of those was the monthly for February. Still, that's better than in February. And there are all those Listened posts, though I have no intention of counting them.


Need to knuckle down to the bread book. Again. And get back to posts containing geo-information. It also occurs to me that I could use that data I am collecting, for example in hours worked, to expand my knowledge of how to present graphical information here. Getting the column widths working well in the table above would be neat. The spam sparklines are fun and sort-of informative. Graphs of other things might be too. I also feel I should be doing more to automate or simplify some of the more repetitive things I do.

Final remarks

Life is still good.

Fri, 19 Apr 2019 16:15:00 -0700

Still listening

A month on, and my little program to suck up and display the podcasts I have listened to is working well, but not perfectly. It still sometimes duplicates an entry it has already created, and I have been having a difficult time trying to work out why.

One simple reason for the difficulty is that I do not want to hammer Overcast with requests for my detailed OPML file. There's a rate limit on requests. I have no idea what the limit is, but I do not want to reach it. So, when I think I might have solved the problem, on stored data, I have to wait a day or so to try it against the live data. Occasionally I think I've cracked it, and then it breaks again, and the honest truth is that I have not been able to pin the source of the breakage down to my code or the OPML file I receive.

I've tried working on the stored data to see whether I can narrow the problem down, and that's great, as far as it goes. But, as I said, I have to wait until I've listened to another couple of podcasts before I can try it again for real, which makes for slow going.

The difficulty seems to be that Overcast stores whether I have deleted the episode, whether listening is in progress and whether it has been played, each as separate key:value pairs. I don't want things that have been deleted unlistened and I don't want things that are still in progress. I only want things that have been played, no matter whether they have been deleted meanwhile. The logic for that is proving trickier than I expected.

Right now, I run the program manually, check for problems and then push the new posts out there. I won't be able to automate it until it has been working perfectly for a week or two, which may be never.

A side effect of all this has been that I have not devoted much time to any other sort of writing here. It being Friday afternoon, maybe I'll spend the rest of it rectifying that.

Fri, 19 Apr 2019 15:10:00 -0700

50 x 100 x 50 revisited VI


Originally published 05-04-2008

racing car with number 26 At a meeting yesterday morning we discussed a shared workspace. The Chair preferred email, "because people prefer action items, and an email in your inbox you can take action on. Going to a shared workspace you can ignore."

Well yes, if it weren't that so many of the emails in one's inbox required no action, except to press delete. FYIs, keeping you in the loops, protecting my arses, reply to alls, pure spams. They're all in there, swamping the few that can and do require action.

I thought it better not to recommend RSS feeds and alerts.

Flickr photograph by Shyha.

No instant pleasure

Originally published 06-04-1008

flowering bush with a big building in the background with number 27 Even though I conduct all my gardening these days in silly little pots, I'm aware of how much I like the anticipation. A big blooming bush is instant bliss, but often leads to heartbreak as the plant struggles to cope with conditions outside the pampered nursery environment. Going out every morning to check on newly emerged leaves, or waiting for a shoot to poke its head above the compost, is a slower pleasure but, in the end, a more satisfying one. Watching a plant grow and change is a big part of what I like. Even in little pots.

Flickr photograph by gracias!


Originally published 07-04-2008

Road sign for route 28 in New Zealand On Flickr, as elsewhere, there are specialists. I've come to recognize a few who specialize in numbers, and in my hairshirt search for illustrations for this series I have sometimes chosen a lesser image rather than take yet another from one of them. But specialization often increases ability, and there's a fine line to be drawn between the fresh approach of a non-specialist and the guaranteed good, but possibly not superb, offerings of a non-specialist. There's a lesson there for all walks of life, I believe, to which I definitely need to pay more attention.

Fickr photograph by Mouse.

Good news, everyone!

Originally published 08-04-2008

This post is number 29 in a series.

No 29 bus to Nordstan Good news, everyone! I managed to upgrade WordPress entirely painlessly. Smooth. Flawless. A dream come true. Except (you knew that was coming) that I can no longer upload pictures to my posts. Dunno why. Voodoo. WordPress admits it's a problem, and I spent much of last night trying everything possible to fix it. But there it is. Flickr, weirdly, now tells me that posts to the blog work, and they do, whereas before it said that the post had failed, but it hadn't. For now, I'll add a little rubric and maybe come back for images later. 1

Busy being busy

Originally published 09-04-2008

This post is number 30 in a series.

Racing around a bit at the moment, I pause to reflect that there is something energizing about simply having too much to do. I've gained an hour through the wonders of travel, and thus will manage to get this post in before the midnight deadline, and managed to accomplish a bunch of other stuff as well. Of course, most of that falls into the "best left unblogged" category. But how tawdry would it have been to have blogged about the mouthy woman on the crowded bus, who needed to share her entire content-free conversation with us all? Tomorrow.

  1. So I did, making use of the nifty flickr search and attribute tool by John Johnston. 

Thu, 28 Mar 2019 18:15:00 -0700

Sucking up the podcasts I've listened to

Finally, I have succeeded in importing all the podcasts I have listened to with the Overcast app, at least as far back as May 2018.

This crazed exercise was prompted by my total inability to find an episode that I know I had heard, and modelled on the very excellent Python script by @cleverdevil. Of course, not speaking a word of Python, I had to translate it into pidgin PHP, which I started doing on 27 February.

And here we are, after a lot of great help from my pals in the IndieWeb IRC.

My version is way too buggy to release just yet, and in any case is not fully automated. I have not managed to ensure that episodes for which I have already created posts are not duplicated. I'm also still not entirely happy with the actual logic of my program. But at least it works, as far as it works.

The biggest programming problem is that the detailed OPML file that Overcast sends me is a beast to work with, especially as I am not all that good at handling deeply-nested arrays. I tried to use SimpleXML instead, but failed to make much progress. Still, I know where I need to improve things. How is a different matter.

I'm leaning towards comparing the current OPML file with its predecessor and extracting only things that have changed, but the nesting makes that rather complex. Extracting entries with a date more recent than some arbitrary moving target might also be a way.

As far as the information itself is concerned, I'm broadly happy with that too. Right now, each post contains the data supplied by the podcast to Overcast, untouched by human hand, and a link to the episode on Overcast. Ideally, when I have caught up, I would have time to add any notes I may have, and maybe even edit the official summary where I think it could use a clean-up.

The other thing I need to do is work out how best to handle skipping an episode and deleting ones I have listened to. Currently, that's all manual. If I let Overcast handle it, the OPML file might be easier to use.

The time spent, I regard as worth it, for two reasons. First, learning more about PHP and Grav (or about anything, for that matter) is always worthwhile. Secondly, even though manual steps are still needed, if I had to enter each podcast manually as I listened to it, I wouldn't.

Sat, 16 Mar 2019 12:30:00 -0700

Eating a legend

Mangalitsa pig mortadella

Until recently, the Mangalitza, or Mangalitsa, or Mangalica pig was the stuff of stories for me. This woolly pig, first selected in Hungary, has been raved about as a very tasty pig indeed, a breed whose salvation lay in being eaten more widely. On a couple of trips to Hungary I did keep half an eye open for it, but at least on my sketchy investigations it appeared to be without honour in its own country.

So I was really surprised to find it on the menu of a fine new restaurant nearby. I didn't choose the large chunk -- I think a chop -- on offer, because they had already brought some Mangalitza mortadella on a pizza bianca and I had ordered beef tongue as my antipasto and a pizza with prosciutto di Mangalitsa.

The restaurant prides itself on being sustainable and authentic and all the other good things, so I was naturally curious about where the pigs had come from. Not Hungary, surely?

Oh no, they're raised for us on a farm near Viterbo.

I think it must be the Villa Caviciana, which looks like it could be an excellent destination for an expedition.1 And when I make that expedition, microphone in hand, one thing I want to know is why a Hungarian pig? Is the equivalent Italian eat-it-to-save-it Cinta Senese already passé? Or sufficiently well protected? There are other endangered Italian pig breeds;2 maybe, despite all the enthusiasm for ancient breeds, they just aren't as good to eat as Mangalitsas.

The mortadella was absolutely delicious and, as you can see, much chunkier than the commercial stuff (which is also delicious, but in a much more unctuous sort of way).3 I can't really offer an opinion of Mangalitsa specifically, as I have never before had an artisanal mortadella. Maybe next time, because there definitely will be a next time, I'll go for a hunk of Mangalitsa meat so I can report back.

  1. The English version of the website, for some reason (human error?) has no information about the meat and sausage. 

  2. Pardon me while I have a little rant. You would think that a list of a country's endangered breeds would be easy enough to find. Especially if the country is the home of, say, Slow Food. You would be wrong. One can find that seven breeds are considered endangered and three as critical, if one knows how. One can even find a list of 10 names: Casertana, Cinta Senese, Duroc italiana, Ibrido, Mora Romagnola, Nero Siciliano, Sarda, Siciliano, Spot, Apulo-Calabrese, if one knows how. But the data that gives you the names says only that each is "at risk". Which is critically at risk? I have no idea. Big thanks to my compadre Luigi, who got me this far, and has beaten his head against this particular brick wall before

  3. The beef tongue too was delicious, but that's another story, as was the excellent pizza. 

Fri, 08 Mar 2019 13:30:00 -0800

The power of (FM) radio

Alex Blumberg interviewed Pierre Sutton and his daughter Keisha on a recent episode of his series Without Fail. Sutton's giant achievement was to create black-owned "race" music radio stations, and listening to the episode triggered a memory from long, long ago.

wfil-fm logo To understand why, you need to know that aside from creating black-owned radio, Pierre Sutton also brought FM transmission to non-classical music. Most radio was AM and that, as Alex explained for the kids, "was scratchy and tinny, and only in mono. FM was rich and full, and in stereo". But most FM transmitters were not great in cities. Pierre Sutton met a man who had invented an antenna that vastly improved FM transmitters, and changed music radio forever. 1

This was some time around the late 1960s early 1970s. And in the summer of 1970 I was on my first visit to the United States, land of wonder, as a counsellor with Camp America. After a summer in Vermont, we had two weeks and 100 dollars to explore the country, and with some of my new-found friends I headed off to Florida. On the way, we stopped in a friend's house in Philadelphia. I cannot for the life of me remember whose house it was, but I was given the spare room in the basement.

There was a waterbed! And a terrific sound system, or as we called them then, a stereo, with an AM-FM receiver. The sound quality completely astounded me. From a radio?!?

Anyway, there I was, late on a summer's evening, lolling on the waterbed and listening to cool tunes. I have a strong feeling it was Herbie Mann's Battle Hymn of the Republic; that would certainly fit. And suddenly I hear this loud whisper.


And again -- "Pssst" -- from the other side of the room. And I almost freak out. And then a lugubrious voice says something like "Pssst ... WFIL-FM Philadelphia".

And I relax, go back to lolling, and marvel at the power of (FM) radio. 2

  1. Listen to the episode to understand just how much. 

  2. WFIL-FM logo by HGN2001 [CC BY-SA 3.0], via Wikimedia Commons. I have no idea whether it is contemporary, as I never saw it at the time. 

Thu, 07 Mar 2019 12:25:00 -0800

Monthly report: February 2019

February was a pretty good month. Or maybe it's just that I have a lot more reminders of how good it was.

Last month I determined to do something about my journalling, and it has worked, more or less. I can add items from my phone and from my computer, and I'm building the habit of doing so more often, not just at the end of the day. Now I can look at my diary.txt file and get a nice overview of what I've done. That is a useful antidote to the poison of thinking I haven't done anything. I can see that I had some nice walks for pleasure, that I did quite a bit of paid work, that editing podcasts might be getting a bit more efficient, that I had some minor disasters in bread-making, etc etc.

I can also see, and report here, that I started trying to use spaced repetition and flashcards, powered by the app Anki, in the ongoing attempt to improve my Italian. I like the idea of spaced repetition, and I far prefer Anki to, say DuoLingo, but I'm not sure I'm seeing any improvement yet. Are the sentences easier to remember? Yes. Does that translate into improved fluency? Not yet. I'm still not studying every single day, and might have to spend the big bucks on the mobile app to do that. I'm also wondering, is there something else I ought to try and learn.

Other things the daily diary helped me remember:

Our Daily Bread

Fear of rejection utterly justified; the agent says publishers want something less bitty, "a biography of a commodity, like Kurlansky's Cod". In sales terms, I'll bet that's what they want. But it is not at all what I want to write. So, back to making self-publishing a reality, ASAP.


Steps this week are almost twice what they were a year ago. Not at all surprising, as back then most of my daily notes include some form of "knee shit". The knee has barely been a problem for the past 9 or 10 months now. Long may that continue. Overall, steps has been gently trending up, which I suspect owes more to the seasons than anything else. Not much else new of note.


Logged 121 hours for the month and worked on 24 of the 28 days. Big jump in the time spent on Eat This Podcast. Can't be sure, but I think that's a combination of switching mailing list managers and having some rather complex editing to do.

Month Total Daily Admin % ETP % Other %
02 121 6.0 32 42 26
01 95 5.4 39 13 48
10 100 4.2 41 34 25
09 131 6.5 45 23 32
08 185 8.0 14 85 1
07 68 5.25 25 63 12
06 96 5.75 34 9 57
05 151 6.0 36 20 44
04 159 7.5 29 29 40
03 152 7.0 20 10 70


Bad! Only 3 posts on this website. There's a continual tension between tinkering with the website and writing for the website, and this month tinkering has definitely got the upper hand. It has been super rewarding, and I hope to have something to show for it all very soon, but yes; could try harder.

Recorded Reading on 13 days, two more than in January. That's good.


Currently, nothing major.

Final remarks

Life is still good.

Wed, 06 Mar 2019 19:05:00 -0800

An error unexplained

Well, that was weird.

Something had gone wrong with my little PHP script for adding items from my list at reading.am to my WithKnown-powered stream. It ran, reported no errors, and yet produced nothing at the other end. Gorgeous Saturday morning, blue skies and sunshine; what better way to spend it than indoors debugging?

Anyway, after reading part of the way through the cURL manual, my friend Sven pointed me in the right direction and I was able to see the responses that the script was receiving from my site. The weird part is that the very act of inserting a couple of extra lines of code seems to have fixed whatever wasn't working. I haven't the faintest idea why.

Anyway, having got this far, I decided to add a little snippet that checks whether there were any errors and, if not, tells me how long the request took.

if (!curl_errno($ch)) {
  $info = curl_getinfo($ch);
  echo "\n", 'Took ', $info['total_time'], ' seconds', "\n";

This goes inside the loop that creates each item, just before curl_close ($ch); and gives me an indication that all is well.

Unfortunately, testing this out cluttered up the timeline at micro.blog, because I was too lazy to adjust exactly what syndicates there, for which I apologise. It also still doesn't pick up any comments I may have made at Reading.am. Still useful, to me, but if I really want to add a comment I'll continue to use either Omnibear or Quill. And I still want to build something similar that will update from the Pinboard and Paperback combo.

Sat, 23 Feb 2019 12:42:00 -0800

Mo' better icons

A couple of weeks ago I wrote about replacing the icons that link to my various other web presences. Today I finished the job by swapping out all the font awesome icons I could find. The changes should not be glaring.

The crucial part about this, for Grav, is to place all the icons in a central store and then call them from there using the variables that Grav offers.

I keep all my site-wide images in user/mytheme/images/. In order to allow Grav to find them wherever it is, I use a variable to point to that location:

<img src="{{ url('theme://images/whatever.svg') }}" alt="whatever" height="32" width="32" style="display: inline;" ></i>

I had intended to use icons from The Noun Project, but in the end I found some others elsewhere. The nice thing about this approach is that if I do want to switch to other icons, as long as I give them the same filename, I don't actually need to change anything else.

Still on the to-do list for icons is a slightly trickier proposition of using an icon to identify a particular type of microblog post. At the moment I am passing the name of a font-awesome icon in the post's front matter. I'm sure I can do the same with any icon I have downloaded, but that's actually a minor issue for my whole micro-blogging system, which now moves up one step on the priority ladder.

Sat, 09 Feb 2019 15:30:00 -0800

Monthly report: January 2019

Trying to get a jump on this whole monthly thing by getting to work on it sooner rather than later. An end to procrastination, but not just yet.

I've become somewhat dissatisfied with my journalling arrangements, partly as a result of listening to an episode of Automators. MacSparky and Rose are both gung-ho for Day One, but then also duplicate their stuff all over the shop. I gave up on Day One because I don't want to pay a subscription and I don't want to have to deal with an export if (when?) something happens. So over the past year I've experimented with a single flat text file and also saving notes to exist.io every day. Both have drawbacks. Exist isn't actually easy to search, but it is fun to be reminded of things a year ago or three months ago. The daily text file is super easy to search, but not that attractive.

So the first thing I did, with help from Rose and people in the Automators forum, was build a little shortcut so that I could add to the text diary as easily from my phone as from the desktop. And that prompted me to clean up the workflow from the desktop. Now I want to think about maybe adding an image to the text file, which ought to be easy enough if I can settle on a place for the images to live.

The other thing I want to do is journal what I'm watching, reading and listening to. Back in the day I would write a little one-paragraph review of films seen and so on. That fell by the wayside when I moved my CMS to Grav, and I never really took to adding such things to my Stream. But I want to, as an aide-memoire as much as anything else. I have thoughts about how to do that based on the log files created by Jen Myers, which I found because I follow ~cgrayson. I've only just started thinking about this, and I have no solid idea of how I will implement it, let alone automate any aspect of it, but by this time next month I hope to have something to show for it.

That something will not include podcasts. For that, I have something else in mind, which will be to translate cleverdevil's very clever script for sucking all that information out of Overcast.

That's the plan, at any rate.

Our Daily Bread

Managed eventually to get over my fear of rejection and sent a package off to a possible new agent just within the month. Now another agonising wait. In the meantime, I've been reading up on self-publishing and how to make sure one doesn't completely screw up. So in the event, with luck I won't screw up.


Steps has been trending down gently since mid-November. Sixty-day rolling average on 3 February was about 8,800, vs 10,500 in mid-November. Still way better than the global average of 6,100, and I fully expect it to start climbing again as the weather improves. Average time asleep is up by 23 minutes over the same period, and that I fully expect to fall. It is so nice that the days are getting lighter at both ends.

I'm not surprised to note that the word most strongly associated with my worst mood rating is "brexit". And that's all I will say on the matter. Anxiety levels on that score are high.


Logged 95 hours for the month and worked on 17 of the 31 days. No logging for almost all of December, and started only on 7 January.) Not a huge amount of paid work this past month. Might need to put myself out there a bit more.

Month Total Daily Admin % ETP % Other %
01 95 5.4 39 13 48
10 100 4.2 41 34 25
09 131 6.5 45 23 32
08 185 8.0 14 85 1
07 68 5.25 25 63 12
06 96 5.75 34 9 57
05 151 6.0 36 20 44
04 159 7.5 29 29 40
03 152 7.0 20 10 70

I'm pretty sure there was some solid under-reporting this month,. But I'm not going to agonise.


Woohoo! 13 posts on this website, although three are old posts. Recorded Reading (a book, not the computer, for at least 30 minutes) on 11 days. More would be better


Some things have been on my niggle list for far too long. I am still very bad at finding good stretches of time to get back into code. I guess some of those things just aren't enough of a priority. Mind you, I did get the sparklines done, which I've been talking about since the October 2018 report.

Final remarks

Life is still good. I rate my mood as a 4 almost every day, with an occasional 5 and an even less frequent 3.

Mon, 04 Feb 2019 19:05:00 -0800

Page created: Sat, Apr 20, 2019 - 09:05 AM GMT