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 UUID, serial or identity columns for PostgreSQL auto-generated primary keys?
In Java there is a UUID generator based on SecureRandom. That's about as unguessable as you're going to get.
ccleve··on An early look at Postgres 14: Performance and monitoring Improvements
Say more about the "poor replication story". I thought replication was pretty good. What's wrong with it?
ccleve··on JPL's Design for a Clockwork Rover to Explore Venus (2017)
Maybe use a gas?
ccleve··on Most and Least Affordable Places to Buy a Home
This study is meaningless because it considers only the cost of buying a home, and not the total cost of housing or the cost of living. Specifically, it omits property taxes, state income taxes, and state and local sales taxes.

Several of the "most affordable" cities are in Illinois, yet here in Illinois we are losing population rapidly. The reason is that the tax burden is the highest in the nation. Property taxes in particular are out of control. That's why houses are cheap: buyers have to take into account the fact that they have to pay a significant percentage of the value of their home to the government every year.

Across the border in Indiana, there is a 1% property tax cap. In Illinois, property taxes average 2.5%, and there are some communities where it runs as high as 10% (mostly south-side Chicago economically depressed townships).

My advice: don't come here because you think housing is cheap. It ain't.

ccleve··on ReleaseHub Environments as a Service Gets 2.7M Seed from Sequoia
$1000 is much too expensive for a startup that is not yet funded, or one that is bootstrapped. Suggest you start lower with a pay-for-what-you-use model. Otherwise, you're looking at an enterprise sale with a longer sales cycle. Make it easy for people to try this thing.
ccleve··on ReleaseHub Environments as a Service Gets 2.7M Seed from Sequoia
I found that making the container was trivial, but deploying it using the AWS Container Orchestration Service or Fargate was not. Tons of configuration options, and security never seems to work right out of the box.
ccleve··on ReleaseHub Environments as a Service Gets 2.7M Seed from Sequoia
Too expensive for larger deployments.
ccleve··on ReleaseHub Environments as a Service Gets 2.7M Seed from Sequoia
If this is what I think it is, I want it. I truly do not like all the tools out there for doing deployment -- CloudFormation, CodeDeploy, Terraform, Ansible, the various container management schemes. If I can just create a little config file, push code, point, click, and deploy, I will be happy. I'm happy to live within a simple, opinionated environment if it strips the complexity out of the process.
ccleve··on India protests US Navy ship’s transit through its waters without consent
From the Wikipedia article on the South China Morning Post:

Since the change of ownership in 2016, it has been alleged to be on a mission to promote China's soft power abroad.[9] According to critics, it is moving away from independent journalism and pioneering a new form of "propaganda".[9]

https://en.wikipedia.org/wiki/South_China_Morning_Post

There's a lot more in the article on bias at that organization. Bottom line: this publication carries propaganda, and the Chinese government has strong incentive to drive a wedge between India and the U.S.

ccleve··on Google’s copying of the Java SE API was fair use [pdf]
No. Baker v. Selden does not settle the question of APIs and fair use. That is why the Google v Oracle case made it to the Supreme Court.
ccleve··on Google’s copying of the Java SE API was fair use [pdf]
As a matter of public policy, I agree that the specification should not receive protection, but under the law as written by Congress, it does. Thomas's dissent is correct.

My comment is about process, not policy.

ccleve··on Google’s copying of the Java SE API was fair use [pdf]
I like the outcome from a public policy perspective. The policy the court has imposed is good for the industry. But let's make no mistake -- this is legislating from the bench.

The wholesale expropriation of an API is not the same thing as taking a small snippet of a copyrighted work for analysis, commentary, criticism, or scholarship. It is core the value of the work.

Indeed, it's the most important part, because it defines the functionality of the product. It is what the customer sees and interacts with. It is the means by which the customer gets value. You can completely swap out the backend behind the API and the customer will still get value. Change the API and the value goes away.

From a legal perspective, this decision is 100% wrong. The plain language of the law makes that clear.

What should have happened here is that Congress should have passed an amendment to copyright law allowing for fair use of an API. They should have done so after a free and full debate, with due consideration to all economic consequences.

It is not for our black-robed, un-elected overlords to make this decision.

ccleve··on What I learned in two years of moving government forms online (2018)
Well-written article, useful insights, total misunderstanding of the way things like this should be done.

There's an old saying: don't pave cow paths. That's exactly what he was doing. He was putting a different front end on an existing process. You end up with a total nightmare.

Instead, this should be done department-by-department, app-by-app. Design the process from the bottom up. For example: a form to request some document. Start with the documents: how are they stored? Should they be stored differently? Are they in a database? Should we really even be storing documents, or should they just be database entries? For that matter, should the department that manages them even exist? (Here in Chicago, the answer was no. They merged the County Recorder of Deeds office with the County Clerk.)

You should never just move things online. The web is different, and enables different business processes. Change the process first. Forms come later.

ccleve··on When Should I Interrupt Someone?
I have a different answer to this problem. If you get stuck, send me an email and work on something else for a while. That way I don't get interrupted and you get your answer. Asynchronous communication is great.
ccleve··on Fake_contacts: Android app to create fake phone contacts, to do data-poisoning
I have bought lists. I'm working on a system to manage lists.
ccleve··on Fake_contacts: Android app to create fake phone contacts, to do data-poisoning
This is a common technique in the mailing list industry. It's called "salting". You add fake names, but real email addresses, street addresses, or post office boxes. You then monitor what shows up in these places addressed to "Mr. Fake Name". It's how mailing list companies monitor who is using their lists and helps control misuse.
ccleve··on Why trademark Open Source software
Thanks. So far as I can tell, that site does not address the "use in commerce" question.
ccleve··on Why trademark Open Source software
Here's the problem. The article does not say what you have to do to trademark something, but it does point to an article on a law firm site: https://www.legalteamusa.net/trademark-law-first-to-use-v-fi.... The site says that you get trademark rights once you "use the mark in commerce". It then goes on to suggest that "use in commerce" means an actual sale. There's more here: https://www.cohnlg.com/trademark-use-in-commerce-heres-how-i...

So, what does this mean in an open source context? How can you meet the "use in commerce" requirement if you never actually offer anything for sale?

ccleve··on Epic will pay off class-action loot-box settlement with in-game currency
The lawyers get real money, and the victims get fake money. That's the real scandal. Our tort system is broken.
ccleve··on Postgres scaling advice
The difficulty with this advice is that it assumes that you have many small transactions.

Yes, of course, you should try to build your application so queries and transactions are very short. That solves a great many problems.

But sometimes you can't. Sometimes you just have to do joins across large tables. There just isn't any other way. Your query is going to run for 5, 10, maybe 30 seconds. That's a huge burden on your server, and it will slow down the other tenants. In that case, the only answer is to distribute the queries across other boxes.

I agree with the advice in general -- delay moving to a distributed system as long as possible -- but sometimes you just can't.

ccleve··on WhatsApp loses millions of users after terms update
Seems similar to spread spectrum radio signals, also known as frequency-hopping. By hopping from frequency to frequency in a way that only the sender and the receiver know, you can avoid both obstacles and eavesdropping.
ccleve··on PostgreSQL on ARM-Based AWS EC2 Instances
Which cloud providers are better? What do you use?
ccleve··on Mnm – an open source project to replace email and SMTP
Marshall Mathers, Eminem, had the same idea, but did it better.
ccleve··on Google suspending Parler from the Google Play store
No one is forcing you to listen to Parler.
ccleve··on Google suspending Parler from the Google Play store
It is censorship when those preventing freedom of speech are monopolies.

When a small number of companies make it difficult to communicate via our main communication device, and there are no viable alternatives, then a fundamental right is being suppressed.

There is no marketplace of ideas when there is no marketplace,

ccleve··on Google suspending Parler from the Google Play store
That's a false choice. They're both bad.

Don't be so cavalier about what's being lost here. The right to think and to speak freely is a fundamental human right.

ccleve··on API pagination design
Oops -- this is embarrassing -- I did not read the article closely. You're right, the article does not recommend using a normal database cursor. Never mind.
ccleve··on API pagination design
Cursors are stateful. This greatly complicates the design of the backend.

First, you have to maintain state in some kind of session on the app server.

Second, if you have more than one app server, you'll have to share the sessions across them using Redis or Hazelcast or something.

Third, cursors have to be closed, which means you have to know when the user is done with the result set. This is impossible to know. The user could go to page 2 and then go to lunch. So you have to leave it open for a while, and then have some kind of timeout. Have a lot of users doing the same thing? Memory fills, both on the app server and in the database server.

Fourth, your cursor is going to leave a transaction open, which interferes with updates and all kinds of other things.

Fifth, most users never go to page 2 anyway. They run another search.

Keeping cursors open in a web app is a spectacularly bad idea.

UPDATE -- I am in error. The article does not recommend a normal database cursor. Disregard my comment.

ccleve··on Sick of spending time on Auth, we built an open source 'Stripe for Auth'
Yup. This. Give us an embedded library that will work with my Java app. JAX RS or or at least callable from within my JAX RS resource. Spring would be nice, too.
ccleve··on You have the right to record police in public, federal court rules
The Supreme Court decided Tanzin v Tanzir a few days ago. They held federal agents personally liable for putting innocent Muslims on the no-fly list because they wouldn't inform on their community.

https://www.supremecourt.gov/opinions/20pdf/19-71_qol1.pdf

The courts are getting closer to what you ask.

← PreviousPage 6 of 14Next →