Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    J

    Jordan Eldredge

    jordaneldredge.com · Personal blog · on HN since 2014

    Jordan Eldredge writes about his Winamp-related web projects, including a browser Winamp clone, skin rendering, and WebAssembly visualizers.

    Visit blogRSSHN submissions
    Web DevelopmentRetro Computing
    What HN says

    Commenters praise his Winamp projects and link his writeups, along with his post on the risks of curl-pipe-sh install scripts.

    Stats for nerds
    22HN people shared it
    23linked in comments
    1.5Kstory points
    Jul 2026last shared
    2014people per year2026

    Top posts on HN

    1. 1
      Investigating corrupt Winamp skins
      1 person · 615 points · first shared 2024 · 145 comments on HN
    2. 2
      Winamp 2 in HTML5
      5 people · 531 points · first shared 2014 · 109 comments on HN
    3. 3
      Rendering "modern" Winamp skins in the browser
      1 person · 119 points · first shared 2024 · 43 comments on HN
    4. 4
      Grats: A More Pleasant Way to Build TypeScript GraphQL Servers
      1 person · 75 points · first shared 2024 · 77 comments on HN
    5. 5
      In React {Transitions} = F(state)
      1 person · 39 points · first shared 2025 · 54 comments on HN
    6. 6
      We made our music visualizer 73% faster by compiling to WASM in the browser
      2 people · 31 points · first shared 2021 · 3 comments on HN
    7. 7
      A nice way to render Markdown in React apps
      1 person · 19 points · first shared 2024 · 6 comments on HN
    8. 8
      Rendering Animated .ani Cursors in the Browser
      2 people · 5 points · first shared 2021 · 1 comments on HN
    9. 9
      Gzip hates your DRY code
      1 person · 4 points · first shared 2021 · Discussion on HN
    10. 10
      From Opera to Tech
      2 people · 2 points · first shared 2024 · Discussion on HN

    What HN people wrote when they linked it

    • mzwareFeb 2018

      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.js:49:15179)
      at Ct.beginWork (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:31711)
      at i (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:44327)
      at a (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:44648)
      at s (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:44886)
      at E (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:48429)
      at b (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:48166)
      at h (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:47294)
      at p (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:46684)
      at Object.Nt.updateContainer (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:50943)
      at https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:62380
      at Object.Rt.unbatchedUpdates (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:49691)
      at gn (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:19:62349)
      at uo.render (https://jordaneldredge.com/projects/winamp2-js/built/winamp.js:27:29068)
      at e.<anonymous>…

    • sundarurfriendFeb 2018

      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 can do: (thread)
      https://pbs.twimg.com/media/DVcfDHBVQAAp3Tm?format=png

      * Load any classic Winamp skin just by dragging it onto the main window. (Shoutout to @stuk for JSZip which lets us decompress .wsz files in the browser. (link: https://stuk.github.io/jszip/)
      https://video.twimg.com/ext_tw_video/961271636983820288/pu/vid/990x720/DMmXxEB7fOBIT5_a.mp4

      * Drag local audio files into the playlist to queue them up.
      https://video.twimg.com/ext_tw_video/961271712238063621/pu/vid/994x720/BEONYMr9RpsOJT_d.mp4

      * Visualize your music with the bar or line visualizer.
      https://video.twimg.com/ext_tw_video/961271795725709314/pu/vid/534x360/q5iSFe-_jTYaoxz-.mp4

      * Adjust the fully functional EQ to pump up the bass.
      (Shoutout to @epistemex for cardinal-spline-js (link: https://github.com/epistemex/cardinal-spline-js))
      https://video.twimg.com/ext_tw_video/961271880035389441/pu/vid/630x640/V7qFCwUdrOJXhav8.mp4

      * Import/export Winamp's own binary EQ settings files. …

    • peutetreNov 2024

      > Can someone explain to me why people are excited about WebGPU and WASM and similar technologies?

      WebAssembly brings all languages to the browser. Why shouldn't I be able to use C#, Rust, Go, Dart, Python, or whatever else in browser?

      WebAssembly brings better performance. That's what Webamp found: https://jordaneldredge.com/blog/speeding-up-winamps-music-visualizer-with-webassembly/

      And what Amazon found: https://www.amazon.science/blog/how-prime-video-updates-its-app-for-more-than-8-000-device-types

      And what Google found: https://web.dev/case-studies/google-sheets-wasmgc

      Why make things perform worse when they can perform better?

      Why shouldn't I be able to make an application that compiles to the Windows, macOS, and Linux desktops and also to the browser? This one does: https://bandysc.github.io/AvaloniaVisualBasic6/

    • stable-pointJan 2017

      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-curl-pipe-bash-server-side/
      [1] https://jordaneldredge.com/blog/one-way-curl-pipe-sh-install-scripts-can-be-dangerous/

    • shaknaJan 2018

      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://jordaneldredge.com/blog/one-way-curl-pipe-sh-install-scripts-can-be-dangerous/

    • captbaritoneJul 2026

      Author of the Museum here. Agreed! That was true for "classic" Winamp skins which are what is shown here. I also took a stab at "modern" Winamp skins which were fully dynamic and scriptable and wasn't quite able to bring that to the browser. I did a writeup of that work here: https://jordaneldredge.com/webamp-modern/

    Related

    Project Tofinomedium.com/project-tofino22 people

    Browsers, Innovators Dilemma, and Project Tofino

    Project Tofino
    Company · last shared 2018
    Jake Archibaldjakearchibald.com191 people

    I discovered a browser bug

    Jake Archibald
    Personal · last shared 2026
    Surmasurma.dev67 people

    Ditherpunk: The article I wish I had about monochrome image dithering

    Surma
    Personal · last shared 2025
    Twitch Engineering Blogblog.twitch.tv178 people

    Go’s march to low-latency GC

    Twitch Engineering Blog
    Company · last shared 2026
    PhobosLabphoboslab.org123 people

    QOI: Lossless Image Compression in O(n) Time

    PhobosLab
    Personal · last shared 2026
    Arm Community Blogcommunity.arm.com147 people

    An update on GNU performance

    Arm Community Blog
    Company · last shared 2025
    Scirra Blogscirra.com46 people

    Bitcoin's UK future looks bleak

    Scirra Blog
    Company · last shared 2021
    Modal Blogmodal.com90 people

    The Missing Nvidia GPU Glossary

    Modal Blog
    Company · last shared 2026