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

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.


To my knowledge, the F-14 never carried any anti-ship missile, especially on the early-model Iranian Tomcats, as the F-14 only received an air-to-ground upgrade package in the 90’s.


Given the fact that Iran successfully jury-rigged MIM-23 Hawk SAMs onto their F-14s, it's not out of the realm of possibility that they could do something similar with Exocet.

During the Falklands war there were worries that the Argies were fitting Exocet to LearJets (turns out they were used for recce and communications), and Chile also had a project on the books to convert Falcon biz jets to carry Exocet. And, some say USS Stark was itself attacked by a Falcon carrying Exocets. Grafting missiles onto a warplane that already has hardpoints and the like seems like an easier task.


Yup. Some quick googling shows F-14 had LANTIRN pods added and upgraded software to support smart bombs in the mid-90s.

All models appear to completely lack the necessary software and hardware to use self-guided ground-attack weapons.

A hefty unguided bomb would be possible, but a WW2 dive bomber would have better accuracy. You’re probably better off using the gun.

With a lot of luck, you could mission-kill a frigate. Radar arrays don’t like to be rapidly disassembled.


... which we can all discuss at leisure from our armchairs with zero of the stress associated with being in the command chair that day.

Just because commenters here may come up with some down-in-the-weeds detailed analysis that could have, if known then, changed the course of events, does not mean that it's reasonable to have come up with that in the heat of battle.

There is a reason that the practice is called "Monday Morning Quarterbacking".


I happen to agree with you. I was just speculating what could have been done.

I have had to make decisions under stress. If I had been in the captain’s chair, I absolutely would have fired.

A verified enemy plane diving towards my ship in an active war zone?

If I had been thinking at all, I’d be thinking about the British losing a ship in the Falklands just 6 years ago.


Probably I would as well.

Then again there is a reason I'm not a navy captain with copious amounts of missiles under my control.


If you are commander of an explicitly Anti-Air cruiser, and you are unaware that any F-14 tasked against you would not have an anti-ship missile and would be abusing some other weapon "off-label", then you should not be defending a carrier fleet from aircraft. You should be familiar with the airframes, weapons, and abilities of your adversary.

The F-14 is not an attack aircraft! It was designed to intercept incoming air threats and bombers!


"So... the fighter was in range of your missiles."

"Yep."

"And rapidly diving directly toward your fleet."

"Mmhmm."

"But you didn't fire on it? Why not?"

"Well, it was an F-14, you see. Doesn't possess anti-ship missiles."

"Yes... that's precisely the sort of tactical advantage you were put there to exploit."

"Wouldn't have been sporting."


Meanwhile in reality:

"So you got a radar track squaking civillian"

"Yup"

"And it never made any search or track radar emissions"

"Yup"

"And it was climbing out of the area, and despite all your instruments showing it continuing to climb, you all asserted it was diving for an attack run"

"Right"

"And instead of trying to further deconflict, or ask any of the other local navy vessels their interpretation, or just take a risk and accept that as a member of the military sometimes your job is to stand up in the line of fire, you decided that this was definitely an F-14 interceptor, being used to attack an AEGIS vessel whose intended design is to protect an american aircraft carrier from 20 simultaneous incoming Soviet antiship missiles, and was definitely a threat to said vessel"

"Yup"

"And now 290 innocent people are dead"

The captain of the Vincennes also claims they were in "hot pursuit" of a small Iranian gunboat in "self defense" at the time, and was noted by superiors as regularly going beyond his Rules of Engagement in training activities. He had a chip on his shoulder and clearly made up his mind about what he was going to do to that plane well before he had any indication it was a threat. A nearby vessel that was datalinked (ie, was hooked into the same battlefield map and signals) very quickly and clearly concluded it was a civilian flight. Capt Rogers convinced himself otherwise.


Not one iota of what you've written here is relevant to my point. Go back and re-read the conversation.

All I was saying was that the fact that an F-14 doesn't generally carry anti-ship missiles, is irrelevant to the mission of an anti-air cruiser.


There are a good number of androids that can run without a battery as long as they are plugged in, though that varies by model and manufacturer.


It seems like all interaction + scrolling is broken on the SE for me, although rendering and animations play.


Although not the F-22, modern fighters such as the F-35 can cost 100's of billions of dollars in R&D[0] (~150 billion iirc, with ~1.3 trillion total program cost).

[0] https://en.wikipedia.org/wiki/Lockheed_Martin_F-35_Lightning...


}


someone had to do it, thank you. ;


)


You monster.


That makes me uncomfortable.


( doesn't even fix it


;



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

Search: