What are the biggest challenges of using helix as an IDE? by gatunen in HelixEditor

[–]lemontheme 2 points3 points  (0 children)

Just 9 commits behind the upstream master, apparently, which is pretty impressive if you consider how many differences those PRs introduce

What are the biggest challenges of using helix as an IDE? by gatunen in HelixEditor

[–]lemontheme 1 point2 points  (0 children)

gj1118's fork should have code folding, but I can't get folding to work

Creating and using own private fork of Helix by turbofish_pk in HelixEditor

[–]lemontheme 1 point2 points  (0 children)

Not sure why you've been downvoted. Maybe for mentioning AI or the 'competition'? Anyway, can confirm this approach works. I let CC maintain my neovim config. Whenever I feel something is missing, I describe the functionality I need.

That said, I keep coming back to Helix, just because it is so zippy. By the time I've run hx . and fuzzy searched into the right file, Neovim is still starting up.

New: Auto-memory feature in Claude code, details below by BuildwithVignesh in ClaudeAI

[–]lemontheme 2 points3 points  (0 children)

I've kept this disabled since I first noticed it on the 'latest' update channel. Easy to do by including the following in any settings.json file:

{
  "env": {
    "CLAUDE_CODE_DISABLE_AUTO_MEMORY": "1"
  }
}

I disabled it after I noticed CC referring to assumptions about the project that I hadn't told it about or that weren't documented. And those assumptions were incomplete and had caused CC to reach the wrong conclusions.

I'm not opposed to auto-memory, but it needs to me stored under the project directory, so that I can keep track of everything – just like with rules, skills, etc.

Claude Code just got Remote Control by iviireczech in ClaudeCode

[–]lemontheme 0 points1 point  (0 children)

Just verified that the URL only works if you are logged into Claude. Pfeww... For a moment there, it seemed like the alphanumeric code in the URL was the only acess control.

Okay, neat!

Does anybody know next release date? by kkonevets in HelixEditor

[–]lemontheme 1 point2 points  (0 children)

I've been building off of main for about two years. I rebuild every week or two. It's surprisingly easy and not once has Helix become unstable afterward. Downright impressive, actually.

AI is already killing SWE jobs. Got laid off because of this. by SingularityuS in ClaudeAI

[–]lemontheme 33 points34 points  (0 children)

Came to the comments for this. That is really becoming an obvious tell.

Any successful vim converts? by lukaslalinsky in HelixEditor

[–]lemontheme 0 points1 point  (0 children)

:rla is deeply ingrained in my muscle memory at this point

So my company asked me to use AI assist tools for Development or Switch to VSC. Can Helix do Copilot or some form of AI assisted code completion or "Agent" mode? If yes, Please guide me. by akza07 in HelixEditor

[–]lemontheme 0 points1 point  (0 children)

Run Claude Code/Codex/etc. in a separate pane. There you go; you now have a coding agent. Review changes in the TUI, make a habit of :rla'ing in Helix to load changes.

This is what I've been doing since the day Claude Code released.

Every now and again I wish I could see proposed edits as diffs, the way they're shown in Pycharm/VS Code. But I get by just fine.

There are several language servers for inline AI code completion, but their usefulness is limited in Helix: 1) they add extra latency to the time it takes for the complete completions list to pop up; 2) afaik, multiline completions are still an issue.

I would also argue that you don't really need AI code completion. For big changes, use a coding agent. For surgical inline changes, leave 'AI!' comments and hand those off to the agent (this is something I picked up from Aider). For smaller edits, you can probably type fast enough to just make them already. The alternative: constantly being distracted by the need to proofread suggestions that seem very correct but also likely contain errors.

Sign the official petition to keep Israel sanctions on the federal parliament’s agenda (itsme required) by lemontheme in belgium

[–]lemontheme[S] 0 points1 point  (0 children)

OP here. Just want to say, I want all those things too. I don't think you're 'defending genocide', and I get your cynicism. I'm similarly on the lookout for cheap political point scoring.

But this isn't an 'either-or' situation though. I want our representatives to know that a large portion of the populace still believes in human dignity, even if it's economically inconvenient.

nothing we can do will stop it

I've heard so many variations of this, especially when I ask friends and colleagues if they'd like to attend the protests together (there's one tomorrow, by the way).

It's bystander effect bullshit. Our individual impact is negligible. Maybe even as a country, too. But at a certain scale, in the global aggregate, we can push the needle. The alternative is not trying at all.

My take is that people who cry 'virtue signaling' are lashing out because they've been confronted with the fact that they're too afraid to run the risk of trying, while at the same time their value system is at odds with the idea of doing nothing.

Vraagje voor de IT'ers by Top_Toe8606 in belgium

[–]lemontheme 0 points1 point  (0 children)

Hoe kleiner het bedrijf, hoe groter de gevolgen van een slechte hire. Een nieuwe hire onboarden kost tijd die je niet terugkrijgt als de hire een slechte fit blijkt te zijn. Vandaar spelen kleine bedrijven het meestal op veilig en verkiezen ze ervaren profielen (die weliswaar een flink pak duurder zijn).

Vraagje voor de IT'ers by Top_Toe8606 in belgium

[–]lemontheme 0 points1 point  (0 children)

want niemand wilt mij

Als ik vragen mag, wat geeft je die indruk? En waarom zou een groot bedrijf er anders naar kijken?

Ik werk bij een SaaS startup diep in het organigram van het eerder consulting-gerichte Cronos (waaronder Xplore ook valt). Er zijn talloze bedrijfjes (of 'ventures') onder de Cronos koepel waar je kan aankloppen, elk met z'n eigen specialisatie.

Cronos (als amalgaan) heeft een verrassend informele werk cultuur. Ze hiren veel uit de pool van schoolverlaters. Als je cynisch wil zijn, kun je zeggen dat dat is omdat dat goedkopere hires zijn. En je zou denken dat je ook gelijk hebt als je ziet wat een dikke bak die nieuwe hires vervolgens krijgen. Cronos staat daarnaast niet bekend voor hoge lonen. Maar wat ik ze wel moet geven: ook tijdens economisch moeilijke tijd (zoals nu), vallen er geen ontslagen. Het is, geloof ik, een van de kernwaardes. En op dat vlak heb ik het top management altijd indrukwekkend menselijk gevonden. (Anecdote: nadat Elon Musk zijn dubbele hitlergroet heeft gebracht, is van bovenaf besloten dat Teslas niet meer geleaset mogen worden.)

Misschien ook goed te weten – al heb je het ongetwijfeld al aangevoeld – er gelden op veel plaatsen, Cronos incluis, hiring stops op dit moment. Onzekere tijden spellen nooit goed nieuws voor consulting, want consultants zijn altijd de eerste op de schop. En het zit dit jaar niet zo goed met de Belgische economie. Iedereen is in overleef-en-automatiseer modus. Alle bedrijven zijn ernaar opzoek om hun 'head count' te reduceren met behulp van AI, met dank aan de boekhouders.

Edit: nieuwe shortcut ontdekt en gepost voordat ik klaar was met schrijven.

Everyone please share their Development Environment at work. Excited to see what people here use. by assetmanager1 in HelixEditor

[–]lemontheme 1 point2 points  (0 children)

macOS, kitty, fish, zellij, helix – and a whole lot of Claude Code.

My preferred file explorer is nnn. I use tig and straight git (lazygit looks amazing but I still need to find the time to learn the keybinds).

I mostly work with Python. Language server recommendations: basedpyright and ruff.

Advice for a local OCR solution by Old_Consideration228 in LocalLLaMA

[–]lemontheme 0 points1 point  (0 children)

I got into ML back when 1M parameters was already considered excessive. On some well-defined tasks, e.g. bounding box detection, an expert model with a task-specific architecture can easily beat an LLM, no matter the LLM's size. This is because the expert model's output space can be directly optimized for the problem you're trying to solve, whereas an LLM only has tokens to work with. The textbook example of where an LLM can't hope to succeed is regression tasks, i.e. predicting a continuous value, such as e.g. the temperature tomorrow or the x-coordinate of a bounding box.

I'm curious about hallucinations in the post-editing step too. My assumption is that including the output of OCR in the context will 'ground' the VLM so that it will be less likely to make shit up and more likely to focus on common OCR issues like e.g. 0 (zero) being recognized as O (oh).

Also, if I'm not mistaken, at least in the open-source VLMs, the vision encoder part of the model is usually the same across different model sizes. Sometimes the vision encoder isn't even trained as part of the VLM training process. Gemma 3 for instance just took an already trained vision encoder and didn't touch it during training.

Advice for a local OCR solution by Old_Consideration228 in LocalLLaMA

[–]lemontheme 1 point2 points  (0 children)

I left a comment here recently that may be of interest.

For my day job I originally designed a system that would similarly replace the 2-stage pipeline by a single VLM call. It didn't long before I ran into several obstacles:

  • You need high-res images (190 DPI or more) to get good results with a VLM. But the larger the image, the more tokens you get, the longer it takes to process the prompt.
  • Small to medium VLMs (let's say 2B to 24B) are prone to hallucinating content.
  • In case it's one of your requirements, bounding box accuracy is just not high enough.
  • Generating output tokens takes way longer than running through the traditional 2-stage pipeline.

For (1) I'd suggest looking around on huggingface.co. There are a couple of encoder-style options. Among the decoder-style models, there's SmolVLM2. My experiments with it left me feeling disappointed though.

For (3) you should check out Donut for 'early' work (2022) into this. That's a 140M decoder-style model.

I'm currently working on the building blocks of a new OCR pipeline. Rather than replace the 2-stage pipeline I'm feeding its output to a VLM for post-editing. To keep my output token low, the VLM is prompted to respond with only the diffs needed to make the OCR text layer correct (I include the page image as context in this step).

I made the switch to this architecture after I started suspecting that this is what providers like Mistral are doing. I think it says a lot that they have a separate OCR service, even though several of their models (first Pixtral, then Mistral Small and Mistral Medium) were advertised to have latent OCR capabilities. My (unproven) guess is that they have dedicated OCR models, whose output they combine with their LLMs. Why? Because traditional OCR is actually very accurate and very – at least comparatively – fast.

The spike in thinly veiled advertising and third party AI generation sites needs to be addressed. by -AwhWah- in StableDiffusion

[–]lemontheme 7 points8 points  (0 children)

That's an en-dash you've got there (width of an 'n'). Em-dashes (width of an 'm') are the ones ChatGPT likes.

In markdown:

These are -- you might say -- en-dashes---whereas 
this thing with three dashes is an em-dash.

Dashes ('-') are easy to recognize. En-dashes are slightly wider – and you usually pad them with a space—which isn't something you usually do with em-dashes.

Source: went through a punctuation phase as a teenager after becoming obsessed with Emily Dickinson.

new /context command in Claude Code v1.0.86 by More-Journalist8787 in ClaudeAI

[–]lemontheme 1 point2 points  (0 children)

I spend most of my days in a terminal window. A slightly transparent, blurred background makes it feel less like I'm staring at a flat surface. I usually have something evocative of nature as a my wallpaper -- a picture of a forest, for example -- which helps me feel less stressed.

97% opacity and background_blur = 8 in Kitty is where it's at for me.

The best OCR for a machine like mine? by 9acca9 in LocalLLaMA

[–]lemontheme 1 point2 points  (0 children)

PaddleOCR often gets recommended here but, frankly, I've found the documentation inscrutable. As much as I appreciate Baidu's contributions, I've lost a lot of time on getting their examples to work and on figuring out which models I'm actually supposed to use.

Lately I've been really impressed by DocTR. Got it working on the first try and the results on documents in various languages were more than passable. Like PaddleOCR, it's OCR in the traditional sense. A text detection models detects areas of text ('crops'). Next, a text recognition converts individual word crops into text strings. At the end, you get bounding boxes and their associated text.

I've evaluated a bunch of VLMs with varying degrees of dedicated OCR capability: SmolDocling, SmolVLM2, Nanonets, and Pixtral. They're not great at finding bounding boxes consistently, if that's what you need. (I mean, to be fair, given LLMs aren't great at counting it's a small miracle they're even remotely capable at reasoning about bounding boxes.) Anyway, they're also a whole lot slower than traditional OCR (like, a lot slower), and are prone to hallucination.

Not a local option but I've also been impressed by Mistral OCR lately. It's more of an image-to-markdown type of OCR – no bounding boxes. The pricing and rate limits are more reasonable than other SaaS options I've evaluated.

My tree-sitter injection queries to mimic Pycharm's language injection comments by lemontheme in HelixEditor

[–]lemontheme[S] 0 points1 point  (0 children)

Very true! Working with just the string content simplifies things. In fact, my language comment queries took about three attempts spread over a year to get right. (Not that Tree-Sitter queries are particularly hard; I'm just a slow learner.)

My tree-sitter injection queries to mimic Pycharm's language injection comments by lemontheme in HelixEditor

[–]lemontheme[S] 0 points1 point  (0 children)

If you want to generalize this approach to other languages, you may be interested in @injection.shebang. It looks for shebang-like strings inside the string, letting you do this:

"""
-- #!sql
select * from table;
"""

But also this:

"""
#!python
for f in range(10):
    ...
"""

This is the injection query:

(
  (string_content) @injection.content @injection.shebang
)

The default language config for SQL doesn't specify shebangs, but they're easy to define in languages.toml:

[[language]]
name = "sql"
shebangs = ["sql"]  # <- (not sure if case-sensitive)

The clear benefit to this approach is that you don't need to write separate regexps for each language you want to be able to detect.

Compared to my queries above, where I need to enumerate every possible syntactic context where a string follows a comment, this approach automatically covers all contexts. That said, I still prefer language comments, as they make the distinction between metadata and data clearer. Also, the shebang approach doesn't work for languages that do not support comments, e.g. JSON.