SyncPad switched its webclient from JS to CoffeeScript.
In terms of human-readable code, we reduced the lines of code by ~30%. It's cleaner and more concise. I feel our code is more managable because of CoffeeScript.
In terms of the generated JS, I really appreciate that CoffeeScript creates an abstraction that will implement JS best practices and consistency
At this point, any JS work I do is done with CoffeeScript
I wouldn't call it "related" or even "similar"… it's similar in that they're both key value stores, but there's no durability and Ramcloud stores both keys & values in memory; whereas bitcask only stores keys in memory as an "index" to the value on disk.
The way that SyncPad was prototyped was using PHP/MySQL. I ported that to using Mochiweb. I manage all of the queuing of messages through a relatively straight forward OTP gen_server and Redis.
I have no idea, I am completely baffled. I really want to try without the node_redis library and do it all in memory, keeping the Array of elements in the returned list at less than 1000.
UPDATE: I should also mention, if you look at the charts, there's a point in time which the CPU hits 99%-100% and it's always reproducible. Once the CPU hits 100% I have just sat back and watched the memory get chewed up.
I'm sure someone w/ more experience than me can probably debug what's going on. The code is there, I really hope someone else can take a look at it. As my friend mentioned, it's reproducible, it can be fixed.
contact me @roder to talk about the performance. There was a bug in 1.0 on the iPad app that didn't keep the line up with your finger. Now in 1.0.1, which is in the queue for approval, that has been resolved. Hopefully the network stuff was ~ok~
When I wrote the Node.js server in September, the latest version was v0.2.3; which is what I tested on. I failed to mention that in the post, but thanks for pointing that out.
I'll run the test again later tonight and post a follow up.
Good to know, we are definitely capable of going that direction. This really release is good for gauging interest and getting feedback. MVP. Thanks for your feedback