HNHacker News
TopNewBestAskShowJobs

srijs

97 karma · joined March 25, 2013

submissionscomments
srijs··on Solving for faster SHA-1 collision detection
Hi, author here. FWIW the blog is fully hand-written. I used Claude to help me generate the visuals.

What goes into head vs. tail is actually fully deterministically decided by the solver based on a P(tail) gradient, so expressions that are more effective in filtering out blocks before they can hit the (slower) tail are preferred in the prefix.

srijs··on Simple, Fast, and Scalable Reverse Image Search
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.
srijs··on Plumbum: A lazy, constant-memory streaming data Rust library
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?

srijs··on JSON Lines
There is also NDJSON (aka Newline-delimited JSON): http://ndjson.org/

(disclosure: I'm the author of the Haskell ndjson-conduit library)

srijs··on Download Atom editor without an invite
From the official update:

$ shasum -a 256 atom-mac.zip 4614ec62feaea32392ad7f6b3a80534c8ad0c758ed210cabafcc86c5c49a49a1 atom-mac.zip

$ md5sum atom-mac.zip 5454bd3a8271c93f5225cd2b57cdab81 atom-mac.zip

srijs··on Show HN: Proof-of-concept Node.JS-like interface with iOS 7 JavaScriptCore
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!

srijs··on Show HN: Proof-of-concept Node.JS-like interface with iOS 7 JavaScriptCore
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?

srijs··on Show HN: Proof-of-concept Node.JS-like interface with iOS 7 JavaScriptCore
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...

srijs··on Show HN: Proof-of-concept Node.JS-like interface with iOS 7 JavaScriptCore
Thanks :)
srijs··on Show HN: Proof-of-concept Node.JS-like interface with iOS 7 JavaScriptCore
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.

srijs··on Show HN: Proof-of-concept Node.JS-like interface with iOS 7 JavaScriptCore
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! :)

srijs··on Compiling LLJS to asm.js
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.

srijs··on Compiling LLJS to asm.js
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!

srijs··on Compiling LLJS to asm.js
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...