Hacker Newsnew | past | comments | ask | show | jobs | submit | dkirill's commentslogin

People not privileged enough to have access to western banking


Banking is doing just fine with cell phones in places like Africa.


Yet somehow sophisticated and well informed enough to keep their keys secure and not get scammed.


I don’t understand your point. Are you implying that people don’t have access to western finance because they are not sophisticated enough? If you don’t luck into being born with good citizenship lots of things you might take for granted are inaccessible. It has nothing to do with level of sophistication


The point is that people who were the most impacted of the fall of FTX and all those others exchanges are actually people in developing countries that lost ALL their savings. It was perhaps a few thousands dollar for people in the western world, an alternative way to do some investing, but lots of people in countries with bad financial systems (lets say Argentina or Venezuela) tried to use crypto as their stable banking system and it failed them miserably and now lost almost everything.

So while in theory crypto offers that alternative that should be better than those shitty countries economic policies, in practice, this gave them something worse than their local bank.

Yes Yes, you can use a hardware wallet and would have avoided all of that, the reality is that a very high percentage of people were just using the tools offered to them and didn't think it was all a giant fraud.


SVB depositors were almost in the same boat. Maybe not this time, but there is no guarantee the government will bail you out. In fact, Janet Yellen (who has a lost any credibility she may have had imho) even said they don't intend to extend that protection to all banks. They prefer to pick & choose who they extend the protection to (especially rich liberal donors).


Only depositors who had more than 500k deposited. For SVB, a high number for sure, but its not a counterpoint to someone posting how putting trust in crypto bankrupted a large number of people in developing countries when they mistakenly thought they could trust crypto more than a bank.


FDIC insurance is 250k, not 500k. It's not Apples to Apples, but it demonstrates that the banking system is not rock solid either.

Not only that, if you really want to look at exploitation of the poor look no further than our large banks in America.


Fair. Crypto is not just ftx/investment tho. It’s also a mean to transfer wealth outside of your country. It might be risky but any option is better than none


"Western finance" is heavily regulated (well, consumer banking anyway) and for the most part is pretty secure. Crypto is completely unregulated and chalk full of bad actors distracting you with grandiose promises while fleecing you behind your back. Every other month there's a report of some massive theft/data breach at an exchange.


Conversely, part of those regulations involves excluding whole countries from the system, most of them for purely political reasons.


This argument comes up so often, it needs a name like the "think of the children" mantra politicians use to promote bad policies.


This is quite sad that your reasons for lack of support of the wars are that you (an invader) had a bad time there, not that you were part of the force destabilising and destroying another country


People sign up for the military often with good intentions, yet they don't often get to choose what the military then does with them. You're seemingly assigning responsibility for an entire invasion to a foot soldier.


I didn't intend to put a blame of invasion on a single soldier. But I do put blame on a soldier, that he came to another country to kill people there for no good reason. There is a choice


> The only meaningful further press coverage of Russian politics must be about regime change

You are mistaking journalism for propaganda if that's your opinion


> Nobody cares about social responsibility

I'm not gonna argue whether people must care about it or not. But saying that nobody does is simply not true and sounds like an attempt to excuse yourself. I know quite a lot of people who made career decisions which did not maximise their profit in favour of not doing things your conscience will torment you about.


Actually, it's just an attempt to accuse people writing lazy comments, not to excuse myself. I don't work on proprietary software.


The scale of corruption in US or EU is not comparable to communist/ex-communist countries


Perhaps ... but it's right up there for endemism, maleficence, duplicity, and propaganda.


I feel like trying to make a scale and throwing numbers around would be problematic, because it would detract from the overall argument that all systems have significant problems.

If you're interested in that doing that, i'm sure that there are places online that try to document the various injustices (here's a US centric one https://www.reddit.com/r/Keep_Track/top/?t=all though probably also biased due to the political polarization) as well as historical writings about the exposed problems in the communist countries of the old days. If anyone has any good ones, feel free to link them, because aside from the actual argument, i'm also curious.

Personally, in regards to the modern day world, i'd say that stealing 400 billion from taxpayers is pretty bad, which is one colorful example in recent memory: https://www.huffpost.com/entry/the-book-of-broken-promis_b_5...

Of course, in my day to day life, it really doesn't matter whether that's 40 or 400 billion, because i will hardly ever even make a million myself (living in the EU, at my current salary it would take me 49 years of work, aside from inflation, salary increases etc.). Not to say that it's not important to talk about these things, just that the scales at play are so mindbogglingly huge that they are hard to even reason about.


There are electrical buses already that are being used quite extensively, e.g. Moscow has a fleet of electric buses


This is ridiculously privileged pov to have


Hacker News is the perfect place to discuss ridiculous points of view :)


They are definitely not doing identification (1:whole_database) for payment, that would be ridiculous.

I'm sure they are matching against very small subset. Most likely they are getting data from mobile phone operators on who's currently around the entrance


No need to generalise based on your limited experience if you are unfamiliar with situation in Belarus


> and the compiler doesn't even warn you that size is bigger than x

That's not true tho, compiler with reasonable flags set will definitely warn you and if you really don't like this kind of code you can force compiler to issue an error instead


What flags you have in mind? Because this code doesn't generate any warning with GCC 11.1.0 with -Wall -Wextra:

    int main(void) {
        int some_int = 1234567;
        char c = some_int;

        return c;
    }



-Wall -Wextra -Wpedantic does not enable all diagnostics.

This is GNU's idea of "all".

Contrast to Clang's -Weverything, which will.


It seems though that the point is made, right? Even 'good' approaches miss on what should be a clear 'whoa, are you sure?' type warning. There are a lot of footguns wandering around in C/C++ land.


No, the point was you want don't get a warning and it will silently wrap. You can scroll up if you've forgotten.

And it is false. My default configuration C++ project created in Clion shows it very clearly, and even pesters to use int32/int64 over int/long.

But as usual the default fallback when you're wrong about C++ is "uh yeah but lotta footguns amirite"

As if there aren't enough that we need to start making them up...


And yet RedHat's recommended compiler flags for GCC [0], for example, do not appear to catch the wrapping assignment in the above example code.

0: https://developers.redhat.com/blog/2018/03/21/compiler-and-l...


Ah yes, of course the goalpost was "you need to customize your settings to catch it" above.

Now that the default in the most beginner friendly of IDEs catches it, the goalpost is "my pet source of customization designed with C++98 in mind doesn't catch this"

Of course, even your pet source of customization caught up: https://developers.redhat.com/blog/2021/04/06/get-started-wi...


If by "caught up", you mean talked about clang-tidy in a separate post, which is definitely not a GCC compiler flag, then sure.

The goalpost, since you're insistent on being explicit about it, was whether a C/C++ compiler "with reasonable flags" will catch the implicit wrap. GCC is a very popular compiler, and to be honest, I'm still not sure how to get it to warn on the above code, if doing so is possible.

Edit: Just read the rest of the thread, it's -Wconversion, which I suppose makes sense. Ignore me, point taken.


If said beginning friendly IDE is used by only a couple percent of the ecosystem, it seems disingenuous to use it as proof this isn't a problem in this context?


Ok so we're going to keep shifting the goalposts, now it's "there aren't enough beginners relative to total usage so beginner friendly IDE isn't enough"...

I mean MSVS uses Clang-tidy too, Clang-tidy integrates style guides provided by Mozilla and Google.

Most C++ Google projects have clang-tidy configs.

Clang-tidy is literally table-stakes for modern C++ tooling.

Github shows 970,000 commits related to setting up clang-tidy

But uh, yeah, let's see where the goalpost skitters to next.

-

The irony is I said above, C++ has enough footguns without sticking your fingers in your ears and ignoring boring, easy to setup, widely well known and well used tooling.

But in the war against C++ no stone must be left unturned.

C++ is a tiny fraction of all the code I've written in my life but it irks me to no end that people can't deal with the idea that language safety can improve, that tooling can be considered part of that safety. Or rather they can... unless they're talking about C/C++


I’m definitely not moving any goalposts I know of!

I thought the point I had been making, as had others, is that by default this is an easy footgun.

There are all sorts of things that can be added on to all languages to help - if you know it’s a problem worth solving, etc. which is inevitably after you’ve footgunned yourself with it bad enough you felt the need to research how to prevent it.

Other languages just do the safer thing (or most compilers By default warn at least about common footguns) more - which is the whole point of this thread?


There was one point, C++ won't warn you by default .

But tooling that is incredibly common, that beginners will run into even if they take the path of least resistance, and experts will use because it enforces standards at the very least, covers it.

Like Js without linters is a minefield, but everyone accepts you should lint your Js. Why does that change when C++ is involved?


The reason for this decision is so that compiler upgrades with -Wall and -Werror don't break builds.

I can see the reason behind it, but I feel that this behavior is something you opt into when you use -Werror.


> The reason for this decision is so that compiler upgrades with -Wall and -Werror don't break builds.

It feels like the "right thing" here would instead be for the compiler to allow build scripts to reference a specific point-in-time semantics for -Wall.

For example, `-Wall=9.3.0` could be used to mean "all the error checks that GCC v9.3.0 knew how to run".

Or better yet (for portability), a date, e.g. `-Wall=20210720` to mean "all the error checks built into the compiler as of builds up-to-and-including [date]."

To implement this, compilers would just need to know what version/date each of their error checks was first introduced. Errors newer than the user's specifier, could then be filtered out of -Wall, before -Wall is applied.

With such a flag, you could "lock" your CI buildscript to a specific snapshot of warnings, just like you "lock" dependencies to a specific set of resolved versions.

And just like dependency locking, if you have some time on your hands one day, you could "unlock" the error-check-suite snapshot, resolve all the new error-checks introduced, and then re-lock to the new error-check-suite timestamp.



I think it might be more of an headache: what if somebody fixes a bug in an analyzer so that it catches things it used to miss ? Should it be a breaking change ?

Personally i would vote for "Wall with Werror" means no guarantee for your build.


The real solution: leave Werror off by default, activate it only during CI builds


That's even worse, because then an upgrade to the compiler in the managed CI runner (e.g. Github Actions') base-image will translate to the same version of the code failing where it previously succeeded, with nobody sure why.

At least with -Werror on at all times, devs will tend to upgrade before the very-stable CI environment does, and thereby catch the problem at development time (usually less time-pressure) rather than release-cutting time (usually more time-pressure, esp. if the release is a hotfix.)

-----

Mind you, it does work to enable -Werror only in CI, if you lock your CI environment / compiler Docker image / etc. to a specific stable version, and treat that as the thing to re-lock in place of the "error-check suite snapshot version."

This has the disadvantage, though, that you can't take advantage of newly-stable/newly-unstable language features, or of newly-introduced compiler optimizations, without biting the bullet and taking on the work of fixing the errors introduced by re-locking the base-image.

With a separate flag for locking down the error-check-suite snapshot version, you could continue to upgrade the compiler — and thereby get access to new features / optimizations — while staying on a particular build regression "scope."


> That's even worse, because then an upgrade to the compiler in the managed CI runner (e.g. Github Actions') base-image will translate to the same version of the code failing where it previously succeeded

If you don't want your build to fail on warnings, don't use -Werror. If you want it to only fail on specific warnings, use -Werror=...

> with nobody sure why

Unless they look at the errors in the compiler output. What does it matter if it was brought on by a compiler update or a push?

> At least with -Werror on at all times, devs will tend to upgrade before the very-stable CI environment does

Nothing wrong with -Werror for devs - the problem is when you ship code to others and leave -Werror on by default.


Is -Werror really supposed to not break builds?


The whole point of -Werror is to break builds and -Wall / -Wextra are definitely not frozen. If you can't handle compiler updates resulting in errors, don't use -Werror in that environment.


keep in mind though that -Weverything is not intended to be used in production: https://quuxplusone.github.io/blog/2018/12/06/dont-use-wever...


-Weverything is great for CI though, in compination with lots of -Wno-... flags to disable warnings you don't want. Instead of having to manually look out for new warning flags you will get all automatically.


Yep, this is what I do; throw in -Weverything followed by a few things like -Wno-packed -Wno-padded -Wno-unused-parameter.


> This is GNU's idea of "all".

Unfortunately, over the years people baked the semantics of -Wall into their builds so new diagnostics could not be added to that flag.

And clang’s -Weverything shows how the opposite can fail as well


There are some very wrong-headed warning options in gcc, such that turning them on and avoiding getting them will make your code worse. So -Wall means 'all recommended warnings'.

Also there are some warnings that won't be produced if you compile without optimization, because the needed analysis isn't performed.


And yet we have things like -Wmaybe-uninitialized in -Wall which by definition will occasionally warn on perfectly good code.


-Wconversion will do it.


-Wconversion will catch this


>What flags you have in mind?

-Wconversion

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

This is common knowledge for ages. Any cursory Google search returns countless answers.

Take this post made over a decade ago.

https://stackoverflow.com/questions/1730255/gcc-shouldnt-a-w...


Fair point although it seems "reasonable" varies from one platform to another, it doesn't warn out of the box for me but people have reported MSVC gets warnings here.


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

Search: