HNHacker News
TopNewBestAskShowJobs

dkhenry

4,522 karma · joined August 12, 2011

submissionscomments
dkhenry··on 30% of Children Ages 5-7 Are on TikTok
When you see a societal pattern that is physically, and mentally bad for your kids why would you want them to fit in with it?
dkhenry··on 30% of Children Ages 5-7 Are on TikTok
My wife and I also have three kids that share a simple flip phone, with no real access to social media, or the internet. A good number of their peer's do have unrestricted access to smart phone's, and as they have gotten older I think they have started to turn the corner seeing how destructive it is. My son lamented about his neighborhood friends never wanting to play because they are addicted to TikTok, and even thought there are still times he begs us for a smart phone so he can fit in, its starting to sink in that unregulated screen time is a huge problem.

We have also slowly increased his freedom to regulate his own screen time, both TV and Computer, and have seen him self-regulating, and commenting how easy it is to get sucked into being a screen zombie.

dkhenry··on Amazon Aurora Limitless Database
but Spanner isn't Postgres compatible, they have their own transaction processing layer that is built for TrueTime. If this is using the Postgres frontend how are they incorporating TrueTime into the normal Postgres MVCC model that uses the monotonic xid.

edit: More details make it seem like this _isn't_ Postgres on the frontend, its just mostly postgres compatible, which would explain how they got away from the xid based MVCC. So it seems like this is an entirely new distributed database, rather then a modification to existing postgres.

dkhenry··on Amazon Aurora Limitless Database
I appreciate the context, but this just adds so many more questions. How are you integrating hardware clocks into the Postgres transaction model? Is this just postgres wire compatible like Cockroach or Yugabyte, or have you modified Postgres MVCC implementation to not use the standard TID. Does this support all of postgres at the Transaction coordinator ?

Super exciting announcement, and I am really looking forwards to learning more!

dkhenry··on Amazon Aurora Limitless Database
This sounds very exciting, but I would have greatly appreciated some actual technical details. From this statement

> Sharded tables – These tables are distributed across multiple shards. Data is split among the shards based on the values of designated columns in the table, called shard keys.

It sounds like this is very much managed CitusDB on top of Aurora, but without any details about the implementation its impossible to know if its just repackaged Citus, or some new novel technology built specifically for Aurora.

dkhenry··on What's the Best City for Techies in 2024?
I would argue the best city for tech has never been the bay area. Its the best place to make a lot of money in tech, but by far the best engineers I have met, and the ones who have the happiest most well adjusted lifes do not, and never have lived in the bay area. Seattle is somewhat similar, for new transplants, but there is a historical core that had a great quality of life previously.

If you are starting a company today and want the top decile of talent, you will mostly find them looking for remote roles. You will find some great workers who live in the big cities, and still want the in office experience, but by far the best people are living remotely.

dkhenry··on What's the Best City for Techies in 2024?
I am pretty sure most people who work for Google and live in the south bay could tell you stories of having their car windows smashed in, and I do mean most. I think it is about 100% of the googlers and ex-googlers I know have had that experience.

Also as of two years ago, the chances that your Catalytic converter was stolen unless you parked your car in your garage was getting near 50% as well.

I suppose if you limit crime to just "dangerous" maybe it comes out on top, but I would prefer to be somewhere that I don't have to worry about 50,000 of my neighbors OD'ing on the street every year.

dkhenry··on At what age should a teenager be given a cell phone?
The article makes it seem like kids one day having a phone is a fait accompli, I like to think of smart phones as this generations tobacco. Right now it looks like a universal practice, but we already know the significant mental and physical issues that have been caused mainly by constant access to our phones and the networks they connect us to. I hope my children never own or use a smart phone. If they do I hope they are disciplined enough to use it only as a very capable tool, and not as a necessary accessory to their life.

My children currently have access to a phone that can place call's and send text messages. Maybe it would be nice to have GPS on it once they get to driving age, but everything else is very much detrimental to their life and happiness.

dkhenry··on PgBouncer is useful, important, and fraught with peril
What about running PHP, Django, Node, or Ruby based applications ? They all do connection per request so the pooler on host gives you an immediate improvement to connection latency.

Even if you are using a language with a built in connection pooler like Go or Java being able to manage your connections external to your application is enough of a benefit to keep the pooler separate.

dkhenry··on PgBouncer is useful, important, and fraught with peril
Stackoverflow is very much the exception not the rule. Most of your top tier software companies have server fleets that scale well past the 10,000's of nodes level, and for container based workloads I don't think its uncommon to have even medium sized companies running 100k+ containers.
dkhenry··on PgBouncer is useful, important, and fraught with peril
The constraint is less often the database in reality then in theory. Expecially when you consider many large scale applications are doing complex things. A normal request trace might only spend 30% or 40% of its time in the DB call. When you consider that a single postgres database can clear 200k QPS, you start to get to a world where you have thousands of hosts. If you tried to tune the in application connection pool to suit the various scale of deployments you would quickly find that having a proxy is both simpler and safer.

I would confidently state that most large scale applications have run into the situation where they have scale up their application worker fleet, and then crashed their database with too many connections. Coordinating the size of the worker connection pool in a world where we have elastic application workers is enough of a task that deploying a proxy is really the simplest and best solution

dkhenry··on PgBouncer is useful, important, and fraught with peril
This might be the best explanation I have seen of the benefits and pitfalls of deploying pgbouncer ( or any connection pooler as they are all similar ). The only thing I would add is from a deployment perspective, you should run two layers of pgbouncer. One that runs on the same host as your application ( sidecar container in k8s ), and one global layer that all connections to your DB must pass through. Every large scale application generally gets to this kind of architecture for various reasons, and it helps to just start with it. Some people will argue that connection pooling at the application layer is good enough to replace the sidecar proxy, but from my experience management is simplified by having the pooling done via the sidecar.
dkhenry··on Scaling serverless Postgres: How we implement autoscaling
How does the network switch occur when you live migrate the VM? I see some mentioning of multus-cni, but I was not aware of anything in kubernetes that allowed you to migrate a network interface across nodes.
dkhenry··on Builder's Remedy goes into effect in many California cities tomorrow
This is not at all true, if you wanted character to your community then the community should have approved a building plan that kept the character and allowed for more housing. As it stands these communities have said no to everything and now housing is being foisted upon them, and I say good. Too many people and families have been displaced by the absolutely absurd housing situation in California, and the failure of the people of California to address the cost of housing in their communities shows their abject dismissal of the overwhelming humanitarian toll they have inflicted on their neighbors and the environment.
dkhenry··on ErgodoxE EZ – an ergonomic keyboard with open source firmware
This is a great entry point to split ortholinear keyboards. Build quality is great, its well supported, and its very easy to set up and get using it. The moonlander they sell is also pretty good. I like the ergodox style thumb cluster better, but the moonlander is super portable, so that helps if you are moving around a lot.

When I converted to split ortholinear it took me about a month to get back to the same proficiency that I had with a standard keyboard, so if your looking to make the plunge make sure you set aside time to practice the new layout. I would set up two keyboards so I could switch back after a few hours and still be productive for the day while I was getting used to the new layout.

dkhenry··on Man who built ISP instead of paying Comcast $50K expands to hundreds of homes
You should check their quarterly earnings I think you would be shocked. In the second quarter Cable and Broadband account for 7.4 Billion in profit, and have a profit margin near 50%. NBC Universal only accounts for 1.9 Billion and their theme parks are 632 Million. By far cable is the largest driver of profit.

https://www.cmcsa.com/news-releases/news-release-details/com...

dkhenry··on Man who built ISP instead of paying Comcast $50K expands to hundreds of homes
Its so expensive that Comcast only made a profit of 42 Billion in 2021, while providing a lower quality of service than what a small ISP in Michigan can give you for a one time 2M in government grants.
dkhenry··on Introducing ReadySet
Is there a way to federate which keys are commonly accessed ? Like if I commonly access the entire table can I direct inbound traffic to different application servers and have them access different caches so each cache can pull only a subset of the data into the cache, and not worry about things like which keys are being written globally
dkhenry··on Introducing ReadySet
I am really excited to see where readyset can take this technology, if deployment is as simple as they say this sounds like an instant win for any high throughput service.

I am curious how they handle queries that would overflow local main memory, like if I just had a PK lookup on a 10TB table you obviously can't store all that in RAM, and would still need to do some form of cache invalidation.

dkhenry··on Show HN: PgCat, Postgres pooler with sharding, load balancing and failover
I am really excited to see this project. I can't tell you how many times my team at work has hit a limitation with pgbouncer and swore up and down we should just re-write it in rust.

Looking forwards to where the project goes!

dkhenry··on California moves to recommend delaying algebra to 9th grade statewide
I am glad that we can disagree, and I hope you would spend some time considering that while the research has progressed we have experienced a rapid decline in the subjective and objective quality of education.

Just because I completely reject the ideas you may be involved with researching doesn't mean I am ignorant of them, I just haven't been convinced that they are based in reality.

dkhenry··on California moves to recommend delaying algebra to 9th grade statewide
You are correct that 30 is on the high side, but I have seen classrooms in Philadelphia with 30 students to a single teacher ( 3rd grade, during the 2005 school year so it may have changed since then). However even at lower ratio's the point remains, you need to hand hold the kids, and we don't give our teachers the time or flexibility to do that.
dkhenry··on California moves to recommend delaying algebra to 9th grade statewide
Many decades of the lived experiences of children in other countries disagrees with that research. Children in eastern European countries learn advanced concepts from as early as second grade. In asian countries they are introducing Algebra in 6th grade or earlier. This is the problem California finds its self in. They have wonderful "research" showing that kids pick up the concepts better if you wait till they are older, but they ignore the lived reality of the rest of the world, that with the correct teaching you could actually have them doing this work at a much younger age.

Even here in America, tutoring schools such as Russian Math or Kumon are successfully teaching advanced topics to children at much younger ages than the public schools. I know the temptation is to just say its its high aptitude kids that are being sent to these after school programs, but it's not. It is just rich kids whose parents want to give their children a leg up. Almost all children could learn the topics, but we won't put in the effort

dkhenry··on California moves to recommend delaying algebra to 9th grade statewide
The only thing distributed along the bell curve is adults who are willing to help the kids. Yes for some kids it will come pretty easy, even at very young ages, but even very young children can learn these concepts if you would just spend some time teaching it to them.

When you have a system set up to force one adult to teach 30+ children you will never be able to spend the time required to ensure everyone gets the concept, but that neglect comes at the cost of compressing the learning in later years which still only benefits those who have high aptitude. Which is exactly why they are pushing it back further, not because it will help kids learn more, but because more children will have the ability to learn it without much interaction from an instructor.

dkhenry··on California moves to recommend delaying algebra to 9th grade statewide
When I pulled my kids out of traditional school we started introducing concepts of Algebra and Geometry to them immediately (2st and 4th grades). It takes extra work, but they understand everything just fine. The problem isn't that the kids can't understand it. The problem is our education system is broken and no longer has the ability to teach children anything other than what might be on a standardized test. This is literally every subject, not just math. Writing, history, spelling, science, even physical education has suffered the same decline. The whole of the education system is a shell of its former self, and is more concerned with providing child care rather than instruction.
dkhenry··on Stacked changes: how FB and Google engineers stay unblocked and ship faster
You wouldn't do 40 completely unrelated things, they would be 40 aspects of a single thing. I would think 40 is getting a bit big as I have trouble getting stacks of more then 15 past a reasonable review, but the good news is ( at least with some tooling ) you can commit partial stacks, so I can let my team review the first 10, while I am working on 20-30 and everything still just works ( even after I merge the first 10 into the main branch )
dkhenry··on Stacked changes: how FB and Google engineers stay unblocked and ship faster
Correct it is just the group of sequential commits. You can keep multiple stacks on a branch, but the big idea is the branch is not the unit of review, each commit is the unit of review
dkhenry··on Stacked changes: how FB and Google engineers stay unblocked and ship faster
The big win for me is when someone reviews my code I can easily rebase the entire stack and push it back up for review, and thats all done with `git rebase -i HEAD~n`. That means when someone is actually reviewing my code its not uncommon for me to change something somewhere near the base of the stack and push up changes to the entire stack. You in theory can do that with branch based workflows but its a pain. As I understand this is what graphite is automating.

Once you can easily do that, it naturally leads to being able to do review per commit which it makes it so easy to unblock your work because your not fighting against git, and you aren't worried about getting immediate reviews because I know if any changes are requested its trivial to make those changes, and I still have branches, so if I do have unrelated work I can still use branches to isolate them. The last thing is another tool feature, when I rebase and push up changes I have to give a comment on that new commit so reviewers can see the changes that caused the new revision.

Honestly I was a heavy user of Github and GitLab having instituted one of them at three different companies, and built out CI pipelines and development procedures for multiple large engineering teams, and I now feel like I was using a hammer to pound in screws and I will never go back.

dkhenry··on Stacked changes: how FB and Google engineers stay unblocked and ship faster
I really didn't understand what the big deal was with Stacked Commits when I was just working in vanilla github, and it used to cause friction with members of my team who knew the stacked workflow, but didn't know the Github workflow. After moving to a company that uses stacked commits I will never go back to the pull request workflow. I think there are some famous people saying that Pull Requests aren't Code Reviews, and that becomes obvious once you start using stacked commits for code reviews.

This is essentially how cli git is set up to function, and mailing list driven workflows use this concept to have small incremental reviews. I am excited to see this tool, but honestly I have soured so much on github because of the lack of code review, that I would just as soon it didn't try to shoehorn into pull requests, and just did what people do with Phabricator, optionally use GH too host the git repo if you need to, but do everything else in a different tool

dkhenry··on Lessons learned from sharding Postgres at Notion
I would encourage you to join the vitess slack channel and let them know of any issues you run into there. Resharding has successfully been done at massive scale, so its unlikely that the system can't handle the load. Here is the blog post from when Github re-sharded live under full github load https://github.blog/2021-09-27-partitioning-githubs-relation...
← PreviousPage 2 of 34Next →