Qwen3 8B works pretty well. But for complex planning and navigation tasks, big models (GPT4.1, claude 3.7) are the still the best bet. We also let you use your own API keys for the big models.
Exactly the question on my mind. I have an ongoing fantasy of a super powerful, private inference server sitting in my closet that I can throw at stuff like this.
> There is a concept called “Copilot Lag”. It refers to a state where after each action, an engineer pauses, waiting for something to prompt them what to do next.
I've been experiencing this for 10-15 years. I type something and then wait for IDE to complete function names, class methods etc. From this perspective, LLM won't hurt too much because I'm already dumb enough.
It's really interesting how minor changes in your workflow can completely wreck productivity. When I'm at work I spend at least 90% of my time in emacs, but there are some programs I'm forced to use that are only available via Win32 GUI apps, or cursed webapps. Being forced to abandon my keybinds and move the mouse around hunting for buttons to click and then moving my hand from the mouse to the keyboard then back to the mouse really fucks me up. My coworkers all use MSVC and they don't seem to mind it all because they're used to moving the mouse around all the time; conversely a few of them actually seem to hate command-driven programs the same way I hate GUI-driven programs.
As I get older, it feels like every time I have to use a GUI I get stuck in a sort of daze because my mind has become optimized for the specific work I usually do at the expense of the work I usually don't do. I feel like I'm smarter and faster than I've ever been at any prior point in my life, but only for a limited class of work and anything outside of that turns me into a senile old man. This often manifests in me getting distracted by youtube, windows solitaire, etc because it's almost painful to try to remember how to move the mouse around though all these stupid menus with a million poorly-documented buttons that all have misleading labels.
I feel your pain. I have my own struggles with switching tasks and what helps to some degree is understanding that that kind of switching and adapting is a skill which could be trained by doing exactly this. At least I feel less like a victim and more like a person who improves himself :)
But it appears I'm in a better position because I don't have to work with clearly stupid GUIs and have no strong emotions to them.
This is the reason I don’t use auto completing IDEs. Pretty much vanilla emacs. I do often use syntax highlighting for the language, but that’s the limit of the crutches I want to use.
Normally you would write a program that is a game of Doom when you run it (you create a program, then compile it and run). Dmitri created a program that does nothing and he don't even run it. But while it's compiling, it does a lot of tricky things to make typescript compiler to run Doom as a side effect.
It's extremely hacky because Typescript is not even a runtime, it's not meant to run any code at all. Typescript is a thing that takes .ts file and produces .js file (which you then run using different program - a javascript runtime).
So cool that with uv it becomes so easy to install such tools.
What's missing in the install routine is uv installing this tool ignoring the Python dependency. My box has 3.10 and isd won't work with it. Fixed with `-p 3.13` option. May be worth mention in the docs.
This is an absolutely great project. I had a lot of fun tinkering with the ROM of my Philips smart clock.
It has a built-in DSL that looks like Rust (without memory management, though – so it's very lightweight), and with that, it's possible to visualize and extract structural data from binary streams. That's really fun and cool.
It also has a visual editor to make simple calculations with no code. It didn't feel polished at the time I tried it. Strangely, writing code in DSL was more intuitive and easier for me.
There's, unfortunately, a million similar implementations for this basic concept. 010 Binary Templates, Hex Workshop structures, Okteta structures, Kaitai Struct Definitions. Heck, I made my own Go struct tag DSL that does this, before I realized just how many times it had already been done before.
The thing that's complicated of course, is that while it is a good idea and the basic idea is incredibly similar across implementations, there are just enough different concerns to make it hard to have one universal standard that can cover all of the use cases. It's hard enough to have a single parsing framework that handles both text parsing and binary format parsing well, but you also would need to consider the ability to incrementally parse/stream, read/write support, support arbitrary transformations, some formats need pointers, offsets, indices, and of course to what degree such a descriptor should be declarative versus imperative (declarative is better, but it gets increasingly hard to capture all details entirely in a purely declarative manner.)
I too have been working in this space for a while. Then I found out about kaitai stuct, lost some steam but regrouped. I do have some novel ideas and my dsl is less verbose than theirs :)
The very first "technique" is odd and based on a false assumption. Bash doesn't call /bin/[ binary when evaluating expressions. It uses its own builtin implementation instead.
As a teenager, I discovered disassemblers/debuggers and became very enthusiastic about hacking and patching things. I reset the trial period counter on a few shareware apps, and the next "victim" that caught my eyes was encrypted RAR SFX archive. I thought it would be the perfect target.
I spent ~20 hours trying to find a routine that compares the entered password with the correct one. That humbling moment I realised there was no such routine, and moreover, most of disassembled code is just garbage.
[*] this is an encrypted archive combined with extractor in one .exe file.
I would add `layout.css.font-visibility=1` to hide all non-default fonts (makes a canvas font rendering test less useful).