frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Show HN: I built a RAG engine to search Singaporean laws

https://github.com/adityaprasad-sudo/Explore-Singapore
1•ambitious_potat•5m ago•0 comments

Scams, Fraud, and Fake Apps: How to Protect Your Money in a Mobile-First Economy

https://blog.afrowallet.co/en_GB/tiers-app/scams-fraud-and-fake-apps-in-africa
1•jonatask•6m ago•0 comments

Porting Doom to My WebAssembly VM

https://irreducible.io/blog/porting-doom-to-wasm/
1•irreducible•6m ago•0 comments

Cognitive Style and Visual Attention in Multimodal Museum Exhibitions

https://www.mdpi.com/2075-5309/15/16/2968
1•rbanffy•8m ago•0 comments

Full-Blown Cross-Assembler in a Bash Script

https://hackaday.com/2026/02/06/full-blown-cross-assembler-in-a-bash-script/
1•grajmanu•13m ago•0 comments

Logic Puzzles: Why the Liar Is the Helpful One

https://blog.szczepan.org/blog/knights-and-knaves/
1•wasabi991011•24m ago•0 comments

Optical Combs Help Radio Telescopes Work Together

https://hackaday.com/2026/02/03/optical-combs-help-radio-telescopes-work-together/
2•toomuchtodo•29m ago•1 comments

Show HN: Myanon – fast, deterministic MySQL dump anonymizer

https://github.com/ppomes/myanon
1•pierrepomes•35m ago•0 comments

The Tao of Programming

http://www.canonical.org/~kragen/tao-of-programming.html
1•alexjplant•36m ago•0 comments

Forcing Rust: How Big Tech Lobbied the Government into a Language Mandate

https://medium.com/@ognian.milanov/forcing-rust-how-big-tech-lobbied-the-government-into-a-langua...
1•akagusu•37m ago•0 comments

PanelBench: We evaluated Cursor's Visual Editor on 89 test cases. 43 fail

https://www.tryinspector.com/blog/code-first-design-tools
2•quentinrl•39m ago•2 comments

Can You Draw Every Flag in PowerPoint? (Part 2) [video]

https://www.youtube.com/watch?v=BztF7MODsKI
1•fgclue•44m ago•0 comments

Show HN: MCP-baepsae – MCP server for iOS Simulator automation

https://github.com/oozoofrog/mcp-baepsae
1•oozoofrog•48m ago•0 comments

Make Trust Irrelevant: A Gamer's Take on Agentic AI Safety

https://github.com/Deso-PK/make-trust-irrelevant
5•DesoPK•52m ago•0 comments

Show HN: Sem – Semantic diffs and patches for Git

https://ataraxy-labs.github.io/sem/
1•rs545837•53m ago•1 comments

Hello world does not compile

https://github.com/anthropics/claudes-c-compiler/issues/1
33•mfiguiere•59m ago•20 comments

Show HN: ZigZag – A Bubble Tea-Inspired TUI Framework for Zig

https://github.com/meszmate/zigzag
3•meszmate•1h ago•0 comments

Metaphor+Metonymy: "To love that well which thou must leave ere long"(Sonnet73)

https://www.huckgutman.com/blog-1/shakespeare-sonnet-73
1•gsf_emergency_6•1h ago•0 comments

Show HN: Django N+1 Queries Checker

https://github.com/richardhapb/django-check
1•richardhapb•1h ago•1 comments

Emacs-tramp-RPC: High-performance TRAMP back end using JSON-RPC instead of shell

https://github.com/ArthurHeymans/emacs-tramp-rpc
1•todsacerdoti•1h ago•0 comments

Protocol Validation with Affine MPST in Rust

https://hibanaworks.dev
1•o8vm•1h ago•1 comments

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
4•gmays•1h ago•0 comments

Show HN: Zest – A hands-on simulator for Staff+ system design scenarios

https://staff-engineering-simulator-880284904082.us-west1.run.app/
1•chanip0114•1h ago•1 comments

Show HN: DeSync – Decentralized Economic Realm with Blockchain-Based Governance

https://github.com/MelzLabs/DeSync
1•0xUnavailable•1h ago•0 comments

Automatic Programming Returns

https://cyber-omelette.com/posts/the-abstraction-rises.html
1•benrules2•1h ago•1 comments

Why Are There Still So Many Jobs? The History and Future of Workplace Automation [pdf]

https://economics.mit.edu/sites/default/files/inline-files/Why%20Are%20there%20Still%20So%20Many%...
2•oidar•1h ago•0 comments

The Search Engine Map

https://www.searchenginemap.com
1•cratermoon•1h ago•0 comments

Show HN: Souls.directory – SOUL.md templates for AI agent personalities

https://souls.directory
1•thedaviddias•1h ago•0 comments

Real-Time ETL for Enterprise-Grade Data Integration

https://tabsdata.com
1•teleforce•1h ago•0 comments

Economics Puzzle Leads to a New Understanding of a Fundamental Law of Physics

https://www.caltech.edu/about/news/economics-puzzle-leads-to-a-new-understanding-of-a-fundamental...
3•geox•1h ago•1 comments
Open in hackernews

Show HN: Zsweep – Play Minesweeper using only Vim motions

https://zsweep.com
78•oug-t•2w ago

Comments

oug-t•2w ago
Hi HN,

I’m the creator of zsweep. It’s a keyboard-centric Minesweeper clone where you play entirely using Vim motions (h, j, k, l to move; w/b to skip words; etc.).

The Backstory: I wanted to build a project to get my hands dirty with Svelte 5 and the new Runes system. I also wanted a way to practice Vim muscle memory that wasn't just typing code.

Tech Stack:

Frontend: Svelte 5 (Runes) + SvelteKit

Styling: Tailwind CSS

State: Custom Finite State Machine (FSM) for the game logic

The Challenge: One of the hardest parts was getting the "chording" logic right (where you clear multiple squares at once) while keeping the keyboard navigation feeling instant and "vim-like."

It’s open source, so if you’re curious about how Svelte 5 handles game state, feel free to poke around the code: https://github.com/oug-t/zsweep

I’d love to hear your feedback on the controls or any edge cases you find!

oug-t•2w ago
Repo: https://github.com/oug-t/zsweep
oug-t•2w ago
also trying to add features with three.js for better visual impressions.
oug-t•2w ago
Play at: https://zsweep.com
rajeshvar•2w ago
nice!
kej•2w ago
This is a fun idea and the implementation works pretty well.

The only complaint I have is that enter for clearing feels awkward in conjunction with hjkl movement; maybe add (d)elete and (f)lag as alternatives to enter and space to keep everything on the home row without requiring stretching?

oug-t•2w ago
That makes a lot of sense, I will try to find alternative for clearing as well!

Now I mainly use `space` key for both chording and flagging. It's the old muscle memory I inherited from playing the classic minesweeper game. One good thing about using the space is that, thumb is always available in vim motions, where other fingers are on the home row.

Thanks for the advise!!

unformedelta•2w ago
This was fun!

It would feel a little more intuitive if w/b worked on groups of unrevealed tiles instead of just moving 1 space when you were already on an unrevealed tile. i.e. unrevealed = words, revealed = spaces. That way, you could also use them to meaningfully navigate around unrevealed groups better than using h/l. I also found myself missing "e" to go to the end of a word, apparently I use it more often than "w".

I really appreciated the attention to detail though, I was delighted when I realized that gg/G/0/$ all worked as expected.

oug-t•2w ago
That makes a lot of sense regarding `w/b`. I struggled a bit defining a word in the game cells.

I'll add `e` (end of word) support in the next push, too. Thank a lot for the feedback!

1313ed01•2w ago
It is common in traditional roguelikes to support vi keys as an alternative to arrow keys. I use that all the time when playing Brogue. Have a great vi keys muscle memory now thanks to that, but I use Emacs and only rarely vi, so it's not doing me much good.
tcoff91•2w ago
Use EViL mode
oug-t•1w ago
Exactly!
oug-t•1w ago
I will also try to implement emacs key bindings for zsweep.

There will a button to toggle between vi or emacs motions inside the setting

lasgawe•2w ago
This is nice! love this
oug-t•2w ago
Thanks!!!
zahrevsky•2w ago
Too bad it doesn't display the keyboard on mobile :-(
oug-t•2w ago
Yes, I will try to implement the mobile support for zsweep.

I opened an issue on the repo regarding this, thanks for the feedback.

alejoar•2w ago
Remember to exclude vimium from the site!
oug-t•2w ago
Yes!!!
sodacanner•2w ago
Very useful as someone who's trying to use Vim motions more often, thanks!
oug-t•2w ago
Thank you!!!

I will try to integrate more advanced motions inside the game!!

QuadmasterXLII•2w ago
For reference, here are the supported motions:

    case '0': return { type: 'ZERO' };
    case '_': return { type: 'START_ROW' };

    // --- SEARCH ---
    case '/': return { type: 'START_SEARCH' };
    case 'n': return { type: 'NEXT_MATCH' };
    case 'N': return { type: 'PREV_MATCH' };

    // --- MOVEMENT (WASD Removed) ---
    case 'h': case 'ArrowLeft':  return { type: 'MOVE_CURSOR', dx: -1, dy: 0 };
    case 'j': case 'ArrowDown':  return { type: 'MOVE_CURSOR', dx: 0, dy: 1 };
    case 'k': case 'ArrowUp':    return { type: 'MOVE_CURSOR', dx: 0, dy: -1 };
    case 'l': case 'ArrowRight': return { type: 'MOVE_CURSOR', dx: 1, dy: 0 };
    
    // --- SKIPS ---
    case 'w': return { type: 'NEXT_UNREVEALED' };
    case 'b': return { type: 'PREV_UNREVEALED' };

    // --- ACTIONS ---
    case 'i': case 'Enter': return { type: 'REVEAL' };
    case ' ': return { type: 'SMART' };
    case 'f': return { type: 'FLAG' };
    
    // --- ADVANCED MOTIONS ---
    case '$': return { type: 'MOVE_CURSOR', dx: 999, dy: 0 };  
    case 'G': return { type: 'GO_BOTTOM' }; 
    case 'g': return { type: 'GO_TOP' };  
No macros or block select yet, still fun! probably for the best that /mine doesn't work yet
apetrov•1w ago
H/L/M - would be helpful (High/Low/Medium) Escape as finish a game is pretty annoying (that's what you press after 'i') f1/2/3.. would be nice to - go to the next number in the row open all unflagged around current cell would be useful
johnhamlin•2w ago
Love games like this. I used Vim Snake to make the muscle memory for hjkl finally stick in my brain. (I wish you could disable the insert mode toggling -- it's cute but didn't help when I was trying to break the habit of moving my finger up to press W or Up Arrow and remember that everything is in a straight line.)

https://vimsnake.com

oug-t•2w ago
Thank you!!

I will add an issue for this!

TheGRS•2w ago
Very nice, only feedback I have rn is you should keep the board state displayed after you hit a mine. I like to look around the board to see what I missed after making a mistake.
oug-t•2w ago
Yes, after game loss, it should display all the mines and wrong flags marked.

I opened an issue regarding to this, Thank you for the advise!!

oug-t•2w ago
Thanks all for the feedback and upvotes!

Motivated by the response, I just pushed a cleanup of the repo to make it easier to build and run locally.

I am now opening issues for the specific requests mentioned here--like adding the `e` motion, improving `w/b` logic, and preserving the board state when game over.

Thank you again, PRs are very welcome!!

Repo: https://github.com/oug-t/zsweep

schmooser•2w ago
Reaching RET to open a block is too far from the home row, very unpleasant. C-m (Control-M) is much better and supported by both vim and Emacs.
oug-t•1w ago
Thanks for the advice!!

I will try to fix this

shagie•2w ago
A friend of mine back in college was a minesweeper addict - he'd play it all the time on the computer lab staff machine (where he worked) when it was quiet but the manager eventually took all the games off all the machines.

https://github.com/rwestlund/freesweep was the result.

As he was learning how to program at the time, he decided to undertake writing minesweeper that he could play from a telnet session from the library or one of the vt100 terminals in the lab. And yes, he also had difficulty with the chording logic. He called it "super click" (that code is in clear.c). Part of the initial challenge was since he was taking this as his first project and before really reading the K&R everything was a one dimensional array (>.<) and there was a lot of multiplication and addition (and division and modulus).

Movement code is in play.c

oug-t•2w ago
That is a interesting story!

I will definitely checkout play.c for reference.