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?
[3]https://www.forestadmin.com/
Starship, $50 per kg absolutely changes a lot of assumptions and has definite 2nd order effects around transport, satellite orchestration, communication monopolies, network latency. A big "holy st" moment I had lately was pack a starship with autonomous drones, combine it with the Adama Maneuver from Battlestar Galactica. If you can drop a squadron, anywhere in the world for X $M within 2 hours, why would the US military ever need super-carriers any more? Or Island carrier theory if you stretch out that logic. Which then why would the US need as close relationship regional allies to contain neighboring countries? How does that affect the US-Israeli relationship with the middle east? Or the US-British with Europe one? Or the US-Japanese one with China?
Pure fusion weapons. It's a true pandora's box for nuclear proliferation if nuclear weapons no longer need enrichment facilities.
Atom Interferometry. Potentially, GPS level location tracking without the satellite / radio component.
Is this actually a thing? My understanding is that the fusion stage of a nuclear weapon is purely to generate neutrons to trigger the 3rd, fission based stage. The destructive power of the bomb comes from the fission reactions.
But e.g. the US Castle Bravo test or the soviet Tsar Bomba tests were almost pure fusion. For the Tsar Bomba they left out the 3rd fission stage. It was the cleanest bomb ever detonated in terms of radiation per yield.
Functional programming language where the canonical representation is a content-addressed directed acyclic graph.
Solves all kinds of problems from dependencies to deployment and moving code between nodes in a principled way.
The language itself is inspired by haskell, but has a principled and clean solution to the coloured function problem of async programming, and a simpler way to compose effects than monad stacks.
I'm not sure where the JS standardization process is at with import integrity checks for non-script-tag imports, but Deno has lock files and integrity checking built in.[3]
I like the idea of a language that's built with content addressing from the ground up. I dream of being able to import IPFS urls (or something like that) directly within JS. Although that wouldn't be as good as a language that forced usage of content-addressed imports, since that way you don't have to scour the code for any sneaky dynamic imports (especially since in JavaScript there's `eval` and the like, and they can be obscured).
I guess this is partially solved by Deno's ability to limit the network requests to specific domains like:
deno run foo.js --allow-net=deno.land,foo.com
I'll definitely be keeping an eye on this project - thanks for sharing![3] https://deno.land/manual/linking_to_external_code/integrity_...
Having a DS background, I love what SQL-orchestration tool dbt (and peers) have enabled: data consumers to rapidly create our own safe data pipelines. There's easily a 10x productivity improvement for most of my transformation pipelines vs. when I write them in Python or PySpark.
But batch ML and SQL are not that friendly (even BigQuery ML is too limiting). I end up butchering dbt's value (simplicity and iteration speed), splitting the DAG into pieces and orchestrating them with Airflow so that I can wedge in other non-dbt parts (like feature engineering, inference, logging, detecting stale models, ...). This isn't what the future looks like.
I've tried switching to Databricks, but do not see this as the path forward for unioning the warehouse + batch ML.
Hopefully Snowpark is a step forward :)
-------------------
Separately, https://materialize.com/ is something I'm paying attention to! Being able to implement all of my SQL-based pipelines as materialized views would be immensely valuable. They recently raised capital and they could become huge.
Remember that "data is a team sport". Together, we try and make better decisions (in manual or automated ways). A DE can produce great data but it's only useful if it helps the DA/DS. There's a lot of friction there.
Most of that friction disappears with SQL-based orchestration tools (I mean specifically dbt here, but there are others). Suddenly the analyst can create the data they need! With minimal guidance from a DE.
That can be with Spark SQL (+ DeltaLake / Iceberg), or some warehouse. That's not the issue.
The issue is around keeping orchestration simple when you're not just doing simple stuff anymore. Keeping that DAG logical, clear, and smooth is difficult once you include non-SQL items.
This isn't solved by Spark UDFs unfortunately :)
https://temporal.io/ - is the new kid on the block of state-dependent service-orchestrated application development platforms.
https://workos.com/ - is building enterprise-readiness as a service, enabling new companies to start selling to enterprise customers with just a few lines of code.
https://www.around.co/ - provides an AI-based camera framing designed for high-impact video calls. It helps users take video meetings less intrusive and less clunky.
Age of Empires IV (https://www.ageofempires.com/games/age-of-empires-iv/) - The next chapter in the Age of Empires series that will take us back to the Middle Ages
I find it funny that it's now considered a promising alternative approach; conceptually this is very similar to AJAX, which was the standard way to make pages dynamic ten years ago.
Check out Paradox Interactive's games, they have one for most interesting time periods and are pretty entertaining.
1. https://www.youtube.com/watch?v=QFlVNtGJVDU
2. https://www.reddit.com/r/aoe4/comments/hf1da1/1st_attempt_at...
Zinc Gluconate 15mg + Selenium + Quercetin 200mg (zinc ionosphere): For years I ignored the advice of knowledgeofhealth.com when it came to zinc and quercetin. I finally used it this year and it got rid of my cold in less than 48 hours with no side-effects. This has never happened to me before. Zinc-based supplements get rave reviews on Amazon and they seem legit. Google: selenium virus mutations. (I also took a new Vitamin C formula, Formula 216).
https://aureon.ca/ - Safire Project. Some claim it's a fraud, but I'm hoping something good will come out of it. They are using a different model of stars/suns to generate energy and other benefits. There's always molten salt reactors in case this one doesn't pan out.
I do feel that it'll take another year or two for all of it to 'mature', though.
For one, I'm not a big fan of how it still relies on 'old-fashioned' templating, but I've been looking into Surface [1] as a solution to that (it uses a more React-like component-based approach).
I also find that there's often confusion about best practices. About what goes where exactly, asking myself whether to keep state in the top-level LiveView is best, or perhaps too much based on the old client-side React/Redux paradigm and less necessary now that fetching data is a server-side-only DB call away (and using PubSub for any inter-LiveView communication).
But even with some of these 'issues', it's probably the most fun I've had building interactive web apps!
ps: The BEAM is what makes LiveView so great, do not expect the same in the other environments.
I gave up meat at 17 on the basis of no reason whatsoever, I was just a contrary teen who liked giving things up.
Down the line a few years I find so many compelling reasons to not eat meat. Each individually may be argued out of the room but collectively it's pretty compelling.
Ethically: there's no arguing meat eating is better. None. However well you treat animals you're still ultimately going to kill them.
Environmentally: a hundred reasons to choose a plant based diet, all of which have been cycled here a million times so won't go back through it but we all know it's true.
Health: again, see pretty much all the research ever. Eating a plant based diet is so much better for weight, health, BMI, etc etc etc
Taste: this is the kicker imo. If you'd asked me 15 years ago when the vegetarian alternative was a crappy pasta with tomato sauce, I'd have been more tempted to chomp my way into a steak. Nowadays? There is SO much good vegetarian food. Loads of choice, huge range of flavours and in many places it's the vegetarian food that gets the chef's attention, rather than falling back on the Default Meat.
I totally support anyone making whatever decision they like about eating meat, but I'm completely unable to agree that it's a good idea.
Cultured meat in this context is a difficult one to parse. For people like me there's literally no point. I'm just not interested in eating steak, whether it's killed or grown. For your hardcore fleshy, a bloody slab of meat is all that's going to satiate them, so it misses that market too. I guess there's maybe a middle ground of people who could be convinced to stop eating killed meat if they see an alternative?
It'll be interesting to see where this one goes and how it is marketed...
> Ethically: there's no arguing meat eating is better. None. However well you treat animals you're still ultimately going to kill them.
Ultimately every animal is going to die. If the moral hangup for you is the certainty of death, then wouldn't you consider any form of reproduction immoral? 'However good and rewarding their life may be, children are still going to die eventually, ergo noone should reproduce'.
Unless it's the act of killing with the intention to consume that's the issue?
It took me 5 minutes of Googling to find articles that refute this from all kinds of credible sources.
Going vegetarian might be a step up from the average Americans diet, but I think you'd be hard pressed to find any research that demonstrates plant-based diets are any better than a balanced diet that includes meat protein.
I think you're really painting people who don't follow your thinking with a pretty aggressively negative stereotype here.
I love a good steak. The fact that it came from a cow is irrelevant to me - I like it for taste/texture/etc. If you can give me the exact same product from a lab, I'll 100% buy it (especially if it's cheaper). This is how most people are (and not just about meat) - they care about the end product they're consuming, not its origins or how it got to them (otherwise, y'know, we'd be thinking about where our iPhones came from and whatnot). Give them the identical product they have now that's better along some line that matters to them (like cost) and they'll happily switch.
Ethical: cruelty is bad, so responsible production of meat is preferred but there’s no reason why killing animal for food should be bad, such that same argument can’t be applied to veggie production.
Environmental: grass fed meat is very much preferred to monoculturing the crap out of our planet. Animas are part of life cycle of the environment.
Health: crappy grains have done way more health damage than crappy meats. Also focusing on meat exclusively, skipping organs is unhealthy. Saturated fats aren’t as bad as you’re told (only in combination with sugars). Red meat doesn’t cause cancer (smoked foods do). Lots of myths around nutrition.
Taste: highly subjective.
Most of the world does not have the culture of offering vegetarian/vegan meals. And if they did, living that lifestyle can be prohibitively expensive.
> Ethically: there's no arguing meat eating is better. None. However well you treat animals you're still ultimately going to kill them.
No, there are a lot of arguing about this. There is no ethical consensus on "killing animals" being the "wrong" thing. Hell there is not even consensus on whether an objective ethics is possible.
Organisms consume other organisms. This is part of the cycle of life. Declaring this objectively wrong without exceptions just because you feel bad for the poor animals is a weak argument at its best.
You can talk about the perils of the modern day animal farming which involves treating animals like vegetables and "growing" them in conditions indistinguishable from torture; but that doesn't have to mean "killing animals" is bad per se.
> Environmentally: a hundred reasons to choose a plant based diet, all of which have been cycled here a million times so won't go back through it but we all know it's true.
Yes, but there is research supporting that grain and vegetable farming has a lot of problems as well. Farming in scale in general is a problematic thing. Some even go as far as to state that animal farming can be even less harmful environmentally, when done right. What I'm trying to say is that, this claim hasn't been proven yet. If you want to see counter arguments and relevant research, try following a couple of carnivore diet advocates on social media. I don't have any links to share off the top of my head at the moment and I'm sorry about it. But there is no real consensus here, not so easy.
> Health: again, see pretty much all the research ever. Eating a plant based diet is so much better for weight, health, BMI, etc etc etc
Yes, there are a lot past research about this. But as we can see today there are a lot of problems with those researches as well. A lot of them are being challenged today. Ketogenic and carnivore diets are on the rise and for good reason. USDA's food pyramid is reversed. Fat, eggs and animal protein are no longer the enemy according to many new researches. I suggest you to keep up with the new research as well.
> Taste: this is the kicker imo. If you'd asked me 15 years ago when the vegetarian alternative was a crappy pasta with tomato sauce, I'd have been more tempted to chomp my way into a steak. Nowadays? There is SO much good vegetarian food. Loads of choice, huge range of flavours and in many places it's the vegetarian food that gets the chef's attention, rather than falling back on the Default Meat.
Yes, this may be the kicker for you. For many, animal based foods are still irreplaceable. Not much point talking about this as it's fairly subjective.
On a more philosophical note, I think it is better to have lived and died than to not have ever existed. Given very few cattle and sheep would be born if it wasn’t for meat/dairy production then a case can be made that meat eating is the more ethical option. I do admit that this view is incompatible with my first opinion as there would be many more animals born if I adopted a vegetarian diet.
Would that not lead to a desire to create as many "lives" as possible? I don't think I've met many people optimising for that, although I won't rule it out.
Ethical vegetarians are vegetarians for primarily ethical reasons. For example, they may think meat-eating causes excessive suffering (I fall into this category). Most Western vegetarians are ethical vegetarians, but some people are vegetarian for medical or religious reasons.
Brightseed: uncovering the medicine that’s in our food. Uses AI to identify bioactive molecules found in common food crops that can regulate genetics associated with health. Imagine safe drugs that only take 24 months to get to market.
Atomo Coffee: Makes molecular without the coffee bean; made from sustainable agriculture side streams. Best coffee I’ve ever had.
Disclosure: These companies are in our portfolio so obviously on our watch list.
But to explain the product, the current homepage just needs to add "Plant-based" before "Coffee without beans? It's molecular!" above the "To the Lab" link. Otherwise you might wonder what "Coffee without beans" must be made of.
• Backblaze B2 https://www.backblaze.com/b2/cloud-storage.html: super-cheap and straightforward data management. I made a Node.js library around it: https://www.npmjs.com/package/backblaze
• Bunny CDN https://bunnycdn.com/: it looks like a great indie CDN solution. The normal CDN is dead cheap, and the very wide CDN has great coverage. Self reported metrics are amazing as well. The company is based in EU, which is a plus on my book.
• Gandi https://www.gandi.net/: they have a lot of types of domains so you can search across many at a glance. They do show some unrelated panels and push for their own services but less than other registrars. Based in France (EU).
1006 points|iameoghan|7 months ago|669 comments
https://app.forestadmin.com/new-project redirects (via JS, if https is detected) to: http://app.forestadmin.com/new-project
HTTP is used when you create a localhost project. On a local server, API requests transit directly from the browser to the local server without going through an external network.
On a remote server, HTTPs is enforced to avoid security issues.
Research on epigenetic reprogramming of existing cells to restore them to youthful states, including the ability to regenerate.
- WASM accessing DOM directly (and the subsequent explosion of front end frameworks completely bypassing JS)
I'm a simple person with mundane wants :)
Unfortunately for us, I think that most people come from the other camp, and want parts of their JavaScript to be more efficient, thus turning to WASM.
There are systems that work on mainframes, but the only realistic (in my opinion) option coming down the pike for the rest of us is from
(from https://genode.org/documentation/general-overview/index)
== Mastering complexity through application-specific trusted computing bases
> Because software complexity correlates with the likelihood for bugs, having security-sensitive functionality depending on high-complexity software is risky. The term trusted_computing_base (TCB) was coined to describe the amount of code that must not be compromised to uphold security. In addition to the code of the sensitive application, the TCB comprises each system component that has direct or indirect control over the execution of the application (affecting availability and integrity) or that can access the processed information (affecting confidentiality and integrity). On monolithic OSes, the TCB complexity can be regarded as a global system property because it is dominated by the complexity of the kernel and the privileged processes, which are essentially the same for each concurrently executed application. On Genode, the amount of security-critical code can largely differ for each application depending on the position of the application within Genode's process tree and the used services. To illustrate the difference, an email-signing application executed on Linux has to rely on a TCB complexity of millions of lines of code (LOC). Most of the code, however, does not provide functionality required to perform the actual cryptographic function of the signing application. Still, the credentials of the user are exposed to an overly complex TCB including the network stack, device drivers, and file systems. In contrast, Genode allows the cryptographic function to be executed with a specific TCB that consists only of components that are needed to perform the signing function. For the signing application, the TCB would contain the microkernel (20 KLOC), the Genode OS framework (10 KLOC), a minimally-complex GUI (2 KLOC), and the signing application (15 KLOC). These components stack up to a complexity of less than 50,000 LOC.
> Genode tailors the trusted computing base for each application individually. The figure on the right illustrates the TCB of the yellow marked process. Naturally, it contains the hierarchy of parents and those processes that provide services used by the application (the left component at the third level).
Qubes-OS is a tool for letting you run your digital life in a series of boxes which are separate from each other. So, if one gets infected, the others aren't. It is similar to the trend of using Virtual Machines to separate areas of concern to try to limit the damage of a rogue process.
Genode takes a different approach entirely. Instead of dividing your computer into a few boxes, each of which is subject to any rogue process, it gives each and every process NO access to anything else, except for those things explicitly provided.
The analogy I like to use is that of a wallet.
The Windows, MacOS, Unix, Linux, etc.. approach is to hand over the users wallet to any program that is running, and hope the program doesn't misuse it. Anything in the wallet (your system) is at risk.
The Qubes-OS approach is to do the above, but to have the ability to have more than one wallet, to divide up the risk a tiny bit.
The Genode approach is much like a human uses a wallet, you decide what resources are required, and ONLY those resources are at risk.
The ease of use is that it is effectively impossible to limit the resources a process can access in other systems, whereas in Genode, it is almost drag and drop.
I would love a large screen version of it with an array of cameras that would allow people to communicate in some sort of futuristic FaceTime experience.
Gonna be a long time for legacy stuff to get ported, but some places are still running mainframes.
Where is my electric driverless car? Space travel or actual tech that prevents polarization and prevent narrow targeting of people that feel drawn to conspiracy theory rabbit holes? We should be aiming much higher.
2. RISC-V - It may make it easier for guys to get into chip design.
3. Scilla Lang - The clear logic of formal Mathematics applied to finance.
[1]: https://flutter.dev
[2]: https://riscv.org/
I also think we'll see much more fun ARM based SBC going forward. The raspberry pi 4 was already powerful enough to be useful & it's only going to get better.
https://flower.dev/ - A Friendly Federated Learning Framework in Python
https://jina.ai/ - Neural search engine
Having a real-life videogame HUD with a blue marker showing my next destination sounds fantastic.
I hope it stays an assistive niche technology for people with disabilities and gamers. People wearing this in a pub or on the streets hopefully continue to get ridiculed (e.g. they were called "glassholes" for good reason).
When they say that if a person loses one of their senses then the other senses become heightened, it's interesting to note that this does the opposite by attempting to heighten (augment) several senses. The net benefit is not just poor but negative since it just is one more way to overload our cognitive abilities. In other words who cares about the additional things (data points) we see when it makes us miss others (since it's still a distortion)
Personally I'm not interested. I have no need to be connected all the time.
- https://github.com/TimelyDataflow/differential-dataflow/ - https://materialize.com/
[Scripting Language] Infrastructure as code tools
Genetic Programming
Functional Programming
Neural Networks / Differentiable Programming
Cognitive Architecture
Reinforcement Learning
Causal Statistics
Array databases
Bitemporal data
PostgreSQL schema migration tools
Functional GraphQL directives
CRDT/ORDT frameworks
WASI/WASM as a replacement for Docker
I love their Prisma 2 product.
And it lives up to the hype, it is indeed a next generation ORM. Very useful when you're rushing to iterate.
[1] https://www.prisma.io/blog/prisma-migrate-preview-b5eno5g08d...
It would be great to hear another perspective.
It’s not a difficult task, but when discussing viability with the APIs team, the general consensus was that you don’t want your API coupled to your data. Most of the time, you don’t want to expose everything.
Of course, you can start describing what to omit, but now you’re just writing an API design by omission.
Building good APIs is hard, so you want to build the right abstraction - which is not always the easiest one.
When you're operating a CNC machine, as an operator, do you need mess around with internal wiring, schematic, motor controllers? No. You just need a control panel, with DRO and a bunch of buttons, a joystick for manual override, e-stop and a keypad. You're not dealing with the exposed wiring and internals of the machine. Nor do you care (except if you're a hacker, more on this below).
APIs are all things the user needs to do and we allow them specific endpoints to do those things. A lot of modern GraphQL methods allow you to become a "hacker" and get access to what you want. But, after you're done hacking, you want a proper control panel with steel panels and a version number. You, as a user, are guaranteed that interface and you're going to build your world around it. Check out Shopify, Stripe or Dropbox APIs. See what they allow you to do and what they don't.
Here are some reasons why we want an API:
- Decoupling internal resources from the user (user can still be an internal service). We want to be able to change the database, swap it with anything else we want, completely change the schema, whatever... without affecting the user.
- We might require processing/handling of the data, sometimes with help from other microservices before serving.
- We might want to cache read access, although I am sure this is possible with these automation tools.
- We want stability over expediency (although, this is ok to forego initially).
- We want a singular point of entry, aka entrypoint and be able to control it.
- We might want to asychorniously process the request. "Hey, I got your request and I am processing, here is the processing ID" and respond with status code 202.
All these automation tools are great to get a product running quickly. Personally, I would just use straight SQL for prototyping. If you're working on UIs and don't have access to the server, you can just use https://postgrest.org/ and get an API running. However, after you're product has reached maturity, tighten up those endpoints.
The endpoint design is your control panel. Make it look tidy, checkout how others build this panel, engineer it well and your users will thank you.
2. Treatments that reverse aging in tissues and organisms.
Expect major breakthroughs in these areas in a decade or two with direct implications for human health and lifespan.
1) Remote controlled orgasmic neural implants
2) Bangfit
2. longevity research https://www.sens.org
But it would break the deadlock we have now in the USA so that's worth experimenting with.
One way to create a sandbox for finding edge cases would be to create a general petition site using voteflux, or convince change.org to implement it.
I think such a site would also help with adoption, because it will gradually introduce people to the idea, and for issues with large enough support politicians will have to follow petition results, even if they were not elected on flux platform.
Dynamicland
Graph processing hardware accelerators
Content addressable web
and there are already assembly companies in most major cities that will take your money and files and just make a thing happen. not clear how this is different enough to change anything.
getting it made just isn’t the hard part for anything interesting (and small).
An AVX-512 Skylake-X cloud compute instance costs $10 per CPU-core per month at Vultr (https://www.vultr.com/products/cloud-compute/), and you can do about 18 DenseNet121 inferences per CPU-core per second (in series, not batched) using tools like https://NN-512.com
As AVX-512 becomes better supported by Intel and AMD chips, it becomes more attractive as an alternative to expensive GPU instances for workloads with small amounts of inference mixed with other computation
Or is it the case that if you virtualised a GPU up into tiny pieces, the memory-to-flops ratio would be way off what's needed for inference? Or the virtualisation overhead would be too big?
Those are all genuine questions, just to be clear - this is not my area of expertise.
A GPU thread variable is just like a SIMD lane, and a GPU warp variable is just like a SIMD vector register
Nvidia's SIMD instructions are called PTX and they are similar to AVX-512
An AVX-512 core is like a general purpose CPU with a 512-bit GPU core built in
So paying for a single AVX-512 core is like paying for part of a GPU, plus the general purpose compute you need to keep the GPU supplied with work
If you could divide the GPU up, you would lose most of the parallelism, keep all of the communication latency, and still need the drivers etc.
Would a hypothetical virtualized GPU be competitive with an AVX-512 core in terms of price/performance? I don't know, I haven't done the comparison
FWIW, it looks similar to https://restya.com/core-jira-slack-alternative But, they promote it as Jira + Slack alternative (Disclosure: I'm on their private beta and for unknown reason they keep pushing their public release)
But I feel there is still something lacking and there is definitely scope for a lot of improvement to make these type of software more useful. Still love the direction in which this is headed and it feels more in-sync than keeping a folder full of text files.
Can you share a link to the source? I didn't see a link on obsidian.md
Also, the “daily notes” feature in Roam is really useful, it’s a small UI thing but it gives me a nudge to make a daily note when I do any thinking, rather than having to file it manually in Obsidian.
Obsidian has most of the core stuff that Roam does though.
I feel like react native is more prominent, but also it could be just the people I interact with.
I’m one of the founders, would love to know what you think!
You can get a lot done on the free tier (full disclosure: I'm one of the co-founders; please let me know if you have any questions)
VR in a showcase and training environment has always been a giant pain with cables and straps and whatnot. This is solution tries to solve that and removes the middleman who often awkwardly has to put the straps over your head.
I'm very curious to try it out for incremental consistency checking (i.e. does all the data satisfy a set of predicates)
It's clean, fast and easy to setup.
Many interesting innovations to make developing React/Node applications easier and faster.
Also I'd like to add meilisearch to the list.
An infrastructure built around firecracker VMs at scale is exactly what I'd like to be running on.
I learned about DeFi recently and am now curious to learn more about smart contracts, the underlying code and everything surrounding it.
V lang
https://hasura.io/ - Instant GraphQL with built-in authorization for your data
https://strapi.io/ - Open source Node.js Headless CMS
https://www.forestadmin.com/ - Forest Admin does all the heavy lifting of building the admin panel of your web application and provides an API-based framework to implement all your specific business processes.
https://www.appgyver.com/ - The world's first professional no-code platform, enabling you to build apps for all form factors, including mobile, desktop, browser, TV and others.
https://www.integromat.com/en - Integromat is the most advanced online automation platform
https://nodered.org/ - Low-code programming for event-driven applications
Interesting to me that I've never heard of any of these. Thanks for sharing.
Not a start up, but I think to watch. They seem to be getting high end technological products to consumers at a reasonable price.
For instance I'm hoping their 34" Mi Curved Gaming Monitor will break this high priced monitor market and get large monitors mainstream.