Hacker Newsnew | past | comments | ask | show | jobs | submit | NuclearPM's commentslogin

Frameworks. Plural.

Athwart? These posts really bring out the try-hards.

> Having said that, I can't disagree since as I said, I'm also inclined towards

Say more with less.


Churlish can’t be the right word here.

> If I tell Codex to implement 3 features he won't stop and find a general solution that unifies them unless explicitly told to

That could easily be automated.


Which one is an issue?

No types, no foreign key enforcement, double–quoted string literals

NUL in the middle of a string is fine, types have no meaning, VARCHAR limits are just suggestions…

The flexible typing is the biggest WTF to me, especially because it necessitates insane affinity rules[0]. For example, you can declare that a column is of type “CHARINT” (or “VARCHARINT”, for that matter), and while that will match the rule for TEXT affinity (contains the string “CHAR”), it also matches the rule for INTEGER affinity (contains the string “INT”), and since that rule matches first, the column is given INTEGER affinity. "FLOATING POINT" maps to INTEGER since it ends in "INT", and "STRING" maps to NUMERIC since it doesn't match anything else.

Then there are the comparison rules (same link). NULL < NULL, INTEGER || REAL < TEXT < BLOB - but those may be altered at comparison time due to type conversion. Hex values as strings get coerced to 0 as INTEGER, but only if they're in the SQL text, not if they're stored in a table. Finally, no conversion takes place for ORDER BY operations.

This is particularly galling considering that most of sqlite3's display types (this is `markdown`) don't visually differentiate between string-types and numeric-types - I manually added the strings on rows (by PK) 2 and 4 to assist the explanation.

  sqlite> CREATE TABLE foobar (id INTEGER NOT NULL PRIMARY KEY, b BLOB NOT NULL);
  sqlite> INSERT INTO foobar (b) VALUES (10), ('10'), (0xA), ('0xA');
  sqlite> SELECT id, b, 15 > b, '15' > b, 0xF > b, '0xF' > b FROM foobar ORDER BY b;
  | id |  b    | 15 > b | '15' > b | 0xF > b | '0xF' > b |
  |----|-----  |--------|----------|---------|-----------|
  | 1  | 10    | 1      | 1        | 1       | 1         |
  | 3  | 10    | 1      | 1        | 1       | 1         |
  | 4  | '0xA' | 0      | 1        | 0       | 1         |
  | 2  | '10'  | 0      | 1        | 0       | 0         |

SQLite is great, if and only if you use STRICT mode (and enable FK checks, if applicable). Otherwise, best of luck.

0: https://sqlite.org/datatype3.html


The most productive workers follow the intent of procedures and use a risk based approach to following or not following the details.

Thank you for pointing this out.

Capitalism is great… when it has limits.

Why they supported the fascist:

https://a16z.com/podcast/trump-is-about-to-change-everything...


Xbox one series X

They sucks at names.


And I can’t edit this mistake…

Needs a twist or a reason to care about the characters.

They're the last living humans, and the last human-derived mind?

I like Cordwainer Smith and Peter Watts; so I really liked this blend of their styles and subjects.


I adore Peter Watts, so I'll be checking out Smith then!

Watts is like brain candy, keeps my mind buzzing from all the ideas for weeks. Charles Stross can have the same effect, a sort of future shock.


Cordwainer Smith's style and subject matter is quite different from Watts; I felt this story was like a combination of the two. So, if you would like this story even if it was less eschatalogically cynical, and had more of a golden age setting, you'll probably like Smith!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: