Hacker Newsnew | past | comments | ask | show | jobs | submit | more blobcode's commentslogin

Then use any of the plethora of alternative text formatting tools (TeX, for one).


Only if the US has a change to sane leadership to go along with it


This is one of those things that MIT’s missing semester course aims to help with (https://missing.csail.mit.edu/), and although computer science is different from software engineering, the reality is that most CS grads go into software engineering, and thus should try and learn these essential skills.


Computer science in the graphics space requires a ton of gnarly coding. If we consider post-doc computer science in particular, the idea you dont then need to be at least a semi-competent programmer is.. a surprising idea to have.

Which is to say, the idea CS do not need to ever code is a stretch. How does a person work on cutting edge graphics algorithms without building something with it? Without coding in a pretty serious way?

One example, at the end of my intro to programming, the final assignment was to build something, I wrote a chess program (with a GUI). While some classes are quite theoretical, I strongly disagree that a person can get through all of a CS program without their coding skills being challenged.


A mildly interesting note that this paper was submitted as part of SIGBOVIK (http://www.sigbovik.org/), a collection of similarly funny papers.


For a younger age group (13-15 maybe), George F. Simmons’ “Precalculus Mathematics in a Nutshell” (https://www.amazon.com/Precalculus-Mathematics-Nutshell-Geom...) is quite good though might require a bit of help to grasp. It features lots of exercises and a quite decent explanations for the age range.


> we can also add local storage of telemetry data in an efficient circular buffer. Typically, local storage is cheap and underutilized, allowing for “free” storage of a finite amount of historical data, that wraps automatically. Local storage provides the ability to “time travel” when a particular event is hit.

I think that this is a good idea when storage is concern for high-volume logs / production. Persisting the buffer when high error rates / unusual system behavior is observed would be a cool idea.


This is a good approach and is pretty common in the embedded world. You use a ring buffer to store a relatively short but detailed log, and then if you encounter an error (or whatever other relevant trigger criteria you use) you snapshot the contents of that ring buffer. Then later you can retrieve the snapshots to figure out what happened.


A good, decently detailed look at signal processing required. I also like https://ciechanow.ski/gps/, which has some fantastic visuals to go along with this explanation.


Wow that blog never ceases to amaze me. I was actually thinking about it when I read this post, that it’s exactly the type of post Bartosz could have made. And he had! Those interactive graphics are unbeatable.


I think the really neat piece of software behind this is maxima (https://maxima.sourceforge.io/), a rather influential computer algebra system of ancient lineage still in use today in more places than you might think.


The custom solver is really neat too

> In order to show the steps, the calculator applies the same integration techniques that a human would apply. The program that does this has been developed over several years and is written in Maxima's own programming language. It consists of more than 17000 lines of code. When the integrand matches a known form, it applies fixed rules to solve the integral (e. g. partial fraction decomposition for rational functions, trigonometric substitution for integrands involving the square roots of a quadratic polynomial or integration by parts for products of certain functions). Otherwise, it tries different substitutions and transformations until either the integral is solved, time runs out or there is nothing left to try. The calculator lacks the mathematical intuition that is very useful for finding an antiderivative, but on the other hand it can try a large number of possibilities within a short amount of time. The step by step antiderivatives are often much shorter and more elegant than those found by Maxima.


This is known as rule-based integration. Here's a powerful system of such rules: https://rulebasedintegration.org/integrationRules.html


Does one know if mathematica uses that too ? I rememebr an HN post where one could see that sympy, maxima and the likes where way behind for a lot of more peculiar integrals..

ah the comparison is here : https://www.12000.org/my_notes/CAS_integration_tests/index.h...

(and posted by other on this very thread...)


There is a go implementation of a CAS which syntax similar to Mathematica which uses this rules based integration library.

https://github.com/corywalker/expreduce


Apparently that lineage goes back to 1968 https://en.m.wikipedia.org/wiki/Macsyma

I wonder what those early versions were like. It's on lisp so it's feasibly still runnable without too much fussing around


Compile ITS and just run :macsyma at the DDT prompt (shell/debugger) from ITS:

https://github.com/pdp-10/its

The syntax it's the same, I even made a plot and 'printed' into the host from an ARDS output from the plot command, by converting the file into PPM->PNG or PPM->PDF.

This is a plot from Macsyma converted into PDF:

http://0x0.st/X-67.pdf


that y2k bug is delightful


And it has been fixed =)

    :date
      MONDAY, APRIL 15, 2024  07:37:33 PM


Maxima ist absolutely great. It can be somewhat confusing, but it is actually quite advanced.

Calculating integrals is extremely hard (unlike calculating derivatives, which is very easy to do) and maxima comes with some of the more advanced and comprehensive strategies to solve integrals.


It's integration functionalities are less advanced and comprehensive than those of Fricas. Interestingly, the latter is, like Maxima, implemented using Lisp and stems from an ancient software lineage. Both systems are free and open-source.

Fricas home page: http://fricas.github.io

Fricas Archlinux package page: https://archlinux.org/packages/extra/x86_64/fricas/

Some independent integration benchmarks, comparing multiple computer algebra systems: https://www.12000.org/my_notes/CAS_integration_tests/index.h...


Both Fricas and Maxima use Common Lisp, most people will just use SBCL for both.

But, the magic of Lisp is that you might call Common Lisp functions from one suite into another and viceversa without too much trouble.


Fascinating, thank you!


I use it in the university and I hate it. The interface is ugly and very unintuitive, as well as the language.


Interface? You can use wxmaxima, maxima.el from Emacs (and with Gnuplot/LaTex support to render inline equations), or KDE's Cantor too.


I still use this daily. It's ugly and cranky but it works and it's the right price.


Ugly and cranky is quite subjective... As much as I like Mathematica the language, the user interfaces that they propose are so wonky and ugly (in my eyes) that Maxima feels like a breath of fresh air and elegance.


I don't disagree there.


This is one of those things that the ever-amazing pandoc (https://pandoc.org/) does very well, on top of supporting virtually every other document format.


I second this. Pandoc is up there as one of the most useful tools that exist, that almost no one talks about. It's amazing, easy to use, and works. I regularly see new tools in the space pop-up, but someone would have to have a REALLY unique and compelling feature, or highly optimized use case to get me to use anything else (besides Pandoc).


I wrote a series of blog posts about typesetting Markdown using pandoc:

https://dave.autonoma.ca/blog

Eventually, I found pandoc to be a little limiting:

* Awkward to use interpolated variables within prose.

* No real-time preview prior to rendering the final document.

* Limited options for TeX support (e.g., SVG vs. inline; ConTeXt vs. LaTeX).

* Inconsistent syntax for captions and cross-references.

* Requires glue to apply a single YAML metadata source file to multiple documents (e.g., book chapters).

* Does not (reliably) convert straight quotes to curly quotes.

For my purposes, I wanted to convert variable-laden Markdown and R Markdown to text, XHTML, and PDF formats. Eventually I replaced my tool chain of yamlp + pandoc + knitr by writing an integrated FOSS cross-platform desktop editor.

https://keenwrite.com/

KeenWrite uses flexmark-java + Renjin + KeenTeX + KeenQuotes to provide a solution that can replace pandoc + knitr in some situations.

Note how the captions and cross-reference syntax for images, tables, and equations is unified to use a double-colon sigil:

https://gitlab.com/DaveJarvis/KeenWrite/-/blob/main/docs/ref...

There's also command-line usage for integrating into build pipelines:

https://gitlab.com/DaveJarvis/KeenWrite/-/blob/main/docs/cmd...


It looks like the CLI tool (@penrose/roger) just depends on a few npm packages with no browser engine and supports SVG export.


Looks like that depends on the “canvas” package, which appears to use Cairo/Pango for text, similar to Graphviz.

This is great! I wanted something I could compile (the native code) to WebAssembly for use in a Deno-based SSG, and this looks promising.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: