B
Badass JS
badassjs.com · Personal blog · on HN since 2010
Badass JS is a Tumblr blog covering ambitious JavaScript projects like Emscripten ports, asm.js, WebGL games, and web audio.
What HN saysCommenters recommend it as a feed to follow for new JavaScript work, and link its posts on physics engines and an interview.
46HN people shared it
24linked it in comments
91stories submitted
2.0Kstory points
9 years agolast shared
2010people per year2026
Most-shared posts
- 1Qt GUI Toolkit Ported to JavaScript via Emscripten5 people · 106 points · first shared 2013 · 40 comments on HN
- 2WebKit.js: Yes it has finally happened Browser Inception is now possible.4 people · 27 points · first shared 2012 · 3 comments on HN
- 3WebKit.js: It's happening for real, with Emscripten's help | Badass JavaScript3 people · 3 points · first shared 2014 · discussion on HN
- 4Homepage3 people · first shared 2012
- 5LLVM.js: LLVM Itself Compiled to JavaScript via Emscripten2 people · 142 points · first shared 2013 · 12 comments on HN
- 6FLAC.js, Aurora, and the Future of Web Audio2 people · 106 points · first shared 2012 · 32 comments on HN
- 7A Minecraft-like Block Based Game Engine Using Three.js, WebGL and Node2 people · 98 points · first shared 2013 · 42 comments on HN
- 8Asm.js: A Low Level, Highly Optimizable Subset of JavaScript for Compilers2 people · 89 points · first shared 2013 · 56 comments on HN
- 9SQL.js: SQLite Compiled to JavaScript via Emscripten2 people · 84 points · first shared 2012 · 20 comments on HN
- 10Face Detection in JavaScript via Canvas2 people · 78 points · first shared 2010 · 16 comments on HN
- 11Seriously.js: A Realtime, Node-Based Video Compositor for the Web2 people · 77 points · first shared 2012 · 10 comments on HN
- 12WebM and WebP Hand Ported to JavaScript for All Browsers2 people · 70 points · first shared 2012 · 19 comments on HN
- 13Route9.js: A VP8/WebM decoder in JavaScript2 people · 46 points · first shared 2011 · 13 comments on HN
- 14H.264 Decoding in JavaScript: The Badass JS perspective2 people · 27 points · first shared 2011 · 6 comments on HN
- 15WebGL-2d: An Implementation of the 2d Canvas Context in WebGL2 people · 13 points · first shared 2011 · discussion on HN
What HN people wrote when they linked it
petercooper · 2012-03-15
I was going to recommend http://badassjs.com/ as well. I notice someone in the comments there beat me to it but.. I'm giving the rec on HN ;-) (and I wouldn't be doing my job if I didn't recommend new O'Reilly JavaScript conference taking place later this year: http://fluentconf.com/ :-))
cowholio4 · 2012-10-04
One of the feeds I to which I subscribe, preemptively moved off of Feeedburner a couple days ago.
http://badassjs.com/post/32738175366/moving-off-feedburner-please-upda…
The primary reason the author was using it was for the subscriber count. He created a quick script to wrap his feed to give him counts.
https://gist.github.com/3816875
devongovett · 2012-02-29
Badass JS post if you're interested: http://badassjs.com/post/18503583619/coffeephysics-a-fast-new-physics-… Contains a great interview with creator Justin Windle. Check it out for a unique perspective!
aaronem · 2014-04-25
A fair response, although I might quibble with your choice of the term "moron"; if that was what I thought, I doubt I'd have bothered replying to you at all.
(I note also that, in my earlier reply, I forgot to mention that several Foobar2000 users have requested better self-signed cert support from Pawlowski, whom I've never seen to respond favorably to such a request. I saw little value in registering for the HydrogenAudio forums, solely in order to weigh in on the side of a feature which the developer plainly doesn't consider worth his while to add.)
I've never seen a playback queue as anything other than possibly an imperfect workaround for the limitations imposed by the inability of playlists to contain nodes pointing to other playlists, and my frustration around the subject of Foobar's playback queue stems from the fact that it's not even any good at that, much less at being a good idea in its own right -- the fact that the queue's contents aren't even exposed in the UI without adding a plugin should, I concede, have served as a strong clue. (And your choice of Perlis' epigram strikes me as truly inspired! Why, indeed, should we have these two things, the playlist and the playback queue, which behave similarly but not identically, and whose coexistence requires a bunch of otherwise unnecessary special cases?)
I can appreciate your incredulity at playback queue (mis)behavior being a deal-breaker for anyone with foobar2000; annoying as I find those idiosyncrasies, they…
s3b · 2012-10-04
You should have a look at http://badassjs.com/
tyingq · 2017-10-19
Via emscripten. Slow, but it does "work".
http://badassjs.com/post/43158184752/qt-gui-toolkit-ported-to-javascri…
wmf · 2014-12-05
Polyfills have been around for a while; this isn't the first one. e.g. http://webpjs.appspot.com/ http://badassjs.com/post/12035631618/broadway-an-h-264-decoder-in-java…
corysama · 2014-11-04
While you are waiting: http://badassjs.com/post/73526882798/webkit-js-its-happening-for-real-…
dspig · 2014-08-02
rubiquity · 2014-01-16
I remember this being an April Fools' Day joke[0] in 2012. Interesting to see it coming alive. I imagine it will be a pretty large file size so it might not be practical for a little bit longer, especially for mobile devices.
0 - http://badassjs.com/post/20294238453/webkit-js-yes-it-has-finally-happ…
camus2 · 2013-12-20
Qt running in the browser :
http://badassjs.com/post/43158184752/qt-gui-toolkit-ported-to-javascri…
JVM running in the browser :
http://plasma-umass.github.io/doppio/about.html
Anything is possible in the browser.
elisee · 2013-10-15
On Firefox (which originally introduced it), finding "use asm" at the top of the script makes a subset of JavaScript faster by enabling an Ahead-Of-Time optimizing compiler. See http://badassjs.com/post/43420901994/asm-js-a-low-level-highly-optimiz… From what I understand, "asm.js" code without the "use asm" directive in Firefox would run slower because it wouldn't check it for compliance with the asm.js subset and enable the specialized AOT codepath.
It's an interesting approach but feels a bit like over-specialization. The V8 guys on the other hand, decided to ignore the directive entirely and have been able to improve their (more "generic") JIT compiler to get it to run the same code almost as fast as Firefox's Ahead-Of-Time compiler in a lot of cases.
imsky · 2013-06-05
This is more than a year old. It was featured on Badass JS in January 2012. http://badassjs.com/post/16583192105/seriously-js-a-realtime-node-base…
dave1010uk · 2013-04-03
The reverse has been done: WebM has been ported to JavaScript with Emscripten, which means all browsers (IE9+) can play WebM to some degree.
http://badassjs.com/post/17218459521/webm-and-webp-hand-ported-to-java…
MatthewPhillips · 2013-03-27
This was an april fool's joke from last year: http://badassjs.com/post/20294238453/webkit-js-yes-it-has-finally-happ…
In the non-joke category, Mozilla created a JavaScript interpreter written in JavaScript (to test new language features): https://github.com/mozilla/narcissus/
AdrianRossouw · 2013-02-17
did you see they compiled QT against emscripten recently. That's pretty insane if you ask me. Now they just need to compile KHTML too, so it's webkit all the way down.
[1] http://badassjs.com/post/43158184752/qt-gui-toolkit-ported-to-javascri…
asselinpaul · 2013-01-26
Have a look at this, exactly what you are looking for: http://badassjs.com/post/40691367335/voxel-js-a-minecraft-like-block-b…
egeozcan · 2012-10-04
So this will be real: http://badassjs.com/post/20294238453/webkit-js-yes-it-has-finally-happ…
nephics · 2012-03-06
Demo page at: http://syntensity.com/static/sql.html
See more details here: http://badassjs.com/post/18857332551/sql-js-sqlite-compiled-to-javascr…
JoshTriplett · 2012-02-07
Right now, two codecs cover all the browsers that matter. Internet Explorer supports WebM, but doesn't ship with the codec; Google provides the WebM codec for Internet Explorer (https://tools.google.com/dlpage/webmmf). That just leaves Safari and iOS that still only support H.264.
Personally, as JavaScript engines get faster, I hope for solutions like this in the future: http://badassjs.com/post/13551173773/route9-js-a-vp8-webm-decoder-in-j…
Meanwhile, if Adobe would ever get around to adding WebM in Flash as previously promised, that would work as a fallback for Safari, as well as IE users without a WebM codec, leaving just iOS.
ryankshaw · 2011-11-09
you could use broadway, which is a h.264 player written in js onto canvas to get your frame and then just send that.
see:
http://badassjs.com/post/12035631618/broadway-an-h-264-decoder-in-java…
http://mbebenita.github.com/Broadway/broadway.html
xd · 2010-12-14
This uses the face detection library here: http://badassjs.com/post/1461943420/face-detection-in-javascript-via-h…
Which has a link to upload and test your own pictures here: http://liuliu.me/detect/detect.html
andhow · 2013-12-20
For (1): You're right that an option is to compile the VM itself to asm.js (since the VM is usually written C/C++ code; JITs are an obvious exception since they generate machine code at runtime). This has already been done, e.g., for Java [1] and Lua [2]. What is meant by "supporting GC languages" is translating GC objects in the source language to real JavaScript objects so that the JS GC may be used on them. For statically-typed source languages like .NET/JVM, the proposed Typed Objects extension to JavaScript [3] could be naturally integrated into asm.js to describe classes. This is all a little ways off since Typed Objects needs to be standardized first. Also, the lack of finalizers in JS would limit the fidelity of the translation.
For (2): yes, it is already being worked on [4].
[1] xmlvm.org
[2] http://kripken.github.io/lua.vm.js/lua.vm.js.html
[3] http://wiki.ecmascript.org/doku.php?id=harmony:typed_objects
[4] http://badassjs.com/post/43158184752/qt-gui-toolkit-ported-to-javascri…