The best Hacker News stories from Show from the past day

Go back

Latest posts:

Show HN: 100 Million splats, a whole town, rendered in M2 MacBook Air

Written natively from scratch in Metal and Swift. Build for AirVis app.

Show HN: I Ching simulator with accurate Yarrow Stalk probabilities

I built this because I wanted a digital I Ching that honors the original math, rather than just Math.random().<p>Technical detail for the curious:<p>The simulation follows the traditional Yarrow Stalk algorithm (Da Yan). The core of this algorithm relies on modulo-4 arithmetic on the stalks remaining after a random split.<p>To make it physically realistic, I used a Box-Muller transform to simulate the user splitting the stalks with a Gaussian distribution (since humans naturally tend to split near the middle), rather than a uniform random split.<p>I was worried this 'human bias' might skew the modulo probabilities, so I ran a 1-million-run Monte Carlo simulation to verify.<p>The Result: The remainders [0,1,2,3] still emerged with a near-perfect 25% distribution (deviation < 0.05%).<p>So, the app simulates the physics of human imperfection while preserving the mathematical perfection of the probability distribution (where Old Yin is 1/16).<p>Stack: Next.js + Tailwind css<p>Happy to answer any questions about the math or the hexagrams!

Show HN: I Ching simulator with accurate Yarrow Stalk probabilities

I built this because I wanted a digital I Ching that honors the original math, rather than just Math.random().<p>Technical detail for the curious:<p>The simulation follows the traditional Yarrow Stalk algorithm (Da Yan). The core of this algorithm relies on modulo-4 arithmetic on the stalks remaining after a random split.<p>To make it physically realistic, I used a Box-Muller transform to simulate the user splitting the stalks with a Gaussian distribution (since humans naturally tend to split near the middle), rather than a uniform random split.<p>I was worried this 'human bias' might skew the modulo probabilities, so I ran a 1-million-run Monte Carlo simulation to verify.<p>The Result: The remainders [0,1,2,3] still emerged with a near-perfect 25% distribution (deviation < 0.05%).<p>So, the app simulates the physics of human imperfection while preserving the mathematical perfection of the probability distribution (where Old Yin is 1/16).<p>Stack: Next.js + Tailwind css<p>Happy to answer any questions about the math or the hexagrams!

Show HN: I designed my own 3D printer motherboard

3D printing is such a fascinating field of technology, so a couple months ago, I decided to take a deep dive and learn how they actually work!<p>This took me to one of my very first PCB projects, a small, cheap, 3D printer motherboard. While it's not the most cutting edge board, I learned a lot and I fully documented my process designing it (<a href="https://github.com/KaiPereira/Cheetah-MX4-Mini/blob/master/JOURNAL.md" rel="nofollow">https://github.com/KaiPereira/Cheetah-MX4-Mini/blob/master/J...</a>), so other people can learn from my mistakes!<p>It runs off of an STM32H743 MCU, has 4 TMC stepsticks with UART/SPI configurations, sensorless/endstop homing, thermistor and fan ports, parallel, serial and TFT display connectors, bed and heater outputs and USB-C/SD Card printing, all in a small 80x90mm form factor with support for Marlin and Klipper!<p>Because it's smaller and cheaper than a typical motherboard, you can use it for smaller/more affordable printers, and other people can also reference the journal if they're making their own board!<p>If I were to make a V2, I would probably clean up the traces/layout of the PCB, pay more attention to trace size, stitching and fills, BOM optimize even further, and add another motor driver or two to the board. I also should've payed a bit more attention to how much current I would be drawing, and also the voltage ratings, because some of the parts are under-rated for the power.<p>I'm still actively refining it and fixing up some of the mistakes, but I plan on using this board to make a tiny foldup 3D printer I can bring to hackathons and 3D print on the go!<p>The project is fully open source, and journaled, so if you'd like to check it out it's on GitHub (<a href="https://github.com/KaiPereira/Cheetah-MX4-Mini" rel="nofollow">https://github.com/KaiPereira/Cheetah-MX4-Mini</a>)!<p>I absolutely loved making this project and I'd love to hear what you guys would want to see in a V2!

Show HN: I designed my own 3D printer motherboard

3D printing is such a fascinating field of technology, so a couple months ago, I decided to take a deep dive and learn how they actually work!<p>This took me to one of my very first PCB projects, a small, cheap, 3D printer motherboard. While it's not the most cutting edge board, I learned a lot and I fully documented my process designing it (<a href="https://github.com/KaiPereira/Cheetah-MX4-Mini/blob/master/JOURNAL.md" rel="nofollow">https://github.com/KaiPereira/Cheetah-MX4-Mini/blob/master/J...</a>), so other people can learn from my mistakes!<p>It runs off of an STM32H743 MCU, has 4 TMC stepsticks with UART/SPI configurations, sensorless/endstop homing, thermistor and fan ports, parallel, serial and TFT display connectors, bed and heater outputs and USB-C/SD Card printing, all in a small 80x90mm form factor with support for Marlin and Klipper!<p>Because it's smaller and cheaper than a typical motherboard, you can use it for smaller/more affordable printers, and other people can also reference the journal if they're making their own board!<p>If I were to make a V2, I would probably clean up the traces/layout of the PCB, pay more attention to trace size, stitching and fills, BOM optimize even further, and add another motor driver or two to the board. I also should've payed a bit more attention to how much current I would be drawing, and also the voltage ratings, because some of the parts are under-rated for the power.<p>I'm still actively refining it and fixing up some of the mistakes, but I plan on using this board to make a tiny foldup 3D printer I can bring to hackathons and 3D print on the go!<p>The project is fully open source, and journaled, so if you'd like to check it out it's on GitHub (<a href="https://github.com/KaiPereira/Cheetah-MX4-Mini" rel="nofollow">https://github.com/KaiPereira/Cheetah-MX4-Mini</a>)!<p>I absolutely loved making this project and I'd love to hear what you guys would want to see in a V2!

Show HN: I designed my own 3D printer motherboard

3D printing is such a fascinating field of technology, so a couple months ago, I decided to take a deep dive and learn how they actually work!<p>This took me to one of my very first PCB projects, a small, cheap, 3D printer motherboard. While it's not the most cutting edge board, I learned a lot and I fully documented my process designing it (<a href="https://github.com/KaiPereira/Cheetah-MX4-Mini/blob/master/JOURNAL.md" rel="nofollow">https://github.com/KaiPereira/Cheetah-MX4-Mini/blob/master/J...</a>), so other people can learn from my mistakes!<p>It runs off of an STM32H743 MCU, has 4 TMC stepsticks with UART/SPI configurations, sensorless/endstop homing, thermistor and fan ports, parallel, serial and TFT display connectors, bed and heater outputs and USB-C/SD Card printing, all in a small 80x90mm form factor with support for Marlin and Klipper!<p>Because it's smaller and cheaper than a typical motherboard, you can use it for smaller/more affordable printers, and other people can also reference the journal if they're making their own board!<p>If I were to make a V2, I would probably clean up the traces/layout of the PCB, pay more attention to trace size, stitching and fills, BOM optimize even further, and add another motor driver or two to the board. I also should've payed a bit more attention to how much current I would be drawing, and also the voltage ratings, because some of the parts are under-rated for the power.<p>I'm still actively refining it and fixing up some of the mistakes, but I plan on using this board to make a tiny foldup 3D printer I can bring to hackathons and 3D print on the go!<p>The project is fully open source, and journaled, so if you'd like to check it out it's on GitHub (<a href="https://github.com/KaiPereira/Cheetah-MX4-Mini" rel="nofollow">https://github.com/KaiPereira/Cheetah-MX4-Mini</a>)!<p>I absolutely loved making this project and I'd love to hear what you guys would want to see in a V2!

Show HN: A pager

Hello HN,<p>I basically don't use notifications for anything. The noise is too much. Slack is too loud. Email is too slow. But sometimes you do need a note in your face.<p>I found myself missing 1990s pagers. I wanted a digital equivalent - something that does one thing: beep until I ack it.<p>So I built UDP-7777.<p>Concept:<p>- <i>0% Cloud:</i> It listens on UDP Port 7777. No accounts, no central servers. You don't need Tailscale/ZeroTier/WG/etc, it's just easy for device sets.<p>- <i>CAPCODES:</i> It maps your IP address (LAN or Tailscale) to a retro 10-digit "CAPCODE" that looks like a phone number (e.g., (213) 070-6433 for loopback).<p>- <i>Minimalism:</i> Bare-bones interface. Just a box, a few buttons, and a big red blinker.<p>The Tech:<p>It's a single binary written in Go (using Fyne). It implements "burst fire" UDP (sending packets 3x) to ensure delivery without the handshake overhead of TCP.<p>New in v2.2.7:<p>- <i>Frequency Tuning:</i> Bind specifically to your Tailscale/ZeroTier interface.<p>- <i>Squelch:</i> Optional shared-secret keys to ignore unauthorized packets.<p>- <i>Heartbeat:</i> Visual/Audio alerts that persist until you physically click ACK.<p>I built this for anyone looking to cut through the noise—DevOps teams handing off the "on-call IP", or deep-work focus where you only want interruptions from a high-trust circle.<p>I'd love to hear your thoughts on the IP-to-Phone-Number mapping logic (it's purely visual, but I'm really into it).<p>Site & Binaries (Signed for Mac/Win): <a href="https://udp7777.com" rel="nofollow">https://udp7777.com</a>

Show HN: A pager

Hello HN,<p>I basically don't use notifications for anything. The noise is too much. Slack is too loud. Email is too slow. But sometimes you do need a note in your face.<p>I found myself missing 1990s pagers. I wanted a digital equivalent - something that does one thing: beep until I ack it.<p>So I built UDP-7777.<p>Concept:<p>- <i>0% Cloud:</i> It listens on UDP Port 7777. No accounts, no central servers. You don't need Tailscale/ZeroTier/WG/etc, it's just easy for device sets.<p>- <i>CAPCODES:</i> It maps your IP address (LAN or Tailscale) to a retro 10-digit "CAPCODE" that looks like a phone number (e.g., (213) 070-6433 for loopback).<p>- <i>Minimalism:</i> Bare-bones interface. Just a box, a few buttons, and a big red blinker.<p>The Tech:<p>It's a single binary written in Go (using Fyne). It implements "burst fire" UDP (sending packets 3x) to ensure delivery without the handshake overhead of TCP.<p>New in v2.2.7:<p>- <i>Frequency Tuning:</i> Bind specifically to your Tailscale/ZeroTier interface.<p>- <i>Squelch:</i> Optional shared-secret keys to ignore unauthorized packets.<p>- <i>Heartbeat:</i> Visual/Audio alerts that persist until you physically click ACK.<p>I built this for anyone looking to cut through the noise—DevOps teams handing off the "on-call IP", or deep-work focus where you only want interruptions from a high-trust circle.<p>I'd love to hear your thoughts on the IP-to-Phone-Number mapping logic (it's purely visual, but I'm really into it).<p>Site & Binaries (Signed for Mac/Win): <a href="https://udp7777.com" rel="nofollow">https://udp7777.com</a>

Show HN: A pager

Hello HN,<p>I basically don't use notifications for anything. The noise is too much. Slack is too loud. Email is too slow. But sometimes you do need a note in your face.<p>I found myself missing 1990s pagers. I wanted a digital equivalent - something that does one thing: beep until I ack it.<p>So I built UDP-7777.<p>Concept:<p>- <i>0% Cloud:</i> It listens on UDP Port 7777. No accounts, no central servers. You don't need Tailscale/ZeroTier/WG/etc, it's just easy for device sets.<p>- <i>CAPCODES:</i> It maps your IP address (LAN or Tailscale) to a retro 10-digit "CAPCODE" that looks like a phone number (e.g., (213) 070-6433 for loopback).<p>- <i>Minimalism:</i> Bare-bones interface. Just a box, a few buttons, and a big red blinker.<p>The Tech:<p>It's a single binary written in Go (using Fyne). It implements "burst fire" UDP (sending packets 3x) to ensure delivery without the handshake overhead of TCP.<p>New in v2.2.7:<p>- <i>Frequency Tuning:</i> Bind specifically to your Tailscale/ZeroTier interface.<p>- <i>Squelch:</i> Optional shared-secret keys to ignore unauthorized packets.<p>- <i>Heartbeat:</i> Visual/Audio alerts that persist until you physically click ACK.<p>I built this for anyone looking to cut through the noise—DevOps teams handing off the "on-call IP", or deep-work focus where you only want interruptions from a high-trust circle.<p>I'd love to hear your thoughts on the IP-to-Phone-Number mapping logic (it's purely visual, but I'm really into it).<p>Site & Binaries (Signed for Mac/Win): <a href="https://udp7777.com" rel="nofollow">https://udp7777.com</a>

Show HN: Cargo-rail: graph-aware monorepo tooling for Rust; 11 deps

Show HN: Cargo-rail: graph-aware monorepo tooling for Rust; 11 deps

Show HN: Cargo-rail: graph-aware monorepo tooling for Rust; 11 deps

Show HN: LinkedQL – Live Queries over Postgres, MySQL, MariaDB

LinkedQL is a new SQL client that supports live queries over any Postgres, MySQL, and MariaDB database. You get result sets that self-update differentially as rows change in your database – via inserts, updates, deletes. Works with no extra tooling/ORM layer or GraphQL servers. You opt into live mode simply with a flag: client.query('SELECT ...', { live: true }). More at: <a href="https://linked-ql.netlify.app/capabilities/live-queries" rel="nofollow">https://linked-ql.netlify.app/capabilities/live-queries</a><p>LinkedQL is written in JavaScript and runs in both client and server environments.<p>GitHub + docs: <a href="https://github.com/linked-db/linked-ql" rel="nofollow">https://github.com/linked-db/linked-ql</a><p>Demo examples included.<p>I’d love feedback: • Anything confusing? • Anything seems useful or dangerous? • Anything else that'd make you consider LinkedQL for production?<p>Thanks for taking a look — happy to answer any questions.

Show HN: LinkedQL – Live Queries over Postgres, MySQL, MariaDB

LinkedQL is a new SQL client that supports live queries over any Postgres, MySQL, and MariaDB database. You get result sets that self-update differentially as rows change in your database – via inserts, updates, deletes. Works with no extra tooling/ORM layer or GraphQL servers. You opt into live mode simply with a flag: client.query('SELECT ...', { live: true }). More at: <a href="https://linked-ql.netlify.app/capabilities/live-queries" rel="nofollow">https://linked-ql.netlify.app/capabilities/live-queries</a><p>LinkedQL is written in JavaScript and runs in both client and server environments.<p>GitHub + docs: <a href="https://github.com/linked-db/linked-ql" rel="nofollow">https://github.com/linked-db/linked-ql</a><p>Demo examples included.<p>I’d love feedback: • Anything confusing? • Anything seems useful or dangerous? • Anything else that'd make you consider LinkedQL for production?<p>Thanks for taking a look — happy to answer any questions.

Show HN: Autofix Bot – Hybrid static analysis and AI code review agent

Hi there, HN! We’re Jai and Sanket from DeepSource (YC W20), and today we’re launching Autofix Bot, a hybrid static analysis + AI agent purpose-built for in-the-loop use with AI coding agents.<p>AI coding agents have made code generation nearly free, and they’ve shifted the bottleneck to code review. Static-only analysis with a fixed set of checkers isn’t enough. LLM-only review has several limitations: non-deterministic across runs, low recall on security issues, expensive at scale, and a tendency to get ‘distracted’.<p>We spent the last 6 years building a deterministic, static-analysis-only code review product. Earlier this year, we started thinking about this problem from the ground up and realized that static analysis solves key blind spots of LLM-only reviews. Over the past six months, we built a new ‘hybrid’ agent loop that uses static analysis and frontier AI agents together to outperform both static-only and LLM-only tools in finding and fixing code quality and security issues. Today, we’re opening it up publicly.<p>Here’s how the hybrid architecture works:<p>- Static pass: 5,000+ deterministic checkers (code quality, security, performance) establish a high-precision baseline. A sub-agent suppresses context-specific false positives.<p>- AI review: The agent reviews code with static findings as anchors. Has access to AST, data-flow graphs, control-flow, import graphs as tools, not just grep and usual shell commands.<p>- Remediation: Sub-agents generate fixes. Static harness validates all edits before emitting a clean git patch.<p>Static solves key LLM problems: non-determinism across runs, low recall on security issues (LLMs get distracted by style), and cost (static narrowing reduces prompt size and tool calls).<p>On the OpenSSF CVE Benchmark [1] (200+ real JS/TS vulnerabilities), we hit 81.2% accuracy and 80.0% F1; vs Cursor Bugbot (74.5% accuracy, 77.42% F1), Claude Code (71.5% accuracy, 62.99% F1), CodeRabbit (59.4% accuracy, 36.19% F1), and Semgrep CE (56.9% accuracy, 38.26% F1). On secrets detection, 92.8% F1; vs Gitleaks (75.6%), detect-secrets (64.1%), and TruffleHog (41.2%). We use our open-source classification model for this. [2]<p>Full methodology and how we evaluated each tool: <a href="https://autofix.bot/benchmarks" rel="nofollow">https://autofix.bot/benchmarks</a><p>You can use Autofix Bot interactively on any repository using our TUI, as a plugin in Claude Code, or with our MCP on any compatible AI client (like OpenAI Codex).[3] We’re specifically building for AI coding agent-first workflows, so you can ask your agent to run Autofix Bot on every checkpoint autonomously.<p>Give us a shot today: <a href="https://autofix.bot" rel="nofollow">https://autofix.bot</a>. We’d love to hear any feedback!<p>---<p>[1] <a href="https://github.com/ossf-cve-benchmark/ossf-cve-benchmark" rel="nofollow">https://github.com/ossf-cve-benchmark/ossf-cve-benchmark</a><p>[2] <a href="https://huggingface.co/deepsource/Narada-3.2-3B-v1" rel="nofollow">https://huggingface.co/deepsource/Narada-3.2-3B-v1</a><p>[3] <a href="https://autofix.bot/manual/#terminal-ui" rel="nofollow">https://autofix.bot/manual/#terminal-ui</a>

Show HN: Autofix Bot – Hybrid static analysis and AI code review agent

Hi there, HN! We’re Jai and Sanket from DeepSource (YC W20), and today we’re launching Autofix Bot, a hybrid static analysis + AI agent purpose-built for in-the-loop use with AI coding agents.<p>AI coding agents have made code generation nearly free, and they’ve shifted the bottleneck to code review. Static-only analysis with a fixed set of checkers isn’t enough. LLM-only review has several limitations: non-deterministic across runs, low recall on security issues, expensive at scale, and a tendency to get ‘distracted’.<p>We spent the last 6 years building a deterministic, static-analysis-only code review product. Earlier this year, we started thinking about this problem from the ground up and realized that static analysis solves key blind spots of LLM-only reviews. Over the past six months, we built a new ‘hybrid’ agent loop that uses static analysis and frontier AI agents together to outperform both static-only and LLM-only tools in finding and fixing code quality and security issues. Today, we’re opening it up publicly.<p>Here’s how the hybrid architecture works:<p>- Static pass: 5,000+ deterministic checkers (code quality, security, performance) establish a high-precision baseline. A sub-agent suppresses context-specific false positives.<p>- AI review: The agent reviews code with static findings as anchors. Has access to AST, data-flow graphs, control-flow, import graphs as tools, not just grep and usual shell commands.<p>- Remediation: Sub-agents generate fixes. Static harness validates all edits before emitting a clean git patch.<p>Static solves key LLM problems: non-determinism across runs, low recall on security issues (LLMs get distracted by style), and cost (static narrowing reduces prompt size and tool calls).<p>On the OpenSSF CVE Benchmark [1] (200+ real JS/TS vulnerabilities), we hit 81.2% accuracy and 80.0% F1; vs Cursor Bugbot (74.5% accuracy, 77.42% F1), Claude Code (71.5% accuracy, 62.99% F1), CodeRabbit (59.4% accuracy, 36.19% F1), and Semgrep CE (56.9% accuracy, 38.26% F1). On secrets detection, 92.8% F1; vs Gitleaks (75.6%), detect-secrets (64.1%), and TruffleHog (41.2%). We use our open-source classification model for this. [2]<p>Full methodology and how we evaluated each tool: <a href="https://autofix.bot/benchmarks" rel="nofollow">https://autofix.bot/benchmarks</a><p>You can use Autofix Bot interactively on any repository using our TUI, as a plugin in Claude Code, or with our MCP on any compatible AI client (like OpenAI Codex).[3] We’re specifically building for AI coding agent-first workflows, so you can ask your agent to run Autofix Bot on every checkpoint autonomously.<p>Give us a shot today: <a href="https://autofix.bot" rel="nofollow">https://autofix.bot</a>. We’d love to hear any feedback!<p>---<p>[1] <a href="https://github.com/ossf-cve-benchmark/ossf-cve-benchmark" rel="nofollow">https://github.com/ossf-cve-benchmark/ossf-cve-benchmark</a><p>[2] <a href="https://huggingface.co/deepsource/Narada-3.2-3B-v1" rel="nofollow">https://huggingface.co/deepsource/Narada-3.2-3B-v1</a><p>[3] <a href="https://autofix.bot/manual/#terminal-ui" rel="nofollow">https://autofix.bot/manual/#terminal-ui</a>

Show HN: I'm building an open-source Amazon

I'm building an open source Amazon.<p>In other words, an open source decentralized marketplace. But like Carl Sagan said, to make an apple pie from scratch, you must first invent the universe.<p>So first I had to make open source management systems for every vertical. I'm launching the first one today, Openfront e-commerce, an open source Shopify alternative. Next will be Openfront restaurant, Openfront grocery, and Openfront gym.<p>And all of these Openfronts will connect to our decentralized marketplace, "the/marketplace", seamlessly. Once we launch other Openfronts, you'll be able to do everything from booking hotels to ordering groceries right from one place with no middle men. The marketplace simply connects to the Openfront just like its built-in storefront does.<p>Together, we can use open source to disrupt marketplaces and make sure sellers, in every vertical, are never beholden to them.<p>Marketplace: <a href="https://marketplace.openship.org" rel="nofollow">https://marketplace.openship.org</a><p>Openfront platforms: <a href="https://openship.org/openfront-ecommerce" rel="nofollow">https://openship.org/openfront-ecommerce</a><p>Source code: <a href="https://github.com/openshiporg/openfront" rel="nofollow">https://github.com/openshiporg/openfront</a><p>Demo - Openfront: <a href="https://youtu.be/jz0ZZmtBHgo" rel="nofollow">https://youtu.be/jz0ZZmtBHgo</a><p>Demo - Marketplace: <a href="https://youtu.be/LM6hRjZIDcs" rel="nofollow">https://youtu.be/LM6hRjZIDcs</a><p>Part 1 - <a href="https://news.ycombinator.com/item?id=32690410">https://news.ycombinator.com/item?id=32690410</a>

Show HN: I'm building an open-source Amazon

I'm building an open source Amazon.<p>In other words, an open source decentralized marketplace. But like Carl Sagan said, to make an apple pie from scratch, you must first invent the universe.<p>So first I had to make open source management systems for every vertical. I'm launching the first one today, Openfront e-commerce, an open source Shopify alternative. Next will be Openfront restaurant, Openfront grocery, and Openfront gym.<p>And all of these Openfronts will connect to our decentralized marketplace, "the/marketplace", seamlessly. Once we launch other Openfronts, you'll be able to do everything from booking hotels to ordering groceries right from one place with no middle men. The marketplace simply connects to the Openfront just like its built-in storefront does.<p>Together, we can use open source to disrupt marketplaces and make sure sellers, in every vertical, are never beholden to them.<p>Marketplace: <a href="https://marketplace.openship.org" rel="nofollow">https://marketplace.openship.org</a><p>Openfront platforms: <a href="https://openship.org/openfront-ecommerce" rel="nofollow">https://openship.org/openfront-ecommerce</a><p>Source code: <a href="https://github.com/openshiporg/openfront" rel="nofollow">https://github.com/openshiporg/openfront</a><p>Demo - Openfront: <a href="https://youtu.be/jz0ZZmtBHgo" rel="nofollow">https://youtu.be/jz0ZZmtBHgo</a><p>Demo - Marketplace: <a href="https://youtu.be/LM6hRjZIDcs" rel="nofollow">https://youtu.be/LM6hRjZIDcs</a><p>Part 1 - <a href="https://news.ycombinator.com/item?id=32690410">https://news.ycombinator.com/item?id=32690410</a>

Show HN: I audited 500 K8s pods. Java wastes ~48% RAM, Go ~18%

Show HN: I made a spreadsheet where formulas also update backwards

Hello HN! I'm happy to release this project today. It's a bidirectional calculator (hence the name bidicalc).<p>I've been obsessed with the idea of making a spreadsheet where you can update both inputs and outputs, instead of regular spreadsheets where you can only update inputs.<p>Please let me know what you think! Especially if you find bugs or good example use cases.

< 1 2 3 4 5 ... 912 913 914 >