It's done! 🎉 Winamp2-js (https://t.co/BtfXzKsJYH) finally supports all three windows!

To celebrate, here's a list of some of the cool things it can do: (thread)

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. https://t.co/k9gKnA6G1B)
Drag local audio files into the playlist to queue them up.
Visualize your music with the bar or line visualizer.
Adjust the fully functional EQ to pump up the bass.
(Shoutout to @epistemex for cardinal-spline-js https://t.co/NIXjit7zY4)
Import/export Winamp's own binary EQ settings files.
Export your playlist as an .html file.
Save screen real estate with each window's "shade" mode.
See each file's title/artist as specified in its ID3 tags.
(Shoutout to @aadsm for jsmediatags https://t.co/HVPFMScACF)
If a skin specifies some transparent regions in its region.txt, they are respected. (Shoutout to @SaraSoueidan for https://t.co/8VRPVbtwE6)
Drag windows around, and easily align them with window snapping.
Use hotkeys to control all major functions.
Select/drag tracks to reorder them.
"Double" mode (ctrl+d) makes the main and EQ windows twice as big.
Getting all of this to work entirely in the browser has been a great challenge, and I've learned a lot.
Thanks to @The_DoctorO for being an invaluable source of insider information.
Thanks to @LuigiHann for catching many small places where I hand't perfectly recreated Winamp's handling of skins.
Thanks to @ja2ke for the original retweet which I believe kicked this whole thing off more than three years ago.
And of course, thanks to @JustinFrankel. 🙇‍♂️

You May Also Like

I’m torn on how to approach the idea of luck. I’m the first to admit that I am one of the luckiest people on the planet. To be born into a prosperous American family in 1960 with smart parents is to start life on third base. The odds against my very existence are astronomical.


I’ve always felt that the luckiest people I know had a talent for recognizing circumstances, not of their own making, that were conducive to a favorable outcome and their ability to quickly take advantage of them.

In other words, dumb luck was just that, it required no awareness on the person’s part, whereas “smart” luck involved awareness followed by action before the circumstances changed.

So, was I “lucky” to be born when I was—nothing I had any control over—and that I came of age just as huge databases and computers were advancing to the point where I could use those tools to write “What Works on Wall Street?” Absolutely.

Was I lucky to start my stock market investments near the peak of interest rates which allowed me to spend the majority of my adult life in a falling rate environment? Yup.
🔥 Looks like the case study on ToDesktop blew up (>200 likes and 50 retweets).

Here are 6 more tips to improve page performance, reduce load time and boost SEO:

1/ Use the loading="lazy" attribute on images and videos where possible. https://t.co/tN2au2EK4b

(5 more in thread)

2/ Use a HTTP/2 CDN. Most CDNs support HTTP/2 by default now. Netlify is great (be aware that they are blocked in Russia right now though).


3/ WebP [1] has 80% support [2] now and is usually ~30% lighter than PNG/JPEG. Use it and fallback to PNG/JPEG on unsupported browsers. [1] https://t.co/IDDq3vUtm7 [2]

4/ Use srcset to always deliver the correct image size. Don't just deliver the high-resolution version.

5/ You can use Lighthouse as a bot that audits pull requests automatically for you.