e.g.:
- embedding a prolog/asp DSL: https://github.com/kiranandcode/cleango
- embedding a tex/latex DSL: https://github.com/kiranandcode/LeanTeX
1,210 karma · joined June 5, 2019
url: kirancodes.me
e.g.:
- embedding a prolog/asp DSL: https://github.com/kiranandcode/cleango
- embedding a tex/latex DSL: https://github.com/kiranandcode/LeanTeX
I'm curious if this probing of nullability could be composed with other LLM/ML-based python-typing tools to improve their accuracy.
Maybe even focusing on interfaces such as nullability rather than precise types would work better with a duck-typed language like python than inferring types directly (i.e we don't really care if a variable is an int specifically, but rather that it supports _add or _sub etc. that it is numeric).
https://github.com/kiranandcode/petrol
An example query being:
```
let insert_person ~name:n ~age:a db = Query.insert ~table:example_table ~values:Expr.[ name := s n; age := i a ] |> Request.make_zero |> Petrol.exec db
```
As many others in the thread have said - the profits from the paper paywalls go to the publishers, reviewing is done by volunteers.
As an aside, it's funny how often defenders of intellectual slavery are so dug in to their beliefs while being completely unaware of the mechanisms of what they're defending. I suppose such ignorance is a necessary precondition to support such injustice.
Yeah, it really is sad to see people so eager to embrace authoritarian sensibilities like this. The paradox of tolerence has seemingly become a buzzword without meaning, perverted beyond its original intent; a simple facade that enables people to feel self-justified about their own intolerance while still allowing them to claim progressive ideals.
Oh, no, I wasn't trying to say that they were equivalent in general - of course, fold right is the more general operator, as you can implement fold left in terms of fold right. (As an OCaml programmer, I'm used to assuming that all my lists are finite[1]).
The interesting part that I wanted to highlight was the fact that when you express fold as a declarative relation, it is possible to obtain both fold left and fold right essentially for free. Maybe this is an obvious fact for Prolog practitioners, but as a functional programmer this was a somewhat surprising discovery for me.
> Here's a neat paper on fold by Graham Hutton: "A tutorial on the universality and expressiveness of fold"
> https://www.cs.nott.ac.uk/~pszgmh/fold.pdf
Oh, nice! Thanks for the pointer, that's a great paper!
[1] Although technically it is possible to represent certain restricted classes of infinite lists in OCaml: https://v2.ocaml.org/manual/letrecvalues.html
While the most popular implementation at the moment seems to be egg in Rust, I find that OCaml serves as a much more ergonomic environment for quickly prototyping out uses of egraphs in practice. As a bonus, ego also shares the same logical interface as egg itself, so once you've finalised your designs, you shouldn't have much trouble porting them to egg if you need the performance gains.
> This is why we have "Copyleft".
This. Exactly. It's suprising how many developers have strong anti-copyleft/anti-GPL opinions while being completely uninformed on what they're talking about (but hey, I guess "uninformed but strongly opinionated" is HN in a nutshell). The purpose of GPL and other copyleft licenses is exactly to combat the insanity of intellectual slavery.
IMO, the only way to use Copilot's output in an ethically sound way is to only use the output it produces in AGPL licensed projects (assuming that Copilot has not been trained on any non-free software codebases which in itself is a strong assumption).
I, for one, am glad that Free/Libre software like inkscape continues to be heading strong, and find that it far outpaces any of the proprietary malware SAAS applications out there.
Are we reading the same articles at all? Most of the Emacs posts I see are about extending features that lesser editors could only dream of supporting (using it as a window manager, media center, GUI etc.).
I always find it suprising how far anti-Emacs zealots will go to try and cast GNU+Emacs is a bad light. Somehow the fact that the GNU+Emacs community cares enough to share their configuration tips is a "bad" thing, rather than just being indicative of a supportive and friendly user community.
I guess if you are stuck in proprietary, telemetry-ridden editors like M$ vs-code, or sublime text, somehow you have to convince yourself that the grass truly isn't greener on the other side, and this is just one such coping mechanism.
You realise that you're asking innocent people to risk violence and potentially even give up their lives, to protest an invasion by a despot that they had little opportunity to oppose right? It's pretty easy to take credit for the bravery and fortitude that your predecessors had to bring about their revolutions from the comfort of your first-world home at little to no risk to yourself.
Honestly, this seems like the most out of touch call to action that I've ever heard. Also, it only starts to feel even more hypocritical when you realise that there have been several anti-war protests going on in Russia, for which the participants faced brutal violence at the hands of the state.
It's for this reason that nowadays I rarely write my own "new" programming languages from scratch, but rather embed them as DSLs inside existing programming languages using macros. This way you get the full ecosystem of the host language for free, leaving you more time to work on designing the language to suit your needs. If you combine macros with clever uses of GADTs you can even get the host language to "type-check" programs written in your DSL. OCaml and Lisp/Racket are my favourite host languages to use for this approach.
I think for now, the fediverse seems to be the most sustainable alternative to modern social media.
Adding a hook for compilation in most decent editors is only a few lines of config, and many popular editors (GNU Emacs, vim, m$ vscode) nowadays have packages that have these hooks predefined, so it pretty much just comes down to installing a package, which I hope you don't think is beyond the capabilities of the average user. Alternatively there are editors like texworks which provide exactly this feature out of the box.
I guess they're just going to have to settle with rust being the best language to write safety-critical high performance concurrent low-level code.
Given that OSS was a corporate sponsored perversion of Free/Libre software designed to trick naive developers into contributing unpaid labour without getting anything back, I would hope so.
Free software, on the other hand, is roaring ahead, and doing better than ever.
Maybe it's easier to understand via analogy. Let's consider cars. Of the global population of car users, relatively few of them are F1 racecar drivers. Furthermore, you can easily make the case that the particular features (aerodynamics, speed etc.) that make the F1 a good racecar, would not be useful for the average driver - the time they spend honing their skills to handle such a beast, you could argue, would be better spent on other things. But, at the same time, the F1 car has and will continue to have a place in the car ecosystem.
In the case of developers, you might be right that, for the average developer, working on your run of the mill, mundane, forgotten-in-a-few-years, CRUD web apps, a normal _average_ car (M$ vscode) would be a better investment, but no matter what, you will never be as fast or flexible as an F1 car (GNU Emacs).