One pitfall that is so obvious it hurts (but I have seen people fall into it), goes a bit like this:
1. We have a python application
2. We need a configuration format, we pick one of the usual (ini/toml/yaml/...)
3. We want to allow more than usual to be done in this config, so let's build some more complex stuff based on special strings etc.
Now the thing they should have considered in step 3 is why not just use a python file for configuration? Sure this comes with pitfalls as you now allow people who write the config to do similar things than the application, but you are already using a programming language, why not just use it for your overly complex configuration? For in house stuff this could certainly be more viable than writing your own parser.
Because now, anything that wants to read that config has to be written in Python. You've chained yourself to a stack just for a dynamic config. I ran into this issue at a previous job, but with a service that leaned heavily on hundreds of Django models. It made it impossible to use those models as a source of truth for anything unless you used Python and imported a heavyweight framework. It was the biggest blocker for a C++ rewrite of the service, which was really bad because we were having performance issues and were already reaching our scaling limits.
Declarative configs are preferable for keeping your options open as to who or what consumes them. For cases where config as code is truly necessary, the best option is to pick something that's built for exactly that, like Lua (or some other embedded scripting language+runtime with bindings for every language).
I would tread carefully around this (although you know the specifics !).
Simply being tied to one language is rarely a bad thing - at a certain point in a company size growth, having a common language and set of tools (logging, dbase wrappers etc) acts as a force multiplier beyond individual team leads preferences.
I would be interested in exactly what scaling issues you hit but I would ask if Inwere financing the company if overcoming scaling problems in python would cost less and lead to better cadence than a migration to C++
I’ve worked in several python shops, and now work with Rust. Python’s performance can be a real cost problem at scale. Where this bit us in the past was with the sheer number of containers and nodes we had to spin up in k8s to support comparatively moderate traffic in a relatively simple web application.
It’s been a while, so take the numbers with a grain of salt, but where we might have needed 10 pods across several nodes to process a measly 100 req/s, we can easily handle that with a single pod running a web application written in rust, with plenty of room to spare. I suspect some of it is due to the GIL: you need to scale instances rather than threads to get more performance in Python.
Anyway, at some point the cost of all those extra nodes adds up, or your database can’t handle the absurd number of concurrent connections all your pods are establishing, or whatever.
One improvement though is using Starlark, instead of directly Python, since it offers a lot of advantages for a more lightweight runtime and parallelism.
This can sometimes be a good idea. But it isn't without downsides. Now your config file is Python and capable of doing anything Python can do (which isn't necessarily a good idea), it's no longer safe, you now have to deal with shitty Python tooling, you might have to debug crashes/lockups in your config files, you can no long switch implementation languages, etc. etc.
Not that this is a magic or even a good solution, I just wanted to mention that sometimes you already have the thing you are looking for directly under your nose.
I never had any project were a toml config wasn't enough.
So how do you suggest we act in a world where energy usage ultimately has to be limited? Just let the market regulate that?
Then you end up with luxury villas with swimming pools in the desert while farm land dries out and people die of thirst. If you grow a system against stiff bounds you will get hard saturation effects. And that means you can't have it all in such an environment.
Now using that drought-example I think it is reasonable to say your pools have to stay empty, priority 1 is drinking water and priority 2 is farm land. And if you are the type that would like to fill a pool in that hypothetical situation you probably deserve to be shamed.
[citation needed] Nuclear Power plants who use river water in their cooling cycle and pump the (now heated) water back to the river don't pay for that.
The cooling system illustrated in the article is very very similar to a typical nuclear power station cooling system. From the heat exchanger onwards, the secondary loop is functionally identical, the main difference is the primary loop working fluid (and that loop operates at a far lower temperature and pressure).
Part of the political circus here is around the definition of occupation. The ICC essentially claims that Gaza has always been and is currently occupied. The ground truth is that Gaza stopped being occupied when Israel withdrew in 2005 and that Israel at this time is not actually occupying most of Gaza. It is occupying portions of it and blockading other parts.
The argument is more or less around: "In international law, occupation is when a foreign power gains effective control over a territory during an armed conflict, even without armed resistance. The territory under control is called occupied territory, and the foreign power is called the occupant." and whether Israel is in effective control of all of Gaza or not. I think a reasonable person who sees the actual reality would conclude that Israel does not have effective control over the entirety of the Gaza strip. Therefore Israel does not bear the responsibility of the occupying power according to international law. The claims that Israel does occupy Gaza are political in nature, not factual.
> I think a reasonable person who sees the actual reality would conclude that Israel does not have effective control over the entirety of the Gaza strip.
This is not a precondition to being an occupying force and by arguing this way you really do not show good faith, but rather a desire to cloud the discourse with a discussion about definitions.
Don't worry, you could show the world just how unoccupied Gaza is by traveling there without interacting with either the Isreali side or some other Western military. But that is not going to happen for some reason. And that reason is that Isreal is occupying the territory and you can't go there (or leave from there) without interacting with them.
Part of the political circus here is around the definition of occupation.
Not just the ICC but the UN as a whole, and the EU consider Gaza to be occupied due to the fact that it controls air and maritime space, along with all 7 border crossings, along with its oft-exercised ability to enter the strip forcibly at will, which take precedence over the 2005 withdrawal of permanent internal forces.
To the extent that there's a "circus", it's in the minds of those who prefer to allow themselves to be soothed and distracted by the government's narrative of the situation.
> "In international law, occupation is when a foreign power gains effective control over a territory during an armed conflict, even without armed resistance. The territory under control is called occupied territory, and the foreign power is called the occupant."
Where did you get that definition? The source your parent gave you has a completely different definition (which cites the original Hague Convention of 1907 [Part IV article 42]):
> Territory is considered occupied when it is actually placed under the authority of the hostile army. The occupation extends only to the territory where such authority has been established and can be exercised
Wikipedia has a similar definition:
> temporary hostile control exerted by a ruling power's military apparatus over a sovereign territory that is outside of the legal boundaries of that ruling power's own sovereign territory
Nowhere in current international law does occupation require an active armed conflict. And your definition even contradicts it self when it states “even without armed resistance”. How can it be during an armed conflict when there is not armed resistance?
I suspect this definition has been Frankensteined from the original Hague Conference of 1907 which defines occupation (as cited above) and later additions from the Fourth Geneva convention of 1949 (Article 2):
> The Convention shall also apply to all cases of partial or total occupation of the territory of a High Contracting Party, even if the said occupation meets with no armed resistance.
Then your definition sort of sandwiched an additional requirement of “during and armed conflict” seemingly from thin air. I can’t find this requirement in any treaties of intentional law.
I don't believe international law effectively solves the problems it is intended to solve, but if we are discussing whether a country was acting the right or wrong way how do you suggest we judge that?
Right of the strongest? Follow the opinion of the warlord of the day? Follow our gut? Be so kind and bless us with your maxime that should guide the day in your opinion.
Sure many people are blindingly naive about the geopolitical realities involved, but that does mean only thinking about what is is sufficent. If we want to improve things there needs to be some ruler to measure the conduct of nations.
> The majority of Israeli would like to find some sort of win win solution where everyone can live in peace. The majority of Palestinians don't see any solution that includes Jewish people living in the region.
[citation needed] Because your equivalent on the other side would say it is exactly the other way around, and both of you would feel unarguably right. So unless you base your claim here on a neutral trusted source I would file that away as someone's gut feeling that may be part of a political bubble.
Your palestinian counterpart could point out the same, as far as I know more than three quarters of the palestinians alive today did not vote for Hamas, since they were kids when that vote took place in 2006. Your Palestinian counterpart could point to the fact that their people are unarguably more restricted than an Israeli citizen living in the same area or to the fact that their territories got smaller over the decades which is surprising given your statement about a lack of Isreali ambition to drive them away — did the Palestinians voluntarily gift that land away or how did that happen?
Now sure, in reality this conflict is much more complex, and the history of the Palestinian territories has to do with repression, terrorist responses, constant military intervention, settler ambition and so on. But if — in effect — you drive the other people out, even if "you don't want to", you are driving them out, period. And for that you just have to look at a timeline of the border over the history of the region, without bothering yourself about all complexity, which in this conflict is abused by both sides as an excuse.
Todays younger generations in the West perceive Israel as the stronger force (and it is) and as such feel that Isreal has a moral duty to de-escalate the conflict. Now that 80% of the Gaza strips population is displaced and this is the conflict with the most dead children than any other recent conflict¹, taking about not wanting to drive them away seams a tad bit cynical — one could infer from that they are not to be driven away, but to be erradicated.
In any way this will mark the sad point in history where the decline of support for Isreals ambitions in the West started and Isreal won't even see it coming, since their own perspective on the conflict is skewed by their own propaganda. A support Isreal both needs and given its early history also deserved. But taking it too far has consequences.
And as someone who grew up with 3 brothers: It is for the stronger one to stop the conflict and act with controlled force. And Isreal is the stronger one and right now it is beating the smaller brother into a bloody bulp in stupid rage as the rest of the world watches in absolute horror.
Generally good advice, however I think the actual example phrases could still be clarified, e.g. bg explaining why clear estimates in software engineering are not as common as in other fields — note the person you are talking to might have a completely different experience in their field of work. And then you give your buest guess and a clear explaination of your level of confidence, which factors could lead to shorter or longer project durations.
The theory behind it is simple: Subtract each audio sample in B from each audiosample in A.
You can do the same thing in your DAW¹ by putting A (e.g. the original) onto one channel and B (the processed sound) onto another. Then you invert the phase of B and listen to/export the sum.
This trick works also for audio gear that claims it does amazing things to your sound (here you just need to make sure to match the levels if they have been changed). Then you can look how much of the signal has truly been affected by your 1000 bucks silver speaker cable.
¹ Digital Audio Workstation, something as simple as Audacity should do the trick
> Then you can look how much of the signal has truly been affected by your 1000 bucks silver speaker cable.
I have a friend who has spent ridiculous sums of money on audio gear. Like, he's in his 50's, and still lives with his parents (in part) because of it. Over the years, I've learned I will never convince him that he's being fleeced, but I've wanted to make a site to host such A/B comparisons for a very long time, to perhaps get through to others what a waste most of the "audiophile" gear is.
On your A/B comparison website: I think it is important to make a "blind" test default. So they can listen to e.g. ten repetations and vote for for one each time and in the end they get a score which one they liked better. and by how much.
Because of course they want to hear the difference if there is an expensive price tag.
As an educationer at the academic level the number of times I have to explain absolute basic "everybody should have learned it in school"-physics is staggering.
To clarify for those who don't know: If your website uses cookies for storing the products a customer added to their shopping cart or similar "legitimate interest" purposes, they don't need to display a cookie banner.
The law demands them to ask for informed consent only if they want to collect more than that technically necessary data. If that consent isn't given voluntarily it isn't consent. If the choise is "Yes" and a puzzle-maze of a thousand flavors of "No" it isn't informed consent. If the cookies exist before asking they haven't been consentual, etc.
If websites cared about users they just honored the Do Not Track setting
The same principle is used with loudspeakers to create beamforming arrays, albeit at sonic frequencies.
Beamforming speakers in acoustic applications are quite useful and often found in protected monuments or churches since it allows you to "aim" the acoustic energy mainly at the audience and to a lesser degree onto reverberating surfaces which you may not be willing (or allowed) to change by adding acoustic treatment. Nowadays these arrays are also often used at bigger (e.g. outdoor) stages to avoid shooting into the (complaining) neighbourhood.
An interesting side note is also that the principle also works in reverse for the receiving side, so you can have array microphones that can steer the beam of their "focus", either as a column or as a 2D-array that is ceiling mount (like the Sennheiser TCC2). All these arrays show there limits as frequencies go lower tho, so that is something to check for.
Indeed. Another advanced implementation of the concept (other than Danley unity/synergy horns and other diffraction-based solutions like the Seas DXT) is Keele's C(constant) B(eamwidth) T(ransducer):
1. We have a python application
2. We need a configuration format, we pick one of the usual (ini/toml/yaml/...)
3. We want to allow more than usual to be done in this config, so let's build some more complex stuff based on special strings etc.
Now the thing they should have considered in step 3 is why not just use a python file for configuration? Sure this comes with pitfalls as you now allow people who write the config to do similar things than the application, but you are already using a programming language, why not just use it for your overly complex configuration? For in house stuff this could certainly be more viable than writing your own parser.
reply