I don't get the navigation pattern on the page. When I click on a link it opens a panel that I can't close, but then if I push refresh I'm taken to a page with a broken back button.
IMO: Just do a normal site where links take you to pages. Don't be creative with the UI. Maybe you could use some bog-standard wiki software?
The content itself looks very valuable, but because the UI is so bonkers, it's just too hard to use or link to.
It really is a shame all this interesting information is stuck in this bizarre unusable site.
Update - took me a solid 3 minutes of futzing with it to figure out you can close something by clicking on it's parent. Clicking on the grey area does not work.
Seems to work if you right click and open in a new tab. Although I do agree it's a bit of an accomplishment to break an otherwise already working browser feature. Sadly not an uncommon one.
This is not an “exception pattern”. It’s just how the language works, and is a consequence of the concept of “abrupt completion”. It means that you can unconditionally (i.e. independent from whether there is an exception or not) divert the control flow using finally. It’s not much different from how when an exception is thrown from the finally block, the prior exception gets lost.
From the language spec [0]:
If the finally block completes abruptly for reason S, then the try statement completes abruptly for reason S (and the throw of value V is discarded and forgotten).
The biggest "issue" with exceptions is that they are not exceptions at all.
One of the authors of Stoplight [1] once said during a talk that actually in an http transaction so many things can be wrong (30 major causes in a simple GET http request alone can derive from parsing) that writing http clients or mock servers is actually about handling errors and exceptions and stopping to think about those as unhappy cases, happy cases are, if anything, exceptions.
He then pushed for a complete rewrite of their tools using fp-ts and treating exceptions and errors as normal (algebraic) data types which brought critical failures and bugs to basically 0.
Unfortunately, even with fp-ts, typescript does not yet have the means to enable ergonomic handling of errors without exceptions. I hope they improve this in the future though.
As a daily fp-ts user I'm not sure I agree, you handle them with the appropriate data type: Either.
Exceptions are a path like any other, there's nothing really magical about those, you catch the functions that could throw and handle the fact they have thrown the error, which error, why?
There's two helpers for that in fp-ts [1][2] plus the obvious lazy and asynchronous counter parts in the TaskEither and ReaderTaskEither modules.
I think it's a matter of perspective. I tried to user Either, but without proper pattern matching and syntactic sugar for monadic operations, I didn't quite like it.
That being said, I think the authors did a great job to make it as good as possible given the limitations.
Could you show the limitations you're speaking of?
I know fp-ts very well and it does not have those limitations you're speaking of.
Either admits all of the functor, bifunctor, monad, apply, applicative and traversable instances in fp-ts (so do all the other bifunctors) so there's no shortage of combinators.
The cool thing with all these links is that I can pick whichever one I want to talk about!
> Don't use assertions. BairsLaw applies - what will you do if the assertion fails? (Fix the bug, perhaps?) If you don't like the parameters you're given, throw an IllegalArgumentException. If you don't get a correct result, your UnitTest will tell you. There is no room left for assertions.
Disagree. How does the “law” apply? Yes, I would like to fix the bug if the assertion uncovers it… not unlike a validation error.
Assertions are only turned on in Java if `-ea`. Which means that you can fail fast for local development and maybe just log things in production.
IMO: Just do a normal site where links take you to pages. Don't be creative with the UI. Maybe you could use some bog-standard wiki software?
The content itself looks very valuable, but because the UI is so bonkers, it's just too hard to use or link to.