HN user

_qc3o

6,424 karma

[100, 107, 97, 114, 97, 112, 101, 116, 121, 97, 110, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109].pack('c*')

[ my public key: https://keybase.io/davidk01; my proof: https://keybase.io/davidk01/sigs/_rVceS38sLD_k2NaRQzwCKazNrOiXCl7wy36Mm567QE ]

Posts36
Comments32
View on HN
concourse.ci 9y ago

Concourse CI

_qc3o
163pts147
github.com 9y ago

GeoEngineer – Transactional control of cloud resources

_qc3o
22pts0
github.com 9y ago

Cuis Smalltalk

_qc3o
2pts0
brianknapp.me 9y ago

How do self-taught developers get jobs? (2016)

_qc3o
85pts75
www.paultaylor.eu 9y ago

Foundations for Computable Topology

_qc3o
2pts0
www.pangaro.com 9y ago

“Getting Started” Guide to Cybernetics

_qc3o
31pts5
bloomberg.github.io 9y ago

BuckleScript: write JavaScript faster, safer and smaller

_qc3o
214pts90
wiki.c2.com 9y ago

Tips for Reading Code (2014)

_qc3o
177pts69
rameznaam.com 9y ago

The Singularity Is Further Than It Appears (2015)

_qc3o
105pts133
www.complexification.net 9y ago

Complexification – Gallery of Computation

_qc3o
3pts0
learngitbranching.js.org 9y ago

Learn Git Branching

_qc3o
4pts0
turbomack.github.io 9y ago

Hybrid Types in TypeScript

_qc3o
8pts0
www.amber-lang.net 9y ago

Amber Smalltalk

_qc3o
87pts48
pouchdb.com 9y ago

PouchDB, the JavaScript Database That Syncs

_qc3o
321pts94
luajit.org 9y ago

DynASM

_qc3o
202pts55
arxiv.org 9y ago

Exact mapping between Variational Renormalization Group and Deep Learning (2014)

_qc3o
97pts13
www.npr.org 9y ago

We Tracked Down a Fake-News Creator in the Suburbs

_qc3o
358pts214
www.wincent.com 9y ago

A look back: Bram Cohen vs Linus Torvalds (2007)

_qc3o
90pts98
gustedt.wordpress.com 9y ago

Effective types and aliasing

_qc3o
1pts0
shaunlebron.github.io 9y ago

Drawing isometric boxes in the correct order

_qc3o
161pts40
lexi-lambda.github.io 9y ago

Climbing the infinite ladder of abstraction

_qc3o
77pts24
ngnghm.github.io 10y ago

Houyhnhnm Computing

_qc3o
73pts22
unisonweb.org 10y ago

Unison: How laziness brings good query performance without a black box optimizer

_qc3o
1pts0
blog.robertelder.org 10y ago

Should I Use Signed or Unsigned Ints?

_qc3o
78pts68
3blue1brown.com 11y ago

3Blue1Brown

_qc3o
4pts0
andreaferretti.github.io 11y ago

On Rust and Nim

_qc3o
133pts152
www.cl.cam.ac.uk 11y ago

Seven deadly sins of talking about “types” (2014)

_qc3o
131pts171
twitter.com 11y ago

Startup culture

_qc3o
3pts0
pagesperso-systeme.lip6.fr 11y ago

Lisp in Small Pieces: Table of Contents and Code

_qc3o
120pts40
gist.github.com 11y ago

Statically Typed Lisp

_qc3o
60pts22

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.

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.

Elementary OS 10 years ago

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.

Elementary OS 10 years ago

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.

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.

I read the article. The distinction is indeed arbitrary. How much do you need for a base system really? Do you need more than the kernel, network drivers, and the filesystem? Last time I checked FreeBSD came with way more than those things. So someone, somewhere decided to include a whole bunch of other things as part of the base whereas they could just as easily be addon packages. I think FreeBSD includes various compilers and perl by default. Why's that? How is a compiler an essential part of a system? There are no apriori reasons to make certain "addons" part of the base system and others not. Linux does not draw this distinction and reaps the benefits of a more coherent system.

The equivalent of "base system" in linux land is called a distribution and rightfully so. There is nothing basic about a distribution. It is an arbitrary set of choices made by the distribution maintainers and it is sold/advertised as such.

But I thought BSDs where more monolithic and coherent systems. How is drawing a distinction between base system and non-base system make that true? If anything Linux embodies that philosophy much better. There is no ad-hoc and arbitrary decision between what is part of the base system and what is not. The system as whole is coherently laid out without drawing any base/user distinctions. Daemons are daemons, binaries are binaries, tools are tools, configuration is configuration and they all go in predictable places to become part of the overall system.

If you're using yaml and templates then you've already lost. The only tool in this game that is not braindead is chef. Sometimes you need imperative things and conditional logic with iteration. If you don't have a real programming language then the contortions you have to go through gets really old really fast.

As for the deployment patterns. If you're in the cloud then you should be baking AMIs (or equivalent in your cloud provider) and shipping your configuration the same way you ship your application code, as native packages like .deb or .rpm. If you jumped on the docker bandwagon then your hosts are basically there to look pretty and host the containers which means you have some other way of getting configuration to your servers, i.e. etcd, consul, etc. so the problems brought up in this post don't exist in that setting. You are also probably using some kind of container orchestration system like kubernetes so again the problem of orchestration and deployment is offloaded to some other system. The only problem you have in that setting is doing a rolling deploy of containers and halting when things go wrong.

I think the only place any of these tools make sense now is some private on-premise cloud. Ever other place has already moved on.

Because everything is a file in unix derivative land. That is a common accepted practice at least but optimizing for the common case here is the right thing to do. How often do people need to manage EFI things through the filesystem and how much of an inconvenience is it to have the initial mount be read-only? The answer is obvious to me because I know people run `rm -rf` often enough that having a safeguard in place is the right thing to do.

Hmm, the essay does sound like it was written by a 20 year old indeed. Unfortunate then that she is maximizing learning by going to Quora. What exactly is she going to learn at Quora? The industry has very little to offer in terms of learning unless you are in the top echelons of Google's, Microsoft's, and Facebook's research divisions. Most software and product engineering is mundane drudgery and even if there is room to learn and grow you still have to deal with workplace politics, credit stealing, jealousy, etc. All those things are detrimental to learning.

Within the first 3 months she is going to learn everything there is to learn about Quora. By her own admission she will then move on to the next learning experience until one day she will realize academia is the only place that true learning happens.

Yes, lisp dialects are powerful but there is no magic. The road to enlightenment is long and arduous and can not be put in an HN comment box. It's like I said in my original comment, the only way to get there is to just continue to write code and explore different paradigms and languages.

This is really cool. If you're using Ubuntu or Debian as your base OS then you really should be managing your software with something like this and offloading your deployment to it as well. The benefits of a setup like that are dead-simple rollbacks and deployment scripts.