HN user

raboukhalil

316 karma
Posts34
Comments78
View on HN
sandbox.bio 6d ago

Show HN: Makefile tutorial that runs make in the browser

raboukhalil
1pts0
www.youtube.com 11mo ago

AI in biology: distinguishing hype from reality

raboukhalil
2pts1
sandbox.bio 1y ago

Show HN: Interactive Bash tutorial that runs in the browser

raboukhalil
8pts0
sandbox.bio 1y ago

Genomic ranges

raboukhalil
1pts0
www.youtube.com 1y ago

Mistakes to Avoid in Your CV

raboukhalil
3pts0
www.youtube.com 2y ago

Software rewrites are bad but they might work for us [video]

raboukhalil
2pts0
robaboukhalil.medium.com 3y ago

You're paying too much for egress: How Cloudflare R2 fixes that problem

raboukhalil
4pts0
sandbox.bio 4y ago

Show HN: I built interactive playgrounds for Awk, Sed, Grep using WebAssembly

raboukhalil
12pts4
www.wired.com 4y ago

It’s Like GPT-3 but for Code–Fun, Fast, and Full of Flaws

raboukhalil
1pts0
www.nature.com 4y ago

How to fix your scientific coding errors

raboukhalil
6pts0
sandbox.bio 4y ago

Show HN: Learn Awk with a terminal running in the browser

raboukhalil
7pts2
sandbox.bio 4y ago

Show HN: An Interactive Jq Tutorial

raboukhalil
15pts3
sandbox.bio 4y ago

Show HN: A WebAssembly-based sandbox for bioinformatics

raboukhalil
1pts0
robaboukhalil.medium.com 5y ago

Using WebAssembly and Cloudflare Workers to power genomics analysis

raboukhalil
2pts0
medium.com 5y ago

WebAssembly and SIMD: A match made in the browser

raboukhalil
1pts0
medium.com 6y ago

WebAssembly Needs a Better Definition

raboukhalil
1pts0
www.youtube.com 6y ago

Introduction to WebAssembly with Fractals

raboukhalil
3pts0
www.smashingmagazine.com 6y ago

Getting Started with Serverless WebAssembly

raboukhalil
4pts0
medium.com 7y ago

Hit the Ground Running with WebAssembly

raboukhalil
5pts0
www.youtube.com 7y ago

Show HN: My PerfMatters 2019 talk about speeding up web apps with WebAssembly

raboukhalil
4pts0
opensource.com 7y ago

WebAssembly for fast and interactive CLI playgrounds

raboukhalil
3pts2
www.smashingmagazine.com 7y ago

We Used WebAssembly to Speed Up Our Web App by 20X

raboukhalil
4pts1
news.ycombinator.com 7y ago

Show HN: Using WebAssembly to port the Asteroids game to the web

raboukhalil
1pts0
medium.com 7y ago

How I wrote a technical book in under 200 hours

raboukhalil
20pts2
news.ycombinator.com 7y ago

Show HN: I wrote a book about WebAssembly

raboukhalil
410pts88
jqkungfu.com 7y ago

Show HN: jqkungfu, a jq Playground Built with WebAssembly

raboukhalil
2pts1
medium.com 7y ago

Booting VMs in under 25 seconds on GCP

raboukhalil
2pts1
medium.com 7y ago

Set goals you have complete control over

raboukhalil
1pts0
medium.com 8y ago

The weird, wondrous world of Bash arrays

raboukhalil
3pts0
medium.com 9y ago

A Tale of Two Clouds: Amazon vs. Google

raboukhalil
30pts12

Author here, nice to see the article posted here! I'm currently looking for ideas for other interactive articles, so let me know if think of other interesting/weird algorithms that are hard to wrap your head around.

This is a podcast we recorded about the promise and perils of AI in biology, where we dive into a case where AI was used to predict enzyme function and gave results that looked really promising, but were not quite right.

Good morning HN! This tool lets you play with awk, grep, sed, and jq commands right in your browser. Start from the examples and explore from there!

To get these tools running in the browser, I compiled them to WebAssembly (see https://github.com/biowasm/biowasm for details). That way, the commands you type run instantaneously, and it doesn't cost me an arm and a leg to host servers that execute arbitrary commands from users :)

Thanks! It's generally easiest to do for C/C++/Rust/AssemblyScript code (other languages often need to ship things like garbage collection or an interpreter alongside it). But even with those languages, it's not always trivial to support features in the browser like file systems, threads, SIMD, etc.

Hey HN, I recently came across a very useful tutorial about jq (https://earthly.dev/blog/jq-select/) and created an interactive tutorial based on it. It features a command-line sandbox where you can safely explore and run arbitrary jq commands (it runs jq in your browser using WebAssembly).

Check it out if you want to learn how to filter, process, and wrangle JSON data. And if you happen to be getting started in bioinformatics, check out the rest of the tutorials on sandbox.bio :)

WebAssembly is an awesome technology and I'm super excited about it, but IMHO it's probably best to assume you don't need it unless you can convince yourself otherwise.

That said, here are a few examples of where it shines (warning: shameless plugs incoming):

- In data analysis apps, you can replace slow JavaScript calculations with WebAssembly and see significant speedups--I wrote this case study on my experience with that: https://www.smashingmagazine.com/2019/04/webassembly-speed-w...

- It's super helpful in porting games from languages like C/C++ to the web without having to rewrite the game from scratch. Here's a post I wrote about how to port a game like Asteroids to the web: https://medium.com/@robaboukhalil/porting-games-to-the-web-w...

- WebAssembly is really good for building playgrounds out of command line tools. Here's how I built one for the jq CLI: https://opensource.com/article/19/4/command-line-playgrounds..., the benefit being more secure than hosting it on the backend + much faster runtime

- I'm also excited to see how WebAssembly will impact work outside the browser: https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webas..., especially with Function-as-a-service offerings that support Wasm like Cloudflare/Fastly workers, where the benefit is that I can write my function in any language + the time to initialize the function could be much faster

Another shameless plug: if you want a practical intro to WebAssembly, I self-published a book about it recently: http://levelupwasm.com/!

I have not received feedback that my book was too short. In my own experience, I've rarely ever completed a technical book--in fact, I've often wished they were shorter!

Hi HN! This is an article about using WebAssembly to speed up a web application.

As I mention in the article, WebAssembly isn't always the right tool for the job, but for our use case, it was a great fit because we were able to port an existing data analysis tool written in C to WebAssembly, and use that to replace the slow JavaScript calculations we were using initially.

I don’t have an example that specifically uses cmake, though similar principles apply but you’d use the emcmake utility. That said, thanks for the feedback! I’ve added that to my list of things to add to the book.

Thank you for the tips! I'll be writing an article in coming weeks about my experience writing this book. This is the second book I self-publish, and unlike the first one, I actually tracked how much time I spent on each category of tasks (writing, editing, marketing, head scratching, etc), so the article will also include that. Stay tuned!

Thanks! Yes the book focuses on C/C++, but you don't need very much C/C++ knowledge to follow along in the book.

Most of the time, we treat C/C++ libraries as black boxes that we compile to WASM, though in some cases like Pacman, we do have to modify the original code, but you should be able to infer what we're doing from the context and the text.

Thanks! I like to self-publish mostly because I can craft the book in my own way and move faster. I also enjoy being able to touch all aspects of the book, including the design and marketing.

This is actually my second self-published book (first one was about wrangling data on the command line with bash), so it does feel natural to self-publish at this point!