• 6 Posts
  • 279 Comments
Joined 2 years ago
cake
Cake day: June 18th, 2023

help-circle
  • The fundamental difference to me, which makes me not see “a website with extensive docs and a download button” as marketing, is whether you need to seek it out or not.

    If I need to seek it out myself, it’s not marketing, it’s simply “providing solid information” and “making your product accessible”, which is a whole different ballgame from “shoving your shit into peoples face in the hope that they’ll give you money”.


  • I think there’s a substantial difference between “supplying information about a product without shoving it in people’s face”, and what most people associate with “marketing”.

    If a company putting up neutral, verifiable information about their product on their own webpage where I can find it by searching for something I’m looking for after reflexively scrolling past the ads counts as marketing, then yes, I “fall for marketing” all the time. However, what I typically associate with “marketing” involves me somehow being fed information about a product without seeking it out. Usually when that happens, I’ll actively look somewhere else.


  • Similarly, what would you gain by saying uint32_t const* x = my_var.get<uint32_t>();

    To be frank: You gain the information that MyConcreteType::get<uint32_t> returns a uint32_t, which I otherwise couldn’t infer from the docs. Of course, I could assume it, based on the template parameter, but I don’t want to go around assuming a bunch of stuff in order to read docs.

    Take an example like auto x = my_var.to_reduced_form(), it’s very clear that x is the “reduced form” of my_var, which could be meaningful in itself, but what type is it? I need to know that if I want to do anything with x. Can I do x += 1? If I do, will that modify my_var? Let’s say I want to make a vector of whatever to_reduced_form returns… and so on.

    All these questions are very easily answered by MyConcreteType x = my_var.to_reduced_form(). Now I immediately know that everything I can do with my_var, I can also do with x. This makes me happy, because I need to do less digging, and the code becomes clearer to read.


  • Thanks, that was a good read :)

    However, my impression is that he’s largely using the existence of templates and polymorphism as arguments that “we don’t really care about type”. I disagree: A template is essentially a generic type description that says something about what types are acceptable. When working with something polymorphic, I’ll prefer ParentClass&, to indicate what kind of interface I’m working with.

    Sure, it can be very useful to hide exact type information in order to generalise the code, but I think that’s a weak argument for hiding all type information by default, which is what auto does.


  • I really like C++ (I know, shoot me), and I think auto should be avoided at (almost) all costs.

    One of the things I love about a language like C++ is that I can take one glance at the code and immediately know what types I’m working with. auto takes that away while adding almost no benefit outside of a little convenience while writing.

    If I’m working with some very big template type that I don’t want to write out, 99/100 times I’ll just have a using somewhere to make it more concise. Hell, I’ll have using vectord = std::vector<double> if I’m using a lot of them, because I think it makes the code more readable. Just don’t throw auto at me.

    Of course, the worst thing ever (which I’ve seen far too often) is the use of auto in examples in documentation. Fucking hell! I’m reading the docs because I don’t know the library well! When you first bother to write examples, at least let me know the return type without needing to dig through your source code!



  • Honestly, after re-reading my own comment, I’m considering just putting some stupid-simple wrapper around mv that moves files to a dedicated trash bin. I’ll just delete the trash bin every now and then…

    -Proceeds to collect 300 GB of build files and scrapped virtual environments over the coming month-


  • I usually don’t think about it at all, but every now and then I’m struck by how terrifyingly destructive rm -r can be.

    I’ll use it to delete some build files or whatever, then I’ll suddenly have a streak of paranoia and need to triple check that I’m actually deleting the right thing. It would be nice to have a “safe” option that made recovery trivial, then I could just toggle “safe” to be on by default.







  • thebestaquaman@lemmy.worldtomemes@lemmy.worldBack to School
    link
    fedilink
    arrow-up
    22
    arrow-down
    1
    ·
    edit-2
    26 days ago

    I’ll add to this that Europe has about 1.6 times the population of the US. This means that Europe has roughly one school shooting for every 12 incidents in the US when corrected for population.

    If Europe had school shootings at a rate similar to the US, there would have been on average 40 incidents per year. That is: about one school shooting every week of school since year 2000. I can’t even imagine going to school knowing that and wondering if my school is the one that’s going to be shot up this week.


  • Exactly this. The whole premise of the tax system is based around the historically correct idea that you need to physically move goods in order to sell them, or physically be somewhere to sell services.

    Companies like google are making buckets of money all over the world, and don’t need to tax a dime most places, because they have no physical presence there. This makes it pretty much impossible to compete with the international behemoths, because they have access to a munch of tax-free revenue, while a startup will typically be centred around wherever they’re based, where they also need to pay taxes.


  • The great thing is, it’s not just for flights! My travel insurance gives me coverage as long as I’m travelling outside my home. It literally covers damage to my bike if I’m visiting my parents for the weekend, or road assistance if my car breaks down on my way to a hike.

    That’s essentially why I have it: Pretty much everything I bring with me on any trip that’s not to-from work is covered.


  • Travel insurance? Regulation? Out of any insurance worth paying for, I think travel insurance is like top of the line. Anything goes wrong while travelling (stolen stuff, lost/delayed baggage/damaged rental car/cancelled flights/etc.) gives me a decent payback. I pay like 120 USD/yr.

    Regarding regulations: At least in the EU/EEA we have some decent regulations requiring airlines to reimburse you if they lose or delay your baggage.




  • That completely depends on what you’re doing. If you’re doing tasks that python can completely offload to some highly optimised library written in C/C++/Fortran, then yes. However at that point you’re not really comparing Python to C anymore, but rather your C implementation to whatever library you used.

    A fair comparison is to compare pure python to pure C, in which case you need to mess up the C-code pretty bad if Python is to stand a chance.