Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kpmah
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
61.
▲
by
kpmah
10y ago
I think it's a good example because this should not be the way to develop this kind of system - and yet people do it this way! :)
62.
▲
by
kpmah
10y ago
Oh, in addition to my other reply I should point out that the 'C' in CAP is not the same thing as the 'C' in ACID. Be careful with that one, it can cause confusion! http://blog.thislongrun.com/2015/0
63.
▲
by
kpmah
10y ago
Well, they're eventually consistent. It's not like it hasn't been thought through. :) It's a useful example because it shows how there can be serious consequences for getting it wrong.
64.
▲
Consistency is Consistently Undervalued
(kevinmahoney.co.uk)
220 points
by
kpmah
10y ago
|
124 comments
65.
▲
by
kpmah
10y ago
So is your comment metametametaprogramming?
66.
▲
by
kpmah
10y ago
I wrote a little article, which has been posted here before, that shows the power of different type systems and what kind of bugs you can expect to prevent: http://kevinmahoney.co.uk/articles/tests-vs-types/
67.
▲
by
kpmah
10y ago
Rust is a very useful and pragmatic language, and probably the best one in its niche. I don't think you have much to worry about. As things stand right now, it's not going anywhere.
68.
▲
Superagile
(kevinmahoney.co.uk)
1 points
by
kpmah
10y ago
|
0 comments
69.
▲
by
kpmah
10y ago
SEEKING WORK: Remote (UK citizen, in Belgium currently) 8 years experience. I like a lot of different languages, but I've mainly worked with Ruby and Python. http://kevinmahoney.co.uk
70.
▲
by
kpmah
10y ago
Something I've noticed with my own procrastination is that it often has a strong emotional component. For example, I'll often procrastinate with anything to do with taxes because, even though I know I HAVE to pay it on an intellec
71.
▲
by
kpmah
11y ago
Location: Belgium Remote: Yes Willing to relocate: Maybe Amsterdam next year Technologies: Python, Ruby. Would love to work with something more functional. CV: http://kevinmahoney.co.uk Email: kevin@kevinmahoney.co.uk
72.
▲
by
kpmah
11y ago
Perhaps also my effort which I like to pimp out on these threads occasionally: http://sediment.io
73.
▲
by
kpmah
11y ago
Ok, I think you have me convinced. Haskell doesn't quite measure up here. One more point to Idris!
74.
▲
by
kpmah
11y ago
In the case of error, assert and undefined, I wouldn't class them as exceptions but as unrecoverable errors, as discussed in the linked wiki page. I wasn't aware of 'throw' and that certainly weakens my argument. You cou
75.
▲
by
kpmah
11y ago
(author here) I don't even use Idris! I learnt it a couple of days ago for the purpose of this article. If Idris looks good it's not my fault :)
76.
▲
by
kpmah
11y ago
You're making an argument from your experience, so permit me to make an argument from mine: I've been using Python and Ruby professionally for about 10 years. The most common error I make myself is typos, but those are often (but
77.
▲
by
kpmah
11y ago
I deliberately ignore that :) I don't think escape hatches added as a practical concern should count against the language, as long as they're used appropriately by the community. You can defeat Rust's guarantees by using an `
78.
▲
by
kpmah
11y ago
Could you expand on your issue with exceptions? In this article I'm using the distinction between exceptions and errors from https://wiki.haskell.org/Error_vs._Exception You're right about the bottom input. I'
79.
▲
by
kpmah
11y ago
It still needs a bit of work, but I wrote a small library for Python to use SQL in the Yesql style: https://github.com/KMahoney/pyesql
80.
▲
by
kpmah
11y ago
Don't trait objects ( https://doc.rust-lang.org/stable/reference.html#trait-object... ) solve this problem?
81.
▲
by
kpmah
11y ago
You're right, it's not necessary, it's just a preference :) Although it does 'flatten' the bindings. Defn a, Defn b… is the same as let a = … in let b = … in …
82.
▲
by
kpmah
11y ago
The reason AST editors look a lot like lisp is because lisp pretty much is just an AST. There's no technical reason the AST can't be a more complicated structure than a list, and you can present the AST any way you want - you do
83.
▲
by
kpmah
11y ago
It lets you do some nice things. You can always get instant feedback (types, errors) because your code is always a valid AST. No ambiguous braces etc. Also things like markdown comments and inline evaluation. My attempt: http://s
84.
▲
by
kpmah
11y ago
Yes, it might make sense if you're Facebook or Amazon to do this stuff. For the rest of us, a single (reasonably optimised) database can scale up to thousands of hits per second. Probably more. Also there's another downside to thi
85.
▲
by
kpmah
11y ago
Right, so you implement this multi-get for every service, you work around the GET URL length limit by using POST or something, you do this slow HTTP join in parallel with any other service data you need if possible, in your application code
86.
▲
by
kpmah
11y ago
Number 1 problem with microservices here: https://github.com/umermansoor/microservices/blob/master/ser... N+1 HTTP requests. Ouch. Wouldn't it be nice to be able to do a database join?
87.
▲
by
kpmah
11y ago
The terminology we have around types is really messed up. What's most annoying is that 'static type system' and 'dynamic type system' are often seen as opposites of each other, but the 'type' in each of th
88.
▲
by
kpmah
11y ago
https://en.wikipedia.org/wiki/Sampling_(statistics)
89.
▲
by
kpmah
11y ago
I love RT, but I think people misinterpret the percentage. It doesn't mean that the film was 95% 'good', it means there was a 95% chance you'd like the film and a 5% chance you'd dislike it based on a sampling of pr
90.
▲
by
kpmah
11y ago
Components drawing themselves is a side effect, and components returning markup are pure functions of their state. One is a lot easier to unit test than the other, for example.
More ›