Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #3452

J

Jordan Eldredge

Personal blog · jordaneldredge.com/blogprogrammingweb

Jordan Eldredge's personal blog at jordaneldredge.com covers programming and web. Since 2014, 22 different Hacker News readers have linked it 73 times, most often “Winamp2-Js: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript”. It is still writing: the last post was on 2026-10-24, and you can follow it by feed.

Visit the blog
73mentions?
22HN people?
2014–2026first – last linked?
Links on Hacker News per year · peak 12 in 2024

Too few sampled comments (13) to say how often HN recommends it.?

Why HN links it

HN readers link Jordan Eldredge's posts on Webamp, his HTML5/JavaScript reimplementation of Winamp, and on WebAssembly speedups for music visualisers. Others cite his posts against piping curl into sh.

Summarised by Claude from a sample of 13 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

About Jordan Eldredge

Most-linked posts?

  1. /blog/one-way-curl-pipe-sh-install-scripts-can-be-dangerous/
    5 people · 5 mentions · first linked 2015-07-20
  2. Winamp2-Js: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript
    4 people · 5 mentions · first linked 2017-02-06
  3. We made our music visualizer 73% faster by compiling to WASM in the browser
    2 people · 12 mentions · first linked 2021-04-02
  4. From Opera to Tech
    2 people · 2 mentions · first linked 2024-10-21
  5. Rendering Animated .ani Cursors in the Browser
    2 people · 2 mentions · first linked 2021-05-03

What Hacker News says?

  1. For those who don't want to navigate Twitter for whatever reason (tracking, slows down your browser, bad UI, etc.), here's the content from the thread (the images and videos are still Twitter-hosted, by the way): ----------------------------------- It's done! Winamp2-js ( https://jordaneldredge.com/projects/winamp2-js/ ) finally supports all three windows! To celebrate, here's a list of some of the cool things it ca…

    Comment linking /projects/winamp2-js/

    on “A Reimplementation of Winamp 2.9 in HTML5 and JavaScript”
  2. Submitted Investigating corrupt Winamp skins as a story · 615 points

    HN discussion
  3. I'm using Chrome by the way. #1 - TypeError: Object.entries is not a function(…) e.(anonymous function) @ winamp.js:38 #2 - winamp.js:49 Uncaught (in promise) TypeError: Object.entries is not a function at _ ( https://jordaneldredge.com/projects/winamp2-js/built/winamp.... ) at Ct.beginWork ( https://jordaneldredge.com/projects/winamp2-js/built/winamp.... ) at i ( https://jordaneldredge.com/projects/winamp2-js/built…

    Comment linking /projects/winamp2-js/built/winamp.js:38:167566

    on “A Reimplementation of Winamp 2.9 in HTML5 and JavaScript”
  4. Submitted Winamp 2 in HTML5 as a story · 299 points

    HN discussion
  5. Try it out here: https://jordaneldredge.com/projects/winamp2-js/

    Comment linking /projects/winamp2-js/

    on “A Reimplementation of Winamp 2.9 in HTML5 and JavaScript”
  6. Submitted Winamp2-Js: A Reimplementation of Winamp 2.9 in HTML5 and JavaScript as a story · 232 points

    HN discussion
  7. Did you visit the app ( https://jordaneldredge.com/projects/winamp2-js/ ) and press play?

    Comment linking /projects/winamp2-js/

    on “A Reimplementation of Winamp 2.9 in HTML5 and JavaScript”
  8. Submitted Rendering "modern" Winamp skins in the browser as a story · 119 points

    HN discussion
  9. Jordan Eldredge, the author, has done some amazing WinAmp-related projects over the years, including WebAmp (a web-based, from-scratch reimplementation of much of WinAmp) and a WASM engine for WinAmp-style music visualisation. His project page: https://jordaneldredge.com/projects/

    Comment linking /projects/

    on “Investigating corrupt Winamp skins”
  10. Submitted Grats: A More Pleasant Way to Build TypeScript GraphQL Servers as a story · 75 points

    HN discussion
  11. Opening it in a text editor is not sufficient. With clever use of 'sleep' you can even have the server return a malicious payload only if it thinks its getting immediately piped to sh[0]. If you're opening it in a browser to check, you've also got to worry that the server may be looking at curl's user agent to decide whether to serve up a malicious payload[1]. [0] https://www.idontplaydarts.com/2016/04/detecting-cur…

    Comment linking /blog/one-way-curl-pipe-sh-install-scripts-can-be-dangerous/

    on “The Line of Death”
  12. Submitted In React {Transitions} = F(state) as a story · 39 points

    HN discussion
  13. > You still need to access the DOM, which can't be done directly from WASM. Maybe someday it will happen? You can access the DOM through JavaScript glue. These Rust WASM frameworks do that: - Leptos: https://www.leptos.dev/ - Sycamore: https://sycamore.dev/ - Yew: https://yew.rs/ - Dioxus: https://dioxuslabs.com/ Eventually you won't need the glue. > Okay, so use canvas instead and do all UI inside WASM? You can do…

    Comment linking /blog/speeding-up-winamps-music-visualizer-with-webassembly/

    on “If not React, then what?”
  14. Submitted We made our music visualizer 73% faster by compiling to WASM in the browser as a story · 30 points

    HN discussion
  15. That looks very cool, but I'd appreciate a bit of context. Maybe it's a work in progress? Edit: Maybe it's a WIP, it's not linked from the author's project page http://jordaneldredge.com/projects/ I found a Github link deep at the bottom of the page: https://github.com/captbaritone/winamp2-js

    Comment linking /projects/

    on “Winamp 2 in HTML5”
  16. Submitted A nice way to render Markdown in React apps as a story · 19 points

    HN discussion
  17. Speaking specifically about Webamp, it is a manual reimplementation in JavaScript. But we did use Wasm as a tool for the music visualizer: https://jordaneldredge.com/blog/speeding-up-winamps-music-vi...

    Comment linking /blog/speeding-up-winamps-music-visualizer-with-webassembly/

    on “The Winamp Skin Museum is powered by a SQLite3 database with 1.2GB of metadata”
  18. Submitted Gzip hates your DRY code as a story · 4 points

    HN discussion
  19. Thanks! The list is ordered by the most number of likes/retweets from the @winampskins twitter bot I run. I wrote a post about the design of the site here: https://jordaneldredge.com/blog/winamp-skin-musuem/ And then gave a meetup talk based on that post which can be found here: https://www.youtube.com/watch?v=jEUr_NzP6xg&t=2s

    Comment linking /blog/winamp-skin-musuem/

    on “Webamp: Winamp 2 in the browser”
  20. Submitted Rendering Animated .ani Cursors in the Browser as a story · 3 points

    HN discussion
  21. We recently took on a project to use Wasm to speed it up a bit. Blog post here: https://jordaneldredge.com/blog/speeding-up-winamps-music-vi...

    Comment linking /blog/speeding-up-winamps-music-visualizer-with-webassembly/

    on “Webamp: Winamp 2 in the browser”
  22. Submitted React's useTransition and state update reordering as a story · 2 points

    HN discussion
  23. Hey! Project author here! Happy to answer any questions. This project is open source and the code, and instructions to use it on your site, can be found here: https://github.com/captbaritone/webamp Webamp's ability to render classic Winamp skins led to a collaboration with the Internet Archive where we preserved ~70k (and counting) classic Winamp skins. I also built the Winamp Skin Museum ( https://skins.webamp.org/…

    Comment linking /blog/speeding-up-winamps-music-visualizer-with-webassembly/

    on “Webamp: Winamp 2 in the browser”
  24. Submitted A VSCode Extension to Clarify Operator Precedence in JavaScript as a story · 2 points

    HN discussion
  25. The difference lately is the number of tools that are now in place for WebAssembly development and the new extensions to WebAssembly (WasmGC, Memory64, etc.). Despite 28 years of effort at optimization, JavaScript is outperformed by WebAssembly. There's not much coming back from that: https://jordaneldredge.com/blog/speeding-up-winamps-music-vi... https://www.amazon.science/blog/how-prime-video-updates-its-... https…

    Comment linking /blog/speeding-up-winamps-music-visualizer-with-webassembly/

    on “The tragedy of running an old Node project”
  26. Submitted Rendering Animated .ani Cursors in the Browser as a story · 2 points

    HN discussion
  27. A URL and an IP are not equal. Building a script that acts differently for a web browser, a normal download, and curl, is trivial, and I've seen it happen. Here's a proof-of-concept[0] someone else wrote. Manually downloading is safer, at least you can review, curling straight into a shell is inherently unsafe. The better option is still a package manager, but curling straight to a shell is very unsafe. [0] https://…

    Comment linking /blog/one-way-curl-pipe-sh-install-scripts-can-be-dangerous/

    on “Microsoft cURLs too”
  28. Submitted Mainlining Nostalgia: Making the Winamp Skin Museum as a story · 2 points

    HN discussion
  29. No. https://jordaneldredge.com/blog/one-way-curl-pipe-sh-install...

    Comment linking /blog/one-way-curl-pipe-sh-install-scripts-can-be-dangerous/

    on “SpaceVim – Like Spacemacs, but for Vim”
  30. Submitted You're underusing Underscore as a story · 2 points

    HN discussion

Search all of HN for jordaneldredge.com

Linked by the same people?