I find the juxtaposition of productive and capitalism odd. The entire point of capitalism is to slush money around. That is the definition of productivity in capitalism but somehow some people got the money part mixed up with "value" and now they need fancy mental gymnastics to explain how the system working as intended is in fact not working.
Basic system theory 101 says if you work with and optimize a proxy instead of the true metric then you will always deviate from your true and intended path. Money is only a proxy for value and some people did not get the memo. You need some second and third order correction terms if you use proxies.
I honestly don't think you have to do any of those things. You don't need to blog or contribute to OSS or write code on the weekends. I've never had a hiring manager care about any of it. Most just care that you can get along with other people and solve problems relevant to the job. Which is really another way of saying they want well adjusted people.
You can do all those things as well but most people won't care. Blogging and pushing code to GitHub has helped me become a better programmer but it has not directly helped me get jobs.
But you see how you are making my point. Mathematicians as a bunch are very creative and precise at the same time. Going back to my point about the article setting up a false dichotomy. Mathematicians study formal systems which are as precise a thing as humans have managed to make so far. Even if their initial exploration of new territory is not precise it is always in the context of formal systems.
I think the problem is the article is trying to put vaguely defined terms on some spectrum and the tension he is talking about is just an artefact of his own special mapping. Really there is no tension and this mapping is not canonical because the terms are not well-defined. So comparing accuracy, creativity, etc. on a single spectrum doesn't make sense. Mathematics being an existence proof that you can do both things at the same time.
I've recently started reading up on systems theory and cybernetic systems and contrary to what the names suggest learning more about the theory does not make you better at designing systems. You get much more attuned to how large and complex systems fail but there is no crank you can turn that will provide insights and then let you implement changes that will lead to positive progress.
No matter what you do at the end of the day you have to still convince people that what they're doing is probably wrong and no one ever wants to hear that. Cognitive dissonance and sunk cost thinking almost always trump any kind of analysis and the system continues to operate as it has always operated until a large enough shock shakes it and changes are made. Most often the changes are made too late and great human misery is the result. Current climate issues is one prominent example that comes to mind. Uber and Zenefits being the other examples that I can think of were earlier interventions would have helped.
Not just visually. It is also conceptually much more aesthetically pleasant. I still don't know how metaclasses, descriptors, __magic__ methods, multiple inheritance, all the different string formatting schemes, generators/co-routines, etc. work in Python. The amount of stuff you have to learn in Python is a lot more than in Ruby.
New rule. Any sufficiently advanced type system is an ad-hoc re-implementation of Prolog. Once you have unification and backtracking you basically have Prolog and can implement whatever Turing machine you want with the type system.
> When I was a teenager, I got a Dreamhost account and learned web development by uploading PHP scripts and refreshing the page until I got what I wanted. The world of transpilers and SPAs has robbed beginners of this simple experience.
This is the thing that makes me angry the most. We started with interpreted languages with fast feedback loops and then "real" software engineers got into the game and turned all these interpreted languages with fast feedback loops into "compiled" messes with nightmarish debugging experiences.
Fast feedback loops and obvious debugging trails should be a feature that more people pay attention to and the more layers you add the less likely you are to have either one.
I'm pretty sure Peter Thiel is a psychopath. Not as a derogatory term but as it is is defined in a clinical sense. Which is fine but what I find disturbing is that somehow we have allowed him to rise to such high positions of power. I think collectively as humans we should have done better. We shouldn't have made this guy a billionaire.
I don't really know what the article is talking about. Pretty sure it's clickbait. Hadoop could enable extreme vetting of immigrants. You don't need Palantir to help with that.
Talk is cheap and political discussion is especially cheap. How do you propose to lead constructive discussions around these matters that will lead to actionable items for cleaning up the mess?
From what I have seen I don't think HN in its current form is the right forum for those discussions. Even scanning this sub-thread prompted by your comment I'm already starting to see that the discussion seems to be devolving. Here is a group of technologists that could in theory spin up another forum with moderation tools and integration with HN to have back and forth between the two forums based on what "flavor" (political or technical) the discussion was going in and all I see is second-guessing and critiquing with no actionable and constructive items in the mix.
Try setting up a virtualenv on windows, linux, mac and then tell me there are no issues. Sometimes the versions won't even line up for some libraries because whatever works on windows will not work on linux will not work on mac. Same with ruby gems and npm modules that require compilation.
I really don't understand why developers use macs at all. They're not good dev machines. All production systems I work with are some flavor of linux (mostly ubuntu). There is actually a real impedance mismatch when I'm using my mac for work purposes. All those cores and RAM become meaningless when I have to do everything in a VM anyway. My personal dev machine is a project sputnik running ubuntu 16.04. I can understand why designers would use them but programmers never made any sense.
I look forward to the day when every software developer has half a clue about monitoring, logging, high availability, configuration management, orchestration/scheduling, performance tuning, build/deployment pipelines, data management/archiving, security and exploit mitigation, etc.
The full-stack developer like the serverless/ops-less future is a pipe dream. Most technology organizations barely even know how to build the software to begin with let alone figure out the right way to operate it.
These d-wave guys are the greatest scam geniuses in history. First they make a "quantum computer" and now they're building trainable exo-suits. I don't even know where they come up with this stuff.
They said availability was "death of a child", not dropping log messages. The trade-off they've made here in terms of being available with some potential loss of visibility is the right one. The system overall is clearly simpler and simpler systems have simpler failure modes and so it is easier to add mitigation components on top that can recover from those failure modes to guarantee higher uptime.
I've never heard anyone say managing a production Kafka cluster was easy or simple. Well, anyone who has had to actually maintain such clusters hasn't said it anyway.
I've started using terraform and packer since I wrote that post. I'm going to stick with those tools for the time being. Configuration management is solving a problem that no longer exists. Pre-bake your infrastructure and then download the rest at runtime if you can't do it at bake time.
Coupled with docker, hashicorpt vault, and fpm I think the problem of deploying and configuring anything is pretty much solved and the remaining issue is basically how you go about doing orchestration for things like rabbitmq clustering which I don't think any of the existing configuration management tools try to address anyway. You either need to configure the topology ahead of time which kinda defeats the purpose of having a reactive infrastructure or you have to write some kind of custom thing on top of what you are using already which again kinda defeats the purpose since most of these configuration management tools try to be declarative and you often need imperative things to configure something like a rabbitmq cluster.
You're talking about kernel vs userland. That's not base vs non-base. The BSD distributions unintentionally muddy the waters by calling what is an equivalent of a linux distribution a base system and so lose out on the distinction you are drawing.
Basic system theory 101 says if you work with and optimize a proxy instead of the true metric then you will always deviate from your true and intended path. Money is only a proxy for value and some people did not get the memo. You need some second and third order correction terms if you use proxies.