Ask HN: What startup/technology is on your 'to watch' list?

1006 points by iameoghan ↗ HN
For me a couple of interesting technology products that help me in my day-to-day job

1. Hasura 2. Strapi 3. Forest Admin (super interesting although I cannot ever get it to connect to a hasura backend on Heroku ¯\_(ツ)_/¯ 4. Integromat 5. Appgyver

There are many others that I have my eye on such as NodeRed[6], but have yet to use. I do realise that these are all low-code related, however, I would be super interested in being made aware of cool other cool & upcoming tech that is making waves.

What's on your 'to watch' list?

[1]https://hasura.io/

[2]https://strapi.io/

[3]https://www.forestadmin.com/

[4]https://www.appgyver.com/

[5]https://www.integromat.com/en

[6]https://nodered.org/

700 comments

[ 2.8 ms ] story [ 343 ms ] thread
1. Cloudflare Workers, I don't have the bandwidth to experiment with it right now but it interests me greatly.

https://workers.cloudflare.com/

2. Rust - definitely will be the next language I learn. Sadly the coronavirus cancelled a series of meetings in Michigan promising to give a gentle introduction to Rust.

https://www.rust-lang.org/learn

I've heard many good things about Cloudfare Workers.

Excuse my ignorance & N00Bness, but are they essentially a Cloudfare version of AWS Lambdas, Google Cloud Functions and Netlify functions, or are they something different/better?

IIRC Cloudflare Workers run at each Cloudflare PoP, which have higher geographical density than AWS regions, so latency experienced by end-users may be lower.
Nice. Will check them out. IIRC they are really affordable too (like all serverless stuff tbh)
AWS has the same thing with Lambda@Edge
More lightweight. It’s just v8 so there’s basically no time for warm up time.

They have vastly more pops than Amazon, so global performance for these is on a different level. But they are also more limited in compute and serve a slightly different purpose.

Cloudflare Workers and their KV service (https://www.cloudflare.com/products/workers-kv/) is great. I built a side project (https://tagx.io/) completely on their services from hosting the static site, auth flow and application data storage. KV is pretty cheap as well starting around $5/month with reasonable resources.
I've seen tagx a couple of times before. Awesome to know who the author is.
I am also very interested in using worker + kv. Can kv be used as a proper application database? Has anyone ever done that?
If by application database you mean to the level of an RDBMS then no. It's a key-value data store. You get your CRUD operations, expiry, key listing and the ability to do pagination with keys always returning in lexicographically sorted order. Any relation data you want to have would be using the key prefixes, e.g.:

  article:1 -> {"user": 1, "content": "..."}
  user:1 -> {"name": "username"}
  user:1:articles -> [1, ...]
yep. thats the plan. i will have keys like

postid:someid/text

postid:someid/author

etc.

the relation aspect doesnt daunts me. As long as I can have a list/collection as a value, i can define a working schema.

I am more worried about if its costlier than normal dbs. and if there are any other gotchas to keep in mind as kv workers have scant documentation.

If you're comparing this to a normal DB, the biggest worry should be that it's not ACID compliant. Definitely something to consider if your data is important. The limitations for KV is listed here: https://developers.cloudflare.com/workers/about/limits#kv

You should also consider how you intend to backup the data as there currently isn't a process to do that outside of writing something yourself to periodically download the keys. This will add to your usage cost depending on what your strategy is, for example, backing up old keys that gets updated vs only new keys by keeping track of the cursor.

Utilized workers to create one of the fastest website analytics tool after Google Analytics: https://rapidanalytics.io (still in development).
Fast, as in what sense? The tracking code loads fast? The tracking requests are sent fast to the server? The dashboards load fast?
I've done a couple neat (IMO) things with CF workers.

- I use imgix to manipulate images in my app, but some of my users don't want anyone to be able to discover (and steal) the source images. Imgix can't do this natively; all image manipulation instructions are in the URL. So I put a CF worker in front of imgix; my app encrypts the url, the worker decrypts it and proxies.

- A year ago, intercom.io didn't support permissions on their KB articles system. I like intercom's articles but (at the time) wanted to restrict them to actual customers. So I put a CF worker in front that gates based on a cookie set by my app.

These are both trivial, stateless 5-line scripts. I like that I can use CF workers to fundamentally change the behavior of hosted services I rely on. It's almost like being able to edit their code.

Of course, this only works for hosted services that work with custom domains.

It’s pretty incredible. You can put it over any site and build your own A/B testing or targeting based on the user or the link used to get to your site.
> I like intercom's articles but (at the time) wanted to restrict them to actual customers. So I put a CF worker in front that gates based on a cookie set by my app.

Might be against their terms? I rem someone asked if they could treat Workers as a http reverse-proxy to essentially bypass restrictions, and the answer was "no".

Seems unlikely. But if they really want to lose paying customers, that would be one way of doing it.
>These are both trivial, stateless 5-line scripts

Would it be possible to share these scripts? I would love to see them, they sound really helpful/useful

Sure. Here's the help system one (no longer used since intercom now supports permissions, and I opened up the help system anyway):

    addEventListener('fetch', event => {
       event.respondWith(handleRequest(event.request))
     })

    async function handleRequest(request) {
       const cookie = request.headers.get('Cookie');
       if (cookie && cookie.includes('foo=bar')) {
         return await fetch(request);
       } else {
         return new Response('You must log in before accessing this content');
       }
     }
The encrypted URL script is actually a bit longer than "5 lines" (it has been a while) so here's a gist:

https://gist.github.com/stickfigure/af592b1ce7f888c5b8a4efbe...

Why rust over go?
Different use cases.

Go was designed to be easy to use for un-demanding problems. People mostly switch to Go from Ruby, Python, or Java; or from C in places where C was an unfortunate choice to begin with.

Rust is gunning for C++ territory, in places where the greater expressiveness of C++ is not needed or, in cases, not welcome. They would like to displace C (and the world would be a better place if that happened) but people still using C at this late date will typically be the last to adopt Rust.

So you’re saying it should have better performance than go?
Sometimes. Better control of performance.
Easier to search for if nothing else.
I am mainly saying it is suitable for solving harder problems than Go. Most problems are not hard; Go is good enough for them, and easier to learn and use well.

All these languages are Turing-complete. The difference is in how much work it is to design and write the program, and in whether it can satisfy performance needs.

C++ wins here by being more expressive, making it better able to implement libraries that can be used in all cases. Rust is less capable, but stronger than other mainstream languages.

At my company, we run 100% of our front-end React/Vue web apps on Cloudflare workers - We love it, deploys are really easy, performance/resilience is built-in
I wrote a guide on connecting Hasura + Forest admin for no-code SaaS apps + admin backends:

"14. Connect Forest Admin to Hasura & Postgres"

http://hasura-forest-admin.surge.sh/#/?id=_14-connect-forest...

For Heroku specifically you need to make sure that the client attempting to connect does it over SSL, so set SSL mode if possible (many clients will do this by-default).

To get the connection string for pasting into Forest Admin config, run this:

    heroku config | grep HEROKU_POSTGRESQL
That should give you a connection string you can copy + paste to access externally from Heroku:

    HEROKU_POSTGRESQL_YELLOW_URL: postgres://user3123:passkja83kd8@ec2-117-21-174-214.compute-1.amazonaws.com:6212/db982398
https://devcenter.heroku.com/articles/heroku-postgresql#exte...
Awesome, will definitely. I think it was your post in a different thread earlier this year where I came across it originally. I remembered the name as you helped me on the Hasura Discord (Thank you for all your awesome input there) & it looks so promising.
Thank you very much for this article, that's awesome!
Oh snap, the founder of Forest Admin!

Glad you liked the post, I've been using Forest on both realworld SaaS platforms and small side-startups since early 2017. Really cool to watch how much you've evolved since then.

Also, Louis S. is amazing! I've sent two emails to you guys over the years, Louis answered both of them within a day.

Throwback to 2017 UI ;)

https://i.imgur.com/KT9Wtlx.png

This comment is epic, thank you very much :-) I'm sure Louis will be super happy to read this as well.

See you soon!

(comment deleted)
Tailscale.
Slick - I was wanting to try tinc + wireguard, might have to try this as well.

Thanks for the heads up!

nice, but what is the benefit over zerotier? Seem to provide very similar end results..
Rainway: https://rainway.com/ Google Stadia: https://stadia.google.com/

It's not even about gaming. Fuck gaming. It's about the underlying streaming technology.

Imagine this same tech being used by a surgeon to perform surgery remotely. That's the type of use case I'm thinking about!

the reason these things work is because they use a datacenter in your city. Thats why low latency. You'd have to have doctor in the same locality, which is not what I think you are thinking.
Looks like the ScyllaDB playbook i.e. rewrite a popular Java app in C++ and sell it as a much faster product.

Going to be interesting to see if they survive as the pace of JVM improvements has been rapidly increasing in the last year or so.

thanks, though what we sell is operational simplicity. speed is nice, but not the main benefit. a single binary that's easy to run is what CIO seem to be interested. though we are young. fingers crossed it works :)
I agree that operational simplicity will sell this to more organizations than performance will. There just aren't that many companies in the world that are bumping up against the scaling limits of Kafka.

When I look at the landing page of vectorized.io it touts the speed repeatedly without mentioning this simplicity pitch you find deeper in the site:

Redpanda is a single binary you can scp to your servers and be done. We got rid of Zookeeper®, the JVM and garbage collection for a streamlined, predictable system.

That does sound great! Put that information right up front.

Self hosting - https://cloudron.io
"Self-hosting apps is time consuming and error-prone. Keeping your system up-to-date and secure is a full-time job. Cloudron lets you focus on using the apps and not worry about system administration."

neat, don't think I've seen something like this before!

It kind of just looks like a simplified version of CPanel which has been on every VPS for the last 20+ years.
(comment deleted)
"simplified version of CPanel" is something neat that I haven't seen before

in addition, sometimes people don't know things that you know, and you would do well to keep that in mind: https://xkcd.com/1053/

They'd be so much more successful, if "Install" button did not have this:

  wget https://cloudron.io/cloudron-setup
  chmod +x ./cloudron-setup
  ./cloudron-setup --provider [digitalocean,ec2,generic,ovh,...]
Is that any less secure than “sudo dpkg -i foo.deb”?
It is certainly less secure, than just calling the API of those cloud providers directly from the site backend.
There's a cloudron 1-click image on Digital Ocean
Which, as a regular user, I don't understand when I see it.

Hell, I am a dev, and I still did not know that will let me create one quickly.

Agreed. Do you have any suggestions to improve the initial onboarding?
Ideally:

- user picks a cloud (or have a "Advanced" option on the next step instead)

- you show them OpenID/OAuth form for their cloud provider

- guide them through the creation of an account if necessary

- you get the token, that permits your server to create cloud resources on behalf of the user

- you go ahead and create their services for them

- potentially store the token to be able to update the apps automatically

I thought about that, when I was considering to make a similar service (also similar to sandstorm.io). Glad to see somebody doing something in that area (I guess without the permissions model yet).

Problem is: most clouds don't let you easily create an account, so "guide them through the creation of an account" might be impossible without leaving the browser.

Ahoy gramakri.

I have been a Cloudron user for a bit of time. Recently I have launched a company and we're now a paying and very happy customer of Cloudron's business subscription.

It seems that the "next app suggestion" process have stalled. To me as an outsider of your internal process, I cannot see what applications are being preferred over others. There are tons of very good suggestions which are not receiving traction it seems, from the app suggestion-forum.

A few examples which Cloudron needs, and would benefit from having attracting more users:

- A Wireguard VPN frontend application

- Jupyter Notebooks Environment

- Odoo ERP Community edition

- Erpnext

A while back I installed ServerPilot which automatically sets up Nginx/Apache/PHP/MySQL for you. It also handles security updates. This made those $5 VPS' so much more appealing [1] as I could install lots of small Node.js apps on a single server, and avoid managed hosting providers who seem to prefer charging per app instance.

Anyway ServerPilot then scrapped their free plan so I've been looking for an alternative. cloudron looks cool, I don't see anything specific to Node.js/Express, but it does have a LAMP stack which includes Apache, so I might try that. Otherwise I'll probably use something like CapRover [2], a self-hosted platform as a service.

[1] https://twitter.com/umaar/status/1256155563748139009

[2] https://caprover.com/

Would love to get your opinion as I'm building a competing product to ServerPilot in this space. Is the $5 too expensive for the service? or is it just too expensive because the billing increases as you have more servers under management, and they charge you per app as well?

Are there features ServerPilot is missing that would justify the price more for you? Some examples might be monitoring, analytics, automated security patching, containerization of workloads, etc.

Would the plan be more appealing if the cost of the plan, the portal, and the VM hosting itself were all rolled into one? (i.e. you would just pay one company, rather than having to sign up for DO as well as ServerPilot).

1) Independence of hosting provider is a must. Don't want to be forced to use your VPS service when I have all my infrastructure already on Linode, DO, Vultr, etc.

2) Should be free when used in non-commercial applications. Multiple servers included.

3) Keep the common and already available typical configurations free: lamp, lemp, python, letsencrypt, email. Charge for things which no other panel free or otherwise typically supports. lightspeed, go, caddy, load balancing, sql replication, graphql, etc. Thats value.

(comment deleted)
Dokku is an excellent option for this sort of thing, and manages subdomains for you.

http://dokku.viewdocs.io/dokku/

And SSL is a cinch! I have been very happy with Dokku, I'm surprised I don't see it mentioned around here more often.
The subscription price is crazy now. And they don't even do hosting.
> And they don't even do hosting.

I'm pretty sure that's their whole point of existence.

Wasmer is a project I'm watching closely for many reasons. I feel as WASM becomes more commonplace the role Wasmer plays will become clearer.
Web Assembly

It's interesting in a bunch of ways, and I think it might end up having a wider impact than anyone has really realized yet.

It's an ISA that looks set to be adopted in a pretty wide range of applications, web browsers, sandboxed and cross platform applications, embedded (into other programs) scripting, cryptocurrencies, and so on.

It looks like it's going to enable a wider variety of languages on the web, many more performant than the current ones. That's interesting on it's own, but not the main reason why I think the technology is interesting.

Both mobile devices, and crypto currencies, are places where hardware acceleration is a thing. If this is going to be a popular ISA in both of those, might we get chips whose native ISA is web assembly? Once we have hardware acceleration, do we see wasm chips running as CPUs someday in the not too distant future (CPU with an emphasis on Central)?

A lot of people seem excited about the potential for risc-v, and arm is gaining momentum against x86 to some extent, but to me wasm actually seems best placed to takeover as the dominant ISA.

Anyways, I doubt that thinking about this is going to have much direct impact on my life... this isn't something I feel any need to help along (or a change I feel the need to try and resist). It's just a technology that I think will be interesting to watch as the future unfolds.

I agree! WASM is very interesting. Blazor is an exciting example of an application of Web Assembly - it's starting out as .net in the browser, but you can imagine a lightweight wasm version of the .net runtime could be used in a lot of places as a sandboxed runtime. The main .net runtime is not really meant to run unprivileged. It would be more like the UWP concept that MS made to sandbox apps for the windows App Store, but applicable to all OSes.

One thing I haven't heard much about is the packaging of wasm runtimes. For example, instead of including all of the .net runtime as scripts that need to be downloaded, we could have canonical releases of major libraries pre-installed in our browsers, and could even have the browser have pre-warmed runtimes ready to execute, in theory. So if we wanted to have a really fast startup time for .net, my browser could transparently cache a runtime. Basically like CDN references to JS files, but for entire language runtimes.

This would obviate the need for browsers to natively support language runtimes. It's conceptually a way to get back to something like Flash or SilverLight but with a super simple fallback that doesn't require any plugin to be installed.

I look forward to in browser DLL hell /s

I'm cautiously optimistic about blazor, it definitely makes streaming data to the Dom much easier

Blazor seems like the only one application of WASM at the moment that goes in the completely wrong direction.

People are already whining about JS bundle size and even the small .net runtimes are >60kb.

Yew on the other hand seems to fit right into what WebAssembly was made for.

The download size does make it hard to use for a "public" site, like a webshop. But it is a different story for an application, like an intranet solution or app like Figma. A first time download of a few MB's is not a problem, as you regularly use it. Like a desktop application.

It is the first time you can develop a full stack application (client and backend) in one language in one debugging session. For C# that was possible with Silverlight.

Small companies (like mine) that deliver applications and have full stack engineers can have some amazing productivity!

So for my needs I'm really excited with something like Blazor, and this was only the first release.

I understand the appeal for .net devs.

I just don't think it's a good idea in general.

For every person whining about 60k JS there are 10 creating 10MB web app.
Cautionary tale: we’ve been here before with JVM CPUs like Jazelle. They didn’t take over the world.
Absolutely, but there's been plenty of technologies where the time wasn't right the first time around, but it was the second, or third, or fourth.
Even closer to home. Palm, RIM, Microsoft, Apple and Google have all said at one point that web apps were the answer for mobile apps....
I mean, modern Google was half-built on the back of the Gmail web app...
Gmail was introduced after Google was already popular. The Google home page’s claim to fame was always its simplicity and fast load time.
To an average user, Google in 2003 was a search page. In 2004+, it was essential internet infrastructure.

That's a pretty big difference.

Gmail is popular but in the grand scheme of things it’s not that popular for email. I’m sure that most people get most of their utility from email from their corporate email. Their personal email is mostly used for distant relationship type communications. Most personal interactions these days happen via messaging and social media. AKA “Email is for old people”.

Also, a lot of computer use is via mobile these days and I doubt too many people are using the web interface on mobile for gmail.

It's pretty popular for email, at 25%+ market share [1]. That's a LOT of information to mine.

And point about conversations moving to post-email protocols, but email is certainly still up there with HTTP as a bedrock standard that everyone eventually touches.

Without pushing JavaScript and a full featured web client, it's fair to say Google wouldn't have grown as quickly and be nearly as dominant today.

As for their move to full mobile app, I think it's a bit of a different calculation when you happen to own the OS that powers ~75% of all mobile phones [2]. ;)

Suffice to say, I don't think Google has the same troubles as other developers. (Exception to security policy, for my first party app? Sure!)

[1] https://www.statista.com/chart/17570/most-popular-email-clie...

[2] https://www.statista.com/topics/3778/mobile-operating-system...

The question is not about how many people use Gmail - and that still doesn’t take into account corporate users. It’s about how many people use the web interface as opposed to using a mobile app.
Yes. And we're both clear that there wasn't always a mobile app version of Gmail, right?
To say that Gmail had much to do with Google’s growth considering that there was only a relatively small Window that email was the most popular form of personal (not corporate communication and spam) and that was over ten years ago before mobile started taking over doesn’t really have any basis in today’s reality.
True, just like we were here before with devices like the Palm Pilot and Apple Newton, which is why the iPhone and IPad never took over the world ;)
I'd argue somewhat the opposite. Because WebAssembly is abstract but low level, it makes it really easy for a platform to optimize specifically for that platform, so instead of creating a need for specific platforms, it'll allow more diverse systems to run the same "native" blobs.
That potentiality has been there for many many years, I don't see 'the thing' that provides the critical mass necessary to make it work in reality.

Web Assembly is one of the more misunderstood technologies in terms of it's real, practical application.

At its core, it crunches numbers, in limited memory space. So this can provide some 'performance enhancements' possibly for running some kinds of algorithms. It means you can also write those in C/C++, or port them. Autodesk does this for some online viewers. This is actually a surprisingly narrow area of application and it still comes with a lot of complexity.

WA is a black box with no access to anything and how useful really is that?

Most of an app is drawing 'stuff' on the screen, storage, networking, user event management, fonts, image, videos - that's literally what apps are. The notion of adding 'black box for calculating stuff more quickly' is a major afterthought.

At the end of the day, JS keeps improving quite a lot and does pretty well, it might make more sense to have a variation of this that can be even more optimized than building something ground up.

WASI - the standard WA interface is a neat project, but I feel it may come along with some serious security headaches. Once you 'break out of the black box' ... well ... it's no longer a 'black box'.

WA will be a perennially interesting technology and maybe the best example of something that looks obviously useful but in reality isn't really. WA actually serves as a really great Product Manager's instructional example to articulate 'what things actually create value and why'.

It will be interesting to see how far we get with WASI.

I think you're underestimating WASI. Projects like cloudABI, where an existing app is compiled against a libc with strong sandboxing, really cool things happen.
Thanks but the same thing was said about WASM and ASM.JS.

For 5 years we've been hearing about how great they are, except nobody is really using them.

So now, it's 'the next thing' that will make it great? Except that next thing isn't there, not agreed upon or implemented, we don't know so many things about it?

Like I say, this is textbook example of tech-hype for things probably not as valuable as they appear.

If (huge if) WASI were 'great, functional, widespread, smoothly integrated' - I do agree there's more potential. But that this will really happen is questionable, and that even if it does happen, it will be valuable, is questionable.

I want to believe... I always thought WebAssembly had a lot of potential, however, in practice it doesn't seem to have turned out that way.

I remember the first Unity demos appearing on these orange pages at least 4 or 5 years ago, and promptly blowing me away. But, after an eternity in JavaScript years, I still dont know what the killer app is, technically or business wise. (Side note - I encourage people to prove me wrong, in fact I'd love to be! Thats whats so engaging about discussions here. I'd love to see examples of what WebAssembly makes possible that wouldn't exist without it.)

An example I can give:

I use WebAssembly for a few cross-platform plugins. E.g. An AR 3D rendering engine in C++ and OpenGL. With very little effort it is working in browser. No bespoke code, same business logic, etc. Saved a lot of time vs creating a new renderer for our web app.

For me it allows a suite of curated plugins which work cross-platform. The web experience is nearly just as nice as the native mobile and desktop experience. This in turn increases market growth as more of my clients prefer web vs downloading an app (which is a large blocker for my users). I also enjoy the code reuse, maintainability, etc, :)

Another:

This year Max Factor (via Holition Beauty tech) won a Webby award for in-browser AI and AR. This was used to scan a users face, analyse their features, advise them on what make up, etc, would suit them, after which the user can try it on. This would have been impossible without WebAssembly.

This tech is also used by another makeup brands beauty advisors (via WebRTC) to call a customer and in real-time advise them on their make up look, etc.

Is this tech necessary? Probably not, but it is a lot nicer than having to go to a store. Especially when we are all in lockdown :)

1) https://www.holitionbeauty.com/

2) https://winners.webbyawards.com/?_ga=2.215422039.1334936414....

3) https://www.maxfactor.com/vmua/

I build a slower version of something with the same idea 13-14 years ago in Flash for http://www.makeoversolutions.com which most of these makeup companies licensed back then.

I moved on from that a decade ago but it was a neat project at the time.

But I deployed my first integration of WASM about a month ago for PaperlessPost.com. It is a custom h264 video decoder that renders into a canvas that manages timing relative to other graphics layers over this video. This code works around a series of bugs we've found with the built in video player. It went smoothly enough that we are looking into a few other hot spots in our code that could also be improved with WASM.

One avenue for WASM might be simply polyfilling the features that are not consistently implemented across browsers.

I feel like I am looking in a mirror!

Ten years ago I did the same but in Java and JOGL (before Apple banned OpenGL graphics within Java Applets embedded within a webpage). Was used for AR Watch try on within https://www.watchwarehouse.com and Ebay. The pain of Flash and Applets still wake me up at night.

I'm also building something very similar but with the ability for custom codecs (https://www.v-nova.com/ is very good). Probably the same issues too! Could I know more about your solution?

This is really great work and exactly the kind of response I was hoping for - thank you. I wonder why tech like this is not being more widely used, for example on Amazon product pages. Especially with the well known reluctance as you mentioned of people downloading apps.
Thanks, much appreciated!

I think WebAssembly is more used than it appears, just difficult to see/tell.

A few years ago I actually tried integrating AR via WebAssembly with Amazon. We couldn't get the approval due to poor performance on Amazon fire devices (which have low end hardware). It is a shame but it is what it is.

What is disappointing/annoying is - as a CTO - it is near impossible to hire someone with WebAssembly skills. It requires an extra curious Engineer with a passion for native and web. Training is always important for a team but when going down the WebAssembly route you need to extra focused and invest more than what a typical Engineer would be allocated (E.g. Increase training from 1 day a week to 2-3). I suppose this may put people off?

> I'd love to see examples of what WebAssembly makes possible that wouldn't exist without it.

I've been playing with WebAssembly lately and the moment where it clicked for me how powerful it was was building an in-browser crossword filler (https://crossword.paulbutler.org/). I didn't write a JS version for comparison, but a lot of the speed I got out of it was from doing zero memory allocation during the backtracking process. No matter how good JS optimization gets, that sort of control is out of the question.

I also think being able to target the browser from something other than JS is a big win. 4-5 years is a long time for JS, but not a long time for language tooling; I feel like we're just getting started here.

Great work.. This is amazing! Thanks for sharing
I can tell you about a WebAssembly killer app for a small niche. lichess uses WebAssembly to run a state-of-the-art chess engine inside your browser to help you analyze games [1]. Anyone who wants to know what a super-human chess player thinks of their game can fire it up on their desktop, laptop, or even phone (not highly recommended, it's rough on your battery life).

Obviously very serious chess players will still want to install a database and engine(s) on their own computer, but for casual players who just occasionally want to check what they should have done on move eleven to avoid losing their knight it's a game changer.

[1] https://lichess.org/analysis

I think chess.com has something similar too, but not sure if it's powered by wasm.

If it's not, I'd be interested to see a speed and feature comparison between the two.

I think there might be killer apps that companies aren't publicizing, because it's part of their competitive advantage.

Example of WASM being used in a major product:

https://www.figma.com/blog/webassembly-cut-figmas-load-time-...

You can infer from this that it's making them 3x faster than anything a competitor can make, and probably inspired a lot of those 'Why is Figma so much more awesome than any comparable tool?' comments I remember reading on Twitter months back.

Agreed - Figma is a very good example. I stand corrected.
I read that a few days ago and just realized why Figma runs better than Miro/RealTimeBoard. I wish the Miro team is also looking to port to WASM/boost performance. I don't think it's easy though; Figma's effort started in 2017.
If you’re looking for a real world example of Webassembly being used in production at a large scale for performance gains, check out Figma. Their editor is all wasm based, and is really their secret sauce.
Thank you! I just checked them out, and I stand corrected. Really an excellent design tool and very responsive. I see now that for certain applications WASM is indeed the right tool for the job.
Speedy client-side coordinate conversion in geospatial apps, thus avoiding the round-trip to the server.
(comment deleted)
Wasm was not designed to be a hardware accelerated ISA. It was designed as an IL/bytecode target like JVM and .NET.

Even if it were, there is an extremely high bar to meet for actual new ISAs/cores. There is no chance for Wasm to compete with RISC-V, Arm or x86.

> It's an ISA that looks set to be adopted in a pretty wide range of applications, web browsers, sandboxed and cross platform applications, embedded (into other programs) scripting, cryptocurrencies,

Imagine if the crowd didn't fall for the HODL hypers and called these things cryptolotteries or something like that -- they are a betting game after all -- how ridiculous would it look to include them in every discussion like this.

What are you adding to the discussion? This is a technical forum, the least you could do is comment on the use of Web Assembly in Ethereum or maybe anything of substance. There's a bunch of technically interesting topics to bring up but somehow I doubt you know anything about them.
I speak up against cryptocurrency because it's a cancer. It's a hype adding to climate change without any real world use case whatsoever.
Have you looked deeper than just hodl memes and Bitcoin? Ethereum is a highly technical project that doesn't really care about money and lots of people here on Hacker News find interesting topics regarding it. Web Assembly will be the base programming platform for example, which is one of the reasons he included it.

If you read about the Baseline protocol (EY, Microsoft, SAP etc building neutral interconnections between consortiums), ENS/IPFS, or digital identity systems you might find something that interests you and is more relevant than the mindless hodl ancaps. It's actually a pretty exciting field to be in as a computer scientist with almost no end of boundary pushing experiments and cryptographic primitives to play with and build on top of.

Most new cryptocurrencies are moving away from PoW because a.) it's a massive waste of electricity and b.) it's not actually secure anyway, because we've seen a consolidation of mining power with major ASIC customers who have cheap power costs (notably in China). Ethereum's moving to it in 2020 or 2021, and EOS, Stellar, Tezos, Cardano, etc. are already PoS or derivatives.
Have the security issues with PoS been worked out yet?
Thank you for your input, but thus is not TechCrunch. We understand the problems with PoW, and we also know that a lot of interesting research is being done on top of Ethereum. For your reference, Ethereum is moving away from PoW.
(comment deleted)
I don't like to see wasm replacing native for stuff like development tooling, and desktop apps.

JITs may approach native performance in theory - but the battery consumption and memory consumption are not very good. ("Better than JS" is a low bar).

As hardware becomes stronger, I would like to do more with it, and when it comes to portable devices, I want more battery life. Nothing justifies compiling same code again and again, or downloading pages again and again like "web apps" shit.

I understand where developer productivity argument comes from. But we can have both efficiency and developer productivity - it is a problem with webshit-grade stacks that are used today that you can't have both.

I personally think flutter model is future. You need not strive for "build once - run anywhere". You can write once and build anywhere a cross platform HLL and that's better.

As for sandboxing, maybe it is that your OS sucks (I say this as linux user); Android / iOS have sandboxing with native code. You shouldn't need to waste energy and RAM for security. IMO enforcing W^X along with permission based sandboxing is better than webassembly bullshit that is pushed.

And webassembly itself seems to be a rudimentary project with over ambitious goals. JS bridge being so slow and not having GC support ("To be designed" state) make it unusable for many purpose. Outside HN echo chamber, not many web people want to write in rust or even C++.

> I don't like to see wasm replacing native for stuff like development tooling, and desktop apps.

Wasm is like the JVM or CLR in that regard. It's not the future - it's the past.

Yes. Even if there were a number of dominant architectures, install-time compilation would be better than run-time compilation for frequently used software. The RAM and Energy overhead isn't just worth it.
When dealing with Health or Military systems installing or updating a native application could result in months of delays (e.g. quarterly OS image update cycles). However running within Chrome, Firefox, and other typical software preinstalled, this becomes <days for implementation.

Without WebAssembly I wouldn't have been able to ship 2 products pro-bono within intensive care units and operating theatres directly helping with COVID.

I understand your dislike towards WebAssembly (albeit Web stack trends / flavour of the month esque development). I am not the largest fan of modern web development. Nevertheless love for WebAssembly is not due to developer productivity. After shipping 20+ WebAssembly products (alongside native counterparts) I am yet to meet an Engineer who enjoyed the WebAssembly/Emscripten/Blazor pipeline. However what WebAssembly has achieved for me is: Do people use your app? and within certain markets it allowed me to grow, do good, and say yes. This is the only real reason why someone should go down this route.

Aaah so we have come full circle from Java applets.
1. Fishtown Analytics - makes dbt, a sql data modeling tool that has really caught on in the analytics world over the last year or two

2. Bubble - no-code!

3. Stripe - already big but has the potential to be the next Google/FB/MSFT etc

If you have time this long weekend, the team behind Autocode (Standard Library) [0] is looking for feedback. We launched a couple months ago here on HN and have been eating up community responses. :)

tl;dr is: we provide the entire development stack for API integration on rails. If you've ever wanted to ship some quick webhook or API integration logic but have found Zapier too limiting but spinning up an entire dev stack overkill, Autocode fits cleanly in between both. In-browser IDE, API autocomplete, a drag-and-drop UI that generates code for you, version control, revision history, cloud hosting for your APIs. Takes a minute or two to ship a webhook from scratch.

Disclaimer: Am founder. Am also happy to hear questions, thoughts, anything!

[0] https://stdlib.com/

I've been using Autocode on & off for a while. Thanks for the reminder to recheck it.
No problem! We just released major updates this week. :)
GPGPU. GPU performance is still increasing along Moore's Law, single-core performance has plateaued. The implication is that at some point, the differential will become so great that we'll be stupid to continue running anything other than simple housekeeping tasks on the CPU. There's a lot of capital investment that'd need to happen for that transition - we basically need to throw out much of what we've learned about algorithm design over the past 50 years and learn new parallel algorithms - but that's part of what makes it exciting.
Sounds interesting, what language is best positioned for GPGPU's?
C++ through CUDA is by far the most popular option. There is some support in other languages but the support and ecosystem is far from what exists for CUDA and c++.
Python via RAPIDS.ai . There first bc most data science community for prod + scale is in it. It feels like the early days Hadoop and Spark.

IMO golang and JS are both better technical fits (go for parallel concurrency and js for concurrency/V8/typed arrays/wasm), and we got close via Apache arrow libs, but will be a year or two more for them as a core supporter is needed and we had to stop the JS side after we wrote arrow. Python side is exploding so now just a matter of time.

https://luna-lang.org - a dual-representation (visual & textual) programming language

RISC-V

Zig programming language

Nim programming language

(also some stuff mentioned by others, like WASM, Rust, Nix/NixOS)

> luna-lang

Whoa... had to do a double take there.

Great to see luna seems to be alive yet again - now "enso lang" per github [i]. A git commit just days ago... so here's hoping! It is such a great concept.

[i] https://github.com/luna/ide

(comment deleted)
zksnarks https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/

Essentially let’s you verify computation is accurate without doing the computation yourself, and even treating the computation as a black box so you don’t know what is computed. Many applications in privacy, but also for outsourced computation.

One important weakness of zkSnarks is that it requires a trusted setup, for example [1]. A new alternative is called zk-STARK [2], which doesn't require the trusted setup, and is post-quantum secure. However, it significantly increases the size of the proof (around ~50KB). In general, hash-based post-quantum algorithms require bigger size and it would be interesting to watch the progress made in this regard.

[1]https://filecoin.io/blog/participate-in-our-trusted-setup-ce...

[2] https://eprint.iacr.org/2018/046.pdf

Deno.land
Have you given it a try yet? I LOVE TypeScript and think the concept is really cool, but the compatibility story for NPM packages needs to be fleshed out somehow. Otherwise I fear it will fall into the same fate as Python 2 to 3.
NVME over Fabric.

Only started to become available last year in AWS' more expensive instance types. But hoping it will become more widespread.

Benchmarks with Spark result in real world performance improvements of 2-3x and SSDs will be much faster with PCIe4.0.

The m5 instance family was announced in 2017, IIRC.
Sure but the Elastic Fabric Adapter is only on the top tier of instance types.

Hoping it trickles down for us normal people.

Oh, I thought you were talking about how EBS disks are presented as NVMe even though they run over the EC2 network fabric.
Roam Research https://roamresearch.com/

A tool for networked thought that has been an effective "Second Brain" for me.

I'm writing way more than ever through daily notes and the bi-directly linking of notes enables me to build smarter connections between notes and structure my thoughts in a way that helps me take more action and build stronger ideas over time.

The hype on Twitter can get a bit annoying - but Roam is seriously awesome.
Good shout - that's been on my watch list for a while now. Thanks for the reminder!
I've had good experiences with personal Wikis before, but have fallen back to plain notes. I think notetaking by itself is immensely powerful and underappreciated in general (wish I had started earlier), and all that's necessary is building a habit out of it. Maybe this can give it a little extra spice (hopefully not as cumbersome as a full blown personal website).
I can recommend this video [1] from the author of How to Take Smart Notes. The whole Zettelkasten is a great idea, and he explained it succinctly in that talk. He also compares the status quo methods of note taking with the Zettelkasten, which for me was very eye-opening

[1]: https://vimeo.com/275530205

How's this different from hypertext? (I genuinely don't know)
(comment deleted)
Not sure about the specific features of hypertext, but in general: bi-directional linking, block references (Roam is an outliner like Dynalist or Workflowy), block transclusion, graph view of your page network...

Of course, you could throw a bunch of scripts together to approximate these features — but you don’t have to, since Roam (and Obsidian and others) exists.

This is just tiddlywiki, no?
Considering that Tiddlywiki has around 4 plugins that are supposed to make it more like Roam, I’d say that probably Roam isn’t just like TiddlyWiki.

Now, I’m not a TW user, but I think things like block references, outliner features, and bi-directional linking aren’t there by default.

I’d recommend you to check out Obsidian [1] from the makers of Dynalist. It’s also a tool made mainly for Zettelkasten, but it is offline and local by default. It’s not an outliner like Roam, but rather a free-form text editor.

I feel that Obsidian’s values align more closely with the values of a general HN reader. For example, the files (Zettels?) are plain markdown files, so the portability is much higher than what is the case with Roam (which is online only, and your data is somewhere in a database in a proprietary format).

Another example would be the support for plugins, which are first-class citizens (although the API is yet undocumented) — many of the core features are implemented as plugins and can be turned off.

And there’s a Discord channel where you can discuss with the devs, which are very responsive — so much so that I’m surprised they can rollout new features so quickly (at least one feature update per week, from my limited experience with Obsidian).

(Not affiliated in any way, just a happy user)

[1]: https://obsidian.md/

holochain.org & codelingo.io
All the new products around WireGuard. I'm so tired of running VPNs. NAT traversal with protocols like STUN, TURN and ICE are going to allow point-to-point networks for all the clients.

https://tailscale.com/

https://portal.cloud/app/subspace

Zerotier.com did this years ago and it works great.
I'm kinda sad for you - I've been using and advocating zerotier for a while (it's amazing and indispensable)...but in my circles the word 'wireguard' has got people excited, which (anecdotally) is benefitting tailscale and generating more hype around them than zerotier ever got. Hopefully a rising tide will lift all ships and you find a way to capitalise on it :)

(I prefer device-based zerotier-style access rather than login-based tailscale-style so that does sway me to zerotier...but I have to admit tailscale looks more polished, e.g. the screenshot of seeing other devices on the network. I get it's not a fundamental feature! But I can't help but appreciate it)

We are doing fine and V2 is coming soon with a ton of improvements. I just have to occasionally point out our existence again.

The pulldown showing other devices on a network does look spiffy but that wont scale. We have users with thousands of devices on a virtual LAN and the protocol will scale far larger. Not only will that not fit in a menu but any system that relies on a master list will fall down. That list and refreshing it will get huge.

We are doing the tech first, spiff second.

Some feedback. I think I stumbled upon Zerotier a while back and didn't really get what it is. IIRC it felt like something that is only useful for big companies, exactly what I felt today.

I think the website could do a better job showcasing how it's used.

Hope my feedback is helpful and wish all the best!

Our web site kind of sucks. We're going to be working with a design/marketing firm to re-do it soon.

It's kind of hard to explain ZeroTier sometimes. Its so simple (to the user) people have a hard time getting it.

"You just make a network and connect stuff." Huh?

People have been conditioned to think networking is hard because 90% of networking software is crap.

Thanks for ZeroTier! Managed to convert a few friends from using Hamachi for LAN games, which was always a pain to setup previously. It simply just works for my needs.
ooh! so it could replace Hamachi. I think this is one use case (without using the product name) that can be listed in a uses-cases page. Hope other Zerotier users would chime in with more use cases.
ZeroTier emulates a L2 Ethernet switch over any network, so anything you can do with Ethernet basically.

You make networks, add stuff to them, and any protocol you want just works: games, ssh, sftp, http, drive mounts (though they can be slow over the Internet), video chat, VoIP, even stuff like BGP or old protocols like IPX work.

UI issues for sure, but the product is great. I have computers in 3 different organizations and the ability to tie them into a coherent virtual site so they can all talk to each other is amazing. I no longer have to worry about having forgotten some file on my home network that I needed at the university, for instance. Looking forward to V2!
Really happy to hear it's all going well, and I've been excited about V2 since I read the blog post about it - your product is awesome and solves a genuine need, and I really want you to succeed.
Combining statistics-based AI with GOFAI to create systems that can both recognize objects in a sea of data and reason about what they saw.

The MiSTer FPGA-based hardware platform.

RISC-V is gonna change everything. Yeah, RISC-V is good.

How do you combine statistics-based AI with GOFAI?
GOFAI basically consists of inference and reasoning techniques, some of which cease to work well when you scale them up too much (computational complexity) or when there is uncertainty involved. There have been some efforts to scale reasoning towards greater scale (description logics) as well as problems with uncertainty (ILP, Markov Logic), but they've been de-emphasized or forgotten in recent times because you get a lot of mileage out of end-to-end deep learning - where essentially hidden state within the network deals with the uncertainty on its own, and where the additional compute overhead + rule engineering effort doesn't seem warranted.
Soft-EEGs

inference AI (signed up for the Google Alpha, but also looking at Elastic)

Sleep research as a generality