ameixaseca
> As part of this agreement, the federal government will provide $10 billion in federal financing to:
>
> - Upgrade and expand the Churchill Falls Generating Station.
> - Develop the massive Gull Island hydroelectricity project.
> - Unlock co-investment opportunities with the Innu of Labrador in a major new Labrador onshore wind project.
> - Build associated transmission lines.
70 billion is the combined amount invested from all the parties into all the projects.Right now, it sounds like an Ada fanfic - a misinformed one, to be more precise.
However, it is still not the same as California's law since it only describes the provision of "age bracket" and only on particular circumstances. In practice, this requirement will likely be limited to certain platforms due to technical feasibility. Proportionality and "technically secure measurements" are mentioned in the law, so there is no point requiring this from a desktop computer where someone can just type any birth year.
It is likely most of the responsibility will fall on digital platforms:
https://www.brasildefato.com.br/2026/03/27/eca-digital-entra...
https://www.fadc.org.br/noticias/eca-digital-entenda-nova-le...
As an analogy, it would be equivalent to say that "contrary to an airplane, a car sidesteps the problem of requiring wings".
Yes, indeed - but it doesn't fly.
One of the reasons the project was killed was that we couldn't port it to our line of low powered devices without a full rewrite in C.
Please note this was more than a decade ago, way before Rust was the language it was today. I wouldn't chose anything else besides Rust today since it gives the best of both worlds: a truly high level language with low level resource controls.
This was particularly true for one of the projects I've worked with in the past, where Python was chosen as the main language for a monitoring service.
In short, it proved itself to be a disaster: just the Python process collecting and parsing the metrics of all programs consumed 30-40% of the processing power of the lower end boxes.
In the end, the project went ahead for a while more, and we had to do all sorts of mitigations to get the performance impact to be less of an issue.
We did consider replacing it all by a few open source tools written in C and some glue code, the initial prototype used few MBs instead of dozens (or even hundreds) of MBs of memory, while barely registering any CPU load, but in the end it was deemed a waste of time when the whole project was terminated.
> Stores the user's birth date for age verification, as required by recent laws in California (AB-1043), Colorado (SB26-051), Brazil (Lei 15.211/2025), etc.
The Brazilian law does NOT require this. This is a misconception, and likely based on an understanding of California's law being extrapolated to the Brazilian law.
They are almost complete opposites.
The Brazilian law (Lei 15.211/2025) puts the burden of age verification on *providers* of web platforms, app stores, or dumb terminals. Not on operational systems.
It also mentions "reasonable measurements" - which vary according to the type of content, platform, etc - and which are much less strict that anything written in California's or UK's laws regarding the same subject. It is far more based on individual risk assessment and purpose of the platforms themselves.
In all fairness, the Brazilian law is the most friendly to open source and the status quo. Even though I'm also worried about the long term results of this legislation, I'm somewhat relieved by the way it turned out.
You never dealt with C programmers, did you?
Indeed, `defer` as a language feature is an anti-pattern.
It does not allow the abstraction of initialization/de-initialization routines and encapsulating their execution within the resources, transferring the responsibility to manually perform the release or de-initialization to the users of the resources - for each use of the resource.
> I also dislike RAII because it often makes it difficult to reason about when destructors are run [..]
RAII is a way to abstract initialization, it says nothing about where a resource is initialized.
When combined with stack allocation, now you have something that gives you precise points of construction/destruction.
The same can be said about heap allocation in some sense, though this tends to be more manual and could also involve some dynamic component (ie, a tracing collector).
> [..] and also admits accidental leaks just like defer does.
RAII is not memory management, it's an initialization discipline.
> [..] what I would want is essentially a linear type system in the compiler that allows one to annotate data structures that require cleanup and errors if any possible branches fail to execute the cleanup. This has the benefit of making cleanup explicit while also guaranteeing that it happens.
Why would you want to replicate the same cleanup procedure for a certain resource throughout the code-base, instead of abstracting it in the resource itself?
Abstraction and explicitness can co-exist. One does not rule out the other.
This example is specific to C++
> (..) if your programme crashes there's no guarantee that you'll ever give the resources back.
What guarantees can you have from a "crashing program", and by what definition of crashing?
> RAII is a leaky abstraction
Any abstraction is leaky if you look close enough.
Also, the fact that the website is not covered by the CoC makes it worse, since the leadership is excluding themselves from their own engagement rules.
The events you mention above are cherry-picked bits of information to support what you have said from the beginning.
For instance, in what you said above: you are quoting an excerpt of Barroso's comments from 2023 about democracy (not his exact words) without the actual context, something he even clarified later on as it was picked up by the media. Also, his resignation now, 2 years later, has nothing to do with any of this - looks like he was just tired.
I don't blame him. To be honest, now I'm tired as well.
Take care.
Some of the points listed here can be considered a matter of taste or opinion, some are indeed pain points, and some are implementation details.
OCaml as a whole is hard to directly compare with most other languages you mentioned above as "better" or "worse". It both suffers and benefits from being an academic/research project not directly in control of a larger corporation.
As a language, IMHO, it is miles ahead of mostly all the languages mentioned above. It recently adopted a novel mechanism for modeling concurrency called algebraic effects, together with state-of-art multi-core support. This not only abstracts away several features that are usually hardcoded on most languages but puts it on another level as a language and abstraction capability. There are other toy languages that implement similar mechanisms or part of this, but none with the adoption level of OCaml.
However, since it does not have the same amount of resources and adoption, progress sometimes is slower that one would expect. Documentation can be sparse, community is smaller, etc.
Regarding OCaml on Windows, I myself used it exactly 20 years ago. It not only has one implementation, but three. There are some tradeoffs and support is not at the same level as Linux but it's still there, and I wouldn't call it mediocre:
https://github.com/ocaml/ocaml/blob/trunk/README.win32.adoc
https://docs.google.com/document/d/1-aTygzDsxy4mnqvSKEVhifA1...
You might find it harder to find libraries, for sure. I have not checked the situation recently, though given the smaller community that is likely still the case.
As a tongue-in-cheek comment, I could definitely say "OCaml is certainly not a good language - not as bad as most of all the others though".
I said they were trying to "stamp political motivation on on the decisions of the upper judiciary".
IOW, to label them as politically motivated.
I wouldn't call it a conspiracy since these groups have been pretty vocal about it.
By "certain groups" I meant "some political parties, politicians and associates", though I'm not comfortable defining it further since I don't have exact references ATM.
> As you can see, there is absolutely nothing wrong with anything that was claimed.
This is a different inquiry, check the numbers.
> Whatever Bolsonaro plotted to do is mostly irrelevant when faced with this. If anything it'd be a counter-coup.
I understand. Let's agree to disagree.
Motivated reasoning
What evidence?
https://www.stf.jus.br/arquivo/cms/noticiaNoticiaStf/anexo/D...
It names the FEDERAL PUBLIC PROSECUTOR'S OFFICE as the author, not the Supreme Court.
> And you make it out to be a conspiracy theory?
I did not say this and I was not trying to imply a conspiracy in what I said, only that this is a blatant attempt from the Congress to protect their own interests.
It is not a conspiracy when Congress members like Nikolas Ferreira say things like:
'' If any Member of Parliament commits a crime, they will go to jail. This House just needs to say "yes." ''
Which means the Congress now will be the final judge, overriding the Supreme Court (via secret voting, btw).
Source for his speech: https://www.camara.leg.br/internet/SitaqWeb/TextoHTML.asp?et... (in Portuguese)
> Judge straight up comes out to the public and brags about how they all personally defeated Bolsonaro? Same guy who's implicated in the USAID nonsense? And you make it out to be a conspiracy theory?
FYI, I was not taking about Bolsonaro.
Again, 30 seconds of Google and I can find not only what are you taking about USAID (Musk accusing USAID of interfering in the Brazilian election) but the fact that this is most likely false and has no basis whatsoever.
A claim requires evidence, and as far as the evidence goes it is pretty much all there is.
For the other claims, it is a matter of opinion. I don't see it that way.
> I'm tired, man.
I think, in a sense, everyone is.
The question you need to ask youself is: what are you fighting for?
I couldn't put it better than this article: https://www.ibanet.org/Bolsonaro-conviction-signals-Brazil%E...
My suggestion is for you to consider everything Bolsonaro says and stands for and ask youself: is he really standing for democracy? Are the judges in the way of someone that stands for democracy?
If your answer is yes, then we have a fundamental disagreement and from this point on we can only agree to disagree.
Investing is certainly not as risky as people from outside of Brazil generally think it is, since the banking system is well regulated and the legal framework is solid.
My two cents: if someone that is a foreigner in both Brazil and the US asked me what I think, I would say investing is Brazil is likely less risky than the US at the moment.
I would not subject myself or my property to a foreign court system for various reasons, but first and foremost because I'm not subject to their laws.
If I'm on Brazilian territory or doing business in Brazil, however, the question is equally pointless: barring certain exceptions, you are subject to the Brazilian laws to the extent of your presence in the country - period. You have no choice on this matter.
Courts are fallible and that's why you have levels, due process, and presumption of innocence. The Brazilian system is not perfect and it's slow but you cannot say the American system is much better when comparing decisions at same court level.
The reason most of these politicians and alies are acting like this is fear.
See what they just tried to vote a couple of months ago:
https://en.wikipedia.org/wiki/Constitutional_Amendment_of_Sh...
The popular name of this amendment should tell you everything you need to know about its purpose.
There were several large protests before the vote on the Senate, and before it was eventually ruled unconstitutional by a commission from the Senate.
It is also important to note members of Congress and Senate already have a certain level of immunity in Brazil and can only be judged by the Supreme Federal Court, and this would further restrict the ability of the judiciary branch to give sentences to politicians convicted of any serious wrongdoing.
Last, but not least, I can tell you that you quoting the CNN article would probably ruffle some feathers from (most of) the same ones questioning the Supreme Court. I speak from experience.
*edit: spelling
I never seen or heard any school doing any meaningful actions to deter bullying, and I don't mean this about the US system alone. Students are often left to fend off by themselves like animals, only punished when they fight back.
The classic victim-turned-perpretator is symptom of a system that is fundamentally broken.
I don't say this to justify any kind of violence, just that it is understandable and baffling that so little seems to be done to address root causes. Almost as if the children going through this are right on point: nobody really cares.
The last paragraph says it all:
> At one point during his senior year, he even asked to meet her team to thank them. “He thanked us for caring about him,” the sergeant said. “Because he felt like no one ever took the time to really care, and he could tell that we cared. It was really nice to hear.”
I read this a few times now and it hits hard every time.
I hope he's well and was able move one with his life. This would be indeed the best achievement of a system that should be like this from day 1.
I would just like to point out a few issues:
A) I deliberately focused on the language itself in my claims.
The functions I cited earlier were meant to illustrate the side effects of a certain mindset of the core language.
Keep in mind: these functions are not from some random library in the ecosystem, but from the core library of the language, providing core functionality. And that hasn't changed, nor the functions.
B) You've made a number of statements in response to my comments, but I don't see any supporting references.
The only justification you've given is your own opinion that "the article is too old and not relevant anymore".
Which takes us to point C.
C) I skimmed through the article again, along with the general documentation of the language, and I stand by this statement:
"Every major point in that article about the language is as relevant today as it was in 2012."
PHP might work fine for templating some web pages, but so does Jinja. As a general programming language, it falls short in too many ways to list here. You can revisit the original article I mentioned before for a more comprehensive list, in particular the "core language" section.
Well, at least that's my opinion. As I said, you're free to disagree - and that's OK.
--
Side note: The easiest approach during a disagreement in an online discussion is to write a lot of "opinion-based statements" as if they were facts, and leave everything else as an exercise for the reader.
If you want to be taken seriously, please don't do that.
I do, however, want to point that anyone interested in comparing language design choices can conclude by themselves this is likely a strong factor.
You can find references like the classic "PHP: a fractal of bad design"[1] which not only talks about the language itself but SQL injection, error handling and tons of other issues. It summarizes most of the important points.
I can also add a few issues like[2][3], which unfortunately are not isolated incidents: these are a reflection of core design decisions and how the language approaches software design as a whole.
I stand by my point, which I'll define more precisely as:
"A badly-designed language either makes it hard for developers to do good choices, or makes it easy for developers to do bad choices."
PHP is not alone, but it is a prime example of this.
You can disagree with this assessment - and that's OK.
[1] https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
[2] https://stackoverflow.com/questions/36867718/php-rename-fail...
[3] https://stackoverflow.com/questions/11360511/php-rename-how-...
There are tons of languages and frameworks made by developers who know what they are doing that do not treat everything blindly like strings.
For SQL in particular, you should never build queries directly from user input - any modern database supports bind variables or parameters, which completely eliminate any need for sanitizing input.
I agree with you regarding sanitization, and I'd add further that having to sanitize input for security purposes is a big sign of code smell and an overall insecure code by design.
anigbrowl might have been too direct and harsh (I would say the first paragraph of his comment could be worded differently), but he was very clear in the second paragraph about where to go from here.
If this is truly how OP thinks and this post is how they feel about everything that happened, I strongly recommend for OP to look for professional help (with emphasis on "professional").
A simple example using traits (Rust):
// logger.rs
trait Logger {
fn log_something(&self);
}
// mycustomlogger.rs
struct MyCustomLogger;
// logger.rs or mycustomlogger.rs
impl Logger for MyCustomLogger {
fn log_something(&self) {
println!("Hello");
}
}
The actual `log_something` implementation for `MyCustomLogger` (ie, the block with the `println!` call) can be outside of the impl, as a function or inherent method, and just be called by the impl block - thus implementing similar "glue" as described in the article.The difference is that there is no strong requirement on where exactly it needs to be [1].
This would likely require Zig to support "interfaces" at the language level, though.
--
[1] PS: there is the "orphan rule" for trait implementations, but I'm simplifying it here for the sake of the example
EDIT: formatting
Laws from Brazil apply to you while you are in Brazil - even if temporality - regardless of your nationality.
It becomes more evident when you consider the amount of work it is doing as well.