HNHacker News
TopNewBestAskShowJobs

ccleve

4,019 karma · joined April 20, 2012

You can reach me at ccleve[delete this]land at diesel[delete this too]point dot com.
submissionscomments
ccleve··on Show HN: A new way of ORM in Java
I wrote a package that took a different approach: just enough code to get rid of the JDBC boilerplate, but not enough to get in the way of using SQL:

https://github.com/dieselpoint/norm

Blog post on it:

https://blog.dieselpoint.com/a-minimalist-good-enough-approa...

ccleve··on My daughter was a creative genius, and then we bought her an iPhone
As the parent of a twelve year old, I can tell you that it's not so simple.

I gave my son an old computer a couple of years ago because he expressed a vague interest in learning to code like his daddy. That really didn't work out. But he discovered a great big world out there, and the computer was his window to it. And yes, the effects on his creativity were the same as for the child in the article.

So we tried, and partly succeeded, in limiting his time on it. But the truth is, there is a great deal for him to learn on YouTube, and we often do it together. His Minecraft creations are incredible. He maintains relationships with friends, including a distant cousin, through Discord and gaming. He sets up offline playdates the same way. These are not bad things.

Plus, with the pandemic, his schooling is all remote now. He has to log on in the morning and jump from Zoom class to class until early afternoon, and then all of his homework and reading is on Google Classroom. No, I can't limit access if we want him to attend school.

The problem here is not one of addiction and weak parenting. It's that screen time is genuinely valuable, and figuring out how to balance on-screen and off-screen activities isn't easy.

ccleve··on My daughter was a creative genius, and then we bought her an iPhone
How old is your child? Whether you can get away with this very much depends on the child.
ccleve··on Google Cloud SQL now supports PostgreSQL 13
Meanwhile, AWS Aurora is still on Postgres 11. Postgres 12 is more than a year old.

I've been using Aurora because it's managed, I don't have to worry about backups, it's faster and cheaper and easier to scale, etc.

But Postgres 12 has some really important features and performance improvements, and we really need them for my app. I've got to wonder why I'm paying for a managed service when they can't even manage to do a major version upgrade in a year.

ccleve··on API design is stuck in the past
Nobody writes OpenAPI directly. You use an API design tool for that.

There are two ways to design APIs: code-first and design-first.

With code-first you write your code and then automatically generate the OpenAPI spec from that. I do it in Java using JAX RS and it works fine. It is strongly-typed and has all of the same advantages you get by designing your protobuffers first.

The world is moving toward design-first, though. You use a tool to write your API and then generate code from that. It's a nice idea, but I'm not there yet because I don't like the tooling.

I expect that in a few years the tooling will be good and we'll be able to generate both APIs and database schemas in one place. Looking forward to it.

ccleve··on Show HN: A faster way to prototype your APIs using OpenAPI 3 and Swagger UI
How do you use it for generating documentation? Can you generate anything other than Swagger UI for API docs?
ccleve··on Ask HN: What did you purchase that measurably improved your quality of life?
A few years ago I put a 4" memory foam mattress topper on the very firm mattress that I had. I love it. Back pain is gone. They're fairly cheap. Totally worth it.
ccleve··on Using all-Apple Thunderbolt hardware to kill my MacBook
I've got dual monitors on a Mac Mini. The primary monitor uses the HDMI port, and it works fine. The secondary monitor runs off Thunderbolt and a couple of weeks ago it started going black, randomly. This isn't a hardware issue, because I have used multiple cables and monitors, and I have used both Thunderbolt-to-HDMI and Thunderbolt-to-VGA adapters and I get the same issue. Oddly, the black screen still shows the mouse pointer, and if I take a screen shot it shows what the monitor should be displaying.

The fact that it just started happening leads me to believe that it came with an operating system update, and it's probably a driver issue.

Apple really needs to get its act together on USB.

ccleve··on One UChicago scholar has shaped writing for generations of students
I took this course, from Larry personally, 30 years ago. It was one of the best courses I ever took.

Prior to that, my writing was abysmal. My high school English teachers were helpless. And I even managed to get through Princeton barely understanding the mechanics of putting together a coherent argument. Start a paragraph with a topic sentence? No one ever told me that.

It was so bad that I sought this course out. To the best of my recollection, it wasn't offered in the business school, so I had to make a special effort to take it.

It paid off. I wish I could take it again, just as a refresher.

ccleve··on A follow up to Coinbase being a mission focused company
If by "status quo" you mean "Donald Trump is President", does your view change if Biden wins? Will the status quo be ok, and will it therefore be ok to ban political activity in the workplace?

The problem with the view that activism is ok if the current administration is objectionable is that the "status quo" changes from cycle to cycle.

Presidential politics is only a very small part of political activity in the US (though it is the most visible). What if your frame of reference is state and local politics? Is political activism in the workplace ok if you don't like the local school board?

ccleve··on Grouparoo: Open-source app to sync customer data with 3rd party tools
How does this compare to Piesync?

There are many tools that do one-way integration from source to destination. Very few do real two-way sync. Is Grouparoo designed for that?

ccleve··on Show HN: DataSpeeder Instant End-User Web GUI for MySQL
Yes, the site is what I looked at. "Scale your business operations" doesn't tell me anything. Nor does any of the other verbiage in your hero area.

The next thing I see is "What is your professional role?" Uh, who cares? Just tell me what your product is. I'm not interested in vague benefits.

ccleve··on Show HN: DataSpeeder Instant End-User Web GUI for MySQL
I don't get that at all from your website. I'd consider simplifying your pitch. I can't tell what you're selling from your site.
ccleve··on Show HN: DataSpeeder Instant End-User Web GUI for MySQL
Holy cow, I really like this. Super simple.

I think you need to adjust pricing to differentiate between big corporate users and small developers. I'd pay $199 once (not per year) for my own use. But if I were running an IT shop at a larger corp, I'd pay a lot more. See if there is a way to expand your pricing both at the high and the low end.

Like all simple apps, I expect I'd run into roadblocks quickly without some customizability. The trick for you is to figure out how to add some of that without losing your main value prop, which is simplicity.

In particular, I'm sure I would want to customize screens. I didn't download the app and try it so I don't know if that's there, but I didn't see it in the video.

Also, consider supporting Postgres. MySQL and SQL Server usage are trending down, and Postgres is trending up.

https://trends.google.com/trends/explore?date=today%205-y&ge...

ccleve··on A word for a value between 0 and 1 (inclusive)
In my code, rather than use a generic term to describe the number, I try to name what it actually represents in context. For example, if I'm scoring items so I can rank them, and I need to normalize some number to do that, I'll call it a "score" or a "rank".

Calling it a "proportion" or "ratio" or "normalized" is like calling a variable "myinteger" or "myfloat". Your naming convention should be related to a variable's purpose, not its data type.

ccleve··on The database I wish I had
Most of the responses to your post are critical, but I couldn't agree with you more. Having a local database would solve all kinds of performance, connectivity and privacy problems. Transparent background synchronization would be beautiful.

Unfortunately, this is a really hard problem to solve. Sync is a bear of a problem in the face of conflicts. An immutable datastore with a log file of all mutations would help a lot, but you'll still have to manage the conflicts. This is not only a back end problem. What kind of user interface do you present that actually makes sense to an untrained user? "Bill changed Mary's name to Marybeth, but Fred changed it to Mary Beth. Which is correct?" Most users will say "Whaaaa? Why are you bothering me?"

ccleve··on Multi-Tenant Architectures
There's another benefit to using a tenant_id. You can partition your tables using Postgres partitioning. That keeps the tenant's data together and keeps queries fast.

It's also amenable to distributed processing if you use something like Citus.

I'm really looking for an alternative to Citus, though. Citus itself is a bit tricky to use, and the SaaS version of it is owned by Microsoft, which means Azure-only. Also, Microsoft makes the SaaS version insanely expensive. If they had Citus-like features on Amazon Aurora I'd be there in a heartbeat.

ccleve··on Multi-Tenant Architectures
This works and solves a lot of problems. The downside is that schema changes are cumbersome because you have to make them in many places. If you want to roll out a new feature in a shared app which depends on a schema change, it's hard to do without downtime or complicated feature flags.
ccleve··on Want people to do the right thing? Save them the guilt trip
Lovely. A psychological study on how to manipulate people into supporting your social agenda.

How about using, you know, reason? Treating them like adults? Give them pros and cons so they can make a rational decision?

ccleve··on Show HN: Primo – all-in-one IDE, CMS, component library, static site generator
This is really nice. What's it written in? How did you do the Github social login?

Would love to see the code. If you're planning to open source it, there's no downside to making the repo public now. We know it will get better :)

ccleve··on One word in PostgreSQL unlocked a 9x performance improvement
Yes, inserting multiple values into Postgres really does work, but beware of inserting too many at once.

I started generating insert statements of about 200k in length and it caused Amazon Aurora to start dropping connections.

If you insert 10 or 100 values, you'll get a 10x or 100x speedup, which is usually good enough.

ccleve··on Statement by FCC Commissioner Starks on Section 230 Executive Order
I have no idea what you're talking about, or how you got any of that from my comment.
ccleve··on Statement by FCC Commissioner Starks on Section 230 Executive Order
Yes, this isn't legalese, but in what sense are these accusations "wild"? They're factually accurate.

And even if you disagree (perhaps you believe there was some form of Russian collusion, despite the Muller report) the accusations are certainly well within the bounds of mainstream debate. Nothing wild here.

ccleve··on Vitamin D Insufficiency is Prevalent in Severe Covid-19
From a few days ago: https://news.ycombinator.com/item?id=23086211

There is strong evidence that Vitamin D does nothing. Large scale studies of vitamin D supplements show no benefit.

The article above argues that it is actually sun exposure that brings health benefits, and that vitamin D is just a byproduct. This makes sense. If vitamin D levels are strongly correlated with good health, it doesn't mean that it causes it. There might be some third factor.

ccleve··on Paxos vs. Raft: Have we reached consensus on distributed consensus?
I doubt very much that you implemented a proper command log with truncation and rollback for leaders and followers, a state machine, leader election with voting, epochs, timeouts with smart backoffs, pipelining, async transport servers and clients with object serialization, quorums, initialization and discovery, persistent state, graceful shutdown, adding and removing members, a proper event queue, snapshots, and proper distributed testing.

You can build a toy implementation in a weekend if you have a cookbook. A production-ready implementation takes a bit more.

ccleve··on Paxos vs. Raft: Have we reached consensus on distributed consensus?
The paper's main conclusion is accurate. Raft is more understandable because of the clarity of the paper. But implementation is very tricky. As I've written elsewhere it takes weeks or months to write a solid implementation from scratch.
ccleve··on Preliminary test results suggest 21% of NYC residents have Covid antibodies
This study doesn't appear to suffer from the same methodology problems as the Stanford study of a few days ago. In that study, they recruited people through Facebook, and reported an infection rate that was low enough that it could have been caused by false positives.

Here, it's closer to a random sample, but more importantly it shows really high rates. Those rates overwhelm any error due to false positives.

Also, it shows numbers that are in line with our intuition. It shows higher infections in NYC, and higher infections among blacks. That reflects what the hospitals are seeing.

This study may well be really good news.

ccleve··on Preliminary test results suggest 21% of NYC residents have Covid antibodies
The Governor's press conference was covered by the major media. The slides are there, also.
ccleve··on Bangkok Smoking Kid
Wow. Watch this ad.

The article suggests that it works because it fits in with Thai culture. That's not it. I'm not Thai, and it had an impact on me.

It's the story of a child saving an adult's life. That will have an impact in any culture.

ccleve··on Introduction to Hacking PostgreSQL (2007)
Thank you. If you know of any other resources like this, please post them.

I spent a few hours looking for tutorials, examples, etc. and I didn't find much. I found it difficult to figure out how to set up a proper IDE and do simple debugging. It's not trivial.

← PreviousPage 7 of 14Next →