HNHacker News
TopNewBestAskShowJobs

raboukhalil

323 karma · joined February 19, 2015

submissionscomments
raboukhalil··on Show HN: Embed a real Linux terminal on your website
Yes it's powered by v86! I just wanted it to be easier to embed and come pre-built with lots of bioinformatics tools. You don't actually have to exclude the bioinformatics tools because v86 doesn't actually load tools unless you call them on the command-line. But when you embed, you can also preload the tools you will use so they load faster the first time they're called.
raboukhalil··on Show HN: Embed a real Linux terminal on your website
A few weeks ago, I came across a blog post with 5 git tips. I would have loved having an embedded terminal with some mock repos preloaded with the exact situation. That's the kind of use case I'm aiming at, not just the basic commands!
raboukhalil··on Show HN: Embed a real Linux terminal on your website
Wow tough crowd, can you expand on why it looks broken and low quality?
raboukhalil··on Show HN: Embed a real Linux terminal on your website
The use case is for tutorials and documentation pages. sandbox.bio embeds that terminal in all its bioinformatics tutorials and people find it useful to have an environment where you don't need to set anything up before you start learning. So I wanted to make it easy for others to embed a similar environment in their training materials.
raboukhalil··on The Burrows-Wheeler Transform
I added more details about how the decoding works here: https://sandbox.bio/concepts/bwt#intuition-decoding , I'd love to hear if that is more clear now
raboukhalil··on The Burrows-Wheeler Transform
I just added a section about the intuition behind the decoding: https://sandbox.bio/concepts/bwt#intuition-decoding , hope it helps!
raboukhalil··on The Burrows-Wheeler Transform
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.
raboukhalil··on The Burrows-Wheeler Transform
Good point, thanks! I'll add a subsection about the intuition for that.
raboukhalil··on AI in biology: distinguishing hype from reality
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.
raboukhalil··on Interactive examples for learning jq
Aha, I was wondering why the biowasm CDN suddenly spiked in usage today! :D
raboukhalil··on Show HN: I built interactive playgrounds for Awk, Sed, Grep using WebAssembly
Haha thank you, headlamp seems pretty cool too!
raboukhalil··on Show HN: I built interactive playgrounds for Awk, Sed, Grep using WebAssembly
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 :)

raboukhalil··on Show HN: Learn Awk with a terminal running in the browser
Hello HN, this is an interactive awk tutorial that features a terminal in the browser to simulate the real experience.

To get it running in the browser, I compiled gawk from C to WebAssembly! If you're interested in how that was done, check out the biowasm project: https://github.com/biowasm/biowasm/tree/main/tools/gawk

raboukhalil··on Show HN: An Interactive Jq Tutorial
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.
raboukhalil··on Show HN: An Interactive Jq Tutorial
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 :)

raboukhalil··on Compiling C to WebAssembly Without Emscripten
Yes please!
raboukhalil··on Tips for Writing a Technical Book
In case it helps you decide whether to go with a publisher or self-publish, I wrote down some thoughts about the self-publishing avenue: https://medium.com/@robaboukhalil/how-i-wrote-a-technical-bo... :)
raboukhalil··on Uppy 1.0: Your best friend in file uploading
Nice work, looks awesome! Curious whether you could use this to upload files directly to google cloud storage without having a server in the middle?
raboukhalil··on Ask HN: Is WebAssembly the next big thing? Is it worth investing in learning?
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/!

raboukhalil··on Writing a Technical Book for Manning
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!
raboukhalil··on Writing a Technical Book for Manning
The landing page is static HTML hosted on GCP's cloud storage platform.
raboukhalil··on Writing a Technical Book for Manning
If you want to hear about the alternative approach of self-publishing, check out my post about how I wrote a WebAssembly book in 200 hours: https://medium.com/@robaboukhalil/how-i-wrote-a-technical-bo...

This is my second self-published book and I've loved this approach. It lets me focus on writing and marketing, and I get to craft every aspect of the book.

raboukhalil··on WebAssembly for fast and interactive CLI playgrounds
Hey HN! This is an article on how WebAssembly can enable us to port command-line tools to the web, which enables fast and interactive playgrounds!

You can find a demo at http://jqkungfu.com and the code at http://github.com/robertaboukhalil/jqkungfu

raboukhalil··on We Used WebAssembly to Speed Up Our Web App by 20X
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.

raboukhalil··on How I wrote a technical book in under 200 hours
Thank you! Yes I'm definitely planning on writing a post-mortem with details about sales figures in a few months.
raboukhalil··on Show HN: I wrote a book about WebAssembly
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.
raboukhalil··on Show HN: I wrote a book about WebAssembly
Thank you jamestimmins, that’s also my understanding of Show HN
raboukhalil··on Show HN: I wrote a book about WebAssembly
Thanks pjmlp!
raboukhalil··on Show HN: I wrote a book about WebAssembly
Haha, I can confirm Brendan is not the author. Just curious though, where else have you seen this book mentioned?
raboukhalil··on Show HN: I wrote a book about WebAssembly
Thank you!
Page 1 of 3Next →