1x RCU gives you 1 strongly consistent read of up to 4KB _per second_. So 8000 reads per second require 8000 RCUs, which at list pricing comes to $1 per hour. And that's assuming reads do need to be strongly consistent (otherwise half the price) and no discounts are applied.
HN user
srijs
Author here. Slightly simplifying, a Kleisli arrow is just a function from `A` to `M<B>`, and which is composable, similar to function composition:
Kleisli<M, A, B> + Kleisli<M, B, C> = Kleisli<M, A, C>
Although it is an important part of how the conduits work, it is not strictly necessary for using the library.Would it help if I clarified that somewhere, or would you rather not read "Kleisli" anywhere in the docs?
There is also NDJSON (aka Newline-delimited JSON): http://ndjson.org/
(disclosure: I'm the author of the Haskell ndjson-conduit library)
From the official update:
$ shasum -a 256 atom-mac.zip 4614ec62feaea32392ad7f6b3a80534c8ad0c758ed210cabafcc86c5c49a49a1 atom-mac.zip
$ md5sum atom-mac.zip 5454bd3a8271c93f5225cd2b57cdab81 atom-mac.zip
Very happy about your input! :)
I think you got a very good point there regarding the impedance mismatch between native and js apis.
Really enjoying the uvbook, this got me sold on the libuv api. After skimming through the source and being happy that libuv is indeed just a very thin wrapper around posix, I just integrated libuv with my project and will base all bindings upon that.
Thank you very much!
Thanks a bunch for your feedback :)
My initial plan was to provide the node features using Foundation.framework features only. Now, this could turn out to be more boilerplate code than I intended to write and if it does, I'm now pretty sure I'd go with libuv.
I'm not quite sure about using libuv from the start, though. My consideration was that a) this is not targeted at server applications, so you don't necessarily need very high performance and b) libuv is a cross-platform library, while I'm targeting darwin only, so it might be a bit overkill.
Do you have experience with libuv? If so, do you have experience regarding footprint / conciseness? Can you confirm/deny my presumptions?
I did some evaluation a while ago about bundling a Javascript engine with mobile apps on iOS and concluded JSC was way easier to compile and integrate. This is in fact what e.g. Appcelerator Titanium does currently. However, this bundling results in huge binaries, which is not very nice for mobile platforms.
The thing that got me into hacking the prototype was the release of JSC as a public system framework on iOS7, eliminating the need to separately bundle JSC. So its not really a platform preference, I'm just trying to work with what's currently there...
Thanks :)
JavaScriptCore is a cross-platform javascript engine on it's own that is used by default in WebKit browsers (Safari, Mobile Safari, Konqueror, etc.).
The new thing on iOS 7 is that this framework is exposed as a public API you can code against. So you don't have to initialize a heavy-weight WebView just to execute Javascript.
This is very rough and no IO is supported yet. However, I think it serves well as a proof-of-concept that a lightweight node-compatible interface can be done for mobile apps using javascript.
Tell me what you think! :)
Typed arrays do deliver a lot of speedup, and in fact, the above example is slightly faster in Chrome than in Firefox Nightly for me. However, if your algorithm does crunch a lot of data in a low-level way, there is definitely even more performance you can get by using asm.js.
See my link in the comment below for benchmarks of a sha1 algorithm that shows a good speedup in Chrome by using TypedArrays, but an even greater one in OdinMonkey.
Thank you. I just updated my code and it's really within half of native speed now... (benchmarks in the README, if any of you are interested)
asm.js is very exciting technology!
Cool. I recently wrote a low-level sha1 implementation in pure javascript, trying to leverage asm.js (http://github.com/srijs/rusha).
Can you tell me, how did you confirm you wrote valid asm.js and there was no fallback-mechanism kicking in?
I benchmarked my implementation, of course, and noticed a 2x speedup. However, this seems quite less for the this type of low-level algorithm...