Watch me: My void*
doesn't give a shit about your const
!
thebestaquaman
I have to be honest in that, while I think duck typing should be embraced, I have a hard time seeing how people are actually able to deal with large-scale pure Python projects, just because of the dynamic typing. To me, it makes reading code so much more difficult when I can't just look at a function and immediately see the types involved.
Because of this, I also have a small hangup with examples in some C++ libraries that use auto
. Like sure, I'm happy to use auto
when writing code, but when reading an example I would very much like to immediately be able to know what the return type of a function is. In general, I think the use of auto
should be restricted to cases where it increases readability, and not used as a lazy way out of writing out the types, which I think is one of the benefits of C++ vs. Python in large projects.
Using the wrong filament isn't Darwin Award worthy. Test firing a newly manufactured weapon with your hand is. And that would be true even if this wasn't an experimental home-made design...
The amount of people I've been helping out that have copied some code from somewhere and say "it doesn't work", and who are dumbfounded when I ask them to read the surrounding text aloud for me...
Along the same line: When something crashes, and all I have to do is tell people to read the error message aloud, and ask them what that means. It's like so many people expect to be spoon-fed solutions, to the point where they don't even stop to think about the problem if something doesn't immediately work.
While I do agree with most of what is said here, I have a hangup on one of the points: Thinking that "docstrings and variable names" are a trustworthy way to indicate types. Python is not a statically typed language - never will be. You can have as much type hinting as you want, but you will never have a guarantee that some variable holds the type you think it does, short of checking the type at runtime. Also, code logic can change over time, and there is no guarantee that comments, docstrings and variable names will always be up to date.
By all means, having good docstrings, variable names, and type hinting is important, but none of them should be treated as some kind of silver bullet that gets you around the fact that I can access __globals__
at any time and change any variable to whatever I want if I'm so inclined.
This doesn't have to be a bad thing though. I use both Python and C++ daily, and think that the proper way to use Python is to fully embrace duck typing. However that also means my code should be written in such a way that it will work as long as whatever input to it conforms loosely to whatever type I'm expecting to receive.
Ok, I've done some double checking: The Bantu expansion is approximately what I thought it was. I believe the language group I was thinking about that survived the Bantu expansion was the Khoisan.
My (very coarse) knowledge of this comes from a mixture of reading Jared Diamond (Guns, Germs and Steel) and from following it up with some Wikipedia. In short: The genetic makeup in a lot of the world is relatively dominated by the groups that were the first to adopt agriculture in their respective regions. Before the Bantu expansion, phenotypes south of Sahara were more varied, just like the phenotypes in the Americas were more varied before the corresponding "European expansion", or the equivalent expansion that happened in South-East Asia (I don't remember which society stood behind that one).
According to Diamond, we can trace a lot of (most?) surviving human phenotypes and languages back to relatively few societies, which after adopting agriculture, more or less wiped out / displaced neighbouring cultures due to increased resistance to a lot of infectious diseases and massively increased food production / need for land. This mostly happened less than 10 000 years ago, i.e. far too recently for natural selection to have a major impact on things like skin colour, hair type, height, facial features, etc. afterwards.
So: While major trends in phenotypes are of course a result of natural selection / evolutionary pressure in specific regions (resistance to skin cancer / sunburn vs. vitamin D production, or cooling down more efficiently with a wider nose vs. retaining heat with a slimmer one, or having an eye-shape that lets in more light vs. provides more shade), a lot of what we see today is simply a result of what phenotype the first group a given region that adopted agriculture had. This means that looking at the dominant phenotype in a region today will not necessarily give a good impression of what phenotype that is "optimally designed" to survive in the conditions of that region.
I seem to remember that the majority traits south of Sahara (black/very dark skin, and curly hair) can be traced back to something called the "great Bantu expansion", which was essentially the result of a group of people with these traits developing agriculture and wiping out most other peoples south of Sahara, much like the Europeans did to the Americas.
Some cultures south of Sahara did survive, which can be seen both genetically, and in some languages that are completely from other languages in the area (I believe the family of languages with "clicking" sounds is an example).
I'm on my phone now, but I'll have a double check and come back.
Well if you need something to work with Fortran...
Sorry, but I honestly don't get it. I I were to point out the crown jewel of open source, it's gcc. gcc is the backbone and survival condition for so much modern industry that it's not even remotely funny.
Take away gcc, and the world will likely burn for a substantial amount of time until people start making in-house or proprietary alternatives.
If there's any American reading this: Please vote. The world needs you and all your friends to vote. I'm begging you, please get out and vote.
I didn't say that. I'm pointing out that we spent shitloads of money that could have gone to out own schools and healthcare, and a dozens of young soldiers lives (I'm not American), and we were clearly told by both the local population and a bunch of other countries to fuck off.
So yes. I'll say it. Fuck em. We don't owe them shit. We came down there, suppressed the Taliban, built s schools and hospitals, and secured elections, and when we left, the Afghan army, which we had trained and supplied, folded immediately.
We can't be held responsible for them not revolting against a suppressive regime. We gave them all the tools to keep the taliban out, but they chose to fold. That's on them.
It's tragic, but that's how it is. If they're not willing to fight for their own rights, they won't get to enjoy them.
There's a lot of good advice here already, especially that wool is the gold standard - nothing synthetic cuts it. I want to add that the absolute key is about layering, and not over-stuffing.
What keeps you warm is primarily the air trapped between your layers, which means that three thin layers can be a lot better than one thick layer. This also means that you will be freezing if your layers are too tight. If you have two thin layers, and put on a sweater, and that sweater feels tight, that likely means you're pushing out the air trapped in your inner layers, and they won't be as effective. The same applies when putting on a jacket.
So: You want a thin base layer (think light, thin wool shirt + long johns), then an optional medium layer or two (slightly thicker wool shirt, I have some in the range of 200 grams), and finally a thicker sweater for when you're not moving. These should increase in size so that they can fit the thinner layers underneath, and you want your jacket big enough to fit all the underlying layers.
Finally: When you're moving around, you will get stupidly warm and sweaty unless you take off clothes. It's better to take off some stuff and be a bit cold for the first 10 minutes of moving than to get sweaty and be cold for the rest of the day. If (when) you do get cold, running in a circle for 10 min will fix it (run at a calm, steady pace, if you're really cold it might take longer to get warm than you think, but you will get warm if you move).
In short: Being in a cold climate is just as much about how you use your equipment, and how you activate yourself to stay warm, as it is about what equipment you have.