talk-transcripts VS movfuscator

Compare talk-transcripts vs movfuscator and see what are their differences.

movfuscator

The single instruction C compiler (by xoreaxeaxeax)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
talk-transcripts movfuscator
34 82
2,852 9,013
- -
4.7 0.0
11 months ago about 1 year ago
C
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

talk-transcripts

Posts with mentions or reviews of talk-transcripts. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-15.
  • Teach Yourself Programming in Ten Years (1998)
    3 projects | news.ycombinator.com | 15 Jan 2024
    Thank you for this recommendation. I've never heard of it before and now I'm reading: https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

    It's giving me energy this Monday holiday(USA)!

  • Can't Be Fucked: Underrated Cause of Tech Debt
    1 project | news.ycombinator.com | 12 Oct 2023
    race?

    > [Audience reply: Sprinter]

    > Right, only somebody who runs really short races, okay?

    > [Audience laughter]

    > But of course, we are programmers, and we are smarter than runners, apparently, because we know how to fix that problem, right? We just fire the starting pistol every hundred yards and call it a new sprint.

    https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

  • Strong typing, a hill I'm willing to die on
    9 projects | news.ycombinator.com | 4 Oct 2023
    >So this is 10x, a full order of magnitude reduction in (?) severity before we get to the set of problems I think are more in the domain of what programming languages can help with, right? And because you can read these they'll all going to come up in a second as I go through each one on some slide so I'm not going to read them all out right now. But importantly there's another break where we get to trivialisms of problems in programming. Like typos and just being inconsistent, like, you thought you're going to have a list of strings and you put a number in there. That happens, you know, people make those kinds of mistakes, they're pretty inexpensive.

    [0] Video: https://www.youtube.com/watch?v=2V1FtfBDsLU

    [1] Slides and transcript: https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

    [2] Video https://www.youtube.com/watch?v=YR5WdGrpoug

    [3] Slides and transcript https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

  • Puzzle Languages
    1 project | news.ycombinator.com | 4 Oct 2023
    This is tangentially related to Puzzles-vs-Problems in Rich Hickey's Effective Programs

    > Eventually I got back to scheduling and again wrote a new kind of scheduling system in Common Lisp, which again they did not want to run in production. And then I rewrote it in C++. Now at this point I was an expert C++ user and really loved C++, for some value of love. But as we'll see later I love the puzzle of C++. So I had to rewrite it in C++ and it took, you know, four times as long to rewrite it as it took to write it in the first place, it yielded five times as much code and it was no faster. And that's when I knew I was doing it wrong.

    [...]

    > So I mean for young programmers, if everybody's tired and old, this doesn't matter any more. But when I was young, when I was young, I really, you know, when you're young you've got lots of free space. I used to say "an empty head", but that's not right. You've got a lot of free space available and you can fill it with whatever you like. And these type systems they're quite fun, because from an endorphin standpoint solving puzzles and solving problems is the same, it gives you the same rush. Puzzle solving is really cool. But that's not what it should be about.

    Talk: https://www.youtube.com/watch?v=2V1FtfBDsLU

    Slides and transcript: https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

  • All the ways to capture changes in Postgres
    12 projects | news.ycombinator.com | 22 Sep 2023
    Using triggers + history tables (aka audit tables) is the right answer 98% of the time. Just do it. If you're not already doing it, start today. It is a proven technique, in use for _over 30 years_.

    Here's a quick rundown of how to do it generically https://gist.github.com/slotrans/353952c4f383596e6fe8777db5d... (trades off space efficiency for "being easy").

    It's great if you can store immutable data. Really, really great. But you _probably_ have a ton of mutable data in your database and you are _probably_ forgetting a ton of it every day. Stop forgetting things! Use history tables.

    cf. https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

    Do not use Papertrail or similar application-space history tracking libraries/techniques. They are slow, error-prone, and incapable of capturing any DB changes that bypass your app stack (which you probably have, and should). Worth remembering that _any_ attempt to capture an "updated" timestamp from your app is fundamentally incorrect, because each of your webheads has its own clock. Use the database clock! It's the only one that's correct!

  • G. Polya, How to Solve It
    1 project | news.ycombinator.com | 22 Aug 2023
    Rich Hickey (creator of Clojure) references Polya several times in his classic talk "Hammock Driven Development". Here's a transcript:

    https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

    I've long been impressed by Hickey's problem solving skills, so I took much of this talk to heart, and even bought a copy of HTSI. Can't say it really helped me any more than Rich's talk (as a programmer) but I'm thinking I'll give it another look.

  • Interfaces All the Way Down
    1 project | news.ycombinator.com | 23 Jul 2023
    >Great product designs require no manual, and similarly, great interfaces need no documentation. Imagine having to read a manual on how to use a coffee mug.

    This could not be more wrong.

    Not everything is easy. If a library is addressing a complicated domain, solving by definition a complicated problem, it is fine if it requires some learning.

    When did expertise and learning become bad things? If software is an engineering discipline, why would people in it ever promulgate the idea that any random cog can step in to any “engineer”s shoes?

    Rich Hickey analogizes this mentality to the world of music, where it taken for granted that learning an instrument requires a lot of study:

    “ We start with the cello. Should we make cellos that auto tune? Like, no matter where you put your finger, it's just going to play something good, play a good note.

    “[Audience laughter]

    “Like, you're good. We'll just fix that.

    “ Should we have cellos with, like, red and green lights? Like, if you're playing the wrong note, you know, it's red. You slide around, and it's green. You're like, great! I'm good. I'm playing the right song. Right?

    “ Or maybe we should have cellos that don't make any sound at all. Until you get it right, there's nothing.

    “ [Audience laughter]”

    https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

  • Slightly off-topic: Whose lectures do you recommend listening to, similar to Rich Hickey?
    1 project | /r/Clojure | 6 Jun 2023
    You might find adjacent talks and speakers here ... https://github.com/matthiasn/talk-transcripts
  • Functions vs. Procedures: Keep them separate.
    2 projects | dev.to | 8 May 2023
    Many languages merge the two concepts, and implement procedures as functions that return void. This may muddle/complect their distinction, causing programmers to call procedures from within functions, thereby making those functions into impure functions (meaning that they affect the world outside of themselves, through side-effects like I/O or mutating state). This should be avoided, especially if you care about debug-ability and Functional Core, Imperative Shell architectures (see Gary Bernhardt's Boundaries talk at 31:56) (which make testing your system easier, without mocking).
  • What's the thing you avoided a lot but learned later, and it was really helpful?
    1 project | /r/ExperiencedDevs | 29 Apr 2023
    A great way to do this in practice is to write design docs. I take an approach inspired by Rich Hickey's "Hammock Driven Development" - identify the problem, state it, write it down - describe what you know about it - try to describe what you know that you don't know about it - list the constraints your solution has to operate within - enumerate some potential solutions and explore their problems - (later) choose a path, and describe why it was chosen over the alternatives

movfuscator

Posts with mentions or reviews of movfuscator. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-11.
  • M/o/Vfuscator: The single instruction C compiler (2020)
    1 project | news.ycombinator.com | 29 Dec 2023
  • controversialOpinion
    2 projects | /r/ProgrammerHumor | 11 Dec 2023
    Everything can be reduced to assignments. https://github.com/xoreaxeaxeax/movfuscator
  • M/o/Vfuscator: The single instruction C compiler
    3 projects | news.ycombinator.com | 5 Nov 2023
  • Subtraction Is Functionally Complete
    3 projects | news.ycombinator.com | 7 Oct 2023
    However, the movfuscator as implemented does still require a sigaction(2) syscall to set up a signal handler, under the justifications that "it is not actually part of the program" and that "if we were in ring 0, we wouldn't need help from the kernel" [0]. However, the latter part seems a little dubious to me: without the help of the kernel running non-MOV instructions, you'd never be able to escape from 16-bit real mode into 32-bit protected mode, since you wouldn't be able to load a valid GDT with the LGDT instruction (as far as I am aware).

    [0] https://github.com/xoreaxeaxeax/movfuscator/blob/90a49f31219...

  • The bigger the interface, the weaker the abstraction
    2 projects | news.ycombinator.com | 29 Jul 2023
    I _think_ the idea is thinking of an "interface" as "something that you use as a way to interact with something from outside an abstraction". I'd summarize their argument as reasoning that if the goal of an abstraction is to avoid having to care about the internal details of something, an interface is a way to expose a subset of ways to interact with it, and the more you expand it, the more it exposes the internals of the thing being abstracted. I don't think they necessarily mean this only in terms of programming, but you could apply this argument to a programming language interface; if you use an interface for interacting with something instead of its direct functionality, each additional method you add to the interface exposes more details of the inner value, which makes it less of an abstraction.

    Assuming my interpretation is correct, I'm not sure I totally buy this argument because there doesn't seem to be an obvious way to define the "size" of an interface where it holds true. The naive way to define the size would be number of methods, but I'd argue that methods can vary so much in terms of the amount of cognitive overhead they "expose" to the user that it's not very meaningful. Consider the Movfuscator compiler[0], which compiles code into binaries only using MOV x86 instructions because it happens to be Turing complete; as complex as it might be to learn x86 assembly as a whole and start writing programs directly in it, I'm dubious that trying to do so only with MOV would somehow be easier. Put another way, an x86 instruction set that only contains the MOV instruction is not a "stronger" abstraction than the actual one because it _introduces_ complexity that doesn't exist in the original. Does adding an ADD instruction alongside MOV increase the strength of the abstraction, or weaken it? I don't think there's an answer that we'd immediately all agree on for this sort of thing.

    Ultimately, I think trying to measure interfaces through the number of methods they expose is similar to trying to measure code by the number of lines in it; while there are some extreme cases where we'd likely all agree (e.g. for a fizzbuzz implementation, having 10 lines of code is probably better than thousands of lines of code[1]), we can't really come up with a good objective metric because the "target" number is based on the complexity of what you're trying to define, and we don't have a way of quantifying that complexity. I think the ideas here are still super interesting though, not because they have definitive right or wrong answers, but because thinking about stuff like this overall improves one's ability to write good software for usage by other programmers.

    [0]: https://github.com/xoreaxeaxeax/movfuscator

  • The M/o/Vfuscator contains a complete mov-only floating point emulator. Since it is approximately 500,000 instructions, you must explicitly link to it if you need it
    2 projects | /r/programmingcirclejerk | 15 May 2023
  • Can the RISC instruction set be simplified even further?
    1 project | /r/hardware | 30 Apr 2023
    The mov instruction in x86-64 is Turing complete. Someone even made a C compiler using only mov.
  • This is definitely not the best way to initialize an array
    1 project | /r/programminghorror | 29 Apr 2023
    Are you sure they didn't use the MOVFUSCATOR?
  • Can every function defined in popular libraries/frameworks be traced back to primitive data types, conditional statements and loops?
    1 project | /r/learnprogramming | 16 Apr 2023
    Yep. In fact you can reduce everything to just one simple assembly instruction.
  • I am going to learn goto
    2 projects | /r/ProgrammerHumor | 16 Apr 2023

What are some alternatives?

When comparing talk-transcripts and movfuscator you can also consider the following projects:

rich4clojure - Practice Clojure using Interactive Programming in your editor

demovfuscator - A work-in-progress deobfuscator for movfuscated binaries [Moved to: https://github.com/leetonidas/demovfuscator]

etaoin - Pure Clojure Webdriver protocol implementation

obfuscator

clj-chrome-devtools - Clojure API for controlling a Chrome DevTools remote

Molebox - MoleBox lets you convert your application into an all-sufficient stand-alone executable, containing everything needed: components, media assets, registry entries.

codetour - VS Code extension that allows you to record and play back guided tours of codebases, directly within the editor.

onelinerizer - Shamelessly convert any Python 2 script into a terrible single line of code

base - Unison base libraries

sectorlisp - Bootstrapping LISP in a Boot Sector

lumo - Fast, cross-platform, standalone ClojureScript environment

Unity-game-hacking - A guide for hacking unity games