Logs for the RingoJS IRC channel, as logged by ringostarr.

2010-11-04

[12:23] <olegp> chondl: I package up my ringo app as a war and deploy to jetty on ubuntu

[16:16] <hannesw> hey oberhamsi

[16:17] <hannesw> thanks for the ringo-modulr plug :)

[16:17] <oberhamsi> hehe

[16:18] <hannesw> i guess you're wondering why i got involved in commonjs browser modules discussion? :)

[16:18] <oberhamsi> i'm glad you did.. tough discussion

[16:18] <oberhamsi> imo they worry too much about satisfying all & every need

[16:19] <oberhamsi> now that you say it.. why did you get involved?

[16:19] <hannesw> for the cause! :)

[16:19] <oberhamsi> the Greater Good!

[16:19] <hannesw> well i think having commonjs modules in the browser without middleware would be great

[16:20] <oberhamsi> yep. i'll have to try requirejs again...

[16:20] <hannesw> requirejs is great, but imo it needlessly adds/alters stuff

[16:22] <hannesw> i like it, but I'm not convinced by its dependency-injecting module format

[16:24] <oberhamsi> so it's either: write boilerplate or have serverside support.

[16:25] <oberhamsi> i'm skimming the requirejs docs.. i just don't want to write my modules like that.

[16:29] <hannesw> well requirejs's secrete is that it can load (wrapped) commonjs modules nicely

[16:30] <hannesw> there's an async require to load the modules, and require can be used like in commonjs within the modules

[16:31] <hannesw> i think that's confusing, so i proposed to rename the async require to load()

[16:31] <oberhamsi> does sound confusing.

[16:31] <oberhamsi> can i load unwrapped modules with requirejs? XHR&eval

[16:32] <hannesw> it's because require() is not meant to be used in requirejs as commonjs require in the first place

[16:32] <oberhamsi> hm...

[20:42] <keith_loy> hey, we almost have our company sold on using RingoJS. We are stuck on one thing though.. How do we prove scalability or per say argue it?

[20:59] <hannesw> keith_loy: no idea

[20:59] <hannesw> I'm afraid you'll have to find that out yourself :)

[21:01] <keith_loy> as far as the argument goes, theoretically since you are using SSJS you have the ability to easily migrate functionality of your app to the client to reduce stress on the server

[21:01] <keith_loy> testing vertical scalability seems like it will be a tedious process

[21:06] <hannesw> what kind of traffic are you looking at, and what kind of site?

[21:08] <keith_loy> cant discuss to many details, but the initial app we build on RingoJS will be low traffic enterprise use with each enterprise having their own Servers.

[21:08] <keith_loy> we specialize in utility companies though, so customer facing apps could have millions of users a month

[21:08] <keith_loy> nothing to extreme

[21:09] <keith_loy> has anyone shown how Rhino/Jetty scale and whether vertical or horizontal scaling is betty for them?

[21:13] <oravecz> There is so much more to scaling than Rhino/Jetty. Those aren't even your bottlenecks. Obviously, Jetty runs many large web sites. http://docs.codehaus.org/display/JETTY/Jetty+Powered

[21:13] <oravecz> And Whino is just one of the many languages running on the JVM

[21:13] <keith_loy> what are some possible bottlenecks?

[21:13] <oravecz> *Rhino (been doing that a lot lately)

[21:14] <keith_loy> we have no database on our side of the architecture so that one is eliminated

[21:14] <oravecz> How do you cluster would be my major concern

[21:14] <keith_loy> we grab all of our information from a rest layer, so httprequests appears to me to be the biggest bottleneck

[21:15] <keith_loy> but that would be present in any server side language, so that eliminates that argument

[21:15] <oravecz> what's ur current architecture?

[21:15] <keith_loy> it's divided into a Business tier and presentation tier

[21:16] <oravecz> what web server?

[21:16] <keith_loy> the business tier being all Java, with a layer on top of it organizing information and providing a restful interface for us to access data from presentation tier

[21:16] <keith_loy> tomcat in business tier, apache in front with php as server side language

[21:16] <keith_loy> making curl requests to grab data

[21:17] <oravecz> so, you are looking at RingoJS to replace the Apache/PHP?

[21:17] <keith_loy> correct

[21:17] <oravecz> I would suggest you stick to Tomcat if that is what the admins are familiar with, but TOmcat and Jetty are typically considered analagous

[21:18] <keith_loy> how solid is tomcat with ringojs?

[21:18] <keith_loy> i was sticking to jetty since it is the default solution

[21:19] <keith_loy> also since we are going withSSJS which is cutting edge IT will probably not know how to support it properly

[21:19] <keith_loy> so since that burden falls on us, it seems practical to use what has the most support in the ringo community

[21:20] <keith_loy> thanks for the brain storming as well, it is very helpful.

[21:21] <oravecz> ringo doesn't have any dependencies on a web server. We run it on Tomcat for example.

[21:21] <oravecz> It will produce a WAR file which you can deploy to any Java servlet environment

[21:22] <keith_loy> awesome

[21:22] <keith_loy> so scalability really comes down to how well Rhino and Tomcat scale then

[21:32] <oravecz> Yeah, but Rhino is just Java bytecode at the end of the day

[21:33] <keith_loy> i'm still new to Rhino, whenever you make a war code are you essentially compiling your code to java and it is no longer being interpretted from javascript to java on the fly or no

[21:33] <keith_loy> ?

[21:44] <hannesw> rhino is way slower than java though

[21:44] <hannesw> even though it's compiled to java bytecode, there's not a direct mapping from js to java

[21:45] <hannesw> js semantics are just different

[21:45] <olegp> thing is scalability and speed aren't the same

[21:45] <olegp> something can be slow, yet scalable

[21:46] <keith_loy> true, I wish I could find a comparison between rhino and jRuby for scalability

[21:46] <hannesw> yes, would be interesting

[21:46] <olegp> java webapps are scalable because there are a lot of mature libraries that you can use that make scaling easier

[21:46] <hannesw> i think they should be in the same league

[21:47] <hannesw> although jruby has seen way more work than rhino

[21:47] <hannesw> olegp true

[21:47] <olegp> for example: handling sessions in a cluster could be a real pain unless the webapp container supports it (which most java webapp containers / servers do)

[21:48] <olegp> another example is caching database queries, or pooling db connections, if you use ringo-hiberante you get all that functionality for free from hibernate

[21:48] <olegp> so ringojs scales because java webapps scale

[21:49] <hannesw> well the devil is always in the detail

[21:49] <olegp> you can still break things, by for example reimplementing your own session management

[21:49] <hannesw> often you do some thing that costs, and you never notice

[21:50] <olegp> right, again ringojs has a built in profiler and jmx support, so you can instrument your webapp to see why its not scaling

[21:50] <olegp> a lot more difficult to do that if the platform doesnt offer those tools, or you got to roll your own

[22:51] <mcepl> how much are Jetpack folks involved in the general CommonJS discussion?