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 A terrible schema from a clueless programmer
It's not an index on every column. It's a single index across all columns.
ccleve··on A terrible schema from a clueless programmer
Sorry, no. The original schema was correct, and the new one is a mistake.

The reason is that the new schema adds a great deal of needless complexity, requires the overhead of foreign keys, and makes it a hassle to change things later.

It's better to stick the the original design and add a unique index with key prefix compression, which all major databases do these days. This means that the leading values gets compressed out and the resulting index will be no larger and no slower than the one with foreign keys.

If you include all of the keys in the index, then it will be a covering index and all queries will hit the index only, and not the heap table.

ccleve··on A read query can write to disk: a Postgres story
Postgres does something similar. Every time a query returns a row the system must do a lookup into a visibility map to see if the row is visible to the current transaction. It can also check if it's a completely dead row. If there is an index involved, then on the next row fetch Postgres will report to the index whether the last row was dead or not. The index can elect to delete the row reference, which means a write during a select statement.
ccleve··on Launch HN: Secoda (YC S21) – Searchable Company Data
Enterprise search is a hard problem, but this looks pretty slick.

What's your tech stack?

Did you create the integrations from scratch, or use something like Zapier?

ccleve··on Ask HN: Best way to build Yelp for X?
Good idea. Bubble appears to have multiple such templates.
ccleve··on Function pipelines: Building functional programming into PostgreSQL
It appears that all these extra functions are written in Rust, but the core Timescale product is written in C. Why did you do it that way? Would you do it differently if you were starting from scratch today?
ccleve··on Function pipelines: Building functional programming into PostgreSQL
It does make sense. Thanks.
ccleve··on Function pipelines: Building functional programming into PostgreSQL
Duplicating my question to Lockerman below. Sorry for the double post.

Is the -> operator just syntactic sugar? Is this:

SELECT device_id, timevector(ts, val) -> sort() -> delta() -> abs() -> sum() as volatility

the same as this?

SELECT device_id, sum(abs(delta(sort(timevector(ts, val))))) as volatility

ccleve··on Function pipelines: Building functional programming into PostgreSQL
Is this just syntactic sugar, then?

Is this:

SELECT device_id, timevector(ts, val) -> sort() -> delta() -> abs() -> sum() as volatility

the same as this?

SELECT device_id, sum(abs(delta(sort(timevector(ts, val))))) as volatility

ccleve··on Hugo Themes ranked by GitHub Stars
The big thing to notice here: all of the top themes are minimalist. Limited colors, simple layout, just nice spacing and typography.

I've spent a lot of time looking for good, professional-looking minimalist themes and the pickings have been slim, regardless of platform. Too many theme designers load up their designs with unnecessary elements.

Note to designers: less is more.

ccleve··on Three near-identical Boris Vishnevskys on St Petersburg election ballot
"Illegal" means contrary to the law. Plenty of things that are illegal but carry no criminal penalties.

As a practical matter, the court would rule that sham candidates are impermissible, and then their opponents would have an opportunity to remove them from the ballot via a civil lawsuit, or seek sanctions again whoever put them up, or collect civil damages, or in an extreme case overturn an election altogether.

ccleve··on Three near-identical Boris Vishnevskys on St Petersburg election ballot
A friend of mine (and my successor as chairman of the Chicago Republican Party) filed a case in the U.S. Supreme Court this week over the same tactic right here in Chicago.

https://www.chicagotribune.com/politics/ct-michael-madigan-c...

If we win this thing, then filing sham candidates will become illegal in the U.S. It's an utterly corrupt practice.

ccleve··on When AWS, Azure, or GCP Becomes the Competition (2019)
Greg, if you see this, what is your opinion of the newer you-can-use-this-software-for-anything-but-cloud-services licenses?

https://www.elastic.co/pricing/faq/licensing

https://www.mongodb.com/licensing/server-side-public-license...

If you were building a product from scratch today, what business model would you choose? (Assume we're building horizontal infrastructure software, like Pinecone, and we'll offer a SaaS option.) a) Open source SSPL, b) Closed source commercial license for offsite use, c) Just straight SaaS.

ccleve··on We Hire Old People
I wish I could hire non-technicals. The problem is that the product is only partially built. No product means no need for anything other than product at this point.
ccleve··on We Hire Old People
No one has mentioned it, although it may well be a factor.

I think it's not so much the politics as it is that people see other interests and don't know what to do with them. It's as if having done additional things during your life somehow dilutes the main things.

ccleve··on We Hire Old People
Don't even get to the interview stage. My tech skills never got assessed.
ccleve··on We Hire Old People
See my other comment. Yes, we will hire actual old people.
ccleve··on We Hire Old People
We'll hire more than one. A bunch, if this product works out.
ccleve··on We Hire Old People
I wrote the ad. Holy cow, I didn't expect to be #1 on Hacker News. Will answer any questions.

Here's one you might ask: Why? I'm pushing 60 and I've attempted to interview for developer jobs over the last year. Got nowhere despite 40 years of experience. Getting really, really tired of this industry's attitude toward people like me.

Based on questions below, I'll give a bit more. Earlier this year I had a personal referral into Facebook for a developer position. They do hiring centrally. A very young person in the HR department spoke to me, put me in the central database, and apparently shopped my experience around to a number of different groups. No takers. No one wanted to interview me, so the application died. Never did a tech assessment.

So now I've started a new group, and I expect this thing is going to generate a lot more money than any work at Facebook ever would. So Facebook did me a favor. Still, it rankles.

ccleve··on Understanding Foreign Data Wrappers in Postgres and Postgres_fdw
Crunchbase says 101-250 employees, so they must have guessed wrong. https://www.crunchbase.com/organization/turbot Hope you get to that level soon, looks like a great product.
ccleve··on Understanding Foreign Data Wrappers in Postgres and Postgres_fdw
Oh, I see. The parent company, Turbot, has 100+ employees and has been at this for a while.
ccleve··on Understanding Foreign Data Wrappers in Postgres and Postgres_fdw
Your website says 200+ data sources. How the heck did you generate so many? This project does not look very old.
ccleve··on B-tree Path Hints
Yes, true. If your comparisons involve pointer-chasing or string comparison or anything complex, then it's not clear which strategy is faster. I always write the simplest possible code first, which is usually a linear search, benchmark it, and then try to beat the benchmark if it's warranted.
ccleve··on B-tree Path Hints
It's a cool idea, but you have to keep in mind that binary searches are not optimal for b-tree nodes unless the node is really big. If you have a smaller node, < 32 or 64 elements, a simple linear search is faster. The reason has something to do with processor cache, branch mis-prediction, and pipelining.

A linear search can also be optimized to use SIMD, which is a big win.

If you really want to use a path hint, you could just say "start my linear search at the point where I left off last time", and if the first element is too big, wrap around to the beginning. But that might not buy you much.

ccleve··on Ajit Pai apparently mismanaged $9B fund–new FCC boss starts “cleanup”
What's your point? That it's an "interesting take"?

Or that you just wanted to level a personal attack on me?

ccleve··on Ajit Pai apparently mismanaged $9B fund–new FCC boss starts “cleanup”
Um, what? I am talking about what happened. It is others who are motivated to criticize Pai not because of what happened in this specific instance, but because of general disagreement with him over other issues (like net neutrality).
ccleve··on Ajit Pai apparently mismanaged $9B fund–new FCC boss starts “cleanup”
This is an absurd hit piece. I promise you that Ajit Pai did not personally review each census block to determine if it needed service or not. That happens at the staff level.

Plus, the assertion in the headline that Pai "mismanaged $9 billion fund" is bloviation -- the FCC is simply asking some grant recipients to return a small portion of the money (6%) based on revised maps. Honestly, do we need to politicize everything?

ccleve··on Entrepreneurs don’t have a special gene for risk, they come from rich families
Complete, utter garbage. Cites no statistics.

The truth is, about 25% of new businesses in the US are started by first-generation immigrants. 30% of new business owners only have a high-school education. Here are a few more stats: https://www.smallbizgenius.net/by-the-numbers/entrepreneur-s...

ccleve··on UUID, serial or identity columns for PostgreSQL auto-generated primary keys?
Plus, it's way better to generate a UUID in the app server and send it to the server as a string. The reason is that you can deal with the id as a plain string and don't have to deal with a non-standard datatype in your app.
ccleve··on UUID, serial or identity columns for PostgreSQL auto-generated primary keys?
The Postgres JDBC driver does not guarantee that batch inserts come back in the same order that you insert them (when you use RETURNING *). So, if you generate UUIDs server-side, you can't conveniently match them up with the records you just inserted. You're better off generating them in the app server first and then sending them to Postgres.
← PreviousPage 5 of 14Next →