Re: [ANN] Taoensso library updates / 2014 September
No problem. I just wanted to check that it was an intentional change, and not some unknown bug that had crept in. Sure, appreciate that. And one had (buggy CHANGELOG) - so good that you checked ;-) I just switched my app from Om/Sablono + Sente to Reagent + Sente and I'm currently working on cleaning things up now that Reagent has allowed for quite a bit of simplification so I'm in refactoring mode at the moment... Reagent's great, can't recommend it enough. About the only thing I could ask for is IE8 compatibility :) Hmm, yeah - haven't looked into that myself. Can't think of anything off-hand that'd make it impossible, PR would absolutely be welcome. Cheers! -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[ANN] Nginx-Clojure v0.2.5 released!
0.2.5 (2014-09-07) 1. New Feature: Reference variables in jvm_options different jvm debug ports for jvm processes (issue #42) 2. New Feature: Server Sent Events(SSE) Long polling (issue #41, issue #36) 3. New Feature: Supports 64-bit JDK on 64-bit Windows (issue #40) 4. New Feature: Coroutine based socket supports JDK8 (issue #39) 5. New Feature: More easier to archive Sub/Pub services with Broadcast Events to all Nginx workers (issue #39) 6. New Feature: Asynchronous Channel a wrapper of asynchronous socket to make the usage easier (issue #37) 7. Enhancement: Fix--On Windows a little many write events happen and these events seem useless (issue #35) So far Nginx-Clojure have supported: - Linux x86 32-bit (tested with CentOS 5.10 i386 ) - Linux x64 (tested with CentOS 5.10 x64, Ubuntu 13.10 x64, Alpine Linux 3.03 x64) - Windowns x86 32-bit (tested with Windows XP 32-bit) - Windows X64 (tested with Windows XP 64-bit) - MacOSX (tested with MacOSX 10.7 X64) Web Site http://nginx-clojure.github.io/ Source Hosted on Github https://github.com/nginx-clojure/nginx-clojure Google Group (mailing list) https://groups.google.com/forum/#!forum/nginx-clojure -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] Nginx-Clojure v0.2.5 released!
On 07/09/2014 13:45, Yuexiang Zhang wrote: 0.2.5 (2014-09-07) 1. New Feature: Reference variables in jvm_options different jvm debug ports for jvm processes (issue #42) 2. New Feature: Server Sent Events(SSE) Long polling (issue #41, issue #36) 3. New Feature: Supports 64-bit JDK on 64-bit Windows (issue #40) 4. New Feature: Coroutine based socket supports JDK8 (issue #39) 5. New Feature: More easier to archive Sub/Pub services with Broadcast Events to all Nginx workers (issue #39) 6. New Feature: Asynchronous Channel a wrapper of asynchronous socket to make the usage easier (issue #37) 7. Enhancement: Fix--On Windows a little many write events happen and these events seem useless (issue #35) What are the trade-offs, if any, compared with Immutant + Wildfly (on CentOS 6)? Memory usage is of particular interest. gvim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] Nginx-Clojure v0.2.5 released!
Sorry I don't use Immutant + Wildfly and know little about it. The simple benchmarks including Immutant Nginx-Clojure can be found from HERE https://github.com/ptaoussanis/clojure-web-server-benchmarks. From Nginx-Clojure the most attractive things to us is : 1. Nginx's architecture is Master + Worker processes, Nginx-Clojure embed one JVM in per Worker process. So if any of worker process crashes, the other JVM instances can still work and the Master will recreate a new Worker process embedding with a new JVM instance. 2. Nginx's perfect performance when handle even over 10 thousand connections 3. Coroutine based socket let old Java Socket API based app/libraries won't lock a thread anymore 4. IO (Coroutine based socket, Asynchronous socket Channel) are on top of Nginx IO API which is more worldly-wise than Java NIO on huge scalar server application. 5. JVMs are not goot at huge memory management. Configurable multiple JVM instances (is the same number of Nginx Worker processes) will manage less memory. e.g. we have ten Nginx Worker processes in one Nginx instance every JVM instance will only manage 1/10 memory 6. Nginx already has many modules / features such as rate limit , spdy , pages cache, image filter etc. Most of them maybe are difficult or less effective to be implemented in pure Java world. Xfeep On Sun, Sep 7, 2014 at 11:27 PM, gvim gvi...@gmail.com wrote: On 07/09/2014 13:45, Yuexiang Zhang wrote: 0.2.5 (2014-09-07) 1. New Feature: Reference variables in jvm_options different jvm debug ports for jvm processes (issue #42) 2. New Feature: Server Sent Events(SSE) Long polling (issue #41, issue #36) 3. New Feature: Supports 64-bit JDK on 64-bit Windows (issue #40) 4. New Feature: Coroutine based socket supports JDK8 (issue #39) 5. New Feature: More easier to archive Sub/Pub services with Broadcast Events to all Nginx workers (issue #39) 6. New Feature: Asynchronous Channel a wrapper of asynchronous socket to make the usage easier (issue #37) 7. Enhancement: Fix--On Windows a little many write events happen and these events seem useless (issue #35) What are the trade-offs, if any, compared with Immutant + Wildfly (on CentOS 6)? Memory usage is of particular interest. gvim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/ topic/clojure/baqWfrei8CE/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Annex is a fact store
Conceptually, this looks vaguely similar to Datomic. https://speakerdeck.com/markhibberd/towards-annex-a-fact-based-dependency-system-icfp -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] Nginx-Clojure v0.2.5 released!
On 07/09/2014 17:51, Yuexiang Zhang wrote: From Nginx-Clojure the most attractive things to us is : 1. Nginx's architecture is Master + Worker processes, Nginx-Clojure embed one JVM in per Worker process. So if any of worker process crashes, the other JVM instances can still work and the Master will recreate a new Worker process embedding with a new JVM instance. 2. Nginx's perfect performance when handle even over 10 thousand connections 3. Coroutine based socket let old Java Socket API based app/libraries won't lock a thread anymore 4. IO (Coroutine based socket, Asynchronous socket Channel) are on top of Nginx IO API which is more worldly-wise than Java NIO on huge scalar server application. 5. JVMs are not goot at huge memory management. Configurable multiple JVM instances (is the same number of Nginx Worker processes) will manage less memory. e.g. we have ten Nginx Worker processes in one Nginx instance every JVM instance will only manage 1/10 memory 6. Nginx already has many modules / features such as rate limit , spdy , pages cache, image filter etc. Most of them maybe are difficult or less effective to be implemented in pure Java world. I'm fairly new to Clojure/JVM but I was under the impression Java webservers such as Wildfly (= JBoss) had a reputation for managing memory efficiently by spawning threads, ie. only a single JVM instance required? Your scenario with multiple JVMs/1 per worker sounds like a much bigger memory footprint but, as I said, I'm new to Java. gvim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
ANN: [com.stuartsierra/component 0.2.2]
Component: managed lifecycle and dependency injection for stateful objects https://github.com/stuartsierra/component Release 0.2.2 contains the following minor enhancements: * System maps print as `#SystemMap` to avoid trying to print huge objects in the REPL. * Added error helpers `ex-component?` and `ex-without-components`: refer to docstrings for details * Exceptions: * Change `:component-key` to `:system-key` in `ex-data` maps: this is a breaking change for code which depended on the value of `:component-key` * Added `:system-key` to `ex-data` map from `try-action` * Minor changes to exception message strings Leiningen dependency information: [com.stuartsierra/component 0.2.2] -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
davstore: a buzzword-complete file storage; public demo of namespaced data.xml
Hi Folks! Maybe you remember my 'recent' push for data.xml namespacing support. I've built out most of the stuff, that I had sketched in the design document, but before pushing for an actual release, I'd ask you to evaluate my approach towards namespaced xml. I published the project [1] that actually made me dive into data.xml: davstore: A WebDAV file storage, backed by datomic and a git-like blob storage. With core.typed - checked database functions (how's that for buzzwords ;-) I'm using this in production, with my current version version of data.xml [2] So, apart from enjoying davstore, which I think is pretty nifty, I'd like to ask you to sift through my usage of data.xml and report whether you can see yourself interacting with xml in that way. [3] [4] kind regards [1] https://github.com/bendlas/davstore [2] https://github.com/bendlas/data.xml [3] https://github.com/bendlas/davstore/blob/master/src/davstore/dav/xml.clj [4] https://github.com/bendlas/davstore/blob/master/src/davstore/dav.clj [BCC] People that were part of previous discussions around namespaced data.xml -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] Nginx-Clojure v0.2.5 released!
Not only Wildfly but also most of mainstream pure java webservers use thread pool to handle http requests. Nginx-Clojure can also be configurated to use thread pool with one or many JVM instances. Advanced Java webservers use Java NIO (I/O multipexing) to do the first phrase (Http request accepting and simple parsing) then run user business flow with thread pool. The first phrase only need one or very few threads. But at the second phrase (using thread pool) largely existing Java Socket API based libraries such as JDBC drivers, Http Client are blocking so if there are many connections they 'll eat up all threads and make the webserver hang because a OS can only support less threads than connections. By the way threads in JVM are not cheap and they use more memory than pure native OS threads and OS threads are pre-emptive and scheduled at constant time slice so if there are too many threads scheduling will cost too many of cpu cycles to do real works. For large scalar application one JVM instance is really not enough. Typical scenario is we use serveral Java webservers such as tomcat, jetty, glassfish etc, and put a reverse proxy such as Nginx, Haproxy, Apache in the front of them. And Nginx-Clojure make this work easier because it can automatic embed JVM instances into Nginx worker processes and we need not maintain too many webservers. Since JDK 5, JVM instances can share Class data to reduce memory usage and the startup time for java applications. And on our enviroment typically we use coroutine based sockets to work with Apache http client , Solr client ,etc. Coroutines are cooperative and cheaper than threads and be created as much as our memory can bear. Xfeep On Mon, Sep 8, 2014 at 3:27 AM, gvim gvi...@gmail.com wrote: On 07/09/2014 17:51, Yuexiang Zhang wrote: From Nginx-Clojure the most attractive things to us is : 1. Nginx's architecture is Master + Worker processes, Nginx-Clojure embed one JVM in per Worker process. So if any of worker process crashes, the other JVM instances can still work and the Master will recreate a new Worker process embedding with a new JVM instance. 2. Nginx's perfect performance when handle even over 10 thousand connections 3. Coroutine based socket let old Java Socket API based app/libraries won't lock a thread anymore 4. IO (Coroutine based socket, Asynchronous socket Channel) are on top of Nginx IO API which is more worldly-wise than Java NIO on huge scalar server application. 5. JVMs are not goot at huge memory management. Configurable multiple JVM instances (is the same number of Nginx Worker processes) will manage less memory. e.g. we have ten Nginx Worker processes in one Nginx instance every JVM instance will only manage 1/10 memory 6. Nginx already has many modules / features such as rate limit , spdy , pages cache, image filter etc. Most of them maybe are difficult or less effective to be implemented in pure Java world. I'm fairly new to Clojure/JVM but I was under the impression Java webservers such as Wildfly (= JBoss) had a reputation for managing memory efficiently by spawning threads, ie. only a single JVM instance required? Your scenario with multiple JVMs/1 per worker sounds like a much bigger memory footprint but, as I said, I'm new to Java. gvim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/ topic/clojure/baqWfrei8CE/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Interop nightmare
I'm trying to use the Stanford Parser from Clojure, but I don't know hardly any Java, and this is my first time working with the interop stuff. All I want to do is play around with the class in the REPL. I added `[edu.stanford.nlp/stanford-parser 3.4.1]` to my Lein `project.clj`, and the download seemed to go fine. The documentation is http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/parser/lexparser/LexicalizedParser.html for those of you playing at home. Basically, my efforts have been a total failure. I can `(import edu.stanford.nlp.parser.lexparser.LexicalizedParser)`, but after that, it's just a nightmare of `no matching ctor`, `no matching field`, `NoSuchFieldException` and `expected static field` errors. I can't even initialize anything -- `(def parser (new LexicalizedParser))` gives me the aforementioned `no matching ctor` error. Like I said before, this is entirely my fault: I don't know Java, I don't know interop, and I Google has failed me. So I turn to you, beloved Clojure community, to correct my ignorance. I'm sure it's not hard, I'm just missing something. Thanks, -sam -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure statechart / hierarchical FSM implementation
I've been working on an implementation of Harel's statecharts based on his original paper (http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf) and Horrocks' excellent Constructing the User Interface with Statecharts (http://www.amazon.com/Constructing-User-Interface-Statecharts-Horrocks/dp/0201342782). There's a brief demo of using statecharts with ClojureScript livereloading here: https://www.youtube.com/watch?v=57wJpfMcfnU However, my implementation is experimental and I want to spend six months building real software with Harel's notation before I consider releasing any code. If you end up exploring the space and want to discuss design/implementation issues re: statecharts, I'd be happy to discuss off-list. cheers, Kevin On Friday, September 5, 2014 12:13:43 AM UTC-7, Andre Van Der Merwe wrote: Does anyone know of a clojure implementation of a Harel statechart or some variation of it (UML2 statechart, hierarchical FSM etc)? Specifically I’d like the implementation to handle; hierarchical nesting, history states, conditions, concurrency and communication if possible. Alternatively are there any papers or examples that you know of that discuss implementing statecharts? Most of the ones I’ve seen are code-gen tools and that does not really what I am after. Thanks. Andre. -- Information contained in this e-mail, including attachments and any rights hereto are the property of Portfolio Prospecting and Performance (Pty) Ltd (unless the context clearly indicates otherwise). It is confidential, private and intended for the addressee only and should you not be the addressee and receive it by mistake, kindly notify the sender and delete this information immediately without further disclosure to any other party. Save for bona fide views of Portfolio Prospecting and Performance (Pty) Ltd, views and opinions expressed in this e-mail are those of the sender only. Portfolio Prospecting and Performance (Pty) Ltd accepts no liability whatsoever for any loss or damages incurred, or suffered, arising from the use the information in this e-mail. Portfolio Prospecting and Performance (Pty) Ltd does not warrant the integrity of this e-mail nor that it is free of errors, viruses, interception or interference -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
can't connect with Datomic transactor
Hi, I was using Datomic in memory for a few days, and now I tried to switch for a more persistent storage. First I tried just using the free, but I was getting this error: CompilerException java.lang.NoSuchMethodError: clojure.lang.SeqIterator.init(Lclojure/lang/ISeq;)V, compiling:(form-init5913779045640355531.clj:1:11) Then I tried to use pro to see if that works, but end up with same results. The funny part is, if I try to connect just after launching the transactor I get this: (def conn (d/connect uri)) CompilerException clojure.lang.ExceptionInfo: Error communicating with HOST localhost on PORT 4334 {:alt-host nil, :peer-version 2, :password ..., :username ..., :port 4334, :host localhost, :version 0.9.4894, :timestamp 1410145249419, :encrypt-channel true}, compiling:(form-init5913779045640355531.clj:1:11) Then if I run same thing again: (def conn (d/connect uri)) CompilerException java.lang.NoSuchMethodError: clojure.lang.SeqIterator.init(Lclojure/lang/ISeq;)V, compiling:(form-init5913779045640355531.clj:1:11) Running (d/create-database) works just fine (I can confirm by checking on the console). All that I get from datomic transactor log is this: 2014-09-08 00:05:24.455 INFO defaultdatomic.lifecycle - {:tid 26, :pid 58071, :host localhost, :port 4334, :encrypt-channel true, :version 0.9.4894, :timestamp 1410145524454, :event :transactor/heartbeat, :rev 198} I have no more idea about what to do to fix it... You guys know what this issue is about? Thanks. --- Wilker Lúcio http://about.me/wilkerlucio/bio Woboinc Consultant +55 81 82556600 -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Interop nightmare
I'm not familiar with the stanford parser, or nlp, but the `no matching ctor error` is easily explained: According to the doc http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/parser/lexparser/LexicalizedParser.html#LexicalizedParser(edu.stanford.nlp.parser.lexparser.Lexicon, edu.stanford.nlp.parser.lexparser.BinaryGrammar, edu.stanford.nlp.parser.lexparser.UnaryGrammar, edu.stanford.nlp.parser.lexparser.DependencyGrammar, edu.stanford.nlp.util.Index, edu.stanford.nlp.util.Index, edu.stanford.nlp.util.Index, edu.stanford.nlp.parser.lexparser.Options), the only Constructor to LexicalizedParser takes 8 arguments, whose types I won't bother to repeat. Assuming you are familiar with the first half of http://clojure.org/java_interop , I recommend that you find a usage example of Stanford Parser and translate it to clojure sytax. That way you only have to bother with one unknown at a time and it will be easier to answer questions. kind regards 2014-09-08 4:50 GMT+02:00 Sam Raker sam.ra...@gmail.com: I'm trying to use the Stanford Parser from Clojure, but I don't know hardly any Java, and this is my first time working with the interop stuff. All I want to do is play around with the class in the REPL. I added `[edu.stanford.nlp/stanford-parser 3.4.1]` to my Lein `project.clj`, and the download seemed to go fine. The documentation is http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/parser/lexparser/LexicalizedParser.html for those of you playing at home. Basically, my efforts have been a total failure. I can `(import edu.stanford.nlp.parser.lexparser.LexicalizedParser)`, but after that, it's just a nightmare of `no matching ctor`, `no matching field`, `NoSuchFieldException` and `expected static field` errors. I can't even initialize anything -- `(def parser (new LexicalizedParser))` gives me the aforementioned `no matching ctor` error. Like I said before, this is entirely my fault: I don't know Java, I don't know interop, and I Google has failed me. So I turn to you, beloved Clojure community, to correct my ignorance. I'm sure it's not hard, I'm just missing something. Thanks, -sam -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Interop nightmare
On 8 September 2014 at 06:50:38, Sam Raker (sam.ra...@gmail.com) wrote: I can `(import edu.stanford.nlp.parser.lexparser.LexicalizedParser)`, but after that, it's just a nightmare of `no matching ctor`, `no matching field`, `NoSuchFieldException` and `expected static field` errors. I can't even initialize anything -- `(def parser (new LexicalizedParser))` gives me the aforementioned `no matching ctor` error. The only constructor on that class has way more than 0 arguments: http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/parser/lexparser/LexicalizedParser.html#LexicalizedParser(edu.stanford.nlp.parser.lexparser.Lexicon, edu.stanford.nlp.parser.lexparser.BinaryGrammar, edu.stanford.nlp.parser.lexparser.UnaryGrammar, edu.stanford.nlp.parser.lexparser.DependencyGrammar, edu.stanford.nlp.util.Index, edu.stanford.nlp.util.Index, edu.stanford.nlp.util.Index, edu.stanford.nlp.parser.lexparser.Options) Perhaps you should use a factory method to instantiate it: http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/parser/lexparser/LexicalizedParser.html#loadModel() See http://clojure-doc.org/articles/language/interop.html, too. -- @michaelklishin, github.com/michaelklishin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] Nginx-Clojure v0.2.5 released!
In addition one Java thread will tie up one native OS thread. A On Monday, September 8, 2014 10:50:13 AM UTC+8, Yuexiang Zhang wrote: Not only Wildfly but also most of mainstream pure java webservers use thread pool to handle http requests. Nginx-Clojure can also be configurated to use thread pool with one or many JVM instances. Advanced Java webservers use Java NIO (I/O multipexing) to do the first phrase (Http request accepting and simple parsing) then run user business flow with thread pool. The first phrase only need one or very few threads. But at the second phrase (using thread pool) largely existing Java Socket API based libraries such as JDBC drivers, Http Client are blocking so if there are many connections they 'll eat up all threads and make the webserver hang because a OS can only support less threads than connections. By the way threads in JVM are not cheap and they use more memory than pure native OS threads and OS threads are pre-emptive and scheduled at constant time slice so if there are too many threads scheduling will cost too many of cpu cycles to do real works. For large scalar application one JVM instance is really not enough. Typical scenario is we use serveral Java webservers such as tomcat, jetty, glassfish etc, and put a reverse proxy such as Nginx, Haproxy, Apache in the front of them. And Nginx-Clojure make this work easier because it can automatic embed JVM instances into Nginx worker processes and we need not maintain too many webservers. Since JDK 5, JVM instances can share Class data to reduce memory usage and the startup time for java applications. And on our enviroment typically we use coroutine based sockets to work with Apache http client , Solr client ,etc. Coroutines are cooperative and cheaper than threads and be created as much as our memory can bear. Xfeep On Mon, Sep 8, 2014 at 3:27 AM, gvim gvi...@gmail.com wrote: On 07/09/2014 17:51, Yuexiang Zhang wrote: From Nginx-Clojure the most attractive things to us is : 1. Nginx's architecture is Master + Worker processes, Nginx-Clojure embed one JVM in per Worker process. So if any of worker process crashes, the other JVM instances can still work and the Master will recreate a new Worker process embedding with a new JVM instance. 2. Nginx's perfect performance when handle even over 10 thousand connections 3. Coroutine based socket let old Java Socket API based app/libraries won't lock a thread anymore 4. IO (Coroutine based socket, Asynchronous socket Channel) are on top of Nginx IO API which is more worldly-wise than Java NIO on huge scalar server application. 5. JVMs are not goot at huge memory management. Configurable multiple JVM instances (is the same number of Nginx Worker processes) will manage less memory. e.g. we have ten Nginx Worker processes in one Nginx instance every JVM instance will only manage 1/10 memory 6. Nginx already has many modules / features such as rate limit , spdy , pages cache, image filter etc. Most of them maybe are difficult or less effective to be implemented in pure Java world. I'm fairly new to Clojure/JVM but I was under the impression Java webservers such as Wildfly (= JBoss) had a reputation for managing memory efficiently by spawning threads, ie. only a single JVM instance required? Your scenario with multiple JVMs/1 per worker sounds like a much bigger memory footprint but, as I said, I'm new to Java. gvim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/ topic/clojure/baqWfrei8CE/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For