Hacker News new | past | comments | ask | show | jobs | submit | woile's comments login

Is there a maybe ebook friendly version? I'd love to read this in the kindle

The ebook has a Github repo, here:

https://github.com/mrkline/concurrency-primer

You can fork/clone/download the repo and then convert the ebook into Kindle or epub with Pandoc, like so (this is what I run):

pandoc -o concurrency-primer.epub concurrency-primer.tex

(I can share my converted file, but I don't know which file-sharing service is permitted on HN. If anyone can give me suggestions on this, I will be happy to upload it and share my epub file.)


Thanks, yes, I ended up doing the same!

Can’t you send PDFs to a Kindle? Been a decade since I used one, but I vaguely remember that being a thing.

Yes you can, but it's not the best format to read on, and a PDF with 2 columns is kind of even harder to read.

Pdfs are perfect on the kindle scribe, so long as they are not color. This is my primary use for the device. On smaller kindles, pdfs are probably a pain to read though.

Hey congrats for the launch!

How does it compare to timoni[0]?

[0]: https://github.com/stefanprodan/timoni


Timoni seems to be focused on managing applications by evaluating CUE modules stored in OCI containers, and produces OCI containers as artifacts. It looks like Holos is more of a configuration management solution that also uses CUE, but produces rendered Kubernetes manifests instead of OCI containers. Holos narrowly focuses on integrating different types of components and producing "hydrated" manifests while relying on other solutions (Argo/Flux) to apply/enforce the manifests.

This is a great summary, thank you.

Thanks! Holos and Timoni solve similar problems but at slightly different levels of the stack and with a different approach. Timoni is focused on managing applications by evaluating CUE stored in an OCI container. Stephan expressed his intention to have a controller apply the resulting manifests similar to Flux. Timoni defers to Flux to manage Helm charts in-cluster, Holos renders Helm charts to manifests much like ArgoCD does, using helm template within the rendering pipeline.

We take a slightly different approach in a few important ways.

1. Holos stops short of applying manifests to a cluster, leaving that responsibility to existing tools like ArgoCD, Flux, plain kubectl apply, or other tools. We're intentional about leaving space for other tools to operate after manifests are rendered before they're applied. For example, we pair nicely with Kargo for progressive rollouts. Kargo sits between Holos and the Kubernetes API and fits well with Holos because both tools are focused on the rendered manifest pattern.

2. Holos focus on the integration of multiple Components into an overall Platform. I capitalized them because they mean specific things in Holos, a Component is our way of wrapping existing Helm charts, Kustomize bases, and plain raw yaml files, in CUE to implement the rendering pipeline.

3. We're explicit about the rendering pipeline, our intent is that any tool that generates k8s config manifests could be wrapped up in a Generator in our pipeline. The output of that tool can then be fed into existing transformers like Kustomize.

I built the rendering pipeline this way because I often would take an upstream helm chart, mix in some ExternalSecret resources or what not, then pipe the output through Kustomize to tweak some things here and there. Holos is a generalization of that, it's been useful because I no longer need to write any YAML to work with Kustomize, it's all pure data in CUE to do the same thing.

Those are the major difference. I'd summarize them as holos focuses on the integration layer, integrating multiple things together. Kind of like an umbrella chart, but using well defined CUE as the method of integrating things together. The output of each tool is another main difference. Holos outputs fully rendered manifests to the local file system intended to be committed to a GitOps repo. Timoni acts as a controller, applying manifests to the cluster.


> For example, we pair nicely with Kargo for progressive rollouts

You've greatly piqued my interest (we're currently using Timoni). However, how does this integration work exactly? We've been wanting to try Kargo for awhile but it appears there's no support for passing off the YAML rendering to an external tool.


Holos writes fully rendered manifests to the local filesystem, a gitops repository. Kargo watches a container registry for new images, then uses the rendered manifests Holos produced as the input to the promotion process.

The specific integration point I explored last week was configuring Holos to write a Kustomize kustomization.yaml file along side each of the components that have promotable artifacts. This is essentially just a stub for Kargo to come along and edit with a promotion step.

For example the output of the Holos rendering process for our demo "Bank of Holos" front end is this directory:

https://github.com/holos-run/bank-of-holos/tree/v0.6.2/deplo...

Normally, ArgoCD would deploy this straight from Git, but we changed the Application resource we configure to instead look where Kargo suggests, which is a different branch. Aside, I'm not sure I like the multiple branches approach but I'm following Kargo's docs initially then will look at doing it again in the same branch but using different folders.

https://github.com/holos-run/bank-of-holos/blob/v0.6.2/deplo...

Note the targetRevision: stage/dev Kargo is responsible for this branch.

The Kargo promotion stages are configured by this manifest Holos renders:

https://github.com/holos-run/bank-of-holos/blob/v0.6.2/deplo...

Holos writes this file out from the CUE configuration when it renders the platform. The corresponding CUE configuration responsible for producing that rendered manifest is at:

https://github.com/holos-run/bank-of-holos/blob/v0.6.2/proje...

This is all a very detailed way of saying: Holos renders the manifests, you commit them to git, Kargo uses Kustomize edit to patch in the promoted container image and renders the manifests _again_ somewhere else (branch or folder). ArgoCD applies the manifests Kargo writes.

I'll write it up properly soon, but the initial notes from my spike last week are at https://github.com/holos-run/bank-of-holos/blob/main/docs/ka...

I recorded a quick video of it at https://www.youtube.com/watch?v=m0bpQugSbzA which is more a demo of Kargo than Holos really.

What we were concerned about was we'd need to wait for Kargo to support arbitrary commands as promotion steps, something they're not targeting on having until v1.3 next year. Luckily, we work very well with their existing promotion steps because we take care to stop once we write the rendered manifests, leaving it up you to use additional tools like kubectl apply, Kargo, Flux, ArgoCD, etc...


What else is out there? I'm running docker swarm and it's extremely hard to make it work with ipv6. I'm running my software on a 1GB RAM cloud instance and I pay 4EUR/month, and k8s requires at least 1GB of RAM.

As of now, it seems like my only alternative is to run k8s on a 2GB of RAM system, so I'm considering moving to Hetzner just to run k3s or k0s.


Are you not using docker swarm behind a reverse proxy?

ie nginx has the public facing ipv4 & ipv6 address(es), with docker swarm behind that communicating to the nginx proxies over ipv4


I have traefik as part of the docker-compose file. Installing nginx on the host seems less reproducible, though it could fix my problem. I guess I would choose something as caddy (I'm not that happy with traefik)


I've not used Caddy before personally, but if it does reverse proxying then it'd probably work fine rather than Nginx. :)


I run k3s on a single hetzner ARM64 VPS and it works pretty well for personal projects. 2 vcpu and 4GB ram for 4€/mo.


Don't miss this excellent video from NotJustBikes about self-driving cars:

https://youtu.be/040ejWnFkj0



Thanks for that link. I haven't had a video resonate with me that much in a long while, possibly because I too have spent time in Utrecht.


Nice, I have also created a language for recipe based on cook-lang (I didn't use cook-lang because I was not convinced by the syntax). The language is called recipe-lang[0] and it powers https://www.reciperium.com

Check it out, I've open sourced as well a syntax highlight for vscode, a cli for the terminal, a tutorial and a playground, and the wasm modules.

I use the language for more than food recipes, see: https://www.reciperium.com/woile/garlic-tea-for-plants

[0]: https://github.com/reciperium/recipe-lang


What do you not like about cooklang? I’m in the early stages of building an app around it.


The way ingredients and other things are described. I felt that explaining that a single word ingredient, requires @ only, but if you use multiple words, you have to use @ingredient with space{}, with the empty `{}` at the end can be too complicated to explain.

I felt that for someone who is not familiar with these things, it can be confusing. In recipe-lang the explanation is IMO simpler: wrap the ingredient with `{}`, there are no ambiguities. {salt} or {ingredient with space}, it's quite clear where the ingredient starts and end.

Once they learn that, everything else is a prefix of the curly braces, timer? t{}, link to another recipe? @{}, material? &{}. I'm considering for images something like i{} but I haven't had time to experiment with it.


Interesting, I’m nowhere near a place where I’m thinking about the implementation yet so maybe I’ll poke your version a bit!


awesome! let me know if you build something, I'd love to see more tooling around recipe-lang


what do you mean by near term solution? aren't solar and wind the cheapest form of electricity? It doesn't make sense to focus on gas anymore, unless they are trying to extract as much money as possible before it's over.


Not everything runs on electricity today. You can’t just snap your fingers and replace millions of cars, stoves, boilers, etc


> You can’t just snap your fingers and replace millions of cars, [...]

The Chinese are trying to help, but Americans like tariffs more than they hate climate change. (At least that's the preference that their political system expresses.)


Probably the US should mandate (by edict or incentive) its own industry to build EVs rather than importing a strategic asset from a strategic competitor.


Almost anything can be painted as a strategic assets..


Yes, but in car-centric US it's not too far-fetched to paint cars as a strategic asset. But maybe my thinking is too simplistic?


What is strategic about a fleet of passenger vehicles? If anything our car dependent cities are more of a liability than an asset.


If there is a trade war and you can neither import cars, nor produce them anymore, you are in a pickle.


Why would you want to be in a trade war, yet alone with the whole world? The US has many friends, there's more than just China.

Also, you suggest that a trade war is bad, because you might no longer be able to buy stuff from other people. But then you suggest that the right way to prepare for a trade war is to pretend that you are already in one, ie do to yourself what the enemy would want to do to you in a trade war? (That being limiting your ability to buy from the rest of the world?)


They did. But the local political dysfunction meant they ended up making Elon Musk the richest man in the world and he's now trying to take over the government in cahoots with someone who is fighting a culture war against EVs, while only getting to 10% EV sales.

China spent similar amounts and has a vibrant, world leading EV marketplace, supplied by their vibrant, world leading battery industry, and 50% EV penetration domestically and export plans that terrify the countries that chose not to follow this path.


Help is an interesting word choice for what is essentially undercutting our entire domestic automotive manufacturers and ensuring, on a pure cost front, that the majority of Americans purchase and rely on maintenance for a product produced in China. Doing so would have major negative consequences for our own strategic interests, hence why there has been such a massive tariff on it for several years now. China isn't being altruistic when they're attempting to sell us their much more affordable EVs. It's not a uniquely US perspective on the threat of Chinese EVs either, as the EU also has lesser but still non-trivial tariffs on Chinese EV brands.


If the US and the EU had invested in EVs 15 years ago like China did instead of scrambling to do so in the last 5, then China would not have the advantage it has now on the other carmakers.

Also if the governments want people to move away from ICE cars, then maybe they should stop putting tariffs on cars coming from China.

At some point, you need to make a decision and stick with it.

The way I see it as a consumer in the EU is that the EU is simultaneously saying we need to transition to a lower carbon economy as quickly as possible but then increases the price of goods that could be used in this transition. Make it make sense.

Is it my fault that the carmakers in the EU failed to invest EV tech?

So why am I being asked as a consumer to subsidize the legacy carmakers who were very happy to rake in billions of euros in the last 10 years while selling Diesel engines all the while knowing the the Chinese EVs were just around the corner?


Well, isn't it a good thing that they can help fight climate change without being altruistic? The entire western capitalist model is based on the premise that capitalism is good because people can help improve society through selfish means. Altruism doesn't scale. It's best when incentives are aligned.

The problem isn't with keeping Chinese cars out through tariffs. It's keeping them out, and at the same time not stimulating domestic green energy development enough. Why should the energy transition be bottlenecked by incumbent interests' profit margins?


> Well, isn't it a good thing that they can help fight climate change without being altruistic? The entire western capitalist model is based on the premise that capitalism is good because people can help improve society through selfish means. Altruism doesn't scale. It's best when incentives are aligned.

Yes, that's why you should let people buy cheap Chinese goods.

> The problem isn't with keeping Chinese cars out through tariffs. It's keeping them out, and at the same time not stimulating domestic green energy development enough.

Didn't you just say capitalism was good, and now you argue the opposite?


> Didn't you just say capitalism was good

No. I was criticizing the notion that not being "altruistic" is always bad. That is not the same as saying selfishness/capitalism is always good.


Well, the Chinese tax payers altruistically subsidise western consumers.


Really no idea what you're getting at. It's really simple and not some nefarious scheme. The Chinese government wants to be energy-independent so they don't have to import foreign oil and gas. Developing domestic green energy happens to align with fighting climate change, as well as transitioning the economy to a high-tech based one in order to escape the middle income trap. The incentives with the private sector are also aligned because this development is profitable. So they do it, by whatever means possible.

They sell some cars to Europe and North America, but the amount is negligible compared to what they sell domestically, and still much smaller than what they sell to ASEAN and the Middle East.

It's that simple. This isn't some grand plan to destroy foreign car manufacturers. If foreign car manufacturers get destroyed then that's by accident, as a result of them not staying competitive enough, not because that was the end goal from the start.

Of course it's in western governments' and manufacturers' rights to not accept this fate. But the most productive way to avoid that fate is by increasing their own competitiveness and by moving faster themselves, not closing themselves off while at the same time staying lazy about the energy transition. That's just rent collection.


The Chinese subsidise their own manufacturers of some goods. [0]

They do that partially as you say to develop their own energy independence. But there would be more efficient ways to do that, and specifically they wouldn't need to give gifts to foreign consumers.

I'm not sure why you think that I think it's nefarious? Western consumers (and other foreigners, like in ASEAN and the Middle East etc) get stuff for cheaper, that's nice for them.

The Chinese government subsidises these companies with tax payer money that they take from other parts of the economy; it's a net loss for the Chinese economy overall; but perhaps a net plus, if you focus on just the politically connected companies.

If you want to find anything nefarious: it's that rest of the Chinese economy that's being shafted.


> I'm not sure why you think that I think it's nefarious?

Most conversations on the Internet I've seen about this topic paint Chinese subsidies and Chinese car exports as a grand, deliberate, evil plan to cripple western companies and industries.

> But there would be more efficient ways to do that

I really doubt it. We have not seen any other examples of green energy rollout that is better. The improvement in Chinese air quality in just 15 years is staggering: Shanghai now often has better air quality than Berlin. Health outcomes do not easily show up in GDP figures.


You say it like 'undercutting' is a bad thing.

If consumers have to pay less, that's a Good Thing.


Not when the domestic companies which manufacture the same product wither as a result. Don't get me wrong, I don't believe in defensive national economic policy as a blanket protection we should do to protect all industries, but in special circumstances such as this one where losing all of our electric vehicle production capability and specialization is at play, I think it certainly is in our strategic interest to avoid that from happening.


> Not when the domestic companies which manufacture the same product wither as a result.

That's not how economics works.


A company being unable to compete with another one on price will result in a drop in revenue, as consumers purchase the product with the cheaper price. Revenue going down is bad for a business. How exactly is any of what I've just stated wrong? How exactly is another company selling a similar product at a much lower price point good for the company? Perplexing position that somehow introducing a much cheaper product into the market from company B is good for company A.


> How exactly is another company selling a similar product at a much lower price point good for the company?

It's good for the economy. And it's good for other companies, that you haven't mentioned. There's more than two companies in the market.


Ever been to China? An environmental disaster.


The tariffs don't help with that.


Who said snap your fingers? we are talking about investment. The US already has enough oil to last until all cars are replaced if that's your worry. The real problem is allowing oil companies to grow even further, putting the public's health and climate at even more risk. The logical (even liberal if you think on $$ terms) choice is to invest in renewable.


Nuclear plants take at least 10 years to be build. During that time millions of cars, stoves and boilers can be replaced. Look at Europe, their natural gas usage peaked in 2010.


> Nuclear plants take at least 10 years to be build.

False.

Some are built in under 5 years and many are currently being built on those timelines: https://www.bloomberg.com/news/articles/2024-08-20/china-app...


Well, your 28th reactor will probably be built faster than your first in many years.

And how long did it take to get the permits? How long will that take in the US?

I highly doubt any new reactor (that's not already in the planning phase) will come online in the US within the next 10 years.


> "I highly doubt any new reactor (that's not already in the planning phase) will come online in the US within the next 10 years."

That's a reasonable prediction. The US has essentially regulated new nuclear power plants out of existence over the past generation. That doesn't mean that there's anything about the technology that means it takes a decade to build, though. It's just a policy failure.


It would be a lot easier to replace the cars with electric ones if not for those tariffs on the biggest manufacturers of electric cars.


Gas boilers and stoves aren't common anywhere else in the modern world.


You can stop selling new ones and invest in alternatives...


Gas is a good peaker plant. Solar/wind/batteries are more carbon intensive relative to nuclear.

Near term because nuclear can take a long time to build out.

Cheapness does not equal low carbon.


No, solar and wind are unstable and don’t match demand. Fossil fuels fill that niche right now.


Musk is making batteries, they make it match demand.

I've been through Nevada and into Utah, you've got loads of desert, enough to make PV stable.

Wind is much more stable in certain places than others, and certain altitudes than others.

What really makes things unstable is when you don't keep your grid in good shape and it sets fire to a forest. Or acting like Texas and thinking grid connections with other states is somehow bad.


Batteries cannot sustain the electricity consumption of a whole nation. Maybe in many years, but right now, no sign that it can, whereas plant can


Nuclear plants can't be built instantly; the growth patterns for batteries suggest that by the time new nuclear comes online, there will be enough batteries.

(And I'm saying this as someone who actually likes nuclear, thinks the public perception of the danger is over-stated, and who thinks everyone should have build a lot more reactors decades ago).


Genuine question: would these batteries be always connected to the grid with enough power and capacity to feed the demand?


Where the batteries end up and how they're used heavily depends on policy decisions between now and then.

I'm expecting most batteries (worldwide) to be used for cars, with bi-directional power so they can function that way (for grid storage) when plugged in. That doesn't say much about what any specific country will do, and as Texas demonstrates, US states can have their own independent energy policies.


>loads of desert, enough to make PV stable.

No they don’t. They can provide a stable curve during the day at scale. But that doesn’t help with night time or the fact that demand does not peak when the sun does.


Diurnal is too regular for me to count it as "instability", even if we didn't have batteries and other storage, as hourly pricing is already a thing that has often made nighttime cheaper than daytime because supply didn't used to ramp down to match demand without that discount.

Even then, the US covers how many hours of longitude?

Because that's how much extra pre-dawn the west can get from the east, and how much post-sunset the east can get from the west — even just diversifying geographically from San Fran to Cisco Utah* gets you nearly two hours.

* why is a ghost town the most notable place in the area, according to Google Maps?


I'm still working on https://reciperium.com where people can write recipes with a custom language and create forks of other recipes and modify them.

I'm currently working on supporting images on the recipes.

I'm proud of having launched on producthunt and now trying to figure out how to attract more users


It's nice! A few notes: I think, the ability to read the comments of others, who have already cooked a recipe, would be great! Additionally, it would be great to have the possibility to group ingredients, since many times you start with creating two ore three independent mixtures, that you only combine in the end.

My gut feeling, for attracting users, would be to just optimize the recipes to be found by people via search engines. It's great, that you are currently adding images. This is, I think, pretty important for deciding, if I want to cook something or not.


Thanks for the feedback! Really appreciated.

Regarding the comments, I'd really like to implement activitypub on reciperium. To add the ability to follow users and comment on recipes. And to be able to comment and follow from the fediverse. It's a good opportunity for me to explore the protocol.

What do you mean by combining ingredients? You can currently link to other recipes. So if you make a sauce, that can be a recipe on its own, and it can be linked from another recipe. See this for example: https://www.reciperium.com/rodriguezflors/roti

> My gut feeling, for attracting users, would be to just optimize the recipes to be found by people via search engines

That's a good idea, I'm optimizing a bit the search engine now. I've been also thinking of writing a blog


I like the idea of recipe-lang. Great you open sourced it!


Thanks!! Hopefully it can live beyond reciperium!


Reading the article pulls me back to the expanse. What a great show. I recall the authors wrote an article expressing how wrong they were to predict that Ceres had no water [0].

[0]: https://www.nationalgeographic.com/science/article/dear-dawn...


Stay away from da aqua!

Nah but that's probably the smallest gripe one can have with Ceres station. Spinning up a planetoid so it has 0.3 g negative gravity and doesn't tear itself into a quintillion pieces is quite a bit more questionable.


Yes that whole world aspect is one of the few in the ‘verse that are wholly impractical. The only way you could do it is encase the object in a super strong tensile mesh or shell, in which case you might as well build O’Neill cylinders out of its mass instead.


Wouldn't a mesh or net be significantly less mass than a whole enclosure of metal? Plus, with a meshed asteroid, you get "free" radiation shielding due to the mass.


I'm guessing the casing would have to be hefty stuff and a lot of it to hold in all that mass under ~0.3g of outward centrifugal acceleration.

Of course you might be able to do some stuff internally as you hollowed out the thing too like perfuse it with high tension wires kind of like steel reinforced concrete, but it seems like a huge job at least on par with building giant space stations.

Still you might be onto something with the radiation shielding.


Inyalowda, the more you share, the more your bowl will be plentiful

my favorite show ever, imo best sci fi show ever. Ceres station in the books/show is a really cool idea even though it's got several reasons why it couldn't actually work


That's some good Belter creole.

Here's @NASA's: https://x.com/NASA/status/1478118356309921792?t=1qK3gqdbZoJl...


All Inners should stay away!


Imim showxa: da owkwa beltalowda, im da owkwa inyalowda. ("they say our water is Inners' water")

Lagniappe: https://www.youtube.com/watch?v=ezU-F028krU


I'm working on https://reciperium.com I've added a tutorial on https://learn.reciperium.com and a playground https://play.reciperium.com and I have around 4 active users (including myself, the most active and the target for this platform haha).

In a nutshell, reciperium is the center of all my recipes, I was tired of finding recipes on different channels (youtube, reddit, instagram, google, friends, etc), and not having a place to put them. On top of that, I can fork my friend's recipes to adjust them to my taste.


I would actually use this, but I am unsure of it's pricing model and ease of backup. Perhaps I missed it somewhere. Good mobile support on my device.

Two suggestions: - automatically convert units?, eg IP from Europe assume grams on some setting, convert {Rice}(2 cups) to grams when rendered - On the timer feature, create a timer (non popup) on the rendered section so I can just one press it to track time for me without changing apps / browser tabs


Thanks for the feedback! Those features are in my roadmap, but I go at a slow rate next to my work. You'll probably see the timer before the unit conversion, as it's actually a hard problem. Did you know there's a US cup and a british cup (actually a few more)?? The problem may involve tracking the origin of the recipe if no lang is provided, or setting some defaults.

On the backup side, the easiest thing I'm introducing soon, is a "raw" button, where you can see the recipe raw, and you can download the `.recp` file. In the future, I'd like to have:

- Export all recipes and favorites

- And in case I give up with the platform: an obsidian integration, or a some kind of desktop app.

So just to be clear, I do want to have an escape hatch, even if the website doesn't succeed, I will still use the language. But, it's not my main priority at the moment.

Regarding the pricing model, I just don't see myself charging for a subscription. I've been thinking how to create a sustainable product. So far, what I have is a potential affiliate program. I want to use the recipe's materials to link to products. I think this is relative nonintrusive, and it's actually useful, because I've found myself reading a recipe and not knowing what something was, like a proofing basket, for example.

Let me know your thoughts.


Maybe export to Recipe ML[1] for a relatively portable backup format.

1. http://www.formatdata.com/recipeml/


I do have a recipe language already, see the spec:

https://github.com/reciperium/recipe-lang/blob/main/spec.md

The main problem is how I allocate my personal time to add this feature. Is quite some work, and prioritizing people leaving, instead of some other features, doesn't seem good use of my time. I barely have users, and they are all my friends haha


Nice!

Was tickled when I saw the fork feature. I’ve often thought recipe sites missed that and coming from a software dev background I guess it seems obvious where we’ve got used to forking in git. It was on the roadmap for my stab at a recipe site: https://osomatsu.net

It seems such a shame to forego a literal dinner-fork as an icon for the feature though? :)


haha I've thought about it. You are making me reconsider it, I thought the current icon would reflect the idea better.


This is really cool! And having recipes on this GitHub style gives a familiar touch


Thanks! Github has been a source of inspiration, I want to keep the UI as noiseless as possible, unlike most recipes websites


I'm working on https://reciperium.com which is a website to host recipes, with the twist that uses a specialised language for recipes, and you can fork recipes from other users and adapt them to your liking.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: