HN user

cdoxsey

3,151 karma
Posts57
Comments385
View on HN
www.pomerium.com 8mo ago

Sometimes Postgres Isn't the Answer

cdoxsey
5pts0
www.doxsey.net 3y ago

Strategies for Working with Message Queues (2019)

cdoxsey
3pts0
www.doxsey.net 4y ago

Strategies for Working with Message Queues

cdoxsey
2pts0
www.doxsey.net 4y ago

Fixing Interface Erasure in Go

cdoxsey
2pts2
www.doxsey.net 4y ago

The Fall of Trada

cdoxsey
1pts0
www.doxsey.net 4y ago

Tacit Knowledge

cdoxsey
1pts0
www.doxsey.net 6y ago

On Counting (2017)

cdoxsey
2pts0
www.doxsey.net 6y ago

The Fall of Trada (2019)

cdoxsey
15pts4
www.doxsey.net 6y ago

How to Build a Custom Kubernetes Ingress Controller in Go

cdoxsey
1pts0
www.doxsey.net 6y ago

A Response to Hello World

cdoxsey
11pts1
www.doxsey.net 6y ago

Strategies for Working with Message Queues

cdoxsey
3pts0
mereorthodoxy.com 6y ago

An Intercourse with Ghosts: The Unabomber, Irony, and Terror

cdoxsey
1pts0
www.doxsey.net 6y ago

How to Build a Custom Kubernetes Ingress Controller in Go

cdoxsey
1pts0
medium.com 6y ago

Deep Fakes, FaceApp and Child Pornography

cdoxsey
2pts1
mereorthodoxy.com 6y ago

We’re All Truman Now: On Shoshanna Zuboff’s the Age of Surveillance Capitalism

cdoxsey
3pts0
www.doxsey.net 6y ago

Software Tracing with Go

cdoxsey
2pts0
www.doxsey.net 6y ago

Software Tracing with Go [video]

cdoxsey
1pts0
www.doxsey.net 6y ago

Software Tracing with Go [video]

cdoxsey
2pts0
www.doxsey.net 7y ago

An Age of Spin

cdoxsey
1pts0
www.doxsey.net 7y ago

Was Go's Try Proposal a False Flag?

cdoxsey
6pts0
www.doxsey.net 7y ago

An Age of Spin

cdoxsey
1pts0
mereorthodoxy.com 7y ago

Book Review: Dignity by Chris Arnade

cdoxsey
2pts1
www.doxsey.net 7y ago

The Fall of Trada and the Facebook Marketplace That Never Was

cdoxsey
1pts0
www.doxsey.net 7y ago

Go Concurrency from the Ground Up

cdoxsey
2pts0
www.doxsey.net 7y ago

Go Concurrency from the Ground Up

cdoxsey
1pts0
medium.com 7y ago

SVT-AV1: a scalable open-source AV1 framework

cdoxsey
3pts0
allthingsnew.tech 7y ago

Should Christians Work in the Tech Industry?

cdoxsey
3pts0
www.doxsey.net 7y ago

The Fall of Trada and the Facebook Marketplace That Never Was

cdoxsey
1pts0
www.theverge.com 7y ago

Apple announces Apple Card credit card

cdoxsey
690pts750
www.doxsey.net 7y ago

The Fall of Trada and the Facebook Marketplace That Never Was

cdoxsey
1pts0

Never had psychosis but have had a few major depression episodes (sleep all day, lose a bunch of weight, get stuck in a cycle of negative thoughts, etc).

I did end up in the hospital once for a week. I found myself repeating the same actions over and over again because I couldn’t remember doing them, I had a hard time speaking (everything came out in slow motion and stuttering), and I think I had a bout of depersonalization. The DRs thought I was drunk or on something. I wasn’t. Never did figure out what happened.

It was probably all stress related. I had to quit my job and move closer to family. Ended up costing me $$$ due to bad timing (lost options that weren’t fully vested) I have to be very careful about work.

I tried therapy and medication. Maybe it helped. Maybe it’s just something you learn to cope with. Recognize it for what it is. You’re a person who’s somewhat fragile. You might have a breakdown. If you can recognize warning signs try to catch it early. I have a lot of respect for people who have grit and endurance - I want to be the kind of person who can do big things and work hard and accomplish the seemingly impossible - but at least in my experience, mental health doesn’t always play well with that and it takes a long time to recover.

Personally work was the “main” thing I put energy into for a long time. And it’s not anymore. And that makes me sad. But at least I’m not losing my marbles anymore (knock on wood).

First of all its not a misrepresentation of the memo. The memo states:

Users should log into applications, rather than networks, and enterprise applications should eventually be able to be used over the public internet.

Second with regards to this statement:

Opening up your internal network to the internet and rely on every app to do security correctly is a ridiculously bad strategy.

That's precisely what zero trust networking is. Ala Google's BeyondCorp:

Virtually every company today uses firewalls to enforce perimeter security. However, this security model is problematic because, when that perimeter is breached, an attacker has relatively easy access to a company’s privileged intranet. As companies adopt mobile and cloud technologies, the perimeter is becoming increasingly difficult to enforce. Google is taking a different approach to network security. We are removing the requirement for a privileged intranet and moving our corporate applications to the Internet.

(https://storage.googleapis.com/pub-tools-public-publication-...)

Maybe they're wrong about all this, but it's not anti-advice. It's a legitimate security model being pursued by many different companies.

The US has social safety nets.

Nearly half the federal budget is spent on Social Security, Medicare and Medicaid. And there are numerous other programs: unemployment, housing assistance, snap, etc.

There are also state and local programs as well as private charities.

I was given a 2-hour coding challenge once to build a language server for a programming editor. It had to implement 3 functions:

1. show help text (type/doc string) for a word

2. go to definition

3. find all references

My first thought was "this is an absurd request for a two hour coding challenge". My second thought was "boy I hit the jackpot, a few years ago on a whim I built my own language server for Go in sublime text and could probably crank out a new one pretty quick"

Sadly despite my best attempt they rejected me. They never did give me an explanation. (fwiw: https://github.com/calebdoxsey/languageserver-challenge)

I wish I could say it was a fluke, but I've been rejected by lots of companies due to the coding challenge. One day I'd really love to see what the passing code for these challenges looked like. Maybe I could learn where I dropped the ball.

You might find freedom.to useful. You can block websites for certain times of the day and it works with all devices.

I've found that if you can break the habit of reaching to some site when you're bored the addiction falls off pretty quick.

Programming has a lot downtime sometimes - waiting for a build or a long test run - and there's sometimes a steep context switch to working on something else. (At least for me if I start something new I'll forget what I was working on before) It's those times when I found myself on Twitter or Reddit.

One thing I've been trying to do instead is read an actual book - non-fiction does ok, I can usually follow the argument reading a few paragraphs at a time. And Kindle makes it easy to read in your browser and pick up where you left off on an e-reader.

One tricky thing though: I blocked YouTube only to be reminded that Google's login still goes through a YouTube domain, so I inadvertently made it harder to login :(.

It's about keeping things in perspective. Sure explore the reasons or try to fix the backward slide, but maybe we should have a basic posture of gratitude. I suspect most of us have it pretty good in life.

Also the consequences for policies are not always easy to predict. As an example, making college free seems great for the children of the upper middle class. But what about the majority of people who don't go to college?

And the richest person in the world 30 years ago couldn't afford a single iPhone because it didn't exist.

Shelter 500 years ago was barely better than a single-room, unheated hut. And you probably didn't even own it. You were a serf beholden to a feudal lord. (And that feudal lord didn't even have air conditioning)

And your food was whatever you could grow. In a good year maybe you made a little more than you needed. In a bad year you starved to death.

Even the bottom 1% in the US today have access to far better healthcare than the richest 1% 150 years ago. Antibiotics didn't even exist.

All 6 of the things you mentioned are far better off for almost anyone living today.

Also maybe wages have stagnanted in the US for this generation, but keep in mind the wealth improvements in the rest of the world have been staggering. Billions of people in India or China have been lifted out of poverty.

Focusing on the plight of college educated, middle class young adults seems pretty bizarre when compared with the far greater suffering of so many.

Sure strive to make things better... But if your worst trouble in life is having to work 20 hours a week to live in a comfortable apartment in the most expensive and exclusive city in the country... I'd say things were going pretty well for you.

For work I used to use Evernote, but these days I just have a folder of markdown files named by date. (20200208.md)

Anytime I run a new command, SQL query or work on a new issue I try to write it down in the note before running it. Then I commit+push everything at the end of the day.

At least for me, knowledge degrades quickly. So having a history of that command I ran to fix X three weeks ago is a life saver.

I've found that better organization isn't really needed because find is good enough and I usually have a vague sense of where I'll find what I'm looking for anyway.

Also these day private GitHub repos are free. So it doesn't cost anything to setup.

For teams you can use runbooks as the same concept. Anytime you on work on an on-call issue record the steps you took to fix it. At Datadog we just used GitHub issues in a dedicated runbook repo, but almost anything could work. The point is to reduce friction as much as possible and eliminate decision points. You can always clean it up later but if the barrier for entry is too high developers won't bother doing it.

Remember this is a developer at their worst - it's 3am, they're fixing something they might know little to nothing about, and they're working as fast as possible under pressure. Any additional procedure needs to be as lightweight as possible.

But if you get it right, man does it make on-call and onboarding easier.

The oil and gas industry is essential to the well being of billions of people. It's literally the fuel for the world’s economy.

Without it we would have substantially less food, travel would be all but impossible, and the technology sector would grind to a halt.

Eliminating the industry would cause harm on a scale the world has never seen. An entirely predictable and preventable catastrophe done in the name of a naive environmental absolutism.

Maybe let’s come up with solutions that don’t require pushing millions of people into poverty because they can no longer heat their homes or grow their food.

Also FWIW, the moral accountability argument here is pretty shaky reasoning. A great many people use Google products for evil. That doesn’t make Google morally responsible for it.

I've interviewed mostly at startups. I've worked in Boulder, Menlo Park, Austin and NYC. Once I spent quite a while in NYC trying to get a job only to give up, move back to Boulder and reach out to a friend to get a job. I'm so grateful for what he did for me. If not for him I may not be in this industry anymore.

My first job was for a non-startup web development shop. That interview was entirely non technical, but I fear it was the last of a dying breed.

I did come very close to taking an offer at an insurance company once.

Right. I'm not good at those kinds of questions. I can code quickly but rigorous thought takes time for me. I need to ponder a design question for a while or work on two or three prototypes before I feel like I know what to do.

FWIW I've also seen the opposite. A developer who was a very good thinker and talker, but got stuck for two weeks on an issue with a Google API. It took me five minutes to figure out what was wrong. Not cause I'm smart, actually the opposite, I have to break problems down to things I can understand and it's that process which lends itself well to fixing bugs.

But I'm sure he would've run circles around me when designing an API or architecting out multiple systems.

Indeed this is something I've had to learn to do. I'll spend a few weeks working coding problems on whiteboards, practicing answering questions, clean up my resume, try to showcase my best work on GitHub, and spend hours on each cover letter.

It helps a little but I know it will never be something I'm very good at. Sometimes things in life are hard and never get any easier.

I can be very quick and can work diligently (grit my way through a problem) but I struggle with design and some high level concepts.

Interviews ask abstract and theoretical computer sciency type questions and in real life I would usually google my way to a solution on those types of questions, so I do very poorly on the spot. (forget everything or say something dumb)

But in practice I can usually deliver quicker than my teammates on real world problems.

On the flip side. Sometimes you're just not that good at stuff despite your best efforts.

In college I really struggled with math. Which was a challenge because computer science has you take a lot of math classes. In my calculus class I studied so hard for the final. Did every problem in the book. And I still just got a B in the class.

At the same time my programming classes were really easy. I didn't study at all and the homework was trivial.

Based on my interviewing history I'm not in the 95th percentile of programmers - I'm routinely outright rejected and don't even land the on-site interview. And this is basically my best skill for which I've invested an enormous amount of time and energy.

The movie Amadeus really nails this idea. Salieri has one goal in life: to create beautiful music. And he achieved some success, but then he meets Mozart - " a boastful, lustful, smutty infantile boy..." - yet he creates the most amazing music he's ever heard.

All I wanted was to sing to God. He gave me that longing... and then made me mute. Why? Tell me that. If He didn't want me to praise him with music, why implant the desire? Like a lust in my body! And then deny me the talent?

I've experienced that frustration many times in my life.

Salieri is a tragic figure though - his response is one of contempt and hostility to the injustice of his life. But he's missed the point. All success and talent in life is a gift.

Maybe your frustrations in life are an opportunity to teach you humility and to be gracious to others.

Go is a general purpose programming language. It is suitable for a large variety of programming tasks beyond network services (though itself a massive problem domain)

For example Go is great for building cli apps. Simple, easy to install and easy to understand.

For another Go has surprisingly good windows support. Google didn’t do that.

For a third Go has robust cryptography libraries.

There are actually lot’s of other contributions from the community if you’d take the time to look.

Sure. That kind of code is very similar in both languages.

Rust will probably be faster because it benefits from optimizations in LLVM that Go likely doesn't have.

Go arrays of structs are contiguous, not indirect pointers.

Kubernetes was based on Google's Borg [1].

Netflix uses Titus and Mesos [2].

I'm not sure what Amazon uses, but I'm sure they have some sort of system to do this. They offer plenty of managed solutions for customers (including EKS).

Apple's more of a product company, but they seem to use Kubernetes for some things [3].

And finally facebook apparently has something called Tupperware [4].

So all the FAANGs use something like Kubernetes to manage infrastructure.

[1] https://en.wikipedia.org/wiki/Borg_(cluster_manager) [2] https://queue.acm.org/detail.cfm?id=3158370 [3] https://jobs.apple.com/en-us/details/200120515/virtualized-c... [4] https://www.slideshare.net/Docker/aravindnarayanan-facebook1...

You have two choices when it comes to utilizing multiple cores: threads and processes. Threads are hard, but sharing data between processes is hardly any easier.

Maybe they're a bad idea, but these days you have no choice but to learn how to use threads. AMD's run-of-the-mill processors have 16 cores, Intel's 8. Servers have lots more. Heck even your iPhone has 6.

The clock rate on CPUs isn't getting any better. It's just more cores from here on.

Exactly, and you can't solve a problem by making it more complex.

Sure you can. A resource scheduler is more complex than not having one, but it solves the single-point-of-failure problem and the bin-packing CPU+memory problem.

A more complex infrastructure means you can have dumber apps.

And there are lots of areas where this is true: TCP is a complex protocol which makes it easier to build reliable communication, CPUs have complex caches which make simple code faster, RAID makes multiple disks behave like a single disk to improve reliability or performance, compression is very complex (esp for audio/video) but dramatically reduces the size...

The implementation of kubernetes may be flawed, but the idea of kubernetes makes a lot of sense. It solves real problems.

But it turns out Kubernetes itself is substantially more complicated to package and deploy than the old solutions

Not really. It's pretty much the same level of complication if you used the same components. You could use all the same tools: chef, puppet, ansible, etc. Once you have it available though other applications are easier to deploy.

At any rate, this tool provides something entirely different. It lets you image the entire data center and reproduce it somewhere else. Not sure how you would've done that before.

Check out the 2010 movie frozen about skiers getting stuck on a lift.

Not the best movie, but I love this idea of just how close we live to total disaster... And all it takes is a few small missteps. We think we have a lot more control over our lives than we really do.

So I had experience consuming their pipeline and Gnip had a real product. Also, the people running Gnip are still in downtown boulder running the Cognizant office. They are very competent.

I didn't mean to paint Gnip in a bad light. I worked there not too long after I worked at Trada. They definitely had a solid product and many competent engineers. Certainly a lot more capable than I was. I learned a lot while I was there.

But they ran into issues early on and had to undergo significant restructuring: https://techcrunch.com/2009/09/28/gnip-clips-60-percent-of-s....

If you're going to go the redis route Amazon has a managed service: https://aws.amazon.com/elasticache/

It shouldn't be to expensive and can save you a lot of time in setup.

I think I'd also recommend using ansible instead of plain SSH. It has a lot of stuff built in and for simple deployments shouldn't be too hard to pick up.

Future you will probably appreciate an off-the-shelf solution, instead of something custom :).

It is nice seeing something like this put together though. There are so many moving pieces in a project it can lead to decision making paralysis where you find yourself going down rabbit holes, second guessing everything you do and seemingly never getting ahead. At least that's what happens to me when I'm doing something new.