Show HN: Externalized Properties, a modern Java configuration library

Show HN (score: 6)
Found: January 27, 2026
ID: 3156

Description

Other
Show HN: Externalized Properties, a modern Java configuration library Externalized Properties is powerful configuration library which supports resolution of properties from external sources such as files, databases, git repositories, and any custom sources

More from Show

Show HN: Ec – a terminal Git conflict resolver inspired by IntelliJ

Show HN: Ec – a terminal Git conflict resolver inspired by IntelliJ Hi HN, I built ec because my friends who are new to development kept getting stuck on Git conflicts.<p>Most TUI merge tools felt hard to use or non-intuitive for them. The only flow they found easy was the IntelliJ (JetBrains) conflict resolver, so I recreated that experience in the terminal.<p>ec is a terminal-native, 3-pane conflict resolver with a focused, step-by-step flow. If you try it and leave feedback, I would be really grateful. Thanks!<p>Repo: <a href="https:&#x2F;&#x2F;github.com&#x2F;chojs23&#x2F;ec" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;chojs23&#x2F;ec</a>

Show HN: Emmtrix ONNX-to-C Code Generator for Edge AI Deployment

Show HN: Emmtrix ONNX-to-C Code Generator for Edge AI Deployment Hi HN, we wanted to share our open source ONNX-to-C code generator. It translates ONNX models into C code for deployment on embedded systems. We developed it for use with emmtrix Code Vectorizer (<a href="https:&#x2F;&#x2F;www.emmtrix.com&#x2F;tools&#x2F;emmtrix-code-vectorizer" rel="nofollow">https:&#x2F;&#x2F;www.emmtrix.com&#x2F;tools&#x2F;emmtrix-code-vectorizer</a>) which optimizes the generated code for various embedded architectures. The ONNX-to-C code generator can however also be used standalone to generate plain C code. In contrast to many other tools, it makes deployment trivial since the generated code is fully standalone and no additional runtime is required.

Show HN: SHDL – A minimal hardware description language built from logic gates

Show HN: SHDL – A minimal hardware description language built from logic gates Hi, everyone!<p>I built SHDL (Simple Hardware Description Language) as an experiment in stripping hardware description down to its absolute fundamentals.<p>In SHDL, there are no arithmetic operators, no implicit bit widths, and no high-level constructs. You build everything explicitly from logic gates and wires, and then compose larger components hierarchically. The goal is not synthesis or performance, but understanding: what digital systems actually look like when abstractions are removed.<p>SHDL is accompanied by PySHDL, a Python interface that lets you load circuits, poke inputs, step the simulation, and observe outputs. Under the hood, SHDL compiles circuits to C for fast execution, but the language itself remains intentionally small and transparent.<p>This is not meant to replace Verilog or VHDL. It’s aimed at: - learning digital logic from first principles - experimenting with HDL and language design - teaching or visualizing how complex hardware emerges from simple gates.<p>I would especially appreciate feedback on: - the language design choices - what feels unnecessarily restrictive vs. educationally valuable - whether this kind of “anti-abstraction” HDL is useful to you.<p>Repo: <a href="https:&#x2F;&#x2F;github.com&#x2F;rafa-rrayes&#x2F;SHDL" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rafa-rrayes&#x2F;SHDL</a><p>Python package: PySHDL on PyPI<p>To make this concrete, here are a few small working examples written in SHDL:<p>1. Full Adder<p>component FullAdder(A, B, Cin) -&gt; (Sum, Cout) {<p><pre><code> x1: XOR; a1: AND; x2: XOR; a2: AND; o1: OR; connect { A -&gt; x1.A; B -&gt; x1.B; A -&gt; a1.A; B -&gt; a1.B; x1.O -&gt; x2.A; Cin -&gt; x2.B; x1.O -&gt; a2.A; Cin -&gt; a2.B; a1.O -&gt; o1.A; a2.O -&gt; o1.B; x2.O -&gt; Sum; o1.O -&gt; Cout; }</code></pre> }<p>2. 16 bit register<p># clk must be high for two cycles to store a value<p>component Register16(In[16], clk) -&gt; (Out[16]) {<p><pre><code> &gt;i[16]{ a1{i}: AND; a2{i}: AND; not1{i}: NOT; nor1{i}: NOR; nor2{i}: NOR; } connect { &gt;i[16]{ # Capture on clk In[{i}] -&gt; a1{i}.A; In[{i}] -&gt; not1{i}.A; not1{i}.O -&gt; a2{i}.A; clk -&gt; a1{i}.B; clk -&gt; a2{i}.B; a1{i}.O -&gt; nor1{i}.A; a2{i}.O -&gt; nor2{i}.A; nor1{i}.O -&gt; nor2{i}.B; nor2{i}.O -&gt; nor1{i}.B; nor2{i}.O -&gt; Out[{i}]; } }</code></pre> }<p>3. 16-bit Ripple-Carry Adder<p>use fullAdder::{FullAdder};<p>component Adder16(A[16], B[16], Cin) -&gt; (Sum[16], Cout) {<p><pre><code> &gt;i[16]{ fa{i}: FullAdder; } connect { A[1] -&gt; fa1.A; B[1] -&gt; fa1.B; Cin -&gt; fa1.Cin; fa1.Sum -&gt; Sum[1]; &gt;i[2,16]{ A[{i}] -&gt; fa{i}.A; B[{i}] -&gt; fa{i}.B; fa{i-1}.Cout -&gt; fa{i}.Cin; fa{i}.Sum -&gt; Sum[{i}]; } fa16.Cout -&gt; Cout; } }</code></pre>

Show HN: 83 browser-use trajectories, visualized

Show HN: 83 browser-use trajectories, visualized Hey all, Justin here. I previously built Phind, the AI search engine for developers.<p>One of the biggest problems we had there was figuring out what went wrong with bad searches. We had tons of searches per day, but less than 1% of users gave any explicit feedback. So we were either manually digging through searches or making general system improvements and hoping they helped.<p>This problem gets harder with agents. Traces are longer and more complex. It takes more effort to review them, so I&#x27;m building a tool that lets you analyze LLM outputs directly to help developers of LLM apps and agents understand where things are breaking and why.<p>I&#x27;ve put together a demo using browser-use agent traces (gpt-5): <a href="https:&#x2F;&#x2F;trails-red.vercel.app&#x2F;viewer" rel="nofollow">https:&#x2F;&#x2F;trails-red.vercel.app&#x2F;viewer</a><p>It&#x27;s early, but I have lots of ideas - live querying of past failures for currently-running agents, preference models to expand sparse signal data.<p>Would love feedback on the demo. Also if you&#x27;re building agents and have 10k+ traces per day that you&#x27;re not looking at but would like to, I&#x27;d love to talk.

No other tools from this source yet.