Sunday Baking: Bread and Cookies

The cold is slowly abating. I didn’t stay in bed all day! Yay!

In addition to a long walk and the movies, I may a nice whole wheat loaf:

It wasn’t quite a one hour loaf but it was pretty close. I threw in some extra gluten and ran the mixer with the bread hook for a while. The heat was on so it had a super warm place to rise. The crumb is very soft and fluffy:

I put in a cup of water in the oven so the crust was nice and crisp.

And I reprised the olive oil cookies. They taste fine. I did have dark and half milk chocolate chips:


More Nuitka and Cython

Reading further into the Nuitka manual I found a claim about the relation to Cython:

Thanks for giving us CPython, which is the base of Nuitka. We are nothing without it.

Ooookay. That is interesting but doesn’t change what I’m seeing. They are very different now.

Whoops! The visual similarity between “CPython” and “Cython” confused me. D’oh! Pick better names, people!

So, I thought I might try getting mistune compiling under Cython to compare performance. Whoof. That didn’t go very well. I tried a bunch of different things, finally trying this bit of magic: I first made a copy of and named it mistunec.pyx. (“mistunec” to avoid name clashes and “pyx” to make it Cythony). Then I added this to

import pyximport
import mistunec
@benchmark('mistune cython')
def benchmark_mistune(text):

And that didn’t work. Until it did! I have no idea why.

But it did! So I thought I’d do that for all the parsers and stopped because they aren’t trivial to move to this given their multifile structure.

I was able to run with Cythonised mistune:

$ python
Parsing the Markdown Syntax document 1000 times...
hoep: 0.334488
misaka: 0.384822
mistune: 14.20459
mistune cython: 11.246674
markdown: 46.040262999999996
markdown2: 627.6396619999999

The Cython version runs in 79% of the time, which is in line with the 76% HY reported.

I tried compiling this with the Cython version and barrrrf:

$ ./bench.bin
Traceback (most recent call last):
File "/Users/bparsia/Development/Gitlab/nuitka/venv/lib/python3.6/site-packages/pyximport/", line 215, in load_module
inplace=build_inplace, language_level=language_level)
File "/Users/bparsia/Development/Gitlab/nuitka/venv/lib/python3.6/site-packages/pyximport/", line 185, in build_module
from . import pyxbuild
ImportError: cannot import name 'pyxbuild'

It took forever to compile as well. Ok, let’s just do it without Cython:

$ ./bench.bin
Parsing the Markdown Syntax document 1000 times...
hoep: 0.34458900000000003
misaka: 0.383046
mistune: 11.886555
markdown: 36.083197
markdown2: 351.328035

Yep, the same 88%. Of course this is 0.64 of a second so they are essentially equal.

The VERY weird thing is that the markdown2 numbers flipped! I.e., markdown2’s time was halved rather than doubled by Nuitka. That has to be a cut and paste error on my part but I honestly don’t see how. More tests needed!

One interesting question is whether if I add some type annotations, I can drastically speed up Cython-compiled mistune. That would give us some indication of what Nuitka might one day achieve.

This Week in Zoe News

There’s a Joan interview in People!

It sounds really corny but the song choose me. The president song for example [“The President Sang Amazing Grace”], was a no-brainer. It was politically, musically, and lyrically perfect for me. The same for “Another World.” Those two songs really gave the album the depth that it has. Pretty songs, a pretty album, but it wouldn’t have the meaning that it has without them.

This generated no tweets, go figure.

“President” was nominated for best song of 2018 in the International Folk Music Awards. Folk Alliance members please vote for it!

Bustle had an interviewy thing:

With her most recent album, last year’s Whistle Down The Wind — her final one, she says — Baez is still singing songs of resistance, paying tribute to former President Barack Obama (“The President Sang Amazing Grace”)

David Harrington, artistic director of the Kronos Quartet:

Here’s a performance of “President” from NERFA:
I have a couple of videos from last week’s performance but it’ll take a bit to post them.


Today is my first class of the season. I do mean all of today. I’ve got a minimum 8 contact hours. Same again tomorrow and so on for five weeks. Yeek.

A week ago I had my final OT appointment. This concludes this cycle of corrective surgery for the arthritis induced deformity of my right hand. It doesn’t mean I’m done or even done with these folks. I’ll have a surgical follow up in a few months and we’ll probably discuss next steps if any. I have 5 kindssplints in active rotation for not less that a year. I have two “protective” splints designed to protect the gains induced by the surgery. These generally try to hold the hand in a neutral position.

I have two “stretching” splits designed to push the hand toward great extension or contraction. The former don’t hurt. The latter do.

I have one odd “protective” splint I use while typing.

That’s a lotta splints. I’m always putting them on or taking them off.

I will say that a lotta splits beats a lotta meds. I’m on nothing right now after decades of anything from 1 to 7-8.

Oh Mistune

I am about ready to give up on you.

I gained control of your renderers and they work great! Yay!

Lexers, grammars, all the parsing is a maze of twisty passages where I bark my shins constantly and make no progress.

I tried to enable math support which is a standard contributions and…it’s still not working. I’m going to try this other thing now. As far as I can tell, no one uses the “mistune-contribs” version.

I think this signals the end for me. I’ll have to migrate to something else more managable.

Gitlab Has Kanban/Trello Style Boards

And they are linked to the issue tracker! Nice!

They aren’t as nice as Trello’s. The cards are very limited and don’t “flip over”. They don’t provide full access to the issue tracker, so adding comments, even adding full fledged issues, is hard to impossible from the board. However, I think for managing a workflow, it’s fine. A little clunky, but fine.

So now I can teach them in my software engineering class…which means I need to add them to my material…yay?

It’s panic time around here! Classes are….sooooo close!