Slightly off topic but I'll share my $.02 because you mentioned you authored the post. These types of announcements would be so much better if they included a brief blurb about what the project is near the beginning.
I think these posts get a lot of new eyeballs, and as someone who clicks on a lot of "new major release for X" posts, it's always an annoying side quest to go and figure out what the product is before going back to the post.
Agreed. Its always "Finally we have added xyz support for our abc module, now you can just call mnb by using the cba function!!" while (I believe) 90% of the people reading that just want to know what kind of tool it is.
On topic: This tool to make diagrams using plain text looks great. Definately going to see if I can utilize it in a project.
Maybe, but I also think it's good writing practice to lay a foundation for readers.
My reference point would be "proper" press releases. There's always some very basic blurbs about the company and/or product being announced, in addition to the meat of the announcement. This blog is essentially a press release for nerds, so I think following a similar pattern is in the best interest of the writers for these announcements.
At the very least, make the first mention of the product name a link to someplace with a description. It amazes me how often people skip basic things like this.
As a mathematician. I cannot get over the fact that a tool called Penrose that makes (according to its documentation) diagrams, does not, in fact, make Penrose diagrams [0]. Nor even Penrose-Carter diagrams [1]
The output looks lovely, and I would like to use this for my math notes, but I cannot bear to accept such a disturbing name.
Question: Why did you chose this confusing name? Could you justify it in the introduction of the documentation? [2]
Would love to hear what diagrams you'd like to make in your notes!
> Why did you chose this confusing name?
The main idea of the project is to generate diagrams from mathematical notations. So we want a name that people can associate with both "notations" and "diagrams." In addition to this, some of us also liked the fact that the name can be broken down into "pen" + "rose" :D.
We're really open to suggestions on names if a new name can help us spread the words on our core idea and the tool. "Escher" was one of the early candidates, too. Let us know!
> Could you justify it in the introduction of the documentation?
Great suggestion! Will do.
> As a mathematician. I cannot get over the fact that a tool called Penrose that makes (according to its documentation) diagrams, does not, in fact, make Penrose diagrams [0]. Nor even Penrose-Carter diagrams [1]
We never got around to make some Penrose diagrams in Penrose, but Penrose is an extensible platform! If you make a lot of them and want to make them in Penrose, join the discord (https://discord.com/invite/a7VXJU4dfR) to chat with us. I'd love to have some Penrose diagrams in our gallery too ;).
FWIW as a non-mathematician: when I hear “Penrose” I think “Penrose Diagram”. The name association would benefit me as a sort of mnemonic: if I saw a binary called penrose on my system, I would guess it has something to do with diagrams (not necessarily Penrose diagrams). Similarly, if I forgot the name of this tool, it would be easy to recall, as there aren’t too many “____ diagram” word pairs floating around in my brain. I give libraries and executables pithy names along the same lines, where one word that isn’t already in use (“Penrose”) strongly associates with another more general word (“diagram”) in my memory.
Look at the VHS tool for example — it doesn’t have anything to do with physical VHS tapes, but it does record a scripted shell invocation as a GIF for embedding in docs and demos and such. Super easy name to remember. See https://github.com/charmbracelet/vhs
I'm a long time TikZ user and have been following penrose since the initial video introduction. Really great progress! At this point, what do you think an avid TikZ/dot/pgf user might miss the most when trying Penrose?
Thanks! And great question; I'd probably say the main missing pieces would be the level of integration and the amount of general programming you can do. The former is kind of difficult for Penrose to compete with; for instance, to let people use Penrose in Overleaf, AFAIK we'd need to get it into the TeX Live distribution, which is pretty strict about what sorts of code is allowed. Specifically, our optimizer is written in Rust which we compile to WebAssembly, neither of which currently seem to be supported in the TeX Live build system.
The latter is something we're working hard on. We're trying to find the right balance between simplicity and expressiveness, and starting to explore options beyond our trio-DSL approach. We don't have great docs on this yet, but we have some experiments with using Penrose as a library in combination with SolidJS: https://github.com/penrose/penrose/tree/v3.0.0/packages/soli...
Thanks for the response and all that makes sense. These days, a lot of the LaTeX and TikZ I write is honestly embedded in web and asciidoc content (via custom extensions and a lot of shoestring interprocess scripting) so that seems perfectly fine. Ironically, I use SolidJS when I happen to do web stuff also, so I'll be sure to check that out.
Nimo here, the other author of the blog post :). Another advantage of TikZ is you can use it directly in LaTeX. TeX integration is something we care deeply about, so v3 introduces an export mode compatible with the svg package (https://ctan.org/pkg/svg?lang=en). Basically we export SVGs with raw <text> elements that LaTeX can style together with the rest of the document. More docs here: https://penrose.cs.cmu.edu/docs/ref/using#export.
Thank you for putting a brief description of the product at the top of the post. There are often posts on HN for new versions of software that I haven't heard of. I click on them out of curiosity only to find a post that only talks about the new version. I have to go looking to find out what the product/project actually is. (And often the post is on a blog that doesn't have a link back to the main product/project site!)
In the examples I saw graphs but I'm not sure I saw directed acyclic graphs... does this do graphs that respect layered algorithms like sugiyama and elkjs?
Good question! The graph styles you see in those examples can definitely be used to draw directed acyclic graphs (try opening one in the online editor and modifying the Substance file!), but it sounds like you may specifically be asking whether those graph layout algorithms are available in Penrose? In that case the answer is no, but you could write a Style program that does layered graph layout if you want. Unless I misunderstood your question?