Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
tibbe
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
8 ms
·
31.
▲
by
tibbe
12y ago
The core set of packages (e.g. those in the platform) tend to not break backwards compatibility, but you're right that there are still packages that move fast and do.
32.
▲
by
tibbe
12y ago
Note that this isn't the "official" Haskell style guide. We don't have one (although we probably shouldn't). This is one of the competing guides out there.
33.
▲
by
tibbe
12y ago
There are cases you cannot really exclude by testing. For example, guaranteeing that certain function never receives a null value.
34.
▲
by
tibbe
13y ago
You can connect to the run-time system e.g. using the ekg package.
35.
▲
by
tibbe
13y ago
Aren't they complimentary? You can have a side-by-side diff without the extra context this change introduces. That said, I also want side-by-side diffs. They're necessary for more complex diffs.
36.
▲
by
tibbe
13y ago
More likely Go's build system is influenced by Google's build system, which came first.
37.
▲
by
tibbe
13y ago
Until recently I don't think any major hash table implementation (e.g. not Java, STL, Python, Ruby, etc) used a cryptographically secure hashing algorithm. They're just too slow. Slow enough that you might as well use a tree-based
38.
▲
by
tibbe
13y ago
The original question asked for > Example (good) uses include hash dictionaries. which I interpret as meaning hash tables or similar. If so hash function performance matters a lot, especially for short strings.
39.
▲
by
tibbe
13y ago
If someone could run smhasher for the hash functions in the original article (and perhaps also MurmurHash 2/3) and summarize the result for the small key sizes I will give them a cookie.
40.
▲
by
tibbe
13y ago
Driving really hurts standard of living, at least for me.
41.
▲
by
tibbe
13y ago
Can we have side-by-side diffs of code first, please?
42.
▲
by
tibbe
13y ago
We tried this hash function for a while as the standard hash function for `Int`s in Haskell and real world performance was worse than when using the identity function. I'd like the author to back up the statement that the better distri
43.
▲
by
tibbe
13y ago
They are pretty rare. Very few functions actually want to use nullable-arguments. Another reason why nullable by default is a bad idea.
44.
▲
by
tibbe
14y ago
Haskell Prime is not like Python 3 in the sense that there are very few (and no in practice) breaking changes to the language. Haskell Prime standardizes stuff that's already there.
45.
▲
by
tibbe
14y ago
According to Bryan O'Sullivan (bos) he will use Haskell at Facebook. http://www.reddit.com/r/haskell/comments/13m8eu/haskell_leav...
46.
▲
by
tibbe
14y ago
This excuse is as old as programming languages. * Programmers who need a higher level language (e.g. C instead of assembly) are just bad programmers. * Programmers who can't manage manual memory allocation are just bad programmers. * etc
47.
▲
by
tibbe
14y ago
I would say `unsafePerformIO` exist for calling C code. Since the Haskell type system can't prove that the C function you're calling is pure, the programmer needs to assert this fact by using `unsafePerformIO` at the call site. There are ot
48.
▲
by
tibbe
14y ago
The GHC Commentary contains a wealth of information: http://hackage.haskell.org/trac/ghc/wiki/Commentary
49.
▲
by
tibbe
14y ago
Dynamic languages typically also have to pay a price for carrying around type tags and having everything be heap allocated.
50.
▲
by
tibbe
14y ago
Using JavaScript as object code is particularly efficient though.
51.
▲
by
tibbe
15y ago
I usually use `trace` like so: f _ _ _ | trace "print something profound" False = undefined f normal arguments here = ... That way the trace output will be printed whenever the function is evaluated, which typically mimics a le
52.
▲
by
tibbe
15y ago
HN most likely uses a combination of votes and time in scoring, similar to the reddit ranking algorithm: http://amix.dk/blog/post/19588
53.
▲
by
tibbe
15y ago
The "Maybe" monad solves exactly this problem.
54.
▲
by
tibbe
15y ago
The problem it introduces is that you could have gotten rid of nulls from the language if you use sum types for errors.
55.
▲
by
tibbe
15y ago
Reading the same code I also cringed, but for a different reason: the validity of `paths` is tied to the validity of `err`; you should never look at at `paths` without first checking `err`. We can solve this much better using sum types (als
56.
▲
by
tibbe
15y ago
This allows you to serve more clients simultaneously, but not to serve any given client faster i.e. you get higher throughput but not lower latency.
57.
▲
by
tibbe
15y ago
There are natural limitations to how much people will save: * When you're dead all your savings are worthless (to you), so your likely to spend most of them before then. * Some consumption cannot be postponed: you need food, a roof over you
58.
▲
by
tibbe
15y ago
Requests per minute!
59.
▲
by
tibbe
16y ago
It depends on what you compare to. Bryan aimed for speed got to 56% of the speed of the C parser he used as a benchmark, using 54 lines of code. The C parser is a 1,672 lines hand-rolled parser that's only does HTTP, while attoparsec is a g
60.
▲
by
tibbe
16y ago
Haskell (or rather GHC) offers a blocking programming model (e.g. spawn a thread per connection and make blocking reads/writes on the socket) but uses asynchronous I/O in its implementation (one thread uses epoll/kqueue/poll to do the I/O a
More ›