I think that’s a really good point to be fair. Would be interested to see what it was on a consumption basis - like other people are pointing out, the lifestyle of the ultra rich is definitely pretty carbon intensive.
I think that’s a really good point to be fair. Would be interested to see what it was on a consumption basis - like other people are pointing out, the lifestyle of the ultra rich is definitely pretty carbon intensive.
I think there’s a lot of focus on minimizing individual’s impact, and don’t get me wrong, that’s a great thing to do, but it puts burden and guilt on people for things that are out of their control
If your government (wherever you are) held fossil fuel companies and the agro-industrial complex to account and encouraged investment in renewables, public transport and ground sourced heating, you would be living a low impact lifestyle just by going to work, buying your groceries and living normally.
If you have the money to invest in solar panels, EVs etc, that’s fantastic, but don’t feel guilt for not being priviledged!
The most impactful thing you can do is put pressure on your government to recognise the impact we’re having on our ecology. Sign petitions, write to your representative, fund and/or join activist groups.
Importantly, try not to feel shamed, as an individual you didn’t cause the situation (unless maybe you are a fossil fuel lobbyist, or oilcompany CEO) - go easy on yourself and just do what you can.
Gonna skirt right round the serious discussion about oil company based misinformation here and point out that his suit is an extreme act of terror on the seeing.
Oh boy, have fun! CTEs have pretty wide support, so you might be in luck (well at least in that respect, in all other cases you’re still using saleforce amd my commiserations are with you)
I have advice that you didn’t ask for at all!
SQL’s declarative ordering annoys me too. In most languages you order things based on when you want them to happen, SQL doesn’t work like that- you need to order query dyntax based on where that bit goes according to the rules of SQL. It’s meant to aid readability, some people like it a lot,but for me it’s just a bunch of extra rules to remember.
Anyway, for nested expressions, I think CTEs make stuff a lot easier, and SQL query optimisers mean you probably shouldn’t have to worry about performance.
I.e. instead of:
SELECT
one.col_a,
two.col_b
FROM one
LEFT JOIN
(SELECT * FROM somewhere WHERE something) as two
ON one.x = two.x
you can do this:
WITH two as (
SELECT * FROM somewhere
WHERE something
)
SELECT
one.col_a,
two.col_b
FROM one
LEFT JOIN two
ON one.x = two.x
Especially when things are a little gnarly with lots of nested CTEs, this style makes stuff a tonne easier to reason with.
Thanks for such a well reasoned response 😁 My knee jerk “public transport good” response did miss a lot of the subtlety you’ve captured here!
Public transport would be a much more effective and cheaper solution, but we’re all looking at EVs because it means not having to change anything about the status quo.
It’s good to see some JSO court news that isn’t peaceful protesters going to jail with crazy harsh rulings.
I know this isn’t the important issue, but my brain is really forcing me to ask:
How did this protest work? What kind or glue? Was it some super strong glue or something? How did they get unstuck? MY CHILDISH BRAIN NEEDS MORE INFO ON THE STICKINESS OF THE GLUE!
This, combined with the fact that global emissions have skyrocketted since the late 80s, which is also (not coincidentally) when UK hugely ramped down it’s national coal production, really make me wonder the total mass of fossil fuels burned (not just produced)!
Yeah, that’s my experience too. I think once projects get to a certain size, you really reap the benefits of strong opinions, regardless if what those opinions are.
It’s not easier to do getters or setters but especially in python there’s a big culture of just not having getters or setters and accessing object variables directly. Which makes code bases smaller.
Same with the types (although most languages for instance doesn’t consider None a valid value for an int type) Javascript has sooo many dynamic options, but I don’t see people checking much.
I think it boils down to, java has a lot of ceremony, which is designed to improve stability. I think this makes code bases more complex, and gives it the reputation it has.
Before someone says it, I know a lot of this stuff doesn’t need to be done. I’m just giving it as examples for why Java has the rep it does.
I think a lot of it is “ceremony”, so it’s pretty common in java to:
Then add on top that you have the increased code of type annotations PLUS the increased code of having to check if a value is null all the time because all types are nullable.
None of that is hugely complicated compared to sone of the concepts in say Rust, but it does lead to a codebase with a lot more lines of code than you’d see in other similar languages.
I read ‘Computer Science Distilled’ early on and it really helped me. It’s a very shallow summary of some CS fundamentals, but that’s kind of what you want when you’re starting out- just enough knowledge to know what exists to learn later.
Here’s a link: https://www.goodreads.com/book/show/34189798-computer-science-distilled
Good to see that Saudi Arabia and Indonesia are doing such a fantastic job meeting their target of unlimited planet melting!
Egypt and Morocco are a little under target though which is a shame.
I feel like in a lot of ways, most languages are great candidates for this, for lots of different reasons!
Buuuuut, Rust’s compilation can be pretty resource intensive, so if you’re actually developing on limited hardware:
Then there’s the fact that it’s a home server, so always on, meaning you actually have generous resources in some ways, because any available CPU is kinda just there to use so:
And then why not go whole hog into the world of experimental languages:
And then we’re forgetting about:
But that doesn’t factor in:
Plus:
Edit: My actual serious answer is that Rust + Rocket would be great fun if you’re interested in learning something new, and you’d get very optimised code. If you just want it to use less memory that java and don’t want to spend too much time learning new things then python is probably fine and very quick to learn. Go is a nice halfway point.
I’m a data engineer, use parquet all the time and absolutely love love love it as a format!
arrow (a data format) + parquet, is particularly powerful, and lets you:
Only read the columns you need (with a csv your computer has to parse all the data even if afterwards you discard all but one column)
Use metadata to only read relevant files. This is particularly cool abd probably needs some unpacking. Say you’re reading 10 files, but only want data where “column-a” is greater than 5. Parquet can look at file headers at run time, and figure out if a file doesn’t have any column-a values over five. And therefore, never have to read it!.
Have data in an unambigious format that can be read by multiple programming languages. Since CSV is text, anything reading it will look at a value like “2022-04-05” and say “oh, this text looks like dates, let’s see what happens if I read it as dates”. Parquet contains actual data type information, so it will always be read consistently.
If you’re handling a lot of data, this kind of stuff can wind up making a huge difference.
This is so true!
I think people are so in love with the idea of “innovation” because secretly we all just know that it means “easy-fix” and that sounds a lot better than “hard work”.
I’m a data engineer, and have seen an ungodly ammount of 200-but-actually-no-stuff-is-broken errors and it’s the bane of my life!
We have generic code to handle pulling in api data, and transforming it. It’s obviously check the status code, but any time an API implements this we have to choose between:
if not response.ok or "actually no there's an error really" in response.content
logicEvery time you ignore protocols and invent your own, you are making everyone sad.
Will take recommendations of support groups I can join for victims of terrible apis.
Here’s my hot tip! (ok maybe luke warm)
Write as much of your CICD in a scripting language like bash/python/whatever. You’ll be able to test it locally and then the testing phase of your CICD will just be setting up the environment so it has the right git branches coined, permissions, etc.
You won’t need to do 30 commits now, only like 7! And you’ll cry for only like 20 minutes instead of a whole afternoon!